IoReportRootDevice 函数 (ntddk.h)

IoReportRootDevice 例程将 PnP 总线驱动程序无法检测到的设备报告给 PnP 管理器。 IoReportRootDevice 仅允许为每个驱动程序创建一台设备。

语法

NTSTATUS IoReportRootDevice(
  [in] PDRIVER_OBJECT DriverObject
);

参数

[in] DriverObject

指向检测到设备的驱动程序的驱动程序对象的指针。

返回值

IoReportRootDevice 在成功时返回STATUS_SUCCESS,或者在失败时返回相应的错误代码。

言论

PnP 总线驱动程序无法检测到的设备驱动程序使用 IoReportRootDevice 将其设备报告给系统。 响应 IRP_MN_QUERY_DEVICE_RELATIONS 请求时,应报告 PnP 总线驱动程序可以检测到的设备。

驱动程序通常从其 DriverEntry 例程调用此例程。

IoReportRootDevice 将设备标记为根枚举设备,并且此标识在系统启动中是永久性的。 PnP 管理器“检测”根枚举列表中的设备,并将其配置为 PnP 设备:PnP 管理器查询设备信息,标识相应的驱动程序并调用其 AddDevice 例程,并发送所有适当的 PnP IRP。

系统为设备生成单个硬件 ID 字符串,其格式为 ROOT\Driver,其中 驱动程序 是驱动程序的服务名称。 驱动程序可以通过处理 IRP_MN_QUERY_ID 请求来提供其他硬件 ID 或兼容的 ID。

驱动程序编写器必须提供与任何指定硬件 ID 或兼容 ID 匹配的 INF 文件。 INF 文件应指定要为这些 ID 加载的驱动程序 IoReportRootDevice 的原始驱动程序。 系统使用此信息为设备重新生成驱动程序堆栈,例如重启时。 IoReportRootDevice 的调用方必须在系统线程的上下文中在 IRQL = PASSIVE_LEVEL 运行。

驱动程序应使用 IoReportDetectedDevice 报告使用资源但无法由 PnP 总线驱动程序检测的硬件设备,而不是 IoReportRootDevice

要求

要求 价值
最低支持的客户端 在 Windows 8 及更高版本的 Windows 中可用。
目标平台 普遍
标头 ntddk.h (包括 Ntddk.h)
NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL(请参阅“备注”部分)

另请参阅

AddDevice

DriverEntry

IRP_MN_QUERY_DEVICE_RELATIONS

IRP_MN_QUERY_ID

IRP_MN_START_DEVICE

IoReportDetectedDevice

IoReportResourceForDetection