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 (「解説」セクションを参照)

こちらもご覧ください

AddDevice

DriverEntry

IRP_MN_QUERY_DEVICE_RELATIONS

IRP_MN_QUERY_ID

IRP_MN_START_DEVICE

IoReportDetectedDevice

IoReportResourceForDetection