IOCTL_HID_GET_COLLECTION_DESCRIPTOR IOCTL (hidclass.h)
IOCTL_HID_GET_COLLECTION_DESCRIPTOR要求會取得最上層集合 的預先剖析數據,而 HID 類別驅動程式會在裝置初始化期間從實體裝置的報告描述項中擷取。
如需 HIDClass 裝置的一般資訊,請參閱 HID 集合。
主要程序代碼
輸入緩衝區
IRP I/O 堆疊位置中的 Parameters.DeviceIoControl.OutputBufferLength 表示 Irp-UserBuffer> 所指定的輸出緩衝區大小,以位元組為單位。
輸出緩衝區
Irp->UserBuffer 是要求者配置緩衝區的 PVOID 指標,HID 類別驅動程式用來傳回可變長度 _HIDP_PREPARSED_DATA 結構。 此緩衝區必須從非分頁集區配置。
輸出緩衝區長度
使用 IOCTL_HID_GET_COLLECTION_INFORMATION取得預先剖析數據結構的大小,以位元組為單位。
狀態區塊
HID 類別驅動程式會設定下列 Irp-IoStatus> 字段:
- 信息 會設定為預先剖析數據的大小,以位元組為單位。
- 如果 擷取預先分析的數據沒有錯誤,狀態會設定為STATUS_SUCCESS。 否則,它會設定為適當的NTSTATUS錯誤碼。 如果要求者提供的輸出緩衝區不夠大,無法保存預先分析的數據,則狀態會設定為STATUS_INVALID_BUFFER_SIZE。
備註
_HIDP_PREPARSED_DATA結構包含最上層集合的預先剖析數據。
typedef struct _HIDP_PREPARSED_DATA * PHIDP_PREPARSED_DATA;
使用者模式應用程式會 呼叫 HidD_GetPreparsedData ,以可變長度_HIDP_PREPARSED_DATA結構取得最上層集合的預先剖析數據。
內核模式驅動程式會使用 IOCTL_HID_GET_COLLECTION_DESCRIPTOR 要求來取得最上層集合預先剖析數據的指標。
_HIDP_PREPARSED_DATA結構的內部結構會保留給內部系統使用。
規格需求
需求 | 值 |
---|---|
標頭 | hidclass.h (包含 Hidclass.h) |