GPIO_CLIENT_WRITE_PINS Rückruffunktion (gpioclx.h)
Die CLIENT_WriteGpioPins Ereignisrückruffunktion schreibt in einen Satz von GPIO-Pins (General Purpose E/O), die als Datenausgaben konfiguriert sind.
Syntax
GPIO_CLIENT_WRITE_PINS GpioClientWritePins;
NTSTATUS GpioClientWritePins(
[in] PVOID Context,
[in] PGPIO_WRITE_PINS_PARAMETERS WriteParameters
)
{...}
Parameter
[in] Context
Ein Zeiger auf den Gerätekontext des GPIO-Controllertreibers.
[in] WriteParameters
Ein Zeiger auf eine GPIO_WRITE_PINS_PARAMETERS Struktur, die eine Bank von GPIO-Pins beschreibt und die Daten enthält, die in diese Pins geschrieben werden sollen.
Rückgabewert
Die CLIENT_WriteGpioPins-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.
Alle Pins im PinNumberTable-Array gehören zur Bank, die durch den BankId-Parameter identifiziert wird.
Um die CLIENT_WriteGpioPins 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_WriteGpioPins Funktionszeiger enthält.
Die CLIENT_WriteGpioPins-Funktion kann über die Interruptdienstroutine (ISR) in GpioClx aufgerufen werden. Dieser ISR wird entweder mit PASSIVE_LEVEL oder DIRQL ausgeführt, 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, wird der GpioClx-ISR bei DIRQL ausgeführt und ruft die CLIENT_WriteGpioPins-Funktion bei DIRQL auf. Andernfalls wird der ISR bei PASSIVE_LEVEL ausgeführt und ruft die Funktion bei PASSIVE_LEVEL auf. Weitere Informationen zu diesem Flagbit finden Sie unter Optionale und erforderliche GPIO-Rückruffunktionen.
Beispiele
Um eine CLIENT_WriteGpioPins 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_WriteGpioPins Rückruffunktion namens MyEvtGpioWriteGpioPins
zu definieren, verwenden Sie den GPIO_CLIENT_WRITE_PINS Funktionstyp, wie in diesem Codebeispiel gezeigt:
GPIO_CLIENT_WRITE_PINS MyEvtGpioWritePins;
Implementieren Sie dann Ihre Rückruffunktion wie folgt:
_Use_decl_annotations_
NTSTATUS
MyEvtGpioWritePins(
PVOID Context,
PGPIO_WRITE_PINS_MASK_PARAMETERS WriteParameters
)
{ ... }
Der GPIO_CLIENT_WRITE_PINS Funktionstyp ist in der Gpioclx.h-Headerdatei 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_WRITE_PINS 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