IOCTL_HID_GET_COLLECTION_DESCRIPTOR IOCTL (hidclass.h)
IOCTL_HID_GET_COLLECTION_DESCRIPTOR要求會取得最上層集合 預先剖析的數據,而 HID 類別驅動程式會在裝置初始化期間從實體裝置的報告描述項擷取。
如需 HIDClass 裝置的一般資訊,請參閱 HID 集合。
主要程序代碼
輸入緩衝區
參數.DeviceIoControl.OutputBufferLength IRP 的 I/O 堆棧位置中,會指出 IRP 所指定輸出緩衝區的大小,以位元組為單位,Irp->UserBuffer。
輸出緩衝區
Irp->UserBuffer 是 HID 類別驅動程式用來傳回可變長度 _HIDP_PREPARSED_DATA 結構的要求者設定的緩衝區的 PVOID 指標。 此緩衝區必須從非分頁集區配置。
輸出緩衝區長度
使用 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 (include Hidclass.h) |