Mercurial > games > semicongine
comparison fuhtark_test/include/ddk/ntddstor.h @ 1500:91c8c3b7cbf0
add: futhark tests for generating vulkan api
| author | sam <sam@basx.dev> |
|---|---|
| date | Wed, 26 Nov 2025 21:36:48 +0700 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 1499:1f58458b7ef7 | 1500:91c8c3b7cbf0 |
|---|---|
| 1 /* | |
| 2 * ntddstor.h | |
| 3 * | |
| 4 * Storage class IOCTL interface. | |
| 5 * | |
| 6 * This file is part of the w32api package. | |
| 7 * | |
| 8 * Contributors: | |
| 9 * Created by Casper S. Hornstrup <chorns@users.sourceforge.net> | |
| 10 * | |
| 11 * THIS SOFTWARE IS NOT COPYRIGHTED | |
| 12 * | |
| 13 * This source code is offered for use in the public domain. You may | |
| 14 * use, modify or distribute it freely. | |
| 15 * | |
| 16 * This code is distributed in the hope that it will be useful but | |
| 17 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY | |
| 18 * DISCLAIMED. This includes but is not limited to warranties of | |
| 19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | |
| 20 * | |
| 21 */ | |
| 22 | |
| 23 #ifndef __NTDDSTOR_H | |
| 24 #define __NTDDSTOR_H | |
| 25 | |
| 26 #ifdef __cplusplus | |
| 27 extern "C" { | |
| 28 #endif | |
| 29 | |
| 30 #define IOCTL_STORAGE_BASE FILE_DEVICE_MASS_STORAGE | |
| 31 | |
| 32 #define IOCTL_STORAGE_CHECK_VERIFY \ | |
| 33 CTL_CODE(IOCTL_STORAGE_BASE, 0x0200, METHOD_BUFFERED, FILE_READ_ACCESS) | |
| 34 | |
| 35 #define IOCTL_STORAGE_CHECK_VERIFY2 \ | |
| 36 CTL_CODE(IOCTL_STORAGE_BASE, 0x0200, METHOD_BUFFERED, FILE_ANY_ACCESS) | |
| 37 | |
| 38 #define IOCTL_STORAGE_EJECT_MEDIA \ | |
| 39 CTL_CODE(IOCTL_STORAGE_BASE, 0x0202, METHOD_BUFFERED, FILE_READ_ACCESS) | |
| 40 | |
| 41 #define IOCTL_STORAGE_EJECTION_CONTROL \ | |
| 42 CTL_CODE(IOCTL_STORAGE_BASE, 0x0250, METHOD_BUFFERED, FILE_ANY_ACCESS) | |
| 43 | |
| 44 #define IOCTL_STORAGE_FIND_NEW_DEVICES \ | |
| 45 CTL_CODE(IOCTL_STORAGE_BASE, 0x0206, METHOD_BUFFERED, FILE_READ_ACCESS) | |
| 46 | |
| 47 #define IOCTL_STORAGE_GET_DEVICE_NUMBER \ | |
| 48 CTL_CODE(IOCTL_STORAGE_BASE, 0x0420, METHOD_BUFFERED, FILE_ANY_ACCESS) | |
| 49 | |
| 50 #define IOCTL_STORAGE_GET_MEDIA_SERIAL_NUMBER \ | |
| 51 CTL_CODE(IOCTL_STORAGE_BASE, 0x0304, METHOD_BUFFERED, FILE_ANY_ACCESS) | |
| 52 | |
| 53 #define IOCTL_STORAGE_GET_MEDIA_TYPES \ | |
| 54 CTL_CODE(IOCTL_STORAGE_BASE, 0x0300, METHOD_BUFFERED, FILE_ANY_ACCESS) | |
| 55 | |
| 56 #define IOCTL_STORAGE_GET_MEDIA_TYPES_EX \ | |
| 57 CTL_CODE(IOCTL_STORAGE_BASE, 0x0301, METHOD_BUFFERED, FILE_ANY_ACCESS) | |
| 58 | |
| 59 #define IOCTL_STORAGE_LOAD_MEDIA \ | |
| 60 CTL_CODE(IOCTL_STORAGE_BASE, 0x0203, METHOD_BUFFERED, FILE_READ_ACCESS) | |
| 61 | |
| 62 #define IOCTL_STORAGE_LOAD_MEDIA2 \ | |
| 63 CTL_CODE(IOCTL_STORAGE_BASE, 0x0203, METHOD_BUFFERED, FILE_ANY_ACCESS) | |
| 64 | |
| 65 #define IOCTL_STORAGE_MCN_CONTROL \ | |
| 66 CTL_CODE(IOCTL_STORAGE_BASE, 0x0251, METHOD_BUFFERED, FILE_ANY_ACCESS) | |
| 67 | |
| 68 #define IOCTL_STORAGE_MEDIA_REMOVAL \ | |
| 69 CTL_CODE(IOCTL_STORAGE_BASE, 0x0201, METHOD_BUFFERED, FILE_READ_ACCESS) | |
| 70 | |
| 71 #define IOCTL_STORAGE_PREDICT_FAILURE \ | |
| 72 CTL_CODE(IOCTL_STORAGE_BASE, 0x0440, METHOD_BUFFERED, FILE_ANY_ACCESS) | |
| 73 | |
| 74 #define IOCTL_STORAGE_QUERY_PROPERTY \ | |
| 75 CTL_CODE(IOCTL_STORAGE_BASE, 0x0500, METHOD_BUFFERED, FILE_ANY_ACCESS) | |
| 76 | |
| 77 #define IOCTL_STORAGE_RELEASE \ | |
| 78 CTL_CODE(IOCTL_STORAGE_BASE, 0x0205, METHOD_BUFFERED, FILE_READ_ACCESS) | |
| 79 | |
| 80 #define IOCTL_STORAGE_RESERVE \ | |
| 81 CTL_CODE(IOCTL_STORAGE_BASE, 0x0204, METHOD_BUFFERED, FILE_READ_ACCESS) | |
| 82 | |
| 83 #define IOCTL_STORAGE_GET_HOTPLUG_INFO \ | |
| 84 CTL_CODE(IOCTL_STORAGE_BASE, 0x0305, METHOD_BUFFERED, FILE_ANY_ACCESS) | |
| 85 | |
| 86 #define IOCTL_STORAGE_SET_HOTPLUG_INFO \ | |
| 87 CTL_CODE(IOCTL_STORAGE_BASE, 0x0306, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) | |
| 88 | |
| 89 #define IOCTL_STORAGE_RESET_BUS \ | |
| 90 CTL_CODE(IOCTL_STORAGE_BASE, 0x0400, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) | |
| 91 | |
| 92 #define IOCTL_STORAGE_RESET_DEVICE \ | |
| 93 CTL_CODE(IOCTL_STORAGE_BASE, 0x0401, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) | |
| 94 | |
| 95 | |
| 96 DEFINE_GUID(GUID_DEVINTERFACE_DISK, | |
| 97 0x53f56307L, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b); | |
| 98 | |
| 99 DEFINE_GUID(GUID_DEVINTERFACE_CDROM, | |
| 100 0x53f56308L, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b); | |
| 101 | |
| 102 DEFINE_GUID(GUID_DEVINTERFACE_PARTITION, | |
| 103 0x53f5630aL, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b); | |
| 104 | |
| 105 DEFINE_GUID(GUID_DEVINTERFACE_TAPE, | |
| 106 0x53f5630bL, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b); | |
| 107 | |
| 108 DEFINE_GUID(GUID_DEVINTERFACE_WRITEONCEDISK, | |
| 109 0x53f5630cL, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b); | |
| 110 | |
| 111 DEFINE_GUID(GUID_DEVINTERFACE_VOLUME, | |
| 112 0x53f5630dL, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b); | |
| 113 | |
| 114 DEFINE_GUID(GUID_DEVINTERFACE_MEDIUMCHANGER, | |
| 115 0x53f56310L, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b); | |
| 116 | |
| 117 DEFINE_GUID(GUID_DEVINTERFACE_FLOPPY, | |
| 118 0x53f56311L, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b); | |
| 119 | |
| 120 DEFINE_GUID(GUID_DEVINTERFACE_CDCHANGER, | |
| 121 0x53f56312L, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b); | |
| 122 | |
| 123 DEFINE_GUID(GUID_DEVINTERFACE_STORAGEPORT, | |
| 124 0x2accfe60L, 0xc130, 0x11d2, 0xb0, 0x82, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b); | |
| 125 | |
| 126 DEFINE_GUID(GUID_DEVINTERFACE_HIDDEN_VOLUME, | |
| 127 0x7f108a28L, 0x9833, 0x4b3b, 0xb7, 0x80, 0x2c, 0x6b, 0x5f, 0xa5, 0xc0, 0x62); | |
| 128 | |
| 129 /* Aliases for storage guids */ | |
| 130 #define DiskClassGuid GUID_DEVINTERFACE_DISK | |
| 131 #define CdRomClassGuid GUID_DEVINTERFACE_CDROM | |
| 132 #define PartitionClassGuid GUID_DEVINTERFACE_PARTITION | |
| 133 #define TapeClassGuid GUID_DEVINTERFACE_TAPE | |
| 134 #define WriteOnceDiskClassGuid GUID_DEVINTERFACE_WRITEONCEDISK | |
| 135 #define VolumeClassGuid GUID_DEVINTERFACE_VOLUME | |
| 136 #define MediumChangerClassGuid GUID_DEVINTERFACE_MEDIUMCHANGER | |
| 137 #define FloppyClassGuid GUID_DEVINTERFACE_FLOPPY | |
| 138 #define CdChangerClassGuid GUID_DEVINTERFACE_CDCHANGER | |
| 139 #define StoragePortClassGuid GUID_DEVINTERFACE_STORAGEPORT | |
| 140 #define HiddenVolumeClassGuid GUID_DEVINTERFACE_HIDDEN_VOLUME | |
| 141 | |
| 142 typedef enum _STORAGE_MEDIA_TYPE { | |
| 143 DDS_4mm = 0x20, | |
| 144 MiniQic, | |
| 145 Travan, | |
| 146 QIC, | |
| 147 MP_8mm, | |
| 148 AME_8mm, | |
| 149 AIT1_8mm, | |
| 150 DLT, | |
| 151 NCTP, | |
| 152 IBM_3480, | |
| 153 IBM_3490E, | |
| 154 IBM_Magstar_3590, | |
| 155 IBM_Magstar_MP, | |
| 156 STK_DATA_D3, | |
| 157 SONY_DTF, | |
| 158 DV_6mm, | |
| 159 DMI, | |
| 160 SONY_D2, | |
| 161 CLEANER_CARTRIDGE, | |
| 162 CD_ROM, | |
| 163 CD_R, | |
| 164 CD_RW, | |
| 165 DVD_ROM, | |
| 166 DVD_R, | |
| 167 DVD_RW, | |
| 168 MO_3_RW, | |
| 169 MO_5_WO, | |
| 170 MO_5_RW, | |
| 171 MO_5_LIMDOW, | |
| 172 PC_5_WO, | |
| 173 PC_5_RW, | |
| 174 PD_5_RW, | |
| 175 ABL_5_WO, | |
| 176 PINNACLE_APEX_5_RW, | |
| 177 SONY_12_WO, | |
| 178 PHILIPS_12_WO, | |
| 179 HITACHI_12_WO, | |
| 180 CYGNET_12_WO, | |
| 181 KODAK_14_WO, | |
| 182 MO_NFR_525, | |
| 183 NIKON_12_RW, | |
| 184 IOMEGA_ZIP, | |
| 185 IOMEGA_JAZ, | |
| 186 SYQUEST_EZ135, | |
| 187 SYQUEST_EZFLYER, | |
| 188 SYQUEST_SYJET, | |
| 189 AVATAR_F2, | |
| 190 MP2_8mm, | |
| 191 DST_S, | |
| 192 DST_M, | |
| 193 DST_L, | |
| 194 VXATape_1, | |
| 195 VXATape_2, | |
| 196 STK_9840, | |
| 197 LTO_Ultrium, | |
| 198 LTO_Accelis, | |
| 199 DVD_RAM, | |
| 200 AIT_8mm, | |
| 201 ADR_1, | |
| 202 ADR_2 | |
| 203 } STORAGE_MEDIA_TYPE, *PSTORAGE_MEDIA_TYPE; | |
| 204 | |
| 205 typedef enum _STORAGE_BUS_TYPE { | |
| 206 BusTypeUnknown = 0x00, | |
| 207 BusTypeScsi, | |
| 208 BusTypeAtapi, | |
| 209 BusTypeAta, | |
| 210 BusType1394, | |
| 211 BusTypeSsa, | |
| 212 BusTypeFibre, | |
| 213 BusTypeUsb, | |
| 214 BusTypeRAID, | |
| 215 BusTypeMaxReserved = 0x7F | |
| 216 } STORAGE_BUS_TYPE, *PSTORAGE_BUS_TYPE; | |
| 217 | |
| 218 /* DEVICE_MEDIA_INFO.DeviceSpecific.DiskInfo.MediaCharacteristics constants */ | |
| 219 #define MEDIA_ERASEABLE 0x00000001 | |
| 220 #define MEDIA_WRITE_ONCE 0x00000002 | |
| 221 #define MEDIA_READ_ONLY 0x00000004 | |
| 222 #define MEDIA_READ_WRITE 0x00000008 | |
| 223 #define MEDIA_WRITE_PROTECTED 0x00000100 | |
| 224 #define MEDIA_CURRENTLY_MOUNTED 0x80000000 | |
| 225 | |
| 226 typedef struct _DEVICE_MEDIA_INFO { | |
| 227 union { | |
| 228 struct { | |
| 229 LARGE_INTEGER Cylinders; | |
| 230 STORAGE_MEDIA_TYPE MediaType; | |
| 231 ULONG TracksPerCylinder; | |
| 232 ULONG SectorsPerTrack; | |
| 233 ULONG BytesPerSector; | |
| 234 ULONG NumberMediaSides; | |
| 235 ULONG MediaCharacteristics; | |
| 236 } DiskInfo; | |
| 237 struct { | |
| 238 LARGE_INTEGER Cylinders; | |
| 239 STORAGE_MEDIA_TYPE MediaType; | |
| 240 ULONG TracksPerCylinder; | |
| 241 ULONG SectorsPerTrack; | |
| 242 ULONG BytesPerSector; | |
| 243 ULONG NumberMediaSides; | |
| 244 ULONG MediaCharacteristics; | |
| 245 } RemovableDiskInfo; | |
| 246 struct { | |
| 247 STORAGE_MEDIA_TYPE MediaType; | |
| 248 ULONG MediaCharacteristics; | |
| 249 ULONG CurrentBlockSize; | |
| 250 STORAGE_BUS_TYPE BusType; | |
| 251 union { | |
| 252 struct { | |
| 253 UCHAR MediumType; | |
| 254 UCHAR DensityCode; | |
| 255 } ScsiInformation; | |
| 256 } BusSpecificData; | |
| 257 } TapeInfo; | |
| 258 } DeviceSpecific; | |
| 259 } DEVICE_MEDIA_INFO, *PDEVICE_MEDIA_INFO; | |
| 260 | |
| 261 typedef struct _GET_MEDIA_TYPES { | |
| 262 ULONG DeviceType; | |
| 263 ULONG MediaInfoCount; | |
| 264 DEVICE_MEDIA_INFO MediaInfo[1]; | |
| 265 } GET_MEDIA_TYPES, *PGET_MEDIA_TYPES; | |
| 266 | |
| 267 typedef struct _STORAGE_ADAPTER_DESCRIPTOR { | |
| 268 ULONG Version; | |
| 269 ULONG Size; | |
| 270 ULONG MaximumTransferLength; | |
| 271 ULONG MaximumPhysicalPages; | |
| 272 ULONG AlignmentMask; | |
| 273 BOOLEAN AdapterUsesPio; | |
| 274 BOOLEAN AdapterScansDown; | |
| 275 BOOLEAN CommandQueueing; | |
| 276 BOOLEAN AcceleratedTransfer; | |
| 277 STORAGE_BUS_TYPE BusType; | |
| 278 USHORT BusMajorVersion; | |
| 279 USHORT BusMinorVersion; | |
| 280 } STORAGE_ADAPTER_DESCRIPTOR, *PSTORAGE_ADAPTER_DESCRIPTOR; | |
| 281 | |
| 282 typedef struct _STORAGE_BUS_RESET_REQUEST { | |
| 283 UCHAR PathId; | |
| 284 } STORAGE_BUS_RESET_REQUEST, *PSTORAGE_BUS_RESET_REQUEST; | |
| 285 | |
| 286 typedef struct _STORAGE_DESCRIPTOR_HEADER { | |
| 287 ULONG Version; | |
| 288 ULONG Size; | |
| 289 } STORAGE_DESCRIPTOR_HEADER, *PSTORAGE_DESCRIPTOR_HEADER; | |
| 290 | |
| 291 typedef struct _STORAGE_DEVICE_DESCRIPTOR { | |
| 292 ULONG Version; | |
| 293 ULONG Size; | |
| 294 UCHAR DeviceType; | |
| 295 UCHAR DeviceTypeModifier; | |
| 296 BOOLEAN RemovableMedia; | |
| 297 BOOLEAN CommandQueueing; | |
| 298 ULONG VendorIdOffset; | |
| 299 ULONG ProductIdOffset; | |
| 300 ULONG ProductRevisionOffset; | |
| 301 ULONG SerialNumberOffset; | |
| 302 STORAGE_BUS_TYPE BusType; | |
| 303 ULONG RawPropertiesLength; | |
| 304 UCHAR RawDeviceProperties[1]; | |
| 305 } STORAGE_DEVICE_DESCRIPTOR, *PSTORAGE_DEVICE_DESCRIPTOR; | |
| 306 | |
| 307 typedef struct _STORAGE_DEVICE_ID_DESCRIPTOR { | |
| 308 ULONG Version; | |
| 309 ULONG Size; | |
| 310 ULONG NumberOfIdentifiers; | |
| 311 UCHAR Identifiers[1]; | |
| 312 } STORAGE_DEVICE_ID_DESCRIPTOR, *PSTORAGE_DEVICE_ID_DESCRIPTOR; | |
| 313 | |
| 314 typedef struct _STORAGE_DEVICE_NUMBER { | |
| 315 DEVICE_TYPE DeviceType; | |
| 316 ULONG DeviceNumber; | |
| 317 ULONG PartitionNumber; | |
| 318 } STORAGE_DEVICE_NUMBER, *PSTORAGE_DEVICE_NUMBER; | |
| 319 | |
| 320 typedef struct _STORAGE_PREDICT_FAILURE { | |
| 321 ULONG PredictFailure; | |
| 322 UCHAR VendorSpecific[512]; | |
| 323 } STORAGE_PREDICT_FAILURE, *PSTORAGE_PREDICT_FAILURE; | |
| 324 | |
| 325 typedef enum _STORAGE_PROPERTY_ID { | |
| 326 StorageDeviceProperty = 0, | |
| 327 StorageAdapterProperty, | |
| 328 StorageDeviceIdProperty, | |
| 329 StorageDeviceUniqueIdProperty, | |
| 330 StorageDeviceWriteCacheProperty, | |
| 331 StorageMiniportProperty, | |
| 332 StorageAccessAlignmentProperty | |
| 333 } STORAGE_PROPERTY_ID, *PSTORAGE_PROPERTY_ID; | |
| 334 | |
| 335 typedef enum _STORAGE_QUERY_TYPE { | |
| 336 PropertyStandardQuery = 0, | |
| 337 PropertyExistsQuery, | |
| 338 PropertyMaskQuery, | |
| 339 PropertyQueryMaxDefined | |
| 340 } STORAGE_QUERY_TYPE, *PSTORAGE_QUERY_TYPE; | |
| 341 | |
| 342 typedef struct _STORAGE_PROPERTY_QUERY { | |
| 343 STORAGE_PROPERTY_ID PropertyId; | |
| 344 STORAGE_QUERY_TYPE QueryType; | |
| 345 UCHAR AdditionalParameters[1]; | |
| 346 } STORAGE_PROPERTY_QUERY, *PSTORAGE_PROPERTY_QUERY; | |
| 347 | |
| 348 typedef struct _PREVENT_MEDIA_REMOVAL { | |
| 349 BOOLEAN PreventMediaRemoval; | |
| 350 } PREVENT_MEDIA_REMOVAL, *PPREVENT_MEDIA_REMOVAL; | |
| 351 | |
| 352 #ifdef __cplusplus | |
| 353 } | |
| 354 #endif | |
| 355 | |
| 356 #endif /* __NTDDSTOR_H */ |
