**:
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建...