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).
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;
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
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 | Nilai |
---|---|
Klien minimum yang didukung | Didukung dimulai dengan Windows 8. |
Header | gpioclx.h |
CLIENT_CONTROLLER_BASIC_INFORMATION
CLIENT_ControllerSpecificFunction
CLIENT_PreProcessControllerInterrupt
CLIENT_QueryControllerBasicInformation
CLIENT_RestoreBankHardwareContext