010513
驱动牛犊
驱动牛犊
  • 注册日期2010-11-26
  • 最后登录2011-05-13
  • 粉丝1
  • 关注2
  • 积分36分
  • 威望231点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1742回复:1

替换已存在文件

楼主#
更多 发布于:2011-02-09 13:46
本人想用XXX.TMA文件重命名后替换已存在的XXX.DOC文件,但不知为何怎样也不能成功替换,错误代码为:STATUS_ACCESS_DENIED

部分代码如下:
    InitializeObjectAttributes(
                            &ObjectAttributes,
                            &path_tma, //XXX.TMA文件
                            OBJ_CASE_INSENSITIVE,
                            NULL,
                            NULL
                            );
     ntstatus=ZwCreateFile(
                     &htma,
                     SYNCHRONIZE | DELETE,
                     &ObjectAttributes,
                     &IoStatus,
                     NULL,
                     0,
                     FILE_SHARE_READ,
                     FILE_OPEN,
                     FILE_SYNCHRONOUS_IO_NONALERT | FILE_NO_INTERMEDIATE_BUFFERING,
                     NULL,
                     0);
    if(!NT_SUCCESS(ntstatus))
    {
        KdPrint(("SystemCloseThread:打开源文件失败,错误代码NTSTATUS:%x",ntstatus));
        goto THREAD_LAST;
    }
    else
    {
        //将TMA文件重命名为DOC文件
                  //path为DOC文件路径
        RtlZeroMemory(frnameinf,frnameinf_len);
        frnameinf->ReplaceIfExists=TRUE;
        frnameinf->RootDirectory=NULL;
        frnameinf->FileNameLength=path->Length;
        RtlCopyMemory(frnameinf->FileName,(WCHAR*)path->Buffer,path->Length);
        KdBreakPoint();

         ntstatus = ZwSetInformationFile(
                                htma,
                                &IoStatus,
                                frnameinf,
                                frnameinf_len,
                                FileRenameInformation
                                );
        if(!NT_SUCCESS(ntstatus))
        {
            KdPrint(("SystemCloseThread:替换DOC文件失败,错误代码NTSTATUS:%x",ntstatus));
        }
    }

wxj120bw
驱动小牛
驱动小牛
  • 注册日期2008-06-14
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分109分
  • 威望1014点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2011-02-11 14:38
STATUS_ACCESS_DENIED 是在那发生的 这个错误时权限不够
游客

返回顶部