共用方式為


IOCTL_HID_GET_COLLECTION_DESCRIPTOR IOCTL (hidclass.h)

IOCTL_HID_GET_COLLECTION_DESCRIPTOR要求會取得最上層集合 的預先剖析數據,而 HID 類別驅動程式會在裝置初始化期間從實體裝置的報告描述項中擷取。

如需 HIDClass 裝置的一般資訊,請參閱 HID 集合

主要程序代碼

IRP_MJ_DEVICE_CONTROL

輸入緩衝區

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)

另請參閱

HidD_FreePreparsedData

HidD_GetPreparsedData