Freigeben über


GPIO_CLIENT_RECONFIGURE_INTERRUPT Rückruffunktion (gpioclx.h)

Die CLIENT_ReconfigureInterrupt Ereignisrückruffunktion konfiguriert einen allgemeinen I/O-Pin (GPIO), 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-Interrupt-Pin neu konfiguriert wird.

Rückgabewert

Die CLIENT_ReconfigureInterrupt-Funktion gibt STATUS_SUCCESS zurück, wenn der Aufruf erfolgreich ist. Andernfalls wird ein entsprechender Fehlercode zurückgegeben.

Bemerkungen

Die GPIO-Framework-Erweiterung (GpioClx) ruft möglicherweise die CLIENT_ReconfigureInterrupt-Funktion auf, um den Unterbrechungsmodus zu ändern oder die Polarität eines GPIO-Pins zu unterbrechen, der als Interrupteingabe verwendet wird.

Wenn z. B. die GPIO-Controllerhardware aktiv-beide Interrupts nicht direkt unterstützt, aber so konfiguriert werden kann, dass aktiv-high- und active-low-level-mode Interrupts unterstützt werden, kann GpioClx einen aktiv-beide Interrupt-Pin emulieren, indem die CLIENT_ReconfigureInterrupt-Funktion aufgerufen wird, um alternativ einen GPIO-Pin für Unterbrechungen im aktiven und aktiven Modus zu konfigurieren. Weitere Informationen zu aktiven Unterbrechungen 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 für GpioClx bereitstellt. Die CLIENT_QueryControllerBasicInformation-Funktion stellt Geräteinformationen in Form einer CLIENT_CONTROLLER_BASIC_INFORMATION Struktur bereit. Wenn das MemoryMappedController- Flagbit im Flags Mitglied dieser Struktur festgelegt ist, ruft GpioClx die CLIENT_ReconfigureInterrupt-Funktion bei DIRQL auf, d. h. die IRQL, bei der der ISR in GpioClx ausgeführt wird. Andernfalls wird diese Funktion bei PASSIVE_LEVEL aufgerufen. Weitere Informationen zu diesem Flagbit finden Sie unter Optional und Required GPIO Callback Functions.

Beispiele

Um eine CLIENT_ReconfigureInterrupt Rückruffunktion zu definieren, müssen Sie zuerst eine Funktionsdeklaration bereitstellen, die den Typ der rückruffunktion identifiziert, die Sie definieren. Windows stellt eine Reihe von Rückruffunktionstypen für Treiber bereit. Durch das Deklarieren einer Funktion mithilfe der Rückruffunktionstypen können Codeanalyse für Treiber, statische Treiberüberprüfung (SDV) und andere Überprüfungstools Fehler finden, und es ist eine Anforderung zum Schreiben von Treibern für das Windows-Betriebssystem.

Um beispielsweise eine CLIENT_ReconfigureInterrupt Rückruffunktion zu definieren, die MyEvtGpioReconfigureInterruptbenannt ist, verwenden Sie den GPIO_CLIENT_RECONFIGURE_INTERRUPT Funktionstyp, wie in diesem Codebeispiel gezeigt:

GPIO_CLIENT_RECONFIGURE_INTERRUPT MyEvtGpioReconfigureInterrupt;

Implementieren Sie dann die 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 genauer zu identifizieren, wenn Sie die Codeanalysetools ausführen, müssen Sie der Funktionsdefinition die Use_decl_annotations Anmerkung hinzufügen. Die Use_decl_annotations Anmerkung stellt sicher, dass die Anmerkungen, die auf den Funktionstyp GPIO_CLIENT_RECONFIGURE_INTERRUPT in der Headerdatei angewendet werden, verwendet 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_annotationsfinden Sie unter Annotating Function Behavior.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Wird ab Windows 8 unterstützt.
Zielplattform- Desktop
Header- gpioclx.h
IRQL- Siehe Anmerkungen.

Siehe auch

CLIENT_CONTROLLER_BASIC_INFORMATION

CLIENT_QueryControllerBasicInformation

CONTROLLER_ATTRIBUTE_FLAGS

GPIO_RECONFIGURE_INTERRUPTS_PARAMETERS