共用方式為


GPIO_CLX_AcquireInterruptLock函式 (gpioclx.h)

GPIO_CLX_AcquireInterruptLock方法會在一般用途 I/O (GPIO) 控制器中取得針腳銀行的中斷鎖定。

語法

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

參數

[in] Context

GPIO 控制器驅動程式 裝置內容的指標。 GPIO 架構延伸模組 (GpioClx) 將此指標值當做參數傳遞至 GPIO 控制器驅動程式所實作的回呼函式。

[in] BankId

這個 GPIO 針腳銀行的標識碼。 如果 N 是 GPIO 控制器中的銀行數目, BankId 是範圍 0 到 N–1 的整數。

傳回值

備註

GPIO 控制器驅動程式線程會呼叫此方法,以同步處理至 GpioClx 中的 ISR) 中斷服務例 (程。 當呼叫端保留中斷鎖定時,ISR 無法呼叫驅動程序實作的回呼函式,以存取指定銀行中的 GPIO 快取存器。 GPIO 控制器驅動程式應該先呼叫這個方法,再嘗試存取 GpioClx ISR 可能存取的 GPIO 快取器。

GpioClx ISR 會呼叫驅動程式實作的回呼函式,以存取中斷狀態,並在 GPIO 控制器中啟用緩存器。 根據 GPIO 控制器的功能,ISR 會在 DIRQL 或 PASSIVE_LEVEL 呼叫。 如需詳細資訊,請參閱 中斷相關的回呼

如果 GpioClx ISR 在 DIRQL 存取這些中斷緩存器, GPIO_CLX_AcquireInterruptLock 會將呼叫線程的 IRQL 引發至 ISR 執行所在的 DIRQL。 如果ISR在PASSIVE_LEVEL執行,這個方法不會變更呼叫線程的 IRQL。

GPIO_CLX_ReleaseInterruptLock方法會釋放在先前呼叫 GPIO_CLX_AcquireInterruptLock 中取得的中斷鎖定。 BankId 參數會指定受鎖定影響的銀行。 若要釋放銀行的鎖定,GPIO_CLX_ReleaseInterruptLock呼叫的 BankId 參數必須符合取得鎖定之GPIO_CLX_AcquireInterruptLock呼叫的 BankId 參數。 如果GPIO_CLX_AcquireInterruptLock呼叫引發呼叫線程的 IRQL,GPIO_CLX_ReleaseInterruptLock還原此線程的原始 IRQL。

GPIO 控制器驅動程式可以獨立取得並釋放 GPIO 控制器中各種銀行的中斷鎖定。 不過,如果驅動程式已在此銀行上持有鎖定,則驅動程式嘗試取得特定銀行的鎖定是嚴重錯誤。

如果 Context 參數為 NULL 或指向無效的 GPIO 裝置內容,這個方法會造成 GpioClx 偵錯組建中的錯誤檢查。

規格需求

需求
最低支援的用戶端 從 Windows 8 開始提供。
目標平台 Universal
標頭 gpioclx.h
程式庫 Msgpioclxstub.lib
IRQL DIRQL 或位於 PASSIVE_LEVEL。 請參閱<備註>。

另請參閱

GPIO_CLX_ReleaseInterruptLock