?? pm_help.h
字號:
/****************************************************************************** SciTech OS Portability Manager Library** ========================================================================** The contents of this file are subject to the SciTech MGL Public* License Version 1.0 (the "License"); you may not use this file* except in compliance with the License. You may obtain a copy of* the License at http://www.scitechsoft.com/mgl-license.txt** Software distributed under the License is distributed on an* "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or* implied. See the License for the specific language governing* rights and limitations under the License.** The Original Code is Copyright (C) 1991-1998 SciTech Software, Inc.** The Initial Developer of the Original Code is SciTech Software, Inc.* All Rights Reserved.** ========================================================================** Language: ANSI C* Environment: Win32, OS/2** Description: Include file for the SciTech Portability Manager 32-bit* helper VxD for Windows 9x for and the 16-bit ring 0* helper device driver for OS/2.** This file documents all the public services used by the* SciTech Portability Manager library and SciTech Nucleus* loader library.*****************************************************************************/#ifndef __PMHELP_H#define __PMHELP_H/* Include version information */#include "sdd/sddver.h"#define PMHELP_Major SDD_RELEASE_MAJOR#define PMHELP_Minor SDD_RELEASE_MINOR#define PMHELP_VERSION ((PMHELP_Major << 8) | PMHELP_Minor)#ifdef __OS2__/***************************************************************************** Public OS/2 Support functions****************************************************************************/#include "scitech.h"#include "nucleus/graphics.h"/* Name of device driver */#define PMHELP_NAME (PSZ)"sddhelp$"/* Main IOCTL function to talk to device driver */#define PMHELP_IOCTL 0x0080/* Macro definition for defining IOCTL function control codes for the SDDHELP * device driver for OS/2. Similar to that used for the DOS/Win32 version. */#define PMHELP_CTL_CODE(name,value) \ PMHELP_##name = valuetypedef enum { /* Version function used by all drivers */ PMHELP_CTL_CODE(GETVER ,0x0001), PMHELP_CTL_CODE(MAPPHYS ,0x0002), PMHELP_CTL_CODE(ALLOCLOCKED ,0x0003), PMHELP_CTL_CODE(FREELOCKED ,0x0004), PMHELP_CTL_CODE(GETGDT32 ,0x0005), PMHELP_CTL_CODE(MALLOCSHARED ,0x0007), PMHELP_CTL_CODE(FREESHARED ,0x0008), PMHELP_CTL_CODE(MAPTOPROCESS ,0x0009), PMHELP_CTL_CODE(FREEPHYS ,0x000A), PMHELP_CTL_CODE(FLUSHTLB ,0x000B), PMHELP_CTL_CODE(SAVECR4 ,0x000C), PMHELP_CTL_CODE(RESTORECR4 ,0x000D), PMHELP_CTL_CODE(READMSR ,0x000E), PMHELP_CTL_CODE(WRITEMSR ,0x000F), PMHELP_CTL_CODE(GETPHYSICALADDR ,0x0010), PMHELP_CTL_CODE(GETPHYSICALADDRRANGE ,0x0011), PMHELP_CTL_CODE(LOCKPAGES ,0x0012), PMHELP_CTL_CODE(UNLOCKPAGES ,0x0013), PMHELP_CTL_CODE(GETSHAREDEXP ,0x0042), PMHELP_CTL_CODE(SETSHAREDEXP ,0x0043), PMHELP_CTL_CODE(GETSTACKSWITCHRTN ,0x0044), PMHELP_CTL_CODE(GETBUILDNO ,0x0050), } PMHELP_ctlCodes;#else/***************************************************************************** Public DOS/Windows Support functions****************************************************************************/#ifdef DEVICE_MAIN#include <vtoolsc.h>#define PMHELP_Init_Order (VDD_INIT_ORDER-1)#define RETURN_LONGS(n) *p->dioc_bytesret = (n) * sizeof(ulong)#endif /* DEVICE_MAIN */#include "scitech.h"#include "nucleus/graphics.h"/* We connect to the SDDHELP.VXD module if it is staticly loaded (as part * of SciTech Display Doctor), otherwise we dynamically load the PMHELP.VXD * public helper VxD. */#define PMHELP_DeviceID 0x0000#define SDDHELP_DeviceID 0x3DF8#define VXDLDR_DeviceID 0x0027#define SDDHELP_MODULE "SDDHELP"#define SDDHELP_NAME "SDDHELP.VXD"#define PMHELP_MODULE "PMHELP"#define PMHELP_NAME "PMHELP.VXD"#define PMHELP_DDBNAME "pmhelp "#define SDDHELP_MODULE_PATH "\\\\.\\" SDDHELP_MODULE#define PMHELP_MODULE_PATH "\\\\.\\" PMHELP_MODULE#define PMHELP_VXD_PATH "\\\\.\\" PMHELP_NAME/* Macro definition for defining IOCTL function control codes for the PMHELP * device drivers for Windows 9x and NT. This macro is basically derived from * the CTL_CODE macro in the Windows 2000 DDK, but we hard code it here to * avoid having to #include any of the Windows 2000 DDK header files. We also * define both a 16-bit and 32-bit version of the control code within the same * macro to simplify future additions. * * Essentially the Win32 macro would normally expand to the following: * * CTL_CODE(FILE_DEVICE_VIDEO,0x800+value,METHOD_BUFFERED,FILE_ANY_ACCESS) */#define PMHELP_CTL_CODE(name,value) \ PMHELP_##name = value, \ PMHELP_##name##32 = ((0x23 << 16) | (0 << 14) | ((0x800+value) << 2) | (0))typedef enum { /* Include all the control codes. We keep them in a separate header * file so we can include them in multiple places to make this * more versatile. */ #include "pm_wctl.h" } PMHELP_ctlCodes;/* For real mode VxD calls, we put the function number into the high * order word of EAX, and a value of 0x4FFF in AX. This allows our * VxD handler which is set up to handle Int 10's to recognise a native * PMHELP API call from a real mode DOS program. */#ifdef REALMODE#define API_NUM(num) (((ulong)(num) << 16) | 0x4FFF)#else#define API_NUM(num) (num)#endif#endif /* !__OS2__ */#endif /* __PMHELP_H */
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -