3G網(wǎng)絡(luò ):汽車(chē)防盜報警視頻監控“新助手”
WindowsCE流接口驅動(dòng)程序是具有定制接口的驅動(dòng)程序,表現為在用戶(hù)一級的動(dòng)態(tài)鏈接庫DLL,是一般類(lèi)型的設備驅動(dòng)程序。流接口驅動(dòng)程序中用來(lái)實(shí)現一組固定的函數稱(chēng)為流接口函數,這些流接口函數使得應用程序可以通過(guò)文件系統訪(fǎng)問(wèn)這些驅動(dòng)程序。流接口驅動(dòng)程序幾乎支持任何類(lèi)型的可以連接到基于WindowsCE.net的平臺外部設備,其中包括USB設備。
流接口驅動(dòng)程序的主要任務(wù)是把外設的使用傳遞給應用程序,這是通過(guò)把設備表示為文件系統的一個(gè)特殊文件實(shí)現。應用程序通過(guò)文件系統的API函數調用流接口函數,然后流接口驅動(dòng)程序調用本機驅動(dòng)或者通過(guò)設備管理器與系統內核或外圍打交道。
2.1 攝像頭驅動(dòng)程序的流接口函數的實(shí)現
開(kāi)發(fā)攝像頭驅動(dòng)程序涉及到一組標準的流接口驅動(dòng)程序的函數,如CAM_Init()、CAM_Deinit()、CAM_Open()、CAM_Read()等,這些函數是接口驅動(dòng)程序的DLL接口,其中CAM_Init()、CAM_Open()、CAM_Read()和CAM_IOControl()最為重要。下面對這些重要函數進(jìn)行詳細介紹。
?。?)CAM_Init()
CAM_Init()函數是通過(guò)設備管理器提供的ActiveDeviceEx()函數調用。在設備初始化時(shí)通過(guò)ActiveDeviceEx()將設備句柄信息寫(xiě)入DriversActive下面,當應用程序初始化時(shí),注冊表的地址將以Context參數形式傳給CAM_Init(),利用RegOpenKeyEx()、RegQueryValueEx()等函數執行打開(kāi)和讀寫(xiě)注冊表操作,等執行成功后返回USB設備的句柄信息等。驅動(dòng)程序的部分源代碼:
?。?)CAM_Open()
在對設備進(jìn)行讀操作之前,首先要先通過(guò)執行CeratFile()來(lái)調用CAM_Open()打開(kāi)設備,CAM_Open()所需的第一個(gè)參數是應用程序初始化時(shí)由CAM_Init()返回的設備句柄等信息,然后將設備關(guān)閉的事件設為無(wú)信號狀態(tài)。
評論