Aktivieren und Deaktivieren freigegebener GPIO-Interrupts
In einigen Fällen können Unterbrechungsanforderungsleitungen von zwei oder mehr Peripheriegeräten mit demselben GPIO-Pin (General Purpose E/O) verbunden werden. Der GPIO-Pin für eine freigegebene Interruptzeile wird in der Regel für unterbrechungsbedingte Unterbrechungen konfiguriert.
Wenn die Treiber für diese Geräte ihre Interruptdienstroutinen (ISRs) registrieren, die ausgelöst werden sollen, wenn ein Interrupt auf diesem GPIO-Pin bestätigt wird, ruft die GPIO-Frameworkerweiterung (GpioClx) die CLIENT_EnableInterrupt Rückruffunktion nur auf, wenn der erste Treiber sich für diesen Interrupt registriert. Wenn andere Treiber registrieren, um einen bereits aktivierten GPIO-Interrupt zu verwenden, verfolgt GpioClx diese Registrierungen intern, ruft jedoch nicht redundant die CLIENT_EnableInterrupt Rückruffunktion auf, um diesen Interrupt zu aktivieren. Ebenso ruft GpioClx die CLIENT_DisableInterrupt Rückruffunktion nur auf, wenn der letzte dieser registrierten Treiber den Interrupt freigibt.