Compartir a través de


función GPIO_CLX_AcquireInterruptLock (gpioclx.h)

El método GPIO_CLX_AcquireInterruptLock adquiere un bloqueo de interrupción en un banco de patillas en el controlador de E/S de uso general (GPIO).

Sintaxis

void GPIO_CLX_AcquireInterruptLock(
  [in] PVOID   Context,
  [in] BANK_ID BankId
);

Parámetros

[in] Context

Puntero al contexto del dispositivo del controlador GPIO. La extensión del marco gpIO (GpioClx) pasa este valor de puntero como parámetro a las funciones de devolución de llamada implementadas por el controlador del controlador GPIO.

[in] BankId

Identificador de este banco de patillas GPIO. Si N es el número de bancos en el controlador GPIO, BankId es un entero en el intervalo de 0 a N-1.

Valor devuelto

None

Observaciones

Un subproceso de controlador gpIO llama a este método para sincronizar con la rutina de servicio de interrupción (ISR) en GpioClx. Aunque el autor de la llamada contiene el bloqueo de interrupción, el ISR no puede llamar a las funciones de devolución de llamada implementadas por el controlador para acceder a los registros GPIO en el banco especificado. Un controlador de controlador GPIO debe llamar a este método antes de intentar acceder a los registros GPIO a los que pueda acceder el ISR de GpioClx.

GpioClx ISR llama a las funciones de devolución de llamada implementadas por el controlador para acceder al estado de interrupción y habilitar los registros en el controlador GPIO. Según las funcionalidades del controlador GPIO, se llama al ISR en DIRQL o en PASSIVE_LEVEL. Para obtener más información, consulte Devoluciones de llamada relacionadas con interrupciones.

Si el ISR gpioClx accede a estos registros de interrupción en DIRQL, GPIO_CLX_AcquireInterruptLock genera el IRQL del subproceso de llamada al DIRQL en el que se ejecuta el ISR. Si el ISR se ejecuta en PASSIVE_LEVEL, este método no cambia el IRQL del subproceso que realiza la llamada.

El método GPIO_CLX_ReleaseInterruptLock libera un bloqueo de interrupción que se adquirió en una llamada anterior a GPIO_CLX_AcquireInterruptLock. El parámetro BankId especifica el banco afectado por el bloqueo. Para liberar un bloqueo en un banco, el parámetro BankId de la llamada GPIO_CLX_ReleaseInterruptLock debe coincidir con el parámetro BankId de la llamada GPIO_CLX_AcquireInterruptLock que adquirió el bloqueo. Si la llamada GPIO_CLX_AcquireInterruptLock generó el IRQL del subproceso de llamada, GPIO_CLX_ReleaseInterruptLock restaura el IRQL original de este subproceso.

El controlador del controlador GPIO puede adquirir y liberar bloqueos de interrupción de forma independiente en los distintos bancos del controlador GPIO. Sin embargo, es un error irrecuperable que el controlador intente adquirir un bloqueo en un banco determinado si el controlador ya contiene un bloqueo en este banco.

Si el parámetro Context es NULL o apunta a un contexto de dispositivo GPIO no válido, este método provoca una comprobación de errores en las compilaciones de depuración de GpioClx.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible a partir de Windows 8.
Plataforma de destino Universal
Encabezado gpioclx.h
Library Msgpioclxstub.lib
IRQL DIRQL o en PASSIVE_LEVEL. Vea la sección Comentarios.

Consulte también

GPIO_CLX_ReleaseInterruptLock