SP,全称Service Provider,是CEN规范中,用于控制硬件设备(或虚拟设备)的程序,其最大的作用是将XFS指令,转化为硬件驱动的指令,并实现一定的控制流程。让我们来看一下,一个简单的SP程序需要从何开始开发:
- 运行环境:Windows XP / Windows 7 32bit
- 开发工具:VS 2003 或更新版本;
- 程序类型:动态库(dll);
- 开发语言:C++;
SP的dll是SP必须的部分(有些简单的SP只有一个dll),该dll由XFS Manager进行加载(但实际上是应用的进程空间,XFS Manager本身也是dll),加载过程将在后文单独描述;dll需要导出几个函数接口,供XFS Manager调用,这些函数接口在CEN文档的第1部分均有描述,代码如下:
LIBRARY "SPInterface"
EXPORTS
; 此处可以是显式导出
WFPOpen;
WFPClose;
WFPLock;
WFPUnlock;
WFPRegister;
WFPDeregister;
WFPGetInfo;
WFPExecute;
WFPCancelAsyncRequest;
WFPSetTraceLevel;
WFPUnloadService;
类SPInterface是该动态库对应的类名;
以上接口中,最重要的是WFPOpen、WFPClose、WFPRegister、WFPDeregister、WFPGetInfo、WFPExecute这几个接口函数,功能如下:
- WFPOpen:顾名思义,打开SP;
- WFPClose:关闭SP;
- WFPRegister:注册事件窗口,注册完成后,SP将会向所有已经注册过的窗口抛送Event(特殊情况除外);
- WFPDeregister:注销事件窗口,注销后,SP将不会向此窗口抛送Event(特殊情况除外);
- WFPGetInfo