Bagikan melalui


struktur GPIO_CLIENT_REGISTRATION_PACKET (gpioclx.h)

Struktur GPIO_CLIENT_REGISTRATION_PACKET berisi informasi pendaftaran yang diteruskan driver pengontrol I/O (GPIO) tujuan umum ke ekstensi kerangka kerja GPIO (GpioClx).

Sintaks

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;

Anggota

Version

Nomor versi untuk antarmuka GPIO yang didukung driver pengontrol GPIO. Atur anggota ini ke nilai GPIO_CLIENT_VERSION, yang ditentukan dalam file header Gpioclx.h.

Size

Ukuran, dalam byte, dari struktur ini. Atur anggota ini ke sizeof(GPIO_CLIENT_REGISTRATION_PACKET).

Flags

Sekumpulan bendera yang menunjukkan opsi pendaftaran mana yang dipilih. Tidak ada bendera yang saat ini ditentukan untuk opsi pendaftaran. Atur anggota ini ke nol.

ControllerContextSize

Ukuran konteks perangkat yang diperlukan, dalam byte. Metode GPIO_CLX_RegisterClient mengalokasikan konteks perangkat dengan ukuran ini. Ketika GpioClx memanggil fungsi panggilan balik terdaftar dalam struktur GPIO_CLIENT_REGISTRATION_PACKET , GpioClx meneruskan konteks perangkat ini ke fungsi panggilan balik sebagai parameter. Fungsi panggilan balik menggunakan konteks ini untuk mengakses dan memperbarui informasi driver tentang status perangkat pengontrol GPIO. Untuk informasi selengkapnya, lihat Konteks Perangkat GPIO.

Reserved

Disiapkan untuk penggunaan masa mendatang. Atur anggota ini ke nol.

CLIENT_PrepareController

Penunjuk ke fungsi panggilan balik peristiwa CLIENT_PrepareController driver pengontrol GPIO.

CLIENT_ReleaseController

Penunjuk ke fungsi panggilan balik peristiwa CLIENT_ReleaseController driver pengontrol GPIO.

CLIENT_StartController

Penunjuk ke fungsi panggilan balik peristiwa CLIENT_StartController driver pengontrol GPIO.

CLIENT_StopController

Penunjuk ke fungsi panggilan balik peristiwa CLIENT_StopController driver pengontrol GPIO.

CLIENT_QueryControllerBasicInformation

Penunjuk ke fungsi panggilan balik peristiwa CLIENT_QueryControllerBasicInformation driver pengontrol GPIO.

CLIENT_QuerySetControllerInformation

Penunjuk ke fungsi panggilan balik peristiwa CLIENT_QuerySetControllerInformation driver pengontrol GPIO.

CLIENT_EnableInterrupt

Penunjuk ke fungsi panggilan balik peristiwa CLIENT_EnableInterrupt driver pengontrol GPIO.

CLIENT_DisableInterrupt

Penunjuk ke fungsi panggilan balik peristiwa CLIENT_DisableInterrupt driver pengontrol GPIO.

CLIENT_UnmaskInterrupt

Penunjuk ke fungsi panggilan balik peristiwa CLIENT_UnmaskInterrupt driver pengontrol GPIO.

CLIENT_MaskInterrupts

Penunjuk ke fungsi panggilan balik peristiwa CLIENT_MaskInterrupts driver pengontrol GPIO.

CLIENT_QueryActiveInterrupts

Penunjuk ke fungsi panggilan balik peristiwa CLIENT_QueryActiveInterrupts driver pengontrol GPIO.

CLIENT_ClearActiveInterrupts

Penunjuk ke fungsi panggilan balik peristiwa CLIENT_ClearActiveInterrupts driver pengontrol GPIO.

CLIENT_ConnectIoPins

Penunjuk ke fungsi panggilan balik peristiwa CLIENT_ConnectIoPins driver pengontrol GPIO.

CLIENT_DisconnectIoPins

Penunjuk ke fungsi panggilan balik peristiwa CLIENT_DisconnectIoPins driver pengontrol GPIO.

CLIENT_ReadGpioPins

Penunjuk ke fungsi panggilan balik peristiwa CLIENT_ReadGpioPins driver pengontrol GPIO.

CLIENT_ReadGpioPinsUsingMask

Penunjuk ke fungsi panggilan balik peristiwa CLIENT_ReadGpioPinsUsingMask driver pengontrol GPIO.

CLIENT_WriteGpioPins

Penunjuk ke fungsi panggilan balik peristiwa CLIENT_WriteGpioPins driver pengontrol GPIO.

CLIENT_WriteGpioPinsUsingMask

Penunjuk ke fungsi panggilan balik peristiwa CLIENT_WriteGpioPinsUsingMask driver pengontrol GPIO.

CLIENT_SaveBankHardwareContext

Penunjuk ke fungsi panggilan balik peristiwa CLIENT_SaveBankHardwareContext driver pengontrol GPIO.

CLIENT_RestoreBankHardwareContext

Penunjuk ke fungsi panggilan balik peristiwa CLIENT_RestoreBankHardwareContext driver pengontrol GPIO.

CLIENT_PreProcessControllerInterrupt

Penunjuk ke fungsi panggilan balik peristiwa CLIENT_PreProcessControllerInterrupt driver pengontrol GPIO.

CLIENT_ControllerSpecificFunction

Penunjuk ke fungsi panggilan balik peristiwa CLIENT_ControllerSpecificFunction driver pengontrol GPIO.

CLIENT_ReconfigureInterrupt

Penunjuk ke fungsi panggilan balik peristiwa CLIENT_ReconfigureInterrupt driver pengontrol GPIO.

CLIENT_QueryEnabledInterrupts

Penunjuk ke fungsi panggilan balik peristiwa CLIENT_QueryEnabledInterrupts driver pengontrol GPIO. Anggota ini didukung dimulai dengan Windows 8.1.

CLIENT_ConnectFunctionConfigPins

CLIENT_DisconnectFunctionConfigPins

Keterangan

Driver pengontrol GPIO meneruskan pointer ke struktur GPIO_CLIENT_REGISTRATION_PACKET sebagai parameter input ke metode GPIO_CLX_RegisterClient . Metode ini mendaftarkan driver untuk menggunakan layanan yang disediakan oleh GpioClx. Biasanya, driver memanggil metode ini dari rutinitas DriverEntry-nya .

Struktur GPIO_CLIENT_REGISTRATION_PACKET berisi dua union yang tidak disebutkan namanya. Setiap serikat pekerja dapat berisi penunjuk ke salah satu dari dua jenis alternatif fungsi panggilan balik peristiwa. Dalam setiap kasus, driver pengontrol GPIO Anda harus menerapkan jenis fungsi panggilan balik yang paling cocok untuk perangkat keras pengontrol GPIO. Fungsi panggilan balik CLIENT_QueryControllerBasicInformation driver pengontrol GPIO menginformasikan GpioClx fungsi panggilan balik mana yang diimplementasikan.

Setelah driver pengontrol GPIO memanggil GPIO_CLX_RegisterClient untuk mendaftarkan serangkaian panggilan balik, GpioClx memanggil fungsi panggilan balik CLIENT_QueryControllerBasicInformation driver untuk mendapatkan struktur CLIENT_CONTROLLER_BASIC_INFORMATION yang berisi atribut perangkat keras pengontrol GPIO dan data konfigurasi. GpioClx menggunakan informasi ini untuk menentukan fungsi panggilan balik mana yang telah diterapkan driver pengontrol GPIO.

Jika driver pengontrol GPIO menerapkan fungsi panggilan balik CLIENT_ReadGpioPins dan CLIENT_WriteGpioPins , fungsi panggilan balik CLIENT_QueryControllerBasicInformation harus mengatur bit bendera FormatIoRequestsAsMasks di anggota Bendera struktur CLIENT_CONTROLLER_BASIC_INFORMATION ini ke 0.

Jika fungsi panggilan balik CLIENT_QueryControllerBasicInformation mengatur bendera FormatIoRequestsAsMasks bit ke 1, nilai ini menunjukkan bahwa driver mengimplementasikan fungsi panggilan balik CLIENT_ReadGpioPinsUsingMask dan CLIENT_WriteGpioPinsUsingMask .

GpioClx memerlukan driver pengontrol GPIO untuk menerapkan fungsi panggilan balik tertentu, tetapi dukungan untuk fungsi panggilan balik lainnya bersifat opsional. Untuk informasi selengkapnya, lihat Fungsi Panggilan Balik GPIO Opsional dan yang Diperlukan.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Didukung dimulai dengan Windows 8.
Header gpioclx.h

Lihat juga

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