функция обратного вызова 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 |