hhyDriver
驱动小牛
驱动小牛
  • 注册日期2007-06-06
  • 最后登录2009-01-19
  • 粉丝0
  • 关注0
  • 积分154分
  • 威望150点
  • 贡献值0点
  • 好评度146点
  • 原创分0分
  • 专家分0分
阅读:4581回复:3

关于使用FltGetFileNameInformation的疑点

楼主#
更多 发布于:2008-01-09 16:10
使用minifilter框架进行加解密。
在presetinformation中用FltGetFileNameInformation取文件名,如果在判断重命名(FileRenameInformation)前取,则新建的vc++工程能编译,但不能运行(错误代码:0xc000007b);若在判断重命名后取文件名,则新建的vc++工程能编译运行。

哪位高人知道原因吗?
hhyDriver
驱动小牛
驱动小牛
  • 注册日期2007-06-06
  • 最后登录2009-01-19
  • 粉丝0
  • 关注0
  • 积分154分
  • 威望150点
  • 贡献值0点
  • 好评度146点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2008-01-09 16:15
先取文件名代码:
fileInformationClass = iopb->Parameters.SetFileInformation.FileInformationClass;
 status = FltGetVolumeContext( FltObjects->Filter,
                                      FltObjects->Volume,
                                      &volCtx );
if (!NT_SUCCESS(status)) {

    leave;
}
//Get source file name
status = FltGetFileNameInformation( Data,
                FLT_FILE_NAME_NORMALIZED |
                FLT_FILE_NAME_QUERY_ALWAYS_ALLOW_CACHE_LOOKUP,
                &nameInfo );
if(!NT_SUCCESS(status))
{
    leave;
}

renameInfo = (PFILE_RENAME_INFORMATION)iopb->Parameters.SetFileInformation.InfoBuffer;

if (!iopb->Parameters.SetFileInformation.ParentOfTarget) {
    leave;

} else {
    if (renameInfo->RootDirectory == NULL) {
        。。。
    } else {
    
    }
    
}
hhyDriver
驱动小牛
驱动小牛
  • 注册日期2007-06-06
  • 最后登录2009-01-19
  • 粉丝0
  • 关注0
  • 积分154分
  • 威望150点
  • 贡献值0点
  • 好评度146点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2008-01-09 16:16
后取文件名代码:
fileInformationClass = iopb->Parameters.SetFileInformation.FileInformationClass;
 status = FltGetVolumeContext( FltObjects->Filter,
                                      FltObjects->Volume,
                                      &volCtx );
if (!NT_SUCCESS(status)) {

    leave;
}


renameInfo = (PFILE_RENAME_INFORMATION)iopb->Parameters.SetFileInformation.InfoBuffer;

if (!iopb->Parameters.SetFileInformation.ParentOfTarget) {
    leave;

} else {
    if (renameInfo->RootDirectory == NULL) {
    
        //Get source file name
        status = FltGetFileNameInformation( Data,
                        FLT_FILE_NAME_NORMALIZED |
                        FLT_FILE_NAME_QUERY_ALWAYS_ALLOW_CACHE_LOOKUP,
                        &nameInfo );
        if(!NT_SUCCESS(status))
        {
            leave;
        }
        。。。
    } else {
    
    }
    
}
jl2004
驱动小牛
驱动小牛
  • 注册日期2007-04-10
  • 最后登录2011-02-22
  • 粉丝0
  • 关注0
  • 积分21分
  • 威望276点
  • 贡献值0点
  • 好评度129点
  • 原创分0分
  • 专家分0分
地板#
发布于:2008-10-20 10:12
FltGetFileNameInformation取名字有时候有点怪异
向前,向前,向前....
游客

返回顶部