функция обратного вызова 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 , которая определяет описание адреса.

Возвращаемое значение

None

Remarks

Если драйвер шины использует динамическое перечисление, он может зарегистрировать функцию обратного вызова EvtChildListAddressDescriptionCleanup , вызвав WdfFdoInitSetDefaultChildListConfig или WdfChildListCreate.

Если описание адреса указывает на дополнительные сведения, хранящиеся в динамически выделенной памяти, и если эта память выделена функцией обратного вызова EvtChildListAddressDescriptionDuplicate , драйвер должен предоставить функцию обратного вызова EvtChildListAddressDescriptionCleanup .

Как правило, функция обратного вызова EvtChildListAddressDescriptionDuplicate выделяет память путем вызова ExAllocatePool. Функция обратного вызова EvtChildListAddressDescriptionCleanup должна освободить эту память, вызвав ExFreePool. Эта функция обратного вызова не должна пытаться отменить выделение остальной части описания адреса. Иными словами, функция обратного вызова не должна отменять выделение структуры описания адреса, на которую указывает параметр AddressDescription ; он должен освободить только дополнительные выделения памяти, на которые указывает структура описания.

Дополнительные сведения о динамическом перечислении см. в разделе Перечисление устройств в шине.

Требования

Требование Значение
Целевая платформа Универсальное
Минимальная версия KMDF 1,0
Верхняя часть wdfchildlist.h (включая Wdf.h)
IRQL <= DISPATCH_LEVEL

См. также раздел

EvtChildListAddressDescriptionDuplicate

ExAllocatePool

ExFreePool

WDF_CHILD_ADDRESS_DESCRIPTION_HEADER

WdfChildListCreate

WdfFdoInitSetDefaultChildListConfig