From b26ef5ad39cf924e97a3e453b6028acdc7bc590a Mon Sep 17 00:00:00 2001 From: Biswapriyo Nath <[email protected]> Date: Sun, 18 Sep 2022 10:57:55 +0530 Subject: [PATCH] headers: Add new symbols in winnt.h
Signed-off-by: Biswapriyo Nath <[email protected]> --- mingw-w64-headers/include/winnt.h | 379 +++++++++++++++++++++++++++++- 1 file changed, 370 insertions(+), 9 deletions(-) diff --git a/mingw-w64-headers/include/winnt.h b/mingw-w64-headers/include/winnt.h index b9e1238..44676ba 100644 --- a/mingw-w64-headers/include/winnt.h +++ b/mingw-w64-headers/include/winnt.h @@ -4288,6 +4288,38 @@ __buildmemorybarrier() #define UNPROTECTED_DACL_SECURITY_INFORMATION (__MSABI_LONG(0x20000000)) #define UNPROTECTED_SACL_SECURITY_INFORMATION (__MSABI_LONG(0x10000000)) +typedef BYTE SE_SIGNING_LEVEL, *PSE_SIGNING_LEVEL; + +#define SE_SIGNING_LEVEL_UNCHECKED 0x00000000 +#define SE_SIGNING_LEVEL_UNSIGNED 0x00000001 +#define SE_SIGNING_LEVEL_ENTERPRISE 0x00000002 +#define SE_SIGNING_LEVEL_CUSTOM_1 0x00000003 +#define SE_SIGNING_LEVEL_DEVELOPER SE_SIGNING_LEVEL_CUSTOM_1 +#define SE_SIGNING_LEVEL_AUTHENTICODE 0x00000004 +#define SE_SIGNING_LEVEL_CUSTOM_2 0x00000005 +#define SE_SIGNING_LEVEL_STORE 0x00000006 +#define SE_SIGNING_LEVEL_CUSTOM_3 0x00000007 +#define SE_SIGNING_LEVEL_ANTIMALWARE SE_SIGNING_LEVEL_CUSTOM_3 +#define SE_SIGNING_LEVEL_MICROSOFT 0x00000008 +#define SE_SIGNING_LEVEL_CUSTOM_4 0x00000009 +#define SE_SIGNING_LEVEL_CUSTOM_5 0x0000000A +#define SE_SIGNING_LEVEL_DYNAMIC_CODEGEN 0x0000000B +#define SE_SIGNING_LEVEL_WINDOWS 0x0000000C +#define SE_SIGNING_LEVEL_CUSTOM_7 0x0000000D +#define SE_SIGNING_LEVEL_WINDOWS_TCB 0x0000000E +#define SE_SIGNING_LEVEL_CUSTOM_6 0x0000000F + + typedef enum _SE_IMAGE_SIGNATURE_TYPE { + SeImageSignatureNone = 0, + SeImageSignatureEmbedded, + SeImageSignatureCache, + SeImageSignatureCatalogCached, + SeImageSignatureCatalogNotCached, + SeImageSignatureCatalogHint, + SeImageSignaturePackageCatalog, + SeImageSignaturePplMitigated + } SE_IMAGE_SIGNATURE_TYPE, *PSE_IMAGE_SIGNATURE_TYPE; + typedef enum _SE_LEARNING_MODE_DATA_TYPE { SeLearningModeInvalidType = 0, SeLearningModeSettings, @@ -4875,6 +4907,30 @@ __buildmemorybarrier() DWORD LimitFlags; } JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION,*PJOBOBJECT_NOTIFICATION_LIMIT_INFORMATION; + typedef struct JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2 { + DWORD64 IoReadBytesLimit; + DWORD64 IoWriteBytesLimit; + LARGE_INTEGER PerJobUserTimeLimit; + __C89_NAMELESS union { + DWORD64 JobHighMemoryLimit; + DWORD64 JobMemoryLimit; + }; + __C89_NAMELESS union { + JOBOBJECT_RATE_CONTROL_TOLERANCE RateControlTolerance; + JOBOBJECT_RATE_CONTROL_TOLERANCE CpuRateControlTolerance; + }; + __C89_NAMELESS union { + JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL RateControlToleranceInterval; + JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL CpuRateControlToleranceInterval; + }; + DWORD LimitFlags; + JOBOBJECT_RATE_CONTROL_TOLERANCE IoRateControlTolerance; + DWORD64 JobLowMemoryLimit; + JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL IoRateControlToleranceInterval; + JOBOBJECT_RATE_CONTROL_TOLERANCE NetRateControlTolerance; + JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL NetRateControlToleranceInterval; + } JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2; + typedef struct _JOBOBJECT_LIMIT_VIOLATION_INFORMATION { DWORD LimitFlags; DWORD ViolationLimitFlags; @@ -4890,6 +4946,35 @@ __buildmemorybarrier() JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL RateControlToleranceLimit; } JOBOBJECT_LIMIT_VIOLATION_INFORMATION,*PJOBOBJECT_LIMIT_VIOLATION_INFORMATION; + typedef struct JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2 { + DWORD LimitFlags; + DWORD ViolationLimitFlags; + DWORD64 IoReadBytes; + DWORD64 IoReadBytesLimit; + DWORD64 IoWriteBytes; + DWORD64 IoWriteBytesLimit; + LARGE_INTEGER PerJobUserTime; + LARGE_INTEGER PerJobUserTimeLimit; + DWORD64 JobMemory; + __C89_NAMELESS union { + DWORD64 JobHighMemoryLimit; + DWORD64 JobMemoryLimit; + }; + __C89_NAMELESS union { + JOBOBJECT_RATE_CONTROL_TOLERANCE RateControlTolerance; + JOBOBJECT_RATE_CONTROL_TOLERANCE CpuRateControlTolerance; + }; + __C89_NAMELESS union { + JOBOBJECT_RATE_CONTROL_TOLERANCE RateControlToleranceLimit; + JOBOBJECT_RATE_CONTROL_TOLERANCE CpuRateControlToleranceLimit; + }; + DWORD64 JobLowMemoryLimit; + JOBOBJECT_RATE_CONTROL_TOLERANCE IoRateControlTolerance; + JOBOBJECT_RATE_CONTROL_TOLERANCE IoRateControlToleranceLimit; + JOBOBJECT_RATE_CONTROL_TOLERANCE NetRateControlTolerance; + JOBOBJECT_RATE_CONTROL_TOLERANCE NetRateControlToleranceLimit; + } JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2; + typedef struct _JOBOBJECT_CPU_RATE_CONTROL_INFORMATION { DWORD ControlFlags; __C89_NAMELESS union { @@ -4898,6 +4983,107 @@ __buildmemorybarrier() }; } JOBOBJECT_CPU_RATE_CONTROL_INFORMATION,*PJOBOBJECT_CPU_RATE_CONTROL_INFORMATION; + typedef enum JOB_OBJECT_NET_RATE_CONTROL_FLAGS { + JOB_OBJECT_NET_RATE_CONTROL_ENABLE = 0x1, + JOB_OBJECT_NET_RATE_CONTROL_MAX_BANDWIDTH = 0x2, + JOB_OBJECT_NET_RATE_CONTROL_DSCP_TAG = 0x4, + JOB_OBJECT_NET_RATE_CONTROL_VALID_FLAGS = 0x7 + } JOB_OBJECT_NET_RATE_CONTROL_FLAGS; + +#if !defined(SORTPP_PASS) && !defined(__WIDL__) && !defined(RC_INVOKED) +DEFINE_ENUM_FLAG_OPERATORS(JOB_OBJECT_NET_RATE_CONTROL_FLAGS) +C_ASSERT(JOB_OBJECT_NET_RATE_CONTROL_VALID_FLAGS == (JOB_OBJECT_NET_RATE_CONTROL_ENABLE + JOB_OBJECT_NET_RATE_CONTROL_MAX_BANDWIDTH + JOB_OBJECT_NET_RATE_CONTROL_DSCP_TAG)); +#endif + +#define JOB_OBJECT_NET_RATE_CONTROL_MAX_DSCP_TAG 64 + + typedef struct JOBOBJECT_NET_RATE_CONTROL_INFORMATION { + DWORD64 MaxBandwidth; + JOB_OBJECT_NET_RATE_CONTROL_FLAGS ControlFlags; + BYTE DscpTag; + } JOBOBJECT_NET_RATE_CONTROL_INFORMATION; + + typedef enum JOB_OBJECT_IO_RATE_CONTROL_FLAGS { + JOB_OBJECT_IO_RATE_CONTROL_ENABLE = 0x1, + JOB_OBJECT_IO_RATE_CONTROL_STANDALONE_VOLUME = 0x2, + JOB_OBJECT_IO_RATE_CONTROL_FORCE_UNIT_ACCESS_ALL = 0x4, + JOB_OBJECT_IO_RATE_CONTROL_FORCE_UNIT_ACCESS_ON_SOFT_CAP = 0x8, + JOB_OBJECT_IO_RATE_CONTROL_VALID_FLAGS = JOB_OBJECT_IO_RATE_CONTROL_ENABLE | JOB_OBJECT_IO_RATE_CONTROL_STANDALONE_VOLUME | JOB_OBJECT_IO_RATE_CONTROL_FORCE_UNIT_ACCESS_ALL | JOB_OBJECT_IO_RATE_CONTROL_FORCE_UNIT_ACCESS_ON_SOFT_CAP + } JOB_OBJECT_IO_RATE_CONTROL_FLAGS; + +#if !defined(SORTPP_PASS) && !defined(__WIDL__) && !defined(RC_INVOKED) +DEFINE_ENUM_FLAG_OPERATORS(JOB_OBJECT_IO_RATE_CONTROL_FLAGS) +#endif + + typedef struct JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE { + LONG64 MaxIops; + LONG64 MaxBandwidth; + LONG64 ReservationIops; + PWSTR VolumeName; + DWORD BaseIoSize; + JOB_OBJECT_IO_RATE_CONTROL_FLAGS ControlFlags; + WORD VolumeNameLength; + } JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE; + + typedef JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V1; + + typedef struct JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V2 { + LONG64 MaxIops; + LONG64 MaxBandwidth; + LONG64 ReservationIops; + PWSTR VolumeName; + DWORD BaseIoSize; + JOB_OBJECT_IO_RATE_CONTROL_FLAGS ControlFlags; + WORD VolumeNameLength; + LONG64 CriticalReservationIops; + LONG64 ReservationBandwidth; + LONG64 CriticalReservationBandwidth; + LONG64 MaxTimePercent; + LONG64 ReservationTimePercent; + LONG64 CriticalReservationTimePercent; + } JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V2; + + typedef struct JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3 { + LONG64 MaxIops; + LONG64 MaxBandwidth; + LONG64 ReservationIops; + PWSTR VolumeName; + DWORD BaseIoSize; + JOB_OBJECT_IO_RATE_CONTROL_FLAGS ControlFlags; + WORD VolumeNameLength; + LONG64 CriticalReservationIops; + LONG64 ReservationBandwidth; + LONG64 CriticalReservationBandwidth; + LONG64 MaxTimePercent; + LONG64 ReservationTimePercent; + LONG64 CriticalReservationTimePercent; + LONG64 SoftMaxIops; + LONG64 SoftMaxBandwidth; + LONG64 SoftMaxTimePercent; + LONG64 LimitExcessNotifyIops; + LONG64 LimitExcessNotifyBandwidth; + LONG64 LimitExcessNotifyTimePercent; + } JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3; + + typedef enum JOBOBJECT_IO_ATTRIBUTION_CONTROL_FLAGS { + JOBOBJECT_IO_ATTRIBUTION_CONTROL_ENABLE = 0x1, + JOBOBJECT_IO_ATTRIBUTION_CONTROL_DISABLE = 0x2, + JOBOBJECT_IO_ATTRIBUTION_CONTROL_VALID_FLAGS = 0x3 + } JOBOBJECT_IO_ATTRIBUTION_CONTROL_FLAGS; + + typedef struct _JOBOBJECT_IO_ATTRIBUTION_STATS { + ULONG_PTR IoCount; + ULONGLONG TotalNonOverlappedQueueTime; + ULONGLONG TotalNonOverlappedServiceTime; + ULONGLONG TotalSize; + } JOBOBJECT_IO_ATTRIBUTION_STATS, *PJOBOBJECT_IO_ATTRIBUTION_STATS; + + typedef struct _JOBOBJECT_IO_ATTRIBUTION_INFORMATION { + DWORD ControlFlags; + JOBOBJECT_IO_ATTRIBUTION_STATS ReadStats; + JOBOBJECT_IO_ATTRIBUTION_STATS WriteStats; + } JOBOBJECT_IO_ATTRIBUTION_INFORMATION, *PJOBOBJECT_IO_ATTRIBUTION_INFORMATION; + #define JOB_OBJECT_TERMINATE_AT_END_OF_JOB 0 #define JOB_OBJECT_POST_AT_END_OF_JOB 1 @@ -5036,6 +5222,31 @@ __buildmemorybarrier() MaxJobObjectInfoClass } JOBOBJECTINFOCLASS; + typedef struct _SILOOBJECT_BASIC_INFORMATION { + DWORD SiloId; + DWORD SiloParentId; + DWORD NumberOfProcesses; + BOOLEAN IsInServerSilo; + BYTE Reserved[3]; + } SILOOBJECT_BASIC_INFORMATION, *PSILOOBJECT_BASIC_INFORMATION; + + typedef enum _SERVERSILO_STATE { + SERVERSILO_INITING = 0, + SERVERSILO_STARTED, + SERVERSILO_SHUTTING_DOWN, + SERVERSILO_TERMINATING, + SERVERSILO_TERMINATED, + } SERVERSILO_STATE, *PSERVERSILO_STATE; + + typedef struct _SERVERSILO_BASIC_INFORMATION { + DWORD ServiceSessionId; + SERVERSILO_STATE State; + DWORD ExitStatus; + BOOLEAN IsDownlevelContainer; + PVOID ApiSetSchema; + PVOID HostApiSetSchema; + } SERVERSILO_BASIC_INFORMATION, *PSERVERSILO_BASIC_INFORMATION; + #define MEMORY_PARTITION_QUERY_ACCESS 0x0001 #define MEMORY_PARTITION_MODIFY_ACCESS 0x0002 #define MEMORY_PARTITION_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | MEMORY_PARTITION_QUERY_ACCESS | MEMORY_PARTITION_MODIFY_ACCESS) @@ -5480,10 +5691,12 @@ __buildmemorybarrier() #define MEM_COMMIT 0x1000 #define MEM_RESERVE 0x2000 +#define MEM_REPLACE_PLACEHOLDER 0x4000 #define MEM_DECOMMIT 0x4000 #define MEM_RELEASE 0x8000 #define MEM_FREE 0x10000 #define MEM_PRIVATE 0x20000 +#define MEM_RESERVE_PLACEHOLDER 0x40000 #define MEM_MAPPED 0x40000 #define MEM_RESET 0x80000 #define MEM_TOP_DOWN 0x100000 @@ -5580,6 +5793,87 @@ __buildmemorybarrier() #define MEM_IMAGE SEC_IMAGE #define WRITE_WATCH_FLAG_RESET 0x01 +#define ENCLAVE_TYPE_SGX 0x00000001 +#define ENCLAVE_TYPE_SGX2 0x00000002 + + typedef struct _ENCLAVE_CREATE_INFO_SGX { + BYTE Secs[4096]; + } ENCLAVE_CREATE_INFO_SGX, *PENCLAVE_CREATE_INFO_SGX; + + typedef struct _ENCLAVE_INIT_INFO_SGX { + BYTE SigStruct[1808]; + BYTE Reserved1[240]; + BYTE EInitToken[304]; + BYTE Reserved2[1744]; + } ENCLAVE_INIT_INFO_SGX, *PENCLAVE_INIT_INFO_SGX; + +#define ENCLAVE_TYPE_VBS 0x00000010 + + typedef struct _ENCLAVE_CREATE_INFO_VBS { + DWORD Flags; + BYTE OwnerID[32]; + } ENCLAVE_CREATE_INFO_VBS, *PENCLAVE_CREATE_INFO_VBS; + +#define ENCLAVE_VBS_FLAG_DEBUG 0x00000001 + +#define ENCLAVE_TYPE_VBS_BASIC 0x00000011 + + typedef struct _ENCLAVE_CREATE_INFO_VBS_BASIC { + DWORD Flags; + BYTE OwnerID[32]; + } ENCLAVE_CREATE_INFO_VBS_BASIC, *PENCLAVE_CREATE_INFO_VBS_BASIC; + + typedef struct _ENCLAVE_LOAD_DATA_VBS_BASIC { + DWORD PageType; + } ENCLAVE_LOAD_DATA_VBS_BASIC, *PENCLAVE_LOAD_DATA_VBS_BASIC; + +#define VBS_BASIC_PAGE_MEASURED_DATA 0x00000001 +#define VBS_BASIC_PAGE_UNMEASURED_DATA 0x00000002 +#define VBS_BASIC_PAGE_ZERO_FILL 0x00000003 +#define VBS_BASIC_PAGE_THREAD_DESCRIPTOR 0x00000004 +#define VBS_BASIC_PAGE_SYSTEM_CALL 0x00000005 + + typedef struct _ENCLAVE_INIT_INFO_VBS_BASIC { + BYTE FamilyId[ENCLAVE_SHORT_ID_LENGTH]; + BYTE ImageId[ENCLAVE_SHORT_ID_LENGTH]; + ULONGLONG EnclaveSize; + DWORD EnclaveSvn; + DWORD Reserved; + __C89_NAMELESS union { + HANDLE SignatureInfoHandle; + ULONGLONG Unused; + }; + } ENCLAVE_INIT_INFO_VBS_BASIC, *PENCLAVE_INIT_INFO_VBS_BASIC; + + typedef struct _ENCLAVE_INIT_INFO_VBS { + DWORD Length; + DWORD ThreadCount; + } ENCLAVE_INIT_INFO_VBS, *PENCLAVE_INIT_INFO_VBS; + +#if !defined(SORTPP_PASS) && !defined(__WIDL__) && !defined(RC_INVOKED) + typedef PVOID (ENCLAVE_TARGET_FUNCTION)(PVOID); + typedef ENCLAVE_TARGET_FUNCTION (*PENCLAVE_TARGET_FUNCTION); + typedef PENCLAVE_TARGET_FUNCTION LPENCLAVE_TARGET_FUNCTION; +#endif + +#define DEDICATED_MEMORY_CACHE_ELIGIBLE 0x1 + + typedef struct DECLSPEC_ALIGN(8) _MEMORY_PARTITION_DEDICATED_MEMORY_ATTRIBUTE { + MEM_DEDICATED_ATTRIBUTE_TYPE Type; + DWORD Reserved; + DWORD64 Value; + } MEMORY_PARTITION_DEDICATED_MEMORY_ATTRIBUTE, *PMEMORY_PARTITION_DEDICATED_MEMORY_ATTRIBUTE; + + typedef struct DECLSPEC_ALIGN(8) _MEMORY_PARTITION_DEDICATED_MEMORY_INFORMATION { + DWORD NextEntryOffset; + DWORD SizeOfInformation; + DWORD Flags; + DWORD AttributesOffset; + DWORD AttributeCount; + DWORD Reserved; + DWORD64 TypeId; + } MEMORY_PARTITION_DEDICATED_MEMORY_INFORMATION, *PMEMORY_PARTITION_DEDICATED_MEMORY_INFORMATION; + #define FILE_READ_DATA (0x0001) #define FILE_LIST_DIRECTORY (0x0001) @@ -5785,13 +6079,21 @@ __buildmemorybarrier() ULONGLONG Alignment; } FILE_SEGMENT_ELEMENT,*PFILE_SEGMENT_ELEMENT; +#if NTDDI_VERSION >= NTDDI_WIN8 +#define FLUSH_FLAGS_FILE_DATA_ONLY 0x00000001 +#define FLUSH_FLAGS_NO_SYNC 0x00000002 +#endif +#if NTDDI_VERSION >= NTDDI_WIN10_RS1 +#define FLUSH_FLAGS_FILE_DATA_SYNC_ONLY 0x00000004 +#endif + typedef struct _REPARSE_GUID_DATA_BUFFER { DWORD ReparseTag; WORD ReparseDataLength; WORD Reserved; GUID ReparseGuid; struct { - BYTE DataBuffer[1]; + BYTE DataBuffer[1]; } GenericReparseBuffer; } REPARSE_GUID_DATA_BUFFER,*PREPARSE_GUID_DATA_BUFFER; @@ -5803,11 +6105,13 @@ __buildmemorybarrier() #define IO_REPARSE_TAG_RESERVED_ZERO (0) #define IO_REPARSE_TAG_RESERVED_ONE (1) +#define IO_REPARSE_TAG_RESERVED_TWO (2) -#define IO_REPARSE_TAG_RESERVED_RANGE IO_REPARSE_TAG_RESERVED_ONE +#define IO_REPARSE_TAG_RESERVED_RANGE IO_REPARSE_TAG_RESERVED_TWO #define IsReparseTagMicrosoft(_tag) (((_tag) & 0x80000000)) #define IsReparseTagNameSurrogate(_tag) (((_tag) & 0x20000000)) +#define IsReparseTagDirectory(_tag) (((_tag) & 0x10000000)) #define IO_REPARSE_TAG_MOUNT_POINT (__MSABI_LONG(0xA0000003)) #define IO_REPARSE_TAG_HSM (__MSABI_LONG(0xC0000004)) @@ -5853,23 +6157,53 @@ __buildmemorybarrier() #define IO_REPARSE_TAG_ONEDRIVE (__MSABI_LONG(0x80000021)) #define IO_REPARSE_TAG_PROJFS_TOMBSTONE (__MSABI_LONG(0xA0000022)) #define IO_REPARSE_TAG_AF_UNIX (__MSABI_LONG(0x80000023)) +#define IO_REPARSE_TAG_WCI_LINK (__MSABI_LONG(0xA0000027)) +#define IO_REPARSE_TAG_WCI_LINK_1 (__MSABI_LONG(0xA0001027)) +#define IO_REPARSE_TAG_DATALESS_CIM (__MSABI_LONG(0xA0000028)) -#if _WIN32_WINNT >= 0x0602 +#if _WIN32_WINNT >= _WIN32_WINNT_WIN8 #define SCRUB_DATA_INPUT_FLAG_RESUME 0x00000001 #define SCRUB_DATA_INPUT_FLAG_SKIP_IN_SYNC 0x00000002 #define SCRUB_DATA_INPUT_FLAG_SKIP_NON_INTEGRITY_DATA 0x00000004 - +#define SCRUB_DATA_INPUT_FLAG_IGNORE_REDUNDANCY 0x00000008 +#define SCRUB_DATA_INPUT_FLAG_SKIP_DATA 0x00000010 +#define SCRUB_DATA_INPUT_FLAG_SCRUB_BY_OBJECT_ID 0x00000020 +#if _WIN32_WINNT >= _WIN32_WINNT_WIN10_19H2 +#define SCRUB_DATA_INPUT_FLAG_OPLOCK_NOT_ACQUIRED 0x00000040 +#endif #define SCRUB_DATA_OUTPUT_FLAG_INCOMPLETE 0x00000001 #define SCRUB_DATA_OUTPUT_FLAG_NON_USER_DATA_RANGE 0x00010000 +#if _WIN32_WINNT >= _WIN32_WINNT_WINBLUE +#define SCRUB_DATA_OUTPUT_FLAG_PARITY_EXTENT_DATA_RETURNED 0x00020000 +#define SCRUB_DATA_OUTPUT_FLAG_RESUME_CONTEXT_LENGTH_SPECIFIED 0x00040000 +#endif typedef struct _SCRUB_DATA_INPUT { DWORD Size; DWORD Flags; DWORD MaximumIos; - DWORD Reserved[17]; - BYTE ResumeContext[816]; + DWORD ObjectId[4]; + DWORD Reserved[41]; + BYTE ResumeContext[1040]; } SCRUB_DATA_INPUT,*PSCRUB_DATA_INPUT; +#if _WIN32_WINNT >= _WIN32_WINNT_WINBLUE + + typedef struct _SCRUB_PARITY_EXTENT { + LONGLONG Offset; + ULONGLONG Length; + } SCRUB_PARITY_EXTENT, *PSCRUB_PARITY_EXTENT; + + typedef struct _SCRUB_PARITY_EXTENT_DATA { + WORD Size; + WORD Flags; + WORD NumberOfParityExtents; + WORD MaximumNumberOfParityExtents; + SCRUB_PARITY_EXTENT ParityExtents[ANYSIZE_ARRAY]; + } SCRUB_PARITY_EXTENT_DATA, *PSCRUB_PARITY_EXTENT_DATA; + +#endif /* _WIN32_WINNT >= _WIN32_WINNT_WINBLUE */ + typedef struct _SCRUB_DATA_OUTPUT { DWORD Size; DWORD Flags; @@ -5879,9 +6213,35 @@ __buildmemorybarrier() ULONGLONG NumberOfBytesRepaired; ULONGLONG NumberOfBytesFailed; ULONGLONG InternalFileReference; - DWORD Reserved[6]; - BYTE ResumeContext[816]; - } SCRUB_DATA_OUTPUT,*PSCRUB_DATA_OUTPUT; +#if _WIN32_WINNT >= _WIN32_WINNT_WINBLUE + WORD ResumeContextLength; + WORD ParityExtentDataOffset; + DWORD Reserved[9]; +#else + DWORD Reserved[10]; +#endif +#if _WIN32_WINNT >= _WIN32_WINNT_WIN10_RS5 + ULONGLONG NumberOfMetadataBytesProcessed; + ULONGLONG NumberOfDataBytesProcessed; + ULONGLONG TotalNumberOfMetadataBytesInUse; + ULONGLONG TotalNumberOfDataBytesInUse; +#else + ULONGLONG Reserved2[4]; +#endif +#if _WIN32_WINNT >= _WIN32_WINNT_WIN10_FE + ULONGLONG DataBytesSkippedDueToNoAllocation; + ULONGLONG DataBytesSkippedDueToInvalidRun; + ULONGLONG DataBytesSkippedDueToIntegrityStream; + ULONGLONG DataBytesSkippedDueToRegionBeingClean; + ULONGLONG DataBytesSkippedDueToLockConflict; + ULONGLONG DataBytesSkippedDueToNoScrubDataFlag; + ULONGLONG DataBytesSkippedDueToNoScrubNonIntegrityStreamFlag; + ULONGLONG DataBytesScrubbed; +#else + ULONGLONG Reserved3[8]; +#endif + BYTE ResumeContext[1040]; + } SCRUB_DATA_OUTPUT, *PSCRUB_DATA_OUTPUT; #endif #define IO_COMPLETION_MODIFY_STATE 0x0002 @@ -9972,6 +10332,7 @@ typedef struct _PROCESSOR_NUMBER { #define ACTIVATION_CONTEXT_SECTION_CLR_SURROGATES (9) #define ACTIVATION_CONTEXT_SECTION_APPLICATION_SETTINGS (10) #define ACTIVATION_CONTEXT_SECTION_COMPATIBILITY_INFO (11) +#define ACTIVATION_CONTEXT_SECTION_WINRT_ACTIVATABLE_CLASSES (12) #ifdef __cplusplus } -- 2.37.3
_______________________________________________ Mingw-w64-public mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
