다음을 통해 공유


IOCTL_HID_GET_INDEXED_STRING IOCTL(hidclass.h)

IOCTL_HID_GET_INDEXED_STRING 요청은 최상위 컬렉션에서 지정된 포함된 문자열을 가져옵니다. 검색된 문자열은 사람이 읽을 수 있는 형식의 NULL로 끝나는 와이드 문자열입니다.

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

주 코드

IRP_MJ_DEVICE_CONTROL

입력 버퍼

IRP의 I/O 스택 위치에 있는 Parameters.DeviceIoControl.InputBufferLengthIrp-AssociatedIrp.SystemBuffer가 가리키는 위치에 있는 입력 버퍼의 크기(바이트)>를 나타냅니다.

IRP의 I/O 스택 위치에 있는 Parameters.DeviceIoControl.OutputBufferLength는 출력 버퍼의 크기(바이트)를 나타냅니다. 출력 버퍼가 NULL로 종료된 전체 포함된 문자열을 보유할 만큼 크지 않은 경우 요청은 출력 버퍼에 아무 것도 반환하지 않습니다.

미니드라이버 처리: IOCTL_HID_GET_INDEXED_STRING 두 개의 입력 버퍼를 사용합니다.

IRP의 I/O 스택 위치에 있는 Parameters.DeviceIoControl.OutputBufferLengthIrp-MdlAddress>가 가리키는 위치에 있는 출력 버퍼의 크기를 바이트 단위로 나타냅니다. 출력 버퍼가 NULL로 종료된 전체 포함된 문자열을 보유할 만큼 크지 않은 경우 요청은 출력 버퍼에 아무 것도 반환하지 않습니다. 포함된 문자열에서 가능한 최대 문자 수는 디바이스별로 다릅니다. USB 디바이스의 경우 최대 문자열 길이는 126자입니다(종결 NULL 문자는 포함하지 않음).

Parameters.DeviceIoControl.Type3InputBuffer 에는 검색할 문자열을 설명하는 INT 값이 포함되어 있습니다. INT 값의 가장 중요한 2바이트에는 언어 ID가 포함됩니다(예: 값 1033은 영어를 나타낸다). INT 값의 가장 중요한 2바이트에는 문자열 인덱스가 포함됩니다.

입력 버퍼 길이

Parameters.DeviceIoControl.InputBufferLength 는 >= sizeof(ULONG)여야 하며 검색할 문자열의 인덱스를 포함해야 합니다.

Parameters.DeviceIoControl.OutputBufferLength의 경우 포함된 문자열에서 가능한 최대 문자 수는 디바이스별로 다릅니다. USB 디바이스의 경우 최대 문자열 길이는 126자입니다(종결 NULL 문자는 포함하지 않음).

출력 버퍼

Irp->MdlAddress 는 검색된 문자열(NULL로 끝나는 와이드 문자열)을 수신하기 위해 버퍼를 가리킵니다.

미니드라이버 처리: Irp-MdlAddress>는 검색된 문자열(NULL로 끝나는 와이드 문자열)을 수신하기 위해 버퍼를 가리킵니다. HID 미니드라이버에 대한 대부분의 디바이스 제어 IRP와 달리 이 IRP는 METHOD_NEITHER 버퍼링을 사용하지 않습니다. 특히 출력 버퍼가 Irp-UserBuffer>로 식별되는 IOCTL_HID_GET_STRING 구분해야 합니다.

출력 버퍼 길이

검색된 문자열의 길이(NULL로 끝나는 와이드 문자열)입니다. 제공된 버퍼는 = 4093바이트(2^12 – 3)여야 합니다 <.

상태 블록

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

  • 정보는 디바이스에서 전송된 바이트 수로 설정됩니다.

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

요구 사항

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

추가 정보

HidD_GetIndexedString

HidD_GetManufacturerString

HidD_GetPhysicalDescriptor

HidD_GetProductString

HidD_GetSerialNumberString

IOCTL_HID_GET_MANUFACTURER_STRING

IOCTL_HID_GET_PRODUCT_STRING

IOCTL_HID_GET_SERIALNUMBER_STRING