mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
218 lines
3.3 KiB
218 lines
3.3 KiB
/*++
|
|
|
|
Copyright (c) Microsoft Corporation. All rights reserved.
|
|
|
|
Module Name:
|
|
|
|
vdmp.h
|
|
|
|
Abstract:
|
|
|
|
This is the private include file for the vdm component
|
|
|
|
Author:
|
|
|
|
Dave Hastings (daveh) 24-Apr-1992
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
#pragma warning(disable:4214) // bit field types other than int
|
|
#pragma warning(disable:4201) // nameless struct/union
|
|
#pragma warning(disable:4324) // alignment sensitive to declspec
|
|
#pragma warning(disable:4127) // condition expression is constant
|
|
#pragma warning(disable:4115) // named type definition in parentheses
|
|
#pragma warning(disable:4232) // dllimport not static
|
|
#pragma warning(disable:4206) // translation unit empty
|
|
|
|
#include <ntos.h>
|
|
#include <nturtl.h>
|
|
#include <vdmntos.h>
|
|
|
|
//
|
|
// internal function prototypes
|
|
//
|
|
|
|
NTSTATUS
|
|
VdmpInitialize(
|
|
PVDM_INITIALIZE_DATA VdmInitData
|
|
);
|
|
|
|
#if 0
|
|
BOOLEAN
|
|
VdmIoInitialize(
|
|
VOID
|
|
);
|
|
|
|
#endif
|
|
|
|
NTSTATUS
|
|
VdmpStartExecution(
|
|
VOID
|
|
);
|
|
|
|
|
|
VOID
|
|
VdmSwapContexts(
|
|
IN PKTRAP_FRAME TrapFrame,
|
|
IN PCONTEXT InContext,
|
|
IN PCONTEXT OutContext
|
|
);
|
|
|
|
NTSTATUS
|
|
VdmpQueueInterrupt(
|
|
IN HANDLE ThreadHandle
|
|
);
|
|
|
|
|
|
NTSTATUS
|
|
VdmpDelayInterrupt(
|
|
PVDMDELAYINTSDATA pdsd
|
|
);
|
|
|
|
|
|
NTSTATUS
|
|
VdmpEnterIcaLock(
|
|
IN PRTL_CRITICAL_SECTION pIcaLock
|
|
);
|
|
|
|
NTSTATUS
|
|
VdmpLeaveIcaLock(
|
|
IN PRTL_CRITICAL_SECTION pIcaLock
|
|
);
|
|
|
|
BOOLEAN
|
|
VdmpDispatchableIntPending(
|
|
IN ULONG EFlags
|
|
);
|
|
|
|
NTSTATUS
|
|
VdmpIsThreadTerminating(
|
|
HANDLE ThreadId
|
|
);
|
|
|
|
|
|
#if 0
|
|
BOOLEAN
|
|
VdmDispatchUnalignedIoToHandler(
|
|
IN PVDM_IO_HANDLER VdmIoHandler,
|
|
IN ULONG PortNumber,
|
|
IN ULONG Size,
|
|
IN BOOLEAN Read,
|
|
IN OUT PULONG Data
|
|
);
|
|
|
|
BOOLEAN
|
|
VdmDispatchIoToHandler(
|
|
IN PVDM_IO_HANDLER VdmIoHandler,
|
|
IN ULONG PortNumber,
|
|
IN ULONG Size,
|
|
IN BOOLEAN Read,
|
|
IN OUT PULONG Data
|
|
);
|
|
|
|
BOOLEAN
|
|
VdmDispatchStringIoToHandler(
|
|
IN PVDM_IO_HANDLER VdmIoHandler,
|
|
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 PortNumber,
|
|
IN ULONG Size,
|
|
IN ULONG Count,
|
|
IN BOOLEAN Read,
|
|
IN ULONG Data
|
|
);
|
|
|
|
VOID
|
|
VdmSetBits(
|
|
PULONG Location,
|
|
ULONG Flag
|
|
);
|
|
|
|
VOID
|
|
VdmResetBits(
|
|
PULONG Location,
|
|
ULONG Flag
|
|
);
|
|
|
|
BOOLEAN
|
|
VdmGetSelectorParameters(
|
|
IN USHORT Selector,
|
|
OUT PULONG Flags,
|
|
OUT PULONG Base,
|
|
OUT PULONG Limit
|
|
);
|
|
|
|
BOOLEAN
|
|
VdmConvertToLinearAddress(
|
|
IN ULONG SegmentedAddress,
|
|
OUT PVOID *LinearAddress
|
|
);
|
|
|
|
|
|
#endif
|
|
|
|
BOOLEAN
|
|
VdmPrinterStatus(
|
|
ULONG iPort,
|
|
ULONG cbInstructionSize,
|
|
PKTRAP_FRAME TrapFrame
|
|
);
|
|
BOOLEAN
|
|
VdmPrinterWriteData(
|
|
ULONG iPort,
|
|
ULONG cbInstructionSize,
|
|
PKTRAP_FRAME TrapFrame
|
|
);
|
|
NTSTATUS
|
|
VdmpPrinterDirectIoOpen(
|
|
PVOID ServiceData
|
|
);
|
|
NTSTATUS
|
|
VdmpPrinterDirectIoClose(
|
|
PVOID ServiceData
|
|
);
|
|
|
|
NTSTATUS
|
|
VdmpSetLdtEntries(
|
|
ULONG Selector0,
|
|
ULONG Entry0Low,
|
|
ULONG Entry0Hi,
|
|
ULONG Selector1,
|
|
ULONG Entry1Low,
|
|
ULONG Entry1Hi
|
|
);
|
|
|
|
NTSTATUS
|
|
VdmpSetProcessLdtInfo(
|
|
PPROCESS_LDT_INFORMATION ProcessInformation,
|
|
ULONG ProcessInformationLength
|
|
);
|
|
|
|
VOID
|
|
VdmTraceEvent(
|
|
USHORT Type,
|
|
USHORT wData,
|
|
USHORT lData,
|
|
PKTRAP_FRAME TrapFrame
|
|
);
|
|
|
|
NTSTATUS
|
|
VdmpPrinterInitialize(
|
|
PVOID ServiceData
|
|
);
|
|
|
|
NTSTATUS
|
|
VdmpGetVdmTib(
|
|
OUT PVDM_TIB *ppVdmTib
|
|
);
|