编写Windows端口监视器基础知识

时间:2009-05-23 15:42:40

标签: c windows winapi printing

我正在尝试查找有关如何编写打印机端口监视器的基本示例,教程或博客文章。我下载了Windows DDK并通过localmon进行了挖掘,但看起来这个样本比基本的基本内容复杂得多,据我所知,它与OEM端口监视器有点不同,因为它处理注册表项和端口枚举。有没有人知道一篇博客文章,教程,甚至书籍,引导读者通过基本代码来获得一个和一个去?我发现了一些关于概念性内容的链接,但没有任何东西可以用来代码。

3 个答案:

答案 0 :(得分:4)

我是从specs写的,我实际上并没有那么多API。

有条件地将人们绊倒的一件事是EnumPorts,假脱机程序为所有端口分配足够的内存,而不仅仅是你的。因此,您需要确保从缓冲区缓冲区的末尾填充任何字符串,不要将它们直接放在结构之后。

在规范中没有这样说,但你可以安全地将UI和Server函数放在同一个DLL中。

还可以创建一个支持NT和后来的Windows 2000类型端口监视器的单端口监视器。

RedMon中的代码比localmon示例更容易阅读,在开始之前值得一看。这很好,因为你可以在VS中编译它,你不需要使用DDK来构建它。

答案 1 :(得分:4)

我可以推荐http://www.codeproject.com/KB/printing/wpa.aspx,它描述了如何编写打印机驱动程序,并且还提供了有关构建端口监视器所需内容的良好提示。

但我的意见是,互联网上没有这个领域的优秀教程(我很乐意找到一个可以证明我错了的人)。所以,当我不得不处理这个任务时,我不得不这么做:我从这一点开始仔细阅读MSDN的解释:http://msdn.microsoft.com/en-us/library/ff561109.aspx。在阅读MSDN的同时,我还检查了你提到的DDK中的代码并尝试理解它。我相信这个解决方案也适合你。

答案 2 :(得分:2)

对于串行打印机,我已经完全相同的领域。关于我发现的最好的例子是this article in Dr Dobbs Journal。好的部分是包含串行端口驱动程序和用户空间控制程序,该项目也可以用作如何设置Visual Studio以编译驱动程序的示例。这也是一个有点难以找到的信息。这篇文章讨论了一个旧的NT风格驱动程序,它在XP上运行良好。

CodeProject上有很多关于编写与它们交互的驱动程序和程序的好文章。它们包括源代码,大多数处理较新的WDM和WDF样式驱动程序。

OSROnline是另一个很好的来源,特别是对于具体问题和常见错误的讨论。它们还有一些你需要的实用工具。

我遇到的一些最清晰易懂的驱动程序代码是Mark Russinovich的示例代码。虽然微软在购买Sysinternals时撤回了所有来源,但仍然可以在这里和那里找到一些最好的例子。

司机非常有趣。无论你做什么,都可以在虚拟机中完成。真。

相关问题