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


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

[Относится к KMDF и UMDF]

Функция обратного вызова события EvtDriverDeviceAdd драйвера выполняет операции инициализации устройства, когда диспетчер Plug and Play (PnP) сообщает о существовании устройства.

Синтаксис

EVT_WDF_DRIVER_DEVICE_ADD EvtWdfDriverDeviceAdd;

NTSTATUS EvtWdfDriverDeviceAdd(
  [in]      WDFDRIVER Driver,
  [in, out] PWDFDEVICE_INIT DeviceInit
)
{...}

Параметры

[in] Driver

Дескриптор для объекта драйвера платформы, представляющего драйвер.

[in, out] DeviceInit

Указатель на структуру, выделенную платформой WDFDEVICE_INIT .

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

Функцияобратного вызова EvtDriverDeviceAdd должна возвращать STATUS_SUCCESS, если операция выполнена успешно. В противном случае эта функция обратного вызова должна возвращать одно из значений состояния ошибки, определенных в ntstatus.h. Дополнительные сведения см. в разделе "Примечания".

Комментарии

Каждый драйвер на основе платформы, поддерживающий устройства PnP, должен предоставлять функцию обратного вызова EvtDriverDeviceAdd . Перед вызовом WdfDriverCreate драйвер должен поместить адрес функции обратного вызова в свою структуру WDF_DRIVER_CONFIG.

Платформа вызывает функцию обратного вызова EvtDriverDeviceAdd вашего драйвера после того, как драйвер шины обнаруживает устройство с идентификатором оборудования, соответствующим идентификатору оборудования, который поддерживается вашим драйвером. Укажите идентификаторы оборудования, поддерживаемые драйвером, предоставив INF-файл, который операционная система использует для установки драйверов при первом подключении одного из ваших устройств к компьютеру. Дополнительные сведения о том, как система использует INF-файлы и идентификаторы оборудования, см. в разделе Настройка выбора драйверов.

Функция обратного вызова EvtDriverDeviceAdd драйвера обычно выполняет по крайней мере некоторые из следующих операций инициализации:

Некоторые драйверы, особенно драйверы фильтров, могут не создавать объекты устройств для некоторых устройств. Если функция обратного вызова EvtDriverDeviceAdd не создает объект устройства, она должна по-прежнему возвращать STATUS_SUCCESS, если не произошла ошибка.

Если функция обратного вызова EvtDriverDeviceAdd драйвера создает объект устройства, но не возвращает STATUS_SUCCESS, платформа удаляет объект устройства и его дочерние устройства.

Если функция обратного вызова EvtDriverDeviceAdd драйвера функции не возвращает STATUS_SUCCESS, диспетчер ввода-вывода не создает стек устройств для устройства.

Если функция обратного вызова EvtDriverDeviceAdd драйвера фильтра не возвращает STATUS_SUCCESS, платформа преобразует возвращаемое значение в STATUS_SUCCESS, а диспетчер операций ввода-вывода создает стек устройств без драйвера фильтра.

Требования

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

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

WDFDEVICE_INIT

WDF_DRIVER_CONFIG

WdfDriverCreate