elysium
驱动牛犊
驱动牛犊
  • 注册日期2011-03-31
  • 最后登录2011-06-04
  • 粉丝0
  • 关注0
  • 积分-114分
  • 威望61点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2487回复:2

ZwCreateFile的返回值

楼主#
更多 发布于:2011-05-08 16:33
我在测试《寒江独钓》中的DP例子的时候,总是报错error create temp file!

对这个例子做了一点小改动:
1.tempfile的路径该在C盘下。
2.目标盘改为R盘。

使用windbg调试,发现DPReinitializationRoutine函数中,使用ZwCreateFile创建文件时,返回值是0x-1073741819。但是不知道这代表什么意思。

本人才疏学浅,实在没办法找到解释,求高人指点。

VOID
DPReinitializationRoutine(
    IN    PDRIVER_OBJECT    DriverObject,
    IN    PVOID            Context,
    IN    ULONG            Count
    )
{
    //返回值
    NTSTATUS ntStatus;
    //D盘的缓冲文件名
    WCHAR                SparseFilename[] = L"\\??\\C:\\temp.dat";
    UNICODE_STRING        SparseFilenameUni;
    //建立文件时的io操作状态值
    IO_STATUS_BLOCK                    ios = { 0 };
    //建立文件时的对象属性变量
    OBJECT_ATTRIBUTES                ObjAttr = { 0 };
    //设置文件大小的时候使用的文件结尾描述符
    FILE_END_OF_FILE_INFORMATION    FileEndInfo = { 0 };

    //打开我们将要用来做转储的文件
    //初始化要打开的文件名
    RtlInitUnicodeString(&SparseFilenameUni,SparseFilename);
    //初始化文件名对应的对象名,这里需要将其初始化为内核对象,并且大小写不敏感
    InitializeObjectAttributes(
        &ObjAttr,
        &SparseFilenameUni,
        OBJ_KERNEL_HANDLE|OBJ_CASE_INSENSITIVE,
        NULL,
        NULL);
    //建立文件,这里需要注意的是,要加入FILE_NO_INTERMEDIATE_BUFFERING选项,避免文件系统再缓存这个文件
    ntStatus = ZwCreateFile(
        &gProtectDevExt->TempFile,
        GENERIC_READ | GENERIC_WRITE,
        &ObjAttr,
        &ios,
        NULL,
        FILE_ATTRIBUTE_NORMAL,
        0,
        FILE_OVERWRITE_IF,
        FILE_NON_DIRECTORY_FILE |
        FILE_RANDOM_ACCESS |
        FILE_SYNCHRONOUS_IO_NONALERT |
        FILE_NO_INTERMEDIATE_BUFFERING,
        NULL,
        0);
              //这里观察返回值是0x-1073741819
    if(!NT_SUCCESS(ntStatus))
                {
                }
znsoft
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2023-10-25
  • 粉丝300
  • 关注6
  • 积分910分
  • 威望14796点
  • 贡献值7点
  • 好评度2410点
  • 原创分5分
  • 专家分100分
  • 社区居民
  • 最爱沙发
  • 社区明星
沙发#
发布于:2011-05-12 12:59
查一ntstatus.h 文件,里面有,把值转成16进制,从c打头开始就行,前面的ffff可以忽略.
http://www.zndev.com 免费源码交换网 ----------------------------- 软件创造价值,驱动提供力量! 淡泊以明志,宁静以致远。 ---------------------------------- 勤用搜索,多查资料,先搜再问。
maomingxu13
驱动牛犊
驱动牛犊
  • 注册日期2007-09-05
  • 最后登录2014-08-01
  • 粉丝0
  • 关注0
  • 积分89分
  • 威望79点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2011-05-17 21:15
返回值为STATUS_ACCESS_VIOLATION    ,是非法访问
游客

返回顶部