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

📄 vxdmain.h

📁 自动生成虚拟设备驱动(VXD)的C++代码的一个库 COOL!
💻 H
字号:
/***************************************************************
* Header file to emit DDB for VxD generated by VxDWriter.      *
*                                                              *
* Copyright (c) 1997 by Somnath Kundu.  All Rights Reserved.   *
****************************************************************/

#ifndef _VXDMAIN_H
#define _VXDMAIN_H

#ifdef __cplusplus
extern "C" {
#endif

#pragma pack(1)

#pragma VxD_LOCKED_DATA_SEG

void _cdecl __CtlDispatch (void);
void _cdecl __Ctl_v86_api (void);
void _cdecl __Ctl_pm_api (void);

#if defined V86_API_PROC
API_PROC *__V86_API_Proc = &V86_API_PROC;
#define V86_Proc  (ULONG)__Ctl_v86_api
#else
#define V86_Proc  0
#endif

#if defined PM_API_PROC
API_PROC *__PM_API_Proc = &PM_API_PROC;
#define PM_Proc  (ULONG)__Ctl_pm_api
#else
#define PM_Proc  0
#endif

#if defined CREATE_SERVICE_TABLE
#define BEGIN_SERVICE_TABLE_MAP()  \
void *__ServiceTable[] = {  
#define END_SERVICE_TABLE_MAP()  \
  };
#define SRV_TAB_PTR  (ULONG)__ServiceTable
#define SRV_TAB_LEN  (sizeof(__ServiceTable)/sizeof(__ServiceTable[0]))
#else
#define SRV_TAB_PTR  0
#define SRV_TAB_LEN  0
#endif

#ifndef REFERENCE_DATA
#define REFERENCE_DATA_PTR   0
#else
#define REFERENCE_DATA_PTR   ((DWORD)&REFERENCE_DATA)
#endif

#if defined(DEBUG) || defined(_DEBUG)
#define DEBUG_SIG(VxD_Name) \
static char *__DEBUG_SIG = {"\x0D\x0A\x44_E_B_U_G===>"#VxD_Name"<===\x0D\x0A"};
#else
#define DEBUG_SIG(VxD_Name)
#endif

// struct VxD_Desc_Block VxD_Name##_DDB =                                \

#define DECLARE_VIRTUAL_DEVICE(VxD_Name)    DEBUG_SIG(VxD_Name)       \
struct VxD_Desc_Block thisDDB =                                       \
   {0,DDK_VERSION,VxD_Name##_DEVICE_ID,VxD_Name##_MAJOR_VER,          \
   VxD_Name##_MINOR_VER, 0,#VxD_Name,VxD_Name##_INIT_ORDER,           \
   (ULONG)__CtlDispatch,V86_Proc,PM_Proc,0,0,REFERENCE_DATA_PTR,      \
   SRV_TAB_PTR,SRV_TAB_LEN,0,0x50726576,                              \
   sizeof(struct VxD_Desc_Block),0x52737631,0x52737632,0x52737633};   \

   
#define BEGIN_CONTROL_DISPATCH_MAP(VxD_Name)  \
DECLARE_VIRTUAL_DEVICE(VxD_Name)              \
struct {                                      \
       DWORD Message;                         \
       CONTROL_PROC *MsgProc;                 \
   } __CtlDispatchTable[] = {                 \


#define END_CONTROL_DISPATCH_MAP()            \
   };                                         \
DWORD  __CtlDispatchTableSize =               \
sizeof(__CtlDispatchTable)/sizeof(__CtlDispatchTable[0]); 

#pragma pack()

#ifdef __cplusplus
}
#endif

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -