Compartir a través de


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

La función de devolución de llamada de evento CLIENT_ReconfigureInterrupt vuelve a configurar un pin de E/S de uso general (GPIO) que se usa como entrada de interrupción.

Sintaxis

GPIO_CLIENT_RECONFIGURE_INTERRUPT GpioClientReconfigureInterrupt;

NTSTATUS GpioClientReconfigureInterrupt(
  [in] PVOID Context,
  [in] PGPIO_RECONFIGURE_INTERRUPTS_PARAMETERS ReconfigureParameters
)
{...}

Parámetros

[in] Context

Puntero al contexto del dispositivo del controlador GPIO.

[in] ReconfigureParameters

Puntero a una estructura de GPIO_RECONFIGURE_INTERRUPTS_PARAMETERS que especifica cómo volver a configurar el pin de interrupción gpIO.

Valor devuelto

La función CLIENT_ReconfigureInterrupt devuelve STATUS_SUCCESS si la llamada es correcta. De lo contrario, devuelve un código de error adecuado.

Comentarios

La extensión del marco gpIO (GpioClx) podría llamar a la función CLIENT_ReconfigureInterrupt para cambiar el modo de interrupción o la polaridad de interrupción de un pin GPIO que se usa como entrada de interrupción.

Por ejemplo, si el hardware del controlador GPIO no admite directamente las interrupciones activas, pero se puede configurar para admitir interrupciones en modo activo-alto y activo-bajo, GpioClx puede emular un pin de interrupción activo-ambos llamando a la función de CLIENT_ReconfigureInterrupt para configurar alternativamente un pin GPIO para interrupciones en modo activo-alto y activo-bajo. Para obtener más información sobre las interrupciones activas, consulte la descripción de la marca EmularActiveBoth en CONTROLLER_ATTRIBUTE_FLAGS.

GpioClx llama a la función de devolución de llamada CLIENT_ReconfigureInterrupt en PASSIVE_LEVEL o DIRQL, en función de 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 una estructura de 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_ReconfigureInterrupt en DIRQL, que es el IRQL en el que se ejecuta el ISR en GpioClx. De lo contrario, se llama a esta función en PASSIVE_LEVEL. Para obtener más información sobre este bit de marca, vea Funciones de devolución de llamada GPIO opcionales y necesarias.

Ejemplos

Para definir una función de devolución de llamada CLIENT_ReconfigureInterrupt, primero debe proporcionar una declaración de función que identifique el tipo de función de devolución de llamada que va a definir. 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 función de devolución de llamada CLIENT_ReconfigureInterrupt denominada MyEvtGpioReconfigureInterrupt, use el tipo de función GPIO_CLIENT_RECONFIGURE_INTERRUPT, como se muestra en este ejemplo de código:

GPIO_CLIENT_RECONFIGURE_INTERRUPT MyEvtGpioReconfigureInterrupt;

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

_Use_decl_annotations_
NTSTATUS
  MyEvtGpioReconfigureInterrupt(
    PVOID Context,
    PGPIO_RECONFIGURE_INTERRUPTS_PARAMETERS ReconfigureParameters
    )
{ ... }

El tipo de función GPIO_CLIENT_RECONFIGURE_INTERRUPT 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_RECONFIGURE_INTERRUPT 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 roles 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

CONTROLLER_ATTRIBUTE_FLAGS

GPIO_RECONFIGURE_INTERRUPTS_PARAMETERS