функция обратного вызова 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 драйвера после того, как драйвер шины обнаруживает устройство с идентификатором оборудования (ID), которое соответствует идентификатору оборудования, который поддерживает драйвер. Вы указываете идентификаторы оборудования, поддерживаемые драйвером, предоставляя 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