Freigeben über


GPIO_CLIENT_CLEAR_ACTIVE_INTERRUPTS Rückruffunktion (gpioclx.h)

Die CLIENT_ClearActiveInterrupts Ereignisrückruffunktion löscht aktive Interrupts für eine Reihe von GPIO-Pins (Universelle E/A), die als Interrupteingaben konfiguriert sind.

Syntax

GPIO_CLIENT_CLEAR_ACTIVE_INTERRUPTS GpioClientClearActiveInterrupts;

NTSTATUS GpioClientClearActiveInterrupts(
  [in]      PVOID Context,
  [in, out] PGPIO_CLEAR_ACTIVE_INTERRUPTS_PARAMETERS ClearParameters
)
{...}

Parameter

[in] Context

Ein Zeiger auf den Gerätekontext des GPIO-Controllertreibers.

[in, out] ClearParameters

Ein Zeiger auf eine GPIO_CLEAR_ACTIVE_INTERRUPTS_PARAMETERS Struktur, die bei der Eingabe die GPIO-Interruptpins zum Löschen beschreibt und beim Beenden die status des Clear-Vorgangs enthält.

Rückgabewert

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

Hinweise

Diese Rückruffunktion wird vom GPIO-Controllertreiber (General Purpose E/O) implementiert. Die GPIO-Frameworkerweiterung (GpioClx) ruft diese Funktion auf, um aktive Interrupts für GPIO-Pins zu löschen, die als Interruptanforderungseingaben konfiguriert sind.

Diese Rückruffunktion ist optional. Wenn die GPIO-Controllerhardware aktive Interrupts status Bits beim Lesen automatisch löscht, sollte der Treiber keine CLIENT_ClearActiveInterrupts Rückruffunktion registrieren. Weitere Informationen finden Sie unter Optionale und erforderliche GPIO-Rückruffunktionen.

Um die CLIENT_ClearActiveInterrupts Rückruffunktion Ihres Treibers zu registrieren, rufen Sie die GPIO_CLX_RegisterClient-Methode auf. Diese Methode akzeptiert als Eingabeparameter einen Zeiger auf eine GPIO_CLIENT_REGISTRATION_PACKET-Struktur , die einen CLIENT_ClearActiveInterrupts Funktionszeiger enthält.

GpioClx ruft die CLIENT_ClearActiveInterrupts Rückruffunktion entweder 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 Flagbit "MemoryMappedController " im Flags-Element dieser Struktur festgelegt ist, ruft GpioClx die CLIENT_ClearActiveInterrupts-Funktion bei DIRQL auf, d. h. die IRQL, an der die ISR in GpioClx ausgeführt wird. Andernfalls wird diese Funktion bei PASSIVE_LEVEL aufgerufen. Weitere Informationen zu diesem Flagbit finden Sie unter Interrupt-Related Callbacks.

Beispiele

Um eine CLIENT_ClearActiveInterrupts Rückruffunktion zu definieren, müssen Sie zunächst eine Funktionsdeklaration bereitstellen, die den Typ der Rückruffunktion identifiziert, die Sie definieren. 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 Voraussetzung für das Schreiben von Treibern für das Windows-Betriebssystem.

Um beispielsweise eine CLIENT_ClearActiveInterrupts Rückruffunktion mit dem Namen MyEvtGpioClearActiveInterruptszu definieren, verwenden Sie den Funktionstyp GPIO_CLIENT_CLEAR_ACTIVE_INTERRUPTS, wie in diesem Codebeispiel gezeigt:

GPIO_CLIENT_CLEAR_ACTIVE_INTERRUPTS MyEvtGpioClearActiveInterrupts;

Implementieren Sie dann Ihre Rückruffunktion wie folgt:

_Use_decl_annotations_
NTSTATUS
  MyEvtGpioClearActiveInterrupts(
    PVOID Context,
    PGPIO_CLEAR_ACTIVE_INTERRUPTS_PARAMETERS ClearParameters
    )
{ ... }

Der GPIO_CLIENT_CLEAR_ACTIVE_INTERRUPTS Funktionstyp ist in der Gpioclx.h-Headerdatei definiert. Um Fehler beim Ausführen der Codeanalysetools genauer zu identifizieren, müssen Sie der Funktionsdefinition die anmerkung Use_decl_annotations hinzufügen. Die Use_decl_annotations-Anmerkung stellt sicher, dass die Anmerkungen verwendet werden, die auf den GPIO_CLIENT_CLEAR_ACTIVE_INTERRUPTS 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 Annotating Function Behavior.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Unterstützt ab Windows 8.
Zielplattform Desktop
Kopfzeile gpioclx.h
IRQL Siehe Hinweise.

Weitere Informationen

CLIENT_CONTROLLER_BASIC_INFORMATION

CLIENT_QueryControllerBasicInformation

GPIO_CLEAR_ACTIVE_INTERRUPTS_PARAMETERS

GPIO_CLIENT_REGISTRATION_PACKET

GPIO_CLX_RegisterClient