windows-nt/Source/XPSP1/NT/base/ntos/vdm/i386/vdmp.h

219 lines
3.3 KiB
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
/*++
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
);