Документ взят из кэша поисковой машины. Адрес
оригинального документа
: http://www.sao.ru/hq/sts/othe/bushou/wdmcard.htm
Дата изменения: Wed Feb 24 18:06:15 2010 Дата индексирования: Tue Oct 2 05:52:29 2012 Кодировка: Поисковые слова: helix nebula |
WDM Quick Reference
Rev C Red fields are reserved. Numeric values are hex. |
DRIVER_OBJECT | ||||||||||||||||
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |
0 |
Type (4) |
Size | DeviceObject | Flags | DriverStart | |||||||||||
10 |
DriverSize | DriverSection | DriverExtension | Name len |
Name maxlen |
|||||||||||
20 |
Name (wide string ptr) |
HardwareDatabase | FastIoDispatch | DriverEntry | ||||||||||||
30 |
StartIo | Unload | IRP_MJ_CREATE | IRP_MJ_NAMED_PIPE | ||||||||||||
40 |
IRP_MJ_CLOSE | IRP_MJ_READ | IRP_MJ_WRITE | IRP_MJ_QUERY_ INFORMATION |
||||||||||||
50 |
IRP_MJ_SET_INFORMATION | IRP_MJ_QUERY_EA | IRP_MJ_SET_EA | IRP_MJ_FLUSH_BUFFERS | ||||||||||||
60 |
IRP_MJ_QUERY_VOLUME_ VOLUME_INFORMATION |
IRP_MJ_SET_VOLUME_ INFORMATION |
IRP_MJ_DIRECTORY_ CONTROL |
IRP_MJ_FILE_SYSTEM_ CONTROL |
||||||||||||
70 |
IRP_MJ_DEVICE_CONTROL | IRP_MJ_SCSI
/ IRP_MJ_INTERNAL_DEVICE_ CONTROL |
IRP_MJ_SHUTDOWN | IRP_MJ_LOCK_CONTROL | ||||||||||||
80 |
IRP_MJ_CLEANUP | IRP_MJ_CREATE_MAILSLOT | IRP_MJ_QUERY_SECURITY | IRP_MJ_SET_SECURITY | ||||||||||||
90 |
IRP_MJ_POWER | IRP_MJ_SYSTEM_CONTROL | IRP_MJ_DEVICE_CHANGE | IRP_MJ_QUERY_QUOTA | ||||||||||||
A0 |
IRP_MJ_SET_QUOTA | IRP_MJ_PNP |
Flags |
|
Mask |
Name |
1 | DRVO_UNLOAD_INVOKED |
2 | DRVO_LEGACY_DRIVER |
4 | DRVO_BUILTIN_DRIVER |
8 | DRVO_REINIT_REGISTERED |
10 | DRVO_INITIALIZED |
20 | DRVO_BOOTREINIT_REGISTERED |
40 | DRVO_LEGACY_RESOURCES |
DEVICE_OBJECT | ||||||||||||||||
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |
0 |
Type (3) |
Size | Ref Count | DriverObject | NextDev | |||||||||||
10 |
AttachedDev | CurrentIrp | Timer | Flags | ||||||||||||
20 |
Characteristics | VPB | DeviceExtension | DevType | ||||||||||||
30 |
Stk Siz |
Queue.ListEntry
/ Queue.WaitContextBlock |
||||||||||||||
40 |
... | |||||||||||||||
50 |
... | Alignment (reverse mask) |
||||||||||||||
60 |
DeviceQueue | |||||||||||||||
70 |
... | DPC | ||||||||||||||
80 |
... | |||||||||||||||
90 |
... | ActiveThreads | SecurityDesc | DeviceLock | ||||||||||||
A0 |
... | Sector Size |
Spare1 | |||||||||||||
B0 |
DevObjExtension | Reserved |
Mask |
Name |
1 | DO_UNLOAD_PENDING |
2 | DO_VERIFY_VOLUME |
4 | DO_BUFFERED_IO |
8 | DO_EXCLUSIVE |
10 | DO_DIRECT_IO |
20 | DO_MAP_IO_BUFFER |
40 | DO_DEVICE_HAS_NAME |
80 | DO_DEVICE_INITIALIZING |
100 | DO_SYSTEM_BOOT_PARTITION |
200 | DO_LONG_TERM_REQUESTS |
400 | DO_NEVER_LAST_DEVICE |
800 | DO_SHUTDOWN_REGISTERED |
1000 | DO_BUS_ENUMERATED_DEVICE |
2000 | DO_POWER_PAGABLE |
4000 | DO_POWER_INRUSH |
10000 | DO_LOW_PRIORITY_FILESYSTEM |
IRP | ||||||||||||||||
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |
0 |
Type (6) |
Size | Mdl | Flags |
MasterIrp/IrpCount/ SystemBuffer |
|||||||||||
10 |
Thread.Flink | Thread.Blink | IoStatus.Status | IoStatus.Information | ||||||||||||
20 |
Req Mode |
Pnd Ret |
Stak Cnt |
Cur Stak |
Can cel |
Can Irql |
Apc Env |
Alloc Flgs |
*UserIoStatus | *UserEvent | ||||||
30 |
UserApcProc/ AllocSize |
UserApcContext/ AllocSize |
CancelRoutine | UserBuffer | ||||||||||||
40 |
Context[0] | Context[1] | Context[2] | Context[3] | ||||||||||||
50 |
Thread | AuxBuf | List.Flink | List.Blink | ||||||||||||
60 |
IO_STACK_LOC
/ PacketType |
OriginalFileObject |
IRQL | |
Value | Name |
0 |
PASSIVE_LEVEL |
1 |
APC_LEVEL |
2 |
DISPATCH_LEVEL |
7 |
HIGH_LEVEL |
`b |
PROFILE_LEVEL |
1c |
CLOCK1_LEVEL |
1d |
IPI_LEVEL |
1e |
POWER_LEVEL |
1f |
HIGH_LEVEL |
IO_STACK_LOCATION | ||||||||||||||||
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |
0 |
MJ | MN | Flg | Ctl |
Arg1 (BufLenOut/...) |
Arg2 (BufLenIn/...) |
Arg3 (IOCTL/...) |
|||||||||
10 |
Arg4 (Type3InputBuf/...) |
DeviceObject | FileObject | CompletionProc | ||||||||||||
20 |
Context |
Flags | |
Mask | Name |
01 | SL_PENDING_RETURNED |
20 | SL_INVOKE_ON_CANCEL |
40 | SL_INVOKE_ON_SUCCESS |
80 | SL_INVOKE_ON_ERROR |
MJ | [MN] Name |
0 | IRP_MJ_CREATE |
1 | IRP_MJ_NAMED_PIPE |
2 | IRP_MJ_CLOSE |
3 | IRP_MJ_READ |
4 | IRP_MJ_WRITE |
5 | IRP_MJ_QUERY_INFORMATION |
6 | IRP_MJ_SET_INFORMATION |
7 | IRP_MJ_QUERY_EA |
8 | IRP_MJ_SET_EA |
9 | IRP_MJ_FLUSH_BUFFERS |
a | IRP_MJ_QUERY_VOLUME_INFORMATION |
b | IRP_MJ_SET_VOLUME_INFORMATION |
c | IRP_MJ_DIRECTORY_CONTROL |
d | IRP_MJ_FILE_SYSTEM_CONTROL |
e | IRP_MJ_DEVICE_CONTROL |
f | IRP_MJ_INTERNAL_DEVICE_CONTROL / IRP_MJ_SCSI [00] IRP_MN_SCSI_CLASS [01] IRP_MN_SCSI_CLASS |
10 | IRP_MJ_SHUTDOWN |
11 | IRP_MJ_LOCK_CONTROL |
12 | IRP_MJ_CLEANUP |
13 | IRP_MJ_CREATE_MAILSLOT |
14 | IRP_MJ_QUERY_SECURITY |
15 | IRP_MJ_SET_SECURITY |
16 | IRP_MJ_POWER [00] IRP_MN_WAIT_WAKE [01] IRP_MN_POWER_SEQUENCE [02] IRP_MN_SET_POWER [03] IRP_MN_QUERY_POWER |
17 | IRP_MJ_SYSTEM_CONTROL [00] IRP_MN_QUERY_ALL_DATA [01] IRP_MN_QUERY_SINGLE_INSTANCE [02] IRP_MN_CHANGE_SINGLE_INSTANCE [03] IRP_MN_CHANGE_SINGLE_ITEM [04] IRP_MN_ENABLE_EVENTS [05] IRP_MN_DISABLE_EVENTS [06] IRP_MN_ENABLE_COLLECTION [07] IRP_MN_DISABLE_COLLECTION [08] IRP_MN_REGINFO [09] IRP_MN_EXECUTE_METHOD [0a] reserved [0b] IRP_MN_REGINFO_EX |
18 | IRP_MJ_DEVICE_CHANGE |
19 | IRP_MJ_QUERY_QUOTA |
1a | IRP_MJ_SET_QUOTA |
1b | IRP_MJ_PNP / IRP_MJ_PNP_POWER / IRP_MJ_MAXIMUM_FUNCTION [00] IRP_MN_START_DEVICE [01] IRP_MN_QUERY_REMOVE_DEVICE [02] IRP_MN_REMOVE_DEVICE [03] IRP_MN_CANCEL_REMOVE_DEVICE [04] IRP_MN_STOP_DEVICE [05] IRP_MN_QUERY_STOP_DEVICE [06] IRP_MN_CANCEL_STOP_DEVICE [07] IRP_MN_QUERY_DEVICE_RELATIONS [08] IRP_MN_QUERY_INTERFACE [09] IRP_MN_QUERY_CAPABILITIES [0A] IRP_MN_QUERY_RESOURCES [0B] IRP_MN_QUERY_RESOURCE_REQUIREMENTS [0C] IRP_MN_QUERY_DEVICE_TEXT [0D] IRP_MN_FILTER_RESOURCE_REQUIREMENTS [0E] [0F] IRP_MN_READ_CONFIG [10] IRP_MN_WRITE_CONFIG [11] IRP_MN_EJECT [12] IRP_MN_SET_LOCK [13] IRP_MN_QUERY_ID [14] IRP_MN_QUERY_PNP_DEVICE_STATE [15] IRP_MN_QUERY_BUS_INFORMATION [16] IRP_MN_DEVICE_USAGE_NOTIFICATION [17] IRP_MN_SURPRISE_REMOVAL [18] IRP_MN_QUERY_LEGACY_BUS_INFORMATION [87] IRP_MN_BUS_RESET (1394) |
DevType |
See DEVICE_OBJECT DevType Table |
Access | |
Mask | Name |
00 | FILE_ANY_ACCESS FILE_SPECIAL_ACCESS |
01 | FILE_READ_ACCESS |
02 | FILE_WRITE_ACCESS |
Method | |
Value | Name |
0 | METHOD_BUFFERED |
1 | METHOD_IN_DIRECT |
2 | METHOD_OUT_DIRECT |
3 | METHOD_NEITHER |