struttura GPIO_CLIENT_REGISTRATION_PACKET (gpioclx.h)

La struttura GPIO_CLIENT_REGISTRATION_PACKET contiene informazioni di registrazione che il driver del controller GPIO (General Purpose I/O) passa all'estensione del framework GPIO (GpioClx).

Sintassi

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;

Members

Version

Numero di versione per l'interfaccia GPIO supportata dal driver del controller GPIO. Impostare questo membro sul valore GPIO_CLIENT_VERSION, definito nel file di intestazione Gpioclx.h.

Size

Dimensione, in byte, della struttura. Impostare questo membro su sizeof(GPIO_CLIENT_REGISTRATION_PACKET).

Flags

Set di flag che indicano le opzioni di registrazione selezionate. Non sono attualmente definiti flag per le opzioni di registrazione. Impostare questo membro su zero.

ControllerContextSize

Dimensioni del contesto di dispositivo necessarie, in byte. Il metodo GPIO_CLX_RegisterClient alloca un contesto di dispositivo di queste dimensioni. Quando GpioClx chiama qualsiasi funzione di callback registrata nella struttura GPIO_CLIENT_REGISTRATION_PACKET , GpioClx passa questo contesto di dispositivo alla funzione di callback come parametro. Le funzioni di callback usano questo contesto per accedere e aggiornare le informazioni del driver sullo stato del dispositivo controller GPIO. Per altre informazioni, vedere Contesti di dispositivo GPIO.

Reserved

Riservato per utilizzi futuri. Impostare questo membro su zero.

CLIENT_PrepareController

Puntatore alla funzione di callback dell'evento di CLIENT_PrepareController del driver del controller GPIO.

CLIENT_ReleaseController

Puntatore alla funzione di callback dell'evento di CLIENT_ReleaseController del driver del controller GPIO.

CLIENT_StartController

Puntatore alla funzione di callback dell'evento di CLIENT_StartController del driver del controller GPIO.

CLIENT_StopController

Puntatore alla funzione di callback dell'evento di CLIENT_StopController del driver del controller GPIO.

CLIENT_QueryControllerBasicInformation

Puntatore alla funzione di callback dell'evento di CLIENT_QueryControllerBasicInformation del driver del controller GPIO.

CLIENT_QuerySetControllerInformation

Puntatore alla funzione di callback dell'evento di CLIENT_QuerySetControllerInformation del driver del controller GPIO.

CLIENT_EnableInterrupt

Puntatore alla funzione di callback dell'evento di CLIENT_EnableInterrupt del driver del controller GPIO.

CLIENT_DisableInterrupt

Puntatore alla funzione di callback degli eventi del driver del controller GPIO CLIENT_DisableInterrupt .

CLIENT_UnmaskInterrupt

Puntatore alla funzione di callback dell'evento di CLIENT_UnmaskInterrupt del driver del controller GPIO.

CLIENT_MaskInterrupts

Puntatore alla funzione di callback dell'evento di CLIENT_MaskInterrupts del driver del controller GPIO.

CLIENT_QueryActiveInterrupts

Puntatore alla funzione di callback dell'evento di CLIENT_QueryActiveInterrupts del driver del controller GPIO.

CLIENT_ClearActiveInterrupts

Puntatore alla funzione di callback dell'evento di CLIENT_ClearActiveInterrupts del driver del controller GPIO.

CLIENT_ConnectIoPins

Puntatore alla funzione di callback dell'evento di CLIENT_ConnectIoPins del driver del controller GPIO.

CLIENT_DisconnectIoPins

Puntatore alla funzione di callback dell'evento di CLIENT_DisconnectIoPins del driver del controller GPIO.

CLIENT_ReadGpioPins

Puntatore alla funzione di callback dell'evento di CLIENT_ReadGpioPins del driver del controller GPIO.

CLIENT_ReadGpioPinsUsingMask

Puntatore alla funzione di callback dell'evento di CLIENT_ReadGpioPinsUsingMask del driver del controller GPIO.

CLIENT_WriteGpioPins

Puntatore alla funzione di callback dell'evento di CLIENT_WriteGpioPins del driver del controller GPIO.

CLIENT_WriteGpioPinsUsingMask

Puntatore alla funzione di callback dell'evento di CLIENT_WriteGpioPinsUsingMask del driver del controller GPIO.

CLIENT_SaveBankHardwareContext

Puntatore alla funzione di callback dell'evento di CLIENT_SaveBankHardwareContext del driver del controller GPIO.

CLIENT_RestoreBankHardwareContext

Puntatore alla funzione di callback degli eventi del driver del controller GPIO CLIENT_RestoreBankHardwareContext .

CLIENT_PreProcessControllerInterrupt

Puntatore alla funzione di callback dell'evento di CLIENT_PreProcessControllerInterrupt del driver del controller GPIO.

CLIENT_ControllerSpecificFunction

Puntatore alla funzione di callback dell'evento di CLIENT_ControllerSpecificFunction del driver del controller GPIO.

CLIENT_ReconfigureInterrupt

Puntatore alla funzione di callback dell'evento CLIENT_ReconfigureInterrupt del driver del controller GPIO.

CLIENT_QueryEnabledInterrupts

Puntatore alla funzione di callback dell'evento di CLIENT_QueryEnabledInterrupts del driver del controller GPIO. Questo membro è supportato a partire da Windows 8.1.

CLIENT_ConnectFunctionConfigPins

CLIENT_DisconnectFunctionConfigPins

Commenti

Il driver del controller GPIO passa un puntatore a una struttura GPIO_CLIENT_REGISTRATION_PACKET come parametro di input al metodo GPIO_CLX_RegisterClient . Questo metodo registra il driver per usare i servizi forniti da GpioClx. In genere, il driver chiama questo metodo dalla routine DriverEntry .

La struttura GPIO_CLIENT_REGISTRATION_PACKET contiene due unioni senza nome. Ogni unione può contenere un puntatore a uno dei due tipi alternativi di funzioni di callback degli eventi. In ogni caso, il driver del controller GPIO deve implementare il tipo di funzione di callback più adatto all'hardware del controller GPIO. La funzione di callback del driver del controller GPIO CLIENT_QueryControllerBasicInformation informa GpioClx quali funzioni di callback sono implementate.

Dopo che il driver del controller GPIO chiama GPIO_CLX_RegisterClient per registrare un set di callback, GpioClx chiama la funzione di callback del driver CLIENT_QueryControllerBasicInformation per ottenere una struttura di CLIENT_CONTROLLER_BASIC_INFORMATION che contiene attributi hardware e dati di configurazione del controller GPIO. GpioClx usa queste informazioni per determinare le funzioni di callback implementate dal driver del controller GPIO.

Se il driver del controller GPIO implementa CLIENT_ReadGpioPins e CLIENT_WriteGpioPins funzioni di callback, la funzione di callback CLIENT_QueryControllerBasicInformation deve impostare il flag FormatIoRequestsAsMasks nel membro Flags di questa struttura CLIENT_CONTROLLER_BASIC_INFORMATION su 0.

Se la funzione di callback CLIENT_QueryControllerBasicInformation imposta il flag FormatIoRequestsAsMasks su 1, questo valore indica che il driver implementa CLIENT_ReadGpioPinsUsingMask e CLIENT_WriteGpioPinsUsingMask funzioni di callback.

GpioClx richiede un driver del controller GPIO per implementare determinate funzioni di callback, ma il supporto per altre funzioni di callback è facoltativo. Per altre informazioni, vedere Funzioni di callback GPIO facoltative e necessarie.

Requisiti

Requisito Valore
Client minimo supportato Supportato a partire da Windows 8.
Intestazione gpioclx.h

Vedi anche

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