wince中的檔案過濾系統(fsdspy)
在wince中實現隱藏檔案,隱藏資料夾,保護檔案不被刪除,阻止建立目錄
注意:所講一切只對harddisk有效,rom上的目錄不在此驅動範圍內。
首先,wince5.0中提供了驅動的公共模組,位置所在
%_winceroot%/public/common/oak/drivers/fsd/fsdspy/
我們可以像新增其他驅動一樣將改驅動新增到wince中。
當然包括最基本的登錄檔資訊新增
; hive boot section
[hkey_local_machine/system/storagemanager/profiles/flashdrv/fatfs/filters/fsdspy]
"dll"="fsdspy.dll"
"order"=dword:2
; end hive boot section
當然少不了將驅動的dll檔案拷貝到wince中
fsdspy.dll $(_flatreleasedir)/fsdspy.dll nk sh
到此基本上就可以讓你的系統啟動後檔案系統filesys.exe就會自動呼叫fsdspy.dll。
下面我們來簡單看看這個驅動
1.file.cpp檔案
這個檔案主要是針對一些檔案基本操作,包括讀,寫,建立等等。
我們只要對其中的filter_createfilew函式進行改造就可以達到我們想要的效果。
handle filter_createfilew(
pvolume pvol,
handle hproc,
lpcwstr lpfilename,
dword dwaccess,
dword dwsharemode,
lpsecurity_attributes lpsecurityattributes,
dword dwcreate,
dword dwflagsandattributes,
handle htemplatefile)
這是函式原型,其中有2個引數很重要,分別是lpfilename和dwcreate,lpfilename是檔案的名字,dwcreate引數有下面5種
create_always
create_new
open_always
open_existing
truncate_existing
其中前2種是新建檔案。
對此,我們可以通過這兩個引數控制對某些檔案的各種操作,也可以防止新建檔案。
2.find.cpp
這個檔案主要是查詢,你可以將他對應到api函式的findfirstfile,findnextfile。
我們只要對其中的handle filter_findfirstfilew函式進行改造就可以隱藏檔案甚至資料夾。
handle filter_findfirstfilew(pvolume pvol, handle hproc, pcwstr pwsfilespec, pwin32_find_dataw pfd)
在這個函式之中首先我們需要注意的是pwsfilespec,這個引數就是要查詢的東西。支援萬用字元。比如要隱藏harddisk下的所有目錄只需過濾「*.*」就可以達到
效果。需要注意的是,非harddisk下的頂級目錄需要自己判斷pwsfilespec中帶的路徑。
如果只想隱藏資料夾下面某些檔案,這個麻煩一點,你需要配合filter_findnextfilew函式一起才能達到完美的效果。同樣的也不難,處理pfd引數就可以了,不
過必須在執行完filterhook對應的函式後做處理。簡單點說就是清空查詢到的資訊,return乙個無效控制代碼就可以了。
3.path.cpp
這個檔案包括一些目錄操作和檔案操作。
主要可能用到有下面4個函式
filter_createdirectoryw建立資料夾
filter_removedirectoryw刪除資料夾
filter_deletefilew刪除檔案
filter_movefilew修改檔案/資料夾名字
需要過濾可以直接通過pwsnewfilename引數來判斷。
參考:http://msdn.microsoft.com/en-us/embedded/aa731293.aspx
wince驅動sources檔案注釋
一 sources檔案 targetname 生成驅動檔案的名字 targettype 驅動檔案的型別,可以是dynlink,library,exe,分別表示檔案型別是dll,lib,exe。如果targettype是dll則入口定義成dllentry,如果targettype 是exe,則可以定義...
檔案過濾驅動的開發 上
當下列情況之一發生時,waitformultipleobjects函式返回 1.乙個或者全部指定的物件在訊號狀態 signaled state 2.到達超時間隔 如下 dword dwwaitstatus handle dwchangehandles 2 監視c windows目錄下的檔案建立和刪除...
wince 驅動的理解
wince 驅動的理解 1.wince 分層驅動 分為 mdd層 pdd層 mdd層為應用提供介面 ddi pdd為mdd提供介面 ddsi pdd 層驅動為 mdd 層驅動隱藏了具體的硬體實現 2.wince 單片驅動 單片驅動不僅直接為系統提供介面,也直接操作硬體。相比分層驅動它可以提更高的效率...