View difference between Paste ID: kng6kSnZ and esKmjsZc
SHOW: | | - or go back to the newest paste.
1-
C:\Program Files (x86)\Windows Kits\10\Include\10.0.10586.0\km\ntddk.h got some updates:
1+
C:\Program Files (x86)\Windows Kits\10\Include\10.0.10586.0\km\ntifs.h got some updates:
2
3
4
#define SECURITY_USERMANAGER_ID_BASE_RID    (0x0000005DL)
5
#define SECURITY_USERMANAGER_ID_RID_COUNT   (6L)
6
7
#define SECURITY_WINRM_ID_BASE_RID    (0x0000005EL)
8
#define SECURITY_WINRM_ID_RID_COUNT   (6L)
9
10
typedef struct _SE_ADT_PARAMETER_ARRAY_EX {
11
12
    ULONG CategoryId;
13
    ULONG AuditId;
14
    ULONG Version;
15
    ULONG ParameterCount;
16
    ULONG Length;
17
    USHORT FlatSubCategoryId;
18-
/////
18+
19
    ULONG Flags;
20-
not sure why this was added now here:
20+
21
22
} SE_ADT_PARAMETER_ARRAY_EX, *PSE_ADT_PARAMETER_ARRAY_EX;
23
24-
// Page/memory priorities.
24+
// V2 Drops support for LM hash, but adds the credential key
25
typedef struct _MSV1_0_SUPPLEMENTAL_CREDENTIAL_V2 {
26
    ULONG Version;
27-
#define MEMORY_PRIORITY_LOWEST           0
27+
28-
#define MEMORY_PRIORITY_VERY_LOW         1
28+
    UCHAR NtPassword[MSV1_0_OWF_PASSWORD_LENGTH];
29-
#define MEMORY_PRIORITY_LOW              2
29+
    UCHAR CredentialKey[MSV1_0_OWF_PASSWORD_LENGTH];
30-
#define MEMORY_PRIORITY_MEDIUM           3
30+
} MSV1_0_SUPPLEMENTAL_CREDENTIAL_V2, *PMSV1_0_SUPPLEMENTAL_CREDENTIAL_V2;
31-
#define MEMORY_PRIORITY_BELOW_NORMAL     4
31+
32-
#define MEMORY_PRIORITY_NORMAL           5
32+
#if (_WIN32_WINNT >= _WIN32_WINNT_WINTHRESHOLD)
33
#define FSCTL_QUERY_VOLUME_CONTAINER_STATE       CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 228, METHOD_BUFFERED, FILE_ANY_ACCESS)
34-
/////////////
34+
#define FSCTL_SET_LAYER_ROOT                     CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 229, METHOD_BUFFERED, FILE_ANY_ACCESS) // CONTAINER_ROOT_INFO_INPUT CONTAINER_ROOT_INFO_OUTPUT
35
#endif
36
37
//  TODO_WIN32_WINNT_WIN10_TH2
38-
// Process mitigation policy information
38+
#if (_WIN32_WINNT >= _WIN32_WINNT_WINTHRESHOLD)
39-
//  NtSetInformationProcess using ProcessMitigationPolicy
39+
#define FSCTL_QUERY_DIRECT_ACCESS_EXTENTS        CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 230, METHOD_NEITHER, FILE_ANY_ACCESS)
40
#define FSCTL_NOTIFY_STORAGE_SPACE_ALLOCATION    CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 231, METHOD_BUFFERED, FILE_ANY_ACCESS)
41
#define FSCTL_SSDI_STORAGE_REQUEST               CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 232, METHOD_BUFFERED, FILE_ANY_ACCESS)
42
43-
typedef enum _PROCESS_MITIGATION_POLICY {
43+
44-
    ProcessControlFlowGuardPolicy,
44+
#define FILE_STORAGE_TIER_FLAG_PARITY             (0x00800000)
45-
    ProcessImageLoadPolicy
45+
46-
} PROCESS_MITIGATION_POLICY, *PPROCESS_MITIGATION_POLICY;
46+
#if (_WIN32_WINNT >= _WIN32_WINNT_WINTHRESHOLD)
47
48-
////////
48+
typedef struct _CONTAINER_VOLUME_STATE {
49
    ULONG Flags;
50
} CONTAINER_VOLUME_STATE, *PCONTAINER_VOLUME_STATE;
51-
// Known extended CPU state feature BITs
51+
52
#define CONTAINER_VOLUME_STATE_HOSTING_CONTAINER    (0x00000001)
53
54-
// 8    IPT                                 Supervisor
54+
55
typedef struct _CONTAINER_ROOT_INFO_INPUT {
56-
#define XSTATE_IPT                          (8)
56+
57
} CONTAINER_ROOT_INFO_INPUT, *PCONTAINER_ROOT_INFO_INPUT;
58-
#define XSTATE_MASK_IPT                     (1ui64 << (XSTATE_IPT))
58+
59
typedef struct _CONTAINER_ROOT_INFO_OUTPUT {
60
    USHORT ContainerRootIdLength;
61-
// Define legal values for the SystemCall member.
61+
    UCHAR ContainerRootId[ANYSIZE_ARRAY];
62
} CONTAINER_ROOT_INFO_OUTPUT, *PCONTAINER_ROOT_INFO_OUTPUT;
63
64-
#define SYSTEM_CALL_SYSCALL 0
64+
#define CONTAINER_ROOT_INFO_FLAG_SCRATCH_ROOT       (0x00000001)
65-
#define SYSTEM_CALL_INT_2E  1
65+
#define CONTAINER_ROOT_INFO_FLAG_LAYER_ROOT         (0x00000002)
66
67-
//////
67+
68
69
//
70
//  Tag allocated to DropBox for HSM
71-
// On AMD64, this value is initialized to a nonzero value if the system
71+
//  GUID: C5BB0F16-68E9-4456-B6B9-5F5EE5F89965
72-
// operates with an altered view of the system service call mechanism.
72+
73
74
#define IO_REPARSE_TAG_DROPBOX_HSM              (0x00000044L)
75-
ULONG SystemCall;
75+
76
77
typedef enum _SharedVirtualDiskSupportType
78-
// Reserved, available for reuse.
78+
{
79
//
80
    // The target device supports Continuous Data
81-
ULONG SystemCallPad0;
81+
    // Protection (log based) snapshots.
82-
ULONGLONG SystemCallPad[2];
82+
83
    SharedVirtualDiskCDPSnapshotsSupported = 7
84
} SharedVirtualDiskSupportType;
85-
    // A bitmask of enclave features supported on this system.
85+
86
#if (NTDDI_VERSION >= NTDDI_WINTHRESHOLD)
87-
    
87+
88-
    ULONG EnclaveFeatureMask[4];
88+
VOID
89
SeAuditFipsCryptoSelftests(
90
    _In_ BOOLEAN bSuccess,
91-
// Assembler logic assumes a zero value for syscall and a nonzero value for
91+
    _In_ ULONG SelftestCode
92-
// int 2e, and that no other values exist presently for the SystemCall field.
92+
93
#endif
94
95-
C_ASSERT(SYSTEM_CALL_SYSCALL == 0);
95+
96-
C_ASSERT(SYSTEM_CALL_INT_2E == 1);
96+
//  Registration version post threshold.
97
//
98
#define FSRTL_UNC_REGISTRATION_VERSION_0201  0x0201
99-
C_ASSERT(FIELD_OFFSET(KUSER_SHARED_DATA, SystemCall) == 0x308);
99+
100-
C_ASSERT(FIELD_OFFSET(KUSER_SHARED_DATA, SystemCallPad0) == 0x30c);
100+
101-
C_ASSERT(FIELD_OFFSET(KUSER_SHARED_DATA, SystemCallPad) == 0x310);
101+
102
//
103-
C_ASSERT(FIELD_OFFSET(KUSER_SHARED_DATA, EnclaveFeatureMask) == 0x36c);
103+
//  FSRTL_UNC_REGISTRATION_VERSION_0201 is available in post threshold only.
104-
C_ASSERT(FIELD_OFFSET(KUSER_SHARED_DATA, Reserved8) == 0x37c);
104+
//  Change NTDDI_WINTHRESHOLD to appropriate value when new
105
//  version is avaialble.
106
//
107-
Silo functions now at DISPATCH_LEVEL not APC_LEVEL:
107+
#if (NTDDI_VERSION >= NTDDI_WINTHRESHOLD)    /* ABRACADABRA_THRESHOLD */
108
109-
_IRQL_requires_max_(DISPATCH_LEVEL)
109+
#define FSRTL_UNC_REGISTRATION_CURRENT_VERSION FSRTL_UNC_REGISTRATION_VERSION_0201  // Current version is 2.1
110
111-
PESILO
111+
#elif (NTDDI_VERSION >= NTDDI_WINBLUE)    /* ABRACADABRA_THRESHOLD */
112-
PsGetCurrentServerSilo(
112+
113-
    VOID
113+
#define FSRTL_UNC_REGISTRATION_CURRENT_VERSION FSRTL_UNC_REGISTRATION_VERSION_0200  // Current version is 2.0
114
115
#endif
116-
/////////
116+
117
#if (NTDDI_VERSION >= NTDDI_THRESHOLD)
118-
#if (NTDDI_VERSION >= NTDDI_WIN10)
118+
119
#define ATOMIC_CREATE_ECP_IN_FLAG_SPARSE_SPECIFIED          0x0001
120-
NTSTATUS
120+
#define ATOMIC_CREATE_ECP_IN_FLAG_REPARSE_POINT_SPECIFIED   0x0002
121-
IoVolumeDeviceNameToGuid(
121+
#define ATOMIC_CREATE_ECP_IN_FLAG_EOF_SPECIFIED             0x0004
122-
    _In_  PUNICODE_STRING VolumeDeviceName,
122+
#define ATOMIC_CREATE_ECP_IN_FLAG_VDL_SPECIFIED             0x0008
123-
    _Out_ GUID            *Guid
123+
#define ATOMIC_CREATE_ECP_IN_FLAG_OPERATION_MASK            0x00ff
124
125
#define ATOMIC_CREATE_ECP_IN_FLAG_BEST_EFFORT               0x0100
126
127-
#if (NTDDI_VERSION >= NTDDI_WIN10)
127+
#define ATOMIC_CREATE_ECP_OUT_FLAG_SPARSE_SET               0x0001
128-
_Must_inspect_result_
128+
#define ATOMIC_CREATE_ECP_OUT_FLAG_REPARSE_POINT_SET        0x0002
129
#define ATOMIC_CREATE_ECP_OUT_FLAG_EOF_SET                  0x0004
130-
NTSTATUS
130+
#define ATOMIC_CREATE_ECP_OUT_FLAG_VDL_SET                  0x0008
131-
IoVolumeDeviceNameToGuidPath(
131+
#define ATOMIC_CREATE_ECP_OUT_FLAG_OPERATION_MASK           0x00ff
132-
    _In_  PUNICODE_STRING VolumeDeviceName,
132+
133-
    _Out_ _At_(GuidPath->Buffer, 
133+
typedef struct _ATOMIC_CREATE_ECP_CONTEXT {
134-
            __drv_allocatesMem(Mem)
134+
135-
            _Post_notnull_)
135+
136-
          PUNICODE_STRING GuidPath
136+
    //  Size of this context structure.
137
    //
138
139
    USHORT Size;
140-
////
140+
141
    //
142-
typedef struct _IO_FOEXT_SILO_PARAMETERS {
142+
    //  ATOMIC_CREATE_ECP_IN_FLAG_xxx flags.
143
    //
144
145-
    PESILO SiloContext;
145+
    USHORT InFlags;
146
147-
} IO_FOEXT_SILO_PARAMETERS, *PIO_FOEXT_SILO_PARAMETERS;
147+
148
    //  ATOMIC_CREATE_ECP_OUT_FLAG_xxx flags.
149
    //
150-
PIO_FOEXT_SILO_PARAMETERS
150+
151-
IoGetSiloParameters (
151+
    USHORT OutFlags;
152-
    _In_ PFILE_OBJECT FileObject
152+
153
    //
154
    //  Size of the ReparseBuffer below.
155
    //
156-
//////////
156+
    //  This can't exceed MAXIMUM_REPARSE_DATA_BUFFER_SIZE (16K).
157
    //
158-
typedef enum _HAL_SET_INFORMATION_CLASS {
158+
159-
HalSetResetParkDisposition,        // Set whether to park processors on reset (LOGICAL)
159+
    USHORT ReparseBufferLength;
160-
} HAL_SET_INFORMATION_CLASS, *PHAL_SET_INFORMATION_CLASS;
160+
161
    //
162
    //  Optional REPARSE_DATA_BUFFER or REPARSE_GUID_DATA_BUFFER.
163
    //
164
165
    _Field_size_bytes_opt_(ReparseBufferLength) PREPARSE_DATA_BUFFER ReparseBuffer;
166
167
    //
168
    //  Optional file size.
169
    //
170
171
    LONGLONG FileSize;
172
173
    //
174
    //  Optional valid data length.
175
    //
176
177
    LONGLONG ValidDataLength;
178
179
} ATOMIC_CREATE_ECP_CONTEXT, *PATOMIC_CREATE_ECP_CONTEXT;
180
181
//
182
//  The GUID used for the ATOMIC_CREATE_ECP_CONTEXT structure.
183
//
184
//  {4720bd83-52ac-4104-a130-d1ec6a8cc8e5}
185
//
186
187
DEFINE_GUID( GUID_ECP_ATOMIC_CREATE,
188
             0x4720bd83,
189
             0x52ac,
190
             0x4104,
191
             0xa1, 0x30, 0xd1, 0xec, 0x6a, 0x8c, 0xc8, 0xe5 );
192
193
#endif
194
195
196
typedef struct _SEC_TOKEN_BINDING {
197
    unsigned char MajorVersion;                 // Supported major version of the Token Binding protocol
198
    unsigned char MinorVersion;                 // Supported minor version of the Token Binding protocol
199
    unsigned short KeyParametersSize;           // Size in bytes of the Token Binding key parameter IDs array
200
    unsigned char KeyParameters[ANYSIZE_ARRAY]; // Token Binding key parameter IDs, most preferred first
201
} SEC_TOKEN_BINDING, *PSEC_TOKEN_BINDING;