|
|
1.1 ! root 1: /*++ ! 2: ! 3: Copyright (c) 1993 Microsoft Corporation ! 4: ! 5: Module Name: ! 6: ! 7: mapmem.h ! 8: ! 9: Abstract: ! 10: ! 11: ! 12: Environment: ! 13: ! 14: kernel & User mode ! 15: ! 16: Notes: ! 17: ! 18: ! 19: Revision History: ! 20: ! 21: --*/ ! 22: ! 23: ! 24: // ! 25: // Define the various device type values. Note that values used by Microsoft ! 26: // Corporation are in the range 0-32767, and 32768-65535 are reserved for use ! 27: // by customers. ! 28: // ! 29: ! 30: #define FILE_DEVICE_MAPMEM 0x00008000 ! 31: ! 32: ! 33: ! 34: // ! 35: // Macro definition for defining IOCTL and FSCTL function control codes. Note ! 36: // that function codes 0-2047 are reserved for Microsoft Corporation, and ! 37: // 2048-4095 are reserved for customers. ! 38: // ! 39: ! 40: #define MAPMEM_IOCTL_INDEX 0x800 ! 41: ! 42: ! 43: // ! 44: // Define our own private IOCTL ! 45: // ! 46: ! 47: #define IOCTL_MAPMEM_MAP_USER_PHYSICAL_MEMORY CTL_CODE(FILE_DEVICE_MAPMEM , \ ! 48: MAPMEM_IOCTL_INDEX, \ ! 49: METHOD_BUFFERED, \ ! 50: FILE_ANY_ACCESS) ! 51: ! 52: #define IOCTL_MAPMEM_UNMAP_USER_PHYSICAL_MEMORY CTL_CODE(FILE_DEVICE_MAPMEM, \ ! 53: MAPMEM_IOCTL_INDEX+1,\ ! 54: METHOD_BUFFERED, \ ! 55: FILE_ANY_ACCESS) ! 56: ! 57: ! 58: ! 59: ! 60: // ! 61: // Our user mode app will pass an initialized structure like this ! 62: // down to the kernel mode driver ! 63: // ! 64: ! 65: typedef struct ! 66: { ! 67: INTERFACE_TYPE InterfaceType; // Isa, Eisa, etc.... ! 68: ULONG BusNumber; // Bus number ! 69: PHYSICAL_ADDRESS BusAddress; // Bus-relative address ! 70: ULONG AddressSpace; // 0 is memory, 1 is I/O ! 71: ULONG Length; // Length of section to map ! 72: ! 73: } PHYSICAL_MEMORY_INFO, *PPHYSICAL_MEMORY_INFO;
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.