Compartir a través de


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

La función de devolución de llamada de evento CLIENT_DisableInterrupt deshabilita las interrupciones en un pin de E/S de uso general (GPIO) configurado como entrada de interrupción.

Sintaxis

GPIO_CLIENT_DISABLE_INTERRUPT GpioClientDisableInterrupt;

NTSTATUS GpioClientDisableInterrupt(
  [in] PVOID Context,
  [in] PGPIO_DISABLE_INTERRUPT_PARAMETERS DisableParameters
)
{...}

Parámetros

[in] Context

Puntero al contexto del dispositivo del controlador GPIO.

[in] DisableParameters

Puntero a una estructura de GPIO_DISABLE_INTERRUPT_PARAMETERS que describe el pin de interrupción gpIO.

Valor devuelto

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

Comentarios

El controlador del controlador GPIO implementa esta función de devolución de llamada. GpioClx llama a esta función para deshabilitar las interrupciones en un pin GPIO configurado como entrada de solicitud de interrupción.

Para registrar la función de devolución de llamada CLIENT_DisableInterrupt 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_DisableInterrupt .

GpioClx siempre llama a las funciones de devolución de llamada CLIENT_EnableInterrupt y CLIENT_DisableInterrupt en IRQL = PASSIVE_LEVEL. Sin embargo, si los registros GPIO están asignados a memoria, GpioClx llama a las otras funciones de devolución de llamada relacionadas con interrupciones desde su ISR en DIRQL. En este caso, las funciones CLIENT_EnableInterrupt y CLIENT_DisableInterrupt deben usar el bloqueo de interrupción GPIO para sincronizar sus operaciones relacionadas con la interrupción con el ISR. Para obtener más información, consulte Sincronización de interrupciones para controladores de controlador GPIO.

Ejemplos

Para definir una función de devolución de llamada CLIENT_DisableInterrupt, 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_DisableInterrupt denominada MyEvtGpioDisableInterrupt, use el tipo de función GPIO_CLIENT_DISABLE_INTERRUPT, como se muestra en este ejemplo de código:

GPIO_CLIENT_DISABLE_INTERRUPT MyEvtGpioDisableInterrupt;

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

_Use_decl_annotations_
VOID
  MyEvtGpioDisableInterrupt(
    PVOID Context,
    PGPIO_DISABLE_INTERRUPT_PARAMETERS DisableParameters
    )
{ ... }

El tipo de función GPIO_CLIENT_DISABLE_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_DISABLE_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 Se llama en PASSIVE_LEVEL.

Consulte también

CLIENT_EnableInterrupt

GPIO_CLIENT_REGISTRATION_PACKET

GPIO_CLX_RegisterClient

GPIO_DISABLE_INTERRUPT_PARAMETERS