次の方法で共有


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

[KMDF にのみ適用]

ドライバーの EvtChildListAddressDescriptionCleanup イベント コールバック関数は、ドライバーの EvtChildListAddressDescriptionDuplicate コールバック関数が割り当てられたアドレス記述のメモリ割り当てを解放します。

構文

EVT_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_CLEANUP EvtWdfChildListAddressDescriptionCleanup;

void EvtWdfChildListAddressDescriptionCleanup(
  [in]      WDFCHILDLIST ChildList,
  [in, out] PWDF_CHILD_ADDRESS_DESCRIPTION_HEADER AddressDescription
)
{...}

パラメーター

[in] ChildList

フレームワークの子リスト オブジェクトへのハンドル。

[in, out] AddressDescription

アドレスの説明を識別する WDF_CHILD_ADDRESS_DESCRIPTION_HEADER 構造体へのポインター。

戻り値

なし

解説

バス ドライバーが動的列挙を使用している場合は、WdfFdoInitSetDefaultChildListConfig または WdfChildListCreate を呼び出すことによって、EvtChildListAddressDescriptionCleanup コールバック関数を登録できます。

アドレスの説明が、動的に割り当てられたメモリに格納されている追加情報を指しており、そのメモリが EvtChildListAddressDescriptionDuplicate コールバック関数によって割り当てられている場合、ドライバーは EvtChildListAddressDescriptionCleanup コールバック関数を提供する必要があります。

通常、 EvtChildListAddressDescriptionDuplicate コールバック関数は 、ExAllocatePool を呼び出すことによってメモリを割り当てます。 EvtChildListAddressDescriptionCleanup コールバック関数は、ExFreePool を呼び出して、そのメモリの割り当てを解除する必要があります。 このコールバック関数は、アドレスの説明の残りの部分の割り当てを解除しないでください。 言い換えると、コールバック関数は、 AddressDescription パラメーターが指すアドレス記述構造の割り当てを解除することはできません。記述構造体が指す追加のメモリ割り当てのみを割り当て解除する必要があります。

動的列挙の詳細については、「バス上のデバイスの列挙」を参照してください

要件

要件
対象プラットフォーム ユニバーサル
最小 KMDF バージョン 1.0
Header wdfchildlist.h (Wdf.h を含む)
IRQL <= DISPATCH_LEVEL

こちらもご覧ください

EvtChildListAddressDescriptionDuplicate

ExAllocatePool

ExFreePool

WDF_CHILD_ADDRESS_DESCRIPTION_HEADER

WdfChildListCreate

WdfFdoInitSetDefaultChildListConfig