📄 wrappers.h
字号:
/****************************************************************************
* *
* THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY *
* KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE *
* IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR *
* PURPOSE. *
* *
* Copyright 1993-95 Microsoft Corporation. All Rights Reserved. *
* *
****************************************************************************/
#ifndef _VMMXWRAP_H
#define _VMMXWRAP_H
#include <vxdwraps.h>
/****************************************************************************
* *
* VMM services *
* *
****************************************************************************/
typedef DWORD VMHANDLE;
typedef DWORD EVENTHANDLE;
typedef DWORD MEMHANDLE;
typedef DWORD PTHCB; // pointer to thread control block
typedef void *CALLBACK(void);
MAKE_HEADER(PTHCB,_stdcall,Get_Initial_Thread_Handle, (HVM hVM))
MAKE_HEADER(BOOL, _stdcall,Install_IO_Handler, (DWORD PortNum, \
CALLBACK Callback ))
MAKE_HEADER(BOOL, _stdcall,Remove_IO_Handler, (DWORD PortNum))
MAKE_HEADER(void, _stdcall,Enable_Local_Trapping, (VMHANDLE hVM, \
DWORD PortNum))
MAKE_HEADER(void, _stdcall,Disable_Local_Trapping, (VMHANDLE hVM, \
DWORD PortNum))
MAKE_HEADER(EVENTHANDLE,cdecl,Call_Priority_VM_Event, (DWORD PriorityBoost, \
VMHANDLE hVM, \
DWORD Flags, \
void *Refdata, \
CALLBACK EventCallback, \
DWORD Timeout ))
MAKE_HEADER(void, cdecl, _Deallocate_Device_CB_Area, (DWORD Offset, \
DWORD Flags ))
MAKE_HEADER(void, cdecl, Save_Client_State, (CLIENT_STRUCT * pSavedRegs))
MAKE_HEADER(void, cdecl, Restore_Client_State, (CLIENT_STRUCT * pSavedRegs))
MAKE_HEADER(void, cdecl, Begin_Nest_Exec, (void))
MAKE_HEADER(void, cdecl, End_Nest_Exec, (void))
MAKE_HEADER(void, _stdcall, Simulate_Far_Call, (WORD seg, WORD off ))
MAKE_HEADER(void, _stdcall, Simulate_Push, (DWORD val))
MAKE_HEADER(BOOL,cdecl,_ModifyPageBits, (VMHANDLE hVM, \
DWORD VMLinPgNum, \
DWORD nPages, \
DWORD bitAnd, \
DWORD bitOR, \
DWORD pType, \
DWORD Flags))
MAKE_HEADER(BOOL,_stdcall,Hook_V86_Page, (DWORD PageNum, \
CALLBACK Callback))
MAKE_HEADER(BOOL,_stdcall,Unhook_V86_Page, (DWORD PageNum, \
CALLBACK Callback))
MAKE_HEADER(BOOL,cdecl,_Assign_Device_V86_Pages, (DWORD VMLinrPage, \
DWORD nPages, \
VMHANDLE hVM, \
DWORD Flags))
MAKE_HEADER(BOOL,cdecl,_DeAssign_Device_V86_Pages, (DWORD VMLinrPage, \
DWORD nPages, \
VMHANDLE hVM, \
DWORD Flags))
MAKE_HEADER(BOOL,cdecl,_PhysIntoV86, (DWORD PhysPage, \
VMHANDLE hVM, \
DWORD VMLinPgNum, \
DWORD nPages, \
DWORD Flags))
MAKE_HEADER(BOOL,cdecl,_MapIntoV86, (MEMHANDLE hMem, \
VMHANDLE hVM, \
DWORD VMLinPageNumber, \
DWORD nPages, \
DWORD PageOff, \
DWORD Flags))
MAKE_HEADER(MEMHANDLE,cdecl,_GetNulPageHandle,(void))
MAKE_HEADER(ULONG,cdecl,_PageReserve, (ULONG page, \
ULONG npages, \
ULONG flags))
MAKE_HEADER(ULONG,cdecl,_PageCommitPhys, (ULONG page, \
ULONG npages, \
ULONG physpg, \
ULONG flags))
MAKE_HEADER(ULONG,cdecl,_PageDecommit, (ULONG page, \
ULONG npages, \
ULONG flags))
MAKE_HEADER(void *,_stdcall,Map_Flat, (BYTE SegOffset, BYTE OffOffset ))
#define MAPFLAT(sgmnt,offst) Map_Flat(((DWORD)(&((CRS *)0)->sgmnt)),(DWORD)(&((struct Client_Word_Reg_Struc *)0)->offst))
#define Map_Flat PREPEND(Map_Flat)
#define Call_Priority_VM_Event PREPEND(Call_Priority_VM_Event)
#define Get_Initial_Thread_Handle PREPEND(Get_Initial_Thread_Handle)
#define Install_IO_Handler PREPEND(Install_IO_Handler)
#define Remove_IO_Handler PREPEND(Remove_IO_Handler)
#define Enable_Local_Trapping PREPEND(Enable_Local_Trapping)
#define Disable_Local_Trapping PREPEND(Disable_Local_Trapping)
#define _Deallocate_Device_CB_Area PREPEND(_Deallocate_Device_CB_Area)
#define Save_Client_State PREPEND(Save_Client_State)
#define Restore_Client_State PREPEND(Restore_Client_State)
#define Begin_Nest_Exec PREPEND(Begin_Nest_Exec)
#define End_Nest_Exec PREPEND(End_Nest_Exec)
#define Simulate_Far_Call PREPEND(Simulate_Far_Call)
#define Simulate_Push PREPEND(Simulate_Push)
#define _ModifyPageBits PREPEND(_ModifyPageBits)
#define Hook_V86_Page PREPEND(Hook_V86_Page)
#define Unhook_V86_Page PREPEND(Unhook_V86_Page)
#define _Assign_Device_V86_Pages PREPEND(_Assign_Device_V86_Pages)
#define _DeAssign_Device_V86_Pages PREPEND(_DeAssign_Device_V86_Pages)
#define _PhysIntoV86 PREPEND(_PhysIntoV86)
#define _MapIntoV86 PREPEND(_MapIntoV86)
#define _GetNulPageHandle PREPEND(_GetNulPageHandle)
#define _PageReserve PREPEND(_PageReserve)
#define _PageCommitPhys PREPEND(_PageCommitPhys)
#define _PageDecommit PREPEND(_PageDecommit)
// the following functions are really in VXDWRAPS.CLB, but aren't
// prototyped in VXDWRAPS.H
MAKE_HEADER(DWORD, cdecl, _Allocate_Device_CB_Area, (DWORD NumBytes, \
DWORD Flags ))
#define _Allocate_Device_CB_Area PREPEND(_Allocate_Device_CB_Area)
/****************************************************************************
* *
* IFSMgr services *
* *
****************************************************************************/
#define R0_OPENCREATFILE 0xD500 /* Open/Create a file */
#define R0_OPENCREAT_IN_CONTEXT 0xD501 /* Open/Create file in current context */
#define R0_CLOSEFILE 0xD700 /* Close file */
#define R0_WRITEFILE 0xD601 /* WRite to a file */
#define R0_WRITEFILE_IN_CONTEXT 0xD603 /* Write to a file in current context */
MAKE_HEADER(HANDLE,cdecl,IFSMgr_Ring0_OpenCreateFile, (BOOL bInContext, \
PCHAR filename, \
WORD mode, \
WORD attrib, \
BYTE action, \
BYTE flags, \
WORD *pError, \
BYTE *pAction))
MAKE_HEADER(DWORD,cdecl,IFSMgr_Ring0_WriteFile, (BOOL bInContext, \
HANDLE filehandle, \
PVOID buf, \
DWORD count, \
DWORD filepos, \
WORD *perr))
MAKE_HEADER(BOOL,cdecl,IFSMgr_Ring0_CloseFile, (HANDLE filehandle, \
WORD *pError))
#define IFSMgr_Ring0_OpenCreateFile PREPEND(IFSMgr_Ring0_OpenCreateFile)
#define IFSMgr_Ring0_WriteFile PREPEND(IFSMgr_Ring0_WriteFile)
#define IFSMgr_Ring0_CloseFile PREPEND(IFSMgr_Ring0_CloseFile)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -