原始和已翻译的资源

当驱动程序的 EvtDeviceRemoveAddedResourcesEvtDevicePrepareHardware 回调函数收到资源列表时,它将接收列表的两个版本。 一个版本表示设备 的原始资源,另一个版本表示设备的 已翻译资源。 这两个版本都以相同的顺序表示同一组硬件资源。

  • 原始资源是由与设备连接到的总线相关的地址标识的资源。 通常,程序设备的驱动程序向设备提供这些地址。

  • 翻译的资源是由驱动程序用来访问资源的系统物理地址标识的资源。

PCI 总线设备的驱动程序接收按设备 基址寄存器 (BAR)中显示的顺序列出的资源。 但是,列表中可能交错了其他资源描述符,因而 BAR 中索引 X 处的资源可能与资源列表中同一索引位置的资源不匹配。

有关原始资源和已翻译的资源的详细信息,请参阅 CM_PARTIAL_RESOURCE_DESCRIPTOR 结构的成员说明。

如果设备的已翻译资源列表包含CM_PARTIAL_RESOURCE_DESCRIPTOR结构的 Type 成员设置为 CmResourceTypeMemory 的资源,则访问该资源的每个驱动程序都必须执行以下作:

有关映射总线相对地址的详细信息,请参阅 将 Bus-Relative 地址映射到虚拟地址