WinCE驅動編寫小結
#define IOCTL_INIT_PORTS CTL_CODE(FILE_DEVICE_UNKNOWN,0X801,METHOD_BUFFERED,FILE_ANY_ACCESS)
8)void XXX_PowerDown(DWORD hDeviceContext);
hDeviceContext:XXX_Init的返回值。
負責設備的上電控制。
9)void XXX_PowerUp(DWORD hDeviceContext);
hDeviceContext:XXX_Init的返回值。
負責設備的斷電控制
10) DWORD IOC_Seek(DWORD hOpenContext, long Amount, WORD Type)
hOpenContext:XXX_Open返回值。
Amount:指針的偏移量。
Type:指針的偏移方式。
將設備的數據指針指向特定的位置,應用程序通過SetFilePointer函數間接調用。不是所有設備的屬性上都支持這項功能。
5、流接口驅動的加載和注冊表設置:
系統(tǒng)啟動時啟動設備管理程序,設備管理程序讀取HKEY_LOCAL_MACHINEDriversBuiltIn鍵的內容并加載已列出的流接口驅動程序。因此注冊表對于驅動的加載有著關鍵作用。下面是一個例子:
【HKEY_LOCAL_MACHINEDriversBuiltIIOControler】
“Prefix”=”XXX”
“Dll”=”drivername.dll”
其中,“Prefix”=“XXX”中的XXX要和XXX_Init等函數中的一樣。CreateFile創(chuàng)建的驅動名前綴也必須和它們一致。
6、驅動程序的編寫、編譯及其相關目錄、配置文件的格式和修改:
1)首先必須在PB相應平臺的的driver目錄下建立要創(chuàng)建的驅動所在的目錄。如在x:Wince420platformsmdk2410drivers目錄下建立一個IOCtrol目錄。
2)修改Drivers目錄下的dirs文件。
3)創(chuàng)建驅動源文件XXX.c,在該文件中實現上述流接口函數。并且加入DLL入口函數:
BOOL DllEntry(HINSTANCE hinstDll, /*@parm Instance pointer. */
DWORD dwReason, /*@parm Reason routine is called. */
LPVOID lpReserved /*@parm system parameter. */
)
4)創(chuàng)建Makefile和Sources和.def文件,控制編譯。
5)使用CEC Editor修改cec文件,編譯添加的新特性。
6)復制新生成的4個文件到Release目錄下,修改注冊表文件platform.reg和platform.bib文件。
7)Make Image。
8)DownLoad Image。
評論