ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

cmtypes.h
Go to the documentation of this file.
00001 /*++ NDK Version: 0098
00002 
00003 Copyright (c) Alex Ionescu.  All rights reserved.
00004 
00005 Header Name:
00006 
00007     cmtypes.h
00008 
00009 Abstract:
00010 
00011     Type definitions for the Configuration Manager.
00012 
00013 Author:
00014 
00015     Alex Ionescu (alexi@tinykrnl.org) - Updated - 27-Feb-2006
00016 
00017 --*/
00018 
00019 #ifndef _CMTYPES_H
00020 #define _CMTYPES_H
00021 
00022 //
00023 // Dependencies
00024 //
00025 #include <umtypes.h>
00026 #include <cfg.h>
00027 #include <iotypes.h>
00028 
00029 #define MAX_BUS_NAME 24
00030 
00031 //
00032 // PLUGPLAY_CONTROL_RELATED_DEVICE_DATA.Relations
00033 //
00034 #define PNP_GET_PARENT_DEVICE           1
00035 #define PNP_GET_CHILD_DEVICE            2
00036 #define PNP_GET_SIBLING_DEVICE          3
00037 
00038 //
00039 // PLUGPLAY_CONTROL_STATUS_DATA Operations
00040 //
00041 #define PNP_GET_DEVICE_STATUS           0
00042 #define PNP_SET_DEVICE_STATUS           1
00043 #define PNP_CLEAR_DEVICE_STATUS         2
00044 
00045 #ifdef NTOS_MODE_USER
00046 
00047 //
00048 // Resource Type
00049 //
00050 #define CmResourceTypeNull                      0
00051 #define CmResourceTypePort                      1
00052 #define CmResourceTypeInterrupt                 2
00053 #define CmResourceTypeMemory                    3
00054 #define CmResourceTypeDma                       4
00055 #define CmResourceTypeDeviceSpecific            5
00056 #define CmResourceTypeBusNumber                 6
00057 #define CmResourceTypeMemoryLarge               7
00058 #define CmResourceTypeNonArbitrated             128
00059 #define CmResourceTypeConfigData                128
00060 #define CmResourceTypeDevicePrivate             129
00061 #define CmResourceTypePcCardConfig              130
00062 #define CmResourceTypeMfCardConfig              131
00063 
00064 
00065 //
00066 // Resource Descriptor Share Dispositions
00067 //
00068 typedef enum _CM_SHARE_DISPOSITION
00069 {
00070     CmResourceShareUndetermined,
00071     CmResourceShareDeviceExclusive,
00072     CmResourceShareDriverExclusive,
00073     CmResourceShareShared
00074 } CM_SHARE_DISPOSITION;
00075 
00076 #endif
00077 
00078 //
00079 // Port Resource Descriptor Flags
00080 //
00081 #define CM_RESOURCE_PORT_MEMORY                 0x0000
00082 #define CM_RESOURCE_PORT_IO                     0x0001
00083 #define CM_RESOURCE_PORT_10_BIT_DECODE          0x0004
00084 #define CM_RESOURCE_PORT_12_BIT_DECODE          0x0008
00085 #define CM_RESOURCE_PORT_16_BIT_DECODE          0x0010
00086 #define CM_RESOURCE_PORT_POSITIVE_DECODE        0x0020
00087 #define CM_RESOURCE_PORT_PASSIVE_DECODE         0x0040
00088 #define CM_RESOURCE_PORT_WINDOW_DECODE          0x0080
00089 
00090 //
00091 // Memory Resource Descriptor Flags
00092 //
00093 #define CM_RESOURCE_MEMORY_READ_WRITE     0x0000
00094 #define CM_RESOURCE_MEMORY_READ_ONLY      0x0001
00095 #define CM_RESOURCE_MEMORY_WRITE_ONLY     0x0002
00096 #define CM_RESOURCE_MEMORY_PREFETCHABLE   0x0004
00097 #define CM_RESOURCE_MEMORY_COMBINEDWRITE  0x0008
00098 #define CM_RESOURCE_MEMORY_24             0x0010
00099 #define CM_RESOURCE_MEMORY_CACHEABLE      0x0020
00100 
00101 //
00102 // DMA Resource Descriptor Flags
00103 //
00104 #define CM_RESOURCE_DMA_8                 0x0000
00105 #define CM_RESOURCE_DMA_16                0x0001
00106 #define CM_RESOURCE_DMA_32                0x0002
00107 #define CM_RESOURCE_DMA_8_AND_16          0x0004
00108 #define CM_RESOURCE_DMA_BUS_MASTER        0x0008
00109 #define CM_RESOURCE_DMA_TYPE_A            0x0010
00110 #define CM_RESOURCE_DMA_TYPE_B            0x0020
00111 #define CM_RESOURCE_DMA_TYPE_F            0x0040
00112 
00113 //
00114 // Interrupt Resource Descriptor Flags
00115 //
00116 #define CM_RESOURCE_INTERRUPT_LEVEL_SENSITIVE 0x0000
00117 #define CM_RESOURCE_INTERRUPT_LATCHED         0x0001
00118 #define CM_RESOURCE_INTERRUPT_MESSAGE         0x0002
00119 #define CM_RESOURCE_INTERRUPT_POLICY_INCLUDED 0x0004
00120 
00121 //
00122 // NtInitializeRegistry Flags
00123 //
00124 #define CM_BOOT_FLAG_SMSS                 0x0000
00125 #define CM_BOOT_FLAG_SETUP                0x0001
00126 #define CM_BOOT_FLAG_ACCEPTED             0x0002
00127 #define CM_BOOT_FLAG_MAX                  0x03E9
00128 
00129 #ifdef NTOS_MODE_USER
00130 
00131 //
00132 // Information Classes for NtQueryKey
00133 //
00134 typedef enum _KEY_INFORMATION_CLASS
00135 {
00136     KeyBasicInformation,
00137     KeyNodeInformation,
00138     KeyFullInformation,
00139     KeyNameInformation,
00140     KeyCachedInformation,
00141     KeyFlagsInformation,
00142     KeyVirtualizationInformation,
00143     KeyHandleTagsInformation,
00144     MaxKeyInfoClass
00145 } KEY_INFORMATION_CLASS;
00146 
00147 typedef enum _KEY_VALUE_INFORMATION_CLASS
00148 {
00149     KeyValueBasicInformation,
00150     KeyValueFullInformation,
00151     KeyValuePartialInformation,
00152     KeyValueFullInformationAlign64,
00153     KeyValuePartialInformationAlign64,
00154     MaxKeyValueInfoClass
00155 } KEY_VALUE_INFORMATION_CLASS;
00156 
00157 typedef enum _KEY_SET_INFORMATION_CLASS {
00158   KeyWriteTimeInformation,
00159   KeyWow64FlagsInformation,
00160   KeyControlFlagsInformation,
00161   KeySetVirtualizationInformation,
00162   KeySetDebugInformation,
00163   KeySetHandleTagsInformation,
00164   MaxKeySetInfoClass
00165 } KEY_SET_INFORMATION_CLASS;
00166 
00167 #endif
00168 
00169 //
00170 // Plag and Play Classes
00171 //
00172 typedef enum _PLUGPLAY_CONTROL_CLASS
00173 {
00174     PlugPlayControlEnumerateDevice,
00175     PlugPlayControlRegisterNewDevice,
00176     PlugPlayControlDeregisterDevice,
00177     PlugPlayControlInitializeDevice,
00178     PlugPlayControlStartDevice,
00179     PlugPlayControlUnlockDevice,
00180     PlugPlayControlQueryAndRemoveDevice,
00181     PlugPlayControlUserResponse,
00182     PlugPlayControlGenerateLegacyDevice,
00183     PlugPlayControlGetInterfaceDeviceList,
00184     PlugPlayControlProperty,
00185     PlugPlayControlDeviceClassAssociation,
00186     PlugPlayControlGetRelatedDevice,
00187     PlugPlayControlGetInterfaceDeviceAlias,
00188     PlugPlayControlDeviceStatus,
00189     PlugPlayControlGetDeviceDepth,
00190     PlugPlayControlQueryDeviceRelations,
00191     PlugPlayControlTargetDeviceRelation,
00192     PlugPlayControlQueryConflictList,
00193     PlugPlayControlRetrieveDock,
00194     PlugPlayControlResetDevice,
00195     PlugPlayControlHaltDevice,
00196     PlugPlayControlGetBlockedDriverList,
00197     MaxPlugPlayControl
00198 } PLUGPLAY_CONTROL_CLASS;
00199 
00200 typedef enum _PLUGPLAY_BUS_CLASS
00201 {
00202     SystemBus,
00203     PlugPlayVirtualBus,
00204     MaxPlugPlayBusClass
00205 } PLUGPLAY_BUS_CLASS, *PPLUGPLAY_BUS_CLASS;
00206 
00207 //
00208 // Plag and Play Bus Types
00209 //
00210 typedef enum _PLUGPLAY_VIRTUAL_BUS_TYPE
00211 {
00212     Root,
00213     MaxPlugPlayVirtualBusType
00214 } PLUGPLAY_VIRTUAL_BUS_TYPE, *PPLUGPLAY_VIRTUAL_BUS_TYPE;
00215 
00216 //
00217 // Plag and Play Event Categories
00218 //
00219 typedef enum _PLUGPLAY_EVENT_CATEGORY
00220 {
00221     HardwareProfileChangeEvent,
00222     TargetDeviceChangeEvent,
00223     DeviceClassChangeEvent,
00224     CustomDeviceEvent,
00225     DeviceInstallEvent,
00226     DeviceArrivalEvent,
00227     PowerEvent,
00228     VetoEvent,
00229     BlockedDriverEvent,
00230     MaxPlugEventCategory
00231 } PLUGPLAY_EVENT_CATEGORY;
00232 
00233 #ifdef NTOS_MODE_USER
00234 
00235 //
00236 // Information Structures for NtQueryKeyInformation
00237 //
00238 typedef struct _KEY_WRITE_TIME_INFORMATION
00239 {
00240     LARGE_INTEGER LastWriteTime;
00241 } KEY_WRITE_TIME_INFORMATION, *PKEY_WRITE_TIME_INFORMATION;
00242 
00243 typedef struct _KEY_WOW64_FLAGS_INFORMATION
00244 {
00245     ULONG UserFlags;
00246 } KEY_WOW64_FLAGS_INFORMATION, *PKEY_WOW64_FLAGS_INFORMATION;
00247 
00248 typedef struct _KEY_USER_FLAGS_INFORMATION
00249 {
00250     ULONG UserFlags;
00251 } KEY_USER_FLAGS_INFORMATION, *PKEY_USER_FLAGS_INFORMATION;
00252 
00253 typedef struct _KEY_HANDLE_TAGS_INFORMATION
00254 {
00255     ULONG HandleTags;
00256 } KEY_HANDLE_TAGS_INFORMATION, *PKEY_HANDLE_TAGS_INFORMATION;
00257 
00258 typedef struct _KEY_CONTROL_FLAGS_INFORMATION
00259 {
00260     ULONG ControlFlags;
00261 } KEY_CONTROL_FLAGS_INFORMATION, *PKEY_CONTROL_FLAGS_INFORMATION;
00262 
00263 typedef struct _KEY_VIRTUALIZATION_INFORMATION
00264 {
00265     ULONG VirtualizationCandidate:1;
00266     ULONG VirtualizationEnabled:1;
00267     ULONG VirtualTarget:1;
00268     ULONG VirtualStore:1;
00269     ULONG VirtualSource:1;
00270     ULONG Reserved:27;
00271 } KEY_VIRTUALIZATION_INFORMATION, *PKEY_VIRTUALIZATION_INFORMATION;
00272 
00273 typedef struct _KEY_SET_VIRTUALIZATION_INFORMATION
00274 {
00275     ULONG VirtualTarget:1;
00276     ULONG VirtualStore:1;
00277     ULONG VirtualSource:1;
00278     ULONG Reserved:29;
00279 } KEY_SET_VIRTUALIZATION_INFORMATION, *PKEY_SET_VIRTUALIZATION_INFORMATION;
00280 
00281 
00282 typedef struct _KEY_FULL_INFORMATION
00283 {
00284     LARGE_INTEGER LastWriteTime;
00285     ULONG TitleIndex;
00286     ULONG ClassOffset;
00287     ULONG ClassLength;
00288     ULONG SubKeys;
00289     ULONG MaxNameLen;
00290     ULONG MaxClassLen;
00291     ULONG Values;
00292     ULONG MaxValueNameLen;
00293     ULONG MaxValueDataLen;
00294     WCHAR Class[1];
00295 } KEY_FULL_INFORMATION, *PKEY_FULL_INFORMATION;
00296 
00297 typedef struct _KEY_NAME_INFORMATION
00298 {
00299     WCHAR Name[1];
00300 } KEY_NAME_INFORMATION, *PKEY_NAME_INFORMATION;
00301 
00302 
00303 typedef struct _KEY_NODE_INFORMATION
00304 {
00305     LARGE_INTEGER LastWriteTime;
00306     ULONG TitleIndex;
00307     ULONG ClassOffset;
00308     ULONG ClassLength;
00309     ULONG NameLength;
00310     WCHAR Name[1];
00311 } KEY_NODE_INFORMATION, *PKEY_NODE_INFORMATION;
00312 
00313 typedef struct _KEY_VALUE_ENTRY
00314 {
00315     PUNICODE_STRING ValueName;
00316     ULONG DataLength;
00317     ULONG DataOffset;
00318     ULONG Type;
00319 } KEY_VALUE_ENTRY, *PKEY_VALUE_ENTRY;
00320 
00321 typedef struct _KEY_VALUE_PARTIAL_INFORMATION
00322 {
00323     ULONG TitleIndex;
00324     ULONG Type;
00325     ULONG DataLength;
00326     UCHAR Data[1];
00327 } KEY_VALUE_PARTIAL_INFORMATION, *PKEY_VALUE_PARTIAL_INFORMATION;
00328 
00329 typedef struct _KEY_VALUE_PARTIAL_INFORMATION_ALIGN64
00330 {
00331     ULONG Type;
00332     ULONG DataLength;
00333     UCHAR Data[1];
00334 } KEY_VALUE_PARTIAL_INFORMATION_ALIGN64, *PKEY_VALUE_PARTIAL_INFORMATION_ALIGN64;
00335 
00336 typedef struct _KEY_VALUE_BASIC_INFORMATION
00337 {
00338     ULONG TitleIndex;
00339     ULONG Type;
00340     ULONG NameLength;
00341     WCHAR Name[1];
00342 } KEY_VALUE_BASIC_INFORMATION, *PKEY_VALUE_BASIC_INFORMATION;
00343 
00344 typedef struct _KEY_VALUE_FULL_INFORMATION
00345 {
00346     ULONG TitleIndex;
00347     ULONG Type;
00348     ULONG DataOffset;
00349     ULONG DataLength;
00350     ULONG NameLength;
00351     WCHAR Name[1];
00352 } KEY_VALUE_FULL_INFORMATION, *PKEY_VALUE_FULL_INFORMATION;
00353 
00354 typedef struct _KEY_BASIC_INFORMATION
00355 {
00356     LARGE_INTEGER LastWriteTime;
00357     ULONG TitleIndex;
00358     ULONG NameLength;
00359     WCHAR Name[1];
00360 } KEY_BASIC_INFORMATION, *PKEY_BASIC_INFORMATION;
00361 
00362 #endif
00363 
00364 //
00365 // Plug and Play Event Block
00366 //
00367 typedef struct _PLUGPLAY_EVENT_BLOCK
00368 {
00369     GUID EventGuid;
00370     PLUGPLAY_EVENT_CATEGORY EventCategory;
00371     PULONG Result;
00372     ULONG Flags;
00373     ULONG TotalSize;
00374     PVOID DeviceObject;
00375     union
00376     {
00377         struct
00378         {
00379             GUID ClassGuid;
00380             WCHAR SymbolicLinkName[ANYSIZE_ARRAY];
00381         } DeviceClass;
00382         struct
00383         {
00384             WCHAR DeviceIds[ANYSIZE_ARRAY];
00385         } TargetDevice;
00386         struct
00387         {
00388             WCHAR DeviceId[ANYSIZE_ARRAY];
00389         } InstallDevice;
00390         struct
00391         {
00392             PVOID NotificationStructure;
00393             WCHAR DeviceIds[ANYSIZE_ARRAY];
00394         } CustomNotification;
00395         struct
00396         {
00397             PVOID Notification;
00398         } ProfileNotification;
00399         struct
00400         {
00401             ULONG NotificationCode;
00402             ULONG NotificationData;
00403         } PowerNotification;
00404         struct
00405         {
00406             PNP_VETO_TYPE VetoType;
00407             WCHAR DeviceIdVetoNameBuffer[ANYSIZE_ARRAY];
00408         } VetoNotification;
00409         struct
00410         {
00411             GUID BlockedDriverGuid;
00412         } BlockedDriverNotification;
00413     };
00414 } PLUGPLAY_EVENT_BLOCK, *PPLUGPLAY_EVENT_BLOCK;
00415 
00416 //
00417 // Plug and Play Control Classes
00418 //
00419 
00420 //Class 0x0A
00421 typedef struct _PLUGPLAY_CONTROL_PROPERTY_DATA
00422 {
00423     UNICODE_STRING DeviceInstance;
00424     ULONG Property;
00425     PVOID Buffer;
00426     ULONG BufferSize;
00427 } PLUGPLAY_CONTROL_PROPERTY_DATA, *PPLUGPLAY_CONTROL_PROPERTY_DATA;
00428 
00429 // Class 0x0C
00430 typedef struct _PLUGPLAY_CONTROL_RELATED_DEVICE_DATA
00431 {
00432     UNICODE_STRING TargetDeviceInstance;
00433     ULONG Relation;
00434     PWCHAR RelatedDeviceInstance;
00435     ULONG RelatedDeviceInstanceLength;
00436 } PLUGPLAY_CONTROL_RELATED_DEVICE_DATA, *PPLUGPLAY_CONTROL_RELATED_DEVICE_DATA;
00437 
00438 // Class 0x0E
00439 typedef struct _PLUGPLAY_CONTOL_STATUS_DATA
00440 {
00441     UNICODE_STRING DeviceInstance;
00442     ULONG Operation;
00443     ULONG DeviceStatus;
00444     ULONG DeviceProblem;
00445 } PLUGPLAY_CONTROL_STATUS_DATA, *PPLUGPLAY_CONTROL_STATUS_DATA;
00446 
00447 // Class 0x0F
00448 typedef struct _PLUGPLAY_CONTROL_DEPTH_DATA
00449 {
00450     UNICODE_STRING DeviceInstance;
00451     ULONG Depth;
00452 } PLUGPLAY_CONTROL_DEPTH_DATA, *PPLUGPLAY_CONTROL_DEPTH_DATA;
00453 
00454 // Class 0x14
00455 typedef struct _PLUGPLAY_CONTROL_RESET_DEVICE_DATA
00456 {
00457    UNICODE_STRING DeviceInstance;
00458 } PLUGPLAY_CONTROL_RESET_DEVICE_DATA, *PPLUGPLAY_CONTROL_RESET_DEVICE_DATA;
00459 
00460 //
00461 // Plug and Play Bus Type Definition
00462 //
00463 typedef struct _PLUGPLAY_BUS_TYPE
00464 {
00465     PLUGPLAY_BUS_CLASS BusClass;
00466     union
00467     {
00468         INTERFACE_TYPE SystemBusType;
00469         PLUGPLAY_VIRTUAL_BUS_TYPE PlugPlayVirtualBusType;
00470     };
00471 } PLUGPLAY_BUS_TYPE, *PPLUGPLAY_BUS_TYPE;
00472 
00473 //
00474 // Plug and Play Bus Instance Definition
00475 //
00476 typedef struct _PLUGPLAY_BUS_INSTANCE
00477 {
00478     PLUGPLAY_BUS_TYPE BusType;
00479     ULONG BusNumber;
00480     WCHAR BusName[MAX_BUS_NAME];
00481 } PLUGPLAY_BUS_INSTANCE, *PPLUGPLAY_BUS_INSTANCE;
00482 
00483 #ifdef NTOS_MODE_USER
00484 
00485 //
00486 // Partial Resource Descriptor and List for Hardware
00487 //
00488 #include <pshpack1.h>
00489 typedef struct _CM_PARTIAL_RESOURCE_DESCRIPTOR
00490 {
00491     UCHAR Type;
00492     UCHAR ShareDisposition;
00493     USHORT Flags;
00494     union
00495     {
00496         struct
00497         {
00498             PHYSICAL_ADDRESS Start;
00499             ULONG Length;
00500         } Generic;
00501         struct
00502         {
00503             PHYSICAL_ADDRESS Start;
00504             ULONG Length;
00505         } Port;
00506         struct
00507         {
00508             ULONG Level;
00509             ULONG Vector;
00510             KAFFINITY Affinity;
00511         } Interrupt;
00512 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
00513         struct
00514         {
00515             union
00516             {
00517                 struct
00518                 {
00519                     USHORT Reserved;
00520                     USHORT MessageCount;
00521                     ULONG Vector;
00522                     KAFFINITY Affinity;
00523                 } Raw;
00524                 struct
00525                 {
00526                     ULONG Level;
00527                     ULONG Vector;
00528                     KAFFINITY Affinity;
00529                 } Translated;
00530             };
00531         } MessageInterrupt;
00532 #endif
00533         struct
00534         {
00535             PHYSICAL_ADDRESS Start;
00536             ULONG Length;
00537         } Memory;
00538         struct
00539         {
00540             ULONG Channel;
00541             ULONG Port;
00542             ULONG Reserved1;
00543         } Dma;
00544         struct
00545         {
00546             ULONG Data[3];
00547         } DevicePrivate;
00548         struct
00549         {
00550             ULONG Start;
00551             ULONG Length;
00552             ULONG Reserved;
00553         } BusNumber;
00554         struct
00555         {
00556             ULONG DataSize;
00557             ULONG Reserved1;
00558             ULONG Reserved2;
00559         } DeviceSpecificData;
00560 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
00561         struct
00562         {
00563             PHYSICAL_ADDRESS Start;
00564             ULONG Length40;
00565         } Memory40;
00566         struct
00567         {
00568             PHYSICAL_ADDRESS Start;
00569             ULONG Length48;
00570         } Memory48;
00571         struct
00572         {
00573             PHYSICAL_ADDRESS Start;
00574             ULONG Length64;
00575         } Memory64;
00576 #endif
00577     } u;
00578 } CM_PARTIAL_RESOURCE_DESCRIPTOR, *PCM_PARTIAL_RESOURCE_DESCRIPTOR;
00579 
00580 typedef struct _CM_PARTIAL_RESOURCE_LIST
00581 {
00582     USHORT Version;
00583     USHORT Revision;
00584     ULONG Count;
00585     CM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptors[1];
00586 } CM_PARTIAL_RESOURCE_LIST, *PCM_PARTIAL_RESOURCE_LIST;
00587 
00588 //
00589 // Full Resource Descriptor and List for Hardware
00590 //
00591 typedef struct _CM_FULL_RESOURCE_DESCRIPTOR
00592 {
00593     INTERFACE_TYPE InterfaceType;
00594     ULONG BusNumber;
00595     CM_PARTIAL_RESOURCE_LIST PartialResourceList;
00596 } CM_FULL_RESOURCE_DESCRIPTOR, *PCM_FULL_RESOURCE_DESCRIPTOR;
00597 
00598 typedef struct _CM_RESOURCE_LIST
00599 {
00600     ULONG Count;
00601     CM_FULL_RESOURCE_DESCRIPTOR List[1];
00602 } CM_RESOURCE_LIST, *PCM_RESOURCE_LIST;
00603 
00604 //
00605 // ROM Block Structure
00606 //
00607 typedef struct _CM_ROM_BLOCK
00608 {
00609     ULONG Address;
00610     ULONG Size;
00611 } CM_ROM_BLOCK, *PCM_ROM_BLOCK;
00612 
00613 //
00614 // Disk/INT13 Structures
00615 //
00616 typedef struct _CM_INT13_DRIVE_PARAMETER
00617 {
00618     USHORT DriveSelect;
00619     ULONG MaxCylinders;
00620     USHORT SectorsPerTrack;
00621     USHORT MaxHeads;
00622     USHORT NumberDrives;
00623 } CM_INT13_DRIVE_PARAMETER, *PCM_INT13_DRIVE_PARAMETER;
00624 
00625 typedef struct _CM_DISK_GEOMETRY_DEVICE_DATA
00626 {
00627     ULONG BytesPerSector;
00628     ULONG NumberOfCylinders;
00629     ULONG SectorsPerTrack;
00630     ULONG NumberOfHeads;
00631 } CM_DISK_GEOMETRY_DEVICE_DATA, *PCM_DISK_GEOMETRY_DEVICE_DATA;
00632 
00633 #include <poppack.h>
00634 
00635 #endif // _!NTOS_MODE_USER
00636 
00637 #endif // _CMTYPES_H
00638 
00639 
00640 

Generated on Wed May 23 2012 04:28:45 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.