GPIO_CLIENT_RECONFIGURE_INTERRUPT Rückruffunktion (gpioclx.h)
Die CLIENT_ReconfigureInterrupt Ereignisrückruffunktion konfiguriert einen GPIO-Pin (Universelle E/A), der als Interrupteingabe verwendet wird.
Syntax
GPIO_CLIENT_RECONFIGURE_INTERRUPT GpioClientReconfigureInterrupt;
NTSTATUS GpioClientReconfigureInterrupt(
[in] PVOID Context,
[in] PGPIO_RECONFIGURE_INTERRUPTS_PARAMETERS ReconfigureParameters
)
{...}
Parameter
[in] Context
Ein Zeiger auf den Gerätekontext des GPIO-Controllertreibers.
[in] ReconfigureParameters
Ein Zeiger auf eine GPIO_RECONFIGURE_INTERRUPTS_PARAMETERS-Struktur , die angibt, wie der GPIO-Interruptpin neu konfiguriert werden soll.
Rückgabewert
Die CLIENT_ReconfigureInterrupt-Funktion gibt STATUS_SUCCESS zurück, wenn der Aufruf erfolgreich ist. Andernfalls wird ein entsprechender Fehlercode zurückgegeben.
Hinweise
Die GPIO-Frameworkerweiterung (GpioClx) ruft möglicherweise die CLIENT_ReconfigureInterrupt-Funktion auf, um den Interruptmodus oder die Unterbrechungspolarität eines GPIO-Pins zu ändern, der als Interrupteingabe verwendet wird.
Wenn die GPIO-Controllerhardware z. B. nicht direkt aktiv-beide Interrupts unterstützt, sondern so konfiguriert werden kann, dass sie Unterbrechungen im Aktiv-Hoch- und Aktiv-Low-Level-Modus unterstützen, kann GpioClx einen Aktiv-Beide-Interrupt-Pin emulieren, indem die CLIENT_ReconfigureInterrupt-Funktion aufgerufen wird, um alternativ einen GPIO-Pin für Unterbrechungen im Aktiv-Hoch- und Aktiv-Niedrigmodus zu konfigurieren. Weitere Informationen zu aktiv-both-Interrupts finden Sie in der Beschreibung des EmulateActiveBoth-Flags in CONTROLLER_ATTRIBUTE_FLAGS.
GpioClx ruft die CLIENT_ReconfigureInterrupt Rückruffunktion entweder bei PASSIVE_LEVEL oder DIRQL auf, abhängig von den Geräteinformationen, die die CLIENT_QueryControllerBasicInformation Rückruffunktion an GpioClx bereitstellt. Die CLIENT_QueryControllerBasicInformation-Funktion stellt Geräteinformationen in Form einer CLIENT_CONTROLLER_BASIC_INFORMATION-Struktur bereit. Wenn das MemoryMappedController-Flagbit im Flags-Member dieser Struktur festgelegt ist, ruft GpioClx die CLIENT_ReconfigureInterrupt-Funktion bei DIRQL auf, d. h. die IRQL, an der der ISR in GpioClx ausgeführt wird. Andernfalls wird diese Funktion bei PASSIVE_LEVEL aufgerufen. Weitere Informationen zu diesem Flagbit finden Sie unter Optionale und erforderliche GPIO-Rückruffunktionen.
Beispiele
Um eine CLIENT_ReconfigureInterrupt Rückruffunktion zu definieren, müssen Sie zunächst eine Funktionsdeklaration bereitstellen, die den Typ der von Ihnen definierten Rückruffunktion angibt. Windows bietet eine Reihe von Rückruffunktionstypen für Treiber. Das Deklarieren einer Funktion mithilfe der Rückruffunktionstypen hilft der Codeanalyse für Treiber, der statischen Treiberüberprüfung (Static Driver Verifier , SDV) und anderen Überprüfungstools, Fehler zu finden, und es ist eine Anforderung zum Schreiben von Treibern für das Windows-Betriebssystem.
Um beispielsweise eine CLIENT_ReconfigureInterrupt Rückruffunktion namens MyEvtGpioReconfigureInterrupt
zu definieren, verwenden Sie den GPIO_CLIENT_RECONFIGURE_INTERRUPT Funktionstyp, wie in diesem Codebeispiel gezeigt:
GPIO_CLIENT_RECONFIGURE_INTERRUPT MyEvtGpioReconfigureInterrupt;
Implementieren Sie dann Ihre Rückruffunktion wie folgt:
_Use_decl_annotations_
NTSTATUS
MyEvtGpioReconfigureInterrupt(
PVOID Context,
PGPIO_RECONFIGURE_INTERRUPTS_PARAMETERS ReconfigureParameters
)
{ ... }
Der GPIO_CLIENT_RECONFIGURE_INTERRUPT Funktionstyp wird in der Headerdatei Gpioclx.h definiert. Um Fehler beim Ausführen der Codeanalysetools genauer zu identifizieren, fügen Sie der Funktionsdefinition die Use_decl_annotations Anmerkung hinzu. Die Use_decl_annotations Anmerkung stellt sicher, dass die Anmerkungen verwendet werden, die auf den GPIO_CLIENT_RECONFIGURE_INTERRUPT Funktionstyp in der Headerdatei angewendet werden. Weitere Informationen zu den Anforderungen für Funktionsdeklarationen finden Sie unter Deklarieren von Funktionen mithilfe von Funktionsrollentypen für KMDF-Treiber. Weitere Informationen zu Use_decl_annotations finden Sie unter Verhalten von Funktionen mit Anmerkungen.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Wird ab Windows 8 unterstützt. |
Zielplattform | Desktop |
Kopfzeile | gpioclx.h |
IRQL | Siehe Hinweise. |
Weitere Informationen
CLIENT_CONTROLLER_BASIC_INFORMATION