Windows存儲設備驅動程序結構簡介

Windows存儲設備驅動程序結構簡介<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

Windows中的存儲驅動程序符合類(Class/端口(Port/小端口(Miniport結構:microsoft提供一個存儲類驅動程序,它實現了對於所有的存儲設備都共同的功能;microsoft也提供了一個存儲端口驅動程序,它實現了對於特定總線而言共同的功能;OEM廠商提供小端口驅動程序,它們插入到端口驅動程序中,將windows與特定的實現連接起來。

I/O請求從應用程序或一些內核組件以IRP的形式發出,這些IRP通過I/O子系統服務例程、一個或多個上層驅動程序(比如文件系統驅動程序)或中間驅動程序,最後到達類驅動程序;存儲類驅動程序在接收到這些IRP後,會將這些IRP請求轉化成含SCSI請求塊(SRBs)的IRPSCSI請求塊是系統定義好的,其中含有SCSI命令描述塊(CDBs),然後類驅動程序再把這些轉化好的IRP發送給處於自身下一層的驅動程序;類驅動程序下一層驅動程序可能是過濾驅動程序,這些過濾驅動程序一般實現了那些類驅動程序不提供的功能,它們還可能監控由類驅動程序發來的SRBIRP並且根據需要修改這些數據,最後再把這些SRBIRP發送給下面的端口驅動程序;端口驅動程序定義了一套與類驅動程序通訊的接口,它將接收到的IRP中的SRB轉化成特定總線使用的命令,然後再將該命令發送給下層存儲設備HBAHost Bus Adapter)的小端口驅動程序。小端口驅動程序使用端口驅動程序定義的接口來完成與具體設備的交互。

整個結構圖如下所示:(參考來源:MSDN

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章