https://git.reactos.org/?p=reactos.git;a=commitdiff;h=01eb9ba8de4bed03cd67049b158acb3faec5dc8b

commit 01eb9ba8de4bed03cd67049b158acb3faec5dc8b
Author:     Victor Perevertkin <[email protected]>
AuthorDate: Fri Aug 28 05:04:23 2020 +0300
Commit:     Victor Perevertkin <[email protected]>
CommitDate: Fri Aug 28 05:04:23 2020 +0300

    [XDK] Add definitions required for newer storage class drivers
    Remove duplications in kefuncs and add missing NTKERNELAPI in iofuncs
    
    CORE-17129
---
 sdk/include/xdk/iofuncs.h  |  42 ++++++++++
 sdk/include/xdk/iotypes.h  |   7 +-
 sdk/include/xdk/kefuncs.h  | 191 +++++++++++++++------------------------------
 sdk/include/xdk/potypes.h  |   1 +
 sdk/include/xdk/rtltypes.h |   6 +-
 5 files changed, 116 insertions(+), 131 deletions(-)

diff --git a/sdk/include/xdk/iofuncs.h b/sdk/include/xdk/iofuncs.h
index 7fb9a3b4ea9..3299e53632a 100644
--- a/sdk/include/xdk/iofuncs.h
+++ b/sdk/include/xdk/iofuncs.h
@@ -2332,22 +2332,26 @@ IoSetShareAccessEx(
   _Out_ PSHARE_ACCESS ShareAccess,
   _In_ PBOOLEAN WritePermission);
 
+NTKERNELAPI
 ULONG
 NTAPI
 IoSizeofWorkItem(VOID);
 
+NTKERNELAPI
 VOID
 NTAPI
 IoInitializeWorkItem(
   _In_ PVOID IoObject,
   _Out_ PIO_WORKITEM IoWorkItem);
 
+NTKERNELAPI
 VOID
 NTAPI
 IoUninitializeWorkItem(
   _Inout_ PIO_WORKITEM IoWorkItem);
 
 _IRQL_requires_max_(DISPATCH_LEVEL)
+NTKERNELAPI
 VOID
 NTAPI
 IoQueueWorkItemEx(
@@ -2356,17 +2360,20 @@ IoQueueWorkItemEx(
   _In_ WORK_QUEUE_TYPE QueueType,
   _In_opt_ __drv_aliasesMem PVOID Context);
 
+NTKERNELAPI
 IO_PRIORITY_HINT
 NTAPI
 IoGetIoPriorityHint(
   _In_ PIRP Irp);
 
+NTKERNELAPI
 NTSTATUS
 NTAPI
 IoSetIoPriorityHint(
   _In_ PIRP Irp,
   _In_ IO_PRIORITY_HINT PriorityHint);
 
+NTKERNELAPI
 NTSTATUS
 NTAPI
 IoAllocateSfioStreamIdentifier(
@@ -2381,6 +2388,7 @@ IoGetSfioStreamIdentifier(
   _In_ PFILE_OBJECT FileObject,
   _In_ PVOID Signature);
 
+NTKERNELAPI
 NTSTATUS
 NTAPI
 IoFreeSfioStreamIdentifier(
@@ -2437,6 +2445,7 @@ IoUpdateDiskGeometry(
   _In_ struct _DISK_GEOMETRY_EX* OldDiskGeometry,
   _In_ struct _DISK_GEOMETRY_EX* NewDiskGeometry);
 
+NTKERNELAPI
 PTXN_PARAMETER_BLOCK
 NTAPI
 IoGetTransactionParameterBlock(
@@ -2462,23 +2471,27 @@ IoCreateFileEx(
   _In_ ULONG Options,
   _In_opt_ PIO_DRIVER_CREATE_CONTEXT DriverContext);
 
+NTKERNELAPI
 NTSTATUS
 NTAPI
 IoSetIrpExtraCreateParameter(
   _Inout_ PIRP Irp,
   _In_ struct _ECP_LIST *ExtraCreateParameter);
 
+NTKERNELAPI
 VOID
 NTAPI
 IoClearIrpExtraCreateParameter(
   _Inout_ PIRP Irp);
 
+NTKERNELAPI
 NTSTATUS
 NTAPI
 IoGetIrpExtraCreateParameter(
   _In_ PIRP Irp,
   _Outptr_result_maybenull_ struct _ECP_LIST **ExtraCreateParameter);
 
+NTKERNELAPI
 BOOLEAN
 NTAPI
 IoIsFileObjectIgnoringSharing(
@@ -2594,6 +2607,35 @@ IoReplaceFileObjectName(
 $endif (_NTIFS_)
 #endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
 
+#if (NTDDI_VERSION >= NTDDI_WIN8)
+_IRQL_requires_max_(PASSIVE_LEVEL)
+_Must_inspect_result_
+NTKERNELAPI
+NTSTATUS
+IoSetDeviceInterfacePropertyData(
+  _In_ PUNICODE_STRING SymbolicLinkName,
+  _In_ CONST DEVPROPKEY *PropertyKey,
+  _In_ LCID Lcid,
+  _In_ ULONG Flags,
+  _In_ DEVPROPTYPE Type,
+  _In_ ULONG Size,
+  _In_reads_bytes_opt_(Size) PVOID Data);
+
+_IRQL_requires_max_(PASSIVE_LEVEL)
+_Must_inspect_result_
+NTKERNELAPI
+NTSTATUS
+IoGetDeviceInterfacePropertyData (
+  _In_ PUNICODE_STRING SymbolicLinkName,
+  _In_ CONST DEVPROPKEY *PropertyKey,
+  _In_ LCID Lcid,
+  _Reserved_ ULONG Flags,
+  _In_ ULONG Size,
+  _Out_writes_bytes_to_(Size, *RequiredSize) PVOID Data,
+  _Out_ PULONG RequiredSize,
+  _Out_ PDEVPROPTYPE Type);
+#endif /* (NTDDI_VERSION >= NTDDI_WIN8) */
+
 $if (_WDMDDK_)
 #if defined(_WIN64)
 NTKERNELAPI
diff --git a/sdk/include/xdk/iotypes.h b/sdk/include/xdk/iotypes.h
index 5a40a71f6a5..d53d9371532 100644
--- a/sdk/include/xdk/iotypes.h
+++ b/sdk/include/xdk/iotypes.h
@@ -246,6 +246,8 @@ $if (_WDMDDK_)
 #define FILE_CHARACTERISTIC_PNP_DEVICE    0x00000800
 #define FILE_CHARACTERISTIC_TS_DEVICE     0x00001000
 #define FILE_CHARACTERISTIC_WEBDAV_DEVICE 0x00002000
+#define FILE_PORTABLE_DEVICE              0x00004000
+#define FILE_DEVICE_ALLOW_APPCONTAINER_TRAVERSAL 0x00020000
 
 /* DEVICE_OBJECT.AlignmentRequirement */
 #define FILE_BYTE_ALIGNMENT             0x00000000
@@ -1134,7 +1136,10 @@ typedef enum _DEVICE_USAGE_NOTIFICATION_TYPE {
   DeviceUsageTypeUndefined,
   DeviceUsageTypePaging,
   DeviceUsageTypeHibernation,
-  DeviceUsageTypeDumpFile
+  DeviceUsageTypeDumpFile,
+  DeviceUsageTypeBoot,
+  DeviceUsageTypePostDisplay,
+  DeviceUsageTypeGuestAssigned,
 } DEVICE_USAGE_NOTIFICATION_TYPE;
 
 typedef struct _POWER_SEQUENCE {
diff --git a/sdk/include/xdk/kefuncs.h b/sdk/include/xdk/kefuncs.h
index aa8597b56fe..2cfe56348b0 100644
--- a/sdk/include/xdk/kefuncs.h
+++ b/sdk/include/xdk/kefuncs.h
@@ -1200,67 +1200,6 @@ KeDeregisterProcessorChangeCallback(
 $endif (_WDMDDK_)
 $if (_WDMDDK_ || _NTDDK_)
 #if (NTDDI_VERSION >= NTDDI_WIN7)
-$endif (_WDMDDK_ || _NTDDK_)
-
-$if (_WDMDDK_)
-_IRQL_requires_max_(DISPATCH_LEVEL)
-_IRQL_requires_min_(PASSIVE_LEVEL)
-_IRQL_requires_same_
-ULONG64
-NTAPI
-KeQueryTotalCycleTimeProcess(
-  _Inout_ PKPROCESS Process,
-  _Out_ PULONG64 CycleTimeStamp);
-
-_IRQL_requires_max_(APC_LEVEL)
-_IRQL_requires_min_(PASSIVE_LEVEL)
-_IRQL_requires_same_
-ULONG64
-NTAPI
-KeQueryTotalCycleTimeThread(
-  _Inout_ PKTHREAD Thread,
-  _Out_ PULONG64 CycleTimeStamp);
-
-_Must_inspect_result_
-NTKERNELAPI
-NTSTATUS
-NTAPI
-KeSetTargetProcessorDpcEx(
-  _Inout_ PKDPC Dpc,
-  _In_ PPROCESSOR_NUMBER ProcNumber);
-
-_IRQL_requires_min_(PASSIVE_LEVEL)
-_IRQL_requires_max_(APC_LEVEL)
-NTKERNELAPI
-VOID
-NTAPI
-KeSetSystemGroupAffinityThread(
-  _In_ PGROUP_AFFINITY Affinity,
-  _Out_opt_ PGROUP_AFFINITY PreviousAffinity);
-
-_IRQL_requires_min_(PASSIVE_LEVEL)
-_IRQL_requires_max_(APC_LEVEL)
-NTKERNELAPI
-VOID
-NTAPI
-KeRevertToUserGroupAffinityThread(
-  _In_ PGROUP_AFFINITY PreviousAffinity);
-
-_IRQL_requires_max_(DISPATCH_LEVEL)
-NTKERNELAPI
-BOOLEAN
-NTAPI
-KeSetCoalescableTimer(
-  _Inout_ PKTIMER Timer,
-  _In_ LARGE_INTEGER DueTime,
-  _In_ ULONG Period,
-  _In_ ULONG TolerableDelay,
-  _In_opt_ PKDPC Dpc);
-
-NTKERNELAPI
-ULONGLONG
-NTAPI
-KeQueryUnbiasedInterruptTime(VOID);
 
 NTKERNELAPI
 ULONG
@@ -1330,6 +1269,68 @@ KeQueryLogicalProcessorRelationship(
   _Out_writes_bytes_opt_(*Length) PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX 
Information,
   _Inout_ PULONG Length);
 
+$endif (_WDMDDK_ || _NTDDK_)
+
+$if (_WDMDDK_)
+_IRQL_requires_max_(DISPATCH_LEVEL)
+_IRQL_requires_min_(PASSIVE_LEVEL)
+_IRQL_requires_same_
+ULONG64
+NTAPI
+KeQueryTotalCycleTimeProcess(
+  _Inout_ PKPROCESS Process,
+  _Out_ PULONG64 CycleTimeStamp);
+
+_IRQL_requires_max_(APC_LEVEL)
+_IRQL_requires_min_(PASSIVE_LEVEL)
+_IRQL_requires_same_
+ULONG64
+NTAPI
+KeQueryTotalCycleTimeThread(
+  _Inout_ PKTHREAD Thread,
+  _Out_ PULONG64 CycleTimeStamp);
+
+_Must_inspect_result_
+NTKERNELAPI
+NTSTATUS
+NTAPI
+KeSetTargetProcessorDpcEx(
+  _Inout_ PKDPC Dpc,
+  _In_ PPROCESSOR_NUMBER ProcNumber);
+
+_IRQL_requires_min_(PASSIVE_LEVEL)
+_IRQL_requires_max_(APC_LEVEL)
+NTKERNELAPI
+VOID
+NTAPI
+KeSetSystemGroupAffinityThread(
+  _In_ PGROUP_AFFINITY Affinity,
+  _Out_opt_ PGROUP_AFFINITY PreviousAffinity);
+
+_IRQL_requires_min_(PASSIVE_LEVEL)
+_IRQL_requires_max_(APC_LEVEL)
+NTKERNELAPI
+VOID
+NTAPI
+KeRevertToUserGroupAffinityThread(
+  _In_ PGROUP_AFFINITY PreviousAffinity);
+
+_IRQL_requires_max_(DISPATCH_LEVEL)
+NTKERNELAPI
+BOOLEAN
+NTAPI
+KeSetCoalescableTimer(
+  _Inout_ PKTIMER Timer,
+  _In_ LARGE_INTEGER DueTime,
+  _In_ ULONG Period,
+  _In_ ULONG TolerableDelay,
+  _In_opt_ PKDPC Dpc);
+
+NTKERNELAPI
+ULONGLONG
+NTAPI
+KeQueryUnbiasedInterruptTime(VOID);
+
 _Must_inspect_result_
 _IRQL_requires_max_(DISPATCH_LEVEL)
 _Ret_range_(<=, 0)
@@ -1363,74 +1364,6 @@ KeGetProcessorIndexFromNumber(
   _In_ PPROCESSOR_NUMBER ProcNumber);
 $endif (_WDMDDK_)
 $if (_NTDDK_)
-NTKERNELAPI
-ULONG
-NTAPI
-KeQueryActiveProcessorCountEx(
-  _In_ USHORT GroupNumber);
-
-NTKERNELAPI
-ULONG
-NTAPI
-KeQueryMaximumProcessorCountEx(
-  _In_ USHORT GroupNumber);
-
-NTKERNELAPI
-USHORT
-NTAPI
-KeQueryActiveGroupCount(VOID);
-
-NTKERNELAPI
-USHORT
-NTAPI
-KeQueryMaximumGroupCount(VOID);
-
-NTKERNELAPI
-KAFFINITY
-NTAPI
-KeQueryGroupAffinity(
-  _In_ USHORT GroupNumber);
-
-NTKERNELAPI
-ULONG
-NTAPI
-KeGetCurrentProcessorNumberEx(
-  _Out_opt_ PPROCESSOR_NUMBER ProcNumber);
-
-NTKERNELAPI
-VOID
-NTAPI
-KeQueryNodeActiveAffinity(
-  _In_ USHORT NodeNumber,
-  _Out_opt_ PGROUP_AFFINITY Affinity,
-  _Out_opt_ PUSHORT Count);
-
-NTKERNELAPI
-USHORT
-NTAPI
-KeQueryNodeMaximumProcessorCount(
-  _In_ USHORT NodeNumber);
-
-NTKERNELAPI
-USHORT
-NTAPI
-KeQueryHighestNodeNumber(VOID);
-
-NTKERNELAPI
-USHORT
-NTAPI
-KeGetCurrentNodeNumber(VOID);
-
-_IRQL_requires_max_(DISPATCH_LEVEL)
-NTKERNELAPI
-NTSTATUS
-NTAPI
-KeQueryLogicalProcessorRelationship(
-  _In_opt_ PPROCESSOR_NUMBER ProcessorNumber,
-  _In_ LOGICAL_PROCESSOR_RELATIONSHIP RelationshipType,
-  _Out_writes_bytes_opt_(*Length) PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX 
Information,
-  _Inout_ PULONG Length);
-
 _IRQL_requires_max_(APC_LEVEL)
 NTKERNELAPI
 NTSTATUS
diff --git a/sdk/include/xdk/potypes.h b/sdk/include/xdk/potypes.h
index c720d260d87..43ee700c8bb 100644
--- a/sdk/include/xdk/potypes.h
+++ b/sdk/include/xdk/potypes.h
@@ -294,6 +294,7 @@ DEFINE_GUID(GUID_CONSOLE_DISPLAY_STATE, 0x6fe69556, 0x704a, 
0x47a0, 0x8f, 0x24,
 DEFINE_GUID(GUID_ALLOW_DISPLAY_REQUIRED, 0xA9CEB8DA, 0xCD46, 0x44FB, 0xA9, 
0x8B, 0x02, 0xAF, 0x69, 0xDE, 0x46, 0x23);
 DEFINE_GUID(GUID_DISK_SUBGROUP, 0x0012EE47, 0x9041, 0x4B5D, 0x9B, 0x77, 0x53, 
0x5F, 0xBA, 0x8B, 0x14, 0x42);
 DEFINE_GUID(GUID_DISK_POWERDOWN_TIMEOUT, 0x6738E2C4, 0xE8A5, 0x4A42, 0xB1, 
0x6A, 0xE0, 0x40, 0xE7, 0x69, 0x75, 0x6E);
+DEFINE_GUID(GUID_DISK_IDLE_TIMEOUT, 0x58E39BA8, 0xB8E6, 0x4EF6, 0x90, 0xD0, 
0x89, 0xAE, 0x32, 0xB2, 0x58, 0xD6);
 DEFINE_GUID(GUID_DISK_BURST_IGNORE_THRESHOLD, 0x80e3c60e, 0xbb94, 0x4ad8, 
0xbb, 0xe0, 0x0d, 0x31, 0x95, 0xef, 0xc6, 0x63);
 DEFINE_GUID(GUID_DISK_ADAPTIVE_POWERDOWN, 0x396A32E1, 0x499A, 0x40B2, 0x91, 
0x24, 0xA9, 0x6A, 0xFE, 0x70, 0x76, 0x67);
 DEFINE_GUID(GUID_SLEEP_SUBGROUP, 0x238C9FA8, 0x0AAD, 0x41ED, 0x83, 0xF4, 0x97, 
0xBE, 0x24, 0x2C, 0x8F, 0x20);
diff --git a/sdk/include/xdk/rtltypes.h b/sdk/include/xdk/rtltypes.h
index 51190a204d9..527d3ed67ce 100644
--- a/sdk/include/xdk/rtltypes.h
+++ b/sdk/include/xdk/rtltypes.h
@@ -21,6 +21,9 @@ $if (_WDMDDK_)
 #define RTL_QUERY_REGISTRY_NOEXPAND       0x00000010
 #define RTL_QUERY_REGISTRY_DIRECT         0x00000020
 #define RTL_QUERY_REGISTRY_DELETE         0x00000040
+#define RTL_QUERY_REGISTRY_TYPECHECK      0x00000100
+
+#define RTL_QUERY_REGISTRY_TYPECHECK_SHIFT 24
 
 #define HASH_STRING_ALGORITHM_DEFAULT     0
 #define HASH_STRING_ALGORITHM_X65599      1
@@ -40,13 +43,14 @@ _Function_class_(RTL_QUERY_REGISTRY_ROUTINE)
 _IRQL_requires_max_(PASSIVE_LEVEL)
 _IRQL_requires_same_
 typedef NTSTATUS
-(NTAPI *PRTL_QUERY_REGISTRY_ROUTINE)(
+(NTAPI RTL_QUERY_REGISTRY_ROUTINE)(
   _In_z_ PWSTR ValueName,
   _In_ ULONG ValueType,
   _In_reads_bytes_opt_(ValueLength) PVOID ValueData,
   _In_ ULONG ValueLength,
   _In_opt_ PVOID Context,
   _In_opt_ PVOID EntryContext);
+typedef RTL_QUERY_REGISTRY_ROUTINE *PRTL_QUERY_REGISTRY_ROUTINE;
 
 typedef struct _RTL_QUERY_REGISTRY_TABLE {
   PRTL_QUERY_REGISTRY_ROUTINE QueryRoutine;

Reply via email to