Freigeben über


GPIO_CLIENT_DISABLE_INTERRUPT Rückruffunktion (gpioclx.h)

Die CLIENT_DisableInterrupt Ereignisrückruffunktion deaktiviert Unterbrechungen für einen allgemeinen I/O-Pin (GPIO), 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-Interrupt-Pin beschreibt.

Rückgabewert

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

Bemerkungen

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

Rufen Sie die GPIO_CLX_RegisterClient Methode auf, um die CLIENT_DisableInterrupt Rückruffunktion des Treibers zu registrieren. 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-Register jedoch speicherzuordnungen sind, ruft GpioClx die anderen interruptbezogenen Rückruffunktionen von ihrem ISR bei DIRQL auf. In diesem Fall sollten die CLIENT_EnableInterrupt- und CLIENT_DisableInterrupt-Funktionen die GPIO-Unterbrechungssperre verwenden, um ihre unterbrechungsbezogenen Vorgänge mit dem ISR zu synchronisieren. Weitere Informationen finden Sie unter Interrupt-Synchronisierung für GPIO-Controllertreiber.

Beispiele

Um eine CLIENT_DisableInterrupt 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.

Wenn Sie beispielsweise eine CLIENT_DisableInterrupt Rückruffunktion definieren möchten, die MyEvtGpioDisableInterruptbenannt ist, verwenden Sie den funktionstyp GPIO_CLIENT_DISABLE_INTERRUPT, wie in diesem Codebeispiel gezeigt:

GPIO_CLIENT_DISABLE_INTERRUPT MyEvtGpioDisableInterrupt;

Implementieren Sie dann die Rückruffunktion wie folgt:

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

Der GPIO_CLIENT_DISABLE_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_DISABLE_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- Wird bei PASSIVE_LEVEL aufgerufen.

Siehe auch

CLIENT_EnableInterrupt

GPIO_CLIENT_REGISTRATION_PACKET

GPIO_CLX_RegisterClient

GPIO_DISABLE_INTERRUPT_PARAMETERS