функция обратного вызова 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(состояние) равно TRUE. В противном случае он должен возвращать значение состояния, для которого NT_SUCCESS (состояние) равно FALSE. Если NT_SUCCESS(состояние) равно FALSE, платформа останавливает устройство и удаляет его объекты устройства.
Если NT_SUCCESS(состояние) равно FALSE, платформа вызывает функции обратного вызова драйвера EvtDeviceSelfManagedIoFlush и EvtDeviceSelfManagedIoCleanup.
Дополнительные сведения о возвращаемых значениях функции обратного вызова см. в отчетов об ошибках устройства.
Замечания
Чтобы зарегистрировать функцию обратного вызова EvtDeviceSelfManagedIoSuspend, драйвер должен вызвать WdfDeviceInitSetPnpPowerEventCallbacks.
Если драйвер зарегистрировал функцию обратного вызова EvtDeviceSelfManagedIoSuspend, платформа вызывает ее по одной из следующих причин:
- Устройство будет входить в состояние низкой мощности.
- Устройство удаляется или было неожиданно удалено.
- Диспетчер Plug and Play будет распространять аппаратные ресурсы системы между подключенными к системе устройствами.
Если устройство переходит в состояние низкой мощности, платформа вызывает функцию обратного вызова драйвера EvtDeviceSelfManagedIoSuspend перед вызовом функции обратного вызова драйвера EvtDeviceD0Exit обратного вызова.
Если функция обратного вызова возвращает значение состояния, для которого NT_SUCCESS (состояние) равно FALSE, а если платформа пытается снизить мощность устройства, платформа останавливает устройство и удаляет его объекты устройства.
Функция обратного вызова EvtDeviceSelfManagedIoSuspend должна выполнять все действия, необходимые для остановки самоуправляемых операций ввода-вывода устройства.
Дополнительные сведения о том, когда платформа вызывает эту функцию обратного вызова, см. в сценариях управления питанием и PnP.
Дополнительные сведения о драйверах, предоставляющих эту функцию обратного вызова, см. в разделе Использование Self-Managed ввода-вывода.
Требования
Требование | Ценность |
---|---|
целевая платформа | Всеобщий |
минимальная версия KMDF | 1.0 |
минимальная версия UMDF | 2.0 |
заголовка | wdfdevice.h (include Wdf.h) |
IRQL | PASSIVE_LEVEL |