Поделиться через


функция обратного вызова EVT_WDF_CHILD_LIST_DEVICE_REENUMERATED (wdfchildlist.h)

[Относится только к KMDF]

Функция обратного вызова события EvtChildListDeviceReenumerated драйвера позволяет драйверу утверждать или отменять повторную нумерацию указанного устройства.

Синтаксис

EVT_WDF_CHILD_LIST_DEVICE_REENUMERATED EvtWdfChildListDeviceReenumerated;

BOOLEAN EvtWdfChildListDeviceReenumerated(
  [in]  WDFCHILDLIST ChildList,
  [in]  WDFDEVICE OldDevice,
  [in]  PWDF_CHILD_ADDRESS_DESCRIPTION_HEADER OldAddressDescription,
  [out] PWDF_CHILD_ADDRESS_DESCRIPTION_HEADER NewAddressDescription
)
{...}

Параметры

[in] ChildList

Дескриптор дочернего объекта списка платформы.

[in] OldDevice

Дескриптор объекта устройства платформы.

[in] OldAddressDescription

Необязательный указатель на структуру WDF_CHILD_ADDRESS_DESCRIPTION_HEADER , которая определяет описание дочернего адреса или NULL. Если этот параметр указан, эта структура содержит сведения об адресе, которые были актуальны до повторной регистрации устройства.

[out] NewAddressDescription

Необязательный указатель на структуру WDF_CHILD_ADDRESS_DESCRIPTION_HEADER , которая определяет описание дочернего адреса или NULL. Если этот параметр указан, функция обратного вызова заполняет эту структуру новыми сведениями об адресе устройства.

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

Функция обратного вызова EvtChildListDeviceReenumerated возвращает значение TRUE для утверждения повторной нумерации или FALSE для ее отмены.

Комментарии

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

Водители автобусов на основе платформы могут получать запрос от драйвера функции для повторного создания определенного дочернего устройства. Дополнительные сведения об этих запросах см. в разделе Обработка запросов перечисления.

Функция обратного вызова EvtChildListDeviceReenumerated водителя шины позволяет водителю утвердить или отменить повторную нумерацию. Параметр OldDevice определяет устройство, а параметр ChildList определяет дочерний список, в который входит устройство. Если функция обратного вызова возвращает значение TRUE для утверждения повторной нумерации или если функция обратного вызова не существует, платформа выполняет следующие действия:

  1. Удаляет объект устройства платформы устройства (который идентифицируется с помощью OldDevice), но сохраняет описание идентификации устройства.
  2. Вызывает функцию обратного вызова EvtChildListCreateDevice драйвера, передавая сохраненное описание идентификации, чтобы функция обратного вызова можна вызвать WdfDeviceCreate для создания нового объекта устройства платформы.
Если драйвер шины использует описания адресов, функция обратного вызова EvtChildListDeviceReenumerated получает указатели на два описания адресов. Один указывает на описание адреса, связанное со старым объектом устройства. Другой указывает на описание адреса, которое функция обратного вызова должна заполнять сведениями, описывающими текущее расположение устройства.

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

Требования

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

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

EvtChildListCreateDevice

WDF_CHILD_ADDRESS_DESCRIPTION_HEADER

WdfChildListCreate

WdfDeviceCreate

WdfFdoInitSetDefaultChildListConfig