在 UMDF 1.x 驱动程序中查找和映射硬件资源

警告

UMDF 2 是 UMDF 的最新版本,取代了 UMDF 1。 所有新的 UMDF 驱动程序都应使用 UMDF 2 编写。 不会向 UMDF 1 添加任何新功能,并且较新版本的 Windows 10 上对 UMDF 1 的支持有限。 通用 Windows 驱动程序必须使用 UMDF 2。

存档的 UMDF 1 示例可在 Windows 11 版本 22H2 - 2022 年 5 月驱动程序示例更新中找到。

有关详细信息,请参阅使用 UMDF 入门

如果使用 UMDF 版本 2.0 或更高版本,请参阅 查找和映射硬件资源

UMDF 1.x 驱动程序在其 IPnpCallbackHardware2::OnPrepareHardware 回调方法中接收硬件资源。 驱动程序使用 IWDFCmResourceList 接口查看已转换的资源列表,并识别内存映射寄存器、I/O 端口和中断。

驱动程序通过调用 IWDFCmResourceList::GetCountIWDFCmResourceList::GetDescriptor 循环访问资源列表。

如果驱动程序接收内存映射寄存器,则驱动程序必须调用 IWDFDevice3::MapIoSpace 来映射寄存器,然后才能访问它们。 通常,驱动程序在其 IPnpCallbackHardware2::OnPrepareHardware 方法中映射其寄存器。 驱动程序通过调用 IWDFDevice3::UnmapIoSpace 在其 IPnpCallbackHardware2::OnReleaseHardware 回调中取消映射寄存器。 请注意,I/O 端口不需要映射。

有关显示驱动程序如何查找和映射内存映射的寄存器资源的示例,请参阅 IWDFDevice3::MapIoSpace