IOCTL_HID_GET_FEATURE IOCTL(hidclass.h)
IOCTL_HID_GET_FEATURE 요청은 최상위 컬렉션과 연결된 기능 보고서를 반환합니다.
HIDClass 디바이스에 대한 일반적인 내용은 HID 컬렉션을 참조하세요.
주 코드
입력 버퍼
멤버는 Parameters.DeviceIoControl.OutputBufferLength
요청자가 할당한 출력 버퍼의 크기(바이트)를 지정합니다. HID 클래스 드라이버는 이 버퍼를 사용하여 기능 보고서를 반환합니다.
컬렉션에 보고서 ID가 포함된 경우 요청자는 출력 버퍼의 첫 번째 바이트를 0이 아닌 보고서 ID로 설정해야 합니다. 그렇지 않으면 요청자는 출력 버퍼의 첫 번째 바이트를 0으로 설정해야 합니다.
미니 드라이버 처리
Irp->UserBuffer
는 HID 클래스 드라이버가 다음 멤버를 입력하는 데 사용하는 HID_XFER_PACKET 구조를 가리킵니다.
입력 버퍼 길이
버퍼 크기(바이트)입니다. 버퍼는 기능 보고서와 0이 아닌 보고서 ID를 지정하는 1개의 추가 바이트를 보유할 수 있을 만큼 커야 합니다. 보고서 ID를 사용하지 않으면 ID 값은 0입니다.
미니 드라이버 처리
HID_XFER_PACKET 구조체의 크기입니다.
출력 버퍼
멤버는 Irp->MdlAddress
HID 클래스 드라이버가 기능 보고서를 반환하는 데 사용하는 요청자가 할당한 출력 버퍼를 가리킵니다. 요청자가 보고서 ID 또는 0을 입력하는 데 사용하는 버퍼의 첫 번째 바이트는 변경되지 않습니다. 보고서 ID를 사용하는 경우 보고서 ID를 제외한 기능 보고서는 에서 ((PUCHAR)Irp->MdlAddress + 1)
반환됩니다.
미니 드라이버 처리
((PHID_XFER_PACKET)(Irp->UserBuffer))->reportBuffer
는 HID 미니드라이버가 기능 보고서를 반환하는 데 사용하는 요청자가 할당한 출력 버퍼를 가리킵니다.
출력 버퍼 길이
보고서를 포함하는 버퍼의 길이입니다.
미니 드라이버 처리
HID_XFER_PACKET 구조체의 크기입니다.
상태 블록
HID 클래스 드라이버는 의 다음 필드를 Irp->IoStatus
설정합니다.
- 정보는 디바이스에서 전송되는 바이트 수로 설정됩니다.
- 전송이 오류 없이 완료되면 상태가 STATUS_SUCCESS 설정됩니다. 그렇지 않으면 적절한 NTSTATUS 오류 코드로 설정됩니다.
미니 드라이버 처리
디바이스에 대한 I/O를 수행하는 HID 미니 드라이버는 다음 필드를 Irp->IoStatus
설정합니다.
- 정보는 디바이스에서 전송되는 바이트 수로 설정됩니다.
- 전송이 오류 없이 완료되면 상태가 STATUS_SUCCESS 설정됩니다. 그렇지 않으면 적절한 NTSTATUS 오류 코드로 설정됩니다.
이 IOCTL을 사용하여 다른 드라이버를 호출하여 디바이스에 I/O를 수행하는 HID 미니 드라이버는 상태 블록의 정보 필드가 올바른지 확인하고 상태 필드의 내용을 변경하지 않아야 합니다.
요구 사항
요구 사항 | 값 |
---|---|
헤더 | hidclass.h(Hidclass.h 포함) |