00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
#include <ntos.h>
00021
#include <nturtl.h>
00022
#include <vdmntos.h>
00023
00024
00025
00026
00027
00028
00029
00030
NTSTATUS
00031
VdmpInitialize(
00032 PVDMICAUSERDATA pIcaUserData
00033 );
00034
00035
#if 0
00036
BOOLEAN
00037 VdmIoInitialize(
00038 VOID
00039 );
00040
00041
#endif
00042
00043
NTSTATUS
00044
VdmpStartExecution(
00045 VOID
00046 );
00047
00048
00049
VOID
00050
VdmSwapContexts(
00051 IN PKTRAP_FRAME TrapFrame,
00052 IN PCONTEXT InContext,
00053 IN PCONTEXT OutContext
00054 );
00055
00056
NTSTATUS
00057
VdmpQueueInterrupt(
00058 IN HANDLE ThreadHandle
00059 );
00060
00061
00062
NTSTATUS
00063
VdmpDelayInterrupt(
00064 PVDMDELAYINTSDATA pdsd
00065 );
00066
00067
00068
NTSTATUS
00069
VdmpEnterIcaLock(
00070 IN PRTL_CRITICAL_SECTION pIcaLock
00071 );
00072
00073
NTSTATUS
00074
VdmpLeaveIcaLock(
00075 IN PRTL_CRITICAL_SECTION pIcaLock
00076 );
00077
00078 BOOLEAN
00079
VdmpDispatchableIntPending(
00080 IN ULONG EFlags
00081 );
00082
00083
NTSTATUS
00084
VdmpIsThreadTerminating(
00085 HANDLE ThreadId
00086 );
00087
00088
00089
#if 0
00090
BOOLEAN
00091
VdmDispatchUnalignedIoToHandler(
00092 IN PVDM_IO_HANDLER VdmIoHandler,
00093 IN ULONG PortNumber,
00094 IN ULONG Size,
00095 IN BOOLEAN Read,
00096 IN OUT PULONG Data
00097 );
00098
00099 BOOLEAN
00100
VdmDispatchIoToHandler(
00101 IN PVDM_IO_HANDLER VdmIoHandler,
00102 IN ULONG PortNumber,
00103 IN ULONG Size,
00104 IN BOOLEAN Read,
00105 IN OUT PULONG Data
00106 );
00107
00108 BOOLEAN
00109
VdmDispatchStringIoToHandler(
00110 IN PVDM_IO_HANDLER VdmIoHandler,
00111 IN ULONG PortNumber,
00112 IN ULONG Size,
00113 IN ULONG Count,
00114 IN BOOLEAN Read,
00115 IN ULONG Data
00116 );
00117
00118 BOOLEAN
00119
VdmCallStringIoHandler(
00120 IN PVDM_IO_HANDLER VdmIoHandler,
00121 IN PVOID StringIoRoutine,
00122 IN ULONG PortNumber,
00123 IN ULONG Size,
00124 IN ULONG Count,
00125 IN BOOLEAN Read,
00126 IN ULONG Data
00127 );
00128
00129
VOID
00130 VdmSetBits(
00131 PULONG Location,
00132 ULONG Flag
00133 );
00134
00135
VOID
00136 VdmResetBits(
00137 PULONG Location,
00138 ULONG Flag
00139 );
00140
00141 BOOLEAN
00142 VdmGetSelectorParameters(
00143 IN USHORT Selector,
00144 OUT PULONG Flags,
00145 OUT PULONG Base,
00146 OUT PULONG Limit
00147 );
00148
00149 BOOLEAN
00150
VdmConvertToLinearAddress(
00151 IN ULONG SegmentedAddress,
00152 OUT PVOID *LinearAddress
00153 );
00154
00155
00156
#endif
00157
00158 BOOLEAN
00159
VdmPrinterStatus(
00160 ULONG iPort,
00161 ULONG cbInstructionSize,
00162 PKTRAP_FRAME TrapFrame
00163 );
00164 BOOLEAN
00165
VdmPrinterWriteData(
00166 ULONG iPort,
00167 ULONG cbInstructionSize,
00168 PKTRAP_FRAME TrapFrame
00169 );
00170
NTSTATUS
00171
VdmpPrinterDirectIoOpen(
00172 PVOID ServiceData
00173 );
00174
NTSTATUS
00175
VdmpPrinterDirectIoClose(
00176 PVOID ServiceData
00177 );
00178
00179
VOID
00180
VdmTraceEvent(
00181 USHORT Type,
00182 USHORT wData,
00183 USHORT lData,
00184 PKTRAP_FRAME TrapFrame
00185 );
00186
00187
NTSTATUS
00188
VdmpPrinterInitialize(
00189 PVOID ServiceData
00190 );
00191
00192
NTSTATUS
00193
VdmpGetVdmTib(
00194
PVDM_TIB *ppVdmTib,
00195 ULONG dwFlags
00196 );
00197
00198 #define VDMTIB_KMODE 0x0001
00199 #define VDMTIB_PROBE 0x0002
00200 #define VDMTIB_KPROBE (VDMTIB_KMODE|VDMTIB_PROBE)
00201
00202
00203