次の方法で共有


EVT_WDF_CHILD_LIST_CREATE_DEVICE コールバック関数 (wdfchildlist.h)

[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
Header wdfchildlist.h (Wdf.h を含む)
IRQL PASSIVE_LEVEL

こちらもご覧ください

WDFDEVICE_INIT

WDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER

WdfChildListAddOrUpdateChildDescriptionAsPresent

WdfChildListCreate

WdfChildListUpdateAllChildDescriptionsAsPresent

WdfDeviceCreate

WdfFdoInitSetDefaultChildListConfig