Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
[Применимо к 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 обычно выполняет по крайней мере некоторые из следующих операций инициализации:
-
создание объекта устройства платформы для представления устройства.
-
создавать очереди ввода-вывода, чтобы драйвер смог получать запросы ввода-вывода.
-
создание интерфейсов устройств, которые приложения используют для взаимодействия с устройством.
-
создание интерфейсов, определенных драйвером,, которые могут использовать другие драйверы.
- Инициализация поддержки инструментария управления Windows (WMI).
-
создание объектов прерываний, если драйвер обрабатывает прерывания устройства.
-
включить транзакции прямого доступа к памяти (DMA), если драйвер обрабатывает операции DMA.
Если функция обратного вызова драйвера 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 |