86 StackAddress = (
ULONG_PTR)(&StackAddress);
92 if ((StackAddress < *LowLimit) || (StackAddress > *
HighLimit))
99 (StackAddress <= DpcStack) &&
164 return Thread->ThreadsProcess;
195 ULONG NextEntryOffset;
197 ULONG ComputedLength;
228 if (NextEntryOffset == 0)
246 if ((
LONG)NextEntryOffset < 0)
320 if (!
Irp->Tail.Overlay.Thread)
322 DPRINT1(
"IoSetHardErrorOrVerifyDevice(0x%p, 0x%p): IRP has no thread, ignoring.\n",
BOOLEAN NTAPI IoIsSystemThread(IN PETHREAD Thread)
#define KeGetCurrentIrql()
NTSTATUS NTAPI IoCheckFunctionAccess(IN ACCESS_MASK GrantedAccess, IN UCHAR MajorFunction, IN UCHAR MinorFunction, IN ULONG IoControlCode, IN PVOID ExtraData OPTIONAL, IN PVOID ExtraData2 OPTIONAL)
_Out_ PULONG_PTR HighLimit
NTSTATUS NTAPI IoValidateDeviceIoControlAccess(IN PIRP Irp, IN ULONG RequiredAccess)
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG _In_ ACCESS_MASK DesiredAccess
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG _In_ FS_INFORMATION_CLASS FsInformationClass
_In_ ULONG _In_ ULONG _In_ ULONG Length
#define PsGetCurrentThread()
struct _FILE_FULL_EA_INFORMATION * PFILE_FULL_EA_INFORMATION
_In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Out_ PIO_STATUS_BLOCK _In_opt_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _In_ ULONG _In_ ULONG _In_opt_ PVOID EaBuffer
FORCEINLINE struct _KPRCB * KeGetCurrentPrcb(VOID)
BOOLEAN NTAPI PsIsSystemThread(IN PETHREAD Thread)
VOID NTAPI IoAcquireCancelSpinLock(OUT PKIRQL Irql)
PDEVICE_OBJECT NTAPI IoGetDeviceToVerify(IN PETHREAD Thread)
#define OBJECT_TO_OBJECT_HEADER(o)
PEPROCESS NTAPI IoThreadToProcess(IN PETHREAD Thread)
_In_ PDEVICE_OBJECT DeviceObject
return STATUS_NOT_IMPLEMENTED
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
NTSTATUS NTAPI IoComputeDesiredAccessFileObject(IN PFILE_OBJECT FileObject, IN PACCESS_MASK DesiredAccess)
_In_ UCHAR _In_ UCHAR MinorFunction
NTSTATUS NTAPI IoCheckEaBufferValidity(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
enum _FSINFOCLASS FS_INFORMATION_CLASS
PVOID NTAPI IoGetInitialStack(VOID)
#define STATUS_OBJECT_TYPE_MISMATCH
PEPROCESS NTAPI IoGetCurrentProcess(VOID)
IN PVCB IN PDIRENT OUT PULONG EaLength
NTSTATUS NTAPI IoCheckDesiredAccess(IN OUT PACCESS_MASK DesiredAccess, IN ACCESS_MASK GrantedAccess)
VOID FASTCALL KeReleaseQueuedSpinLock(IN KSPIN_LOCK_QUEUE_NUMBER LockNumber, IN KIRQL OldIrql)
_In_opt_ PFILE_OBJECT _In_opt_ PETHREAD Thread
#define STATUS_ACCESS_DENIED
#define KERNEL_STACK_SIZE
_In_ ULONG RequiredAccess
_In_ WDFREQUEST _In_ size_t _In_ size_t _In_ ULONG IoControlCode
PDEVICE_OBJECT DeviceToVerify
OBJECT_TYPE_INITIALIZER TypeInfo
VOID NTAPI RtlpGetStackLimits(PULONG_PTR StackBase, PULONG_PTR StackLimit)
POBJECT_TYPE IoFileObjectType
KIRQL FASTCALL KeAcquireQueuedSpinLock(IN KSPIN_LOCK_QUEUE_NUMBER LockNumber)
VOID NTAPI IoReleaseCancelSpinLock(IN KIRQL Irql)
#define STATUS_EA_LIST_INCONSISTENT
GENERIC_MAPPING GenericMapping
#define FIELD_OFFSET(t, f)
VOID NTAPI IoGetStackLimits(OUT PULONG_PTR LowLimit, OUT PULONG_PTR HighLimit)
ACCESS_MASK * PACCESS_MASK
#define ALIGN_UP_BY(size, align)
VOID NTAPI IoSetHardErrorOrVerifyDevice(IN PIRP Irp, IN PDEVICE_OBJECT DeviceObject)
_In_ PSECURITY_SUBJECT_CONTEXT _In_ BOOLEAN _In_ ACCESS_MASK _In_ ACCESS_MASK _Outptr_opt_ PPRIVILEGE_SET _In_ PGENERIC_MAPPING _In_ KPROCESSOR_MODE _Out_ PACCESS_MASK GrantedAccess
VOID NTAPI IoSetDeviceToVerify(IN PETHREAD Thread, IN PDEVICE_OBJECT DeviceObject)
NTSYSAPI VOID NTAPI RtlMapGenericMask(PACCESS_MASK AccessMask, PGENERIC_MAPPING GenericMapping)
NTSTATUS NTAPI IoCheckQuerySetVolumeInformation(IN FS_INFORMATION_CLASS FsInformationClass, IN ULONG Length, IN BOOLEAN SetOperation)
BOOLEAN NTAPI IoIsWdmVersionAvailable(IN UCHAR MajorVersion, IN UCHAR MinorVersion)
PULONG MinorVersion OPTIONAL