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


функция обратного вызова 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. Драйвер должен поместить адрес функции обратного вызова в свою структуру WDF_DRIVER_CONFIG перед вызовом WdfDriverCreate.

Платформа вызывает функцию обратного вызова драйвера 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 (include Wdf.h)
IRQL PASSIVE_LEVEL

См. также

WDFDEVICE_INIT

WDF_DRIVER_CONFIG

WdfDriverCreate