📄 vxstd.h
字号:
/*----------------------------------------------------------------------------
FILE vxstd.h
HISTORY 940712 Tilakraj Roy ( Updated )
----------------------------------------------------------------------------*/
#ifndef _VXSTD_H_
#define _VXSTD_H_
//----------------------------------------------------------------------------
// CONDITIONAL COMPILE SWITCHES
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
// DATA TYPES
//----------------------------------------------------------------------------
#define NEAR
#define FAR
#undef PASCAL
#define PASCAL
//#pragma pack(1)
typedef DWORD STATUS;
//----------------------------------------------------------------------------
// DEBUGGING
//----------------------------------------------------------------------------
#ifdef DEBUG
// #define DPF(x) vxdTraceString(x)
// #define DPD(x,y) vxdTraceOut(x,y)
#else
#define DPF(x)
#define DPD(x,y)
#endif
#ifdef DEBUG
#define BREAK _asm { \
int 3 \
}
#else
#define BREAK
#endif
//----------------------------------------------------------------------------
// STRUCTURES
//----------------------------------------------------------------------------
/* structure to hold the VxD related information */
typedef struct _DRIVEROBJECT
{
WORD wWindowsVersion;
WORD wVxDVersion;
WORD wStaticLoaded;
WORD wDynamicLoaded;
DWORD dwDeviceCBOffset;
BYTE szVxDName[0x10];
PVOID pClientManager;
PVOID pLoaderObject;
WORD wDeviceCount;
PVOID *pDeviceList;
PVOID pInitObj;
DWORD RegistryHandle;
} DRIVEROBJECT, *PDRIVEROBJECT;
typedef struct _LINADDR
{
DWORD PageOffset :12;
DWORD PageNumber :10;
DWORD PageDirectory :10;
} LINADDR, *PLINADDR;
//----------------------------------------------------------------------------
// MACROS
//----------------------------------------------------------------------------
#define REFERENCE(x) ((x) = (x))
#define FLAGSETM(data,flag,mask) data = (data & ~mask) | (flag & mask)
#define FLAGCLRM(data,flag,mask) data = (data & ~mask) | (~flag & mask)
#define FLAGISSETM(data,flag,mask) (mask & ~(data ^ flag))
#define FLAGISCLRM(data,flag,mask) (mask & (data ^ flag))
#define isdigit(x) ((((x) >= 0) && ((x) <= 9)) ? TRUE : FALSE )
#define hexchar(x) (CHAR)((isdigit(x) ? ((x) + '0') : (((x) - 0xa) + 'A')))
#define iscontrol(c) ( (((c)<= 0) && ((c)<=32)) ? 1 : 0 )
#define toupper(c) ( (((c) >='a') || ((c) <= 'z')) ? ((c) & 0xdf) : (c) )
//----------------------------------------------------------------------------
// CONSTANTS
//----------------------------------------------------------------------------
typedef VOID (*PDBG_FUNCTION)(PVOID pvContext);
//----------------------------------------------------------------------------
// FUNCTIONS
//----------------------------------------------------------------------------
VOID vxdDPCHandlerC ( DWORD dwVMHandle, PVOID pContext,
PVOID pClientRegister );
BOOL vxdIRQHandlerC(DWORD dwVMHandle, DWORD dwIRQHandle, PVOID pvContext);
STATUS vxdDispatcher( DWORD dwVMHandle, WORD wServiceCode, WORD wMessage,
DWORD dwDeviceNode, WORD wDeviceID, DWORD dwParam);
WORD vxdStrLen ( PCHAR pbSource );
BOOL vxdStrCmp ( PCHAR pbSource1, PCHAR pbSource2 );
BOOL vxdStrCopy ( PCHAR pbSource, PCHAR pbDestination );
BOOL vxdMemIsZero ( PVOID pvMemory, WORD wSize );
VOID vxdMemSet ( PVOID pvSource, BYTE bValue, DWORD dwSize );
VOID vxdMemCopy ( PVOID pvSource, PVOID pDestination, DWORD dwSize );
PVOID vxdMalloc ( DWORD dwSize );
VOID vxdFree ( PVOID pvMemory );
VOID vxdDPCHandlerA(VOID);
VOID vxdIRQHandlerA(VOID);
DWORD vxdEnterCritical ( PDWORD );
DWORD vxdLeaveCritical ( DWORD );
DWORD vxdPageLock(PVOID pLinear, DWORD dwSize );
VOID vxdPageUnlock(PVOID pLinear, DWORD dwSize );
DWORD vxdLinearToPhysical ( DWORD dwLinear );
PVOID vxdGetDeviceFromIRQ ( DWORD dwIRQHandle );
PVOID vxdGetDeviceFromDevNode ( DWORD DevNode );
PVOID vxdGetDeviceDefault ( VOID );
BOOL vxdAddDevice ( PVOID pDevice );
BOOL vxdRemoveDevice ( PVOID pDevice );
DWORD vxdGetDeviceNumber ( PVOID pDevice );
DWORD vxdErrorBox ( PCHAR pszCaption, PCHAR pszText );
VOID dbgPrintf(DWORD dwLevel, char * pFormat, ...);
VOID dbgNULL(DWORD dwLevel, char * pFormat, ...);
/*
#ifdef DEBUG
#define DP dbgPrintf
#else
#define DP dbgNULL
#endif
*/
#define DP dbgPrintf
extern PDRIVEROBJECT pDriverObject;
/*
#define Begin_Service_Table(device) \
enum device##_SERVICES { \
device##_dummy = (device##_DEVICE_ID << 16) - 1,
#define Declare_Service(service) \
__##service,
#define End_Service_Table(device) \
Num_##device##_Services};
*/
#endif // _VXSTD_H_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -