irp請求:向最終裝置申請執行某個操作的請求,它在核心中以乙個資料結構(irp)的形式存在,具有相關的約定和規範。
驅動物件:表示系統核心中載入的乙個驅動程式的資料結構(driver_object)。
裝置物件:最終接收、響應乙個irp請求的物件。在核心中,也是乙個資料結構(device_object)的形式存在。他關聯的實體可以是乙個實際存在物理裝置,如硬碟,網路介面卡;也可是乙個虛擬的概念,如管道。
irp請求、驅動物件、裝置物件關係:乙個驅動物件可能擁有多個裝置物件,驅動物件將其捕獲到的irp請求分發到具體的某個特定裝置物件去。當應用程式需要像某個裝置物件傳送一動作請求時,他首先將該請求傳送至對應的驅動物件,驅動物件捕獲到請求後,根據請求中的資訊將其分發到具體的裝置物件。此外,該請求會被i/o管理器翻譯成規範的irp請求(或其他與之等效的形式)發往具體的裝置物件。裝置物件接收到irp後,實際執行請求的動作。很多時候,乙個irp需要經過多個裝置對像的處理才能夠最終完成。
驅動物件和裝置物件
驅動物件,本質就是核心中一塊描述驅動資訊的記憶體 kd dt driver object 8988fe20 0x000 type 4 nt式驅動的型別為4 0x002 size 168 該結構體的大小 0x004 deviceobject null 自己建立的裝置物件 該驅動中所有的裝置物件會組成乙...
驅動雜記1 對驅動物件,裝置物件,裝置棧的理解
windows核心採用的是物件導向的程式設計方式,但使用的確是c語言。windows核心認為許多東西都是 物件 比如乙個驅動乙個檔案乙個裝置,物件 相當於乙個基類。乙個驅動物件代表了乙個驅動程式,或者說乙個核心模組。驅動物件結構如下 typedef struct driver objectdrive...
儲存驅動和裝置物件
儲存裝置棧由處理系統上儲存裝置 i o的驅動建立的樹狀裝置物件組成。樹的根節點是儲存介面卡或整合於其它儲存棧的驅動棧的功能性裝置物件 fdo 樹的子節點是檔案系統和使用者模式應用程式使用的裝置物件。如任一pnp驅動相同,通過 iocreatedevice 建立裝置物件,ioattachdevicet...