从内核窗口创建文件

标签 c kernel

这就是我创建文件的方法(在 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/

相关文章:

linux - 从串口读取

c - 杀死父进程的所有子进程但让父进程保持事件状态

linux - iwlist() 命令如何扫描无线网络?

x86 - 多重引导 1 引导信息总大小

c - 为什么在 C 程序中在 #include 指令的 fileName 之后写入任何内容不会给出任何错误?

具有完整历史记录的 Linux 内核 "historical"git 存储库

linux - Linux 内核空间中的 pread 等效(与 O_DIRECT)

c - 尝试返回 char 指针时出现奇怪的输出

c - 具有有符号和无符号整数的表达式

C - 将 char * 数组索引转换为字符串,并进行比较