Freigeben über


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 MyEvtGpioReconfigureInterruptzu 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

CLIENT_QueryControllerBasicInformation

CONTROLLER_ATTRIBUTE_FLAGS

GPIO_RECONFIGURE_INTERRUPTS_PARAMETERS