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


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

[Применимо к KMDF и UMDF]

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

Синтаксис

EVT_WDF_DEVICE_QUERY_REMOVE EvtWdfDeviceQueryRemove;

NTSTATUS EvtWdfDeviceQueryRemove(
  [in] WDFDEVICE Device
)
{...}

Параметры

[in] Device

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

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

Если драйвер определяет, что устройство можно остановить и удалить, функция обратного вызова EvtDeviceQueryRemove должна возвращать STATUS_SUCCESS или другое значение состояния, для которого NT_SUCCESS (status) равно TRUE. В противном случае он должен возвращать значение состояния, для которого NT_SUCCESS(status) равно FALSE. Не возвращайте STATUS_NOT_SUPPORTED.

Комментарии

Чтобы зарегистрировать функцию обратного вызова EvtDeviceQueryRemove , драйвер должен вызвать WdfDeviceInitSetPnpPowerEventCallbacks.

Если устройство и драйвер поддерживают бездействующее выключение питания, устройство может не находиться в рабочем состоянии, когда платформа вызывает функцию обратного вызова EvtDeviceQueryRemove драйвера. Функция обратного вызова может вызвать WdfDeviceStopIdle , чтобы принудительно перейти в рабочее состояние устройства (D0), а затем функция обратного вызова может вызвать WdfDeviceResumeIdle перед возвратом .

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

Платформа не синхронизирует функцию обратного вызова EvtDeviceQueryRemove с другими функциями обратного вызова PnP и управления питанием. Сведения о том, как платформа синхронизирует выполнение функций обратного вызова событий драйвера, см. в разделе Использование автоматической синхронизации.

Требования

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

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

EvtDeviceQueryStop