Поделиться через


IOCTL_HID_GET_SERIALNUMBER_STRING IOCTL (hidclass.h)

Запрос IOCTL_HID_GET_SERIALNUMBER_STRING получает внедренную строку коллекции верхнего уровня, которая определяет серийный номер устройства. Полученная строка — это строка, завершаемая значением NULL, широкой символьной строкой в формате, доступном для чтения человеком.

Общие сведения о устройствах HIDClass см. в коллекций HID.

Основной код

IRP_MJ_DEVICE_CONTROL

Входной буфер

Parameters.DeviceIoControl.OutputBufferLength в расположении стека ввода-вывода iRP указывает размер в байтах выходного буфера. Если выходной буфер недостаточно велик для хранения всей встроенной строки, завершаемой значением NULL, запрос возвращает ничего в выходном буфере.

Длина входного буфера

Максимально возможное количество символов в внедренной строке — это конкретное устройство. Для USB-устройств максимальная длина строки составляет 126 широких символов (не включая завершающий символ NULL).

Выходной буфер

Irp->MdlAddress указывает на буфер, чтобы получить строку серийного номера (строку с символом, завершаемую null).

Длина выходного буфера

Длина строки, завершаемой значением NULL, широкой символьной. Предоставленный буфер должен быть <= 4093 байта (2^12 – 3).

Блок состояния

Драйвер класса HID задает следующие поля Irp->IoStatus:

  • сведения задано число байтов, передаваемых с устройства.

  • состояние имеет значение STATUS_SUCCESS, если передача завершена без ошибок. В противном случае для него задан соответствующий код ошибки NTSTATUS.

Требования

Требование Ценность
заголовка hidclass.h (include Hidclass.h)

См. также

HidD_GetIndexedString

HidD_GetManufacturerString

HidD_GetPhysicalDescriptor

HidD_GetProductString

HidD_GetSerialNumberString

IOCTL_HID_GET_INDEXED_STRING

IOCTL_HID_GET_MANUFACTURER_STRING

IOCTL_HID_GET_PRODUCT_STRING