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

winioctl.h
Go to the documentation of this file.
00001 #ifndef _WINIOCTL_
00002 #define _WINIOCTL_
00003 
00004 #ifdef __cplusplus
00005 extern "C" {
00006 #endif
00007 
00008 #ifdef _MSC_VER
00009 #pragma warning(push)
00010 #pragma warning(disable:4201)
00011 #pragma warning(disable:4820)
00012 #endif
00013 
00014 #define HIST_NO_OF_BUCKETS               24
00015 #define HISTOGRAM_BUCKET_SIZE            sizeof(HISTOGRAM_BUCKET)
00016 #define DISK_HISTOGRAM_SIZE              sizeof(DISK_HISTOGRAM)
00017 #define CTL_CODE(t,f,m,a)                (((t)<<16)|((a)<<14)|((f)<<2)|(m))
00018 #define DEVICE_TYPE_FROM_CTL_CODE(c)     (((DWORD)((c)&0xffff0000))>>16)
00019 
00020 #ifndef _NTDDSTOR_H_
00021 #define IOCTL_STORAGE_BASE               FILE_DEVICE_MASS_STORAGE
00022 #define IOCTL_STORAGE_CHECK_VERIFY       CTL_CODE(IOCTL_STORAGE_BASE, 0x0200, METHOD_BUFFERED, FILE_READ_ACCESS)
00023 #define IOCTL_STORAGE_CHECK_VERIFY2      CTL_CODE(IOCTL_STORAGE_BASE, 0x0200, METHOD_BUFFERED, FILE_ANY_ACCESS)
00024 #define IOCTL_STORAGE_MEDIA_REMOVAL      CTL_CODE(IOCTL_STORAGE_BASE, 0x0201, METHOD_BUFFERED, FILE_READ_ACCESS)
00025 #define IOCTL_STORAGE_EJECT_MEDIA        CTL_CODE(IOCTL_STORAGE_BASE, 0x0202, METHOD_BUFFERED, FILE_READ_ACCESS)
00026 #define IOCTL_STORAGE_LOAD_MEDIA         CTL_CODE(IOCTL_STORAGE_BASE, 0x0203, METHOD_BUFFERED, FILE_READ_ACCESS)
00027 #define IOCTL_STORAGE_LOAD_MEDIA2        CTL_CODE(IOCTL_STORAGE_BASE, 0x0203, METHOD_BUFFERED, FILE_ANY_ACCESS)
00028 #define IOCTL_STORAGE_RESERVE            CTL_CODE(IOCTL_STORAGE_BASE, 0x0204, METHOD_BUFFERED, FILE_READ_ACCESS)
00029 #define IOCTL_STORAGE_RELEASE            CTL_CODE(IOCTL_STORAGE_BASE, 0x0205, METHOD_BUFFERED, FILE_READ_ACCESS)
00030 #define IOCTL_STORAGE_FIND_NEW_DEVICES   CTL_CODE(IOCTL_STORAGE_BASE, 0x0206, METHOD_BUFFERED, FILE_READ_ACCESS)
00031 #define IOCTL_STORAGE_EJECTION_CONTROL   CTL_CODE(IOCTL_STORAGE_BASE, 0x0250, METHOD_BUFFERED, FILE_ANY_ACCESS)
00032 #define IOCTL_STORAGE_MCN_CONTROL        CTL_CODE(IOCTL_STORAGE_BASE, 0x0251, METHOD_BUFFERED, FILE_ANY_ACCESS)
00033 #define IOCTL_STORAGE_GET_MEDIA_TYPES    CTL_CODE(IOCTL_STORAGE_BASE, 0x0300, METHOD_BUFFERED, FILE_ANY_ACCESS)
00034 #define IOCTL_STORAGE_GET_MEDIA_TYPES_EX CTL_CODE(IOCTL_STORAGE_BASE, 0x0301, METHOD_BUFFERED, FILE_ANY_ACCESS)
00035 #define IOCTL_STORAGE_RESET_BUS          CTL_CODE(IOCTL_STORAGE_BASE, 0x0400, METHOD_BUFFERED, FILE_READ_ACCESS)
00036 #define IOCTL_STORAGE_RESET_DEVICE       CTL_CODE(IOCTL_STORAGE_BASE, 0x0401, METHOD_BUFFERED, FILE_READ_ACCESS)
00037 #define IOCTL_STORAGE_GET_DEVICE_NUMBER  CTL_CODE(IOCTL_STORAGE_BASE, 0x0420, METHOD_BUFFERED, FILE_ANY_ACCESS)
00038 #define IOCTL_STORAGE_PREDICT_FAILURE    CTL_CODE(IOCTL_STORAGE_BASE, 0x0440, METHOD_BUFFERED, FILE_ANY_ACCESS)
00039 #endif
00040 
00041 #define IOCTL_DISK_BASE                  FILE_DEVICE_DISK
00042 #define IOCTL_DISK_GET_DRIVE_GEOMETRY    CTL_CODE(IOCTL_DISK_BASE,0,METHOD_BUFFERED, FILE_ANY_ACCESS)
00043 #define IOCTL_DISK_GET_PARTITION_INFO    CTL_CODE(IOCTL_DISK_BASE,1,METHOD_BUFFERED,FILE_READ_ACCESS)
00044 #define IOCTL_DISK_SET_PARTITION_INFO    CTL_CODE(IOCTL_DISK_BASE,2,METHOD_BUFFERED,FILE_READ_ACCESS|FILE_WRITE_ACCESS)
00045 #define IOCTL_DISK_GET_DRIVE_LAYOUT      CTL_CODE(IOCTL_DISK_BASE,3,METHOD_BUFFERED,FILE_READ_ACCESS)
00046 #define IOCTL_DISK_SET_DRIVE_LAYOUT      CTL_CODE(IOCTL_DISK_BASE,4,METHOD_BUFFERED,FILE_READ_ACCESS|FILE_WRITE_ACCESS)
00047 #define IOCTL_DISK_VERIFY                CTL_CODE(IOCTL_DISK_BASE,5,METHOD_BUFFERED,FILE_ANY_ACCESS)
00048 #define IOCTL_DISK_FORMAT_TRACKS         CTL_CODE(IOCTL_DISK_BASE,6,METHOD_BUFFERED,FILE_READ_ACCESS|FILE_WRITE_ACCESS)
00049 #define IOCTL_DISK_REASSIGN_BLOCKS       CTL_CODE(IOCTL_DISK_BASE,7,METHOD_BUFFERED,FILE_READ_ACCESS|FILE_WRITE_ACCESS)
00050 #define IOCTL_DISK_PERFORMANCE           CTL_CODE(IOCTL_DISK_BASE,8,METHOD_BUFFERED,FILE_ANY_ACCESS)
00051 #define IOCTL_DISK_IS_WRITABLE           CTL_CODE(IOCTL_DISK_BASE,9,METHOD_BUFFERED,FILE_ANY_ACCESS)
00052 #define IOCTL_DISK_LOGGING               CTL_CODE(IOCTL_DISK_BASE,10,METHOD_BUFFERED,FILE_ANY_ACCESS)
00053 #define IOCTL_DISK_FORMAT_TRACKS_EX      CTL_CODE(IOCTL_DISK_BASE,11,METHOD_BUFFERED,FILE_READ_ACCESS|FILE_WRITE_ACCESS)
00054 #define IOCTL_DISK_HISTOGRAM_STRUCTURE   CTL_CODE(IOCTL_DISK_BASE,12,METHOD_BUFFERED,FILE_ANY_ACCESS)
00055 #define IOCTL_DISK_HISTOGRAM_DATA        CTL_CODE(IOCTL_DISK_BASE,13,METHOD_BUFFERED,FILE_ANY_ACCESS)
00056 #define IOCTL_DISK_HISTOGRAM_RESET       CTL_CODE(IOCTL_DISK_BASE,14,METHOD_BUFFERED,FILE_ANY_ACCESS)
00057 #define IOCTL_DISK_REQUEST_STRUCTURE     CTL_CODE(IOCTL_DISK_BASE,15,METHOD_BUFFERED,FILE_ANY_ACCESS)
00058 #define IOCTL_DISK_REQUEST_DATA          CTL_CODE(IOCTL_DISK_BASE,16,METHOD_BUFFERED,FILE_ANY_ACCESS)
00059 #define IOCTL_DISK_GET_PARTITION_INFO_EX CTL_CODE(IOCTL_DISK_BASE,0x12,METHOD_BUFFERED,FILE_ANY_ACCESS)
00060 #define IOCTL_DISK_SET_PARTITION_INFO_EX CTL_CODE(IOCTL_DISK_BASE,0x13,METHOD_BUFFERED,FILE_READ_ACCESS | FILE_WRITE_ACCESS)
00061 #define IOCTL_DISK_GET_DRIVE_LAYOUT_EX   CTL_CODE(IOCTL_DISK_BASE,0x14,METHOD_BUFFERED,FILE_ANY_ACCESS)
00062 #define IOCTL_DISK_SET_DRIVE_LAYOUT_EX   CTL_CODE(IOCTL_DISK_BASE,0x15,METHOD_BUFFERED,FILE_READ_ACCESS | FILE_WRITE_ACCESS)
00063 #define IOCTL_DISK_CREATE_DISK           CTL_CODE(IOCTL_DISK_BASE,0x16,METHOD_BUFFERED,FILE_READ_ACCESS | FILE_WRITE_ACCESS)
00064 #define IOCTL_DISK_GET_LENGTH_INFO       CTL_CODE(IOCTL_DISK_BASE,0x17,METHOD_BUFFERED,FILE_READ_ACCESS)
00065 #define IOCTL_DISK_PERFORMANCE_OFF       CTL_CODE(IOCTL_DISK_BASE,0x18,METHOD_BUFFERED,FILE_ANY_ACCESS)
00066 #define IOCTL_DISK_GET_DRIVE_GEOMETRY_EX CTL_CODE(IOCTL_DISK_BASE,0x28,METHOD_BUFFERED,FILE_ANY_ACCESS)
00067 #define IOCTL_DISK_GROW_PARTITION        CTL_CODE(IOCTL_DISK_BASE,0x34,METHOD_BUFFERED,FILE_READ_ACCESS | FILE_WRITE_ACCESS)
00068 #define IOCTL_DISK_GET_CACHE_INFORMATION CTL_CODE(IOCTL_DISK_BASE,0x35,METHOD_BUFFERED,FILE_READ_ACCESS)
00069 #define IOCTL_DISK_SET_CACHE_INFORMATION CTL_CODE(IOCTL_DISK_BASE,0x36,METHOD_BUFFERED,FILE_READ_ACCESS | FILE_WRITE_ACCESS)
00070 #define IOCTL_DISK_DELETE_DRIVE_LAYOUT   CTL_CODE(IOCTL_DISK_BASE,0x40,METHOD_BUFFERED,FILE_READ_ACCESS | FILE_WRITE_ACCESS)
00071 #define IOCTL_DISK_UPDATE_PROPERTIES CTL_CODE(IOCTL_DISK_BASE,0x50,METHOD_BUFFERED,FILE_ANY_ACCESS)
00072 #define IOCTL_DISK_CHECK_VERIFY      CTL_CODE(IOCTL_DISK_BASE,0x200,METHOD_BUFFERED,FILE_READ_ACCESS)
00073 #define IOCTL_DISK_MEDIA_REMOVAL     CTL_CODE(IOCTL_DISK_BASE,0x201,METHOD_BUFFERED,FILE_READ_ACCESS)
00074 #define IOCTL_DISK_EJECT_MEDIA       CTL_CODE(IOCTL_DISK_BASE,0x202,METHOD_BUFFERED,FILE_READ_ACCESS)
00075 #define IOCTL_DISK_LOAD_MEDIA        CTL_CODE(IOCTL_DISK_BASE,0x203,METHOD_BUFFERED,FILE_READ_ACCESS)
00076 #define IOCTL_DISK_RESERVE           CTL_CODE(IOCTL_DISK_BASE,0x204,METHOD_BUFFERED,FILE_READ_ACCESS)
00077 #define IOCTL_DISK_RELEASE           CTL_CODE(IOCTL_DISK_BASE,0x205,METHOD_BUFFERED,FILE_READ_ACCESS)
00078 #define IOCTL_DISK_FIND_NEW_DEVICES  CTL_CODE(IOCTL_DISK_BASE,0x206,METHOD_BUFFERED,FILE_READ_ACCESS)
00079 #define IOCTL_DISK_REMOVE_DEVICE     CTL_CODE(IOCTL_DISK_BASE,0x207,METHOD_BUFFERED,FILE_READ_ACCESS)
00080 #define IOCTL_DISK_GET_MEDIA_TYPES   CTL_CODE(IOCTL_DISK_BASE,0x300,METHOD_BUFFERED,FILE_ANY_ACCESS)
00081 #define IOCTL_DISK_UPDATE_DRIVE_SIZE CTL_CODE(IOCTL_DISK_BASE, 0x0032, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
00082 #define IOCTL_SERIAL_LSRMST_INSERT   CTL_CODE(FILE_DEVICE_SERIAL_PORT,31,METHOD_BUFFERED,FILE_ANY_ACCESS)
00083 #define IOCTL_VOLUME_BASE ((DWORD)'V')
00084 #define IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS CTL_CODE(IOCTL_VOLUME_BASE, 0, METHOD_BUFFERED, FILE_ANY_ACCESS)
00085 #define FSCTL_LOCK_VOLUME            CTL_CODE(FILE_DEVICE_FILE_SYSTEM,6,METHOD_BUFFERED,FILE_ANY_ACCESS)
00086 #define FSCTL_UNLOCK_VOLUME          CTL_CODE(FILE_DEVICE_FILE_SYSTEM,7,METHOD_BUFFERED,FILE_ANY_ACCESS)
00087 #define FSCTL_PIPE_IMPERSONATE       CTL_CODE(FILE_DEVICE_NAMED_PIPE, 7, METHOD_BUFFERED, FILE_ANY_ACCESS)
00088 #define FSCTL_DISMOUNT_VOLUME        CTL_CODE(FILE_DEVICE_FILE_SYSTEM,8,METHOD_BUFFERED,FILE_ANY_ACCESS)
00089 #define FSCTL_MOUNT_DBLS_VOLUME      CTL_CODE(FILE_DEVICE_FILE_SYSTEM,13,METHOD_BUFFERED,FILE_ANY_ACCESS)
00090 #define FSCTL_GET_COMPRESSION        CTL_CODE(FILE_DEVICE_FILE_SYSTEM,15,METHOD_BUFFERED,FILE_ANY_ACCESS)
00091 #define FSCTL_SET_COMPRESSION        CTL_CODE(FILE_DEVICE_FILE_SYSTEM,16,METHOD_BUFFERED,FILE_READ_DATA|FILE_WRITE_DATA)
00092 #define FSCTL_READ_COMPRESSION       CTL_CODE(FILE_DEVICE_FILE_SYSTEM,17,METHOD_NEITHER,FILE_READ_DATA)
00093 #define FSCTL_WRITE_COMPRESSION      CTL_CODE(FILE_DEVICE_FILE_SYSTEM,18,METHOD_NEITHER,FILE_WRITE_DATA)
00094 #define FSCTL_GET_NTFS_VOLUME_DATA   CTL_CODE(FILE_DEVICE_FILE_SYSTEM,25,METHOD_BUFFERED,FILE_ANY_ACCESS)
00095 #define FSCTL_GET_VOLUME_BITMAP      CTL_CODE(FILE_DEVICE_FILE_SYSTEM,27,METHOD_NEITHER,FILE_ANY_ACCESS)
00096 #define FSCTL_GET_RETRIEVAL_POINTERS CTL_CODE(FILE_DEVICE_FILE_SYSTEM,28,METHOD_NEITHER,FILE_ANY_ACCESS)
00097 #define FSCTL_MOVE_FILE              CTL_CODE(FILE_DEVICE_FILE_SYSTEM,29,METHOD_BUFFERED,FILE_ANY_ACCESS)
00098 #define FSCTL_GET_REPARSE_POINT      CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 42, METHOD_BUFFERED, FILE_ANY_ACCESS)
00099 #define FSCTL_SET_REPARSE_POINT      CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 41, METHOD_BUFFERED, FILE_ANY_ACCESS)
00100 #define FSCTL_DELETE_REPARSE_POINT   CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 43, METHOD_BUFFERED, FILE_ANY_ACCESS)
00101 #define FSCTL_SET_SPARSE             CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 49, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
00102 #define DEVICE_TYPE DWORD
00103 #define FILE_DEVICE_BEEP              1
00104 #define FILE_DEVICE_CD_ROM            2
00105 #define FILE_DEVICE_CD_ROM_FILE_SYSTEM 3
00106 #define FILE_DEVICE_CONTROLLER        4
00107 #define FILE_DEVICE_DATALINK          5
00108 #define FILE_DEVICE_DFS               6
00109 #define FILE_DEVICE_DISK              7
00110 #define FILE_DEVICE_DISK_FILE_SYSTEM  8
00111 #define FILE_DEVICE_FILE_SYSTEM       9
00112 #define FILE_DEVICE_INPORT_PORT       10
00113 #define FILE_DEVICE_KEYBOARD          11
00114 #define FILE_DEVICE_MAILSLOT          12
00115 #define FILE_DEVICE_MIDI_IN           13
00116 #define FILE_DEVICE_MIDI_OUT          14
00117 #define FILE_DEVICE_MOUSE             15
00118 #define FILE_DEVICE_MULTI_UNC_PROVIDER 16
00119 #define FILE_DEVICE_NAMED_PIPE        17
00120 #define FILE_DEVICE_NETWORK           18
00121 #define FILE_DEVICE_NETWORK_BROWSER   19
00122 #define FILE_DEVICE_NETWORK_FILE_SYSTEM 20
00123 #define FILE_DEVICE_NULL              21
00124 #define FILE_DEVICE_PARALLEL_PORT     22
00125 #define FILE_DEVICE_PHYSICAL_NETCARD  23
00126 #define FILE_DEVICE_PRINTER           24
00127 #define FILE_DEVICE_SCANNER           25
00128 #define FILE_DEVICE_SERIAL_MOUSE_PORT 26
00129 #define FILE_DEVICE_SERIAL_PORT       27
00130 #define FILE_DEVICE_SCREEN            28
00131 #define FILE_DEVICE_SOUND             29
00132 #define FILE_DEVICE_STREAMS           30
00133 #define FILE_DEVICE_TAPE              31
00134 #define FILE_DEVICE_TAPE_FILE_SYSTEM  32
00135 #define FILE_DEVICE_TRANSPORT         33
00136 #define FILE_DEVICE_UNKNOWN           34
00137 #define FILE_DEVICE_VIDEO             35
00138 #define FILE_DEVICE_VIRTUAL_DISK      36
00139 #define FILE_DEVICE_WAVE_IN           37
00140 #define FILE_DEVICE_WAVE_OUT          38
00141 #define FILE_DEVICE_8042_PORT         39
00142 #define FILE_DEVICE_NETWORK_REDIRECTOR  40
00143 #define FILE_DEVICE_BATTERY           41
00144 #define FILE_DEVICE_BUS_EXTENDER      42
00145 #define FILE_DEVICE_MODEM             43
00146 #define FILE_DEVICE_VDM               44
00147 #define FILE_DEVICE_MASS_STORAGE      45
00148 #define FILE_DEVICE_SMB               46
00149 #define FILE_DEVICE_KS                47
00150 #define FILE_DEVICE_CHANGER           48
00151 #define FILE_DEVICE_SMARTCARD         49
00152 #define FILE_DEVICE_ACPI              50
00153 #define FILE_DEVICE_DVD               51
00154 #define FILE_DEVICE_FULLSCREEN_VIDEO  52
00155 #define FILE_DEVICE_DFS_FILE_SYSTEM   53
00156 #define FILE_DEVICE_DFS_VOLUME        54
00157 #define FILE_DEVICE_SERENUM           55
00158 #define FILE_DEVICE_TERMSRV           56
00159 #define FILE_DEVICE_KSEC              57
00160 #define PARTITION_ENTRY_UNUSED        0
00161 #define PARTITION_FAT_12              1
00162 #define PARTITION_XENIX_1             2
00163 #define PARTITION_XENIX_2             3
00164 #define PARTITION_FAT_16              4
00165 #define PARTITION_EXTENDED            5
00166 #define PARTITION_HUGE                6
00167 #define PARTITION_IFS                 7
00168 #define PARTITION_FAT32               0x0B
00169 #define PARTITION_FAT32_XINT13        0x0C
00170 #define PARTITION_XINT13              0x0E
00171 #define PARTITION_XINT13_EXTENDED     0x0F
00172 #define PARTITION_PREP                0x41
00173 #define PARTITION_LDM                 0x42
00174 #define PARTITION_UNIX                0x63
00175 #define PARTITION_NTFT                128
00176 #define VALID_NTFT                    0xC0
00177 #define METHOD_BUFFERED               0
00178 #define METHOD_IN_DIRECT              1
00179 #define METHOD_OUT_DIRECT             2
00180 #define METHOD_NEITHER                3
00181 #define SERIAL_LSRMST_ESCAPE          0
00182 #define SERIAL_LSRMST_LSR_DATA        1
00183 #define SERIAL_LSRMST_LSR_NODATA      2
00184 #define SERIAL_LSRMST_MST             3
00185 /* Device GUIDs */
00186 #ifdef DEFINE_GUID
00187 
00188 DEFINE_GUID(GUID_DEVINTERFACE_COMPORT, 0x86E0D1E0L, 0x8089,
00189  0x11D0, 0x9C, 0xE4, 0x08, 0x00, 0x3E, 0x30, 0x1F, 0x73);
00190 DEFINE_GUID(GUID_DEVINTERFACE_SERENUM_BUS_ENUMERATOR, 0x4D36E978L, 0xE325,
00191  0x11CE, 0xBF, 0xC1, 0x08, 0x00, 0x2B, 0xE1, 0x03, 0x18);
00192 
00193 /* obsolete GUID names */
00194 #define GUID_CLASS_COMPORT          GUID_DEVINTERFACE_COMPORT
00195 #define GUID_SERENUM_BUS_ENUMERATOR GUID_DEVINTERFACE_SERENUM_BUS_ENUMERATOR
00196 
00197 #endif /* DEFINE_GUID */
00198 
00199 /*  Also in ddk/winddk.h */
00200 #define FILE_ANY_ACCESS        0x00000000
00201 #define FILE_SPECIAL_ACCESS    FILE_ANY_ACCESS
00202 #define FILE_READ_ACCESS       0x00000001
00203 #define FILE_WRITE_ACCESS      0x00000002
00204 
00205 #define DISK_LOGGING_START   0
00206 #define DISK_LOGGING_STOP    1
00207 #define DISK_LOGGING_DUMP    2
00208 #define DISK_BINNING         3
00209 typedef WORD BAD_TRACK_NUMBER,*PBAD_TRACK_NUMBER;
00210 typedef enum _BIN_TYPES {RequestSize,RequestLocation} BIN_TYPES;
00211 typedef struct _BIN_RANGE {
00212     LARGE_INTEGER StartValue;
00213     LARGE_INTEGER Length;
00214 } BIN_RANGE,*PBIN_RANGE;
00215 typedef struct _BIN_COUNT {
00216     BIN_RANGE BinRange;
00217     DWORD BinCount;
00218 } BIN_COUNT,*PBIN_COUNT;
00219 typedef struct _BIN_RESULTS {
00220     DWORD NumberOfBins;
00221     BIN_COUNT BinCounts[1];
00222 } BIN_RESULTS,*PBIN_RESULTS;
00223 typedef enum _PARTITION_STYLE {
00224   PARTITION_STYLE_MBR,
00225   PARTITION_STYLE_GPT,
00226   PARTITION_STYLE_RAW
00227 } PARTITION_STYLE;
00228 typedef struct {
00229   GUID DiskId;
00230   DWORD MaxPartitionCount;
00231 } CREATE_DISK_GPT,*PCREATE_DISK_GPT;
00232 typedef struct {
00233   DWORD Signature;
00234 } CREATE_DISK_MBR,*PCREATE_DISK_MBR;
00235 typedef struct {
00236   PARTITION_STYLE PartitionStyle;
00237   _ANONYMOUS_UNION union {
00238     CREATE_DISK_MBR Mbr;
00239     CREATE_DISK_GPT Gpt;
00240   };
00241 } CREATE_DISK,*PCREATE_DISK;
00242 typedef enum {
00243   EqualPriority,
00244   KeepPrefetchedData,
00245   KeepReadData
00246 } DISK_CACHE_RETENTION_PRIORITY;
00247 typedef struct _DISK_CACHE_INFORMATION {
00248   BOOLEAN ParametersSavable;
00249   BOOLEAN ReadCacheEnabled;
00250   BOOLEAN WriteCacheEnabled;
00251   DISK_CACHE_RETENTION_PRIORITY ReadRetentionPriority;
00252   DISK_CACHE_RETENTION_PRIORITY WriteRetentionPriority;
00253   WORD DisablePrefetchTransferLength;
00254   BOOLEAN PrefetchScalar;
00255   _ANONYMOUS_UNION union {
00256     struct {
00257       WORD Minimum;
00258       WORD Maximum;
00259       WORD MaximumBlocks;
00260     } ScalarPrefetch;
00261     struct {
00262       WORD Minimum;
00263       WORD Maximum;
00264     } BlockPrefetch;
00265   };
00266 } DISK_CACHE_INFORMATION,*PDISK_CACHE_INFORMATION;
00267 typedef enum _DETECTION_TYPE {
00268   DetectNone,
00269   DetectInt13,
00270   DetectExInt13
00271 } DETECTION_TYPE;
00272 typedef struct _DISK_INT13_INFO {
00273   WORD DriveSelect;
00274   DWORD MaxCylinders;
00275   WORD SectorsPerTrack;
00276   WORD MaxHeads;
00277   WORD NumberDrives;
00278 } DISK_INT13_INFO,*PDISK_INT13_INFO;
00279 typedef struct _DISK_EX_INT13_INFO {
00280   WORD ExBufferSize;
00281   WORD ExFlags;
00282   DWORD ExCylinders;
00283   DWORD ExHeads;
00284   DWORD ExSectorsPerTrack;
00285   DWORD64 ExSectorsPerDrive;
00286   WORD ExSectorSize;
00287   WORD ExReserved;
00288 } DISK_EX_INT13_INFO,*PDISK_EX_INT13_INFO;
00289 typedef struct _DISK_DETECTION_INFO {
00290   DWORD SizeOfDetectInfo;
00291   DETECTION_TYPE DetectionType;
00292   _ANONYMOUS_UNION union {
00293     _ANONYMOUS_STRUCT struct {
00294       DISK_INT13_INFO Int13;
00295       DISK_EX_INT13_INFO ExInt13;
00296     };
00297   };
00298 } DISK_DETECTION_INFO,*PDISK_DETECTION_INFO;
00299 typedef enum _MEDIA_TYPE {
00300   Unknown,
00301   F5_1Pt2_512,
00302   F3_1Pt44_512,
00303   F3_2Pt88_512,
00304   F3_20Pt8_512,
00305   F3_720_512,
00306   F5_360_512,
00307   F5_320_512,
00308   F5_320_1024,
00309   F5_180_512,
00310   F5_160_512,
00311   RemovableMedia,
00312   FixedMedia,
00313   F3_120M_512,
00314   F3_640_512,
00315   F5_640_512,
00316   F5_720_512,
00317   F3_1Pt2_512,
00318   F3_1Pt23_1024,
00319   F5_1Pt23_1024,
00320   F3_128Mb_512,
00321   F3_230Mb_512,
00322   F8_256_128,
00323   F3_200Mb_512,
00324   F3_240M_512,
00325   F3_32M_512
00326 } MEDIA_TYPE,*PMEDIA_TYPE;
00327 typedef struct _DISK_GEOMETRY {
00328   LARGE_INTEGER Cylinders;
00329   MEDIA_TYPE MediaType;
00330   DWORD TracksPerCylinder;
00331   DWORD SectorsPerTrack;
00332   DWORD BytesPerSector;
00333 } DISK_GEOMETRY,*PDISK_GEOMETRY;
00334 typedef struct _DISK_GEOMETRY_EX {
00335   DISK_GEOMETRY Geometry;
00336   LARGE_INTEGER DiskSize;
00337   BYTE Data[1];
00338 } DISK_GEOMETRY_EX,*PDISK_GEOMETRY_EX;
00339 typedef struct _DISK_GROW_PARTITION {
00340   DWORD PartitionNumber;
00341   LARGE_INTEGER BytesToGrow;
00342 } DISK_GROW_PARTITION, *PDISK_GROW_PARTITION;
00343 typedef struct _DISK_PARTITION_INFO {
00344   DWORD SizeOfPartitionInfo;
00345   PARTITION_STYLE PartitionStyle;
00346   _ANONYMOUS_UNION union {
00347     struct {
00348       DWORD Signature;
00349     } Mbr;
00350     struct {
00351       GUID DiskId;
00352     } Gpt;
00353   };
00354 } DISK_PARTITION_INFO,*PDISK_PARTITION_INFO;
00355 typedef struct _DISK_PERFORMANCE {
00356     LARGE_INTEGER BytesRead;
00357     LARGE_INTEGER BytesWritten;
00358     LARGE_INTEGER ReadTime;
00359     LARGE_INTEGER WriteTime;
00360     DWORD ReadCount;
00361     DWORD WriteCount;
00362     DWORD QueueDepth;
00363 } DISK_PERFORMANCE, *PDISK_PERFORMANCE;
00364 typedef struct _DISK_RECORD {
00365   LARGE_INTEGER ByteOffset;
00366   LARGE_INTEGER StartTime;
00367   LARGE_INTEGER EndTime;
00368   PVOID VirtualAddress;
00369   DWORD NumberOfBytes;
00370   BYTE DeviceNumber;
00371   BOOLEAN ReadRequest;
00372 } DISK_RECORD,*PDISK_RECORD;
00373 typedef struct _DISK_LOGGING {
00374   BYTE Function;
00375   PVOID BufferAddress;
00376   DWORD BufferSize;
00377 } DISK_LOGGING,*PDISK_LOGGING;
00378 typedef struct DiskQuotaUserInformation {
00379   LONGLONG QuotaUsed;
00380   LONGLONG QuotaThreshold;
00381   LONGLONG QuotaLimit;
00382 } DISKQUOTA_USER_INFORMATION,*PDISKQUOTA_USER_INFORMATION;
00383 typedef struct _FORMAT_PARAMETERS {
00384   MEDIA_TYPE MediaType;
00385   DWORD StartCylinderNumber;
00386   DWORD EndCylinderNumber;
00387   DWORD StartHeadNumber;
00388   DWORD EndHeadNumber;
00389 } FORMAT_PARAMETERS,*PFORMAT_PARAMETERS;
00390 typedef struct _FORMAT_EX_PARAMETERS {
00391   MEDIA_TYPE MediaType;
00392   DWORD StartCylinderNumber;
00393   DWORD EndCylinderNumber;
00394   DWORD StartHeadNumber;
00395   DWORD EndHeadNumber;
00396   WORD FormatGapLength;
00397   WORD SectorsPerTrack;
00398   WORD SectorNumber[1];
00399 } FORMAT_EX_PARAMETERS,*PFORMAT_EX_PARAMETERS;
00400 typedef struct {
00401   LARGE_INTEGER Length;
00402 } GET_LENGTH_INFORMATION;
00403 typedef struct _HISTOGRAM_BUCKET {
00404   DWORD Reads;
00405   DWORD Writes;
00406 } HISTOGRAM_BUCKET,*PHISTOGRAM_BUCKET;
00407 typedef struct _DISK_HISTOGRAM {
00408   LARGE_INTEGER DiskSize;
00409   LARGE_INTEGER Start;
00410   LARGE_INTEGER End;
00411   LARGE_INTEGER Average;
00412   LARGE_INTEGER AverageRead;
00413   LARGE_INTEGER AverageWrite;
00414   DWORD Granularity;
00415   DWORD Size;
00416   DWORD ReadCount;
00417   DWORD WriteCount;
00418   PHISTOGRAM_BUCKET Histogram;
00419 } DISK_HISTOGRAM,*PDISK_HISTOGRAM;
00420 typedef struct _DISK_EXTENT {
00421   DWORD DiskNumber;
00422   LARGE_INTEGER StartingOffset;
00423   LARGE_INTEGER ExtentLength;
00424 } DISK_EXTENT,*PDISK_EXTENT;
00425 typedef struct _VOLUME_DISK_EXTENTS {
00426   DWORD NumberOfDiskExtents;
00427   DISK_EXTENT Extents[1];
00428 } VOLUME_DISK_EXTENTS,*PVOLUME_DISK_EXTENTS;
00429 typedef struct _PARTITION_INFORMATION {
00430   LARGE_INTEGER StartingOffset;
00431   LARGE_INTEGER PartitionLength;
00432   DWORD HiddenSectors;
00433   DWORD PartitionNumber;
00434   BYTE PartitionType;
00435   BOOLEAN BootIndicator;
00436   BOOLEAN RecognizedPartition;
00437   BOOLEAN RewritePartition;
00438 } PARTITION_INFORMATION,*PPARTITION_INFORMATION;
00439 typedef struct _DRIVE_LAYOUT_INFORMATION {
00440   DWORD PartitionCount;
00441   DWORD Signature;
00442   PARTITION_INFORMATION PartitionEntry[1];
00443 } DRIVE_LAYOUT_INFORMATION, *PDRIVE_LAYOUT_INFORMATION;
00444 typedef struct _DRIVE_LAYOUT_INFORMATION_GPT {
00445   GUID DiskId;
00446   LARGE_INTEGER StartingUsableOffset;
00447   LARGE_INTEGER UsableLength;
00448   ULONG MaxPartitionCount;
00449 } DRIVE_LAYOUT_INFORMATION_GPT,*PDRIVE_LAYOUT_INFORMATION_GPT;
00450 typedef struct _DRIVE_LAYOUT_INFORMATION_MBR {
00451   ULONG Signature;
00452 } DRIVE_LAYOUT_INFORMATION_MBR, *PDRIVE_LAYOUT_INFORMATION_MBR;
00453 typedef struct _PARTITION_INFORMATION_MBR {
00454   BYTE PartitionType;
00455   BOOLEAN BootIndicator;
00456   BOOLEAN RecognizedPartition;
00457   DWORD HiddenSectors;
00458 } PARTITION_INFORMATION_MBR;
00459 typedef struct _PARTITION_INFORMATION_GPT {
00460   GUID PartitionType;
00461   GUID PartitionId;
00462   DWORD64 Attributes;
00463   WCHAR Name[36];
00464 } PARTITION_INFORMATION_GPT;
00465 typedef struct _PARTITION_INFORMATION_EX {
00466   PARTITION_STYLE PartitionStyle;
00467   LARGE_INTEGER StartingOffset;
00468   LARGE_INTEGER PartitionLength;
00469   DWORD PartitionNumber;
00470   BOOLEAN RewritePartition;
00471   _ANONYMOUS_UNION union {
00472     PARTITION_INFORMATION_MBR Mbr;
00473     PARTITION_INFORMATION_GPT Gpt;
00474   };
00475 } PARTITION_INFORMATION_EX;
00476 typedef struct _DRIVE_LAYOUT_INFORMATION_EX {
00477   DWORD PartitionStyle;
00478   DWORD PartitionCount;
00479   _ANONYMOUS_UNION union {
00480     DRIVE_LAYOUT_INFORMATION_MBR Mbr;
00481     DRIVE_LAYOUT_INFORMATION_GPT Gpt;
00482   };
00483   PARTITION_INFORMATION_EX PartitionEntry[1];
00484 } DRIVE_LAYOUT_INFORMATION_EX,*PDRIVE_LAYOUT_INFORMATION_EX;
00485 typedef struct {
00486   HANDLE FileHandle;
00487   LARGE_INTEGER StartingVcn;
00488   LARGE_INTEGER StartingLcn;
00489   DWORD ClusterCount;
00490 } MOVE_FILE_DATA,*PMOVE_FILE_DATA;
00491 typedef struct _PERF_BIN {
00492   DWORD NumberOfBins;
00493   DWORD TypeOfBin;
00494   BIN_RANGE BinsRanges[1];
00495 } PERF_BIN,*PPERF_BIN;
00496 
00497 #ifndef _NTDDSTOR_H_
00498 typedef struct _PREVENT_MEDIA_REMOVAL {
00499   BOOLEAN PreventMediaRemoval;
00500 } PREVENT_MEDIA_REMOVAL,*PPREVENT_MEDIA_REMOVAL;
00501 #endif
00502 
00503 typedef struct RETRIEVAL_POINTERS_BUFFER {
00504   DWORD ExtentCount;
00505   LARGE_INTEGER StartingVcn;
00506   struct {
00507     LARGE_INTEGER NextVcn;
00508     LARGE_INTEGER Lcn;
00509   } Extents[1];
00510 } RETRIEVAL_POINTERS_BUFFER,*PRETRIEVAL_POINTERS_BUFFER;
00511 typedef struct _REASSIGN_BLOCKS {
00512   WORD Reserved;
00513   WORD Count;
00514   DWORD BlockNumber[1];
00515 } REASSIGN_BLOCKS,*PREASSIGN_BLOCKS;
00516 typedef struct _SET_PARTITION_INFORMATION {
00517   BYTE PartitionType;
00518 } SET_PARTITION_INFORMATION,*PSET_PARTITION_INFORMATION;
00519 typedef struct {
00520   LARGE_INTEGER StartingLcn;
00521 } STARTING_LCN_INPUT_BUFFER,*PSTARTING_LCN_INPUT_BUFFER;
00522 typedef struct {
00523   LARGE_INTEGER StartingVcn;
00524 } STARTING_VCN_INPUT_BUFFER,*PSTARTING_VCN_INPUT_BUFFER;
00525 typedef struct _VERIFY_INFORMATION {
00526   LARGE_INTEGER StartingOffset;
00527   DWORD Length;
00528 } VERIFY_INFORMATION,*PVERIFY_INFORMATION;
00529 typedef struct {
00530   LARGE_INTEGER StartingLcn;
00531   LARGE_INTEGER BitmapSize;
00532   BYTE Buffer[1];
00533 } VOLUME_BITMAP_BUFFER,*PVOLUME_BITMAP_BUFFER;
00534 typedef struct {
00535   LARGE_INTEGER VolumeSerialNumber;
00536   LARGE_INTEGER NumberSectors;
00537   LARGE_INTEGER TotalClusters;
00538   LARGE_INTEGER FreeClusters;
00539   LARGE_INTEGER TotalReserved;
00540   DWORD BytesPerSector;
00541   DWORD BytesPerCluster;
00542   DWORD BytesPerFileRecordSegment;
00543   DWORD ClustersPerFileRecordSegment;
00544   LARGE_INTEGER MftValidDataLength;
00545   LARGE_INTEGER MftStartLcn;
00546   LARGE_INTEGER Mft2StartLcn;
00547   LARGE_INTEGER MftZoneStart;
00548   LARGE_INTEGER MftZoneEnd;
00549 } NTFS_VOLUME_DATA_BUFFER, *PNTFS_VOLUME_DATA_BUFFER;
00550 
00551 #define IsRecognizedPartition(t)\
00552   (((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_FAT_12))||\
00553     ((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_FAT_16))||\
00554     ((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_IFS))||\
00555     ((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_HUGE))||\
00556     ((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_FAT32))||\
00557     ((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_FAT32_XINT13))||\
00558     ((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_XINT13))||\
00559     ((t&~PARTITION_NTFT)==PARTITION_FAT_12)||\
00560     ((t&~PARTITION_NTFT)==PARTITION_FAT_16)||\
00561     ((t&~PARTITION_NTFT)==PARTITION_IFS)||\
00562     ((t&~PARTITION_NTFT)==PARTITION_HUGE)||\
00563     ((t&~PARTITION_NTFT)==PARTITION_FAT32)||\
00564     ((t&~PARTITION_NTFT)==PARTITION_FAT32_XINT13)||\
00565     ((t&~PARTITION_NTFT)==PARTITION_XINT13))
00566 #define IsContainerPartition(t)\
00567   (((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_EXTENDED))||\
00568     ((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_XINT13_EXTENDED))||\
00569     ((t&~PARTITION_NTFT)==PARTITION_EXTENDED)||\
00570     ((t&~PARTITION_NTFT)==PARTITION_XINT13_EXTENDED))
00571 
00572 #ifdef _MSC_VER
00573 #pragma warning(pop)
00574 #endif
00575 
00576 #ifdef __cplusplus
00577 }
00578 #endif
00579 #endif /* _WINIOCTL_ */

Generated on Sun May 27 2012 04:32:43 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.