Compartir a través de


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

[Se aplica a KMDF y UMDF]

Las EvtDeviceD0Entry de un controlador función de devolución de llamada de eventos realizan operaciones necesarias cuando el dispositivo del controlador entra en el estado de energía D0.

Sintaxis

EVT_WDF_DEVICE_D0_ENTRY EvtWdfDeviceD0Entry;

NTSTATUS EvtWdfDeviceD0Entry(
  [in] WDFDEVICE Device,
  [in] WDF_POWER_DEVICE_STATE PreviousState
)
{...}

Parámetros

[in] Device

Identificador de un objeto de dispositivo de marco.

[in] PreviousState

Enumerador con tipo WDF_POWER_DEVICE_STATEque identifica el estado de energía del dispositivo anterior.

Valor devuelto

Si la función de devolución de llamada EvtDeviceD0Entry 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.

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.

El marco no llama a la función de devolución de llamada EvtDeviceD0Ex it del controlador después de la función de devolución de llamada EvtDeviceD0Entry devuelve 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 EvtDeviceD0Entry para un dispositivo, un controlador debe llamar a WdfDeviceInitSetPnpPowerEventCallbacks.

Si el controlador ha registrado un EvtDeviceD0Entry función de devolución de llamada para un dispositivo, el marco llama a la función cada vez que el dispositivo entra en su estado de trabajo (D0). Un dispositivo entrará en el estado D0 cuando se produzca una de las siguientes acciones:

  • Se enumera un dispositivo (porque el dispositivo se ha conectado o se ha reiniciado el sistema).
  • El sistema y todos sus dispositivos vuelven a sus estados de trabajo desde un estado de baja potencia.
  • El dispositivo vuelve a su estado de trabajo después de que entró en un estado de baja potencia porque estaba inactivo (si el dispositivo admite inactividad de bajo consumo).
  • El administrador de Plug and Play ha redistribuido los recursos de hardware del sistema entre los dispositivos del sistema.
El marco llama a la EvtDeviceD0Entry función de devolución de llamada inmediatamente después de que el dispositivo entre en su estado de trabajo (D0) y esté disponible para el controlador, pero antes de que se hayan habilitado las interrupciones del dispositivo. El parámetro PreviousState identifica el estado de alimentación del dispositivo en el que el dispositivo estaba antes de entrar en el estado D0. Cuando el marco llama por primera vez a EvtDeviceD0Entry, proporciona un valor PreviousState de WdfPowerDeviceD3Final.

La función de devolución de llamada debe realizar las operaciones necesarias para que el dispositivo esté totalmente operativo, como cargar firmware o habilitar las funcionalidades del dispositivo que están deshabilitadas cuando el dispositivo está en estado de bajo consumo.

Si la función de devolución de llamada EvtDeviceD0Entry devuelve un valor de estado para el que NT_SUCCESS(estado) es igual a FALSE, el marco hace lo siguiente:

  • Si el dispositivo se inicia por primera vez, el marco comienza una eliminación ordenada secuencia del dispositivo.
  • Si el dispositivo vuelve de un estado de baja potencia a su estado de trabajo, el marco comienza una eliminación sorpresa secuencia del dispositivo.
El marco no llama a la evtDeviceD0Exit del controlador función de devolución de llamada en cualquiera de estas situaciones.

Para obtener más información sobre cuándo el marco llama a la función de devolución de llamada EvtDeviceD0Entry, 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 Compatibilidad con PnP y administración de energía en controladores de funciones.

La función de devolución de llamada EvtDeviceD0Entry se llama en IRQL = PASSIVE_LEVEL. No debe hacer que esta función de devolución de llamada paginable .

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 (consulte la sección Comentarios)

Consulte también

EvtDeviceD0Exit