IOCTL_USBPRINT_GET_1284_ID IOCTL (usbprint.h)

IOCTL_USBPRINT_GET_1284_ID 控制代码允许上层软件(如语言监视器)请求并获取打印机的 IEEE 1284 设备 ID 字符串。

主要代码

IRP_MJ_DEVICE_CONTROL

输入缓冲区

此作中未使用;将此参数设置为 NULL

输入缓冲区长度

此作中未使用;将此参数设置为 0。

输出缓冲区

输出缓冲区将包含 UCHAR 数据。 成功时,此缓冲区可以保存以下内容:一个双字节前缀,用于指定设备的 IEEE 1284 设备 ID 的大小(以字节为单位):设备 ID;和 null 终止符。 IEEE 1284 设备 ID 的大小最多可为 64 KB。 失败时,如果 GetLastError 返回错误代码 STATUS_BUFFER_TOO_SMALL,则输出缓冲区不够大,无法容纳其预期数据。

输出缓冲区长度

输出缓冲区必须足够大,才能包含包含设备 IEEE 1284 设备 ID、设备 ID(最大大小为 64 KB)和终止 null 的双字节数量。

IOCTL_USBPRINT_GET_1284_ID输出缓冲区长度直接放置在 USB 数据包中。 在某些 USB 打印设备上,使用最大 65535 字节可能会导致调用失败,并出现错误 23。 将缓冲区减少到 4094 字节或更少以解决此问题。

状态块

Irp->IoStatus.Status 设置为 STATUS_SUCCESS(如果请求成功)。 否则,状态 相应的错误条件作为 NTSTATUS 代码。

要求

要求 价值
标头 usbprint.h

另请参阅

在驱动程序中创建 IOCTL 请求

WdfIoTargetSendInternalIoctlOthersSynchronously

WdfIoTargetSendInternalIoctlSynchronously

WdfIoTargetSendIoctlSynchronously