内核流驱动 第一章 内核流纵览

本文档详细介绍了内核流的概念,重点聚焦于过滤器的使用,为理解微软扩展的内核流驱动打下基础。通过对第一章的学习,读者将能够掌握内核流的基本构成和工作原理。
摘要由CSDN通过智能技术生成
第一章 内核流纵览
内核流Kernel Streaming(KS)驱动模型支持多媒体设备,例如声卡和电视调谐器卡。本章描述了内核流的一般的概念。
 
1.1 内核流概念概要
多媒体设备可以支持多种多样的技术。为了更好地支持这些设备的更大的范围,微软引入了内核流驱动模型。支持内核流模型的驱动可以向操作系统报告它们的性能。编写在内核流模型上面运行的客户端可以确定它运行的平台的多媒体的性能。内核流是窗口驱动模型(WDM)的一部分。
KS驱动可以过滤器和功能驱动。操作系统可以装载过滤器驱动来透明地扩展平台的多媒体性能。
 
1.1.1 内核流客户端接口
内核流驱动提供给客户端的接口由一组文件对象组成。每个文件对象表现了驱动的不同的性能。客户端向文件对象发出I/O和请求来控制驱动的不同方面。
内核流驱动的文件对象有几种不同的族:

l         过滤器(Filters

KS过滤器封装了设备的功能单元。驱动可以支持同一个过滤器的多个实例。多功能设备的驱动可以支持几种不同类型的KS过滤器。不要把KS过滤器和过滤器驱动搞混 - KS驱动的每一种类型,要么功能要么过滤器,都有它创建一个或多个KS过滤器文件对象。
l          Pins
pin表示了设备上的一个I/O途径。客户端可以连接到pins,然后连接pins到其它的pins。客户端也可以向一个pin查询它支持的数据类型。
l          时钟(Clocks
支持主板上的时钟的驱动把时钟作为一个文件对象暴露出来。客户端可以查询时钟时间,也可以请求当时钟到达某时间时被通知。
l          分配器(Allocators
支持自定义内存管理接口的驱动,例如,设备主板内存的管理,把接口作为一个文件暴露出来。客户端可以使用文件对象来分配和释放内存。
 
KS文件对象是按层次组织起来的 - 客户端用IRP_MJ_CREATE来实例化驱动上的KS过滤器,然后轮流用IRP_MJ_CREATE来实例化过滤器上的pins,时钟和pins上的分配器。
内核流体系结构为驱动和客户端的交互提供了一个可扩展的机制。KS对象支持几种不同的语义概念:
l          属性
KS对象支持属性。客户端可以询问对象来确定它支持的属性类型,然后它可以取得或者设置这些属性。例如,音频驱动pins可以支持允许客户端取得或设置设备音量的属性。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值