IOCTL_HID_SET_FEATURE IOCTL (hidclass.h)

IOCTL_HID_SET_FEATURE请求将功能报告发送到 顶级集合

有关 HIDClass 设备的常规信息,请参阅 HID 集合

主要代码

IRP_MJ_DEVICE_CONTROL

输入缓冲区

Parameters.DeviceIoControl.InputBufferLength 成员设置为请求方分配的输入缓冲区的大小(以字节为单位),其中包含 HID 类功能报告。

输入缓冲区的大小(以字节为单位)。 缓冲区必须足够大,才能保存功能报表以及一个指定非零报表 ID 的其他字节。 如果未使用报表 ID,则 ID 值为零。

Irp->AssociatedIrp.SystemBuffer 成员指向包含特征报告的输入缓冲区。 如果集合包含报表 ID,则请求者必须将缓冲区的第一个字节设置为非零报表 ID;否则,请求者必须将第一个字节设置为零。 功能报告位于 ((PUCHAR)ReportBuffer + 1)

微型驱动程序处理

Irp->UserBuffer 指向 HID 类驱动程序用于输入以下成员的 HID_XFER_PACKET 结构:

输入缓冲区长度

输入缓冲区的大小(以字节为单位)。 缓冲区必须足够大,才能保存输出报表加上一个指定非零报表 ID 的其他字节。 如果未使用报表 ID,则 ID 值为零。

微型驱动程序处理

HID_XFER_PACKET 结构的大小。

输出缓冲区

没有。

输出缓冲区长度

没有。

状态块

HID 类驱动程序设置以下 Irp->IoStatus字段:

  • 信息 设置为零。
  • 如果传输已完成且未出错,状态 设置为STATUS_SUCCESS。 否则,它设置为适当的 NTSTATUS 错误代码

微型驱动程序处理

向设备执行 I/O 的 HID 微型驱动程序设置以下 Irp->IoStatus字段:

  • 信息 设置为传输到设备的字节数。
  • 如果传输已完成且未出错,状态 设置为STATUS_SUCCESS。 否则,它设置为适当的 NTSTATUS 错误代码。

调用此 IOCTL 执行 I/O 的其他驱动程序的 HID 微型驱动程序应确保状态块 信息 字段正确,并且不会更改 状态 字段的内容。

要求

要求 价值
标头 hidclass.h (include Hidclass.h)

另请参阅