共用方式為


IOCTL_HID_GET_COLLECTION_DESCRIPTOR IOCTL (hidclass.h)

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

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

主要程序代碼

IRP_MJ_DEVICE_CONTROL

輸入緩衝區

參數.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)

另請參閱

HidD_FreePreparsedData

HidD_GetPreparsedData