⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wrappers.h

📁 vc环境下的pgp源码
💻 H
📖 第 1 页 / 共 2 页
字号:
/****************************************************************************
*                                                                           *
* 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 + -