基於檔案過濾驅動的檔案重定向

2021-05-25 15:59:57 字數 983 閱讀 1360

**:

ntstatus

sfcreate (

in pdevice_object deviceobject,

in pirp irp) 

assert(is_my_device_object(deviceobject));

deviceextension = deviceobject->deviceextension; 

attacheddevice = deviceextension->attachedtodeviceobject;

rtlinitunicodestring( &sourcename, l"" );

if (fileobject && rtlcompareunicodestring( &sourcename, &fileobject->filename, true ) == 0) 

else  }

1.在未載入驅動的時候, 建立兩個空白檔案, 大小為0kb, 分別為1.txt 和 2.txt

2.載入驅動, 並開啟1.txt 進行編輯.

3.儲存檔案後, 1.txt的大小沒有變化, 而2.txt 的大小變成了1kb

4.關閉驅動後, 檢視兩個文字, 2.txt的內容是我們剛剛寫入的, 檔案重定向成功~

總結如下:

在做檔案重定向時,確實應該在irp_mj_create裡進行重定向,而且應該這樣做: 

1,先釋放原fileobject->filename;

2,重新分配乙個unicode_string,並將其buffer設定為你想開啟的檔案全路徑, 類似 "//device//harddiskvolume1" ;

3,irp->iostatus.status=status_reparse; 

irp->iostatus.informiation=io_reparse; 

iocompleterequeset(irp,io_no_incement); 

return status_reparse;

基於檔案過濾驅動的檔案重定向

ntstatus sfcreate in pdevice object deviceobject,in pirp irp assert is my device object deviceobject deviceextension deviceobject deviceextension atta...

檔案重定向(採用檔案過濾驅動實現)

原文 windows的i o管理器提供了乙個方便的方法來重定向乙個檔案物件。通常使用檔案過濾驅動 在檔案開啟和檔案建立的操作中 實現該方法。操作方法如下 1 在irp mj create的分發函式中,獲得file objet的filename屬性。2 用目標檔案的完整路徑替換原有的檔案名字。這個全名...

檔案重定向

1.重定向標準輸出 不使用系統標準輸出的預設裝置,將輸出結果直接寫在乙個新的檔案中。command file 把標準輸出重定向到file檔案中 command file 把標準輸出重定向到file檔案中 追加在現有內容的後面 command 1 file 把標準輸出重定向到file中 myfile建...