PB5.0开发流驱动框架的流程(图文)
在已有的工程文件中添加新的驱动程序的流程:
1 打开PB5.0,File->Openworkspace->ProHandle->*.pbxml,打开编译好的工程。图1
2 添加一个DLL文件
File->New Project or File,在弹出的对话框中,做如下工作:
(1) 在Projects标签页下选择WCE Dynamic-Link Library
(2) 在Projects name中填入工程名:STD_DRV
(3) 在Location里选择路径:C:\WINCE500\PLATFORM\bvdmain\drivers\STD_DRV
(4) 在右下角选择:Sources Project
(5) 单击OK
图2
3 填写一些信息,生成readme文件,点击Next
4 选择A simple Windows CE DLL Project,点击Next
图3
5 选择Add to the current DIRS project,单击Finish
图4
6 点击Finish完成向导后,会在驱动文件夹下生成一个STD_DRV的文件,里面包含了7个文件:
Makefile,sources,STD_DRV.cpp,STD_DRV.def,StdAfx.cpp,StdAfx.h和ReadMe.txt
图5
其中,在STD_DRV文件里自动生成了一个dll入口函数:
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
return TRUE;
}
7 编写流驱动程序,实现接口函数。在STD_DRV.cpp里编写函数。
8 完成驱动后,还要在注册表中注册设备驱动程序
进入注册表安装一个新的驱动程序需要通过编辑子工程的paltform.reg文件来完成。注册表文件(*.reg)最终是要自动合并的,而且还会被复制进入目标设备初始化的注册表中。在子工程的注册表文件中必须包含注册表入口,设备管理器才能找到相应的驱动程序。
[HKEY_LOCAL_MACHINE\Drives\BuiltIn\STD_DRIVER]
“Dll” = “STD_DRV.Dll”
“Prefix” = “STD”
“Index” = dword:1
“Order” = dword:0
“FriendlyName” = “Standard Driver”
“Ioctl” = dword:0
9 将设备驱动程序打包到WindowsCE的镜像文件中
把一个新的文件加到内核的具体方法是:打开驱动程序所在的子工程的*.bib配置文件,把要加的文件写上去就可以了。对于上面演示驱动程序,需要把STD_DRV.dll加到内核里,添加格式如下:
MODULES
STD_DRV.dll $(_FLATRELEASEDIR) \STD_DRV.dll NK SHK
10 创建设备驱动程序的.def文件
该驱动子工程需要一个.def文件导出相应的函数。
11 编写驱动测试程序