① linux怎樣載入文件過濾驅動
文件系統過濾驅動是一種可選的,為文件系統提供具有附加值功能的驅動程序。文件系統過濾驅動是一種核心模式組件,它作為Windows NT執行體的一部分運行。
文件系統過濾驅動可以過濾一個或多個文件系統或文件系統卷的I/O操作。按不同的種類劃分,文件系統過濾驅動可以分成日誌記錄、系統監測、數據修改或事件預防幾類。通常,以文件系統過濾驅動為核心的應用程序有防毒軟體、加密程序、分級存儲管理系統等。
二、文件系統過濾驅動並不是設備驅動
設備驅動是用來控制特定硬體I/O設備的軟體組件。例如:DVD存儲設備驅動是一個DVD驅動。
相反,文件系統過濾驅動與一個或多個文件系統協同工作來處理文件I/O操作。這些操作包括:創建、打開、關閉、枚舉文件和目錄;獲取和設置文件、目錄、卷的相關信息;向文件中讀取或寫入數據。另外,文件系統過濾驅動必須支持文件系統特定的功能,例如緩存、鎖定、稀疏文件、磁碟配額、壓縮、安全、可恢復性、還原點和卷裝載等。
下面兩部分詳細的闡述了文件系統過濾驅動和設備驅動之間的相似點與不同點。
三、安裝文件系統過濾驅動
對於Windows XP和後續操作系統來說,可以通過INI文件或安裝應用程序來安裝文件系統過濾驅動(對於Windows 2000和更早的操作系統,過濾驅動通常通過服務控制管理器Service Control Manager來進行安裝)。
四、初始化文件系統過濾驅動
與設備驅動類似,文件系統過濾驅動也使用DriverEntry常式進行初始化工作。在驅動程序載入後,載入驅動相同的組件將通過調用驅動程序的 DriverEntry常式來對驅動程序進行初始化工作。對於文件系統過濾驅動來說,載入和初始化過濾驅動的系統組件為I/O管理器。
DriverEntry常式運行於系統線程上下文中,其IRQL = PASSIVE_LEVEL。本常式可分頁,詳細信息參見MmLockPagableCodeSection。
DriverEntry常式定義如下:
NTSTATUS
DriverEntry (
IN PDRIVER_OBJECT DriverObject,
IN PUNICODE_STRING RegistryPath
)
本常式有兩個輸入參數。第一個參數,DriverObject為系統在文件系統過濾驅動載入時所創建的驅動對象;第二個參數,RegistryPath為包含驅動程序注冊鍵路徑的Unicode字元串。
文件系統過濾驅動按如下順序執行DriverEntry常式:
01、創建控制設備對象:
文件系統過濾驅動的DriverEntry常式通常以創建控制設備對象作為該常式的起始。創建控制設備對象的目的在於允許應用程序即使在過濾驅動載入到文件系統或卷設備對象之前也能夠直接與過濾驅動進行通信。
注意:文件系統也會創建控制設備對象。當文件系統過濾驅動將其自身附加到文件系統之上時(而不是附加到某一特定文件系統卷),過濾驅動同樣將其自身附加到文件系統的控制設備對象之上。
在FileSpy驅動範例中,控制設備對象按如下方式創建:
RtlInitUnicodeString(&nameString, FILESPY_FULLDEVICE_NAME);
status = IoCreateDevice(
DriverObject, //DriverObject
0, //DeviceExtensionSize
&nameString, //DeviceName
FILE_DEVICE_DISK_FILE_SYSTEM, //DeviceType
FILE_DEVICE_SECURE_OPEN, //DeviceCharacteristics
FALSE, //Exclusive
&gControlDeviceObject); //DeviceObject
RtlInitUnicodeString(&linkString, FILESPY_DOSDEVICE_NAME);
status = IoCreateSymbolicLink(&linkString, &nameString);
與文件系統不同,文件系統過濾驅動並不是一定要為其控制設備對象命名。如果傳遞給DeviceName參數一個非空(Non-NULL)值,該值將作為控制設備對象的名稱。接下來,在前面的代碼範例中DriverEntry可以調用IoCreateSymbolicLink常式來將該對象的核心模式名稱與應用程序可見的用戶模式名稱關聯到一起(同樣可以通過調用IoRegisterDeviceInterface來使設備對象對應用程序可見)。
注意:由於控制設備對象是唯一不會附加到設備堆棧中的設備對象,因此控制設備對象是唯一的可安全命名的設備對象。由此,是否為文件系統過濾驅動的控制設備對象是否命名是可選的。
注意:文件系統的控制設備對象必須命名。過濾設備對象從不命名。
② Windows驅動編程和Linux驅動編程 區別大嗎
原理是差不多的,但是所用的函數是不同的.一般都是用的c語言和少部分匯編
不過學驅動編程重要的不是編程而是理解操作系統的內核原理。當你理解了內核的原理剩下的只是學用那些函數而已。
你可以去看看<linux內核源代碼情景分析>和<windows內核情景分析>
如果你只是想寫幾個驅動來玩玩的,你只以只看看<windows驅動開發技術詳解>
如果你想成為高手那麼內核原理的書是必看的。
③ 請教用文件過濾驅動的方式透明加密linux中的文件
文件系統過濾驅動是一種可選的,為文件系統提供具有附加值功能的驅動專程序。文件系統過濾驅動是一屬種核心模式組件,它作為Windows NT執行體的一部分運行。 文件系統過濾驅動可以過濾一個或多個文件系統或文件系統卷的I/O操作。按不同的種類劃分,...
④ 是做windows驅動還是linux驅動
linux驅動吧
現在智能家居什麼的大部分都用的嵌入式Linux啊
⑤ 通過ul,Linux或者windows驅動程序的開發過程,如何理解設備是文件這一重要概念
都驅動開發了還問這么基礎的問題,基礎不行回頭好好學習天天向上吧
⑥ WINDOWS如何把下載的驅動傳遞給LINUX
ftp、sftp、samba都可以
簡單點兒Linux啟動ftp服務,windows上傳文件就可以了
⑦ windows驅動和linux驅動開發有什麼不同對於剛剛接觸的人,哪個開發容易些哪個更使用呢
沒有什麼根本的不同,同樣的硬體通信類型,但面向的平台對象不同而已。
對於專剛剛接觸驅動程序屬編寫的人來講,開發UNIX/LINUX的驅動程序相對簡
單一些,主要是因為WINDOWS本身對驅動程序的限制和其自身的版本太多
導致介面化程序編寫的難度提高。相反UNIX家族的驅動程序設置基本上
是版本具備延續性,因此可以在編寫的過程中有很多借鑒的。
⑧ 如何將WINDOWS和LINUX下的硬體驅動驅動,編譯成MAC系統的
何必這么麻煩,你裝兩個系統不就行了,這兩個系統間不太可能兼容得讓你滿意的.
⑨ Linux下有辦法裝Windows驅動嗎
linux的驅動一般有兩種格式,分別為:tar和rpm格式。 rpm安裝步驟: 1.將驅動程序文件bcm5700-.src.rpm復制到一個臨時目錄中,並在此目錄中運行以下命令: rpm –ivh bcm5700-.src.rpm 2.運行以下命令切換到驅動目錄中: cd /usr/src/redhat/SP...
⑩ linux windows雙系統,linux切換回windows網卡就沒了,得重新安裝驅動
樓主,這個問題解決了嗎?我也是,如果解決了,能不能幫幫我,謝謝