Windows XP 和 Windows Server 2003 及更高版本的操作系统可以独占控制 PCI 本地总线 规范定义的配置空间标头以及功能链接列表中的所有功能。 驱动程序不得尝试修改这些寄存器。

但是,驱动程序可以使用 IRP _ MN _ 写入 _ 配置请求或总线接口标准的 SetBusData 方法, _ 将不属于该标头的配置空间写入到供应商定义的功能列表 _ 。 驱动程序还可以使用 IRP _ MN _ read _ CONFIG 请求或总线接口标准的 GetBusData 方法读取 _ 设备的功能 _ 。 若要使用 IRP _ MN _ READ _ config 或 IRP _ MN _ WRITE _ CONFIG,驱动程序必须在被动 _ 级别运行。 有关驱动程序可以查询的功能列表和相应结构,请参阅 PCI 结构 部分。在WDF程序可以通过WdfFdoQueryForInterface函数得到BUS_INTERFACE_STANDARD。

驱动程序可以从扩展 PCI 设备配置空间读取 (也就是说,使用 IRP _ MN _ read _ CONFIG 请求或总线接口标准的 GetBusData 方法时 _ ,超过256字节的配置数据) _ 。 同样,驱动程序可以使用 IRP _ MN _ 写入 _ 配置请求或总线接口标准的 SetBusData 方法, _ 写入扩展 PCI 设备配置空间 _ 。 如果设备没有扩展配置空间或平台未定义设备上扩展配置空间的路径,则读取请求将返回0xFFFF 并且写入请求将不起作用。 若要确定操作是否成功,驱动程序可以检查读取或写入的字节数。

PCI Express 和 PCI-X 模式2支持

WDF驱动中访问 PCI 设备配置空间相关推荐

  1. win7构建成功helloworld驱动、WDF驱动中KMDF与UMDF区别

    做一个myhello.c, #include <ntddk.h>VOID DriverUnload(PDRIVER_OBJECT driver) {DbgPrint("goodb ...

  2. WDF驱动中KMDF与UMDF区别

    众所周知, 早期的Windows 95/98的设备驱动是VxD(Virtual Device Driver),其中x表示某一类设备.从Windows 2000开始,开发驱动程序必以WDM(Window ...

  3. 驱动中如何访问CPU中的寄存器?

    如果都是在memory空间的话,CPU内部的寄存器(非CPU核的寄存器)和外设上的寄存器地位是同等的,因此映射方法也是2种:1是静态映射(S3C2410的基本上是这种),2是ioremap,注意映射的 ...

  4. PCIE设备访问及其配置空间

    早期的PCI时期,系统为每个PCI设备分配的内存大小仅有256个Bytes.到后来的PCIE时期,随着设备性能增强,PCIE设备的配置空间扩展至4K个Bytes.在这里需要注意: PCIE一共支持25 ...

  5. [转]PCI配置空间简介

    PCI配置空间简介  作者:敏行 PCI有三个相互独立的物理地址空间: 设备存储器地址空间. I/O地址空间和 配置空间. 配置空间是PCI所特有的一个物理空间.由于PCI支持设备即插即用,所以PCI ...

  6. 如何在DOS中枚举PCI设备

    From:http://blog.csdn.net/zyl910/article/details/858349 如何在DOS中枚举PCI设备 分类: #All - 所有             微机原 ...

  7. 如何在DOS中枚举PCI设备(作者zyl910)

    File:      zEnumPCI Name:      如何在DOS中枚举PCI设备 Author:    zyl910 Blog:      http://blog.csdn.net/zyl9 ...

  8. NT、WDM、WDF驱动概念

    一.概念介绍   NT是驱动模型:NT式驱动程序模型是一种比较老式的驱动程序模型,但适用于现有的Windows系统.NT式驱动模型没有固定的形式,最简单的NT式驱动程序模型这一特点,程序开发者可以编写 ...

  9. Linux(debian7)操作基础(三)之PCI/PCI-E设备配置空间

    ⑴ 概念 PCI和PCI Express,是计算机常使用的一种高速总线.操作系统中的PCI/PCI-E设备驱动以及操作系统内核,都需要访问PCI及PCI-E配置空间.PCI/PCI-E设备的正常运行, ...

  10. UEFI中的PCI设备扫描及分配Mem/Io空间过程

    最近在调试解决PCI设备相关的问题,然后对UEFI下面的这部分实现有了初步的了解,为了防止后面慢慢的又忘记了,所以还是决定将最近的收获都记录起来,各位读者如果发现哪里记录或者总结的不对,欢迎留言指正. ...

最新文章

  1. WF4.0实战(六):控制WPF动画
  2. ad10怎么挖铺的铜_赣州“云星公园大观”的商铺,5米层高变4.5米,开发商挖地来凑?...
  3. 用扫地机器人楼下吵吗_扫地机器人到底好不好用?说说我两年的使用体验!
  4. scala本地调试_如何编写自己的Java / Scala调试器
  5. 大数据开发你需要知道的十个技术
  6. 学labview的都是什么人_为什么学美术的人,从来都不曾后悔?
  7. linux界面唤醒,Linux计算机实现自动唤醒和关闭的方法步骤详解
  8. Android学习之——ListView下拉刷新
  9. 智能优化算法:果蝇优化算法-附代码
  10. java面经_Java面经
  11. 在简历中使用STAR法则
  12. 百度地图离线开发demo(初始化地图)
  13. 电脑锁屏挂机锁绿色版简单实用工具
  14. HTML正方体滚动特效
  15. python+pytest接口自动化之测试函数、测试类/测试方法的封装
  16. Ubuntu卸载firefox浏览器安装google浏览器
  17. 从python’s revenge看python反序列化
  18. 深入浅出Pairwise 算法
  19. 二进制位两数相加,加数补码的合理取值范围
  20. 【Python】字符串的创建与驻留机制

热门文章

  1. 唯物辩证法-矛盾论(普遍性+特殊性+斗争性+同一性)
  2. ImportError: No module named queue
  3. Mybatis注解实现DAO层
  4. Filter vs Listener
  5. 成功与运气:好运与精英社会的神话
  6. 机器人聊天软件c#_用C#开发MSN插件程序(比如聊天机器人)
  7. jedis的Read timed out异常解决
  8. 海思视频码率参数解析
  9. Jupyterhub batchspawner on PBS
  10. 人工智能(4)发展现状及未来趋势