IOCTL_HID_GET_FEATURE IOCTL (hidclass.h)
IOCTL_HID_GET_FEATURE要求會傳回與 最上層集合相關聯的功能報表。
如需 HIDClass 裝置的一般資訊,請參閱 HID 集合。
主要程序代碼
輸入緩衝區
成員 Parameters.DeviceIoControl.OutputBufferLength
會指定要求者配置輸出緩衝區的大小,以位元組為單位。 HID 類別驅動程式會使用此緩衝區傳回功能報表。
如果集合包含報表標識符,要求者必須將輸出緩衝區的第一個字節設定為非零報表標識符。 否則,要求者必須將輸出緩衝區的第一個字節設定為零。
Minidriver 處理
Irp->UserBuffer
指向 HID 類別驅動程式用來輸入下列成員 的HID_XFER_PACKET 結構:
輸入緩衝區長度
以位元組為單位的緩衝區大小。 緩衝區必須夠大,才能保存功能報表加上一個指定非零報表標識符的額外位元組。 如果未使用報表標識碼,標識碼值為零。
Minidriver 處理
HID_XFER_PACKET 結構的大小。
輸出緩衝區
成員 Irp->MdlAddress
會指向 HID 類別驅動程式用來傳回功能報表的要求者配置輸出緩衝區。 要求者用來輸入報表標識碼或零之緩衝區的第一個字節不會變更。 如果使用報表標識碼,則功能報表會傳回 ((PUCHAR)Irp->MdlAddress + 1)
其報表標識碼,但不包括其報表標識符。
Minidriver 處理
((PHID_XFER_PACKET)(Irp->UserBuffer))->reportBuffer
指向 HID 迷你驅動程式用來傳回功能報表的要求者配置輸出緩衝區。
輸出緩衝區長度
包含報表的緩衝區長度。
Minidriver 處理
HID_XFER_PACKET 結構的大小。
狀態區塊
HID 類別驅動程式會設定 的下列欄位 Irp->IoStatus
:
- 信息 會設定為從裝置傳輸的位元元組數目。
- 如果 傳輸完成且未發生錯誤,狀態會設定為STATUS_SUCCESS。 否則,它會設定為適當的NTSTATUS錯誤碼。
Minidriver 處理
對裝置執行 I/O 的 HID 迷你驅動程式會設定下列欄位 Irp->IoStatus
:
- 信息 會設定為從裝置傳輸的位元元組數目。
- 如果 傳輸完成且未發生錯誤,狀態會設定為STATUS_SUCCESS。 否則,它會設定為適當的NTSTATUS錯誤碼。
透過此 IOCTL 呼叫其他驅動程式的 HID 迷你驅動程式,以對其裝置執行 I/O,應確定狀態區塊 的資訊欄位正確 無誤,且不會變更 [ 狀態 ] 欄位的內容。
規格需求
需求 | 值 |
---|---|
標頭 | hidclass.h (包含 Hidclass.h) |