2012-11-15 59 views
2

在Linux中,我們可以從關聯的驅動程序文件對象讀取/寫入,並且這些函數調用將由驅動程序讀/寫功能執行。在Windows中是否一樣?驅動程序如何在Windows中工作?

我們是否將文件關聯到驅動程序,並通過讀取/寫入此文件來訪問驅動程序功能?

(我一直在編程Linux下的驅動程序,現在想了解「Windows的方式」來做到這一點。)在Windows

+0

我建議你對你的問題更具體。標題爲「驅動程序如何在Microsoft Windows中工作?」的問題很可能會被關閉。 –

+0

這裏的[faq](http://stackoverflow.com/faq)指出你不應該問一個問題,你可以想象一本書的價值。我認爲你正朝着這個方向前進,甚至將其限制爲「Windows驅動程序」。如果您針對在C – Mike

+0

中編寫的窗口選擇了特定驅動程序的某些特定問題,會更好一些。有關如何使用設備的信息,請參閱https://technet.microsoft.com/en-us/library/cc776371(v=ws.10).aspx驅動程序工作 – Pacerier

回答

5

設備驅動程序不以同樣的方式,司機在Linux上做工作。要快速瞭解Windows驅動程序的總體結構,可以查看MSDN。有幾類驅動程序,但他們不是在tree of devices

MSDNDriverEntry程序的目的綁在VFS在Linux中,相反,他們都表示爲節點是這樣的:

DriverObject參數爲DriverEntry例程提供指向驅動程序的驅動程序驅動程序 對象的指針,該對象由I/O管理器分配。 DriverEntry例程必須用驅動程序標準例程的入口點填寫驅動程序 對象。

這意味着,I/O管理器將調用的程序,您填寫的指針結構的程序,你的驅動程序implememnts。您可以create individual device objectsIoCreateDevice並將它們存儲在您的DRIVER_OBJECT結構中。

要創建塊設備樣式設備我相信你想創建一個FILE_DEVICE_DISK類型的設備。

微軟有一系列的驅動程序創建教程,second one可能是一個很好的開始。

+0

你做什麼樣的系統編程? – Pacerier

+0

我再也沒有做過任何低級別的Windows編程。我曾經爲一家反病毒公司工作,這是我大部分低級別Windows編程的地方。 – Will