如何安裝驅動

 
       用那個例子編譯成功後,生成一個SYS文件。爲了讓這個驅動被系統加載,必須創建一個inf文件。由於是使用現成的例子,因此這一步也可以省下來。直接右鍵點擊例子中的inf文件,在彈出的菜單中選擇“安裝”即可。
       這裏要注意的是,inf中的StartType參數,它可以控制驅動被加載的方式:
SERVICE_AUTO_START (2)          安全模式下不會自動加載
SERVICE_BOOT_START (0)        在系統安全模式下啓動時 驅動也會自動加載
SERVICE_DEMAND_START(3) 則驅動不會自動加載
 
因爲是測試,我使用SERVICE_DEMAND_START,即由手動加載驅動。例子是miniFilter驅動,因此可以在命令提示行中用“fltmc load 驅動名稱”來加載,相應的卸載是“fltmc unload”。如果是其它驅動,則用"net  start 驅動名稱"來加載,相應的卸載是"net  stop 驅動名稱"。注意驅動名稱不是文件名,而是inf中[Settings]的ServiceName值。驅動要發佈時,也可以通過CreateService & StartService API來動態安裝。
 
Inf文件的寫法,可以參考例子,或者拿現成的改一改。下面的是摘自驅動開發網的
XiangXiangRen整理的Inf文件,改起來比較方便,謝謝XiangXiangRen 。
 
文件過濾驅動安裝inf文件簡易獲得法

 不少同仁獲得inf文件都是直接修改sfilter.inf,這個修改很需要耐性,不小心 敲錯又不能編譯調試,改錯難度不小。有些同仁不加修改,結果sfilter滿天飛:)。我修改了一下sfilter的安裝文件,這樣你只要修改最後的字符 串列表,就可以輕鬆得到自己的安裝文件了。可以用於任何打算靜態加載的文件過濾驅動,內容如下:

[Version]
signature       = "$Windows NT$"
Class         = "ActivityMonitor"      ;This is determined by the work this filter driver does
ClassGuid     = {b86dff51-a31e-4bac-b3cf-e8cfe75c9fc2}  ;This value is determined by the Class
Provider     = %MyName%
DriverVer     = 08/28/2005,1.0.0.1
CatalogFile   = Mycat.cat              ; A CatalogFile entry is required for a WHQL signature.
                                          ; The actual catalog file will be provided by WHQL. The
                                          ; catalog file for this sample is not provided for use.


[DestinationDirs]
DefaultDestDir     = 12
My.DriverFiles     = 12               ;%windir%/system32/drivers

[SourceDisksNames]
1 = %MyDisk%

[SourceDisksFiles]
%MySysFileName%     = 1

[DefaultInstall]
OptionDesc     = %MyServiceDesc%
CopyFiles     = My.DriverFiles

[DefaultInstall.Services]
AddService     = %MyServiceName%,,My.Service
AddReg         = My.AddRegistry

[DefaultUninstall]
DelFiles     = My.DriverFiles
DelReg         = My.DelRegistry

[DefaultUninstall.Services]
DelService     = %MyServiceName%,0x200

[My.Service]
DisplayName     = %MyServiceName%
Description     = %MyServiceDesc%
ServiceBinary   = %12%/%MySysFileName%     ;%windir%/system32/drivers/JwFvfs.sys
ServiceType     = 2                       ;SERVICE_FILE_SYSTEM_DRIVER
StartType     = 0                       ;SERVICE_BOOT_START
ErrorControl   = 1                       ;SERVICE_ERROR_NORMAL
LoadOrderGroup   = "FSFilter Activity Monitor"         ;"filter" if install to 2k.
AddReg           = My.AddRegistry

[My.AddRegistry]

[My.DelRegistry]

[My.DriverFiles]
%MySysFileName%

[Strings]
MyName         = "Tan Wen"                        
MyServiceDesc     = "Tan Wen's File System Filter."
MyServiceName     = "TanWenFsF"
MyRegistry       = "system/currentcontrolset/services/TanWenFsF"
MyDisk         = "Tan Wen Source Media"
MySysFileName     = "TanWen.sys"

修改的時候只要修改最後的字符串列表,依次是 開發者名,服務描述,服務名,註冊表位置,磁盤標籤,驅動文件名。臨時使用,一般只要修改驅動文件名字就行了。
如果要增加註冊表項,填寫上邊的My.AddRegistry和My.DelRegistry節。
上只能安裝到xp以上的系統。安裝到2000時,要把上邊的"FSFilter Activity Monitor"修改爲"filter", 因爲2000下還沒有Activity Monitor這個過濾器類別。而xp下ms推薦使用"FSFilter Activity Monitor"類別。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章