在Linux中,我們可以從關聯的驅動程序文件對象讀取/寫入,並且這些函數調用將由驅動程序讀/寫功能執行。在Windows中是否一樣?驅動程序如何在Windows中工作?
我們是否將文件關聯到驅動程序,並通過讀取/寫入此文件來訪問驅動程序功能?
(我一直在編程Linux下的驅動程序,現在想了解「Windows的方式」來做到這一點。)在Windows
在Linux中,我們可以從關聯的驅動程序文件對象讀取/寫入,並且這些函數調用將由驅動程序讀/寫功能執行。在Windows中是否一樣?驅動程序如何在Windows中工作?
我們是否將文件關聯到驅動程序,並通過讀取/寫入此文件來訪問驅動程序功能?
(我一直在編程Linux下的驅動程序,現在想了解「Windows的方式」來做到這一點。)在Windows
設備驅動程序不以同樣的方式,司機在Linux上做工作。要快速瞭解Windows驅動程序的總體結構,可以查看MSDN。有幾類驅動程序,但他們不是在tree of devices
從MSDN的DriverEntry
程序的目的綁在VFS在Linux中,相反,他們都表示爲節點是這樣的:
DriverObject參數爲DriverEntry例程提供指向驅動程序的驅動程序驅動程序 對象的指針,該對象由I/O管理器分配。 DriverEntry例程必須用驅動程序標準例程的入口點填寫驅動程序 對象。
這意味着,I/O管理器將調用的程序,您填寫的指針結構的程序,你的驅動程序implememnts。您可以create individual device objects與IoCreateDevice
並將它們存儲在您的DRIVER_OBJECT
結構中。
要創建塊設備樣式設備我相信你想創建一個FILE_DEVICE_DISK
類型的設備。
微軟有一系列的驅動程序創建教程,second one可能是一個很好的開始。
我建議你對你的問題更具體。標題爲「驅動程序如何在Microsoft Windows中工作?」的問題很可能會被關閉。 –
這裏的[faq](http://stackoverflow.com/faq)指出你不應該問一個問題,你可以想象一本書的價值。我認爲你正朝着這個方向前進,甚至將其限制爲「Windows驅動程序」。如果您針對在C – Mike
中編寫的窗口選擇了特定驅動程序的某些特定問題,會更好一些。有關如何使用設備的信息,請參閱https://technet.microsoft.com/en-us/library/cc776371(v=ws.10).aspx驅動程序工作 – Pacerier