[KMDF にのみ適用]
バス ドライバーの EvtChildListCreateDevice イベント コールバック関数は、動的に列挙された新しいデバイスのフレームワーク デバイス オブジェクトを作成します。
構文
EVT_WDF_CHILD_LIST_CREATE_DEVICE EvtWdfChildListCreateDevice;
NTSTATUS EvtWdfChildListCreateDevice(
[in] WDFCHILDLIST ChildList,
[in] PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER IdentificationDescription,
[in] PWDFDEVICE_INIT ChildInit
)
{...}
パラメーター
[in] ChildList
ドライバーが WdfChildListAddOrUpdateChildDescriptionAsPresent を呼び出したときに指定したフレームワークの子リスト オブジェクトへのハンドル。
[in] IdentificationDescription
ドライバーが WdfChildListAddOrUpdateChildDescriptionAsPresent を呼び出したときに指定したWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER構造体のコピーへのポインター。
[in] ChildInit
WDFDEVICE_INIT 構造体へのポインター。
戻り値
EvtChildListCreateDevice コールバック関数は、STATUS_SUCCESS、または操作が成功した場合、NT_SUCCESS(status) が TRUE と等しい別の状態値を返す必要があります。 それ以外の場合、この関数は、NT_SUCCESS(status) が FALSE の状態値を返す必要があります。
操作が失敗したが、後でドライバーを再試行する必要があると考え、ドライバーの EvtChildListCreateDevice コールバック関数が WdfDeviceCreate を呼び出していない場合、ドライバーはSTATUS_RETRYを返すことができます。 その結果、フレームワークは後で EvtChildListCreateDevice コールバック関数を再度呼び出します。 ドライバーがSTATUS_RETRYを複数回返した場合、フレームワークは失敗したデバイスのコールバック関数の呼び出しを停止します。
注釈
バス ドライバーが動的列挙を使用している場合は、WdfFdoInitSetDefaultChildListConfig または WdfChildListCreate を呼び出すことによって、EvtChildListCreateDevice コールバック関数を登録できます。
ドライバーが WdfChildListAddOrUpdateChildDescriptionAsPresent または WdfChildListUpdateAllChildDescriptionsAsPresent を呼び出した後、フレームワークはドライバーの EvtChildListCreateDevice コールバック関数を呼び出します。 フレームワーク デバイス オブジェクト (PDO) を作成するには、コールバック関数で WdfDeviceCreate を呼び出す必要があります。
WdfDeviceCreate を呼び出す前に、ドライバーは、WDFDEVICE_INIT構造体を初期化するフレームワークによって提供される関数を呼び出す必要があります。 これらの関数の詳細については、 WDFDEVICE_INITを参照してください。
WdfDeviceCreate 呼び出す方法の詳細については、「フレームワーク デバイス オブジェクトの作成」を参照してください。
動的列挙の詳細については、「バス上のデバイスの列挙」を参照してください。
要求事項
要件 | 価値 |
---|---|
ターゲット プラットフォーム の | 普遍 |
最小 KMDF バージョン | 1.0 |
ヘッダー | wdfchildlist.h (Wdf.h を含む) |
IRQL | PASSIVE_LEVEL |
こちらも参照ください
WDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER
WdfChildListAddOrUpdateChildDescriptionAsPresent
WdfChildListUpdateAllChildDescriptionsAsPresent
WdfFdoInitSetDefaultChildListConfig の