функция обратного вызова EVT_WDF_DEVICE_SELF_MANAGED_IO_SUSPEND (wdfdevice.h)
[Относится к KMDF и UMDF]
Функция обратного вызова события EvtDeviceSelfManagedIoSuspend драйвера приостанавливает самоуправляемые операции ввода-вывода устройства.
Синтаксис
EVT_WDF_DEVICE_SELF_MANAGED_IO_SUSPEND EvtWdfDeviceSelfManagedIoSuspend;
NTSTATUS EvtWdfDeviceSelfManagedIoSuspend(
[in] WDFDEVICE Device
)
{...}
Параметры
[in] Device
Дескриптор объекта устройства платформы.
Возвращаемое значение
Если операция выполнена успешно, функция обратного вызова EvtDeviceSelfManagedIoSuspend должна возвращать STATUS_SUCCESS или другое значение состояния, для которого NT_SUCCESS(status) равно TRUE. В противном случае он должен возвращать значение состояния, для которого NT_SUCCESS (status) равно FALSE. Если NT_SUCCESS(status) равно FALSE, платформа останавливает устройство и удаляет его объекты устройства.
Если NT_SUCCESS(status) равно FALSE, платформа вызывает функции обратного вызова EvtDeviceSelfManagedIoFlush и EvtDeviceSelfManagedIoCleanup .
Дополнительные сведения о возвращаемых значениях этой функции обратного вызова см. в разделе Отчеты о сбоях устройств.
Комментарии
Чтобы зарегистрировать функцию обратного вызова EvtDeviceSelfManagedIoSuspend , драйвер должен вызвать WdfDeviceInitSetPnpPowerEventCallbacks.
Если драйвер зарегистрировал функцию обратного вызова EvtDeviceSelfManagedIoSuspend , платформа вызывает ее по одной из следующих причин:
- Устройство вот-вот перейдет в состояние низкого энергопотребления.
- Устройство удаляется или неожиданно удаляется.
- Менеджер Plug and Play будет распределять аппаратные ресурсы системы между подключенными к системе устройствами.
Если устройство перейдет в состояние с низким энергопотреблением, платформа вызывает функцию обратного вызова EvtDeviceSelfManagedIoSuspend драйвера, прежде чем вызывать функцию обратного вызова EvtDeviceD0Exit драйвера.
Если функция обратного вызова возвращает значение состояния, для которого NT_SUCCESS (status) равно FALSE, и если платформа пытается снизить мощность устройства, платформа останавливает устройство и удаляет его объекты устройства.
Функция обратного вызова EvtDeviceSelfManagedIoSuspend должна выполнять все необходимое для остановки самоуправляемых операций ввода-вывода устройства.
Дополнительные сведения о том, когда платформа вызывает эту функцию обратного вызова, см. в статье Сценарии PnP и управления питанием.
Дополнительные сведения о драйверах, предоставляющих эту функцию обратного вызова, см. в разделе Использование Self-Managed ввода-вывода.
Требования
Требование | Значение |
---|---|
Целевая платформа | Универсальное |
Минимальная версия KMDF | 1,0 |
Минимальная версия UMDF | 2,0 |
Верхняя часть | wdfdevice.h (включая Wdf.h) |
IRQL | PASSIVE_LEVEL |