IOCTL_GPIO_CONTROLLER_SPECIFIC_FUNCTION IOCTL (gpio.h)
IOCTL_GPIO_CONTROLLER_SPECIFIC_FUNCTION I/O 控制程式代碼可讓一般用途 I/O (GPIO) 控制器的用戶端要求控制器特定的裝置控制作業。 一般而言,GPIO 控制器的用戶端是連接到 GPIO 針腳之周邊裝置的驅動程式。
主要程序代碼
輸入緩衝區
此 I/O 控制程式代碼的輸入緩衝區需求是由 GPIO 控制器驅動程式的開發人員所定義。 如需METHOD_BUFFERED IRP 輸入緩衝區的詳細資訊,請參閱 I/O 控制碼的緩衝區描述。
輸出緩衝區
此 I/O 控制程式代碼輸出緩衝區需求是由 GPIO 控制器驅動程式的開發人員所定義。 如需METHOD_BUFFERED IRP 輸出緩衝區的詳細資訊,請參閱 I/O 控制碼的緩衝區描述。
狀態區塊
如果作業成功,GPIO 控制器驅動程式會將 狀態 成員設定為STATUS_SUCCESS,並將 資訊 成員設定為寫入輸出緩衝區的位元組總數。 如果作業不會產生輸出資料或輸出數據指標為 NULL,資訊 成員會設定為零。
如果輸入緩衝區不夠大而無法包含輸入參數,或輸出緩衝區不夠大,無法包含控制器特定作業的輸出參數,Status 成員會設定為 STATUS_BUFFER_TOO_SMALL。
如果此要求失敗,狀態 成員會設定為錯誤碼,且 資訊 成員設定為零。
如果 GPIO 控制器驅動程式沒有任何支援控制器特定作業,狀態 成員會設定為 STATUS_NOT_IMPLEMENTED。 如果 GPIO 控制器驅動程式支援控制器特定作業,但無法將輸入緩衝區的內容辨識為有效,Status 成員會設定為 STATUS_NOT_SUPPORTED。
言論
一般 GPIO 控制器不支援 IOCTL_GPIO_CONTROLLER_SPECIFIC_FUNCTION 要求。 不過,控制器驅動程式開發人員可以選擇定義一或多個控制器特定作業,以解決特定硬體平臺上 GPIO 控制器的特殊需求或功能。
只有知道特定類型 GPIO 控制器硬體所支援控制器特定作業的週邊設備驅動器,才能使用 IOCTL_GPIO_CONTROLLER_SPECIFIC_FUNCTION 要求來執行這些作業。 使用這些要求在一個硬體平臺上執行控制器特定作業的週邊設備驅動器,可能會失去與其他不支援這些作業之平臺的相容性。
IOCTL_GPIO_CONTROLLER_SPECIFIC_FUNCTION 控件程式代碼的意義是由 GPIO 控制器驅動程式的開發人員所定義。 控制器驅動程式通常會使用此控制程式代碼,讓周邊設備驅動器在連線裝置的 GPIO 針腳上執行硬體特定作業。
例如,IOCTL_GPIO_CONTROLLER_SPECIFIC_FUNCTION 要求的輸入緩衝區可能包含控制器定義的命令程式代碼和一些輸入參數數目。 GPIO 控制器驅動程式可能會或可能不會根據命令程式代碼將數據寫入輸出緩衝區。
周邊設備驅動器會將此 I/O 控制項要求傳送至目標 GPIO 裝置的檔案物件。 檔案對像是 FILE_OBJECT 結構,代表 GPIO 控制器上一組針腳的開啟連接。 核心模式驅動程序架構 (KMDF) 驅動程式會使用 WDFIOTARGET 句柄來參考此檔案物件。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | 從 Windows 8 開始支援。 |
標頭 | gpio.h |