WdfChildListCreate 関数 (wdfchildlist.h)
[KMDF にのみ適用]
WdfChildListCreate メソッドは、指定された親デバイスの子リストを作成します。
構文
NTSTATUS WdfChildListCreate(
[in] WDFDEVICE Device,
[in] PWDF_CHILD_LIST_CONFIG Config,
[in, optional] PWDF_OBJECT_ATTRIBUTES ChildListAttributes,
[out] WDFCHILDLIST *ChildList
);
パラメーター
[in] Device
親デバイスを表すフレームワーク デバイス オブジェクトへのハンドル。
[in] Config
子リストのドライバー指定の構成情報を含む WDF_CHILD_LIST_CONFIG 構造体へのポインター。
[in, optional] ChildListAttributes
フレームワークの子リスト オブジェクトのドライバー指定のオブジェクト属性を含む WDF_OBJECT_ATTRIBUTES 構造体へのポインター。 (構造体の ParentObject メンバーは NULL する必要があります)。
[out] ChildList
フレームワークの子リスト オブジェクトへのハンドルを受け取る呼び出し元によって割り当てられた場所へのポインター。
戻り値
WdfChildListCreate は、操作が成功した場合に、STATUS_SUCCESSまたは NT_SUCCESS(status) が TRUE 等しい別の状態値を返します。 それ以外の場合、このメソッドは次のいずれかの値を返す可能性があります。
リターン コード | 形容 |
---|---|
|
入力パラメーターが無効です。 |
|
オブジェクトを割り当てませんでした。 |
このメソッドは、他の NTSTATUS 値返す場合もあります。
ドライバーが無効なオブジェクト ハンドルを提供すると、システム バグ チェックが発生します。
備考
フレームワークは、機能デバイス オブジェクト (FDO) を表すフレームワーク デバイス オブジェクトごとに既定の子リストを作成します。 既定の子リストを使用するには、ドライバーは WdfFdoGetDefaultChildList を呼び出します。 ドライバーで追加の子リストが必要な場合は、WdfChildListCreate を呼び出して作成できます。
各子リスト オブジェクトの親は、デバイスのフレームワーク デバイス オブジェクトです。 ドライバーはこの親を変更できません。また、ParentObject メンバーまたは WDF_OBJECT_ATTRIBUTES 構造体は NULL する必要があります。
ドライバーは、WdfChildListCreate 作成 子リスト オブジェクトを削除できません。 フレームワークは、適切なタイミングでオブジェクトを削除します。
例
次のコード例では、WDF_CHILD_LIST_CONFIG 構造体を初期化し、WdfChildListCreateを呼び出します。
WDF_CHILD_LIST_CONFIG listConfig;
WDF_CHILD_LIST_CONFIG_INIT(
&listConfig,
sizeof(PDO_IDENTIFICATION_DESCRIPTION),
My_EvtDeviceListCreatePdo
);
listConfig.AddressDescriptionSize = sizeof(PDO_ADDRESS_DESCRIPTION);
listConfig.EvtChildListScanForChildren = My_EvtChildListScanForChildren;
listConfig.EvtChildListIdentificationDescriptionDuplicate = My_EvtChildListIdentificationDescriptionDuplicate;
listConfig.EvtChildListIdentificationDescriptionCompare = My_EvtChildListIdentificationDescriptionCompare;
listConfig.EvtChildListIdentificationDescriptionCleanup = My_EvtChildListIdentificationDescriptionCleanup;
status = WdfChildListCreate(
device,
&listConfig,
WDF_NO_OBJECT_ATTRIBUTES,
&ParentDeviceContext->ChildList
);
if (!NT_SUCCESS(status)) {
return status;
}
必要条件
要件 | 価値 |
---|---|
ターゲット プラットフォーム の | 万国 |
最小 KMDF バージョン | 1.0 |
ヘッダー | wdfchildlist.h (Wdf.h を含む) |
ライブラリ | Wdf01000.sys (フレームワーク ライブラリのバージョン管理を参照)。 |
IRQL | PASSIVE_LEVEL |
DDI コンプライアンス規則 を する | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |
関連項目
WdfFdoGetDefaultChildList の