EVT_WDF_DEVICE_SELF_MANAGED_IO_SUSPEND función de devolución de llamada (wdfdevice.h)

[Se aplica a KMDF y UMDF]

La función de devolución de llamada de evento EvtDeviceSelfManagedIoSuspend de un controlador suspende las operaciones de E/S autoadministradas de un dispositivo.

Sintaxis

EVT_WDF_DEVICE_SELF_MANAGED_IO_SUSPEND EvtWdfDeviceSelfManagedIoSuspend;

NTSTATUS EvtWdfDeviceSelfManagedIoSuspend(
  [in] WDFDEVICE Device
)
{...}

Parámetros

[in] Device

Identificador de un objeto de dispositivo de marco.

Valor devuelto

Si la operación se realiza correctamente, la función de devolución de llamada EvtDeviceSelfManagedIoSuspend debe devolver STATUS_SUCCESS u otro valor de estado para el que NT_SUCCESS(status) sea true. De lo contrario, debe devolver un valor de estado para el que NT_SUCCESS(status) es igual a FALSE. Si NT_SUCCESS(status) es igual a FALSE, el marco detiene el dispositivo y quita sus objetos de dispositivo.

Si NT_SUCCESS(status) es igual a FALSE, el marco llama a las funciones de devolución de llamada EvtDeviceSelfManagedIoFlush y EvtDeviceSelfManagedIoCleanup del controlador.

Para obtener más información sobre los valores devueltos de esta función de devolución de llamada, consulte Informes de errores de dispositivo.

Comentarios

Para registrar una función de devolución de llamada EvtDeviceSelfManagedIoSuspend , un controlador debe llamar a WdfDeviceInitSetPnpPowerEventCallbacks.

Si el controlador ha registrado una función de devolución de llamada EvtDeviceSelfManagedIoSuspend , el marco lo llama por uno de los siguientes motivos:

  • El dispositivo está a punto de entrar en un estado de bajo consumo.
  • El dispositivo se está quitando o se ha quitado por sorpresa.
  • El administrador de Plug and Play está a punto de redistribuir los recursos de hardware del sistema entre los dispositivos conectados del sistema.
Dado que no sabe cuál de estos eventos hace que el marco llame al controlador, debe suponer que el dispositivo podría volver a su estado de trabajo (D0).

Si el dispositivo está a punto de entrar en un estado de baja potencia, el marco llama a la función de devolución de llamada EvtDeviceSelfManagedIoSuspend del controlador antes de llamar a la función de devolución de llamada EvtDeviceD0Exit del controlador.

Si la función de devolución de llamada devuelve un valor de estado para el que NT_SUCCESS(status) es igual a FALSE y, si el marco intenta reducir la potencia del dispositivo, el marco detiene el dispositivo y quita sus objetos de dispositivo.

La función de devolución de llamada EvtDeviceSelfManagedIoSuspend debe hacer lo que sea necesario para detener las operaciones de E/S autoadministradas del dispositivo.

Para obtener más información sobre cuándo el marco llama a esta función de devolución de llamada, consulte Escenarios de administración de energía y PnP.

Para obtener más información sobre los controladores que proporcionan esta función de devolución de llamada, consulte Uso de Self-Managed E/S.

Requisitos

Requisito Value
Plataforma de destino Universal
Versión mínima de KMDF 1.0
Versión mínima de UMDF 2.0
Encabezado wdfdevice.h (incluir Wdf.h)
IRQL PASSIVE_LEVEL

Consulte también

EvtDeviceSelfManagedIoCleanup

EvtDeviceSelfManagedIoFlush

EvtDeviceSelfManagedIoInit

EvtDeviceSelfManagedIoRestart