[KMDF にのみ適用]
WdfFdoAddStaticChild メソッドは、静的列挙によって識別された子デバイスの関数ドライバーの一覧に指定されたデバイスを追加します。
構文
NTSTATUS WdfFdoAddStaticChild(
[in] WDFDEVICE Fdo,
[in] WDFDEVICE Child
);
パラメーター
[in] Fdo
親デバイスを表すフレームワーク デバイス オブジェクトへのハンドル。
[in] Child
子デバイスを表すフレームワーク デバイス オブジェクトへのハンドル。
戻り値
操作が成功した場合、メソッドはSTATUS_SUCCESSを返します。 その他の戻り値は次のとおりです。
| リターン コード | 説明 |
|---|---|
|
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
WdfPdoInitAllocate の