2009-05-23 48 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中的代碼並試圖理解它。我相信這個解決方案也可以爲你工作。