Freigeben über


GPIO_CLIENT_REGISTRATION_PACKET-Struktur (gpioclx.h)

Die GPIO_CLIENT_REGISTRATION_PACKET-Struktur enthält Registrierungsinformationen, die der GPIO-Controllertreiber (Universelle E/A) an die GPIO-Frameworkerweiterung (GpioClx) übergibt.

Syntax

typedef struct _GPIO_CLIENT_REGISTRATION_PACKET {
  USHORT                                          Version;
  USHORT                                          Size;
  ULONG                                           Flags;
  ULONG                                           ControllerContextSize;
  ULONG64                                         Reserved;
  PGPIO_CLIENT_PREPARE_CONTROLLER                 CLIENT_PrepareController;
  PGPIO_CLIENT_RELEASE_CONTROLLER                 CLIENT_ReleaseController;
  PGPIO_CLIENT_START_CONTROLLER                   CLIENT_StartController;
  PGPIO_CLIENT_STOP_CONTROLLER                    CLIENT_StopController;
  PGPIO_CLIENT_QUERY_CONTROLLER_BASIC_INFORMATION CLIENT_QueryControllerBasicInformation;
  PGPIO_CLIENT_QUERY_SET_CONTROLLER_INFORMATION   CLIENT_QuerySetControllerInformation;
  PGPIO_CLIENT_ENABLE_INTERRUPT                   CLIENT_EnableInterrupt;
  PGPIO_CLIENT_DISABLE_INTERRUPT                  CLIENT_DisableInterrupt;
  PGPIO_CLIENT_UNMASK_INTERRUPT                   CLIENT_UnmaskInterrupt;
  PGPIO_CLIENT_MASK_INTERRUPTS                    CLIENT_MaskInterrupts;
  PGPIO_CLIENT_QUERY_ACTIVE_INTERRUPTS            CLIENT_QueryActiveInterrupts;
  PGPIO_CLIENT_CLEAR_ACTIVE_INTERRUPTS            CLIENT_ClearActiveInterrupts;
  PGPIO_CLIENT_CONNECT_IO_PINS                    CLIENT_ConnectIoPins;
  PGPIO_CLIENT_DISCONNECT_IO_PINS                 CLIENT_DisconnectIoPins;
  union {
    PGPIO_CLIENT_READ_PINS      CLIENT_ReadGpioPins;
    PGPIO_CLIENT_READ_PINS_MASK CLIENT_ReadGpioPinsUsingMask;
  };
  union {
    PGPIO_CLIENT_WRITE_PINS      CLIENT_WriteGpioPins;
    PGPIO_CLIENT_WRITE_PINS_MASK CLIENT_WriteGpioPinsUsingMask;
  };
  PGPIO_CLIENT_SAVE_BANK_HARDWARE_CONTEXT         CLIENT_SaveBankHardwareContext;
  PGPIO_CLIENT_RESTORE_BANK_HARDWARE_CONTEXT      CLIENT_RestoreBankHardwareContext;
  PGPIO_CLIENT_PRE_PROCESS_CONTROLLER_INTERRUPT   CLIENT_PreProcessControllerInterrupt;
  PGPIO_CLIENT_CONTROLLER_SPECIFIC_FUNCTION       CLIENT_ControllerSpecificFunction;
  PGPIO_CLIENT_RECONFIGURE_INTERRUPT              CLIENT_ReconfigureInterrupt;
  PGPIO_CLIENT_QUERY_ENABLED_INTERRUPTS           CLIENT_QueryEnabledInterrupts;
  PGPIO_CLIENT_CONNECT_FUNCTION_CONFIG_PINS       CLIENT_ConnectFunctionConfigPins;
  PGPIO_CLIENT_DISCONNECT_FUNCTION_CONFIG_PINS    CLIENT_DisconnectFunctionConfigPins;
} GPIO_CLIENT_REGISTRATION_PACKET, *PGPIO_CLIENT_REGISTRATION_PACKET;

Member

Version

Die Versionsnummer für die GPIO-Schnittstelle, die vom GPIO-Controllertreiber unterstützt wird. Legen Sie diesen Member auf den Wert GPIO_CLIENT_VERSION fest, der in der Gpioclx.h-Headerdatei definiert ist.

Size

Die Größe (in Bytes) dieser Struktur. Legen Sie dieses Element auf sizeof(GPIO_CLIENT_REGISTRATION_PACKET) fest.

Flags

Eine Reihe von Flags, die angeben, welche Registrierungsoptionen ausgewählt sind. Für Registrierungsoptionen sind derzeit keine Flags definiert. Legen Sie dieses Element auf 0 (null) fest.

ControllerContextSize

Die erforderliche Größe des Gerätekontexts in Bytes. Die GPIO_CLX_RegisterClient-Methode ordnet einen Gerätekontext dieser Größe zu. Wenn GpioClx eine registrierte Rückruffunktion in der GPIO_CLIENT_REGISTRATION_PACKET-Struktur aufruft, übergibt GpioClx diesen Gerätekontext als Parameter an die Rückruffunktion. Die Rückruffunktionen verwenden diesen Kontext, um auf die Treiberinformationen über den Zustand des GPIO-Controllergeräts zuzugreifen und diese zu aktualisieren. Weitere Informationen finden Sie unter GPIO-Gerätekontexte.

Reserved

Für die zukünftige Verwendung reserviert. Legen Sie dieses Element auf 0 (null) fest.

CLIENT_PrepareController

Ein Zeiger auf die CLIENT_PrepareController Ereignisrückruffunktion des GPIO-Controllertreibers.

CLIENT_ReleaseController

Ein Zeiger auf die CLIENT_ReleaseController Ereignisrückruffunktion des GPIO-Controllertreibers.

CLIENT_StartController

Ein Zeiger auf die CLIENT_StartController Ereignisrückruffunktion des GPIO-Controllertreibers.

CLIENT_StopController

Ein Zeiger auf die CLIENT_StopController Ereignisrückruffunktion des GPIO-Controllertreibers.

CLIENT_QueryControllerBasicInformation

Ein Zeiger auf die CLIENT_QueryControllerBasicInformation Ereignisrückruffunktion des GPIO-Controllertreibers.

CLIENT_QuerySetControllerInformation

Ein Zeiger auf die CLIENT_QuerySetControllerInformation Ereignisrückruffunktion des GPIO-Controllertreibers.

CLIENT_EnableInterrupt

Ein Zeiger auf die CLIENT_EnableInterrupt Ereignisrückruffunktion des GPIO-Controllertreibers.

CLIENT_DisableInterrupt

Ein Zeiger auf die CLIENT_DisableInterrupt Ereignisrückruffunktion des GPIO-Controllertreibers.

CLIENT_UnmaskInterrupt

Ein Zeiger auf die CLIENT_UnmaskInterrupt Ereignisrückruffunktion des GPIO-Controllertreibers.

CLIENT_MaskInterrupts

Ein Zeiger auf die CLIENT_MaskInterrupts Ereignisrückruffunktion des GPIO-Controllertreibers.

CLIENT_QueryActiveInterrupts

Ein Zeiger auf die CLIENT_QueryActiveInterrupts Ereignisrückruffunktion des GPIO-Controllertreibers.

CLIENT_ClearActiveInterrupts

Ein Zeiger auf die CLIENT_ClearActiveInterrupts Ereignisrückruffunktion des GPIO-Controllertreibers.

CLIENT_ConnectIoPins

Ein Zeiger auf die CLIENT_ConnectIoPins Ereignisrückruffunktion des GPIO-Controllertreibers.

CLIENT_DisconnectIoPins

Ein Zeiger auf die CLIENT_DisconnectIoPins Ereignisrückruffunktion des GPIO-Controllertreibers.

CLIENT_ReadGpioPins

Ein Zeiger auf die CLIENT_ReadGpioPins Ereignisrückruffunktion des GPIO-Controllertreibers.

CLIENT_ReadGpioPinsUsingMask

Ein Zeiger auf die CLIENT_ReadGpioPinsUsingMask Ereignisrückruffunktion des GPIO-Controllertreibers.

CLIENT_WriteGpioPins

Ein Zeiger auf die CLIENT_WriteGpioPins Ereignisrückruffunktion des GPIO-Controllertreibers.

CLIENT_WriteGpioPinsUsingMask

Ein Zeiger auf die CLIENT_WriteGpioPinsUsingMask Ereignisrückruffunktion des GPIO-Controllertreibers.

CLIENT_SaveBankHardwareContext

Ein Zeiger auf die CLIENT_SaveBankHardwareContext Ereignisrückruffunktion des GPIO-Controllertreibers.

CLIENT_RestoreBankHardwareContext

Ein Zeiger auf die CLIENT_RestoreBankHardwareContext Ereignisrückruffunktion des GPIO-Controllertreibers.

CLIENT_PreProcessControllerInterrupt

Ein Zeiger auf die CLIENT_PreProcessControllerInterrupt Ereignisrückruffunktion des GPIO-Controllertreibers.

CLIENT_ControllerSpecificFunction

Ein Zeiger auf die CLIENT_ControllerSpecificFunction Ereignisrückruffunktion des GPIO-Controllertreibers.

CLIENT_ReconfigureInterrupt

Ein Zeiger auf die CLIENT_ReconfigureInterrupt Ereignisrückruffunktion des GPIO-Controllertreibers.

CLIENT_QueryEnabledInterrupts

Ein Zeiger auf die CLIENT_QueryEnabledInterrupts Ereignisrückruffunktion des GPIO-Controllertreibers. Dieses Element wird ab Windows 8.1 unterstützt.

CLIENT_ConnectFunctionConfigPins

CLIENT_DisconnectFunctionConfigPins

Hinweise

Der GPIO-Controllertreiber übergibt einen Zeiger auf eine GPIO_CLIENT_REGISTRATION_PACKET-Struktur als Eingabeparameter an die GPIO_CLX_RegisterClient-Methode . Diese Methode registriert den Treiber, um die von GpioClx bereitgestellten Dienste zu verwenden. In der Regel ruft der Treiber diese Methode aus seiner DriverEntry-Routine auf.

Die GPIO_CLIENT_REGISTRATION_PACKET-Struktur enthält zwei unbenannte Unions. Jede Union kann einen Zeiger auf einen von zwei alternativen Typen von Ereignisrückruffunktionen enthalten. In jedem Fall sollte Ihr GPIO-Controllertreiber den Typ der Rückruffunktion implementieren, der am besten für die GPIO-Controllerhardware geeignet ist. Die CLIENT_QueryControllerBasicInformation Rückruffunktion des GPIO-Controllertreibers informiert GpioClx, welche Rückruffunktionen implementiert sind.

Nachdem der GPIO-Controllertreiber GPIO_CLX_RegisterClient aufruft, um eine Reihe von Rückrufen zu registrieren, ruft GpioClx die CLIENT_QueryControllerBasicInformation Rückruffunktion des Treibers auf, um eine CLIENT_CONTROLLER_BASIC_INFORMATION-Struktur abzurufen, die GPIO-Controllerhardwareattribute und Konfigurationsdaten enthält. GpioClx verwendet diese Informationen, um zu bestimmen, welche Rückruffunktionen der GPIO-Controllertreiber implementiert hat.

Wenn der GPIO-Controllertreiber CLIENT_ReadGpioPins und CLIENT_WriteGpioPins Rückruffunktionen implementiert, sollte die CLIENT_QueryControllerBasicInformation Rückruffunktion das FormatIoRequestsAsMasks-Flagbit im Flags-Member dieser CLIENT_CONTROLLER_BASIC_INFORMATION-Struktur auf 0 festlegen.

Wenn die CLIENT_QueryControllerBasicInformation Rückruffunktion das FormatIoRequestsAsMasks-Flagbit auf 1 festlegt, gibt dieser Wert an, dass der Treiber CLIENT_ReadGpioPinsUsingMask und CLIENT_WriteGpioPinsUsingMask Rückruffunktionen implementiert.

GpioClx erfordert einen GPIO-Controllertreiber, um bestimmte Rückruffunktionen zu implementieren, aber die Unterstützung für andere Rückruffunktionen ist optional. Weitere Informationen finden Sie unter Optionale und erforderliche GPIO-Rückruffunktionen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Unterstützt ab Windows 8.
Kopfzeile gpioclx.h

Weitere Informationen

CLIENT_CONTROLLER_BASIC_INFORMATION

CLIENT_ClearActiveInterrupts

CLIENT_ConnectIoPins

CLIENT_ControllerSpecificFunction

CLIENT_DisableInterrupt

CLIENT_DisconnectIoPins

CLIENT_EnableInterrupt

CLIENT_MaskInterrupts

CLIENT_PreProcessControllerInterrupt

CLIENT_PrepareController

CLIENT_QueryActiveInterrupts

CLIENT_QueryControllerBasicInformation

CLIENT_QueryEnabledInterrupts

CLIENT_ReadGpioPins

CLIENT_ReadGpioPinsUsingMask

CLIENT_ReconfigureInterrupt

CLIENT_ReleaseController

CLIENT_RestoreBankHardwareContext

CLIENT_SaveBankHardwareContext

CLIENT_StartController

CLIENT_StopController

CLIENT_UnmaskInterrupt

CLIENT_WriteGpioPins

CLIENT_WriteGpioPinsUsingMask

DriverEntry

GPIO_CLX_RegisterClient