EVT_WDF_DEVICE_D0_EXIT función de devolución de llamada (wdfdevice.h)
[Se aplica a KMDF y UMDF]
La función de devolución de llamada de eventos EvtDeviceD0Ex it de un controlador realiza operaciones necesarias cuando el dispositivo del controlador deja el estado de alimentación D0.
Sintaxis
EVT_WDF_DEVICE_D0_EXIT EvtWdfDeviceD0Exit;
NTSTATUS EvtWdfDeviceD0Exit(
[in] WDFDEVICE Device,
[in] WDF_POWER_DEVICE_STATE TargetState
)
{...}
Parámetros
[in] Device
Identificador de un objeto de dispositivo de marco.
[in] TargetState
Enumerador con tipo WDF_POWER_DEVICE_STATEque identifica el estado de alimentación del dispositivo que el dispositivo está a punto de introducir.
Valor devuelto
Si el EvtDeviceD0Exit función de devolución de llamada no encuentra ningún error, debe devolver STATUS_SUCCESS u otro valor de estado para el que NT_SUCCESS(estado) es igual a TRUE. De lo contrario, debe devolver un valor de estado para el que NT_SUCCESS(status) es igual a FALSE.
Observaciones
Para registrar una función de devolución de llamada de EvtDeviceD0Ex it, un controlador debe llamar a WdfDeviceInitSetPnpPowerEventCallbacks.
Si el controlador ha registrado un EvtDeviceD0Exit función de devolución de llamada, el marco llama a la función cada vez que uno de los dispositivos del controlador deja su estado de trabajo (D0). Un dispositivo deja el estado D0 cuando se produce una de las siguientes acciones:
- El sistema y todos sus dispositivos están a punto de dejar sus estados de trabajo y entrar en un estado de baja potencia.
- El dispositivo está a punto de entrar en un estado de bajo consumo porque está inactivo, si el dispositivo admite inactividad de bajo consumo.
- El administrador de Plug and Play está intentando redistribuir los recursos de hardware del sistema.
- Un usuario ha indicado, normalmente por medio de la interfaz de usuario de una aplicación, que quiere quitar el 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 PnP y Administración de energía.
A menos que se haya quitado la sorpresa del dispositivo, el marco llama a esta función de devolución de llamada inmediatamente después de deshabilitar las interrupciones del dispositivo, pero antes de que la alimentación del dispositivo se reduzca de D0. El parámetro TargetState identifica el estado de alimentación del dispositivo que el dispositivo está a punto de introducir.
El EvtDeviceD0Exit función de devolución de llamada debe realizar las operaciones necesarias antes de que el dispositivo entre en el estado de baja potencia especificado, como guardar cualquier información que el controlador necesitará más adelante para restaurar el dispositivo a su estado de alimentación D0.
Si el parámetro TargetState es WdfPowerDevicePrepareForHibernation, el controlador no debe apagar el dispositivo, ya que el sistema usará el dispositivo al guardar su archivo de hibernación.
Si TargetState es WdfPowerDeviceD3Final, debe suponer que el sistema se está desactivando, el dispositivo está a punto de quitarse o está en curso un de reequilibrio de recursos. Si el controlador debe guardar información, debe escribirla en el disco o en algún otro medio de almacenamiento permanente. Sin embargo, es incorrecto comprobar WdfPowerDeviceD3Final y, a continuación, realizar el trabajo de limpieza para la eliminación de dispositivos. Por ejemplo, si un dispositivo que ha entrado en estado de energía Dx debido a que se ha quitado la sorpresa posterior, su EvtDeviceD0Exit no se llamará de nuevo. El lugar correcto para realizar este trabajo estaría en EvtDeviceReleaseHardware en su lugar.
Para obtener más información sobre los controladores que proporcionan esta función de devolución de llamada, consulte Compatibilidad con PnP y administración de energía en controladores de funciones.
Requisitos
Requisito | Valor |
---|---|
de la plataforma de destino de | Universal |
versión mínima de KMDF | 1.0 |
versión mínima de UMDF | 2.0 |
encabezado de | wdfdevice.h (incluya Wdf.h) |
irQL | PASSIVE_LEVEL |