vdmp.h
Go to the documentation of this file.00001 #define VDM_APP_MODE 0x00000001L
00002 #define VDM_INTERRUPT_PENDING 0x00000002L
00003 #define VDM_STATE_CHANGE 0x00000004L
00004 #define VDM_VIRTUAL_INTERRUPTS 0x00000200L
00005 #define VDM_PE_MASK 0x80000000L
00006
00007 typedef enum _VdmEventClass {
00008
VdmIO,
00009
VdmStringIO,
00010
VdmMemAccess,
00011
VdmIntAck,
00012
VdmBop,
00013
VdmError,
00014
VdmIrq13
00015 }
VDMEVENTCLASS, *
PVDMEVENTCLASS;
00016
00017 typedef struct _VdmIoInfo {
00018 USHORT PortNumber;
00019 USHORT Size;
00020 BOOLEAN
Read;
00021 }
VDMIOINFO, *
PVDMIOINFO;
00022
00023 typedef struct _VdmStringIoInfo {
00024 USHORT PortNumber;
00025 USHORT Size;
00026 BOOLEAN
Read;
00027 ULONG
Count;
00028 ULONG
Address;
00029 }
VDMSTRINGIOINFO, *
PVDMSTRINGIOINFO;
00030
00031 typedef ULONG
VDMBOPINFO;
00032 typedef NTSTATUS VDMERRORINFO;
00033
00034 typedef struct _VdmEventInfo {
00035 ULONG
Size;
00036 VDMEVENTCLASS Event;
00037 ULONG
InstructionSize;
00038
union {
00039 VDMIOINFO IoInfo;
00040 VDMSTRINGIOINFO StringIoInfo;
00041 VDMBOPINFO BopNumber;
00042 VDMERRORINFO ErrorStatus;
00043 };
00044 }
VDMEVENTINFO, *
PVDMEVENTINFO;
00045
00046 typedef struct _Vdm_InterruptHandler {
00047 USHORT CsSelector;
00048 ULONG
Eip;
00049 USHORT SsSelector;
00050 ULONG
Esp;
00051 }
VDM_INTERRUPTHANDLER, *
PVDM_INTERRUPTHANDLER;
00052
00053 typedef struct _Vdm_Tib {
00054 ULONG
Size;
00055 ULONG
Flags;
00056 VDM_INTERRUPTHANDLER VdmInterruptHandlers[255];
00057 CONTEXT
MonitorContext;
00058 CONTEXT
VdmContext;
00059 VDMEVENTINFO EventInfo;
00060 }
VDM_TIB, *
PVDM_TIB;
00061
00062
NTSTATUS
00063
NtStartVdmExecution(
00064 );
00065
00066
00067
00068 #define SEL_TYPE_READ 0x00000001
00069 #define SEL_TYPE_WRITE 0x00000002
00070 #define SEL_TYPE_EXECUTE 0x00000004
00071 #define SEL_TYPE_BIG 0x00000008
00072 #define SEL_TYPE_ED 0x00000010
00073 #define SEL_TYPE_2GIG 0x00000020
Generated on Sat May 15 19:42:22 2004 for test by
1.3.7