IOCTL_HID_GET_SERIALNUMBER_STRING IOCTL (hidclass.h)
Запрос IOCTL_HID_GET_SERIALNUMBER_STRING получает внедренную строку коллекции верхнего уровня , которая идентифицирует серийный номер устройства. Полученная строка представляет собой строку расширенных символов, завершаемую null, в удобочитаемом формате.
Общие сведения об устройствах HIDClass см. в разделе Коллекции HID.
Основной код
Входной буфер
Parameters.DeviceIoControl.OutputBufferLength в расположении стека ввода-вывода IRP указывает размер выходного буфера в байтах. Если выходной буфер недостаточно велик для хранения всей встроенной строки, завершаемой значением NULL, запрос не возвращает ничего в выходном буфере.
Длина входного буфера
Максимально возможное количество символов во внедренной строке зависит от устройства. Для USB-устройств максимальная длина строки составляет 126 символов ширины (не включая завершающий символ NULL).
Выходной буфер
Irp->MdlAddress указывает на буфер для получения строки серийного номера (строка расширенных символов, завершающаяся NULL).
Длина выходного буфера
Длина строки расширенных символов, завершаемой null. Предоставленный буфер должен быть <= 4093 байта (2^12–3).
Блок состояния
Драйвер класса HID задает следующие поля Irp-IoStatus>:
Для сведений задается количество байтов, переданных с устройства.
Для параметра Состояние устанавливается значение STATUS_SUCCESS, если передача завершена без ошибок. В противном случае ему присваивается соответствующий код ошибки NTSTATUS.
Требования
Требование | Значение |
---|---|
Заголовок | hidclass.h (включая Hidclass.h) |