GPIO_CLIENT_READ_PINS_MASK Rückruffunktion (gpioclx.h)
Die CLIENT_ReadGpioPinsUsingMask Ereignisrückruffunktion liest eine Bank mit allgemeinen I/O-Pins (GPIO).
Syntax
GPIO_CLIENT_READ_PINS_MASK GpioClientReadPinsMask;
NTSTATUS GpioClientReadPinsMask(
[in] PVOID Context,
[in, out] PGPIO_READ_PINS_MASK_PARAMETERS ReadParameters
)
{...}
Parameter
[in] Context
Ein Zeiger auf den Gerätekontext des GPIO-Controllertreibers.
[in, out] ReadParameters
Ein Zeiger auf eine GPIO_READ_PINS_MASK_PARAMETERS Struktur, die beim Einstieg die zu lesenden GPIO-Pins beschreibt und beim Beenden die aus den GPIO-Pins gelesenen Daten enthält.
Rückgabewert
Die CLIENT_ReadGpioPinsUsingMask-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. Die GpioClx ruft diese Funktion auf.
Die CLIENT_ReadGpioPinsUsingMask Rückruffunktion liest die Werte aller GPIO-Pins in einer Bank mit Pins vor. Die Funktion speichert diese Werte im PinValues Member der GPIO_READ_PINS_MASK_PARAMETERS Struktur. Bit 0 (das am wenigsten signifikante Bit) dieses Elements enthält den Wert von Pin 0, Bit 1 enthält den Wert von Pin 1 usw.
Rufen Sie die GPIO_CLX_RegisterClient Methode auf, um die CLIENT_ReadGpioPinsUsingMask Rückruffunktion des Treibers zu registrieren. Diese Methode akzeptiert als Eingabeparameter einen Zeiger auf eine GPIO_CLIENT_REGISTRATION_PACKET Struktur, die einen CLIENT_ReadGpioPinsUsingMask Funktionszeiger enthält.
Die CLIENT_ReadGpioPinsUsingMask-Funktion kann von der Interruptdienstroutine (ISR) in GpioClx aufgerufen werden. Dieser ISR wird entweder bei PASSIVE_LEVEL oder DIRQL ausgeführt, 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, wird der GPioClx ISR bei DIRQL ausgeführt und ruft die CLIENT_ReadGpioPinsUsingMask-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 Optional und Required GPIO Callback Functions.
Beispiele
Um eine CLIENT_ReadGpioPinsUsingMask 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_ReadGpioPinsUsingMask Rückruffunktion zu definieren, die MyEvtGpioReadGpioPinsUsingMask
benannt ist, verwenden Sie den funktionstyp GPIO_CLIENT_READ_PINS_MASK, wie in diesem Codebeispiel gezeigt:
GPIO_CLIENT_READ_PINS_MASK MyEvtGpioReadPinsUsingMask;
Implementieren Sie dann die Rückruffunktion wie folgt:
_Use_decl_annotations_
NTSTATUS
MyEvtGpioReadPinsUsingMask(
PVOID Context,
PGPIO_READ_PINS_MASK_PARAMETERS ReadParameters
)
{ ... }
Der GPIO_CLIENT_READ_PINS_MASK 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_READ_PINS_MASK 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