| Документ взят из кэша поисковой машины. Адрес
оригинального документа
: http://mavr.sao.ru/hq/sts/othe/bushou/wdmcard.htm Дата изменения: Wed Feb 24 18:06:15 2010 Дата индексирования: Tue Oct 2 13:16:21 2012 Кодировка: Поисковые слова: rainbow | 
| 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 |