/*
首先,"文件"是什么?
我个人的理解,文件就会一堆二进制数据,这些数据表示了一堆信息,仅此而已!
在windows内核中,要打开一个文件,首先要填充一个OBJECT_ATTRIBUTES这个结构体,这个结构体貌似没用文档化。
但是它总是被InitializeObjectAttributes初始化。
文件操作--windows内核安全与驱动开发
接下来 打开和关闭 文件。
打开一个文件用
ZwCreateFile
文件操作--windows内核安全与驱动开发
参数的具体意义是什么,请自行参阅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
文件操作--windows内核安全与驱动开发

ZwWrite自行百度。
参数类似
*/

*/

相关文章:

  • 2021-04-29
  • 2021-10-25
  • 2021-08-27
  • 2022-02-24
  • 2021-12-31
  • 2022-02-08
  • 2021-07-29
  • 2021-12-02
猜你喜欢
  • 2021-06-11
  • 2021-10-07
  • 2021-10-17
  • 2021-07-13
  • 2022-12-23
  • 2021-08-10
  • 2021-11-22
相关资源
相似解决方案