Signed-off-by: Mark Harmstone <m...@harmstone.com>
---
 mingw-w64-headers/include/winioctl.h | 132 ++++++++++++++++++++++++++-
 1 file changed, 131 insertions(+), 1 deletion(-)

diff --git a/mingw-w64-headers/include/winioctl.h 
b/mingw-w64-headers/include/winioctl.h
index fb6d639c2..f017925ec 100644
--- a/mingw-w64-headers/include/winioctl.h
+++ b/mingw-w64-headers/include/winioctl.h
@@ -19,6 +19,7 @@ 
DEFINE_GUID(GUID_DEVINTERFACE_MEDIUMCHANGER,0x53f56310,0xb6bf,0x11d0,0x94,0xf2,0
 
DEFINE_GUID(GUID_DEVINTERFACE_FLOPPY,0x53f56311,0xb6bf,0x11d0,0x94,0xf2,0x00,0xa0,0xc9,0x1e,0xfb,0x8b);
 
DEFINE_GUID(GUID_DEVINTERFACE_CDCHANGER,0x53f56312,0xb6bf,0x11d0,0x94,0xf2,0x00,0xa0,0xc9,0x1e,0xfb,0x8b);
 
DEFINE_GUID(GUID_DEVINTERFACE_STORAGEPORT,0x2accfe60,0xc130,0x11d2,0xb0,0x82,0x00,0xa0,0xc9,0x1e,0xfb,0x8b);
+DEFINE_GUID(GUID_DEVINTERFACE_HIDDEN_VOLUME,0x7f108a28,0x9833,0x4b3b,0xb7,0x80,0x2c,0x6b,0x5f,0xa5,0xc0,0x62);
 
DEFINE_GUID(GUID_DEVINTERFACE_COMPORT,0x86e0d1e0,0x8089,0x11d0,0x9c,0xe4,0x08,0x00,0x3e,0x30,0x1f,0x73);
 
DEFINE_GUID(GUID_DEVINTERFACE_SERENUM_BUS_ENUMERATOR,0x4D36E978,0xE325,0x11CE,0xBF,0xC1,0x08,0x00,0x2B,0xE1,0x03,0x18);
 
@@ -32,6 +33,7 @@ 
DEFINE_GUID(GUID_DEVINTERFACE_SERENUM_BUS_ENUMERATOR,0x4D36E978,0xE325,0x11CE,0x
 #define FloppyClassGuid GUID_DEVINTERFACE_FLOPPY
 #define CdChangerClassGuid GUID_DEVINTERFACE_CDCHANGER
 #define StoragePortClassGuid GUID_DEVINTERFACE_STORAGEPORT
+#define HiddenVolumeClassGuid GUID_DEVINTERFACE_HIDDEN_VOLUME
 #define GUID_CLASS_COMPORT GUID_DEVINTERFACE_COMPORT
 #define GUID_SERENUM_BUS_ENUMERATOR GUID_DEVINTERFACE_SERENUM_BUS_ENUMERATOR
 #endif /* DEFINE_GUID */
@@ -183,11 +185,18 @@ extern "C" {
 #define IOCTL_STORAGE_RESET_BUS 
CTL_CODE(IOCTL_STORAGE_BASE,0x0400,METHOD_BUFFERED,FILE_READ_ACCESS)
 #define IOCTL_STORAGE_RESET_DEVICE 
CTL_CODE(IOCTL_STORAGE_BASE,0x0401,METHOD_BUFFERED,FILE_READ_ACCESS)
 #define IOCTL_STORAGE_BREAK_RESERVATION 
CTL_CODE(IOCTL_STORAGE_BASE,0x0405,METHOD_BUFFERED,FILE_READ_ACCESS)
+#define IOCTL_STORAGE_PERSISTENT_RESERVE_IN CTL_CODE(IOCTL_STORAGE_BASE, 
0x0406, METHOD_BUFFERED, FILE_READ_ACCESS)
+#define IOCTL_STORAGE_PERSISTENT_RESERVE_OUT CTL_CODE(IOCTL_STORAGE_BASE, 
0x0407, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
 
 #define IOCTL_STORAGE_GET_DEVICE_NUMBER 
CTL_CODE(IOCTL_STORAGE_BASE,0x0420,METHOD_BUFFERED,FILE_ANY_ACCESS)
 #define IOCTL_STORAGE_PREDICT_FAILURE 
CTL_CODE(IOCTL_STORAGE_BASE,0x0440,METHOD_BUFFERED,FILE_ANY_ACCESS)
 #define IOCTL_STORAGE_READ_CAPACITY 
CTL_CODE(IOCTL_STORAGE_BASE,0x0450,METHOD_BUFFERED,FILE_READ_ACCESS)
 
+#define IOCTL_STORAGE_GET_BC_PROPERTIES CTL_CODE(IOCTL_STORAGE_BASE, 0x0600, 
METHOD_BUFFERED, FILE_READ_ACCESS)
+#define IOCTL_STORAGE_ALLOCATE_BC_STREAM CTL_CODE(IOCTL_STORAGE_BASE, 0x0601, 
METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+#define IOCTL_STORAGE_FREE_BC_STREAM CTL_CODE(IOCTL_STORAGE_BASE, 0x0602, 
METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+#define IOCTL_STORAGE_CHECK_PRIORITY_HINT_SUPPORT CTL_CODE(IOCTL_STORAGE_BASE, 
0x0620, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
 #define OBSOLETE_IOCTL_STORAGE_RESET_BUS 
CTL_CODE(IOCTL_STORAGE_BASE,0x0400,METHOD_BUFFERED,FILE_READ_ACCESS | 
FILE_WRITE_ACCESS)
 #define OBSOLETE_IOCTL_STORAGE_RESET_DEVICE 
CTL_CODE(IOCTL_STORAGE_BASE,0x0401,METHOD_BUFFERED,FILE_READ_ACCESS | 
FILE_WRITE_ACCESS)
 
@@ -209,6 +218,13 @@ typedef struct _STORAGE_READ_CAPACITY {
 
 #define DEVICE_DSM_FLAG_ENTIRE_DATA_SET_RANGE __MSABI_LONG(0x00000001)
 
+#define DEVICE_DSM_NOTIFY_FLAG_BEGIN             0x00000001
+#define DEVICE_DSM_NOTIFY_FLAG_END               0x00000002
+
+#define IOCTL_STORAGE_BC_VERSION                 1
+
+#define STORAGE_PRIORITY_HINT_SUPPORTED          0x0001
+
   typedef DWORD DEVICE_DATA_MANAGEMENT_SET_ACTION;
   typedef struct _DEVICE_MANAGE_DATA_SET_ATTRIBUTES {
     DWORD                             Size;
@@ -225,6 +241,71 @@ typedef struct _STORAGE_READ_CAPACITY {
     DWORDLONG LengthInBytes;
   } DEVICE_DATA_SET_RANGE, *PDEVICE_DATA_SET_RANGE;
 
+  typedef struct _DEVICE_DSM_NOTIFICATION_PARAMETERS {
+    ULONG Size;
+    ULONG Flags;
+    ULONG NumFileTypeIDs;
+    GUID FileTypeID[1];
+  } DEVICE_DSM_NOTIFICATION_PARAMETERS, *PDEVICE_DSM_NOTIFICATION_PARAMETERS;
+
+  typedef struct _STORAGE_GET_BC_PROPERTIES_OUTPUT {
+    ULONG MaximumRequestsPerPeriod;
+    ULONG MinimumPeriod;
+    ULONGLONG MaximumRequestSize;
+    ULONG EstimatedTimePerRequest;
+    ULONG NumOutStandingRequests;
+    ULONGLONG RequestSize;
+  } STORAGE_GET_BC_PROPERTIES_OUTPUT, *PSTORAGE_GET_BC_PROPERTIES_OUTPUT;
+
+  typedef struct _STORAGE_ALLOCATE_BC_STREAM_INPUT {
+    ULONG Version;
+    ULONG RequestsPerPeriod;
+    ULONG Period;
+    BOOLEAN RetryFailures;
+    BOOLEAN Discardable;
+    BOOLEAN Reserved1[2];
+    ULONG AccessType;
+    ULONG AccessMode;
+  } STORAGE_ALLOCATE_BC_STREAM_INPUT, *PSTORAGE_ALLOCATE_BC_STREAM_INPUT;
+
+  typedef struct _STORAGE_ALLOCATE_BC_STREAM_OUTPUT {
+    ULONGLONG RequestSize;
+    ULONG NumOutStandingRequests;
+  } STORAGE_ALLOCATE_BC_STREAM_OUTPUT, *PSTORAGE_ALLOCATE_BC_STREAM_OUTPUT;
+
+  typedef struct _STORAGE_PRIORITY_HINT_SUPPORT {
+    ULONG SupportFlags;
+  } STORAGE_PRIORITY_HINT_SUPPORT, *PSTORAGE_PRIORITY_HINT_SUPPORT;
+
+#if defined(_MSC_EXTENSIONS) || defined(__GNUC__)
+
+  typedef struct _STORAGE_MEDIA_SERIAL_NUMBER_DATA {
+    USHORT Reserved;
+    USHORT SerialNumberLength;
+    UCHAR SerialNumber[0];
+  } STORAGE_MEDIA_SERIAL_NUMBER_DATA, *PSTORAGE_MEDIA_SERIAL_NUMBER_DATA;
+
+  typedef struct _PERSISTENT_RESERVE_COMMAND {
+    ULONG Version;
+    ULONG Size;
+    __C89_NAMELESS union {
+      struct {
+        UCHAR ServiceAction:5;
+        UCHAR Reserved1:3;
+        USHORT AllocationLength;
+      } PR_IN;
+      struct {
+        UCHAR ServiceAction:5;
+        UCHAR Reserved1:3;
+        UCHAR Type:4;
+        UCHAR Scope:4;
+        UCHAR ParameterList[0];
+      } PR_OUT;
+    } DUMMYUNIONNAME;
+  } PERSISTENT_RESERVE_COMMAND, *PPERSISTENT_RESERVE_COMMAND;
+
+#endif /* defined(_MSC_EXTENSIONS) */
+
   typedef struct _STORAGE_HOTPLUG_INFO {
     DWORD Size;
     BOOLEAN MediaRemovable;
@@ -1788,7 +1869,8 @@ typedef enum _STORAGE_PROPERTY_ID {
   StorageMiniportProperty            = 5,
   StorageAccessAlignmentProperty     = 6,
   StorageDeviceSeekPenaltyProperty   = 7,
-  StorageDeviceTrimProperty          = 8 
+  StorageDeviceTrimProperty          = 8,
+  StorageDeviceWriteAggregationProperty = 9
 } STORAGE_PROPERTY_ID, *PSTORAGE_PROPERTY_ID;
 
 typedef enum _STORAGE_QUERY_TYPE {
@@ -2229,6 +2311,48 @@ typedef struct _STORAGE_MINIPORT_DESCRIPTOR {
   BOOLEAN               TargetResetSupported;
 } STORAGE_MINIPORT_DESCRIPTOR, *PSTORAGE_MINIPORT_DESCRIPTOR;
 
+typedef enum _STORAGE_IDENTIFIER_CODE_SET {
+  StorageIdCodeSetReserved = 0,
+  StorageIdCodeSetBinary = 1,
+  StorageIdCodeSetAscii = 2,
+  StorageIdCodeSetUtf8 = 3
+} STORAGE_IDENTIFIER_CODE_SET, *PSTORAGE_IDENTIFIER_CODE_SET;
+
+typedef enum _STORAGE_IDENTIFIER_TYPE {
+  StorageIdTypeVendorSpecific = 0,
+  StorageIdTypeVendorId = 1,
+  StorageIdTypeEUI64 = 2,
+  StorageIdTypeFCPHName = 3,
+  StorageIdTypePortRelative = 4,
+  StorageIdTypeTargetPortGroup = 5,
+  StorageIdTypeLogicalUnitGroup = 6,
+  StorageIdTypeMD5LogicalUnitIdentifier = 7,
+  StorageIdTypeScsiNameString = 8
+} STORAGE_IDENTIFIER_TYPE, *PSTORAGE_IDENTIFIER_TYPE;
+
+#define StorageIdTypeNAA StorageIdTypeFCPHName
+
+typedef enum _STORAGE_ID_NAA_FORMAT {
+  StorageIdNAAFormatIEEEExtended = 2,
+  StorageIdNAAFormatIEEERegistered = 3,
+  StorageIdNAAFormatIEEEERegisteredExtended = 5
+} STORAGE_ID_NAA_FORMAT, *PSTORAGE_ID_NAA_FORMAT;
+
+typedef enum _STORAGE_ASSOCIATION_TYPE {
+  StorageIdAssocDevice = 0,
+  StorageIdAssocPort = 1,
+  StorageIdAssocTarget = 2
+} STORAGE_ASSOCIATION_TYPE, *PSTORAGE_ASSOCIATION_TYPE;
+
+typedef struct _STORAGE_IDENTIFIER {
+  STORAGE_IDENTIFIER_CODE_SET CodeSet;
+  STORAGE_IDENTIFIER_TYPE Type;
+  USHORT IdentifierSize;
+  USHORT NextOffset;
+  STORAGE_ASSOCIATION_TYPE Association;
+  UCHAR Identifier[1];
+} STORAGE_IDENTIFIER, *PSTORAGE_IDENTIFIER;
+
 typedef struct _STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR {
   DWORD Version;
   DWORD Size;
@@ -2246,6 +2370,12 @@ typedef struct _DEVICE_SEEK_PENALTY_DESCRIPTOR {
   BOOLEAN IncursSeekPenalty;
 } DEVICE_SEEK_PENALTY_DESCRIPTOR, *PDEVICE_SEEK_PENALTY_DESCRIPTOR;
 
+typedef struct _DEVICE_WRITE_AGGREGATION_DESCRIPTOR {
+  ULONG Version;
+  ULONG Size;
+  BOOLEAN BenefitsFromWriteAggregation;
+} DEVICE_WRITE_AGGREGATION_DESCRIPTOR, *PDEVICE_WRITE_AGGREGATION_DESCRIPTOR;
+
 typedef struct _DEVICE_TRIM_DESCRIPTOR {
   DWORD   Version;
   DWORD   Size;
-- 
2.26.3



_______________________________________________
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to