这就是我创建文件的方法(在 C:\example.txt 中):
RtlInitUnicodeString(&uniName, L"\\DosDevices\\C:\\example.txt"); //L"\\SystemRoot\\drvhinf.txt"); // or L"\\SystemRoot\\example.txt" \\DosDevices\\C:\\WINDOWS\\example.txt
InitializeObjectAttributes(&objAttr, &uniName,
OBJ_CASE_INSENSITIVE | OBJ_KERNEL_HANDLE,
NULL, NULL);
//////////////////////////////////
///////////////////////////////////
//Load the buffer (ie. contents of text file to the console)
ntstatus = ZwCreateFile(&handle,
GENERIC_WRITE, //GENERIC_READ
&objAttr, &ioStatusBlock,
NULL,
FILE_ATTRIBUTE_NORMAL,
0,
FILE_OPEN,
FILE_SYNCHRONOUS_IO_NONALERT,
NULL, 0);
但是启动驱动程序后,我在 C 盘上找不到 example.txt。我使用的是 Windows 7,我不知道是否应该使用其他文件路径。 ZwCreateFile 也成功了。 我做错了什么?
最佳答案
找到解决方案:将 FILE_OPEN 替换为 FILE_SUPERSEDE
关于从内核窗口创建文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50061927/