[Windows驱动]流媒体驱动开发

时间:2023-03-10 06:49:32
[Windows驱动]流媒体驱动开发

从Windows98开始,Windows流媒体驱动遵循Windows Driver Model(WDM)模型并使用Kernel Streaming(KS)组件。Kernel Streaming(KS)指的是微软公司提供的一组在内核模式下处理流媒体数据的服务。微软提供三种多媒体类驱动模型:port class, stream class, and AVStream。它们三个其实都是大端驱动,分别用于音频、视频和音视频,实现为export drivers(kernel-mode DLLs)portcls.sys, stream.sys and ks.sys。设备提供商只需要基于三者之一写一个minidriver就可以接入windows系统。在windows XP SP2之后,微软还提供了一个USB Video Class驱动模型。

AVStream测试及调试(AVStream Testing and Debugging)

MSDN地址:http://msdn.microsoft.com/en-us/library/windows/hardware/ff554257(v=vs.85).aspx

从Windows7 WDK开始,在WDK路径\tools\目录下提供三个工具,下面我们就来说说这三个工具的用途和用法,具体文档可以在工具目录下找到。

1、GraphEdt

GraphEdt.exe is a development tool for visually building functional multimedia filter graphs using the DirectShow application programming interface.

GraphEdt includes three binary components: GraphEdt.exe (the application), GraphEdt.chm (the help documentation), and Proppage.dll (a helper filter). Proppage.dll exposes additional property settings for filters when registered with the operating system using the command "regsvr32 proppage.dll". The regsvr32 command must be run at elevated privilege level.

GraphEdt binaries are provided for x86-based and x64-based architectures. GraphEdt runs on Microsoft Windows 2000, XP, Windows 2003 Server, Windows Vista, and Windows 7.

KsStudio

KsStudio.exe (Kernel Streaming Development Studio) is a development tool used to examine multimedia driver properties, pins, and supported media.

The Windows 7 WDK includes KsStudio binaries for the x86-based and x64-based architectures. Additionally, there is a version for Windows XP and Windows 2003 Server in the XP folder (for both x86 and x64). For Windows 7, the binaries are KsStudio.exe (the application), KsStudio.chm (the help documentation), and KsMon.sys (a helper device driver). For XP and Windows 2003 Server, there is also SndAnlyz.dll (a helper file).

KsStudio is a kernel development tool, and therefore should be used carefully. KsStudio.exe must write a summary log to the starting directory, which must have write access for the user. KsStudio attempts to load its helper driver KsMon.sys. This loading is optional and will only succeed if KsMon.sys is in the starting directory and the command is run at elevated privilege level. Typically, KsStudio will present a dialog box titled "KS Studio Filter Options," which allows the user to specify parameters, the most important of which are the Classes to enumerate. Use the Classes button on that dialog box to select none, any, or all classes.

This is a complex, yet elegant, and very handy development tool for multimedia device authors. For more information, refer to the KsStudio.chm help file.

USBView

USBView.exe (USB Video Class descriptor viewer) is a development tool that allows the user to examine the descriptors on any attached USB device. USBView ships in the Windows Driver Kit (WDK) as a sample in the USB section. USBView adds descriptive descriptor information for multimedia USB Audio and Video Class devices.

Note  In the Windows 7 WDK, this tool is titled UVCView.

USBView includes one binary component: USBView.exe. In the WDK, this executable is located in the tools\avstreamfolder hierarchy. For documentation, see the USBView sample in WDKPath\src\usb\usbview.

USBView binaries are provided for x86-based and x64-based architectures. USBView runs on Microsoft Windows 2000, XP, Windows 2003 Server, Windows Vista, and Windows 7.

The following tools are provided in earlier versions of Windows and are not recommended for use on Windows 7 and later:

AMCap2

AMCap2.exe (Active Movie Capture) is an application for enumerating and using audio and video capture devices with the Microsoft DirectShow application programming interface.

AMCap2 includes one binary component: AMCap2.exe.

AMCap2 binaries are provided for x86-based and x64-based architectures. AMCap2 runs on Microsoft Windows 2000, XP, Windows 2003 Server, and Vista.

When AMCap2 initializes, it enumerates available audio and video capture devices on its device menu. You can select none or one audio and/or video device. On the Settings menu, you can select specific device attributes.

For more information about DirectShow, see the DirectShow documentation on MSDN.

The AMCap2.exe tool appears in the Windows Server 2008 WDK and earlier versions of the WDK. The tool has been removed from the Windows 7 WDK for both x86-based and x64-based platforms.

All the functionality of AMCap2 is still available in the existing GraphEdt tool, which is included in the Windows 7 WDK.

MCStream

MCStream.exe (MultiChannel Streaming Tool) is a development tool that allows the user to generate and render multiple channel wave tones. MCStream is an older tool that uses KS directly, instead of DirectShow or Media Foundation.

Warning  MCStream does not work with all audio renderers.

MCStream includes two binary components: MCStream.exe (the application) and MCStream.txt (the help documentation).

MCStream binaries are provided for x86-based and x64-based architectures. MCStream runs on Microsoft Windows 2000, XP, Windows 2003 Server, and Vista.

The MCstream.exe tool is not included in the Windows 7 WDK for both x86-based and x64-based platforms.

This tool uses legacy technology that is no longer recommended for driver development in Windows 7 and later operating systems.