GPIO_CLIENT_SAVE_BANK_HARDWARE_CONTEXT función de devolución de llamada (gpioclx.h)

La función de devolución de llamada de evento CLIENT_SaveBankHardwareContext guarda el contexto de hardware de un banco de patillas de E/S de uso general (GPIO).

Sintaxis

GPIO_CLIENT_SAVE_BANK_HARDWARE_CONTEXT GpioClientSaveBankHardwareContext;

void GpioClientSaveBankHardwareContext(
  [in] PVOID Context,
  [in] PGPIO_SAVE_RESTORE_BANK_HARDWARE_CONTEXT_PARAMETERS Parameters
)
{...}

Parámetros

[in] Context

Puntero al contexto del dispositivo del controlador GPIO.

[in] Parameters

Puntero a una estructura GPIO_SAVE_RESTORE_BANK_HARDWARE_CONTEXT_PARAMETERS que describe el banco de patillas GPIO que se van a guardar.

Valor devuelto

None

Observaciones

La función CLIENT_SaveBankHardwareContext devuelve STATUS_SUCCESS si la llamada se realiza correctamente. De lo contrario, devuelve un código de estado de error adecuado.

Si un banco de patillas GPIO admite la administración de energía de nivel de componente, GpioClx puede cambiar el banco a un estado Fx de bajo consumo si el banco está inactivo. Si el banco del controlador GPIO pierde su contexto de hardware en el estado Fx, el controlador del controlador GPIO debe guardar este contexto antes de la transición de F0 a Fx y, más adelante, restaurar el contexto después de la transición fx-to-F0. Actualmente, F1 es el único estado de baja potencia que se define para los controladores GPIO que usan GpioClx.

GpioClx llama a la función CLIENT_SaveBankHardwareContext para guardar el contexto de hardware del banco. Más adelante, GpioClx llama a la función de devolución de llamada de evento CLIENT_RestoreBankHardwareContext para restaurar el contexto guardado anteriormente.

Algunos dispositivos de controlador GPIO permiten activar y desactivar los bancos seleccionados de patillas independientemente de otros bancos en el mismo dispositivo. Por lo tanto, la energía se puede ahorrar desactivando un banco que está inactivo.

Para registrar la función de devolución de llamada de CLIENT_SaveBankHardwareContext del controlador, llame al método GPIO_CLX_RegisterClient . Este método acepta, como parámetro de entrada, un puntero a una estructura GPIO_CLIENT_REGISTRATION_PACKET que contiene un puntero de función CLIENT_SaveBankHardwareContext .

GpioClx llama a la función de devolución de llamada CLIENT_SaveBankHardwareContext en PASSIVE_LEVEL o DIRQL, según la información del dispositivo que la función de devolución de llamada CLIENT_QueryControllerBasicInformation proporciona a GpioClx. La función CLIENT_QueryControllerBasicInformation proporciona información del dispositivo en forma de estructura CLIENT_CONTROLLER_BASIC_INFORMATION . Si el bit de marca MemoryMappedController se establece en el miembro Flags de esta estructura, GpioClx llama a la función CLIENT_SaveBankHardwareContext en DIRQL, que es el IRQL en el que se ejecuta el ISR en GpioClx. Para obtener más información sobre este bit de marca, vea Funciones de devolución de llamada GPIO opcionales y obligatorias.

Ejemplos

Para definir un CLIENT_SaveBankHardwareContext función de devolución de llamada, primero debe proporcionar una declaración de función que identifique el tipo de función 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 Análisis de código para controladores, Comprobador de controladores estáticos (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 función de devolución de llamada CLIENT_SaveBankHardwareContext denominada MyEvtGpioSaveBankHardwareContext, use el tipo de función GPIO_CLIENT_SAVE_BANK_HARDWARE_CONTEXT, como se muestra en este ejemplo de código:

GPIO_CLIENT_SAVE_BANK_HARDWARE_CONTEXT MyEvtGpioSaveBankHardwareContext;

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

_Use_decl_annotations_
NTSTATUS
  MyEvtGpioSaveBankHardwareContext(
    PVOID Context,
    PGPIO_SAVE_RESTORE_BANK_HARDWARE_CONTEXT_PARAMETERS Parameters
    )
{ ... }

El tipo de función GPIO_CLIENT_SAVE_BANK_HARDWARE_CONTEXT se define en el archivo de encabezado Gpioclx.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 Use_decl_annotations a la definición de función. La anotación Use_decl_annotations garantiza que se usen las anotaciones que se aplican al tipo de función GPIO_CLIENT_SAVE_BANK_HARDWARE_CONTEXT en el archivo de encabezado. Para obtener más información sobre los requisitos de las declaraciones de función, consulte Declaración de funciones mediante tipos de rol de función para controladores KMDF. Para obtener más 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 gpioclx.h
IRQL Vea la sección Comentarios.

Consulte también

CLIENT_CONTROLLER_BASIC_INFORMATION

CLIENT_QueryControllerBasicInformation

CLIENT_RestoreBankHardwareContext

GPIO_CLIENT_REGISTRATION_PACKET

GPIO_CLX_RegisterClient

GPIO_SAVE_RESTORE_BANK_HARDWARE_CONTEXT_PARAMETERS