0

我知道以前在这里和其他一些地方也有人问过类似的问题。但我想问一些关于基本概念的问题。

所以,我被分配了一个项目,我必须制作一个“usb logger”。该项目的主要功能是在记录仪软件上捕获从 PC 传输到 USB 打印机的数据,以便将每个打印输出的原始数据保存到文件中以进行记录和分析。

有人告诉我,我可以使用像usbpcap这样的第三方工具,但我建议我们为什么不直接从打印后台处理程序获取数据。据我所知,打印后台处理程序维护要打印的数据队列。

在我开始从事这个项目之前,我想问几个基本问​​题

1)这种情况下的原始数据是什么?

2)我可以通过直接从后台处理程序获得这一点还是有其他方法。

3) 哪一个需要更多的 PC 资源与 USB 端口或后台处理程序通信?

我只需要完全了解领域。(我将使用 C# 开发这个项目)

谢谢

4

1 回答 1

0

如果您需要以原始形式捕获整个输出,那么最简单的方法是使用端口监视器。端口监视器位于假脱机程序和物理输出设备之间,并将原始数据写入该设备,因此它是捕获此类数据的自然场所。

您需要做的是安装 Windows WDK 并查看示例端口监视器。您应该能够通过很少的修改来使用它。主要是,除了将数据写入打印机之外,您只需添加代码即可将数据写入某个文件。您还需要更改所有处理注册表的代码,因为该示例假定它是默认端口监视器并写入为 Windows 保留的注册表项。

请注意,版本 4 打印驱动程序(即 Win8)不支持自定义端口监视器。但是,Win8 仍然支持 v3 打印驱动程序,它应该涵盖当前所有的打印机。

于 2014-08-24T18:17:56.997 回答