IOCTL_HID_GET_FEATURE - NtDoc

Native API online documentation, based on the System Informer (formerly Process Hacker) phnt headers
// hidclass.h

// CTL_CODE(0x000b, 0x064, METHOD_OUT_DIRECT, FILE_ANY_ACCESS)
#define IOCTL_HID_GET_FEATURE 0x000B0192
View the official Windows Driver Kit DDI reference

NtDoc

No description available.

Windows Driver Kit DDI reference (ni-hidclass-ioctl_hid_get_feature)

IOCTL_HID_GET_FEATURE IOCTL

Description

The IOCTL_HID_GET_FEATURE request returns a feature report associated with a top-level collection.

For general information about HIDClass devices, see HID Collections.

Parameters

Major code

Input buffer

The Parameters.DeviceIoControl.OutputBufferLength member specifies the size, in bytes, of a requester-allocated output buffer. The HID class driver uses this buffer to return a feature report.

If the collection includes report IDs, the requester must set the first byte of the output buffer to a nonzero report ID. Otherwise, the requester must set the first byte of the output buffer to zero.

Minidriver handling

Irp->UserBuffer points to a HID_XFER_PACKET structure that the HID class driver uses to input the following members:

Input buffer length

The size of the buffer in bytes. The buffer must be large enough to hold the feature report plus one additional byte that specifies a nonzero report ID. If report ID is not used, the ID value is zero.

Minidriver handling

The size of the HID_XFER_PACKET structure.

Output buffer

The Irp->MdlAddress member points to the requester-allocated output buffer that the HID class driver uses to return the feature report. The first byte of the buffer, which the requester uses to input a report ID or zero, is unchanged. The feature report, excluding its report ID, if report IDs are used, is returned at ((PUCHAR)Irp->MdlAddress + 1).

Minidriver handling

((PHID_XFER_PACKET)(Irp->UserBuffer))->reportBuffer points to the requester-allocated output buffer that the HID minidriver uses to return a feature report.

Output buffer length

The length of the buffer that contains the report.

Minidriver handling

The size of the HID_XFER_PACKET structure.

Input/output buffer

Input/output buffer length

Status block

The HID class driver sets the following fields of Irp->IoStatus:

Minidriver handling

HID minidrivers that carry out the I/O to the device set the following fields of Irp->IoStatus:

HID minidrivers that call other drivers with this IOCTL to carry out the I/O to their device, should ensure that the Information field of the status block is correct and not change the contents of the Status field.

-ReportID

Specifies a report ID associated with a top-level collection.

-reportBuffer

Points to a requester-allocated output buffer that a HID minidriver uses to return a feature report.

-reportBufferLen

Specifies the size, in bytes, of the output buffer.

See also