您的位置:首页 > 其它

wince下添加自己的流接口驱动

2009-11-02 11:37 357 查看
前天做一个IO驱动。驱动倒是简单,但也算摸清点wince下流接口驱动的加载及卸载。非常感谢C151151的帮助。其实C151151已经做了很详细的说明了。现转载如下:

二种方法加驱动--->NK.bin

方法一:
1. dll文件放到 C:/WINCE500/PLATFORM/AT4X0BD/FILES目录中.

2. platform.reg
;----------------------------------------------------------------------------
;MyDriver.dll //20080305
;----------------------------------------------------------------------------
[HKEY_LOCAL_MACHINE/Drivers/BuiltIn/MyDevDrv]
"Prefix"="STR"
"Dll"="MyDriver.dll"
"Order"=dword:1

3. platform.bib
;------------------------------------------------------
;MyDriver.dll //20080305
;------------------------------------------------------
MyDriver.dll $(_FLATRELEASEDIR)/MyDriver.dll NK SH

调用方法:
HANDLE hStr=CreateFile(TEXT("STR1:"), GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,0);

if (INVALID_HANDLE_VALUE == hStr)
{
::MessageBox(NULL, _T("Cannot open STR1:"), _T("StringApp"), MB_OK);
return;
}

// Write a string to the driver.
DWORD dwWritten = 0;
WCHAR* pString = TEXT("This is a test of the String Driver. This is o-nly a test");
WriteFile(hStr, pString, (_tcslen(pString)+1), &dwWritten, NULL);

// Read string from driver.
WCHAR wch[BUFFER_SIZE];
DWORD dwBytesRead = BUFFER_SIZE;
memset(&wch, '/0', BUFFER_SIZE * sizeof(WCHAR));
ReadFile(hStr, wch, sizeof(wch), &dwBytesRead, NULL);
::MessageBox(NULL, wch, TEXT("StringApp"), MB_OK);

// Disconnect from driver.
CloseHandle(hStr);

方法二:

为了让CEPB Debug代码.

1. 在platform/CPU's folder/drivers 下新建一个目录,然后在drivers目录中的dirs文件中加入以你刚 新建的目录名.

2. 在刚新建的目录下,新建你的C源代码文件,在其中实现上面所述的函数,及其功能。
新建名称分别为sources, makefile, mydev.def的文件。

(1)
makefile: 只需要这样一行
!INCLUDE $(_MAKEENVROOT)/makefile.def

(2)
mydriver.def
LIBRARY MyDev(这个字符串要和将要生成的动态库的文件名一样)

EXPORTS
XXX_Init
XXX_Deinit
XXX_Open
XXX_Close
XXX_PowerOff
XXX_Power_Down
XXX_IOControl

(3)
Sources:
TARGETNAME=MyDev (指定要生成的动态库的名称)
TARGETTYPE=DYNLINK (指定要生成的是一个动态库)
(下面两项指定需要与哪些动态库链接, 一般要第一项就足够了)
TARGETLIBS=$(_COMMONSDKROOT)/lib/$(_CPUINDPATH)/coredll.lib /
$(_COMMONOAKROOT)/lib/$(_CPUINDPATH)/ceddk.lib

DEFFILE=MyDev.def (指定def文件)

DLLENTRY=DllEntry (指定动态库的入口函数)

SOURCES= (请在这写上你所有源文件的名字,它们将会被编译)

//也必须修改.bib, .reg等文件,这样系统才能调用.
(4) platform.reg
;----------------------------------------------------------------------------
;MyDriver.dll //20080305
;----------------------------------------------------------------------------
[HKEY_LOCAL_MACHINE/Drivers/BuiltIn/MyDevDrv]
"Prefix"="STR"
"Dll"="MyDriver.dll"
"Order"=dword:1

(5) platform.bib
;------------------------------------------------------
;MyDriver.dll //20080305
;------------------------------------------------------
MyDriver.dll $(_FLATRELEASEDIR)/MyDriver.dll NK SH

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: