EVT_ACX_FACTORY_CIRCUIT_RELEASE_HARDWARE función de devolución de llamada (acxcircuit.h)

El controlador usa la EVT_ACX_FACTORY_CIRCUIT_RELEASE_HARDWARE devolución de llamada para agregar funcionalidad cuando acXFACTORYCIRCUIT se encuentra en la fase de hardware de versión.

Sintaxis

EVT_ACX_FACTORY_CIRCUIT_RELEASE_HARDWARE EvtAcxFactoryCircuitReleaseHardware;

NTSTATUS EvtAcxFactoryCircuitReleaseHardware(
  WDFDEVICE Device,
  ACXFACTORYCIRCUIT Factory,
  WDFCMRESLIST ResourcesTranslated
)
{...}

Parámetros

Device

Objeto WDFDEVICE (descrito en Resumen de objetos de marco) asociado al circuito ACX.

Factory

Objeto ACXFACTORYCIRCUIT de fábrica de circuitos existente. (Para obtener más información sobre los objetos ACX, vea Resumen de objetos ACX.

ResourcesTranslated

Lista de recursos de WDF que describe los recursos traducidos que se usarán para la fase de preparación del hardware. Se trata de un objeto de lista de recursos del marco de WDF que representa una lista de recursos de hardware para un dispositivo. Para obtener más información sobre las listas de recursos traducidas, consulte Recursos sin procesar y traducidos.

Valor devuelto

Devuelve STATUS_SUCCESS si la llamada se realizó correctamente. De lo contrario, devuelve un código de error adecuado. Para obtener más información, vea Uso de valores NTSTATUS.

Comentarios

Para registrar una función de devolución de llamada EvtAcxFactoryCircuitReleaseHardware, el controlador debe llamar a AcxFactoryCircuitInitSetAcxCircuitPnpPowerCallbacks.

Si un controlador ha registrado una función de devolución de llamada EvtAcxFactoryCircuitReleaseHardware, el marco lo llama durante las transiciones siguientes:

  • Reequilibrio de recursos
  • Eliminación ordenada
  • Eliminación sorpresa

El marco ACX llama a la función de devolución de llamada EvtAcxFactoryCircuitReleaseHardware después de que el marco de WDF haya dejado de enviar solicitudes de E/S al dispositivo, las interrupciones asignadas al dispositivo se han deshabilitado y desconectado, y el dispositivo se ha desactivado.

El marco de ACX llama a la función de devolución de llamada EvtAcxFactoryCircuitReleaseHardware antes de que el marco WDF llame a la función de devolución de llamada EvtDeviceReleaseHardware del controlador.

Cuando el marco llama al EvtAcxFactoryCircuitReleaseHardware, el PDO del dispositivo sigue existiendo y se puede consultar para obtener información del dispositivo que está disponible en el estado de apagado, por ejemplo, el estado de configuración pci.

Además, los recursos de hardware traducidos que el marco proporciona a EvtDeviceReleaseHardware todavía se asignan al dispositivo. El propósito principal de esta función de devolución de llamada es liberar esos recursos y, en particular, para desasignar los recursos de memoria asignados a la función de devolución de llamada EvtAcxCircuitPrepareHardware del controlador. El controlador también puede usar esta devolución de llamada para realizar cualquier otra actividad de administración ACXCIRCUIT que pueda ser necesaria en el estado de apagado. Normalmente, todas las demás operaciones de apagado de hardware deben realizarse en la función de devolución de llamada EvtDeviceD0Exit del controlador.

El marco ACX siempre llama a la función de devolución de llamada EvtAcxFactoryCircuitReleaseHardware del controlador si se ha llamado a la función de devolución de llamada EvtAcxFactoryCircuitPrepareHardware del controlador, a menos que evtAcxFactoryCircuitPrepareHardware devuelva un código de error.

Para obtener más información sobre cuándo el marco acX y WDF llaman a estas funciones de devolución de llamada, consulte Escenarios de administración de energía y PnP.

Para obtener más información sobre los recursos de hardware, consulte Introducción a los recursos de hardware.

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 el controlador de funciones.

Requisitos de ACX

Versión mínima de ACX: 1.0

Para obtener más información sobre las versiones de ACX, consulte Introducción a la versión de ACX.

Requisitos

Requisito Valor
Header acxcircuit.h
IRQL PASSIVE_LEVEL

Consulte también