Windows 虛擬攝像頭驅動開發之 基於AVstream流內核的攝像頭驅動

by fanxiushu 202-03-01 轉載或引用請註明原始作者。

對於windows平臺下的虛擬攝像頭實現方式的研究比較多,範圍也比較廣,曾採用各種方式來實現windows平臺下的虛擬攝像頭。
從CSDN上的第一篇文章開始:
https://blog.csdn.net/fanxiushu/article/details/8496747 (虛擬攝像頭驅動原理開發)
文章描述的是利用老的流內核來實現的虛擬攝像頭,調用stream.sys中導出的StreamClassRegisterAdapter 來註冊和初始化攝像頭。
這種攝像頭其實依然是WDM基於內核驅動模式的攝像頭,絕大部分程序會把他當成硬件攝像頭,只是直到WIN10以上的系統中,
特別是UWP程序,由於放棄了老舊流內核,因此UWP程序基本上不能識別這種基於stream.sys的攝像頭。

再後來,實現了虛擬USB總線驅動之後,利用虛擬USB總線驅動模擬出了虛擬USB攝像頭。
https://blog.csdn.net/fanxiushu/article/details/52761644 ( USB設備驅動開發之擴展(利用USB虛擬總線驅動模擬USB攝像頭)
而這種驅動,本質上是調用windows自己提供的usbvideo.sys驅動,usbvideo.sys驅動根據USB通訊中描述符提供的信息,
動態生成硬件攝像頭,俗稱USB攝像頭。而我們再研究usbvideo.sys驅動,本質上它是基於 AVStream框架的流內核框架的驅動,
它調用 ks.sys提供的 KsInitializeDriver 來註冊和初始化攝像頭。
這篇文章就是基於AVstream框架,深入windows平臺實現攝像頭驅動本質。
簡單的說,現代的windows系統中

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