Compartir a través de


PO_FX_COMPONENT_IDLE_CONDITION_CALLBACK función de devolución de llamada (wdm.h)

La rutina de devolución de llamada ComponentIdleConditionCallback notifica al controlador que el componente especificado completó una transición de la condición activa a la condición inactiva.

Sintaxis

PO_FX_COMPONENT_IDLE_CONDITION_CALLBACK PoFxComponentIdleConditionCallback;

void PoFxComponentIdleConditionCallback(
  [in] PVOID Context,
  [in] ULONG Component
)
{...}

Parámetros

[in] Context

Puntero al contexto del dispositivo. El controlador de dispositivo usa este contexto para almacenar información sobre el estado de alimentación actual del dispositivo. El controlador de dispositivo especificó este puntero en el miembro DeviceContext de la estructura PO_FX_DEVICE que el controlador usó para registrar el dispositivo con el marco de administración de energía (PoFx). Este contexto es opaco para PoFx.

[in] Component

Índice que identifica el componente. Este parámetro es un índice en la matriz Components de la estructura PO_FX_DEVICE que el controlador de dispositivo usó para registrar el dispositivo con PoFx. Si la matriz Components contiene N elementos, los índices de componente oscilan entre 0 y N-1.

Valor devuelto

None

Observaciones

Cuando el controlador ya no necesita tener acceso a un componente que se encuentra en la condición activa, el controlador debe llamar a la rutina PoFxIdleComponent para cambiar el componente a la condición de inactividad. En respuesta a la llamada a PoFxIdleComponent, PoFx inicia la transición a la condición de inactividad y, a continuación, llama a la rutina ComponentIdleConditionCallback para notificar al controlador cuando se complete esta transición.

El controlador debe llamar a PoFxCompleTeIdleCondition en respuesta a cada devolución de llamada ComponentIdleConditionCallback . La llamada a PoFxCompleTeIdleCondition puede producirse durante la devolución de llamada ComponentIdleConditionCallback o después de que se devuelva la devolución de llamada. El controlador debe completar cualquier trabajo que requiera acceso al componente de hardware antes de la llamada a PoFxCompleteIdleCondition. Después de esta llamada, es posible que el componente no permanezca en el estado de alimentación F0.

Solo se puede acceder a un componente de forma segura cuando el componente está en la condición activa. No confíe en el estado de energía fx de un componente para determinar si se puede acceder al componente. Si el componente está en estado F0 y está en la condición de inactividad, es posible que el componente esté a punto de cambiar a otro estado Fx.

Ejemplos

Para definir una rutina de devolución de llamada ComponentIdleConditionCallback , primero debe proporcionar una declaración de función que identifique el tipo de rutina de devolución de llamada que está definiendo. Windows proporciona un conjunto de tipos de función de devolución de llamada para controladores. Declarar una función mediante los tipos de función de devolución de llamada ayuda a Code Analysis for Drivers, Static Driver Verifier (SDV) y otras herramientas de comprobación encuentran errores y es un requisito para escribir controladores para el sistema operativo Windows.

Por ejemplo, para definir una rutina de devolución de llamada ComponentIdleConditionCallback denominada MyComponentIdleConditionCallback, use el tipo PO_FX_COMPONENT_IDLE_CONDITION_CALLBACK como se muestra en este ejemplo de código:

PO_FX_COMPONENT_IDLE_CONDITION_CALLBACK MyComponentIdleConditionCallback;

A continuación, implemente la rutina de devolución de llamada de la siguiente manera:

_Use_decl_annotations_
VOID
  MyComponentIdleConditionCallback(
    PVOID Context,
    ULONG Component
    )
  {
      // Function body
  }

El tipo de función PO_FX_COMPONENT_IDLE_CONDITION_CALLBACK se define en el archivo de encabezado Wdm.h. Para identificar con más precisión los errores al ejecutar las herramientas de análisis de código, asegúrese de agregar la anotación a la _Use_decl_annotations_ definición de la función. La _Use_decl_annotations_ anotación garantiza que se usen las anotaciones que se aplican al tipo de función PO_FX_COMPONENT_IDLE_CONDITION_CALLBACK en el archivo de encabezado. Para obtener más información sobre los requisitos de las declaraciones de función, vea Declarar funciones mediante tipos de roles de función para controladores WDM. Para obtener información sobre _Use_decl_annotations_, consulte Anotación del comportamiento de la función.

Requisitos

Requisito Value
Cliente mínimo compatible Se admite a partir de Windows 8.
Plataforma de destino Escritorio
Encabezado wdm.h (incluya Wudfwdm.h)
IRQL Se llama en IRQL <= DISPATCH_LEVEL.

Consulte también

PO_FX_DEVICE

PoFxCompleteIdleCondition