IoReportRootDevice 関数 (ntddk.h)
IoReportRootDevice ルーチンは、PnP バス ドライバーで検出できないデバイスを PnP マネージャーに報告します。 IoReportRootDevice では、ドライバーごとに 1 つのデバイスのみを作成できます。
構文
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 を使用して、リソースを使用するハードウェア デバイスを報告する必要がありますが、 IoReportRootDevice ではなく PnP バス ドライバーでは検出できません。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 8以降のバージョンの Windows で使用できます。 |
対象プラットフォーム | ユニバーサル |
Header | ntddk.h (Ntddk.h を含む) |
Library | NtosKrnl.lib |
[DLL] | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL (「解説」セクションを参照) |