#include "ki.h"
#include "vdmntos.h"
Go to the source code of this file.
Defines | |
#define | VDM_IO_TEST 0 |
#define | STRINGIO_BUFFER_SIZE 1024 |
Functions | |
BOOLEAN | Ki386GetSelectorParameters (IN USHORT Selector, OUT PULONG Flags, OUT PULONG Base, OUT PULONG Limit) |
BOOLEAN | Ki386VdmDispatchIo (IN ULONG PortNumber, IN ULONG Size, IN BOOLEAN Read, IN UCHAR InstructionSize, IN PKTRAP_FRAME TrapFrame) |
BOOLEAN | Ki386VdmDispatchStringIo (IN ULONG PortNumber, IN ULONG Size, IN BOOLEAN Rep, IN BOOLEAN Read, IN ULONG Count, IN ULONG Address, IN UCHAR InstructionSize, IN PKTRAP_FRAME TrapFrame) |
BOOLEAN | VdmDispatchIoToHandler (IN PVDM_IO_HANDLER VdmIoHandler, IN ULONG Context, IN ULONG PortNumber, IN ULONG Size, IN BOOLEAN Read, IN OUT PULONG Data) |
BOOLEAN | VdmDispatchUnalignedIoToHandler (IN PVDM_IO_HANDLER VdmIoHandler, IN ULONG Context, IN ULONG PortNumber, IN ULONG Size, IN BOOLEAN Read, IN OUT PULONG Data) |
BOOLEAN | VdmDispatchStringIoToHandler (IN PVDM_IO_HANDLER VdmIoHandler, IN ULONG Context, IN ULONG PortNumber, IN ULONG Size, IN ULONG Count, IN BOOLEAN Read, IN ULONG Data) |
BOOLEAN | VdmCallStringIoHandler (IN PVDM_IO_HANDLER VdmIoHandler, IN PVOID StringIoRoutine, IN ULONG Context, IN ULONG PortNumber, IN ULONG Size, IN ULONG Count, IN BOOLEAN Read, IN ULONG Data) |
BOOLEAN | VdmConvertToLinearAddress (IN ULONG SegmentedAddress, IN PVOID *LinearAddress) |
VOID | KeI386VdmInitialize (VOID) |
ULONG | Ki386VdmEnablePentiumExtentions (ULONG) |
BOOLEAN | VdmConvertToLinearAddress (IN ULONG SegmentedAddress, OUT PVOID *LinearAddress) |
BOOLEAN | Ke386VdmInsertQueueApc (IN PKAPC Apc, IN PKTHREAD Thread, IN KPROCESSOR_MODE ApcMode, IN PKKERNEL_ROUTINE KernelRoutine, IN PKRUNDOWN_ROUTINE RundownRoutine OPTIONAL, IN PKNORMAL_ROUTINE NormalRoutine OPTIONAL, IN PVOID NormalContext OPTIONAL, IN KPRIORITY Increment) |
VOID | Ke386VdmClearApcObject (IN PKAPC Apc) |
Variables | |
KMUTEX | VdmStringIoMutex |
ULONG | VdmFixedStateLinear |
ULONG | KeI386EFlagsAndMaskV86 = EFLAGS_USER_SANITIZE |
ULONG | KeI386EFlagsOrMaskV86 = EFLAGS_INTERRUPT_MASK |
BOOLEAN | KeI386VdmIoplAllowed = FALSE |
ULONG | KeI386VirtualIntExtensions = 0 |
UCHAR | VdmStringIoBuffer [STRINGIO_BUFFER_SIZE] |
|
Definition at line 878 of file ke/i386/vdm.c. Referenced by VdmCallStringIoHandler(). |
|
Definition at line 39 of file ke/i386/vdm.c. |
|
Definition at line 1437 of file ke/i386/vdm.c. References KiLockDispatcherDatabase, KiUnlockDispatcherDatabase(), and NULL. Referenced by VdmpDelayIntApcRoutine(), and VdmpQueueIntApcRoutine().
|
|
Definition at line 1257 of file ke/i386/vdm.c. References _KAPC_STATE::ApcListHead, ApcObject, _KTHREAD::ApcQueueLock, FALSE, Increment, _KAPC_STATE::KernelApcPending, KernelMode, KiBoostPriorityThread, KiInsertQueueApc(), KiLockDispatcherDatabase, KiUnlockDispatcherDatabase(), NULL, OriginalApcEnvironment, TRUE, _KAPC_STATE::UserApcPending, and UserMode. Referenced by VdmpDelayIntDpcRoutine(), VdmpQueueIntApcRoutine(), and VdmpQueueInterrupt().
|
|
|
|
|
|
Definition at line 307 of file ke/i386/vdm.c. References _VdmEventInfo::Event, _Vdm_Tib::EventInfo, EXCEPTION_EXECUTE_HANDLER, ExRaiseException(), FALSE, _VdmEventInfo::InstructionSize, _VdmEventInfo::IoInfo, _VdmIoInfo::PortNumber, Ps386GetVdmIoHandler(), PsGetCurrentProcess, PUSHORT, _VdmIoInfo::Read, _VdmIoInfo::Size, Size, TRUE, USHORT, VdmDispatchIoToHandler(), VdmDispatchUnalignedIoToHandler(), VdmEndExecution(), and VdmIO.
|
|
Definition at line 418 of file ke/i386/vdm.c. References _VdmStringIoInfo::Address, _VdmStringIoInfo::Count, Count, _VdmEventInfo::Event, _Vdm_Tib::EventInfo, EXCEPTION_EXECUTE_HANDLER, ExRaiseException(), FALSE, Index, _VdmEventInfo::InstructionSize, _VdmStringIoInfo::PortNumber, Ps386GetVdmIoHandler(), PsGetCurrentProcess, PUSHORT, _VdmStringIoInfo::Read, _VdmStringIoInfo::Size, Size, _VdmEventInfo::StringIoInfo, TRUE, USHORT, VdmDispatchStringIoToHandler(), VdmEndExecution(), and VdmStringIO.
|
|
Referenced by KeI386VdmInitialize(). |
|
Definition at line 882 of file ke/i386/vdm.c. References ASSERT, Count, EMULATOR_READ_ACCESS, EMULATOR_WRITE_ACCESS, EXCEPTION_EXECUTE_HANDLER, ExRaiseException(), NT_SUCCESS, NTSTATUS(), NULL, PDRIVER_IO_PORT_UCHAR_STRING, Size, Status, STRINGIO_BUFFER_SIZE, TRUE, VdmConvertToLinearAddress(), VdmDispatchIoToHandler(), VdmDispatchUnalignedIoToHandler(), and VdmStringIoBuffer. Referenced by VdmDispatchStringIoToHandler().
|
|
Definition at line 1034 of file ke/i386/vdm.c. References KeGetCurrentThread, Ki386GetSelectorParameters(), TRUE, and USHORT. Referenced by VdmCallStringIoHandler().
|
|
|
|
Definition at line 535 of file ke/i386/vdm.c. References ASSERT, EMULATOR_READ_ACCESS, EMULATOR_WRITE_ACCESS, FALSE, NT_SUCCESS, NTSTATUS(), PUSHORT, Size, Status, TRUE, and USHORT. Referenced by Ki386VdmDispatchIo(), VdmCallStringIoHandler(), and VdmDispatchUnalignedIoToHandler().
|
|
Definition at line 777 of file ke/i386/vdm.c. References Count, Executive, FALSE, KeReleaseMutex(), KernelMode, KeWaitForSingleObject(), NT_SUCCESS, NTSTATUS(), NULL, Size, Status, USHORT, VdmCallStringIoHandler(), and VdmStringIoMutex. Referenced by Ki386VdmDispatchStringIo().
|
|
Definition at line 672 of file ke/i386/vdm.c. References ASSERT, Offset, Size, and VdmDispatchIoToHandler(). Referenced by Ki386VdmDispatchIo(), and VdmCallStringIoHandler().
|
|
Definition at line 153 of file ke/i386/vdm.c. Referenced by KeI386VdmInitialize(). |
|
Definition at line 154 of file ke/i386/vdm.c. Referenced by KeI386VdmInitialize(). |
|
Definition at line 155 of file ke/i386/vdm.c. Referenced by KeI386VdmInitialize(), NtVdmControl(), VdmDispatchInterrupts(), VdmEndExecution(), VdmpDispatchableIntPending(), and VdmpStartExecution(). |
|
Definition at line 156 of file ke/i386/vdm.c. Referenced by KeI386VdmInitialize(), NtVdmControl(), VdmDispatchInterrupts(), VdmEndExecution(), VdmpDispatchableIntPending(), VdmpQueueIntApcRoutine(), and VdmpStartExecution(). |
|
Definition at line 151 of file ke/i386/vdm.c. Referenced by KeI386VdmInitialize(), and VdmpStartExecution(). |
|
Definition at line 879 of file ke/i386/vdm.c. Referenced by VdmCallStringIoHandler(). |
|
Definition at line 150 of file ke/i386/vdm.c. Referenced by KeI386VdmInitialize(), and VdmDispatchStringIoToHandler(). |