https://git.reactos.org/?p=reactos.git;a=commitdiff;h=075871076cd3852c451ff…
commit 075871076cd3852c451ff6310ab06938224a9436
Author: Victor Perevertkin <victor.perevertkin(a)reactos.org>
AuthorDate: Mon Aug 24 04:04:32 2020 +0300
Commit: Victor Perevertkin <victor.perevertkin(a)reactos.org>
CommitDate: Mon Aug 24 04:04:32 2020 +0300
[PSDK] Import definitions needed by newer storage class drivers
CORE-17129
---
sdk/include/psdk/devpkey.h | 1 +
sdk/include/psdk/devpropdef.h | 8 +-
sdk/include/psdk/ntdddisk.h | 291 ++++++++++++++++++++++++++++----
sdk/include/psdk/ntddstor.h | 383 +++++++++++++++++++++++++++++++++++++++++-
sdk/include/psdk/ntiologc.h | 66 +++++---
sdk/include/psdk/ntstatus.h | 221 +++++++++++++++++++++++-
6 files changed, 902 insertions(+), 68 deletions(-)
diff --git a/sdk/include/psdk/devpkey.h b/sdk/include/psdk/devpkey.h
index ebaabc10b5c..a908dfdebf2 100644
--- a/sdk/include/psdk/devpkey.h
+++ b/sdk/include/psdk/devpkey.h
@@ -56,6 +56,7 @@ DEFINE_DEVPROPKEY(DEVPKEY_Device_RemovalPolicyOverride,
0xa45c254e,0xdf1c,0x4efd
DEFINE_DEVPROPKEY(DEVPKEY_Device_InstallState,
0xa45c254e,0xdf1c,0x4efd,0x80,0x20,0x67,0xd1,0x46,0xa8,0x50,0xe0, 36);
DEFINE_DEVPROPKEY(DEVPKEY_Device_LocationPaths,
0xa45c254e,0xdf1c,0x4efd,0x80,0x20,0x67,0xd1,0x46,0xa8,0x50,0xe0, 37);
DEFINE_DEVPROPKEY(DEVPKEY_Device_BaseContainerId,
0xa45c254e,0xdf1c,0x4efd,0x80,0x20,0x67,0xd1,0x46,0xa8,0x50,0xe0, 38);
+DEFINE_DEVPROPKEY(DEVPKEY_Device_InLocalMachineContainer, 0x8c7ed206, 0x3f8a, 0x4827,
0xb3, 0xab, 0xae, 0x9e, 0x1f, 0xae, 0xfc, 0x6c, 4);
DEFINE_DEVPROPKEY(DEVPKEY_DeviceInterface_FriendlyName,
0x026e516e,0x8b14,0x414b,0x83,0xcd,0x85,0x6d,0x6f,0xef,0x48,0x22, 2);
DEFINE_DEVPROPKEY(DEVPKEY_DeviceInterface_Enabled,
0x026e516e,0x8b14,0x414b,0x83,0xcd,0x85,0x6d,0x6f,0xef,0x48,0x22, 3);
diff --git a/sdk/include/psdk/devpropdef.h b/sdk/include/psdk/devpropdef.h
index ab8fbf0643e..f4de8d842a9 100644
--- a/sdk/include/psdk/devpropdef.h
+++ b/sdk/include/psdk/devpropdef.h
@@ -90,18 +90,18 @@ typedef struct _DEVPROPKEY {
#ifdef INITGUID
#ifdef __cplusplus
#define DEFINE_DEVPROPKEY(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8, pid) \
- EXTERN_C const DEVPROPKEY DECLSPEC_HIDDEN DECLSPEC_SELECTANY name = { { l, w1,
w2, { b1, b2, b3, b4, b5, b6, b7, b8 } }, pid }
+ EXTERN_C const DEVPROPKEY DECLSPEC_SELECTANY name = { { l, w1, w2, { b1, b2, b3,
b4, b5, b6, b7, b8 } }, pid }
#else
#define DEFINE_DEVPROPKEY(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8, pid) \
- const DEVPROPKEY DECLSPEC_HIDDEN DECLSPEC_SELECTANY name = { { l, w1, w2, { b1,
b2, b3, b4, b5, b6, b7, b8 } }, pid }
+ const DEVPROPKEY DECLSPEC_SELECTANY name = { { l, w1, w2, { b1, b2, b3, b4,
b5, b6, b7, b8 } }, pid }
#endif
#else
#ifdef __GNUC__
#define DEFINE_DEVPROPKEY(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8, pid) \
- EXTERN_C const DEVPROPKEY DECLSPEC_HIDDEN name
+ EXTERN_C const DEVPROPKEY name
#else
#define DEFINE_DEVPROPKEY(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8, pid) \
- EXTERN_C const DEVPROPKEY DECLSPEC_HIDDEN DECLSPEC_SELECTANY name
+ EXTERN_C const DEVPROPKEY DECLSPEC_SELECTANY name
#endif
#endif /* INITGUID */
diff --git a/sdk/include/psdk/ntdddisk.h b/sdk/include/psdk/ntdddisk.h
index 998f17ed0ab..3fe648c4cc3 100644
--- a/sdk/include/psdk/ntdddisk.h
+++ b/sdk/include/psdk/ntdddisk.h
@@ -43,6 +43,9 @@ extern "C" {
#define IOCTL_DISK_BASE FILE_DEVICE_DISK
+#define IOCTL_DISK_ARE_VOLUMES_READY \
+ CTL_CODE(IOCTL_DISK_BASE, 0x0087, METHOD_BUFFERED, FILE_READ_ACCESS)
+
#define IOCTL_DISK_CHECK_VERIFY \
CTL_CODE(IOCTL_DISK_BASE, 0x0200, METHOD_BUFFERED, FILE_READ_ACCESS)
@@ -58,6 +61,9 @@ extern "C" {
#define IOCTL_DISK_FIND_NEW_DEVICES \
CTL_CODE(IOCTL_DISK_BASE, 0x0206, METHOD_BUFFERED, FILE_READ_ACCESS)
+#define IOCTL_DISK_FORMAT_DRIVE \
+ CTL_CODE(IOCTL_DISK_BASE, 0x00f3, METHOD_BUFFERED, FILE_READ_ACCESS |
FILE_WRITE_ACCESS)
+
#define IOCTL_DISK_FORMAT_TRACKS \
CTL_CODE(IOCTL_DISK_BASE, 0x0006, METHOD_BUFFERED, FILE_READ_ACCESS |
FILE_WRITE_ACCESS)
@@ -67,6 +73,15 @@ extern "C" {
#define IOCTL_DISK_GET_CACHE_INFORMATION \
CTL_CODE(IOCTL_DISK_BASE, 0x0035, METHOD_BUFFERED, FILE_READ_ACCESS)
+#define IOCTL_DISK_GET_CACHE_SETTING \
+ CTL_CODE(IOCTL_DISK_BASE, 0x0038, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+#define IOCTL_DISK_GET_CLUSTER_INFO \
+ CTL_CODE(IOCTL_DISK_BASE, 0x0085, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_DISK_GET_DISK_ATTRIBUTES \
+ CTL_CODE(IOCTL_DISK_BASE, 0x003c, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
#define IOCTL_DISK_GET_DRIVE_GEOMETRY \
CTL_CODE(IOCTL_DISK_BASE, 0x0000, METHOD_BUFFERED, FILE_ANY_ACCESS)
@@ -85,12 +100,24 @@ extern "C" {
#define IOCTL_DISK_GET_LENGTH_INFO \
CTL_CODE(IOCTL_DISK_BASE, 0x0017, METHOD_BUFFERED, FILE_READ_ACCESS)
+#define IOCTL_DISK_GET_PARTITION_ATTRIBUTES \
+ CTL_CODE(IOCTL_DISK_BASE, 0x003a, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
#define IOCTL_DISK_GET_PARTITION_INFO \
CTL_CODE(IOCTL_DISK_BASE, 0x0001, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_DISK_GET_PARTITION_INFO_EX \
CTL_CODE(IOCTL_DISK_BASE, 0x0012, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_DISK_GET_PERFORMANCE_INFO \
+ CTL_CODE(IOCTL_DISK_BASE, 0x0089, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_DISK_GET_SAN_SETTINGS \
+ CTL_CODE(IOCTL_DISK_BASE, 0x0080, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+#define IOCTL_DISK_GET_SNAPSHOT_INFO \
+ CTL_CODE(IOCTL_DISK_BASE, 0x0082, METHOD_BUFFERED, FILE_READ_ACCESS)
+
#define IOCTL_DISK_GROW_PARTITION \
CTL_CODE(IOCTL_DISK_BASE, 0x0034, METHOD_BUFFERED, FILE_READ_ACCESS |
FILE_WRITE_ACCESS)
@@ -112,6 +139,9 @@ extern "C" {
#define IOCTL_DISK_INTERNAL_SET_NOTIFY \
CTL_CODE(IOCTL_DISK_BASE, 0x0102, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_DISK_IS_CLUSTERED \
+ CTL_CODE(IOCTL_DISK_BASE, 0x003e, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
#define IOCTL_DISK_IS_WRITABLE \
CTL_CODE(IOCTL_DISK_BASE, 0x0009, METHOD_BUFFERED, FILE_ANY_ACCESS)
@@ -133,6 +163,9 @@ extern "C" {
#define IOCTL_DISK_REQUEST_STRUCTURE \
CTL_CODE(IOCTL_DISK_BASE, 0x000f, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_DISK_RESET_SNAPSHOT_INFO \
+ CTL_CODE(IOCTL_DISK_BASE, 0x0084, METHOD_BUFFERED, FILE_READ_ACCESS |
FILE_WRITE_ACCESS)
+
#define IOCTL_DISK_MEDIA_REMOVAL \
CTL_CODE(IOCTL_DISK_BASE, 0x0201, METHOD_BUFFERED, FILE_READ_ACCESS)
@@ -142,6 +175,9 @@ extern "C" {
#define IOCTL_DISK_LOAD_MEDIA \
CTL_CODE(IOCTL_DISK_BASE, 0x0203, METHOD_BUFFERED, FILE_READ_ACCESS)
+#define IOCTL_DISK_REASSIGN_BLOCKS_EX \
+ CTL_CODE(IOCTL_DISK_BASE, 0x0029, METHOD_BUFFERED, FILE_READ_ACCESS |
FILE_WRITE_ACCESS)
+
#define IOCTL_DISK_RESERVE \
CTL_CODE(IOCTL_DISK_BASE, 0x0204, METHOD_BUFFERED, FILE_READ_ACCESS)
@@ -151,21 +187,20 @@ extern "C" {
#define IOCTL_DISK_FIND_NEW_DEVICES \
CTL_CODE(IOCTL_DISK_BASE, 0x0206, METHOD_BUFFERED, FILE_READ_ACCESS)
+#define IOCTL_DISK_SENSE_DEVICE \
+ CTL_CODE(IOCTL_DISK_BASE, 0x00f8, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
#define IOCTL_DISK_SET_CACHE_INFORMATION \
CTL_CODE(IOCTL_DISK_BASE, 0x0036, METHOD_BUFFERED, FILE_READ_ACCESS |
FILE_WRITE_ACCESS)
-//
-// NTDDI_WIN2003 was an older define used in the early beta builds, which
-// Microsoft forgot to fix in a few headers.
-// NTDDI_WS03 is the correct term.
-//
-#if (NTDDI_VERSION < NTDDI_WS03)
-#define IOCTL_DISK_GET_WRITE_CACHE_STATE \
- CTL_CODE(IOCTL_DISK_BASE, 0x0037, METHOD_BUFFERED, FILE_READ_ACCESS)
-#else
-#define OBSOLETE_DISK_GET_WRITE_CACHE_STATE \
- CTL_CODE(IOCTL_DISK_BASE, 0x0037, METHOD_BUFFERED, FILE_READ_ACCESS)
-#endif
+#define IOCTL_DISK_SET_CACHE_SETTING \
+ CTL_CODE(IOCTL_DISK_BASE, 0x0039, METHOD_BUFFERED, FILE_READ_ACCESS |
FILE_WRITE_ACCESS)
+
+#define IOCTL_DISK_SET_CLUSTER_INFO \
+ CTL_CODE(IOCTL_DISK_BASE, 0x0086, METHOD_BUFFERED, FILE_READ_ACCESS |
FILE_WRITE_ACCESS)
+
+#define IOCTL_DISK_SET_DISK_ATTRIBUTES \
+ CTL_CODE(IOCTL_DISK_BASE, 0x003d, METHOD_BUFFERED, FILE_READ_ACCESS |
FILE_WRITE_ACCESS)
#define IOCTL_DISK_SET_DRIVE_LAYOUT \
CTL_CODE(IOCTL_DISK_BASE, 0x0004, METHOD_BUFFERED, FILE_READ_ACCESS |
FILE_WRITE_ACCESS)
@@ -173,18 +208,46 @@ extern "C" {
#define IOCTL_DISK_SET_DRIVE_LAYOUT_EX \
CTL_CODE(IOCTL_DISK_BASE, 0x0015, METHOD_BUFFERED, FILE_READ_ACCESS |
FILE_WRITE_ACCESS)
+#define IOCTL_DISK_SET_PARTITION_ATTRIBUTES \
+ CTL_CODE(IOCTL_DISK_BASE, 0x003b, METHOD_BUFFERED, FILE_READ_ACCESS |
FILE_WRITE_ACCESS)
+
#define IOCTL_DISK_SET_PARTITION_INFO \
CTL_CODE(IOCTL_DISK_BASE, 0x0002, METHOD_BUFFERED, FILE_READ_ACCESS |
FILE_WRITE_ACCESS)
#define IOCTL_DISK_SET_PARTITION_INFO_EX \
CTL_CODE(IOCTL_DISK_BASE, 0x0013, METHOD_BUFFERED, FILE_READ_ACCESS |
FILE_WRITE_ACCESS)
+#define IOCTL_DISK_SET_SAN_SETTINGS \
+ CTL_CODE(IOCTL_DISK_BASE, 0x0081, METHOD_BUFFERED, FILE_READ_ACCESS |
FILE_WRITE_ACCESS)
+
+#define IOCTL_DISK_SET_SNAPSHOT_INFO \
+ CTL_CODE(IOCTL_DISK_BASE, 0x0083, METHOD_BUFFERED, FILE_READ_ACCESS |
FILE_WRITE_ACCESS)
+
+//
+// NTDDI_WIN2003 was an older define used in the early beta builds, which
+// Microsoft forgot to fix in a few headers.
+// NTDDI_WS03 is the correct term.
+//
+#if (NTDDI_VERSION < NTDDI_WS03)
+#define IOCTL_DISK_GET_WRITE_CACHE_STATE \
+ CTL_CODE(IOCTL_DISK_BASE, 0x0037, METHOD_BUFFERED, FILE_READ_ACCESS)
+#else
+#define OBSOLETE_DISK_GET_WRITE_CACHE_STATE \
+ CTL_CODE(IOCTL_DISK_BASE, 0x0037, METHOD_BUFFERED, FILE_READ_ACCESS)
+#endif
+
#define IOCTL_DISK_UPDATE_DRIVE_SIZE \
CTL_CODE(IOCTL_DISK_BASE, 0x0032, METHOD_BUFFERED, FILE_READ_ACCESS |
FILE_WRITE_ACCESS)
+#define IOCTL_DISK_UPDATE_PROPERTIES \
+ CTL_CODE(IOCTL_DISK_BASE, 0x0050, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
#define IOCTL_DISK_VERIFY \
CTL_CODE(IOCTL_DISK_BASE, 0x0005, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_DISK_VOLUMES_ARE_READY \
+ CTL_CODE(IOCTL_DISK_BASE, 0x0088, METHOD_BUFFERED, FILE_READ_ACCESS |
FILE_WRITE_ACCESS)
+
#define IOCTL_DISK_COPY_DATA \
CTL_CODE(IOCTL_DISK_BASE, 0x0019, METHOD_BUFFERED, FILE_READ_ACCESS |
FILE_WRITE_ACCESS)
@@ -200,17 +263,6 @@ extern "C" {
#define SMART_SEND_DRIVE_COMMAND \
CTL_CODE(IOCTL_DISK_BASE, 0x0021, METHOD_BUFFERED, FILE_READ_ACCESS |
FILE_WRITE_ACCESS)
-#if(_WIN32_WINNT >= 0x0500)
-#define IOCTL_DISK_UPDATE_DRIVE_SIZE CTL_CODE(IOCTL_DISK_BASE, 0x0032,
METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
-#define IOCTL_DISK_GROW_PARTITION CTL_CODE(IOCTL_DISK_BASE, 0x0034,
METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
-#define IOCTL_DISK_GET_CACHE_INFORMATION CTL_CODE(IOCTL_DISK_BASE, 0x0035,
METHOD_BUFFERED, FILE_READ_ACCESS)
-#define IOCTL_DISK_SET_CACHE_INFORMATION CTL_CODE(IOCTL_DISK_BASE, 0x0036,
METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
-#define IOCTL_DISK_DELETE_DRIVE_LAYOUT CTL_CODE(IOCTL_DISK_BASE, 0x0040,
METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
-#define IOCTL_DISK_UPDATE_PROPERTIES CTL_CODE(IOCTL_DISK_BASE, 0x0050,
METHOD_BUFFERED, FILE_ANY_ACCESS)
-#define IOCTL_DISK_FORMAT_DRIVE CTL_CODE(IOCTL_DISK_BASE, 0x00f3,
METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
-#define IOCTL_DISK_SENSE_DEVICE CTL_CODE(IOCTL_DISK_BASE, 0x00f8,
METHOD_BUFFERED, FILE_ANY_ACCESS)
-#endif
-
#define PARTITION_ENTRY_UNUSED 0x00
#define PARTITION_FAT_12 0x01
#define PARTITION_XENIX_1 0x02
@@ -224,9 +276,23 @@ extern "C" {
#define PARTITION_FAT32_XINT13 0x0C
#define PARTITION_XINT13 0x0E
#define PARTITION_XINT13_EXTENDED 0x0F
+#define PARTITION_MSFT_RECOVERY 0x27
+#define PARTITION_MAIN_OS 0x28
+#define PARTIITON_OS_DATA 0x29
+#define PARTITION_PRE_INSTALLED 0x2a
+#define PARTITION_BSP 0x2b
+#define PARTITION_DPP 0x2c
+#define PARTITION_WINDOWS_SYSTEM 0x2d
#define PARTITION_PREP 0x41
#define PARTITION_LDM 0x42
+#define PARTITION_DM 0x54
+#define PARTITION_EZDRIVE 0x55
#define PARTITION_UNIX 0x63
+#define PARTITION_SPACES_DATA 0xD7
+#define PARTITION_SPACES 0xE7
+#define PARTITION_GPT 0xEE
+#define PARTITION_SYSTEM 0xEF
+
#define VALID_NTFT 0xC0
#define PARTITION_NTFT 0x80
#ifdef __REACTOS__
@@ -338,11 +404,6 @@ typedef enum _DETECTION_TYPE {
DetectExInt13
} DETECTION_TYPE;
-typedef struct _DISK_CONTROLLER_NUMBER {
- ULONG ControllerNumber;
- ULONG DiskNumber;
-} DISK_CONTROLLER_NUMBER, *PDISK_CONTROLLER_NUMBER;
-
typedef struct _DISK_INT13_INFO {
USHORT DriveSelect;
ULONG MaxCylinders;
@@ -490,6 +551,9 @@ typedef struct _DRIVE_LAYOUT_INFORMATION {
typedef struct _DRIVE_LAYOUT_INFORMATION_MBR {
ULONG Signature;
+#if (NTDDI_VERSION >= NTDDI_WIN10_RS1)
+ ULONG CheckSum;
+#endif
} DRIVE_LAYOUT_INFORMATION_MBR, *PDRIVE_LAYOUT_INFORMATION_MBR;
typedef struct _DRIVE_LAYOUT_INFORMATION_GPT {
@@ -538,6 +602,12 @@ typedef struct _REASSIGN_BLOCKS {
ULONG BlockNumber[1];
} REASSIGN_BLOCKS, *PREASSIGN_BLOCKS;
+typedef struct _REASSIGN_BLOCKS_EX {
+ USHORT Reserved;
+ USHORT Count;
+ LARGE_INTEGER BlockNumber[1];
+} REASSIGN_BLOCKS_EX, *PREASSIGN_BLOCKS_EX;
+
typedef struct _SET_PARTITION_INFORMATION {
UCHAR PartitionType;
} SET_PARTITION_INFORMATION, *PSET_PARTITION_INFORMATION;
@@ -666,19 +736,19 @@ typedef struct _MAPPED_ADDRESS {
#if(_WIN32_WINNT >= 0x0500)
-typedef struct _CREATE_DISK_GPT
+typedef struct _CREATE_DISK_GPT
{
GUID DiskId;
ULONG MaxPartitionCount;
} CREATE_DISK_GPT, *PCREATE_DISK_GPT;
-typedef struct _CREATE_DISK_MBR
+typedef struct _CREATE_DISK_MBR
{
ULONG Signature;
} CREATE_DISK_MBR, *PCREATE_DISK_MBR;
-typedef struct _CREATE_DISK
+typedef struct _CREATE_DISK
{
PARTITION_STYLE PartitionStyle;
union {
@@ -731,6 +801,165 @@ typedef struct _DISK_GROW_PARTITION {
} DISK_GROW_PARTITION, *PDISK_GROW_PARTITION;
#endif
+// for IOCTL_DISK_CONTROLLER_NUMBER
+
+typedef struct _DISK_CONTROLLER_NUMBER {
+ ULONG ControllerNumber;
+ ULONG DiskNumber;
+} DISK_CONTROLLER_NUMBER, *PDISK_CONTROLLER_NUMBER;
+
+// for IOCTL_DISK_COPY_DATA
+
+typedef struct _DISK_COPY_DATA_PARAMETERS {
+ LARGE_INTEGER SourceOffset;
+ LARGE_INTEGER DestinationOffset;
+ LARGE_INTEGER CopyLength;
+ ULONGLONG Reserved;
+} DISK_COPY_DATA_PARAMETERS, *PDISK_COPY_DATA_PARAMETERS;
+
+// for IOCTL_DISK_GET_CACHE_SETTING and IOCTL_DISK_SET_CACHE_SETTING
+
+typedef enum _DISK_CACHE_STATE {
+ DiskCacheNormal,
+ DiskCacheWriteThroughNotSupported,
+ DiskCacheModifyUnsuccessful
+} DISK_CACHE_STATE, *PDISK_CACHE_STATE;
+
+typedef struct _DISK_CACHE_SETTING {
+ ULONG Version;
+ DISK_CACHE_STATE State;
+ BOOLEAN IsPowerProtected;
+} DISK_CACHE_SETTING, *PDISK_CACHE_SETTING;
+
+#if (NTDDI_VERSION >= NTDDI_VISTA)
+
+// for IOCTL_DISK_GET_PARTITION_ATTRIBUTES and IOCTL_DISK_SET_PARTITION_ATTRIBUTES
+
+typedef struct _GET_PARTITION_ATTRIBUTES {
+ ULONG Version;
+ ULONG Reserved1;
+ ULONGLONG Attributes;
+} GET_PARTITION_ATTRIBUTES, *PGET_PARTITION_ATTRIBUTES;
+
+typedef struct _SET_PARTITION_ATTRIBUTES {
+ ULONG Version;
+ BOOLEAN Persist;
+ BOOLEAN Reserved1[3];
+ ULONGLONG Attributes;
+ ULONGLONG AttributesMask;
+} SET_PARTITION_ATTRIBUTES, *PSET_PARTITION_ATTRIBUTES;
+
+// for IOCTL_DISK_GET_DISK_ATTRIBUTES and IOCTL_DISK_SET_DISK_ATTRIBUTES
+
+#define DISK_ATTRIBUTE_OFFLINE 0x0000000000000001
+#define DISK_ATTRIBUTE_READ_ONLY 0x0000000000000002
+#define DISK_ATTRIBUTE_HIDDEN 0x0000000000000004
+#define DISK_ATTRIBUTE_MAINTENANCE 0x0000000000000008
+#define DISK_ATTRIBUTE_SPACES_BYPASS 0x0000000000000010
+
+typedef struct _GET_DISK_ATTRIBUTES {
+ ULONG Version;
+ ULONG Reserved1;
+ ULONGLONG Attributes;
+} GET_DISK_ATTRIBUTES, *PGET_DISK_ATTRIBUTES;
+
+typedef struct _SET_DISK_ATTRIBUTES {
+ ULONG Version;
+ BOOLEAN Persist;
+ BOOLEAN RelinquishOwnership;
+ BOOLEAN Reserved1[2];
+ ULONGLONG Attributes;
+ ULONGLONG AttributesMask;
+ GUID Owner;
+} SET_DISK_ATTRIBUTES, *PSET_DISK_ATTRIBUTES;
+
+
+// for IOCTL_DISK_GET_SAN_SETTINGS and IOCTL_DISK_SET_SAN_SETTINGS
+
+typedef enum _DISK_SAN_POLICY {
+ DiskSanPolicyUnknown,
+ DiskSanPolicyOnline,
+ DiskSanPolicyOfflineShared,
+ DiskSanPolicyOffline,
+ DiskSanPolicyOfflineInternal,
+ DiskSanPolicyMax
+} DISK_SAN_POLICY, *PDISK_SAN_POLICY;
+
+typedef struct _DISK_SAN_SETTINGS {
+ ULONG Version;
+ DISK_SAN_POLICY SanPolicy;
+} DISK_SAN_SETTINGS, *PDISK_SAN_SETTINGS;
+
+// for IOCTL_DISK_GET_SNAPSHOT_INFO and IOCTL_DISK_SET_SNAPSHOT_INFO
+typedef enum _DISK_SNAPSHOT_STATE {
+ DiskSnapshotNormalDisk,
+ DiskSnapshotSnapshotCheckRequired,
+ DiskSnapshotPreSnapshot,
+ DiskSnapshotSnapshotDisk
+} DISK_SNAPSHOT_STATE, *PDISK_SNAPSHOT_STATE;
+
+typedef struct _DISK_SNAPSHOT_INFO {
+ ULONG Version;
+ DISK_SNAPSHOT_STATE State;
+ GUID SnapshotSetId;
+ GUID SnapshotId;
+ GUID LunId;
+ LARGE_INTEGER CreationTimeStamp;
+ ULONG ImportCount;
+ ULONG Flags;
+ ULONG AdditionalDataSize;
+ UCHAR AdditionalData[ANYSIZE_ARRAY];
+} DISK_SNAPSHOT_INFO, *PDISK_SNAPSHOT_INFO;
+#endif /* NTDDI_VERSION >= NTDDI_VISTA */
+
+#if (NTDDI_VERSION >= NTDDI_WIN8)
+
+// for IOCTL_DISK_GET_CLUSTER_INFO and IOCTL_DISK_SET_CLUSTER_INFO
+
+#define DISK_CLUSTER_FLAG_ENABLED 0x0000000000000001
+#define DISK_CLUSTER_FLAG_CSV 0x0000000000000002
+#define DISK_CLUSTER_FLAG_IN_MAINTENANCE 0x0000000000000004
+#define DISK_CLUSTER_FLAG_PNP_ARRIVAL_COMPLETE 0x0000000000000008
+
+typedef struct _DISK_CLUSTER_INFO {
+ ULONG Version;
+ ULONGLONG Flags;
+ ULONGLONG FlagsMask;
+ BOOLEAN Notify;
+} DISK_CLUSTER_INFO, *PDISK_CLUSTER_INFO;
+
+// for IOCTL_DISK_GET_PERFORMANCE_INFO
+
+typedef enum _DISK_PERFORMANCE_TYPE {
+ DiskPerformanceTypeAllPriority,
+ DiskPerformanceTypeNonLowPriority,
+ DiskPerformanceTypeMax
+} DISK_PERFORMANCE_TYPE, *PDISK_PERFORMANCE_TYPE;
+
+typedef struct _DISK_PERFORMANCE_PARAMETERS {
+ ULONG Version;
+ DISK_PERFORMANCE_TYPE Type;
+} DISK_PERFORMANCE_PARAMETERS, *PDISK_PERFORMANCE_PARAMETERS;
+
+typedef struct _DISK_PERFORMANCE_INFO {
+ ULONG Version;
+ DISK_PERFORMANCE_TYPE Type;
+ LARGE_INTEGER QueryTime;
+ LARGE_INTEGER BytesRead;
+ LARGE_INTEGER BytesWritten;
+ LARGE_INTEGER ReadTime;
+ LARGE_INTEGER WriteTime;
+ LARGE_INTEGER FlushTime;
+ LARGE_INTEGER IdleTime;
+ ULONG ReadCount;
+ ULONG WriteCount;
+ ULONG FlushCount;
+ ULONG QueueDepth;
+ ULONG SplitCount;
+} DISK_PERFORMANCE_INFO, *PDISK_PERFORMANCE_INFO;
+
+#endif /* NTDDI_VERSION >= NTDDI_WIN8 */
+
#ifdef __cplusplus
}
diff --git a/sdk/include/psdk/ntddstor.h b/sdk/include/psdk/ntddstor.h
index 2a5c64d1b7c..c17954c6889 100644
--- a/sdk/include/psdk/ntddstor.h
+++ b/sdk/include/psdk/ntddstor.h
@@ -170,6 +170,9 @@ DEFINE_GUID(GUID_DEVINTERFACE_HIDDEN_VOLUME,
#define IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES \
CTL_CODE(IOCTL_STORAGE_BASE, 0x0501, METHOD_BUFFERED, FILE_WRITE_ACCESS)
+#define IOCTL_STORAGE_GET_LB_PROVISIONING_MAP_RESOURCES \
+ CTL_CODE(IOCTL_STORAGE_BASE, 0x0502, METHOD_BUFFERED, FILE_READ_ACCESS)
+
#define IOCTL_STORAGE_GET_BC_PROPERTIES \
CTL_CODE(IOCTL_STORAGE_BASE, 0x0600, METHOD_BUFFERED, FILE_READ_ACCESS)
@@ -182,6 +185,57 @@ DEFINE_GUID(GUID_DEVINTERFACE_HIDDEN_VOLUME,
#define IOCTL_STORAGE_CHECK_PRIORITY_HINT_SUPPORT \
CTL_CODE(IOCTL_STORAGE_BASE, 0x0620, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_STORAGE_START_DATA_INTEGRITY_CHECK \
+ CTL_CODE(IOCTL_STORAGE_BASE, 0x0621, METHOD_BUFFERED, FILE_READ_ACCESS |
FILE_WRITE_ACCESS)
+
+#define IOCTL_STORAGE_STOP_DATA_INTEGRITY_CHECK \
+ CTL_CODE(IOCTL_STORAGE_BASE, 0x0622, METHOD_BUFFERED, FILE_READ_ACCESS |
FILE_WRITE_ACCESS)
+
+#define IOCTL_STORAGE_FIRMWARE_GET_INFO \
+ CTL_CODE(IOCTL_STORAGE_BASE, 0x0700, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_STORAGE_FIRMWARE_DOWNLOAD \
+ CTL_CODE(IOCTL_STORAGE_BASE, 0x0701, METHOD_BUFFERED, FILE_READ_ACCESS |
FILE_WRITE_ACCESS)
+
+#define IOCTL_STORAGE_FIRMWARE_ACTIVATE \
+ CTL_CODE(IOCTL_STORAGE_BASE, 0x0702, METHOD_BUFFERED, FILE_READ_ACCESS |
FILE_WRITE_ACCESS)
+
+#define IOCTL_STORAGE_ENABLE_IDLE_POWER \
+ CTL_CODE(IOCTL_STORAGE_BASE, 0x0720, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_STORAGE_GET_IDLE_POWERUP_REASON \
+ CTL_CODE(IOCTL_STORAGE_BASE, 0x0721, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_STORAGE_POWER_ACTIVE \
+ CTL_CODE(IOCTL_STORAGE_BASE, 0x0722, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_STORAGE_POWER_IDLE \
+ CTL_CODE(IOCTL_STORAGE_BASE, 0x0723, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_STORAGE_EVENT_NOTIFICATION \
+ CTL_CODE(IOCTL_STORAGE_BASE, 0x0724, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_STORAGE_DEVICE_POWER_CAP \
+ CTL_CODE(IOCTL_STORAGE_BASE, 0x0725, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_STORAGE_RPMB_COMMAND \
+ CTL_CODE(IOCTL_STORAGE_BASE, 0x0726, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_STORAGE_ATTRIBUTE_MANAGEMENT \
+ CTL_CODE(IOCTL_STORAGE_BASE, 0x0727, METHOD_BUFFERED, FILE_READ_ACCESS |
FILE_WRITE_ACCESS)
+
+#define IOCTL_STORAGE_DIAGNOSTIC \
+ CTL_CODE(IOCTL_STORAGE_BASE, 0x0728, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_STORAGE_GET_PHYSICAL_ELEMENT_STATUS \
+ CTL_CODE(IOCTL_STORAGE_BASE, 0x0729, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_STORAGE_REMOVE_ELEMENT_AND_TRUNCATE \
+ CTL_CODE(IOCTL_STORAGE_BASE, 0x0730, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_STORAGE_GET_DEVICE_INTERNAL_LOG \
+ CTL_CODE(IOCTL_STORAGE_BASE, 0x0731, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
#define RECOVERED_WRITES_VALID 0x00000001
#define UNRECOVERED_WRITES_VALID 0x00000002
#define RECOVERED_READS_VALID 0x00000004
@@ -207,9 +261,36 @@ DEFINE_GUID(GUID_DEVINTERFACE_HIDDEN_VOLUME,
#define IsDsmActionNonDestructive(_Action) ((BOOLEAN)((_Action &
DeviceDsmActionFlag_NonDestructive) != 0))
-#define DeviceDsmAction_None 0
-#define DeviceDsmAction_Trim 1
-#define DeviceDsmAction_Notification (2 | DeviceDsmActionFlag_NonDestructive)
+#define DeviceDsmAction_None 0x0u
+#define DeviceDsmAction_Trim 0x1u
+#define DeviceDsmAction_Notification (0x00000002u |
DeviceDsmActionFlag_NonDestructive)
+#define DeviceDsmAction_OffloadRead (0x00000003u |
DeviceDsmActionFlag_NonDestructive)
+#define DeviceDsmAction_OffloadWrite (0x00000004u)
+#define DeviceDsmAction_Allocation (0x00000005u |
DeviceDsmActionFlag_NonDestructive)
+#define DeviceDsmAction_Repair (0x00000006u |
DeviceDsmActionFlag_NonDestructive)
+#define DeviceDsmAction_Scrub (0x00000007u |
DeviceDsmActionFlag_NonDestructive)
+#define DeviceDsmAction_DrtQuery (0x00000008u |
DeviceDsmActionFlag_NonDestructive)
+#define DeviceDsmAction_DrtClear (0x00000009u |
DeviceDsmActionFlag_NonDestructive)
+#define DeviceDsmAction_DrtDisable (0x0000000Au |
DeviceDsmActionFlag_NonDestructive)
+#define DeviceDsmAction_TieringQuery (0x0000000Bu |
DeviceDsmActionFlag_NonDestructive)
+#define DeviceDsmAction_Map (0x0000000Cu |
DeviceDsmActionFlag_NonDestructive)
+#define DeviceDsmAction_RegenerateParity (0x0000000Du |
DeviceDsmActionFlag_NonDestructive)
+#define DeviceDsmAction_NvCache_Change_Priority (0x0000000Eu |
DeviceDsmActionFlag_NonDestructive)
+#define DeviceDsmAction_NvCache_Evict (0x0000000Fu |
DeviceDsmActionFlag_NonDestructive)
+#define DeviceDsmAction_TopologyIdQuery (0x00000010u |
DeviceDsmActionFlag_NonDestructive)
+#define DeviceDsmAction_GetPhysicalAddresses (0x00000011u |
DeviceDsmActionFlag_NonDestructive)
+#define DeviceDsmAction_ScopeRegen (0x00000012u |
DeviceDsmActionFlag_NonDestructive)
+#define DeviceDsmAction_ReportZones (0x00000013u |
DeviceDsmActionFlag_NonDestructive)
+#define DeviceDsmAction_OpenZone (0x00000014u |
DeviceDsmActionFlag_NonDestructive)
+#define DeviceDsmAction_FinishZone (0x00000015u |
DeviceDsmActionFlag_NonDestructive)
+#define DeviceDsmAction_CloseZone (0x00000016u |
DeviceDsmActionFlag_NonDestructive)
+#define DeviceDsmAction_ResetWritePointer (0x00000017u)
+#define DeviceDsmAction_GetRangeErrorInfo (0x00000018u |
DeviceDsmActionFlag_NonDestructive)
+#define DeviceDsmAction_WriteZeroes (0x00000019u)
+#define DeviceDsmAction_LostQuery (0x0000001Au |
DeviceDsmActionFlag_NonDestructive)
+#define DeviceDsmAction_GetFreeSpace (0x0000001Bu |
DeviceDsmActionFlag_NonDestructive)
+#define DeviceDsmAction_ConversionQuery (0x0000001Cu |
DeviceDsmActionFlag_NonDestructive)
+#define DeviceDsmAction_VdtSet (0x0000001Du)
#define DEVICE_DSM_FLAG_ENTIRE_DATA_SET_RANGE 0x00000001
@@ -426,7 +507,34 @@ typedef enum _STORAGE_PROPERTY_ID {
StorageAccessAlignmentProperty,
StorageDeviceSeekPenaltyProperty,
StorageDeviceTrimProperty,
- StorageDeviceWriteAggregationProperty
+ StorageDeviceWriteAggregationProperty,
+ StorageDeviceDeviceTelemetryProperty,
+ StorageDeviceLBProvisioningProperty,
+ StorageDevicePowerProperty,
+ StorageDeviceCopyOffloadProperty,
+ StorageDeviceResiliencyProperty,
+ StorageDeviceMediumProductType,
+ StorageAdapterRpmbProperty,
+ StorageAdapterCryptoProperty,
+ StorageDeviceTieringProperty,
+ StorageDeviceFaultDomainProperty,
+ StorageDeviceClusportProperty,
+ StorageDeviceDependantDevicesProperty,
+ StorageDeviceIoCapabilityProperty = 48,
+ StorageAdapterProtocolSpecificProperty,
+ StorageDeviceProtocolSpecificProperty,
+ StorageAdapterTemperatureProperty,
+ StorageDeviceTemperatureProperty,
+ StorageAdapterPhysicalTopologyProperty,
+ StorageDevicePhysicalTopologyProperty,
+ StorageDeviceAttributesProperty,
+ StorageDeviceManagementStatus,
+ StorageAdapterSerialNumberProperty,
+ StorageDeviceLocationProperty,
+ StorageDeviceNumaProperty,
+ StorageDeviceZonedDeviceProperty,
+ StorageDeviceUnsafeShutdownCount,
+ StorageDeviceEnduranceProperty,
} STORAGE_PROPERTY_ID, *PSTORAGE_PROPERTY_ID;
typedef struct _STORAGE_PROPERTY_QUERY {
@@ -473,6 +581,10 @@ typedef _Struct_size_bytes_(Size) struct _STORAGE_ADAPTER_DESCRIPTOR
{
#endif
USHORT BusMajorVersion;
USHORT BusMinorVersion;
+#if (NTDDI_VERSION >= NTDDI_WIN8)
+ UCHAR SrbType;
+ UCHAR AddressType;
+#endif
} STORAGE_ADAPTER_DESCRIPTOR, *PSTORAGE_ADAPTER_DESCRIPTOR;
typedef _Struct_size_bytes_(Size) struct _STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR {
@@ -485,10 +597,21 @@ typedef _Struct_size_bytes_(Size) struct
_STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR {
ULONG BytesOffsetForSectorAlignment;
} STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR, *PSTORAGE_ACCESS_ALIGNMENT_DESCRIPTOR;
+typedef _Struct_size_bytes_(Size) struct _STORAGE_MEDIUM_PRODUCT_TYPE_DESCRIPTOR {
+ ULONG Version;
+ ULONG Size;
+ ULONG MediumProductType;
+} STORAGE_MEDIUM_PRODUCT_TYPE_DESCRIPTOR, *PSTORAGE_MEDIUM_PRODUCT_TYPE_DESCRIPTOR;
+
typedef enum _STORAGE_PORT_CODE_SET {
StoragePortCodeSetReserved = 0,
StoragePortCodeSetStorport = 1,
- StoragePortCodeSetSCSIport = 2
+ StoragePortCodeSetSCSIport = 2,
+ StoragePortCodeSetSpaceport= 3,
+ StoragePortCodeSetATAport = 4,
+ StoragePortCodeSetUSBport = 5,
+ StoragePortCodeSetSBP2port = 6,
+ StoragePortCodeSetSDport = 7
} STORAGE_PORT_CODE_SET, *PSTORAGE_PORT_CODE_SET;
typedef struct _STORAGE_MINIPORT_DESCRIPTOR {
@@ -497,8 +620,69 @@ typedef struct _STORAGE_MINIPORT_DESCRIPTOR {
STORAGE_PORT_CODE_SET Portdriver;
BOOLEAN LUNResetSupported;
BOOLEAN TargetResetSupported;
+#if (NTDDI_VERSION >= NTDDI_WIN8)
+ USHORT IoTimeoutValue;
+#endif
+#if (NTDDI_VERSION >= NTDDI_WINBLUE)
+ BOOLEAN ExtraIoInfoSupported;
+ UCHAR Reserved0[3];
+ ULONG Reserved1;
+#endif
} STORAGE_MINIPORT_DESCRIPTOR, *PSTORAGE_MINIPORT_DESCRIPTOR;
+typedef struct _DEVICE_LB_PROVISIONING_DESCRIPTOR {
+ ULONG Version;
+ ULONG Size;
+ UCHAR ThinProvisioningEnabled:1;
+ UCHAR ThinProvisioningReadZeros:1;
+ UCHAR AnchorSupported:3;
+ UCHAR UnmapGranularityAlignmentValid:1;
+ UCHAR Reserved0:2;
+ UCHAR Reserved1[7];
+ ULONGLONG OptimalUnmapGranularity;
+ ULONGLONG UnmapGranularityAlignment;
+#if (NTDDI_VERSION >= NTDDI_WINBLUE)
+ ULONG MaxUnmapLbaCount;
+ ULONG MaxUnmapBlockDescriptorCount;
+#endif
+} DEVICE_LB_PROVISIONING_DESCRIPTOR, *PDEVICE_LB_PROVISIONING_DESCRIPTOR;
+
+#define DEVICE_LB_PROVISIONING_DESCRIPTOR_V1_SIZE
RTL_SIZEOF_THROUGH_FIELD(DEVICE_LB_PROVISIONING_DESCRIPTOR, UnmapGranularityAlignment)
+
+typedef struct _DEVICE_POWER_DESCRIPTOR {
+ ULONG Version;
+ ULONG Size;
+ BOOLEAN DeviceAttentionSupported;
+ BOOLEAN AsynchronousNotificationSupported;
+ BOOLEAN IdlePowerManagementEnabled;
+ BOOLEAN D3ColdEnabled;
+ BOOLEAN D3ColdSupported;
+ BOOLEAN NoVerifyDuringIdlePower;
+ UCHAR Reserved[2];
+ ULONG IdleTimeoutInMS;
+} DEVICE_POWER_DESCRIPTOR, *PDEVICE_POWER_DESCRIPTOR;
+
+typedef struct _DEVICE_COPY_OFFLOAD_DESCRIPTOR {
+ ULONG Version;
+ ULONG Size;
+ ULONG MaximumTokenLifetime;
+ ULONG DefaultTokenLifetime;
+ ULONGLONG MaximumTransferSize;
+ ULONGLONG OptimalTransferCount;
+ ULONG MaximumDataDescriptors;
+ ULONG MaximumTransferLengthPerDescriptor;
+ ULONG OptimalTransferLengthPerDescriptor;
+ USHORT OptimalTransferLengthGranularity;
+ UCHAR Reserved[2];
+} DEVICE_COPY_OFFLOAD_DESCRIPTOR, *PDEVICE_COPY_OFFLOAD_DESCRIPTOR;
+
+typedef _Struct_size_bytes_(Size) struct _STORAGE_DEVICE_IO_CAPABILITY_DESCRIPTOR {
+ ULONG Version;
+ ULONG Size;
+ ULONG LunMaxIoCount;
+ ULONG AdapterMaxIoCount;
+} STORAGE_DEVICE_IO_CAPABILITY_DESCRIPTOR, *PSTORAGE_DEVICE_IO_CAPABILITY_DESCRIPTOR;
+
typedef enum _STORAGE_IDENTIFIER_CODE_SET {
StorageIdCodeSetReserved = 0,
StorageIdCodeSetBinary = 1,
@@ -702,6 +886,195 @@ typedef _Struct_size_bytes_(Size) struct
_STORAGE_WRITE_CACHE_PROPERTY {
BOOLEAN NVCacheEnabled;
} STORAGE_WRITE_CACHE_PROPERTY, *PSTORAGE_WRITE_CACHE_PROPERTY;
+typedef struct _STORAGE_LB_PROVISIONING_MAP_RESOURCES {
+ ULONG Size;
+ ULONG Version;
+ UCHAR AvailableMappingResourcesValid:1;
+ UCHAR UsedMappingResourcesValid:1;
+ UCHAR Reserved0:6;
+ UCHAR Reserved1[3];
+ UCHAR AvailableMappingResourcesScope:2;
+ UCHAR UsedMappingResourcesScope:2;
+ UCHAR Reserved2:4;
+ UCHAR Reserved3[3];
+ ULONGLONG AvailableMappingResources;
+ ULONGLONG UsedMappingResources;
+} STORAGE_LB_PROVISIONING_MAP_RESOURCES, *PSTORAGE_LB_PROVISIONING_MAP_RESOURCES;
+
+typedef struct _DEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT {
+ ULONG Size;
+ DEVICE_DATA_MANAGEMENT_SET_ACTION Action;
+ ULONG Flags;
+ ULONG OperationStatus;
+ ULONG ExtendedError;
+ ULONG TargetDetailedError;
+ ULONG ReservedStatus;
+ ULONG OutputBlockOffset;
+ ULONG OutputBlockLength;
+} DEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT, *PDEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT;
+
+typedef struct _DEVICE_DATA_SET_LB_PROVISIONING_STATE {
+ ULONG Size;
+ ULONG Version;
+ ULONGLONG SlabSizeInBytes;
+ ULONG SlabOffsetDeltaInBytes;
+ ULONG SlabAllocationBitMapBitCount;
+ ULONG SlabAllocationBitMapLength;
+ ULONG SlabAllocationBitMap[ANYSIZE_ARRAY];
+} DEVICE_DATA_SET_LB_PROVISIONING_STATE, *PDEVICE_DATA_SET_LB_PROVISIONING_STATE,
+ DEVICE_DSM_ALLOCATION_OUTPUT, *PDEVICE_DSM_ALLOCATION_OUTPUT;
+
+#define DEVICE_DSM_ALLOCATION_OUTPUT_V1 (sizeof(DEVICE_DSM_ALLOCATION_OUTPUT))
+#define DEVICE_DATA_SET_LB_PROVISIONING_STATE_VERSION_V1 DEVICE_DSM_ALLOCATION_OUTPUT_V1
+
+typedef struct _DEVICE_DATA_SET_LB_PROVISIONING_STATE_V2 {
+ ULONG Size;
+ ULONG Version;
+ ULONGLONG SlabSizeInBytes;
+ ULONGLONG SlabOffsetDeltaInBytes;
+ ULONG SlabAllocationBitMapBitCount;
+ ULONG SlabAllocationBitMapLength;
+ ULONG SlabAllocationBitMap[ANYSIZE_ARRAY];
+} DEVICE_DATA_SET_LB_PROVISIONING_STATE_V2, *PDEVICE_DATA_SET_LB_PROVISIONING_STATE_V2,
+ DEVICE_DSM_ALLOCATION_OUTPUT2, *PDEVICE_DSM_ALLOCATION_OUTPUT2;
+
+#define DEVICE_DSM_ALLOCATION_OUTPUT_V2 (sizeof(DEVICE_DSM_ALLOCATION_OUTPUT2))
+#define DEVICE_DATA_SET_LB_PROVISIONING_STATE_VERSION_V2 DEVICE_DSM_ALLOCATION_OUTPUT_V2
+
+#define DeviceDsmDefinition_Allocation {DeviceDsmAction_Allocation, \
+ TRUE, \
+ __alignof(DEVICE_DSM_ALLOCATION_PARAMETERS), \
+ sizeof(DEVICE_DSM_ALLOCATION_PARAMETERS), \
+ TRUE, \
+ __alignof(DEVICE_DSM_ALLOCATION_OUTPUT2), \
+ sizeof(DEVICE_DSM_ALLOCATION_OUTPUT2)}
+
+#define DEVICE_DSM_FLAG_ALLOCATION_CONSOLIDATEABLE_ONLY 0x40000000
+
+typedef struct _DEVICE_DATA_SET_LBP_STATE_PARAMETERS {
+ ULONG Version;
+ ULONG Size;
+ ULONG Flags;
+ ULONG OutputVersion;
+} DEVICE_DATA_SET_LBP_STATE_PARAMETERS, *PDEVICE_DATA_SET_LBP_STATE_PARAMETERS,
+ DEVICE_DSM_ALLOCATION_PARAMETERS, *PDEVICE_DSM_ALLOCATION_PARAMETERS;
+
+typedef struct _STORAGE_EVENT_NOTIFICATION {
+ ULONG Version;
+ ULONG Size;
+ ULONGLONG Events;
+} STORAGE_EVENT_NOTIFICATION, *PSTORAGE_EVENT_NOTIFICATION;
+
+#define STORAGE_EVENT_NOTIFICATION_VERSION_V1 1
+
+#define STORAGE_EVENT_MEDIA_STATUS 0x0000000000000001
+#define STORAGE_EVENT_DEVICE_STATUS 0x0000000000000002
+#define STORAGE_EVENT_DEVICE_OPERATION 0x0000000000000004
+#define STORAGE_EVENT_ALL (STORAGE_EVENT_MEDIA_STATUS | STORAGE_EVENT_DEVICE_STATUS |
STORAGE_EVENT_DEVICE_OPERATION)
+
+#define STORAGE_OFFLOAD_MAX_TOKEN_LENGTH 512
+#define STORAGE_OFFLOAD_TOKEN_ID_LENGTH 0x1F8
+#define STORAGE_OFFLOAD_TOKEN_TYPE_ZERO_DATA 0xFFFF0001
+
+typedef struct _STORAGE_OFFLOAD_TOKEN {
+ UCHAR TokenType[4];
+ UCHAR Reserved[2];
+ UCHAR TokenIdLength[2];
+ union {
+ struct {
+ UCHAR Reserved2[STORAGE_OFFLOAD_TOKEN_ID_LENGTH];
+ } StorageOffloadZeroDataToken;
+ UCHAR Token[STORAGE_OFFLOAD_TOKEN_ID_LENGTH];
+ } DUMMYUNIONNAME;
+} STORAGE_OFFLOAD_TOKEN, *PSTORAGE_OFFLOAD_TOKEN;
+
+#define MAKE_ZERO_TOKEN(T) ( \
+ ((PSTORAGE_OFFLOAD_TOKEN)T)->TokenType[0] = 0xFF, \
+ ((PSTORAGE_OFFLOAD_TOKEN)T)->TokenType[1] = 0xFF, \
+ ((PSTORAGE_OFFLOAD_TOKEN)T)->TokenType[2] = 0x00, \
+ ((PSTORAGE_OFFLOAD_TOKEN)T)->TokenType[3] = 0x01, \
+ ((PSTORAGE_OFFLOAD_TOKEN)T)->TokenIdLength[0] = 0x01, \
+ ((PSTORAGE_OFFLOAD_TOKEN)T)->TokenIdLength[1] = 0xF8 \
+)
+
+#define IS_ZERO_TOKEN(T) ( \
+ (((PSTORAGE_OFFLOAD_TOKEN)T)->TokenType[0] == 0xFF && \
+ ((PSTORAGE_OFFLOAD_TOKEN)T)->TokenType[1] == 0xFF && \
+ ((PSTORAGE_OFFLOAD_TOKEN)T)->TokenType[2] == 0x00 && \
+ ((PSTORAGE_OFFLOAD_TOKEN)T)->TokenType[3] == 0x01 && \
+ ((PSTORAGE_OFFLOAD_TOKEN)T)->TokenIdLength[0] == 0x01 && \
+ ((PSTORAGE_OFFLOAD_TOKEN)T)->TokenIdLength[1] == 0xF8) \
+)
+
+typedef struct _DEVICE_DSM_OFFLOAD_READ_PARAMETERS {
+ ULONG Flags;
+ ULONG TimeToLive;
+ ULONG Reserved[2];
+} DEVICE_DSM_OFFLOAD_READ_PARAMETERS, *PDEVICE_DSM_OFFLOAD_READ_PARAMETERS;
+
+#define STORAGE_OFFLOAD_READ_RANGE_TRUNCATED 0x00000001
+
+typedef struct _STORAGE_OFFLOAD_READ_OUTPUT {
+ ULONG OffloadReadFlags;
+ ULONG Reserved;
+ ULONGLONG LengthProtected;
+ ULONG TokenLength;
+ STORAGE_OFFLOAD_TOKEN Token;
+} STORAGE_OFFLOAD_READ_OUTPUT, *PSTORAGE_OFFLOAD_READ_OUTPUT;
+
+#define DeviceDsmDefinition_OffloadRead {DeviceDsmAction_OffloadRead,
\
+ FALSE,
\
+ __alignof(DEVICE_DSM_OFFLOAD_READ_PARAMETERS),
\
+ sizeof(DEVICE_DSM_OFFLOAD_READ_PARAMETERS),
\
+ FALSE,
\
+ __alignof(STORAGE_OFFLOAD_READ_OUTPUT),
\
+ sizeof(STORAGE_OFFLOAD_READ_OUTPUT)}
+
+typedef struct _DEVICE_DSM_OFFLOAD_WRITE_PARAMETERS {
+ ULONG Flags;
+ ULONG Reserved;
+ ULONGLONG TokenOffset;
+ STORAGE_OFFLOAD_TOKEN Token;
+} DEVICE_DSM_OFFLOAD_WRITE_PARAMETERS, *PDEVICE_DSM_OFFLOAD_WRITE_PARAMETERS;
+
+#define STORAGE_OFFLOAD_WRITE_RANGE_TRUNCATED 0x0001
+#define STORAGE_OFFLOAD_TOKEN_INVALID 0x0002
+
+typedef struct _STORAGE_OFFLOAD_WRITE_OUTPUT {
+ ULONG OffloadWriteFlags;
+ ULONG Reserved;
+ ULONGLONG LengthCopied;
+} STORAGE_OFFLOAD_WRITE_OUTPUT, *PSTORAGE_OFFLOAD_WRITE_OUTPUT;
+
+#define DeviceDsmDefinition_OffloadWrite {DeviceDsmAction_OffloadWrite,
\
+ FALSE,
\
+ __alignof(DEVICE_DSM_OFFLOAD_WRITE_PARAMETERS),
\
+ sizeof(DEVICE_DSM_OFFLOAD_WRITE_PARAMETERS),
\
+ FALSE,
\
+ __alignof(STORAGE_OFFLOAD_WRITE_OUTPUT),
\
+ sizeof(STORAGE_OFFLOAD_WRITE_OUTPUT)}
+
+
+#define READ_COPY_NUMBER_KEY 0x52434e00 //'RCN'
+#define READ_COPY_NUMBER_BYPASS_CACHE_FLAG 0x00000100
+
+#define IsKeyReadCopyNumber(_k) (((_k) & 0xFFFFFE00) ==
READ_COPY_NUMBER_KEY)
+
+#define IsKeyReadCopyNumberBypassCache(_k) ((_k) &
READ_COPY_NUMBER_BYPASS_CACHE_FLAG)
+#define SetReadCopyNumberBypassCacheToKey(_k) ((_k) |=
READ_COPY_NUMBER_BYPASS_CACHE_FLAG)
+
+#define ReadCopyNumberToKey(_c) (READ_COPY_NUMBER_KEY | (UCHAR)(_c))
+#define ReadCopyNumberFromKey(_k) (UCHAR)((_k) & 0x000000FF)
+
+typedef struct _STORAGE_IDLE_POWER {
+ ULONG Version;
+ ULONG Size;
+ ULONG WakeCapableHint:1;
+ ULONG D3ColdSupported:1;
+ ULONG Reserved:30;
+ ULONG D3IdleTimeout;
+} STORAGE_IDLE_POWER, *PSTORAGE_IDLE_POWER;
+
#ifdef __cplusplus
}
#endif
diff --git a/sdk/include/psdk/ntiologc.h b/sdk/include/psdk/ntiologc.h
index 2626fcd8a62..2fe89671338 100644
--- a/sdk/include/psdk/ntiologc.h
+++ b/sdk/include/psdk/ntiologc.h
@@ -25,40 +25,63 @@
#define FACILITY_IO_ERROR_CODE 0x4
#define FACILITY_MCA_ERROR_CODE 0x5
-#define IO_ERR_RETRY_SUCCEEDED ((NTSTATUS)0x00040001L)
#define IO_ERR_INSUFFICIENT_RESOURCES ((NTSTATUS)0xC0040002L)
-#define IO_ERR_CONFIGURATION_ERROR ((NTSTATUS)0xC0040003L)
#define IO_ERR_DRIVER_ERROR ((NTSTATUS)0xC0040004L)
-#define IO_ERR_PARITY ((NTSTATUS)0xC0040005L)
#define IO_ERR_SEEK_ERROR ((NTSTATUS)0xC0040006L)
#define IO_ERR_BAD_BLOCK ((NTSTATUS)0xC0040007L)
-#define IO_ERR_OVERRUN_ERROR ((NTSTATUS)0xC0040008L)
#define IO_ERR_TIMEOUT ((NTSTATUS)0xC0040009L)
-#define IO_ERR_SEQUENCE ((NTSTATUS)0xC004000AL)
#define IO_ERR_CONTROLLER_ERROR ((NTSTATUS)0xC004000BL)
+#define IO_ERR_NOT_READY ((NTSTATUS)0xC004000FL)
+#define IO_ERR_INVALID_REQUEST ((NTSTATUS)0xC0040010L)
+#define IO_ERR_RESET ((NTSTATUS)0xC0040013L)
+#define IO_ERR_BAD_FIRMWARE ((NTSTATUS)0xC0040019L)
+#define IO_WRN_BAD_FIRMWARE ((NTSTATUS)0x8004001AL)
+#define IO_WRITE_CACHE_ENABLED ((NTSTATUS)0x80040020L)
+#define IO_RECOVERED_VIA_ECC ((NTSTATUS)0x80040021L)
+#define IO_WRITE_CACHE_DISABLED ((NTSTATUS)0x80040022L)
+#define IO_WARNING_PAGING_FAILURE ((NTSTATUS)0x80040033L)
+#define IO_WRN_FAILURE_PREDICTED ((NTSTATUS)0x80040034L)
+#define IO_WARNING_ALLOCATION_FAILED ((NTSTATUS)0x80040038L)
+#define IO_WARNING_DUPLICATE_SIGNATURE ((NTSTATUS)0x8004003AL)
+#define IO_WARNING_DUPLICATE_PATH ((NTSTATUS)0x8004003BL)
+#define IO_WARNING_WRITE_FUA_PROBLEM ((NTSTATUS)0x80040084L)
+#define IO_WARNING_VOLUME_LOST_DISK_EXTENT ((NTSTATUS)0x8004008EL)
+#define IO_WARNING_DEVICE_HAS_INTERNAL_DUMP ((NTSTATUS)0x8004008FL)
+#define IO_WARNING_SOFT_THRESHOLD_REACHED ((NTSTATUS)0x80040090L)
+#define IO_WARNING_SOFT_THRESHOLD_REACHED_EX ((NTSTATUS)0x80040091L)
+#define IO_WARNING_SOFT_THRESHOLD_REACHED_EX_LUN_LUN ((NTSTATUS)0x80040092L)
+#define IO_WARNING_SOFT_THRESHOLD_REACHED_EX_LUN_POOL ((NTSTATUS)0x80040093L)
+#define IO_WARNING_SOFT_THRESHOLD_REACHED_EX_POOL_LUN ((NTSTATUS)0x80040094L)
+#define IO_WARNING_SOFT_THRESHOLD_REACHED_EX_POOL_POOL ((NTSTATUS)0x80040095L)
+#define IO_ERROR_DISK_RESOURCES_EXHAUSTED ((NTSTATUS)0xC0040096L)
+#define IO_WARNING_DISK_CAPACITY_CHANGED ((NTSTATUS)0x80040097L)
+#define IO_WARNING_DISK_PROVISIONING_TYPE_CHANGED ((NTSTATUS)0x80040098L)
+#define IO_WARNING_IO_OPERATION_RETRIED ((NTSTATUS)0x80040099L)
+#define IO_ERROR_IO_HARDWARE_ERROR ((NTSTATUS)0xC004009AL)
+#define IO_WARNING_COMPLETION_TIME ((NTSTATUS)0x8004009BL)
+#define IO_WARNING_DISK_SURPRISE_REMOVED ((NTSTATUS)0x8004009DL)
+#define IO_WARNING_REPEATED_DISK_GUID ((NTSTATUS)0x8004009EL)
+#define IO_WARNING_DISK_FIRMWARE_UPDATED ((NTSTATUS)0x4004009FL)
+#define IO_ERR_RETRY_SUCCEEDED ((NTSTATUS)0x00040001L)
+#define IO_ERR_CONFIGURATION_ERROR ((NTSTATUS)0xC0040003L)
+#define IO_ERR_PARITY ((NTSTATUS)0xC0040005L)
+#define IO_ERR_OVERRUN_ERROR ((NTSTATUS)0xC0040008L)
+#define IO_ERR_SEQUENCE ((NTSTATUS)0xC004000AL)
#define IO_ERR_INTERNAL_ERROR ((NTSTATUS)0xC004000CL)
#define IO_ERR_INCORRECT_IRQL ((NTSTATUS)0xC004000DL)
#define IO_ERR_INVALID_IOBASE ((NTSTATUS)0xC004000EL)
-#define IO_ERR_NOT_READY ((NTSTATUS)0xC004000FL)
-#define IO_ERR_INVALID_REQUEST ((NTSTATUS)0xC0040010L)
#define IO_ERR_VERSION ((NTSTATUS)0xC0040011L)
#define IO_ERR_LAYERED_FAILURE ((NTSTATUS)0xC0040012L)
-#define IO_ERR_RESET ((NTSTATUS)0xC0040013L)
#define IO_ERR_PROTOCOL ((NTSTATUS)0xC0040014L)
#define IO_ERR_MEMORY_CONFLICT_DETECTED ((NTSTATUS)0xC0040015L)
#define IO_ERR_PORT_CONFLICT_DETECTED ((NTSTATUS)0xC0040016L)
#define IO_ERR_DMA_CONFLICT_DETECTED ((NTSTATUS)0xC0040017L)
#define IO_ERR_IRQ_CONFLICT_DETECTED ((NTSTATUS)0xC0040018L)
-#define IO_ERR_BAD_FIRMWARE ((NTSTATUS)0xC0040019L)
-#define IO_WRN_BAD_FIRMWARE ((NTSTATUS)0x8004001AL)
#define IO_ERR_DMA_RESOURCE_CONFLICT ((NTSTATUS)0xC004001BL)
#define IO_ERR_INTERRUPT_RESOURCE_CONFLICT ((NTSTATUS)0xC004001CL)
#define IO_ERR_MEMORY_RESOURCE_CONFLICT ((NTSTATUS)0xC004001DL)
#define IO_ERR_PORT_RESOURCE_CONFLICT ((NTSTATUS)0xC004001EL)
#define IO_BAD_BLOCK_WITH_NAME ((NTSTATUS)0xC004001FL)
-#define IO_WRITE_CACHE_ENABLED ((NTSTATUS)0x80040020L)
-#define IO_RECOVERED_VIA_ECC ((NTSTATUS)0x80040021L)
-#define IO_WRITE_CACHE_DISABLED ((NTSTATUS)0x80040022L)
#define IO_FILE_QUOTA_THRESHOLD ((NTSTATUS)0x40040024L)
#define IO_FILE_QUOTA_LIMIT ((NTSTATUS)0x40040025L)
#define IO_FILE_QUOTA_STARTED ((NTSTATUS)0x40040026L)
@@ -74,32 +97,21 @@
#define IO_DUMP_DIRECT_CONFIG_FAILED ((NTSTATUS)0xC0040030L)
#define IO_DUMP_PAGE_CONFIG_FAILED ((NTSTATUS)0xC0040031L)
#define IO_LOST_DELAYED_WRITE ((NTSTATUS)0x80040032L)
-#define IO_WARNING_PAGING_FAILURE ((NTSTATUS)0x80040033L)
-#define IO_WRN_FAILURE_PREDICTED ((NTSTATUS)0x80040034L)
#define IO_WARNING_INTERRUPT_STILL_PENDING ((NTSTATUS)0x80040035L)
#define IO_DRIVER_CANCEL_TIMEOUT ((NTSTATUS)0x80040036L)
#define IO_FILE_SYSTEM_CORRUPT_WITH_NAME ((NTSTATUS)0xC0040037L)
-#define IO_WARNING_ALLOCATION_FAILED ((NTSTATUS)0x80040038L)
#define IO_WARNING_LOG_FLUSH_FAILED ((NTSTATUS)0x80040039L)
-#define IO_WARNING_DUPLICATE_SIGNATURE ((NTSTATUS)0x8004003AL)
-#define IO_WARNING_DUPLICATE_PATH ((NTSTATUS)0x8004003BL)
-#define IO_ERR_THREAD_STUCK_IN_DEVICE_DRIVER ((NTSTATUS)0xC004006CL)
#define IO_ERR_PORT_TIMEOUT ((NTSTATUS)0xC0040075L)
#define IO_WARNING_BUS_RESET ((NTSTATUS)0x80040076L)
#define IO_INFO_THROTTLE_COMPLETE ((NTSTATUS)0x40040077L)
#define IO_WARNING_RESET ((NTSTATUS)0x80040081L)
-#define IO_FILE_SYSTEM_REPAIR_SUCCESS ((NTSTATUS)0x80040082L)
-#define IO_FILE_SYSTEM_REPAIR_FAILED ((NTSTATUS)0xC0040083L)
-#define IO_WARNING_WRITE_FUA_PROBLEM ((NTSTATUS)0x80040084L)
#define IO_CDROM_EXCLUSIVE_LOCK ((NTSTATUS)0x40040085L)
-#define IO_FILE_SYSTEM_TXF_RECOVERY_FAILURE ((NTSTATUS)0x80040086L)
-#define IO_FILE_SYSTEM_TXF_LOG_FULL_HANDLING_FAILED ((NTSTATUS)0xC0040087L)
-#define IO_FILE_SYSTEM_TXF_RESOURCE_MANAGER_RESET ((NTSTATUS)0x80040088L)
-#define IO_FILE_SYSTEM_TXF_RESOURCE_MANAGER_START_FAILED ((NTSTATUS)0xC0040089L)
-#define IO_FILE_SYSTEM_TXF_RESOURCE_MANAGER_SHUT_DOWN ((NTSTATUS)0xC004008AL)
#define IO_LOST_DELAYED_WRITE_NETWORK_DISCONNECTED ((NTSTATUS)0x8004008BL)
#define IO_LOST_DELAYED_WRITE_NETWORK_SERVER_ERROR ((NTSTATUS)0x8004008CL)
#define IO_LOST_DELAYED_WRITE_NETWORK_LOCAL_DISK_ERROR ((NTSTATUS)0x8004008DL)
+#define IO_WARNING_DUMP_DISABLED_DEVICE_GONE ((NTSTATUS)0x8004009CL)
+#define IO_WARNING_ADAPTER_FIRMWARE_UPDATED ((NTSTATUS)0x400400A0L)
+#define IO_ERROR_DUMP_CREATION_ERROR ((NTSTATUS)0xC00400A1L)
#define MCA_WARNING_CACHE ((NTSTATUS)0x8005003CL)
#define MCA_ERROR_CACHE ((NTSTATUS)0xC005003DL)
diff --git a/sdk/include/psdk/ntstatus.h b/sdk/include/psdk/ntstatus.h
index 18795035170..bc18d575f7b 100644
--- a/sdk/include/psdk/ntstatus.h
+++ b/sdk/include/psdk/ntstatus.h
@@ -156,8 +156,20 @@ extern "C" {
#define STATUS_HIBERNATED ((NTSTATUS)0x4000002A)
#define STATUS_RESUME_HIBERNATION ((NTSTATUS)0x4000002B)
#define STATUS_FIRMWARE_UPDATED ((NTSTATUS)0x4000002C)
+#define STATUS_DRIVERS_LEAKING_LOCKED_PAGES ((NTSTATUS)0x4000002D)
+#define STATUS_MESSAGE_RETRIEVED ((NTSTATUS)0x4000002E)
+#define STATUS_SYSTEM_POWERSTATE_TRANSITION ((NTSTATUS)0x4000002F)
+#define STATUS_ALPC_CHECK_COMPLETION_LIST ((NTSTATUS)0x40000030)
+#define STATUS_SYSTEM_POWERSTATE_COMPLEX_TRANSITION ((NTSTATUS)0x40000031)
+#define STATUS_ACCESS_AUDIT_BY_POLICY ((NTSTATUS)0x40000032)
+#define STATUS_ABANDON_HIBERFILE ((NTSTATUS)0x40000033)
+#define STATUS_BIZRULES_NOT_ENABLED ((NTSTATUS)0x40000034)
+#define STATUS_FT_READ_FROM_COPY ((NTSTATUS)0x40000035)
+#define STATUS_IMAGE_AT_DIFFERENT_BASE ((NTSTATUS)0x40000036)
+#define STATUS_PATCH_DEFERRED ((NTSTATUS)0x40000037)
#define STATUS_WAKE_SYSTEM ((NTSTATUS)0x40000294)
#define STATUS_DS_SHUTTING_DOWN ((NTSTATUS)0x40000370)
+#define STATUS_DISK_REPAIR_REDIRECTED ((NTSTATUS)0x40000807)
#define RPC_NT_UUID_LOCAL_ONLY ((NTSTATUS)0x40020056)
#define RPC_NT_SEND_INCOMPLETE ((NTSTATUS)0x400200AF)
@@ -214,6 +226,8 @@ extern "C" {
#define STATUS_DEVICE_REQUIRES_CLEANING ((NTSTATUS)0x80000288)
#define STATUS_DEVICE_DOOR_OPEN ((NTSTATUS)0x80000289)
+#define STATUS_DATA_LOST_REPAIR ((NTSTATUS)0x80000803)
+
#define STATUS_CLUSTER_NODE_ALREADY_UP ((NTSTATUS)0x80130001)
#define STATUS_CLUSTER_NODE_ALREADY_DOWN ((NTSTATUS)0x80130002)
#define STATUS_CLUSTER_NETWORK_ALREADY_ONLINE ((NTSTATUS)0x80130003)
@@ -943,12 +957,217 @@ extern "C" {
#define STATUS_VDM_DISALLOWED ((NTSTATUS)0xC0000414)
#define STATUS_HUNG_DISPLAY_DRIVER_THREAD ((NTSTATUS)0xC0000415)
#define STATUS_INVALID_CRUNTIME_PARAMETER ((NTSTATUS)0xC0000417)
-#define STATUS_ASSERTION_FAILURE ((NTSTATUS)0xC0000420L)
+#define STATUS_ASSERTION_FAILURE ((NTSTATUS)0xC0000420)
#define STATUS_CALLBACK_POP_STACK ((NTSTATUS)0xC0000423)
#define STATUS_HIVE_UNLOADED ((NTSTATUS)0xC0000425)
#define STATUS_ELEVATION_REQUIRED ((NTSTATUS)0xC000042C)
#define STATUS_PURGE_FAILED ((NTSTATUS)0xC0000435)
+#define STATUS_CRED_REQUIRES_CONFIRMATION ((NTSTATUS)0xC0000440)
+#define STATUS_CS_ENCRYPTION_INVALID_SERVER_RESPONSE ((NTSTATUS)0xC0000441)
+#define STATUS_CS_ENCRYPTION_UNSUPPORTED_SERVER ((NTSTATUS)0xC0000442)
+#define STATUS_CS_ENCRYPTION_EXISTING_ENCRYPTED_FILE ((NTSTATUS)0xC0000443)
+#define STATUS_CS_ENCRYPTION_NEW_ENCRYPTED_FILE ((NTSTATUS)0xC0000444)
+#define STATUS_CS_ENCRYPTION_FILE_NOT_CSE ((NTSTATUS)0xC0000445)
+#define STATUS_INVALID_LABEL ((NTSTATUS)0xC0000446)
+#define STATUS_DRIVER_PROCESS_TERMINATED ((NTSTATUS)0xC0000450)
+#define STATUS_AMBIGUOUS_SYSTEM_DEVICE ((NTSTATUS)0xC0000451)
+#define STATUS_SYSTEM_DEVICE_NOT_FOUND ((NTSTATUS)0xC0000452)
+#define STATUS_RESTART_BOOT_APPLICATION ((NTSTATUS)0xC0000453)
+#define STATUS_INSUFFICIENT_NVRAM_RESOURCES ((NTSTATUS)0xC0000454)
+#define STATUS_INVALID_SESSION ((NTSTATUS)0xC0000455)
+#define STATUS_THREAD_ALREADY_IN_SESSION ((NTSTATUS)0xC0000456)
+#define STATUS_THREAD_NOT_IN_SESSION ((NTSTATUS)0xC0000457)
+#define STATUS_INVALID_WEIGHT ((NTSTATUS)0xC0000458)
+#define STATUS_REQUEST_PAUSED ((NTSTATUS)0xC0000459)
+#define STATUS_NO_RANGES_PROCESSED ((NTSTATUS)0xC0000460)
+#define STATUS_DISK_RESOURCES_EXHAUSTED ((NTSTATUS)0xC0000461)
+#define STATUS_NEEDS_REMEDIATION ((NTSTATUS)0xC0000462)
+#define STATUS_DEVICE_FEATURE_NOT_SUPPORTED ((NTSTATUS)0xC0000463)
+#define STATUS_DEVICE_UNREACHABLE ((NTSTATUS)0xC0000464)
+#define STATUS_INVALID_TOKEN ((NTSTATUS)0xC0000465)
+#define STATUS_SERVER_UNAVAILABLE ((NTSTATUS)0xC0000466)
+#define STATUS_FILE_NOT_AVAILABLE ((NTSTATUS)0xC0000467)
+#define STATUS_DEVICE_INSUFFICIENT_RESOURCES ((NTSTATUS)0xC0000468)
+#define STATUS_PACKAGE_UPDATING ((NTSTATUS)0xC0000469)
+#define STATUS_NOT_READ_FROM_COPY ((NTSTATUS)0xC000046A)
+#define STATUS_FT_WRITE_FAILURE ((NTSTATUS)0xC000046B)
+#define STATUS_FT_DI_SCAN_REQUIRED ((NTSTATUS)0xC000046C)
+#define STATUS_OBJECT_NOT_EXTERNALLY_BACKED ((NTSTATUS)0xC000046D)
+#define STATUS_EXTERNAL_BACKING_PROVIDER_UNKNOWN ((NTSTATUS)0xC000046E)
+#define STATUS_COMPRESSION_NOT_BENEFICIAL ((NTSTATUS)0xC000046F)
+#define STATUS_DATA_CHECKSUM_ERROR ((NTSTATUS)0xC0000470)
+#define STATUS_INTERMIXED_KERNEL_EA_OPERATION ((NTSTATUS)0xC0000471)
+#define STATUS_TRIM_READ_ZERO_NOT_SUPPORTED ((NTSTATUS)0xC0000472)
+#define STATUS_TOO_MANY_SEGMENT_DESCRIPTORS ((NTSTATUS)0xC0000473)
+#define STATUS_INVALID_OFFSET_ALIGNMENT ((NTSTATUS)0xC0000474)
+#define STATUS_INVALID_FIELD_IN_PARAMETER_LIST ((NTSTATUS)0xC0000475)
+#define STATUS_OPERATION_IN_PROGRESS ((NTSTATUS)0xC0000476)
+#define STATUS_INVALID_INITIATOR_TARGET_PATH ((NTSTATUS)0xC0000477)
+#define STATUS_SCRUB_DATA_DISABLED ((NTSTATUS)0xC0000478)
+#define STATUS_NOT_REDUNDANT_STORAGE ((NTSTATUS)0xC0000479)
+#define STATUS_RESIDENT_FILE_NOT_SUPPORTED ((NTSTATUS)0xC000047A)
+#define STATUS_COMPRESSED_FILE_NOT_SUPPORTED ((NTSTATUS)0xC000047B)
+#define STATUS_DIRECTORY_NOT_SUPPORTED ((NTSTATUS)0xC000047C)
+#define STATUS_IO_OPERATION_TIMEOUT ((NTSTATUS)0xC000047D)
+#define STATUS_SYSTEM_NEEDS_REMEDIATION ((NTSTATUS)0xC000047E)
+#define STATUS_APPX_INTEGRITY_FAILURE_CLR_NGEN ((NTSTATUS)0xC000047F)
+#define STATUS_SHARE_UNAVAILABLE ((NTSTATUS)0xC0000480)
+#define STATUS_APISET_NOT_HOSTED ((NTSTATUS)0xC0000481)
+#define STATUS_APISET_NOT_PRESENT ((NTSTATUS)0xC0000482)
+#define STATUS_DEVICE_HARDWARE_ERROR ((NTSTATUS)0xC0000483)
+#define STATUS_FIRMWARE_SLOT_INVALID ((NTSTATUS)0xC0000484)
+#define STATUS_FIRMWARE_IMAGE_INVALID ((NTSTATUS)0xC0000485)
+#define STATUS_STORAGE_TOPOLOGY_ID_MISMATCH ((NTSTATUS)0xC0000486)
+#define STATUS_WIM_NOT_BOOTABLE ((NTSTATUS)0xC0000487)
+#define STATUS_BLOCKED_BY_PARENTAL_CONTROLS ((NTSTATUS)0xC0000488)
+#define STATUS_NEEDS_REGISTRATION ((NTSTATUS)0xC0000489)
+#define STATUS_QUOTA_ACTIVITY ((NTSTATUS)0xC000048A)
+#define STATUS_CALLBACK_INVOKE_INLINE ((NTSTATUS)0xC000048B)
+#define STATUS_BLOCK_TOO_MANY_REFERENCES ((NTSTATUS)0xC000048C)
+#define STATUS_MARKED_TO_DISALLOW_WRITES ((NTSTATUS)0xC000048D)
+#define STATUS_NETWORK_ACCESS_DENIED_EDP ((NTSTATUS)0xC000048E)
+#define STATUS_ENCLAVE_FAILURE ((NTSTATUS)0xC000048F)
+#define STATUS_PNP_NO_COMPAT_DRIVERS ((NTSTATUS)0xC0000490)
+#define STATUS_PNP_DRIVER_PACKAGE_NOT_FOUND ((NTSTATUS)0xC0000491)
+#define STATUS_PNP_DRIVER_CONFIGURATION_NOT_FOUND ((NTSTATUS)0xC0000492)
+#define STATUS_PNP_DRIVER_CONFIGURATION_INCOMPLETE ((NTSTATUS)0xC0000493)
+#define STATUS_PNP_FUNCTION_DRIVER_REQUIRED ((NTSTATUS)0xC0000494)
+#define STATUS_PNP_DEVICE_CONFIGURATION_PENDING ((NTSTATUS)0xC0000495)
+#define STATUS_DEVICE_HINT_NAME_BUFFER_TOO_SMALL ((NTSTATUS)0xC0000496)
+#define STATUS_PACKAGE_NOT_AVAILABLE ((NTSTATUS)0xC0000497)
+#define STATUS_DEVICE_IN_MAINTENANCE ((NTSTATUS)0xC0000499)
+#define STATUS_NOT_SUPPORTED_ON_DAX ((NTSTATUS)0xC000049A)
+#define STATUS_FREE_SPACE_TOO_FRAGMENTED ((NTSTATUS)0xC000049B)
+#define STATUS_DAX_MAPPING_EXISTS ((NTSTATUS)0xC000049C)
+#define STATUS_CHILD_PROCESS_BLOCKED ((NTSTATUS)0xC000049D)
+#define STATUS_STORAGE_LOST_DATA_PERSISTENCE ((NTSTATUS)0xC000049E)
+#define STATUS_VRF_CFG_AND_IO_ENABLED ((NTSTATUS)0xC000049F)
+#define STATUS_PARTITION_TERMINATING ((NTSTATUS)0xC00004A0)
+#define STATUS_EXTERNAL_SYSKEY_NOT_SUPPORTED ((NTSTATUS)0xC00004A1)
+#define STATUS_ENCLAVE_VIOLATION ((NTSTATUS)0xC00004A2)
+#define STATUS_FILE_PROTECTED_UNDER_DPL ((NTSTATUS)0xC00004A3)
+#define STATUS_VOLUME_NOT_CLUSTER_ALIGNED ((NTSTATUS)0xC00004A4)
+#define STATUS_NO_PHYSICALLY_ALIGNED_FREE_SPACE_FOUND ((NTSTATUS)0xC00004A5)
+#define STATUS_APPX_FILE_NOT_ENCRYPTED ((NTSTATUS)0xC00004A6)
+#define STATUS_RWRAW_ENCRYPTED_FILE_NOT_ENCRYPTED ((NTSTATUS)0xC00004A7)
+#define STATUS_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILEOFFSET ((NTSTATUS)0xC00004A8)
+#define STATUS_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILERANGE ((NTSTATUS)0xC00004A9)
+#define STATUS_RWRAW_ENCRYPTED_INVALID_EDATAINFO_PARAMETER ((NTSTATUS)0xC00004AA)
+#define STATUS_FT_READ_FAILURE ((NTSTATUS)0xC00004AB)
+#define STATUS_PATCH_CONFLICT ((NTSTATUS)0xC00004AC)
+#define STATUS_STORAGE_RESERVE_ID_INVALID ((NTSTATUS)0xC00004AD)
+#define STATUS_STORAGE_RESERVE_DOES_NOT_EXIST ((NTSTATUS)0xC00004AE)
+#define STATUS_STORAGE_RESERVE_ALREADY_EXISTS ((NTSTATUS)0xC00004AF)
+#define STATUS_STORAGE_RESERVE_NOT_EMPTY ((NTSTATUS)0xC00004B0)
+#define STATUS_NOT_A_DAX_VOLUME ((NTSTATUS)0xC00004B1)
+#define STATUS_NOT_DAX_MAPPABLE ((NTSTATUS)0xC00004B2)
+#define STATUS_CASE_DIFFERING_NAMES_IN_DIR ((NTSTATUS)0xC00004B3)
+#define STATUS_FILE_NOT_SUPPORTED ((NTSTATUS)0xC00004B4)
+#define STATUS_NOT_SUPPORTED_WITH_BTT ((NTSTATUS)0xC00004B5)
+#define STATUS_ENCRYPTION_DISABLED ((NTSTATUS)0xC00004B6)
+#define STATUS_ENCRYPTING_METADATA_DISALLOWED ((NTSTATUS)0xC00004B7)
+#define STATUS_CANT_CLEAR_ENCRYPTION_FLAG ((NTSTATUS)0xC00004B8)
+#define STATUS_UNSATISFIED_DEPENDENCIES ((NTSTATUS)0xC00004B9)
+#define STATUS_CASE_SENSITIVE_PATH ((NTSTATUS)0xC00004BA)
+#define STATUS_INVALID_TASK_NAME ((NTSTATUS)0xC0000500)
+#define STATUS_INVALID_TASK_INDEX ((NTSTATUS)0xC0000501)
+#define STATUS_THREAD_ALREADY_IN_TASK ((NTSTATUS)0xC0000502)
+#define STATUS_CALLBACK_BYPASS ((NTSTATUS)0xC0000503)
+#define STATUS_UNDEFINED_SCOPE ((NTSTATUS)0xC0000504)
+#define STATUS_INVALID_CAP ((NTSTATUS)0xC0000505)
+#define STATUS_NOT_GUI_PROCESS ((NTSTATUS)0xC0000506)
+#define STATUS_DEVICE_HUNG ((NTSTATUS)0xC0000507)
+#define STATUS_CONTAINER_ASSIGNED ((NTSTATUS)0xC0000508)
+#define STATUS_JOB_NO_CONTAINER ((NTSTATUS)0xC0000509)
+#define STATUS_DEVICE_UNRESPONSIVE ((NTSTATUS)0xC000050A)
+#define STATUS_REPARSE_POINT_ENCOUNTERED ((NTSTATUS)0xC000050B)
+#define STATUS_ATTRIBUTE_NOT_PRESENT ((NTSTATUS)0xC000050C)
+#define STATUS_NOT_A_TIERED_VOLUME ((NTSTATUS)0xC000050D)
+#define STATUS_ALREADY_HAS_STREAM_ID ((NTSTATUS)0xC000050E)
+#define STATUS_JOB_NOT_EMPTY ((NTSTATUS)0xC000050F)
+#define STATUS_ALREADY_INITIALIZED ((NTSTATUS)0xC0000510)
+#define STATUS_ENCLAVE_NOT_TERMINATED ((NTSTATUS)0xC0000511)
+#define STATUS_ENCLAVE_IS_TERMINATING ((NTSTATUS)0xC0000512)
+#define STATUS_SMB1_NOT_AVAILABLE ((NTSTATUS)0xC0000513)
+#define STATUS_SMR_GARBAGE_COLLECTION_REQUIRED ((NTSTATUS)0xC0000514)
+#define STATUS_INTERRUPTED ((NTSTATUS)0xC0000515)
+#define STATUS_THREAD_NOT_RUNNING ((NTSTATUS)0xC0000516)
+#define STATUS_FAIL_FAST_EXCEPTION ((NTSTATUS)0xC0000602)
+#define STATUS_IMAGE_CERT_REVOKED ((NTSTATUS)0xC0000603)
+#define STATUS_DYNAMIC_CODE_BLOCKED ((NTSTATUS)0xC0000604)
+#define STATUS_IMAGE_CERT_EXPIRED ((NTSTATUS)0xC0000605)
+#define STATUS_STRICT_CFG_VIOLATION ((NTSTATUS)0xC0000606)
+#define STATUS_SET_CONTEXT_DENIED ((NTSTATUS)0xC000060A)
+#define STATUS_CROSS_PARTITION_VIOLATION ((NTSTATUS)0xC000060B)
+#define STATUS_PORT_CLOSED ((NTSTATUS)0xC0000700)
+#define STATUS_MESSAGE_LOST ((NTSTATUS)0xC0000701)
+#define STATUS_INVALID_MESSAGE ((NTSTATUS)0xC0000702)
+#define STATUS_REQUEST_CANCELED ((NTSTATUS)0xC0000703)
+#define STATUS_RECURSIVE_DISPATCH ((NTSTATUS)0xC0000704)
+#define STATUS_LPC_RECEIVE_BUFFER_EXPECTED ((NTSTATUS)0xC0000705)
+#define STATUS_LPC_INVALID_CONNECTION_USAGE ((NTSTATUS)0xC0000706)
+#define STATUS_LPC_REQUESTS_NOT_ALLOWED ((NTSTATUS)0xC0000707)
+#define STATUS_RESOURCE_IN_USE ((NTSTATUS)0xC0000708)
+#define STATUS_HARDWARE_MEMORY_ERROR ((NTSTATUS)0xC0000709)
+#define STATUS_THREADPOOL_HANDLE_EXCEPTION ((NTSTATUS)0xC000070A)
+#define STATUS_THREADPOOL_SET_EVENT_ON_COMPLETION_FAILED ((NTSTATUS)0xC000070B)
+#define STATUS_THREADPOOL_RELEASE_SEMAPHORE_ON_COMPLETION_FAILED ((NTSTATUS)0xC000070C)
+#define STATUS_THREADPOOL_RELEASE_MUTEX_ON_COMPLETION_FAILED ((NTSTATUS)0xC000070D)
+#define STATUS_THREADPOOL_FREE_LIBRARY_ON_COMPLETION_FAILED ((NTSTATUS)0xC000070E)
+#define STATUS_THREADPOOL_RELEASED_DURING_OPERATION ((NTSTATUS)0xC000070F)
+#define STATUS_CALLBACK_RETURNED_WHILE_IMPERSONATING ((NTSTATUS)0xC0000710)
+#define STATUS_APC_RETURNED_WHILE_IMPERSONATING ((NTSTATUS)0xC0000711)
+#define STATUS_PROCESS_IS_PROTECTED ((NTSTATUS)0xC0000712)
+#define STATUS_MCA_EXCEPTION ((NTSTATUS)0xC0000713)
+#define STATUS_CERTIFICATE_MAPPING_NOT_UNIQUE ((NTSTATUS)0xC0000714)
+#define STATUS_SYMLINK_CLASS_DISABLED ((NTSTATUS)0xC0000715)
+#define STATUS_INVALID_IDN_NORMALIZATION ((NTSTATUS)0xC0000716)
+#define STATUS_NO_UNICODE_TRANSLATION ((NTSTATUS)0xC0000717)
#define STATUS_ALREADY_REGISTERED ((NTSTATUS)0xC0000718)
+#define STATUS_CONTEXT_MISMATCH ((NTSTATUS)0xC0000719)
+#define STATUS_PORT_ALREADY_HAS_COMPLETION_LIST ((NTSTATUS)0xC000071A)
+#define STATUS_CALLBACK_RETURNED_THREAD_PRIORITY ((NTSTATUS)0xC000071B)
+#define STATUS_INVALID_THREAD ((NTSTATUS)0xC000071C)
+#define STATUS_CALLBACK_RETURNED_TRANSACTION ((NTSTATUS)0xC000071D)
+#define STATUS_CALLBACK_RETURNED_LDR_LOCK ((NTSTATUS)0xC000071E)
+#define STATUS_CALLBACK_RETURNED_LANG ((NTSTATUS)0xC000071F)
+#define STATUS_CALLBACK_RETURNED_PRI_BACK ((NTSTATUS)0xC0000720)
+#define STATUS_CALLBACK_RETURNED_THREAD_AFFINITY ((NTSTATUS)0xC0000721)
+#define STATUS_LPC_HANDLE_COUNT_EXCEEDED ((NTSTATUS)0xC0000722)
+#define STATUS_EXECUTABLE_MEMORY_WRITE ((NTSTATUS)0xC0000723)
+#define STATUS_KERNEL_EXECUTABLE_MEMORY_WRITE ((NTSTATUS)0xC0000724)
+#define STATUS_ATTACHED_EXECUTABLE_MEMORY_WRITE ((NTSTATUS)0xC0000725)
+#define STATUS_TRIGGERED_EXECUTABLE_MEMORY_WRITE ((NTSTATUS)0xC0000726)
+#define STATUS_DISK_REPAIR_DISABLED ((NTSTATUS)0xC0000800)
+#define STATUS_DS_DOMAIN_RENAME_IN_PROGRESS ((NTSTATUS)0xC0000801)
+#define STATUS_DISK_QUOTA_EXCEEDED ((NTSTATUS)0xC0000802)
+#define STATUS_CONTENT_BLOCKED ((NTSTATUS)0xC0000804)
+#define STATUS_BAD_CLUSTERS ((NTSTATUS)0xC0000805)
+#define STATUS_VOLUME_DIRTY ((NTSTATUS)0xC0000806)
+
+#define STATUS_DISK_REPAIR_UNSUCCESSFUL ((NTSTATUS)0xC0000808)
+#define STATUS_CORRUPT_LOG_OVERFULL ((NTSTATUS)0xC0000809)
+#define STATUS_CORRUPT_LOG_CORRUPTED ((NTSTATUS)0xC000080A)
+#define STATUS_CORRUPT_LOG_UNAVAILABLE ((NTSTATUS)0xC000080B)
+#define STATUS_CORRUPT_LOG_DELETED_FULL ((NTSTATUS)0xC000080C)
+#define STATUS_CORRUPT_LOG_CLEARED ((NTSTATUS)0xC000080D)
+#define STATUS_ORPHAN_NAME_EXHAUSTED ((NTSTATUS)0xC000080E)
+#define STATUS_PROACTIVE_SCAN_IN_PROGRESS ((NTSTATUS)0xC000080F)
+#define STATUS_ENCRYPTED_IO_NOT_POSSIBLE ((NTSTATUS)0xC0000810)
+#define STATUS_CORRUPT_LOG_UPLEVEL_RECORDS ((NTSTATUS)0xC0000811)
+#define STATUS_FILE_CHECKED_OUT ((NTSTATUS)0xC0000901)
+#define STATUS_CHECKOUT_REQUIRED ((NTSTATUS)0xC0000902)
+#define STATUS_BAD_FILE_TYPE ((NTSTATUS)0xC0000903)
+#define STATUS_FILE_TOO_LARGE ((NTSTATUS)0xC0000904)
+#define STATUS_FORMS_AUTH_REQUIRED ((NTSTATUS)0xC0000905)
+#define STATUS_VIRUS_INFECTED ((NTSTATUS)0xC0000906)
+#define STATUS_VIRUS_DELETED ((NTSTATUS)0xC0000907)
+#define STATUS_BAD_MCFG_TABLE ((NTSTATUS)0xC0000908)
+#define STATUS_CANNOT_BREAK_OPLOCK ((NTSTATUS)0xC0000909)
+#define STATUS_BAD_KEY ((NTSTATUS)0xC000090A)
+#define STATUS_BAD_DATA ((NTSTATUS)0xC000090B)
+#define STATUS_NO_KEY ((NTSTATUS)0xC000090C)
+#define STATUS_FILE_HANDLE_REVOKED ((NTSTATUS)0xC0000910)
#define STATUS_WOW_ASSERTION ((NTSTATUS)0xC0009898)
#define STATUS_INVALID_SIGNATURE ((NTSTATUS)0xC000A000)
#define STATUS_HMAC_NOT_SUPPORTED ((NTSTATUS)0xC000A001)