EVT_WDF_DEVICE_PREPARE_HARDWARE 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 EvtDevicePrepareHardware de un controlador realiza las operaciones necesarias para que un dispositivo sea accesible para el controlador.

Sintaxis

EVT_WDF_DEVICE_PREPARE_HARDWARE EvtWdfDevicePrepareHardware;

NTSTATUS EvtWdfDevicePrepareHardware(
  [in] WDFDEVICE Device,
  [in] WDFCMRESLIST ResourcesRaw,
  [in] WDFCMRESLIST ResourcesTranslated
)
{...}

Parámetros

[in] Device

Identificador de un objeto de dispositivo de marco.

[in] ResourcesRaw

Identificador de un objeto de lista de recursos de marco que identifica los recursos de hardware sin procesar que el administrador de Plug and Play ha asignado al dispositivo.

[in] ResourcesTranslated

Identificador de un objeto de lista de recursos de marco que identifica los recursos de hardware traducidos que el administrador de Plug and Play ha asignado al dispositivo.

Valor devuelto

Si la función de devolución de llamada EvtDevicePrepareHardware 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. No devuelva STATUS_NOT_SUPPORTED.

Si NT_SUCCESS(status) es igual a FALSE, el marco llama a la función de devolución de llamada EvtDeviceReleaseHardware 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 EvtDevicePrepareHardware , un controlador debe llamar a WdfDeviceInitSetPnpPowerEventCallbacks.

Si el controlador ha registrado una función de devolución de llamada EvtDevicePrepareHardware para un dispositivo, el marco llama a la función después de que el administrador de Plug and Play haya asignado recursos de hardware al dispositivo y después de que el dispositivo haya entrado en su estado D0 sin inicializar. (El administrador de Plug and Play siempre inicia un dispositivo primario antes de iniciar los dispositivos secundarios de ese dispositivo).

El marco llama a la función de devolución de llamada EvtDevicePrepareHardware del controlador antes de llamar a la función de devolución de llamada EvtDeviceD0Entry del controlador.

La función de devolución de llamada EvtDevicePrepareHardware accede a los recursos de hardware sin procesar y traducidos del dispositivo mediante los identificadores ResourcesRaw y ResourcesTranslated que recibe. La función de devolución de llamada puede llamar a WdfCmResourceListGetCount y WdfCmResourceListGetDescriptor para recorrer las listas de recursos. Esta función de devolución de llamada no puede modificar las listas de recursos.

Para obtener más información sobre las listas de recursos y el orden en que aparecen los recursos, consulte Recursos de hardware sin procesar y traducidos.

Normalmente, la función de devolución de llamada EvtDevicePrepareHardware del controlador realiza lo siguiente, si es necesario:

  • Asigna direcciones de memoria física a direcciones virtuales para que el controlador pueda acceder a la memoria asignada al dispositivo.
  • Determina el número de revisión del dispositivo.
  • Configura dispositivos USB
  • Obtiene interfaces definidas por el controlador de otros controladores.
Opcionalmente, la función de devolución de llamada EvtDevicePrepareHardware del controlador podría poner en cola un elemento de trabajo para completar cualquier otra tarea de configuración que consume mucho tiempo. El uso de un elemento de trabajo para estas operaciones puede ayudar a garantizar que el tiempo de inicio del dispositivo no aumente el tiempo de arranque del sistema. Para obtener más información, vea Uso de elementos de trabajo de Framework.

Normalmente, todas las demás operaciones de inicialización de hardware, incluido el firmware de carga, deben realizarse cada vez que el dispositivo entra en su estado de trabajo (D0) y, por lo tanto, deben tener lugar en la función de devolución de llamada EvtDeviceD0Entry del controlador.

Los identificadores ResourcesRaw y ResourcesTranslated que recibe la función de devolución de llamada EvtDevicePrepareHardware permanecen válidas hasta que se devuelva la función de devolución de llamada EvtDeviceReleaseHardware del controlador.

Para obtener más información sobre los recursos de hardware, consulte Recursos de hardware para controladores de Framework-Based.

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 Compatibilidad con PnP y administración de energía en controladores de función.

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

EvtDeviceReleaseHardware