IoReportRootDevice 函数 (ntddk.h)

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

语法

NTSTATUS IoReportRootDevice(
  [in] PDRIVER_OBJECT DriverObject
);

参数

[in] DriverObject

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

返回值

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

注解

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

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

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

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

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

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

要求

要求
最低受支持的客户端 适用于 Windows 8 及更高版本的 Windows。
目标平台 通用
标头 ntddk.h (包括 Ntddk.h)
Library 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