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。
系統會為裝置產生單一硬體標識符字串,其格式為 ROOT\Driver ,其中 Driver 是驅動程式的服務名稱。 驅動程式可以藉由處理 IRP_MN_QUERY_ID 要求來提供額外的硬體標識碼或相容的標識碼。
驅動程式寫入器必須提供符合任何指定硬體標識碼或相容標識碼的 INF 檔案。 INF 檔案應指定名為 IoReportRootDevice 的原始驅動程式作為要載入這些標識碼的驅動程式。 系統會使用這項資訊來重建裝置的驅動程式堆疊,例如重新啟動時。 IoReportRootDevice 的呼叫端必須在 IRQL = PASSIVE_LEVEL系統線程的內容中執行。
驅動程式應該使用 IoReportDetectedDevice 來報告使用資源但無法由 PnP 總線驅動程式偵測到的硬體裝置,而不是 IoReportRootDevice。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 8 及更新版本的 Windows 中提供。 |
目標平台 | Universal |
標頭 | ntddk.h (包含 Ntddk.h) |
程式庫 | NtosKrnl.lib |
Dll | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL (请参阅一节) |