Windows XP下USB轉串口驅動編碼實現分析

       USB轉COM驅動的編寫實現有很多中方法,最近在網絡上看到一個最常用的方式,即是虛擬一個COM口,在COM初試的時候進行打開一個USB設備.

       當USB串COM口驅動處理Write和Read 等IRQ的時候,其實是去讀寫USB 設備驅動,讀寫方式是直接採用ZwReadFile和ZwWriteFile函數.但是真正的實現也不是這麼簡單,真實的實現是開闢一個線程和一段較大的緩衝區,線程用於適時讀取USB設備的數據並保存在緩衝區當中.當上層應用程序向這個虛擬的COM口發送READ IRP(IRP_MJ_READ)的時候,則直接從這段緩衝區中讀取數據返回即可.當然還不要忘記處理超時的問題處理.

       因此USB轉COM驅動在INF文件加載的時候實際上需要加載兩個驅動程序,一個是USB驅動,對應與USB設備的VID和PID,另外一個就是COM虛擬驅動程序,需要對應設置COM口號.如下將對關鍵代碼列出;

  • 創建COM口設備對象

  • 獲取USB設備名稱用於打開設備

  •     打開USB設備端口 

    其他的驅動程序處理都是常規處理,在這裏就不多做介紹!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章