GPIO_CLIENT_CLEAR_ACTIVE_INTERRUPTS función de devolución de llamada (gpioclx.h)
La función de devolución de llamada de evento CLIENT_ClearActiveInterrupts borra las interrupciones activas en un conjunto de patillas de E/S de uso general (GPIO) configuradas como entradas de interrupción.
Sintaxis
GPIO_CLIENT_CLEAR_ACTIVE_INTERRUPTS GpioClientClearActiveInterrupts;
NTSTATUS GpioClientClearActiveInterrupts(
[in] PVOID Context,
[in, out] PGPIO_CLEAR_ACTIVE_INTERRUPTS_PARAMETERS ClearParameters
)
{...}
Parámetros
[in] Context
Puntero al contexto del dispositivo del controlador GPIO.
[in, out] ClearParameters
Un puntero a una estructura de GPIO_CLEAR_ACTIVE_INTERRUPTS_PARAMETERS que, en la entrada, describe las patillas de interrupción de GPIO para borrar y, al salir, contiene el estado de la operación de borrado.
Valor devuelto
La función CLIENT_ClearActiveInterrupts devuelve STATUS_SUCCESS si la llamada es correcta. De lo contrario, devuelve un código de error adecuado.
Comentarios
Esta función de devolución de llamada se implementa mediante el controlador de controlador de E/S de uso general (GPIO). La extensión del marco gpIO (GpioClx) llama a esta función para borrar las interrupciones activas en los patillas GPIO configuradas como entradas de solicitud de interrupción.
Esta función de devolución de llamada es opcional. Si el hardware del controlador GPIO borra automáticamente los bits de estado de interrupción activo cuando se leen, el controlador no debe registrar una función de devolución de llamada CLIENT_ClearActiveInterrupts . Para obtener más información, vea Funciones de devolución de llamada GPIO opcionales y necesarias.
Para registrar la función de devolución de llamada CLIENT_ClearActiveInterrupts del controlador, llame al método GPIO_CLX_RegisterClient . Este método acepta, como parámetro de entrada, un puntero a una estructura de GPIO_CLIENT_REGISTRATION_PACKET que contiene un puntero de función CLIENT_ClearActiveInterrupts .
GpioClx llama a la función de devolución de llamada CLIENT_ClearActiveInterrupts 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_ClearActiveInterrupts 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 Devoluciones de llamada relacionadas con interrupciones.
Ejemplos
Para definir una función de devolución de llamada CLIENT_ClearActiveInterrupts , 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_ClearActiveInterrupts denominada MyEvtGpioClearActiveInterrupts
, use el tipo de función GPIO_CLIENT_CLEAR_ACTIVE_INTERRUPTS, como se muestra en este ejemplo de código:
GPIO_CLIENT_CLEAR_ACTIVE_INTERRUPTS MyEvtGpioClearActiveInterrupts;
A continuación, implemente la función de devolución de llamada de la siguiente manera:
_Use_decl_annotations_
NTSTATUS
MyEvtGpioClearActiveInterrupts(
PVOID Context,
PGPIO_CLEAR_ACTIVE_INTERRUPTS_PARAMETERS ClearParameters
)
{ ... }
El tipo de función GPIO_CLIENT_CLEAR_ACTIVE_INTERRUPTS 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_CLEAR_ACTIVE_INTERRUPTS 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
GPIO_CLEAR_ACTIVE_INTERRUPTS_PARAMETERS