[XDK] Add definitions required for newer storage class drivers

Remove duplications in kefuncs and add missing NTKERNELAPI in iofuncs

CORE-17129
This commit is contained in:
Victor Perevertkin 2020-08-28 05:04:23 +03:00
parent 7c909cbc7c
commit 01eb9ba8de
No known key found for this signature in database
GPG key ID: C750B7222E9C7830
5 changed files with 116 additions and 131 deletions

View file

@ -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

View file

@ -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 {

View file

@ -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

View file

@ -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);

View file

@ -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;