1
0
mirror of https://github.com/momo5502/hypervisor.git synced 2025-09-03 07:27:25 +00:00

More irp implementation

This commit is contained in:
momo5502
2022-04-03 19:10:04 +02:00
parent 01ed54e8a2
commit 42c7f649f9
12 changed files with 271 additions and 4 deletions

View File

@@ -4,6 +4,8 @@
extern "C" {
#endif
// ----------------------------------------
NTKERNELAPI
_IRQL_requires_max_(APC_LEVEL)
_IRQL_requires_min_(PASSIVE_LEVEL)
@@ -14,6 +16,7 @@ KeGenericCallDpc(
_In_opt_ PVOID Context
);
// ----------------------------------------
NTKERNELAPI
_IRQL_requires_(DISPATCH_LEVEL)
@@ -23,6 +26,8 @@ KeSignalCallDpcDone(
_In_ PVOID SystemArgument1
);
// ----------------------------------------
NTKERNELAPI
_IRQL_requires_(DISPATCH_LEVEL)
_IRQL_requires_same_
@@ -31,6 +36,8 @@ KeSignalCallDpcSynchronize(
_In_ PVOID SystemArgument2
);
// ----------------------------------------
#if (NTDDI_VERSION < NTDDI_WIN8)
_Must_inspect_result_
_IRQL_requires_max_(DISPATCH_LEVEL)
@@ -46,6 +53,8 @@ MmAllocateContiguousNodeMemory(
);
#endif
// ----------------------------------------
NTSYSAPI
VOID
NTAPI
@@ -53,6 +62,60 @@ RtlCaptureContext(
_Out_ PCONTEXT ContextRecord
);
// ----------------------------------------
typedef struct _KAPC_STATE
{
LIST_ENTRY ApcListHead[MaximumMode];
struct _KPROCESS* Process;
BOOLEAN KernelApcInProgress;
BOOLEAN KernelApcPending;
BOOLEAN UserApcPending;
} KAPC_STATE, *PKAPC_STATE, *PRKAPC_STATE;
// ----------------------------------------
NTKERNELAPI
VOID
KeStackAttachProcess(
__inout PEPROCESS PROCESS,
__out PRKAPC_STATE ApcState
);
// ----------------------------------------
NTKERNELAPI
VOID
KeUnstackDetachProcess(
__in PRKAPC_STATE ApcState
);
// ----------------------------------------
NTKERNELAPI
NTSTATUS
PsLookupProcessByProcessId(
IN HANDLE ProcessId,
OUT PEPROCESS* Process
);
// ----------------------------------------
NTKERNELAPI
PVOID
PsGetProcessSectionBaseAddress(
__in PEPROCESS Process
);
// ----------------------------------------
NTKERNELAPI
PPEB
NTAPI
PsGetProcessPeb(
IN PEPROCESS Process
);
#ifdef __cplusplus
}
#endif