[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.
[Windows驱动]流媒体驱动开发的更多相关文章
- 2013-6-2 [转载自CSDN]如何入门Windows系统下驱动开发
[序言]很多人都对驱动开发有兴趣,但往往找不到正确的学习方式.当然这跟驱动开发的本土化资料少有关系.大多学的驱动开发资料都以英文为主,这样让很多驱动初学者很头疼.本人从事驱动开发时间不长也不短,大概 ...
- 如何正确入门Windows系统下驱动开发领域?
[作者]猪头三个人网站 :http://www.x86asm.com/ [序言]很多人都对驱动开发有兴趣,但往往找不到正确的学习方式.当然这跟驱动开发的本土化资料少有关系.大多学的驱动开发资料都以英文 ...
- Windows 文件过滤驱动经验总结
Windows 文件过滤驱动经验总结作者:sinister 本文转载自驱动开发网 看了 ChuKuangRen 的第二版<文件过滤驱动开发教程>后,颇有感触.我想,交流都是建立在平等的基础 ...
- Linux与Windows的设备驱动模型对比
Linux与Windows的设备驱动模型对比 名词缩写: API 应用程序接口(Application Program Interface ) ABI 应用系统二进制接口(Application Bi ...
- 分享CCNTFS小工具,在 macOS 中完全读写、修改、访问Windows NTFS硬盘的文件,无须额外的驱动(原生驱动)更稳定,简单设置即可高速传输外接NTFS硬盘文件
CCNTFS [ 下载 ] 在 macOS 中完全读写.修改.访问Windows NTFS硬盘的文件,无须额外的驱动(原生驱动)更稳定,安装后进行简单设置即可高速传输外接NTFS硬盘文件,可全程离线使 ...
- UDAD 用户故事驱动的敏捷开发 – 演讲实录
敏捷发展到今天已经在软件行业得到了广泛认可,但大多数敏捷方法都是为了解决某一特定问题而总结出来的特定方法或实践,一直缺乏一个可以将整个开发过程串接起来的成体系的方法.用户故事驱动的敏捷开发(User ...
- 用户故事驱动的敏捷开发 – 2. 创建backlog
本系列的第一篇[用户故事驱动的敏捷开发 – 1. 规划篇]跟大家分享了如何使用用户故事来帮助团队创建需求的过程,在这一篇中,我们来看看如何使用这些用户故事和功能点形成产品backlog.产品backl ...
- 构建你的长寿命的API第1部分:规范驱动的API开发
构建你的长寿命的API第1部分:规范驱动的API开发 这篇文章是由MuleSoft的Mike Stowe在nginx.conf 2016公布的演示文稿改编的.第一部分重点是规范驱动的API开发. 第二 ...
- S3C2440上LCD驱动(FrameBuffer)实例开发讲解
一.开发环境 主 机:VMWare--Fedora 9 开发板:Mini2440--64MB Nand, Kernel:2.6.30.4 编译器:arm-linux-gcc-4.3.2 二.背景知识 ...
随机推荐
- hiho_1070_RMQ
题目 区间最小值查询,但是支持对数组中的任意数字进行修改. 分析 采用RMQ_ST算法的O(1)算法不支持修改,因为每次修改都要重新设置动归数组.因此采用线段树解决,修改和查询的复杂度均为O(logN ...
- 七大查找算法(附C语言代码实现)
来自:Poll的笔记 - 博客园 链接:http://www.cnblogs.com/maybe2030/p/4715035.html 阅读目录 1.顺序查找 2.二分查找 3.插值查找 4.斐波那契 ...
- 在滚动列表中实现视频的播放(ListView & RecyclerView)
英文原文:Implementing video playback in a scrolled list (ListView & RecyclerView) 本文将讲解如何在列表中实现视频播放. ...
- C++模板特化
一 ."函数模板"与"模板函数" 下面几行代码就是一个"函数模板" template <class T> T abs(T x) ...
- android内存泄露小谈
在做android的时候,用的语言大部分情况下都是java.以前最开始做的是编译器开发, 大部分情况都是用c语言和x86与arm架构的汇编,后来接触到ios用的是OC.对比之下, 感觉还是java用起 ...
- CentOS下安装setuptools、pip和virtualenv
已经安装了Python,现在我们可以最终确定完成应用程序生产和部署的基础知识.为此,我们将设立两个最常用的工具:PIP封装经理和virtualenv中的环境管理. 一.安装setuptools set ...
- 丢失Ref Edit Control的解决方法
2010版本excel编制的带有控件的VBA,换在别的电脑使用有可能会出现“找不到工程或库”的错误,在VBE编辑器,打开工具——引用,可以看到“丢失 Ref Edit Control”解决方法是,先把 ...
- 《Java程序设计》第二周学习总结
20145224陈颢文<Java程序设计>第二周学习总结 教材学习内容总结 一.类型.变量与运算符 1.类型 整数: 可细分为为short整数(占2字节),int整数(占4字节),long ...
- Linux下把Mysql和Apache加入到系统服务里
Linux下注册Apache与MySQL为系统服务 Apache加入到系统服务里面: cp /安装目录下/apache/bin/apachectl /etc/rc.d/init.d/httpd 修改h ...
- thinkjs——空对象判断
使用thinkjs来做后台的项目开发时,总免不了进行一些数据的唯一性校验,比如说:有这么一个页面,需要对钢厂的名称做一个校验,于是自己在后台做条件搜索时,一不小心用到了两种方法: 一个是find(), ...