2009-05-23 22 views
1

我正在尝试查找关于如何编写打印机端口监视器的基本示例,教程或博客文章。我下载了Windows DDK,并通过localmon挖掘出来,但是看起来这个示例比单纯的基础知识要复杂得多,而且从我的理解来看,它与OEM端口监视器有点不同,因为它处理注册表键和端口枚举。有没有人知道博客文章,教程,甚至是书籍,通过基本代码让读者了解起来和走向?我发现了几个关于概念性的东西的链接,但没有什么是关于代码的。编写Windows端口监视器基础知识

+0

你假定的“端口”监视器会做什么? – 2009-05-23 15:49:34

回答

1

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

上有CodeProject有关编写驱动程序和程序与他们进行互动了不少好文章。它们包括源代码,并且大部分涉及更新的WDM和WDF驱动程序。

OSROnline是另一个很好的来源,尤其是对具体问题和常见错误的讨论。他们也有一些你需要的伟大的工具。

我遇到的一些写得最清晰,最易理解的驱动代码是Mark Russinovich的示例代码。虽然微软在购买Sysinternals的时候已经收回了所有的资源,但仍然可以找到一些最好的例子。

司机很有趣。无论你做什么,都要在虚拟机中完成。真。

4

我写我的从specs,有没有真正许多API的实现。

一两件事,regularaly绊倒人组成的EnumPorts,后台处理程序为所有的端口分配足够的内存,不只是你的。所以你需要确保你从假脱机缓冲区的末尾填入任何字符串,不要把它们放在你的结构之后。

它不会在规格这么说,但你可以放心地把用户界面和服务器功能,在同一个DLL。

也可以创建支持NT和更高版本Windows 2000类型端口监视器的单端口监视器。

在雷德曼的代码更容易比localmon例如读取,这是值得考虑的,然后再开始。这很好,因为你可以在VS中编译它,你不需要使用DDK来构建它。

3

我可以建议更换http://www.codeproject.com/KB/printing/wpa.aspx,其中介绍了如何写的打印机驱动程序,也有关于什么是需要建立一个端口监视器很好的提示。

但我的观点是,在这方面一个很好的教程是不是可以在互联网上(我会很高兴地发现有人谁可以告诉我,我错了)。所以,当我不得不处理这个任务时,我不得不艰难地做到这一点:我仔细阅读了从这一点开始的MSDN解释:http://msdn.microsoft.com/en-us/library/ff561109.aspx。在阅读MSDN的同时,我还检查了您提到的DDK中的代码并试图理解它。我相信这个解决方案也可以为你工作。