sc_wolf
驱动小牛
驱动小牛
  • 注册日期2006-09-03
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分35分
  • 威望278点
  • 贡献值1点
  • 好评度150点
  • 原创分0分
  • 专家分0分
阅读:902回复:2

在文件系统加载前读取系统目录文件

楼主#
更多 发布于:2007-07-16 21:09
我在磁盘过滤驱动(应该先于文件系统加载吧。。DISKPERF默认启动为0)中,我用以下代码打开系统目录中的文件。总是返回路径错误。。。。。。

是不是一定要在文件系统加载后才可以打开。请问有没有别的办法。。。


RtlInitEmptyUnicodeString(&ufile_name,buf,125);
    
    RtlInitUnicodeString(&ufile_name,L"\\SystemRoot\\SYSTEM32\\temp.dat");
    InitializeObjectAttributes(
        &object_attributes,
        &ufile_name,
        OBJ_CASE_INSENSITIVE| OBJ_KERNEL_HANDLE,
        NULL,
        NULL
        );
    
    status = ZwCreateFile(
        &file_handle,
        GENERIC_WRITE|GENERIC_READ,
        &object_attributes,
        &IoStatus,
        NULL,
        FILE_ATTRIBUTE_NORMAL,
        0,
        FILE_OPEN,
           FILE_NON_DIRECTORY_FILE |
           FILE_RANDOM_ACCESS |
          FILE_NO_INTERMEDIATE_BUFFERING|  FILE_SYNCHRONOUS_IO_NONALERT,
        NULL,
        0
        );

    if (!NT_SUCCESS(status))
    {
         DbgPrint("打开文件失败!%08X\r\n",status);
        
        return FALSE;
    }
    else
    {
DbgPrint("打开文件成功!%08X\r\n",status);
    }

每次都是失败。。麻烦大家帮我看一下。是我代码错误了。还是我说的原因。。。。有没有解决办法。。
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
沙发#
发布于:2007-07-19 17:26
参考NTLDR的实现,自己定位文件偏移处理。
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
sc_wolf
驱动小牛
驱动小牛
  • 注册日期2006-09-03
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分35分
  • 威望278点
  • 贡献值1点
  • 好评度150点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-07-19 09:29
那个帮我一下
游客

返回顶部