EVT_WDF_DEVICE_D0_ENTRY 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 EvtDeviceD0Entry de un controlador realiza operaciones necesarias cuando el dispositivo del controlador entra en el estado de alimentación 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_STATE que identifica el estado de alimentación 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(status) sea 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 EvtDeviceD0Exit del controlador después de que la función de devolución de llamada EvtDeviceD0Entry devuelva un valor de estado para el que NT_SUCCESS(status) es igual a FALSE.

Comentarios

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 una función de devolución de llamada EvtDeviceD0Entry 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 bajo consumo.
  • El dispositivo vuelve a su estado de trabajo después de haber entrado en un estado de bajo consumo 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 función de devolución de llamada EvtDeviceD0Entry inmediatamente después de que el dispositivo entre en su estado de funcionamiento (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 estaba el dispositivo 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 un estado de bajo consumo.

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

  • Si el dispositivo se inicia por primera vez, el marco comienza una secuencia de eliminación ordenada para el dispositivo.
  • Si el dispositivo vuelve de un estado de baja potencia a su estado de funcionamiento, el marco comienza una secuencia de eliminación sorpresa para el dispositivo.
El marco de trabajo no llama a la función de devolución de llamada EvtDeviceD0Exit del controlador 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 función.

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 se pueda paginar.

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 (incluya Wdf.h)
IRQL PASSIVE_LEVEL (consulte la sección Comentarios)

Consulte también

EvtDeviceD0Exit