функция обратного вызова 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(состояние) равно TRUE. В противном случае он должен возвращать значение состояния, для которого NT_SUCCESS (состояние) равно FALSE. Не возвращайте STATUS_NOT_SUPPORTED.
Замечания
Чтобы зарегистрировать функцию обратного вызова EvtDeviceQueryRemove, драйвер должен вызвать WdfDeviceInitSetPnpPowerEventCallbacks.
Если устройство и драйвер поддерживают отключенное питание, устройство может не находиться в рабочем состоянии, когда платформа вызывает функцию обратного вызова драйвера EvtDeviceQueryRemove функции обратного вызова. Функция обратного вызова может вызывать WdfDeviceStopIdle, чтобы принудительно заставить устройство в рабочее состояние (D0), а затем функция обратного вызова может вызывать WdfDeviceResumeIdle перед возвратом.
Дополнительные сведения о функции обратного вызова EvtDeviceQueryRemove см. в разделе Обработка запросов на остановкуустройства.
Платформа не синхронизирует функцию обратного вызова EvtDeviceQueryRemove с другими функциями обратного вызова PnP и управления питанием. Сведения о том, как платформа синхронизирует выполнение функций обратного вызова событий драйвера, см. в разделе Использование автоматической синхронизации.
Требования
Требование | Ценность |
---|---|
целевая платформа | Всеобщий |
минимальная версия KMDF | 1.0 |
минимальная версия UMDF | 2.0 |
заголовка | wdfdevice.h (include Wdf.h) |
IRQL | PASSIVE_LEVEL |