|
|
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.