#include <ntos.h>
#include <zwapi.h>
#include "vdmp.h"
Go to the source code of this file.
Defines | |
#define | VDM_HWINT_INCREMENT EVENT_INCREMENT |
Functions | |
VOID | VdmpQueueIntApcRoutine (IN PKAPC Apc, IN PKNORMAL_ROUTINE *NormalRoutine, IN PVOID *NormalContext, IN PVOID *SystemArgument1, IN PVOID *SystemArgument2) |
VOID | VdmpQueueIntNormalRoutine (IN PVOID NormalContext, IN PVOID SystemArgument1, IN PVOID SystemArgument2) |
VOID | VdmpDelayIntDpcRoutine (IN PKDPC Dpc, IN PVOID DeferredContext, IN PVOID SystemArgument1, IN PVOID SystemArgument2) |
VOID | VdmpDelayIntApcRoutine (IN PKAPC Apc, IN PKNORMAL_ROUTINE *NormalRoutine, IN PVOID *NormalContext, IN PVOID *SystemArgument1, IN PVOID *SystemArgument2) |
int | RestartDelayedInterrupts (PVDMICAUSERDATA pIcaUserData) |
int | IcaScan (PVDMICAUSERDATA pIcaUserData, PVDMVIRTUALICA pIcaAdapter) |
int | IcaAccept (PVDMICAUSERDATA pIcaUserData, PVDMVIRTUALICA pIcaAdapter) |
ULONG | GetIretHookAddress (PKTRAP_FRAME TrapFrame, PVDMICAUSERDATA pIcaUserData, int IrqNum) |
VOID | PushRmInterrupt (PKTRAP_FRAME TrapFrame, ULONG IretHookAddress, PVDM_TIB VdmTib, ULONG InterruptNumber) |
NTSTATUS | PushPmInterrupt (PKTRAP_FRAME TrapFrame, ULONG IretHookAddress, PVDM_TIB VdmTib, ULONG InterruptNumber) |
VOID | VdmpNullRundownRoutine (IN PKAPC Apc) |
int | VdmpExceptionHandler (IN PEXCEPTION_POINTERS ExceptionInfo) |
NTSTATUS | VdmpQueueInterrupt (IN HANDLE ThreadHandle) |
NTSTATUS | VdmDispatchInterrupts (PKTRAP_FRAME TrapFrame, PVDM_TIB VdmTib) |
NTSTATUS | VdmpDelayInterrupt (PVDMDELAYINTSDATA pdsd) |
BOOLEAN | VdmpDispatchableIntPending (ULONG EFlags) |
NTSTATUS | VdmpIsThreadTerminating (HANDLE ThreadId) |
Variables | |
POBJECT_TYPE | ExSemaphoreObjectType |
POBJECT_TYPE | ExEventObjectType |
|
Definition at line 31 of file vdmints.c. Referenced by VdmDispatchInterrupts(), VdmpDelayIntDpcRoutine(), and VdmpQueueIntApcRoutine(). |
|
Definition at line 897 of file vdmints.c. References PAGED_CODE. Referenced by VdmDispatchInterrupts().
|
|
Definition at line 831 of file vdmints.c. References FALSE, IcaScan(), and PAGED_CODE. Referenced by VdmDispatchInterrupts().
|
|
Definition at line 750 of file vdmints.c. References PAGED_CODE. Referenced by IcaAccept(), and RestartDelayedInterrupts().
|
|
Definition at line 1045 of file vdmints.c. References _Vdm_InterruptHandler::CsSelector, _Vdm_InterruptHandler::Eip, _Vdm_Tib::Flags, Ki386GetSelectorParameters(), PAGED_CODE, PUSHORT, SEL_TYPE_2GIG, SEL_TYPE_BIG, SEL_TYPE_ED, USHORT, and _Vdm_Tib::VdmInterruptHandlers. Referenced by VdmDispatchInterrupts().
|
|
Definition at line 953 of file vdmints.c. References PAGED_CODE, PUSHORT, USHORT, and _Vdm_Tib::VdmInterruptHandlers. Referenced by VdmDispatchInterrupts().
|
|
Definition at line 715 of file vdmints.c. References IcaScan(), PAGED_CODE, and TRUE. Referenced by VdmDispatchInterrupts().
|
|
Definition at line 477 of file vdmints.c. References _VdmEventInfo::Event, _Vdm_Tib::EventInfo, ExRaiseStatus(), GetIretHookAddress(), IcaAccept(), _VdmEventInfo::InstructionSize, KeBoostPriorityThread(), KeGetCurrentThread, KeI386VdmIoplAllowed, KeI386VirtualIntExtensions, NT_SUCCESS, NTSTATUS(), PAGED_CODE, ProbeForWrite(), PsGetCurrentProcess, PushPmInterrupt(), PushRmInterrupt(), RestartDelayedInterrupts(), Status, USHORT, VDM_HWINT_INCREMENT, VDM_VIRTUAL_INTERRUPTS, VdmEndExecution(), VDMEVENTCLASS, VdmIntAck, VdmpEnterIcaLock(), VdmpExceptionHandler(), VdmpLeaveIcaLock(), and VdmTraceEvent(). Referenced by VdmpQueueIntApcRoutine(), and VdmpStartExecution().
|
|
Definition at line 1709 of file vdmints.c. References FALSE, Ke386VdmClearApcObject(), KeAcquireSpinLock, KeReleaseSpinLock(), KernelMode, KPROCESSOR_MODE, NULL, PsGetCurrentProcess, TRUE, VdmpExceptionHandler(), and VdmpQueueIntApcRoutine(). Referenced by VdmpDelayIntDpcRoutine(), and VdmpNullRundownRoutine().
|
|
Definition at line 1583 of file vdmints.c. References Ke386VdmInsertQueueApc(), KeAcquireSpinLock, KeReleaseSpinLock(), KernelMode, NULL, ObDereferenceObject, _ETHREAD::Tcb, VDM_HWINT_INCREMENT, _EPROCESS::VdmObjects, VdmpDelayIntApcRoutine(), VdmpNullRundownRoutine(), and VdmpQueueIntNormalRoutine(). Referenced by VdmpDelayInterrupt().
|
|
Definition at line 1235 of file vdmints.c. References Delay, ExAllocatePoolWithTag, EXCEPTION_EXECUTE_HANDLER, ExFreePool(), FALSE, KeAcquireSpinLock, KeInitializeDpc(), KeInitializeTimer(), KeMaximumIncrement, KeMinimumIncrement, KeReleaseSpinLock(), KernelMode, KeSetTimer(), KeTimeIncrement, NonPagedPool, NT_SUCCESS, NTSTATUS(), NULL, ObDereferenceObject, ObReferenceObject, ObReferenceObjectByHandle(), ObReferenceObjectByPointer(), _EPROCESS::Pcb, ProbeForRead, ProbeForWriteUlong, PsChargePoolQuota(), PsGetCurrentProcess, PsThreadType, Status, TRUE, _EPROCESS::VdmObjects, and VdmpDelayIntDpcRoutine(). Referenced by NtVdmControl().
|
|
Definition at line 1870 of file vdmints.c. References ASSERT, KeI386VdmIoplAllowed, KeI386VirtualIntExtensions, PAGED_CODE, and VDM_VIRTUAL_INTERRUPTS.
|
|
Definition at line 1996 of file vdmints.c. References DbgPrint, EXCEPTION_EXECUTE_HANDLER, and PAGED_CODE. Referenced by VdmDispatchInterrupts(), VdmpDelayIntApcRoutine(), VdmpQueueIntApcRoutine(), and VdmpQueueIntNormalRoutine().
|
|
Definition at line 1922 of file vdmints.c. References NT_SUCCESS, NTSTATUS(), NULL, ObDereferenceObject, PAGED_CODE, PsIsThreadTerminating, PsLookupProcessThreadByCid(), and Status.
|
|
Definition at line 1969 of file vdmints.c. References NULL, and VdmpDelayIntApcRoutine(). Referenced by VdmpDelayIntDpcRoutine(), VdmpQueueIntApcRoutine(), and VdmpQueueInterrupt().
|
|
Definition at line 232 of file vdmints.c. References ASSERT, _VdmEventInfo::Event, _Vdm_Tib::EventInfo, _VdmEventInfo::InstructionSize, Ke386VdmClearApcObject(), Ke386VdmInsertQueueApc(), KeI386VirtualIntExtensions, KernelMode, KPROCESSOR_MODE, NT_SUCCESS, NTSTATUS(), NULL, PAGED_CODE, PsGetCurrentProcess, PsGetCurrentThread, PsIsThreadTerminating, Status, _ETHREAD::Tcb, UserMode, VDM_HWINT_INCREMENT, VDM_INTERRUPT_PENDING, VdmDispatchInterrupts(), VdmEndExecution(), VdmIntAck, VdmpDispatchableIntPending(), VdmpExceptionHandler(), VdmpGetVdmTib(), VdmpNullRundownRoutine(), VdmpQueueIntApcRoutine(), and VDMTIB_KPROBE. Referenced by VdmpDelayIntApcRoutine(), VdmpQueueIntApcRoutine(), and VdmpQueueInterrupt().
|
|
Definition at line 146 of file vdmints.c. References Ke386VdmInsertQueueApc(), KernelMode, KPROCESSOR_MODE, NT_SUCCESS, NTSTATUS(), NULL, ObDereferenceObject, ObReferenceObjectByHandle(), PAGED_CODE, _EPROCESS::Pcb, PsGetCurrentProcess, PsThreadType, Status, _ETHREAD::Tcb, ThreadHandle, _ETHREAD::ThreadsProcess, TRUE, _EPROCESS::VdmObjects, VdmpNullRundownRoutine(), VdmpQueueIntApcRoutine(), and VdmpQueueIntNormalRoutine(). Referenced by NtVdmControl().
|
|
Definition at line 408 of file vdmints.c. References Event(), EVENT_INCREMENT, ExEventObjectType, FALSE, KeSetEvent(), NT_SUCCESS, NTSTATUS(), NULL, ObDereferenceObject, ObReferenceObjectByHandle(), PsGetCurrentProcess, PsGetCurrentThread, Status, _ETHREAD::Tcb, UserMode, and VdmpExceptionHandler(). Referenced by VdmpDelayIntDpcRoutine(), and VdmpQueueInterrupt().
|
|
|
|
Definition at line 142 of file vdmints.c. Referenced by ExpSemaphoreInitialization(), NtCreateSemaphore(), NtOpenSemaphore(), NtQuerySemaphore(), NtReleaseSemaphore(), and NtSignalAndWaitForSingleObject(). |