Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygencmtypes.h
Go to the documentation of this file.
00001 /****************************************************************************** 00002 * Configuration Manager Types * 00003 ******************************************************************************/ 00004 00005 $if (_WDMDDK_) 00006 /* Resource list definitions */ 00007 typedef int CM_RESOURCE_TYPE; 00008 00009 #define CmResourceTypeNull 0 00010 #define CmResourceTypePort 1 00011 #define CmResourceTypeInterrupt 2 00012 #define CmResourceTypeMemory 3 00013 #define CmResourceTypeDma 4 00014 #define CmResourceTypeDeviceSpecific 5 00015 #define CmResourceTypeBusNumber 6 00016 #define CmResourceTypeNonArbitrated 128 00017 #define CmResourceTypeConfigData 128 00018 #define CmResourceTypeDevicePrivate 129 00019 #define CmResourceTypePcCardConfig 130 00020 #define CmResourceTypeMfCardConfig 131 00021 00022 /* KEY_VALUE_Xxx.Type */ 00023 #define REG_NONE 0 00024 #define REG_SZ 1 00025 #define REG_EXPAND_SZ 2 00026 #define REG_BINARY 3 00027 #define REG_DWORD 4 00028 #define REG_DWORD_LITTLE_ENDIAN 4 00029 #define REG_DWORD_BIG_ENDIAN 5 00030 #define REG_LINK 6 00031 #define REG_MULTI_SZ 7 00032 #define REG_RESOURCE_LIST 8 00033 #define REG_FULL_RESOURCE_DESCRIPTOR 9 00034 #define REG_RESOURCE_REQUIREMENTS_LIST 10 00035 #define REG_QWORD 11 00036 #define REG_QWORD_LITTLE_ENDIAN 11 00037 00038 /* Registry Access Rights */ 00039 #define KEY_QUERY_VALUE (0x0001) 00040 #define KEY_SET_VALUE (0x0002) 00041 #define KEY_CREATE_SUB_KEY (0x0004) 00042 #define KEY_ENUMERATE_SUB_KEYS (0x0008) 00043 #define KEY_NOTIFY (0x0010) 00044 #define KEY_CREATE_LINK (0x0020) 00045 #define KEY_WOW64_32KEY (0x0200) 00046 #define KEY_WOW64_64KEY (0x0100) 00047 #define KEY_WOW64_RES (0x0300) 00048 00049 #define KEY_READ ((STANDARD_RIGHTS_READ |\ 00050 KEY_QUERY_VALUE |\ 00051 KEY_ENUMERATE_SUB_KEYS |\ 00052 KEY_NOTIFY) \ 00053 & \ 00054 (~SYNCHRONIZE)) 00055 00056 #define KEY_WRITE ((STANDARD_RIGHTS_WRITE |\ 00057 KEY_SET_VALUE |\ 00058 KEY_CREATE_SUB_KEY) \ 00059 & \ 00060 (~SYNCHRONIZE)) 00061 00062 #define KEY_EXECUTE ((KEY_READ) \ 00063 & \ 00064 (~SYNCHRONIZE)) 00065 00066 #define KEY_ALL_ACCESS ((STANDARD_RIGHTS_ALL |\ 00067 KEY_QUERY_VALUE |\ 00068 KEY_SET_VALUE |\ 00069 KEY_CREATE_SUB_KEY |\ 00070 KEY_ENUMERATE_SUB_KEYS |\ 00071 KEY_NOTIFY |\ 00072 KEY_CREATE_LINK) \ 00073 & \ 00074 (~SYNCHRONIZE)) 00075 00076 /* Registry Open/Create Options */ 00077 #define REG_OPTION_RESERVED (0x00000000L) 00078 #define REG_OPTION_NON_VOLATILE (0x00000000L) 00079 #define REG_OPTION_VOLATILE (0x00000001L) 00080 #define REG_OPTION_CREATE_LINK (0x00000002L) 00081 #define REG_OPTION_BACKUP_RESTORE (0x00000004L) 00082 #define REG_OPTION_OPEN_LINK (0x00000008L) 00083 00084 #define REG_LEGAL_OPTION \ 00085 (REG_OPTION_RESERVED |\ 00086 REG_OPTION_NON_VOLATILE |\ 00087 REG_OPTION_VOLATILE |\ 00088 REG_OPTION_CREATE_LINK |\ 00089 REG_OPTION_BACKUP_RESTORE |\ 00090 REG_OPTION_OPEN_LINK) 00091 00092 #define REG_OPEN_LEGAL_OPTION \ 00093 (REG_OPTION_RESERVED |\ 00094 REG_OPTION_BACKUP_RESTORE |\ 00095 REG_OPTION_OPEN_LINK) 00096 00097 #define REG_STANDARD_FORMAT 1 00098 #define REG_LATEST_FORMAT 2 00099 #define REG_NO_COMPRESSION 4 00100 00101 /* Key creation/open disposition */ 00102 #define REG_CREATED_NEW_KEY (0x00000001L) 00103 #define REG_OPENED_EXISTING_KEY (0x00000002L) 00104 00105 /* Key restore & hive load flags */ 00106 #define REG_WHOLE_HIVE_VOLATILE (0x00000001L) 00107 #define REG_REFRESH_HIVE (0x00000002L) 00108 #define REG_NO_LAZY_FLUSH (0x00000004L) 00109 #define REG_FORCE_RESTORE (0x00000008L) 00110 #define REG_APP_HIVE (0x00000010L) 00111 #define REG_PROCESS_PRIVATE (0x00000020L) 00112 #define REG_START_JOURNAL (0x00000040L) 00113 #define REG_HIVE_EXACT_FILE_GROWTH (0x00000080L) 00114 #define REG_HIVE_NO_RM (0x00000100L) 00115 #define REG_HIVE_SINGLE_LOG (0x00000200L) 00116 #define REG_BOOT_HIVE (0x00000400L) 00117 00118 /* Unload Flags */ 00119 #define REG_FORCE_UNLOAD 1 00120 00121 /* Notify Filter Values */ 00122 #define REG_NOTIFY_CHANGE_NAME (0x00000001L) 00123 #define REG_NOTIFY_CHANGE_ATTRIBUTES (0x00000002L) 00124 #define REG_NOTIFY_CHANGE_LAST_SET (0x00000004L) 00125 #define REG_NOTIFY_CHANGE_SECURITY (0x00000008L) 00126 00127 #define REG_LEGAL_CHANGE_FILTER \ 00128 (REG_NOTIFY_CHANGE_NAME |\ 00129 REG_NOTIFY_CHANGE_ATTRIBUTES |\ 00130 REG_NOTIFY_CHANGE_LAST_SET |\ 00131 REG_NOTIFY_CHANGE_SECURITY) 00132 00133 #include <pshpack4.h> 00134 typedef struct _CM_PARTIAL_RESOURCE_DESCRIPTOR { 00135 UCHAR Type; 00136 UCHAR ShareDisposition; 00137 USHORT Flags; 00138 union { 00139 struct { 00140 PHYSICAL_ADDRESS Start; 00141 ULONG Length; 00142 } Generic; 00143 struct { 00144 PHYSICAL_ADDRESS Start; 00145 ULONG Length; 00146 } Port; 00147 struct { 00148 #if defined(NT_PROCESSOR_GROUPS) 00149 USHORT Level; 00150 USHORT Group; 00151 #else 00152 ULONG Level; 00153 #endif 00154 ULONG Vector; 00155 KAFFINITY Affinity; 00156 } Interrupt; 00157 #if (NTDDI_VERSION >= NTDDI_LONGHORN) 00158 struct { 00159 _ANONYMOUS_UNION union { 00160 struct { 00161 #if defined(NT_PROCESSOR_GROUPS) 00162 USHORT Group; 00163 #else 00164 USHORT Reserved; 00165 #endif 00166 USHORT MessageCount; 00167 ULONG Vector; 00168 KAFFINITY Affinity; 00169 } Raw; 00170 struct { 00171 #if defined(NT_PROCESSOR_GROUPS) 00172 USHORT Level; 00173 USHORT Group; 00174 #else 00175 ULONG Level; 00176 #endif 00177 ULONG Vector; 00178 KAFFINITY Affinity; 00179 } Translated; 00180 } DUMMYUNIONNAME; 00181 } MessageInterrupt; 00182 #endif 00183 struct { 00184 PHYSICAL_ADDRESS Start; 00185 ULONG Length; 00186 } Memory; 00187 struct { 00188 ULONG Channel; 00189 ULONG Port; 00190 ULONG Reserved1; 00191 } Dma; 00192 struct { 00193 ULONG Data[3]; 00194 } DevicePrivate; 00195 struct { 00196 ULONG Start; 00197 ULONG Length; 00198 ULONG Reserved; 00199 } BusNumber; 00200 struct { 00201 ULONG DataSize; 00202 ULONG Reserved1; 00203 ULONG Reserved2; 00204 } DeviceSpecificData; 00205 #if (NTDDI_VERSION >= NTDDI_LONGHORN) 00206 struct { 00207 PHYSICAL_ADDRESS Start; 00208 ULONG Length40; 00209 } Memory40; 00210 struct { 00211 PHYSICAL_ADDRESS Start; 00212 ULONG Length48; 00213 } Memory48; 00214 struct { 00215 PHYSICAL_ADDRESS Start; 00216 ULONG Length64; 00217 } Memory64; 00218 #endif 00219 } u; 00220 } CM_PARTIAL_RESOURCE_DESCRIPTOR, *PCM_PARTIAL_RESOURCE_DESCRIPTOR; 00221 #include <poppack.h> 00222 00223 /* CM_PARTIAL_RESOURCE_DESCRIPTOR.Type */ 00224 #define CmResourceTypeNull 0 00225 #define CmResourceTypePort 1 00226 #define CmResourceTypeInterrupt 2 00227 #define CmResourceTypeMemory 3 00228 #define CmResourceTypeDma 4 00229 #define CmResourceTypeDeviceSpecific 5 00230 #define CmResourceTypeBusNumber 6 00231 #define CmResourceTypeMemoryLarge 7 00232 #define CmResourceTypeNonArbitrated 128 00233 #define CmResourceTypeConfigData 128 00234 #define CmResourceTypeDevicePrivate 129 00235 #define CmResourceTypePcCardConfig 130 00236 #define CmResourceTypeMfCardConfig 131 00237 00238 /* CM_PARTIAL_RESOURCE_DESCRIPTOR.ShareDisposition */ 00239 typedef enum _CM_SHARE_DISPOSITION { 00240 CmResourceShareUndetermined = 0, 00241 CmResourceShareDeviceExclusive, 00242 CmResourceShareDriverExclusive, 00243 CmResourceShareShared 00244 } CM_SHARE_DISPOSITION; 00245 00246 /* CM_PARTIAL_RESOURCE_DESCRIPTOR.Flags if Type = CmResourceTypePort */ 00247 #define CM_RESOURCE_PORT_MEMORY 0x0000 00248 #define CM_RESOURCE_PORT_IO 0x0001 00249 #define CM_RESOURCE_PORT_10_BIT_DECODE 0x0004 00250 #define CM_RESOURCE_PORT_12_BIT_DECODE 0x0008 00251 #define CM_RESOURCE_PORT_16_BIT_DECODE 0x0010 00252 #define CM_RESOURCE_PORT_POSITIVE_DECODE 0x0020 00253 #define CM_RESOURCE_PORT_PASSIVE_DECODE 0x0040 00254 #define CM_RESOURCE_PORT_WINDOW_DECODE 0x0080 00255 #define CM_RESOURCE_PORT_BAR 0x0100 00256 00257 /* CM_PARTIAL_RESOURCE_DESCRIPTOR.Flags if Type = CmResourceTypeInterrupt */ 00258 #define CM_RESOURCE_INTERRUPT_LEVEL_SENSITIVE 0x0000 00259 #define CM_RESOURCE_INTERRUPT_LATCHED 0x0001 00260 #define CM_RESOURCE_INTERRUPT_MESSAGE 0x0002 00261 #define CM_RESOURCE_INTERRUPT_POLICY_INCLUDED 0x0004 00262 00263 #define CM_RESOURCE_INTERRUPT_LEVEL_LATCHED_BITS 0x0001 00264 00265 #define CM_RESOURCE_INTERRUPT_MESSAGE_TOKEN ((ULONG)-2) 00266 00267 /* CM_PARTIAL_RESOURCE_DESCRIPTOR.Flags if Type = CmResourceTypeMemory */ 00268 #define CM_RESOURCE_MEMORY_READ_WRITE 0x0000 00269 #define CM_RESOURCE_MEMORY_READ_ONLY 0x0001 00270 #define CM_RESOURCE_MEMORY_WRITE_ONLY 0x0002 00271 #define CM_RESOURCE_MEMORY_WRITEABILITY_MASK 0x0003 00272 #define CM_RESOURCE_MEMORY_PREFETCHABLE 0x0004 00273 #define CM_RESOURCE_MEMORY_COMBINEDWRITE 0x0008 00274 #define CM_RESOURCE_MEMORY_24 0x0010 00275 #define CM_RESOURCE_MEMORY_CACHEABLE 0x0020 00276 #define CM_RESOURCE_MEMORY_WINDOW_DECODE 0x0040 00277 #define CM_RESOURCE_MEMORY_BAR 0x0080 00278 #define CM_RESOURCE_MEMORY_COMPAT_FOR_INACCESSIBLE_RANGE 0x0100 00279 00280 #define CM_RESOURCE_MEMORY_LARGE 0x0E00 00281 #define CM_RESOURCE_MEMORY_LARGE_40 0x0200 00282 #define CM_RESOURCE_MEMORY_LARGE_48 0x0400 00283 #define CM_RESOURCE_MEMORY_LARGE_64 0x0800 00284 00285 #define CM_RESOURCE_MEMORY_LARGE_40_MAXLEN 0x000000FFFFFFFF00 00286 #define CM_RESOURCE_MEMORY_LARGE_48_MAXLEN 0x0000FFFFFFFF0000 00287 #define CM_RESOURCE_MEMORY_LARGE_64_MAXLEN 0xFFFFFFFF00000000 00288 00289 /* CM_PARTIAL_RESOURCE_DESCRIPTOR.Flags if Type = CmResourceTypeDma */ 00290 #define CM_RESOURCE_DMA_8 0x0000 00291 #define CM_RESOURCE_DMA_16 0x0001 00292 #define CM_RESOURCE_DMA_32 0x0002 00293 #define CM_RESOURCE_DMA_8_AND_16 0x0004 00294 #define CM_RESOURCE_DMA_BUS_MASTER 0x0008 00295 #define CM_RESOURCE_DMA_TYPE_A 0x0010 00296 #define CM_RESOURCE_DMA_TYPE_B 0x0020 00297 #define CM_RESOURCE_DMA_TYPE_F 0x0040 00298 00299 typedef struct _DEVICE_FLAGS { 00300 ULONG Failed:1; 00301 ULONG ReadOnly:1; 00302 ULONG Removable:1; 00303 ULONG ConsoleIn:1; 00304 ULONG ConsoleOut:1; 00305 ULONG Input:1; 00306 ULONG Output:1; 00307 } DEVICE_FLAGS, *PDEVICE_FLAGS; 00308 00309 typedef enum _INTERFACE_TYPE { 00310 InterfaceTypeUndefined = -1, 00311 Internal, 00312 Isa, 00313 Eisa, 00314 MicroChannel, 00315 TurboChannel, 00316 PCIBus, 00317 VMEBus, 00318 NuBus, 00319 PCMCIABus, 00320 CBus, 00321 MPIBus, 00322 MPSABus, 00323 ProcessorInternal, 00324 InternalPowerBus, 00325 PNPISABus, 00326 PNPBus, 00327 Vmcs, 00328 MaximumInterfaceType 00329 } INTERFACE_TYPE, *PINTERFACE_TYPE; 00330 00331 typedef struct _CM_COMPONENT_INFORMATION { 00332 DEVICE_FLAGS Flags; 00333 ULONG Version; 00334 ULONG Key; 00335 KAFFINITY AffinityMask; 00336 } CM_COMPONENT_INFORMATION, *PCM_COMPONENT_INFORMATION; 00337 00338 typedef struct _CM_ROM_BLOCK { 00339 ULONG Address; 00340 ULONG Size; 00341 } CM_ROM_BLOCK, *PCM_ROM_BLOCK; 00342 00343 typedef struct _CM_PARTIAL_RESOURCE_LIST { 00344 USHORT Version; 00345 USHORT Revision; 00346 ULONG Count; 00347 CM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptors[1]; 00348 } CM_PARTIAL_RESOURCE_LIST, *PCM_PARTIAL_RESOURCE_LIST; 00349 00350 typedef struct _CM_FULL_RESOURCE_DESCRIPTOR { 00351 INTERFACE_TYPE InterfaceType; 00352 ULONG BusNumber; 00353 CM_PARTIAL_RESOURCE_LIST PartialResourceList; 00354 } CM_FULL_RESOURCE_DESCRIPTOR, *PCM_FULL_RESOURCE_DESCRIPTOR; 00355 00356 typedef struct _CM_RESOURCE_LIST { 00357 ULONG Count; 00358 CM_FULL_RESOURCE_DESCRIPTOR List[1]; 00359 } CM_RESOURCE_LIST, *PCM_RESOURCE_LIST; 00360 00361 typedef struct _PNP_BUS_INFORMATION { 00362 GUID BusTypeGuid; 00363 INTERFACE_TYPE LegacyBusType; 00364 ULONG BusNumber; 00365 } PNP_BUS_INFORMATION, *PPNP_BUS_INFORMATION; 00366 00367 #include <pshpack1.h> 00368 00369 typedef struct _CM_INT13_DRIVE_PARAMETER { 00370 USHORT DriveSelect; 00371 ULONG MaxCylinders; 00372 USHORT SectorsPerTrack; 00373 USHORT MaxHeads; 00374 USHORT NumberDrives; 00375 } CM_INT13_DRIVE_PARAMETER, *PCM_INT13_DRIVE_PARAMETER; 00376 00377 typedef struct _CM_MCA_POS_DATA { 00378 USHORT AdapterId; 00379 UCHAR PosData1; 00380 UCHAR PosData2; 00381 UCHAR PosData3; 00382 UCHAR PosData4; 00383 } CM_MCA_POS_DATA, *PCM_MCA_POS_DATA; 00384 00385 typedef struct _CM_PNP_BIOS_DEVICE_NODE { 00386 USHORT Size; 00387 UCHAR Node; 00388 ULONG ProductId; 00389 UCHAR DeviceType[3]; 00390 USHORT DeviceAttributes; 00391 } CM_PNP_BIOS_DEVICE_NODE,*PCM_PNP_BIOS_DEVICE_NODE; 00392 00393 typedef struct _CM_PNP_BIOS_INSTALLATION_CHECK { 00394 UCHAR Signature[4]; 00395 UCHAR Revision; 00396 UCHAR Length; 00397 USHORT ControlField; 00398 UCHAR Checksum; 00399 ULONG EventFlagAddress; 00400 USHORT RealModeEntryOffset; 00401 USHORT RealModeEntrySegment; 00402 USHORT ProtectedModeEntryOffset; 00403 ULONG ProtectedModeCodeBaseAddress; 00404 ULONG OemDeviceId; 00405 USHORT RealModeDataBaseAddress; 00406 ULONG ProtectedModeDataBaseAddress; 00407 } CM_PNP_BIOS_INSTALLATION_CHECK, *PCM_PNP_BIOS_INSTALLATION_CHECK; 00408 00409 #include <poppack.h> 00410 00411 typedef struct _CM_DISK_GEOMETRY_DEVICE_DATA { 00412 ULONG BytesPerSector; 00413 ULONG NumberOfCylinders; 00414 ULONG SectorsPerTrack; 00415 ULONG NumberOfHeads; 00416 } CM_DISK_GEOMETRY_DEVICE_DATA, *PCM_DISK_GEOMETRY_DEVICE_DATA; 00417 00418 typedef struct _CM_KEYBOARD_DEVICE_DATA { 00419 USHORT Version; 00420 USHORT Revision; 00421 UCHAR Type; 00422 UCHAR Subtype; 00423 USHORT KeyboardFlags; 00424 } CM_KEYBOARD_DEVICE_DATA, *PCM_KEYBOARD_DEVICE_DATA; 00425 00426 typedef struct _CM_SCSI_DEVICE_DATA { 00427 USHORT Version; 00428 USHORT Revision; 00429 UCHAR HostIdentifier; 00430 } CM_SCSI_DEVICE_DATA, *PCM_SCSI_DEVICE_DATA; 00431 00432 typedef struct _CM_VIDEO_DEVICE_DATA { 00433 USHORT Version; 00434 USHORT Revision; 00435 ULONG VideoClock; 00436 } CM_VIDEO_DEVICE_DATA, *PCM_VIDEO_DEVICE_DATA; 00437 00438 typedef struct _CM_SONIC_DEVICE_DATA { 00439 USHORT Version; 00440 USHORT Revision; 00441 USHORT DataConfigurationRegister; 00442 UCHAR EthernetAddress[8]; 00443 } CM_SONIC_DEVICE_DATA, *PCM_SONIC_DEVICE_DATA; 00444 00445 typedef struct _CM_SERIAL_DEVICE_DATA { 00446 USHORT Version; 00447 USHORT Revision; 00448 ULONG BaudClock; 00449 } CM_SERIAL_DEVICE_DATA, *PCM_SERIAL_DEVICE_DATA; 00450 00451 typedef struct _CM_MONITOR_DEVICE_DATA { 00452 USHORT Version; 00453 USHORT Revision; 00454 USHORT HorizontalScreenSize; 00455 USHORT VerticalScreenSize; 00456 USHORT HorizontalResolution; 00457 USHORT VerticalResolution; 00458 USHORT HorizontalDisplayTimeLow; 00459 USHORT HorizontalDisplayTime; 00460 USHORT HorizontalDisplayTimeHigh; 00461 USHORT HorizontalBackPorchLow; 00462 USHORT HorizontalBackPorch; 00463 USHORT HorizontalBackPorchHigh; 00464 USHORT HorizontalFrontPorchLow; 00465 USHORT HorizontalFrontPorch; 00466 USHORT HorizontalFrontPorchHigh; 00467 USHORT HorizontalSyncLow; 00468 USHORT HorizontalSync; 00469 USHORT HorizontalSyncHigh; 00470 USHORT VerticalBackPorchLow; 00471 USHORT VerticalBackPorch; 00472 USHORT VerticalBackPorchHigh; 00473 USHORT VerticalFrontPorchLow; 00474 USHORT VerticalFrontPorch; 00475 USHORT VerticalFrontPorchHigh; 00476 USHORT VerticalSyncLow; 00477 USHORT VerticalSync; 00478 USHORT VerticalSyncHigh; 00479 } CM_MONITOR_DEVICE_DATA, *PCM_MONITOR_DEVICE_DATA; 00480 00481 typedef struct _CM_FLOPPY_DEVICE_DATA { 00482 USHORT Version; 00483 USHORT Revision; 00484 CHAR Size[8]; 00485 ULONG MaxDensity; 00486 ULONG MountDensity; 00487 UCHAR StepRateHeadUnloadTime; 00488 UCHAR HeadLoadTime; 00489 UCHAR MotorOffTime; 00490 UCHAR SectorLengthCode; 00491 UCHAR SectorPerTrack; 00492 UCHAR ReadWriteGapLength; 00493 UCHAR DataTransferLength; 00494 UCHAR FormatGapLength; 00495 UCHAR FormatFillCharacter; 00496 UCHAR HeadSettleTime; 00497 UCHAR MotorSettleTime; 00498 UCHAR MaximumTrackValue; 00499 UCHAR DataTransferRate; 00500 } CM_FLOPPY_DEVICE_DATA, *PCM_FLOPPY_DEVICE_DATA; 00501 00502 typedef enum _KEY_INFORMATION_CLASS { 00503 KeyBasicInformation, 00504 KeyNodeInformation, 00505 KeyFullInformation, 00506 KeyNameInformation, 00507 KeyCachedInformation, 00508 KeyFlagsInformation, 00509 KeyVirtualizationInformation, 00510 KeyHandleTagsInformation, 00511 MaxKeyInfoClass 00512 } KEY_INFORMATION_CLASS; 00513 00514 typedef struct _KEY_BASIC_INFORMATION { 00515 LARGE_INTEGER LastWriteTime; 00516 ULONG TitleIndex; 00517 ULONG NameLength; 00518 WCHAR Name[1]; 00519 } KEY_BASIC_INFORMATION, *PKEY_BASIC_INFORMATION; 00520 00521 typedef struct _KEY_CONTROL_FLAGS_INFORMATION { 00522 ULONG ControlFlags; 00523 } KEY_CONTROL_FLAGS_INFORMATION, *PKEY_CONTROL_FLAGS_INFORMATION; 00524 00525 typedef struct _KEY_FULL_INFORMATION { 00526 LARGE_INTEGER LastWriteTime; 00527 ULONG TitleIndex; 00528 ULONG ClassOffset; 00529 ULONG ClassLength; 00530 ULONG SubKeys; 00531 ULONG MaxNameLen; 00532 ULONG MaxClassLen; 00533 ULONG Values; 00534 ULONG MaxValueNameLen; 00535 ULONG MaxValueDataLen; 00536 WCHAR Class[1]; 00537 } KEY_FULL_INFORMATION, *PKEY_FULL_INFORMATION; 00538 00539 typedef struct _KEY_HANDLE_TAGS_INFORMATION { 00540 ULONG HandleTags; 00541 } KEY_HANDLE_TAGS_INFORMATION, *PKEY_HANDLE_TAGS_INFORMATION; 00542 00543 typedef struct _KEY_NODE_INFORMATION { 00544 LARGE_INTEGER LastWriteTime; 00545 ULONG TitleIndex; 00546 ULONG ClassOffset; 00547 ULONG ClassLength; 00548 ULONG NameLength; 00549 WCHAR Name[1]; 00550 } KEY_NODE_INFORMATION, *PKEY_NODE_INFORMATION; 00551 00552 typedef enum _KEY_SET_INFORMATION_CLASS { 00553 KeyWriteTimeInformation, 00554 KeyWow64FlagsInformation, 00555 KeyControlFlagsInformation, 00556 KeySetVirtualizationInformation, 00557 KeySetDebugInformation, 00558 KeySetHandleTagsInformation, 00559 MaxKeySetInfoClass 00560 } KEY_SET_INFORMATION_CLASS; 00561 00562 typedef struct _KEY_SET_VIRTUALIZATION_INFORMATION { 00563 ULONG VirtualTarget:1; 00564 ULONG VirtualStore:1; 00565 ULONG VirtualSource:1; 00566 ULONG Reserved:29; 00567 } KEY_SET_VIRTUALIZATION_INFORMATION, *PKEY_SET_VIRTUALIZATION_INFORMATION; 00568 00569 typedef struct _KEY_VALUE_BASIC_INFORMATION { 00570 ULONG TitleIndex; 00571 ULONG Type; 00572 ULONG NameLength; 00573 WCHAR Name[1]; 00574 } KEY_VALUE_BASIC_INFORMATION, *PKEY_VALUE_BASIC_INFORMATION; 00575 00576 typedef struct _KEY_VALUE_FULL_INFORMATION { 00577 ULONG TitleIndex; 00578 ULONG Type; 00579 ULONG DataOffset; 00580 ULONG DataLength; 00581 ULONG NameLength; 00582 WCHAR Name[1]; 00583 } KEY_VALUE_FULL_INFORMATION, *PKEY_VALUE_FULL_INFORMATION; 00584 00585 typedef struct _KEY_VALUE_PARTIAL_INFORMATION { 00586 ULONG TitleIndex; 00587 ULONG Type; 00588 ULONG DataLength; 00589 _Field_size_bytes_(DataLength) UCHAR Data[1]; 00590 } KEY_VALUE_PARTIAL_INFORMATION, *PKEY_VALUE_PARTIAL_INFORMATION; 00591 00592 typedef struct _KEY_VALUE_PARTIAL_INFORMATION_ALIGN64 { 00593 ULONG Type; 00594 ULONG DataLength; 00595 _Field_size_bytes_(DataLength) UCHAR Data[1]; 00596 } KEY_VALUE_PARTIAL_INFORMATION_ALIGN64, *PKEY_VALUE_PARTIAL_INFORMATION_ALIGN64; 00597 00598 typedef struct _KEY_VALUE_ENTRY { 00599 PUNICODE_STRING ValueName; 00600 ULONG DataLength; 00601 ULONG DataOffset; 00602 ULONG Type; 00603 } KEY_VALUE_ENTRY, *PKEY_VALUE_ENTRY; 00604 00605 typedef enum _KEY_VALUE_INFORMATION_CLASS { 00606 KeyValueBasicInformation, 00607 KeyValueFullInformation, 00608 KeyValuePartialInformation, 00609 KeyValueFullInformationAlign64, 00610 KeyValuePartialInformationAlign64 00611 } KEY_VALUE_INFORMATION_CLASS; 00612 00613 typedef struct _KEY_WOW64_FLAGS_INFORMATION { 00614 ULONG UserFlags; 00615 } KEY_WOW64_FLAGS_INFORMATION, *PKEY_WOW64_FLAGS_INFORMATION; 00616 00617 typedef struct _KEY_WRITE_TIME_INFORMATION { 00618 LARGE_INTEGER LastWriteTime; 00619 } KEY_WRITE_TIME_INFORMATION, *PKEY_WRITE_TIME_INFORMATION; 00620 00621 typedef enum _REG_NOTIFY_CLASS { 00622 RegNtDeleteKey, 00623 RegNtPreDeleteKey = RegNtDeleteKey, 00624 RegNtSetValueKey, 00625 RegNtPreSetValueKey = RegNtSetValueKey, 00626 RegNtDeleteValueKey, 00627 RegNtPreDeleteValueKey = RegNtDeleteValueKey, 00628 RegNtSetInformationKey, 00629 RegNtPreSetInformationKey = RegNtSetInformationKey, 00630 RegNtRenameKey, 00631 RegNtPreRenameKey = RegNtRenameKey, 00632 RegNtEnumerateKey, 00633 RegNtPreEnumerateKey = RegNtEnumerateKey, 00634 RegNtEnumerateValueKey, 00635 RegNtPreEnumerateValueKey = RegNtEnumerateValueKey, 00636 RegNtQueryKey, 00637 RegNtPreQueryKey = RegNtQueryKey, 00638 RegNtQueryValueKey, 00639 RegNtPreQueryValueKey = RegNtQueryValueKey, 00640 RegNtQueryMultipleValueKey, 00641 RegNtPreQueryMultipleValueKey = RegNtQueryMultipleValueKey, 00642 RegNtPreCreateKey, 00643 RegNtPostCreateKey, 00644 RegNtPreOpenKey, 00645 RegNtPostOpenKey, 00646 RegNtKeyHandleClose, 00647 RegNtPreKeyHandleClose = RegNtKeyHandleClose, 00648 RegNtPostDeleteKey, 00649 RegNtPostSetValueKey, 00650 RegNtPostDeleteValueKey, 00651 RegNtPostSetInformationKey, 00652 RegNtPostRenameKey, 00653 RegNtPostEnumerateKey, 00654 RegNtPostEnumerateValueKey, 00655 RegNtPostQueryKey, 00656 RegNtPostQueryValueKey, 00657 RegNtPostQueryMultipleValueKey, 00658 RegNtPostKeyHandleClose, 00659 RegNtPreCreateKeyEx, 00660 RegNtPostCreateKeyEx, 00661 RegNtPreOpenKeyEx, 00662 RegNtPostOpenKeyEx, 00663 RegNtPreFlushKey, 00664 RegNtPostFlushKey, 00665 RegNtPreLoadKey, 00666 RegNtPostLoadKey, 00667 RegNtPreUnLoadKey, 00668 RegNtPostUnLoadKey, 00669 RegNtPreQueryKeySecurity, 00670 RegNtPostQueryKeySecurity, 00671 RegNtPreSetKeySecurity, 00672 RegNtPostSetKeySecurity, 00673 RegNtCallbackObjectContextCleanup, 00674 RegNtPreRestoreKey, 00675 RegNtPostRestoreKey, 00676 RegNtPreSaveKey, 00677 RegNtPostSaveKey, 00678 RegNtPreReplaceKey, 00679 RegNtPostReplaceKey, 00680 MaxRegNtNotifyClass 00681 } REG_NOTIFY_CLASS, *PREG_NOTIFY_CLASS; 00682 00683 _IRQL_requires_same_ 00684 _Function_class_(EX_CALLBACK_FUNCTION) 00685 typedef NTSTATUS 00686 (NTAPI EX_CALLBACK_FUNCTION)( 00687 _In_ PVOID CallbackContext, 00688 _In_opt_ PVOID Argument1, 00689 _In_opt_ PVOID Argument2); 00690 typedef EX_CALLBACK_FUNCTION *PEX_CALLBACK_FUNCTION; 00691 00692 typedef struct _REG_DELETE_KEY_INFORMATION { 00693 PVOID Object; 00694 PVOID CallContext; 00695 PVOID ObjectContext; 00696 PVOID Reserved; 00697 } REG_DELETE_KEY_INFORMATION, *PREG_DELETE_KEY_INFORMATION 00698 #if (NTDDI_VERSION >= NTDDI_VISTA) 00699 , REG_FLUSH_KEY_INFORMATION, *PREG_FLUSH_KEY_INFORMATION 00700 #endif 00701 ; 00702 00703 typedef struct _REG_SET_VALUE_KEY_INFORMATION { 00704 PVOID Object; 00705 PUNICODE_STRING ValueName; 00706 ULONG TitleIndex; 00707 ULONG Type; 00708 PVOID Data; 00709 ULONG DataSize; 00710 PVOID CallContext; 00711 PVOID ObjectContext; 00712 PVOID Reserved; 00713 } REG_SET_VALUE_KEY_INFORMATION, *PREG_SET_VALUE_KEY_INFORMATION; 00714 00715 typedef struct _REG_DELETE_VALUE_KEY_INFORMATION { 00716 PVOID Object; 00717 PUNICODE_STRING ValueName; 00718 PVOID CallContext; 00719 PVOID ObjectContext; 00720 PVOID Reserved; 00721 } REG_DELETE_VALUE_KEY_INFORMATION, *PREG_DELETE_VALUE_KEY_INFORMATION; 00722 00723 typedef struct _REG_SET_INFORMATION_KEY_INFORMATION { 00724 PVOID Object; 00725 KEY_SET_INFORMATION_CLASS KeySetInformationClass; 00726 PVOID KeySetInformation; 00727 ULONG KeySetInformationLength; 00728 PVOID CallContext; 00729 PVOID ObjectContext; 00730 PVOID Reserved; 00731 } REG_SET_INFORMATION_KEY_INFORMATION, *PREG_SET_INFORMATION_KEY_INFORMATION; 00732 00733 typedef struct _REG_ENUMERATE_KEY_INFORMATION { 00734 PVOID Object; 00735 ULONG Index; 00736 KEY_INFORMATION_CLASS KeyInformationClass; 00737 PVOID KeyInformation; 00738 ULONG Length; 00739 PULONG ResultLength; 00740 PVOID CallContext; 00741 PVOID ObjectContext; 00742 PVOID Reserved; 00743 } REG_ENUMERATE_KEY_INFORMATION, *PREG_ENUMERATE_KEY_INFORMATION; 00744 00745 typedef struct _REG_ENUMERATE_VALUE_KEY_INFORMATION { 00746 PVOID Object; 00747 ULONG Index; 00748 KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass; 00749 PVOID KeyValueInformation; 00750 ULONG Length; 00751 PULONG ResultLength; 00752 PVOID CallContext; 00753 PVOID ObjectContext; 00754 PVOID Reserved; 00755 } REG_ENUMERATE_VALUE_KEY_INFORMATION, *PREG_ENUMERATE_VALUE_KEY_INFORMATION; 00756 00757 typedef struct _REG_QUERY_KEY_INFORMATION { 00758 PVOID Object; 00759 KEY_INFORMATION_CLASS KeyInformationClass; 00760 PVOID KeyInformation; 00761 ULONG Length; 00762 PULONG ResultLength; 00763 PVOID CallContext; 00764 PVOID ObjectContext; 00765 PVOID Reserved; 00766 } REG_QUERY_KEY_INFORMATION, *PREG_QUERY_KEY_INFORMATION; 00767 00768 typedef struct _REG_QUERY_VALUE_KEY_INFORMATION { 00769 PVOID Object; 00770 PUNICODE_STRING ValueName; 00771 KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass; 00772 PVOID KeyValueInformation; 00773 ULONG Length; 00774 PULONG ResultLength; 00775 PVOID CallContext; 00776 PVOID ObjectContext; 00777 PVOID Reserved; 00778 } REG_QUERY_VALUE_KEY_INFORMATION, *PREG_QUERY_VALUE_KEY_INFORMATION; 00779 00780 typedef struct _REG_QUERY_MULTIPLE_VALUE_KEY_INFORMATION { 00781 PVOID Object; 00782 PKEY_VALUE_ENTRY ValueEntries; 00783 ULONG EntryCount; 00784 PVOID ValueBuffer; 00785 PULONG BufferLength; 00786 PULONG RequiredBufferLength; 00787 PVOID CallContext; 00788 PVOID ObjectContext; 00789 PVOID Reserved; 00790 } REG_QUERY_MULTIPLE_VALUE_KEY_INFORMATION, *PREG_QUERY_MULTIPLE_VALUE_KEY_INFORMATION; 00791 00792 typedef struct _REG_RENAME_KEY_INFORMATION { 00793 PVOID Object; 00794 PUNICODE_STRING NewName; 00795 PVOID CallContext; 00796 PVOID ObjectContext; 00797 PVOID Reserved; 00798 } REG_RENAME_KEY_INFORMATION, *PREG_RENAME_KEY_INFORMATION; 00799 00800 typedef struct _REG_CREATE_KEY_INFORMATION { 00801 PUNICODE_STRING CompleteName; 00802 PVOID RootObject; 00803 PVOID ObjectType; 00804 ULONG CreateOptions; 00805 PUNICODE_STRING Class; 00806 PVOID SecurityDescriptor; 00807 PVOID SecurityQualityOfService; 00808 ACCESS_MASK DesiredAccess; 00809 ACCESS_MASK GrantedAccess; 00810 PULONG Disposition; 00811 PVOID *ResultObject; 00812 PVOID CallContext; 00813 PVOID RootObjectContext; 00814 PVOID Transaction; 00815 PVOID Reserved; 00816 } REG_CREATE_KEY_INFORMATION, REG_OPEN_KEY_INFORMATION,*PREG_CREATE_KEY_INFORMATION, *PREG_OPEN_KEY_INFORMATION; 00817 00818 typedef struct _REG_CREATE_KEY_INFORMATION_V1 { 00819 PUNICODE_STRING CompleteName; 00820 PVOID RootObject; 00821 PVOID ObjectType; 00822 ULONG Options; 00823 PUNICODE_STRING Class; 00824 PVOID SecurityDescriptor; 00825 PVOID SecurityQualityOfService; 00826 ACCESS_MASK DesiredAccess; 00827 ACCESS_MASK GrantedAccess; 00828 PULONG Disposition; 00829 PVOID *ResultObject; 00830 PVOID CallContext; 00831 PVOID RootObjectContext; 00832 PVOID Transaction; 00833 ULONG_PTR Version; 00834 PUNICODE_STRING RemainingName; 00835 ULONG Wow64Flags; 00836 ULONG Attributes; 00837 KPROCESSOR_MODE CheckAccessMode; 00838 } REG_CREATE_KEY_INFORMATION_V1, REG_OPEN_KEY_INFORMATION_V1,*PREG_CREATE_KEY_INFORMATION_V1, *PREG_OPEN_KEY_INFORMATION_V1; 00839 00840 typedef struct _REG_PRE_CREATE_KEY_INFORMATION { 00841 PUNICODE_STRING CompleteName; 00842 } REG_PRE_CREATE_KEY_INFORMATION, REG_PRE_OPEN_KEY_INFORMATION,*PREG_PRE_CREATE_KEY_INFORMATION, *PREG_PRE_OPEN_KEY_INFORMATION;; 00843 00844 typedef struct _REG_POST_CREATE_KEY_INFORMATION { 00845 PUNICODE_STRING CompleteName; 00846 PVOID Object; 00847 NTSTATUS Status; 00848 } REG_POST_CREATE_KEY_INFORMATION,REG_POST_OPEN_KEY_INFORMATION, *PREG_POST_CREATE_KEY_INFORMATION, *PREG_POST_OPEN_KEY_INFORMATION; 00849 00850 typedef struct _REG_POST_OPERATION_INFORMATION { 00851 PVOID Object; 00852 NTSTATUS Status; 00853 PVOID PreInformation; 00854 NTSTATUS ReturnStatus; 00855 PVOID CallContext; 00856 PVOID ObjectContext; 00857 PVOID Reserved; 00858 } REG_POST_OPERATION_INFORMATION,*PREG_POST_OPERATION_INFORMATION; 00859 00860 typedef struct _REG_KEY_HANDLE_CLOSE_INFORMATION { 00861 PVOID Object; 00862 PVOID CallContext; 00863 PVOID ObjectContext; 00864 PVOID Reserved; 00865 } REG_KEY_HANDLE_CLOSE_INFORMATION, *PREG_KEY_HANDLE_CLOSE_INFORMATION; 00866 00867 #if (NTDDI_VERSION >= NTDDI_VISTA) 00868 00869 typedef struct _REG_LOAD_KEY_INFORMATION { 00870 PVOID Object; 00871 PUNICODE_STRING KeyName; 00872 PUNICODE_STRING SourceFile; 00873 ULONG Flags; 00874 PVOID TrustClassObject; 00875 PVOID UserEvent; 00876 ACCESS_MASK DesiredAccess; 00877 PHANDLE RootHandle; 00878 PVOID CallContext; 00879 PVOID ObjectContext; 00880 PVOID Reserved; 00881 } REG_LOAD_KEY_INFORMATION, *PREG_LOAD_KEY_INFORMATION; 00882 00883 typedef struct _REG_UNLOAD_KEY_INFORMATION { 00884 PVOID Object; 00885 PVOID UserEvent; 00886 PVOID CallContext; 00887 PVOID ObjectContext; 00888 PVOID Reserved; 00889 } REG_UNLOAD_KEY_INFORMATION, *PREG_UNLOAD_KEY_INFORMATION; 00890 00891 typedef struct _REG_CALLBACK_CONTEXT_CLEANUP_INFORMATION { 00892 PVOID Object; 00893 PVOID ObjectContext; 00894 PVOID Reserved; 00895 } REG_CALLBACK_CONTEXT_CLEANUP_INFORMATION, *PREG_CALLBACK_CONTEXT_CLEANUP_INFORMATION; 00896 00897 typedef struct _REG_QUERY_KEY_SECURITY_INFORMATION { 00898 PVOID Object; 00899 PSECURITY_INFORMATION SecurityInformation; 00900 PSECURITY_DESCRIPTOR SecurityDescriptor; 00901 PULONG Length; 00902 PVOID CallContext; 00903 PVOID ObjectContext; 00904 PVOID Reserved; 00905 } REG_QUERY_KEY_SECURITY_INFORMATION, *PREG_QUERY_KEY_SECURITY_INFORMATION; 00906 00907 typedef struct _REG_SET_KEY_SECURITY_INFORMATION { 00908 PVOID Object; 00909 PSECURITY_INFORMATION SecurityInformation; 00910 PSECURITY_DESCRIPTOR SecurityDescriptor; 00911 PVOID CallContext; 00912 PVOID ObjectContext; 00913 PVOID Reserved; 00914 } REG_SET_KEY_SECURITY_INFORMATION, *PREG_SET_KEY_SECURITY_INFORMATION; 00915 00916 typedef struct _REG_RESTORE_KEY_INFORMATION { 00917 PVOID Object; 00918 HANDLE FileHandle; 00919 ULONG Flags; 00920 PVOID CallContext; 00921 PVOID ObjectContext; 00922 PVOID Reserved; 00923 } REG_RESTORE_KEY_INFORMATION, *PREG_RESTORE_KEY_INFORMATION; 00924 00925 typedef struct _REG_SAVE_KEY_INFORMATION { 00926 PVOID Object; 00927 HANDLE FileHandle; 00928 ULONG Format; 00929 PVOID CallContext; 00930 PVOID ObjectContext; 00931 PVOID Reserved; 00932 } REG_SAVE_KEY_INFORMATION, *PREG_SAVE_KEY_INFORMATION; 00933 00934 typedef struct _REG_REPLACE_KEY_INFORMATION { 00935 PVOID Object; 00936 PUNICODE_STRING OldFileName; 00937 PUNICODE_STRING NewFileName; 00938 PVOID CallContext; 00939 PVOID ObjectContext; 00940 PVOID Reserved; 00941 } REG_REPLACE_KEY_INFORMATION, *PREG_REPLACE_KEY_INFORMATION; 00942 00943 #endif /* NTDDI_VERSION >= NTDDI_VISTA */ 00944 00945 #define SERVICE_KERNEL_DRIVER 0x00000001 00946 #define SERVICE_FILE_SYSTEM_DRIVER 0x00000002 00947 #define SERVICE_ADAPTER 0x00000004 00948 #define SERVICE_RECOGNIZER_DRIVER 0x00000008 00949 00950 #define SERVICE_DRIVER (SERVICE_KERNEL_DRIVER | \ 00951 SERVICE_FILE_SYSTEM_DRIVER | \ 00952 SERVICE_RECOGNIZER_DRIVER) 00953 00954 #define SERVICE_WIN32_OWN_PROCESS 0x00000010 00955 #define SERVICE_WIN32_SHARE_PROCESS 0x00000020 00956 #define SERVICE_WIN32 (SERVICE_WIN32_OWN_PROCESS | \ 00957 SERVICE_WIN32_SHARE_PROCESS) 00958 00959 #define SERVICE_INTERACTIVE_PROCESS 0x00000100 00960 00961 #define SERVICE_TYPE_ALL (SERVICE_WIN32 | \ 00962 SERVICE_ADAPTER | \ 00963 SERVICE_DRIVER | \ 00964 SERVICE_INTERACTIVE_PROCESS) 00965 00966 /* Service Start Types */ 00967 #define SERVICE_BOOT_START 0x00000000 00968 #define SERVICE_SYSTEM_START 0x00000001 00969 #define SERVICE_AUTO_START 0x00000002 00970 #define SERVICE_DEMAND_START 0x00000003 00971 #define SERVICE_DISABLED 0x00000004 00972 00973 #define SERVICE_ERROR_IGNORE 0x00000000 00974 #define SERVICE_ERROR_NORMAL 0x00000001 00975 #define SERVICE_ERROR_SEVERE 0x00000002 00976 #define SERVICE_ERROR_CRITICAL 0x00000003 00977 00978 typedef enum _CM_SERVICE_NODE_TYPE { 00979 DriverType = SERVICE_KERNEL_DRIVER, 00980 FileSystemType = SERVICE_FILE_SYSTEM_DRIVER, 00981 Win32ServiceOwnProcess = SERVICE_WIN32_OWN_PROCESS, 00982 Win32ServiceShareProcess = SERVICE_WIN32_SHARE_PROCESS, 00983 AdapterType = SERVICE_ADAPTER, 00984 RecognizerType = SERVICE_RECOGNIZER_DRIVER 00985 } SERVICE_NODE_TYPE; 00986 00987 typedef enum _CM_SERVICE_LOAD_TYPE { 00988 BootLoad = SERVICE_BOOT_START, 00989 SystemLoad = SERVICE_SYSTEM_START, 00990 AutoLoad = SERVICE_AUTO_START, 00991 DemandLoad = SERVICE_DEMAND_START, 00992 DisableLoad = SERVICE_DISABLED 00993 } SERVICE_LOAD_TYPE; 00994 00995 typedef enum _CM_ERROR_CONTROL_TYPE { 00996 IgnoreError = SERVICE_ERROR_IGNORE, 00997 NormalError = SERVICE_ERROR_NORMAL, 00998 SevereError = SERVICE_ERROR_SEVERE, 00999 CriticalError = SERVICE_ERROR_CRITICAL 01000 } SERVICE_ERROR_TYPE; 01001 01002 #define CM_SERVICE_NETWORK_BOOT_LOAD 0x00000001 01003 #define CM_SERVICE_VIRTUAL_DISK_BOOT_LOAD 0x00000002 01004 #define CM_SERVICE_USB_DISK_BOOT_LOAD 0x00000004 01005 01006 #define CM_SERVICE_VALID_PROMOTION_MASK (CM_SERVICE_NETWORK_BOOT_LOAD | \ 01007 CM_SERVICE_VIRTUAL_DISK_BOOT_LOAD | \ 01008 CM_SERVICE_USB_DISK_BOOT_LOAD) 01009 01010 $endif (_WDMDDK_) 01011 $if (_NTDDK_) 01012 typedef struct _KEY_NAME_INFORMATION { 01013 ULONG NameLength; 01014 WCHAR Name[1]; 01015 } KEY_NAME_INFORMATION, *PKEY_NAME_INFORMATION; 01016 01017 typedef struct _KEY_CACHED_INFORMATION { 01018 LARGE_INTEGER LastWriteTime; 01019 ULONG TitleIndex; 01020 ULONG SubKeys; 01021 ULONG MaxNameLen; 01022 ULONG Values; 01023 ULONG MaxValueNameLen; 01024 ULONG MaxValueDataLen; 01025 ULONG NameLength; 01026 } KEY_CACHED_INFORMATION, *PKEY_CACHED_INFORMATION; 01027 01028 typedef struct _KEY_VIRTUALIZATION_INFORMATION { 01029 ULONG VirtualizationCandidate:1; 01030 ULONG VirtualizationEnabled:1; 01031 ULONG VirtualTarget:1; 01032 ULONG VirtualStore:1; 01033 ULONG VirtualSource:1; 01034 ULONG Reserved:27; 01035 } KEY_VIRTUALIZATION_INFORMATION, *PKEY_VIRTUALIZATION_INFORMATION; 01036 01037 #define CmResourceTypeMaximum 8 01038 01039 typedef struct _CM_PCCARD_DEVICE_DATA { 01040 UCHAR Flags; 01041 UCHAR ErrorCode; 01042 USHORT Reserved; 01043 ULONG BusData; 01044 ULONG DeviceId; 01045 ULONG LegacyBaseAddress; 01046 UCHAR IRQMap[16]; 01047 } CM_PCCARD_DEVICE_DATA, *PCM_PCCARD_DEVICE_DATA; 01048 01049 $endif (_NTDDK_) Generated on Sun May 27 2012 04:30:49 for ReactOS by
1.7.6.1
|