https://git.reactos.org/?p=reactos.git;a=commitdiff;h=01eb9ba8de4bed03cd670…
commit 01eb9ba8de4bed03cd67049b158acb3faec5dc8b
Author: Victor Perevertkin <victor.perevertkin(a)reactos.org>
AuthorDate: Fri Aug 28 05:04:23 2020 +0300
Commit: Victor Perevertkin <victor.perevertkin(a)reactos.org>
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;