IOCTL_USBPRINT_GET_1284_ID IOCTL (usbprint.h)
IOCTL_USBPRINT_GET_1284_ID 控制代码允许上层软件(如语言监视器)请求并获取打印机的 IEEE 1284 设备 ID 字符串。
主要代码
输入缓冲区
此作中未使用;将此参数设置为 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 |
另请参阅
WdfIoTargetSendInternalIoctlOthersSynchronously