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


функция обратного вызова 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 будет распространять аппаратные ресурсы системы между подключенными к системе устройствами.
Так как вы не знаете, какие из этих событий вызывают платформу для вызова драйвера, необходимо предположить, что устройство может вернуться в рабочее состояние (D0).

Если устройство переходит в состояние низкой мощности, платформа вызывает функцию обратного вызова драйвера EvtDeviceSelfManagedIoSuspend перед вызовом функции обратного вызова драйвера EvtDeviceD0Exit обратного вызова.

Если функция обратного вызова возвращает значение состояния, для которого NT_SUCCESS (состояние) равно FALSE, а если платформа пытается снизить мощность устройства, платформа останавливает устройство и удаляет его объекты устройства.

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

Дополнительные сведения о том, когда платформа вызывает эту функцию обратного вызова, см. в сценариях управления питанием и PnP.

Дополнительные сведения о драйверах, предоставляющих эту функцию обратного вызова, см. в разделе Использование Self-Managed ввода-вывода.

Требования

Требование Ценность
целевая платформа Всеобщий
минимальная версия KMDF 1.0
минимальная версия UMDF 2.0
заголовка wdfdevice.h (include Wdf.h)
IRQL PASSIVE_LEVEL

См. также

EvtDeviceSelfManagedIoCleanup

EvtDeviceSelfManagedIoFlush

EvtDeviceSelfManagedIoInit

EvtDeviceSelfManagedIoRestart