liio
驱动小牛
驱动小牛
  • 注册日期2005-12-24
  • 最后登录2022-06-16
  • 粉丝4
  • 关注1
  • 积分24分
  • 威望343点
  • 贡献值0点
  • 好评度171点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:2028回复:0

为什么ZwQueryInformationFile取回的FILE_STANDARD_INFORMATION信息不正确?

楼主#
更多 发布于:2007-02-05 11:49
  我想区别目录和文件

当使用ZwQueryInformationFile请求一个文件的信息时。
不能正确的区别目录和文件

当访问一个目录时(有时候)
si.EndOfFile.LowPart能取得的大小
DIRECTORY的值却是False

好奇怪。请各位看看:

LONG
GetPEFileSize(
              IN    HANDLE        hFile,
              OUT    PBOOLEAN    bDir
              )
{
    NTSTATUS            status;
    IO_STATUS_BLOCK     ioStatus;

    FILE_STANDARD_INFORMATION si = {0};

    status = ZwQueryInformationFile(hFile,
            &ioStatus,
            &si,
            sizeof(FILE_STANDARD_INFORMATION),
            FileStandardInformation);

    if (NT_SUCCESS( status ))
    {
        return si.EndOfFile.LowPart;
    }
    else
    {
        DbgPrint("[*] Get file size fail:%X\n",status);
        return -1;
    }
}
游客

返回顶部