次の方法で共有


WdfFdoAddStaticChild 関数 (wdffdo.h)

[KMDF にのみ適用]

WdfFdoAddStaticChild メソッドは、静的列挙によって識別された子デバイスの関数ドライバーの一覧に指定されたデバイスを追加します。

構文

NTSTATUS WdfFdoAddStaticChild(
  [in] WDFDEVICE Fdo,
  [in] WDFDEVICE Child
);

パラメーター

[in] Fdo

親デバイスを表すフレームワーク デバイス オブジェクトへのハンドル。

[in] Child

子デバイスを表すフレームワーク デバイス オブジェクトへのハンドル。

戻り値

操作が成功した場合、メソッドはSTATUS_SUCCESSを返します。 その他の戻り値は次のとおりです。

リターン コード 説明
STATUS_INVALID_PARAMETER
Fdo は、ファンクション ドライバーのデバイス オブジェクトへのハンドルではありません。
 

このメソッドは、他の NTSTATUS 値返す場合もあります。

ドライバーが無効なオブジェクト ハンドルを提供すると、システム バグ チェックが発生します。

注釈

静的バス列挙を使用するドライバーは、WdfFdoAddStaticChild 呼び出すことができます。 静的な子リストの詳細については、「バス上のデバイスの列挙」を参照してください。

WdfFdoAddStaticChild が、FALSEとして評価 NT_SUCCESS NTSTATUS 値を返す場合、ドライバーは WdfObjectDelete を呼び出して、子デバイスを表すフレームワーク デバイス オブジェクトを削除する必要があります。 WdfFdoAddStaticChild がSTATUS_SUCCESSを返 後、ドライバーはフレームワーク デバイス オブジェクトを削除しないでください。

例示

次のコード例では、新しい子デバイスを表すフレームワーク デバイス オブジェクトを作成し、子デバイスを親デバイスの子リストに追加します。 完全なコード例については、KbFiltr サンプル ドライバーを参照してください。

NTSTATUS  status;
PWDFDEVICE_INIT  pDeviceInit = NULL;
WDFDEVICE  hChild = NULL;
WDF_OBJECT_ATTRIBUTES  pdoAttributes;

pDeviceInit = WdfPdoInitAllocate(Device);
if (pDeviceInit == NULL) {
    status = STATUS_INSUFFICIENT_RESOURCES;
    goto Cleanup;
}
...
status = WdfDeviceCreate(
                         &pDeviceInit,
                         &pdoAttributes,
                         &hChild
                         );
if (!NT_SUCCESS(status)) {
    WdfDeviceInitFree(pDeviceInit);
    pDeviceInit = NULL;
    goto Cleanup;
}
...
status = WdfFdoAddStaticChild(
                              Device,
                              hChild
                              );
if (!NT_SUCCESS(status)) {
    goto Cleanup;
}

必要条件

要件 価値
ターゲット プラットフォーム 普遍
最小 KMDF バージョン 1.0
ヘッダー wdffdo.h (Wdf.h を含む)
図書館 Wdf01000.sys (フレームワーク ライブラリのバージョン管理を参照)。
IRQL <= DISPATCH_LEVEL
DDI コンプライアンス規則 する AddPdoToStaticChildList(kmdf), DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

こちらもご覧ください

WdfChildListAddOrUpdateChildDescriptionAsPresent

WdfDeviceCreate

WdfPdoInitAllocate