Share via


IOCTL_HID_SET_FEATURE IOCTL(hidclass.h)

IOCTL_HID_SET_FEATURE 요청은 기능 보고서를 최상위 컬렉션으로 보냅니다.

HIDClass 디바이스에 대한 일반적인 내용은 HID 컬렉션을 참조하세요.

주 코드

IRP_MJ_DEVICE_CONTROL

입력 버퍼

멤버는 Parameters.DeviceIoControl.InputBufferLength HID 클래스 기능 보고서를 포함하는 요청자가 할당한 입력 버퍼의 크기(바이트)로 설정됩니다.

입력 버퍼의 크기(바이트)입니다. 버퍼는 기능 보고서와 0이 아닌 보고서 ID를 지정하는 하나의 추가 바이트를 보유할 수 있을 만큼 커야 합니다. 보고서 ID를 사용하지 않으면 ID 값은 0입니다.

멤버는 Irp->AssociatedIrp.SystemBuffer 기능 보고서가 포함된 입력 버퍼를 가리킵니다. 컬렉션에 보고서 ID가 포함된 경우 요청자는 버퍼의 첫 번째 바이트를 0이 아닌 보고서 ID로 설정해야 합니다. 그렇지 않으면 요청자가 첫 번째 바이트를 0으로 설정해야 합니다. 기능 보고서는 에 ((PUCHAR)ReportBuffer + 1)있습니다.

미니 드라이버 처리

Irp->UserBuffer 는 HID 클래스 드라이버가 다음 멤버를 입력하는 데 사용하는 HID_XFER_PACKET 구조를 가리킵니다.

입력 버퍼 길이

입력 버퍼의 크기(바이트)입니다. 버퍼는 출력 보고서와 0이 아닌 보고서 ID를 지정하는 1개의 추가 바이트를 보유할 수 있을 만큼 커야 합니다. 보고서 ID를 사용하지 않으면 ID 값은 0입니다.

미니 드라이버 처리

HID_XFER_PACKET 구조체의 크기입니다.

출력 버퍼

없음

출력 버퍼 길이

없음

상태 블록

HID 클래스 드라이버는 의 다음 필드를 Irp->IoStatus설정합니다.

  • 정보는 0으로 설정됩니다.
  • 전송이 오류 없이 완료된 경우 상태가 STATUS_SUCCESS 설정됩니다. 그렇지 않으면 적절한 NTSTATUS 오류 코드로 설정됩니다.

미니 드라이버 처리

디바이스에 대한 I/O를 수행하는 HID 미니 드라이버는 다음 필드를 Irp->IoStatus설정합니다.

  • 정보는 디바이스로 전송되는 바이트 수로 설정됩니다.
  • 전송이 오류 없이 완료된 경우 상태가 STATUS_SUCCESS 설정됩니다. 그렇지 않으면 적절한 NTSTATUS 오류 코드로 설정됩니다.

I/O를 수행하기 위해 이 IOCTL을 사용하여 다른 드라이버를 호출하는 HID 미니드라이버에서는 상태 블록의 정보 필드가 올바른지 확인하고 상태 필드의 내용을 변경하지 않아야 합니다.

요구 사항

요구 사항
헤더 hidclass.h(Hidclass.h 포함)

추가 정보