Windows網路攝影機驅動研究(一)

來源:互聯網
上載者:User

標籤:驅動開發   windows 7   

Windows 驅動基礎系列,轉載請標明出處:http://blog.csdn.net/ikerpeng/article/details/38865317


網路攝影機驅動的主要目的是通過通過硬體捕捉視頻訊號。


WDM網路攝影機驅動架構。

主要包括兩種的驅動ClassDriver(由Windows提供,為了統一標準), MiniDriver(由程式員實現)


Class Driver:

與作業系統互動,包括處理同步,提夠標準介面。

Mini Driver:

主要由類驅動調用,負責具體的硬體相關的操作。

通過一個圖看看他們的關係:

                                     

其中SRB是 Stream Request Block。


初始化:

1. 隨插即用的裝置,插入後調用Mini Driver的 DriverEntry常式;

2 Mini Driver 在自己的DriverEntry中填充HW_INITIALIZATION_DATA,然後返回StreamClassRegisterMinidriver;

3. Class Driver 中初始化一個SRB_INITIALIZE_DEVICE類型的SRB,這個SRB中的CommandData.ConfigInfo記錄著網路攝影機硬體的相關資訊;

    這個SRB會傳遞給小驅動,小驅動會由此得到一些硬體的資訊並返回;同時告知類驅動,小驅動已經初始化完畢。

4. 然後類驅動再向小驅動發送一個SRB:SRB_GET_STREAM_INFO, 由此獲得:HW_STREAM_HEADER 資料資訊和 HW_STREAM_INFORMATION等資訊這些資訊中包括了網路攝影機驅動中提供的視頻映像的大小,映像的格式等資訊;

5. 然後類驅動再發送一個 HW_STREAM_INFORMATION的SRB,這次請求以後,小驅動應該做完所有的初始化操作,並返回給驅動程式。


·每個Minidriver都必須提供的常式:


StrMiniCancelPacket: 對 HW_SRB資料包進行取消的回呼函數;

StrMiniReceiveDevicePacket: 擷取 HW_SRB資料包的回呼函數;

StrMiniRequestTimeout : 對HW_SRB資料包進行逾時處理的回呼函數;

StrMiniEvent: 使小驅動支援某一事件;

StrMiniInterrupt: 當驅動遇到中斷時調用的回呼函數;

·Minidriver為每個單獨的流提供的常式:

StrMiniReceiveStreamDataPacket:對於擷取資料流的回呼函數

StrMiniReceiveStreamControlPacket: 對於控制資料流的回呼函數

StrMiniEvent: 使資料流支援一種事件

StrMiniClock: 對於數字流時鐘控制的回呼函數。


我們再來看一下驅動程式的工作流程:


1. 裝置插入,被隨插即用裝置管理器檢測到;

2. 於是建立PDO,產生相應的IRP;

3. 於是I/O子系統載入MiniDriver,並進入到DriverEntry;

4. 在DriverEntry裡面初始化:HW_INITIALIZATION_DATA 資料結構(其中包括控制SRB的HwReceivePacket);

5.類驅動程式構造SRB,並將其Command設定為SRB_INITIALIZATION_DEVICE;

6,. 將此SRB作為參數,調用HwReceivePacket;

7,如此類似構造:open close等等的SRB,調用HwReceivePacket。


本節完。


參考書目:

《 Windows 驅動開發技術詳解 》

Windows網路攝影機驅動研究(一)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.