IOCTL_USBPRINT_GET_1284_ID IOCTL (usbprint.h)
Код управления IOCTL_USBPRINT_GET_1284_ID позволяет программному обеспечению верхнего уровня (например, языковой монитор), запрашивать и получать строку идентификатора устройства IEEE 1284 принтера.
Основной код
Входной буфер
Не используется в этой операции; Задайте для этого параметра значение NULL.
Длина входного буфера
Не используется в этой операции; Задайте для этого параметра значение 0.
Выходной буфер
Выходной буфер будет содержать данные UCHAR. При успешном выполнении этот буфер может содержать следующий префикс: двухбайтовый префикс, указывающий размер в байтах идентификатора устройства IEEE 1284; идентификатор устройства; и конечный элемент NULL. Идентификатор устройства IEEE 1284 может составлять до 64 КБ. При сбое, если GetLastError возвращает код ошибки STATUS_BUFFER_TOO_SMALL, выходной буфер был недостаточно велик, чтобы хранить данные, предназначенные для него.
Длина выходного буфера
Выходной буфер должен быть достаточно большим, чтобы содержать двухбайтовый объем, содержащий длину идентификатора устройства IEEE 1284, идентификатор устройства (размером до 64 КБ) и завершающий значение NULL.
Длина буфера вывода IOCTL_USBPRINT_GET_1284_ID помещается непосредственно в USB-пакет. На некоторых usb-устройствах печати, используя не более 65535 байт, вызов может привести к сбою с ошибкой 23. Уменьшите буфер до 4094 байтов или меньше, чтобы устранить эту проблему.
Блок состояния
Irp->IoStatus.Status имеет значение STATUS_SUCCESS, если запрос выполнен успешно. В противном случае состояние соответствующего условия ошибки в качестве кода NTSTATUS.
Требования
Требование | Ценность |
---|---|
заголовка | usbprint.h |
См. также
создание запросов IOCTL в драйверах
WdfIoTargetSendInternalIoctlOthersSynchronously