驅動中對檔案進行二進位製流讀取

2021-09-26 19:32:44 字數 1279 閱讀 8608

驅動中一般用zwcreatefile函式做檔案處理、讀取,但是需要對檔案進行二進位製流讀取時,這個函式就不夠用了,而在fltkernel.h標頭檔案中,可以使用fltcreatefile函式進行控制代碼建立,後續再使用zwreadfile即可進行二進位製流讀取,部分**:

ntstatus status = status_success;

file_standard_information fsi = ;

ulong length = 0;

int lettercount = 0;

handle f_handle = null;

object_attributes object_attribs;

io_status_block io_status;

large_integer offset;

initializeobjectattributes(&object_attribs,

&nameinfo->name,

obj_kernel_handle | obj_case_insensitive,

null,

null

);///核心一部分檔案md5校驗時會檢測出在執行,無法讀取,需要在控制代碼建立下處理

過濾除開啟外的所有檔案操作

status = fltcreatefile(fltobjects->filter,

fltobjects->instance,

&f_handle,

generic_read | generic_execute,

&object_attribs,

&io_status,

null,

file_attribute_normal,

file_share_read|file_share_write|file_share_delete|file_share_valid_flags,

file_open_if,

file_non_directory_file | file_synchronous_io_alert,

null,

0,io_force_access_check

);if (nt_success(status))

status = zwreadfile(f_handle,

null,

null,

null,

&io_status,

tempbuf,

md5_size,

&offset,

null

);

php讀取二進位制 php讀取二進位製流

將php資料轉換為二進位制資料 string pack string format mixed args mixed 將二進位制資料轉換為php資料 array unpack string format,string data format a nul padded string a nul 字串填...

c c讀取二進位制檔案

因專案需要讀取二進位制檔案,一開始用c 讀取,c 下用的是ifstream類,完整 如下 ifstream in b3dmpath.c str ios in ios binary in.seekg 0,ios end size t filesize in.tellg in.seekg ios beg...

Matlab讀取二進位制檔案

ps bin檔案是二進位制檔案,是檔案格式binary的縮寫。一 檔案的開啟與關閉 1 開啟檔案 在讀寫檔案之前,必須先用fopen函式開啟或建立檔案,並指定對該檔案進行的操作方式。fopen函式的呼叫格式為 fid fopen 檔名,開啟方式 說明 1 fid 用於儲存檔案控制代碼值,如果返回的控...