/*
首先,"文件"是什么?
我个人的理解,文件就会一堆二进制数据,这些数据表示了一堆信息,仅此而已!
在windows内核中,要打开一个文件,首先要填充一个OBJECT_ATTRIBUTES这个结构体,这个结构体貌似没用文档化。
但是它总是被InitializeObjectAttributes初始化。
接下来 打开和关闭 文件。
打开一个文件用
ZwCreateFile
参数的具体意义是什么,请自行参阅MSDN。
接下来怎么用?
HANDLE file_handle = NULL; // 返回的句柄
NTSTATUS status;
OBJECT_ATTRIBUTES object_attributes; //先声明一个attributes变量。
UNICODE_STRING fileName=RTL_CONSTANT_STRING(L"\??\C:\wangemaoxian.dat");
InitializeObjectAttributes( //初始化OBJECT_ATTRIBUTES
&object_attributes,
&fileName,
OBJ_CAES_INSENSITIVE|OBJ_KERNEL_HANDLE,
NULL,
NULL);//这样object_attributes就被初始化了
//接下来是要打开文件。
status=ZwCreateFile(
&file_handle,
GENERIC_READ|GENERIC_WRITE,
&object_attributes,
&io_status,
NULL,
FILE_ATTRIBUTE_NORMAL,
FILE_SHARE_READ,
FILE_OPEN_IF,
FILE_NON_DIRECTORY_FILE|FILE_RANDOM_ACCESS|FILE_SYNCHONOUS_IO_NONALERT,
NULL,
0);
//接下来要关闭文件
ZwClose(file_handle);
文件的读写*************
ZwReadFile和ZwWriteFile
ZwWrite自行百度。
参数类似
*/
*/