Freigeben über


GPIO_CLIENT_DISABLE_INTERRUPT Rückruffunktion (gpioclx.h)

Die CLIENT_DisableInterrupt Ereignisrückruffunktion deaktiviert Interrupts für einen GPIO-Pin (Universelle E/A), der als Interrupteingabe konfiguriert ist.

Syntax

GPIO_CLIENT_DISABLE_INTERRUPT GpioClientDisableInterrupt;

NTSTATUS GpioClientDisableInterrupt(
  [in] PVOID Context,
  [in] PGPIO_DISABLE_INTERRUPT_PARAMETERS DisableParameters
)
{...}

Parameter

[in] Context

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

[in] DisableParameters

Ein Zeiger auf eine GPIO_DISABLE_INTERRUPT_PARAMETERS-Struktur , die den GPIO-Interruptpin beschreibt.

Rückgabewert

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

Hinweise

Diese Rückruffunktion wird vom GPIO-Controllertreiber implementiert. GpioClx ruft diese Funktion auf, um Interrupts für einen GPIO-Pin zu deaktivieren, der als Interruptanforderungseingabe konfiguriert ist.

Um die CLIENT_DisableInterrupt 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_DisableInterrupt-Funktionszeiger enthält.

GpioClx ruft immer die CLIENT_EnableInterrupt - und CLIENT_DisableInterrupt Rückruffunktionen bei IRQL = PASSIVE_LEVEL auf. Wenn die GPIO-Registrierungen jedoch speicherseitig zugeordnet sind, ruft GpioClx die anderen Interrupt-bezogenen Rückruffunktionen von seinem ISR unter DIRQL auf. In diesem Fall sollten die CLIENT_EnableInterrupt - und CLIENT_DisableInterrupt funktionen die GPIO-Interruptsperre verwenden, um ihre interruptbezogenen Vorgänge mit dem ISR zu synchronisieren. Weitere Informationen finden Sie unter Unterbrechen der Synchronisierung für GPIO-Controllertreiber.

Beispiele

Um eine CLIENT_DisableInterrupt 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_DisableInterrupt Rückruffunktion namens MyEvtGpioDisableInterruptzu definieren, verwenden Sie den GPIO_CLIENT_DISABLE_INTERRUPT Funktionstyp, wie in diesem Codebeispiel gezeigt:

GPIO_CLIENT_DISABLE_INTERRUPT MyEvtGpioDisableInterrupt;

Implementieren Sie dann Ihre Rückruffunktion wie folgt:

_Use_decl_annotations_
VOID
  MyEvtGpioDisableInterrupt(
    PVOID Context,
    PGPIO_DISABLE_INTERRUPT_PARAMETERS DisableParameters
    )
{ ... }

Der GPIO_CLIENT_DISABLE_INTERRUPT Funktionstyp ist 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_DISABLE_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 Wird bei PASSIVE_LEVEL aufgerufen.

Weitere Informationen

CLIENT_EnableInterrupt

GPIO_CLIENT_REGISTRATION_PACKET

GPIO_CLX_RegisterClient

GPIO_DISABLE_INTERRUPT_PARAMETERS