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系统中

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