文件读取问题
我在用passthru的架构做一个简单的防火墙现在把规则写在程序里可以过滤,但是我想要从一个文件中读取规则,这样要修改规则就直接修改文件内容,
但我把我写的文件操作函数一加进程序中系统就蓝屏了(我用的是xp)
我写的文件操作函数如下:
void Readruls()
{
HANDLE file_handle = NULL; //定义文件句柄
IO_STATUS_BLOCK io_status = {0}, r_status = {0};//状态
PVOID buffer = ExAllocatePool(NonPagedPool, 256);//为buffer分配内存空间
LARGE_INTEGER offset = {0};
NTSTATUS status_c, status_r;
OBJECT_ATTRIBUTES object_attributes; //初始化含有文件路径的object_attributes
UNICODE_STRING ufile_name;
RtlInitUnicodeString(&ufile_name, L"\\??\\C:\\1.txt");
InitializeObjectAttributes(
&object_attributes,
&ufile_name,
OBJ_CASE_INSENSITIVE|OBJ_KERNEL_HANDLE,
NULL,
NULL,);
status_c = ZwCreateFile( //打开该文件
&file_handle,
GENERIC_READ,
&object_attributes,
&io_status,
NULL,
FILE_ATTRIBUTE_NORMAL,
FILE_SHARE_READ,
FILE_OPEN_IF,
FILE_NON_DIRECTORY_FILE|
FILE_RANDOM_ACCESS|
FILE_SYNCHRONOUS_IO_NONALERT,
NULL,
0);
status_r = ZwReadFile( //读取文件内容
file_handle,
NULL,
NULL,
NULL,
&r_status,
buffer,
128,
&offset,
NULL);
ZwClose(file_handle); //关闭文件
Readtxt(buffer); //调用函数分析获得的规则
ExFreePool(buffer); //释放内存
}
蓝屏信息是:STOP:0x00000005(0x865B7660,0x8602ADA0,0x00000000,0xF7A1CFE8)
页:
[1]