windows儲存裝置驅動程式結構簡介
windows
中的儲存驅動程式符合「類(
class)/
埠(port)/
小埠(miniport)」
結構:microsoft
提供乙個儲存類驅動程式,它實現了對於所有的儲存裝置都共同的功能;
microsoft
也提供了乙個儲存埠驅動程式,它實現了對於特定匯流排而言共同的功能;
oem廠商提供小埠驅動程式,它們插入到埠驅動程式中,將
windows
與特定的實現連線起來。
i/o請求從應用程式或一些核心元件以
irp的形式發出,這些
irp通過
i/o子系統服務例程、乙個或多個上層驅動程式(比如檔案系統驅動程式)或中間驅動程式,最後到達類驅動程式;儲存類驅動程式在接收到這些
irp後,會將這些
irp請求轉化成含
scsi
請求塊(
srbs
)的irp
,scsi
請求塊是系統定義好的,其中含有
scsi
命令描述塊(
cdbs
),然後類驅動程式再把這些轉化好的
irp傳送給處於自身下一層的驅動程式;類驅動程式下一層驅動程式可能是過濾驅動程式,這些過濾驅動程式一般實現了那些類驅動程式不提供的功能,它們還可能監控由類驅動程式發來的
srb或
irp並且根據需要修改這些資料,最後再把這些
srb或
irp傳送給下面的埠驅動程式;埠驅動程式定義了一套與類驅動程式通訊的介面,它將接收到的
irp中的
srb轉化成特定匯流排使用的命令,然後再將該命令傳送給下層儲存裝置
hba(
host bus adapter
)的小埠驅動程式。小埠驅動程式使用埠驅動程式定義的介面來完成與具體裝置的互動。
linux裝置驅動程式 字元裝置驅動程式
先留個 有一起學習驅動程式的加qq295699450 字元裝置驅動 這篇比較惱火。載入成功,但是讀不出來資料,有知道怎麼回事的,留個言,一起討論下 資料結構 struct scull mem struct scull dev dev 整個驅動程式 如下 include include include...
Linux裝置驅動程式 字元裝置驅動程式
1.檢視主裝置號,次裝置號 進入 dev目錄執行ls l,第四,五列分別為主次裝置號,10,180,1,5,這些是主裝置號,而60,63這些就是次裝置號 130 shell android dev ls l crw rw r system radio 10,60 1969 12 31 21 00 a...
裝置驅動程式
首先要問,什麼是裝置驅動程式?又名裝置處理程式,是i o系統的高層與裝置控制器之間的通訊程式 起乙個翻譯的作用 這個東西能幹什麼?簡要來說就是啟動指定裝置,完成上層指定的i o工作 裝置驅動程式的特點 略,書上193頁有 裝置處理方式 為每一類裝置設定乙個程序,專門用於執行這類裝置的i o操作 一對...