du_lin
驱动小牛
驱动小牛
  • 注册日期2002-01-26
  • 最后登录2005-08-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1767回复:4

读文件的问题????

楼主#
更多 发布于:2002-04-23 18:23
我在我的驱动程序中打开文件:
InitializeObjectAttributes(
        &object_attributes,
        &FileName,
        OBJ_CASE_INSENSITIVE,
        NULL,
        NULL
        );

status = ZwCreateFile(
        &file_handle,
        GENERIC_READ | GENERIC_WRITE,
        &object_attributes,
        &IoStatus,
        NULL,
        FILE_ATTRIBUTE_NORMAL,
        0,
        FILE_OPEN,
        FILE_NON_DIRECTORY_FILE |
        FILE_RANDOM_ACCESS,
        NULL,
        0
        );


if (!NT_SUCCESS(status))
    {
        return status;
    }

status=ZwReadFile(
    file_handle,
    NULL,
    NULL,
    NULL,
    &IoStatus,
    this_chain->DiskInfro,
                length,
                &start_offset,
    NULL
                    );
ZwCreateFile的返回值为0,可是我用debugprint看到file_handle的值为0x01,zwreadfile()的返回值为0xc0000008,我查了以下,表示
STATUS_INVALID_HANDLE。不只那位大侠能告诉答案,感激不仅啊!

顺便问一句:我在驱动程序中创建了个线程,用什么函数请求内存比较合理一些。

[编辑 -  4/23/02 作者: du_lin]

最新喜欢:

cyliucyliu
guardee
驱动巨牛
驱动巨牛
  • 注册日期2002-11-08
  • 最后登录2010-05-29
  • 粉丝2
  • 关注1
  • 积分2分
  • 威望34点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-04-23 19:33
你的文件名称是什么啊?
du_lin
驱动小牛
驱动小牛
  • 注册日期2002-01-26
  • 最后登录2005-08-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-04-23 20:18
文件名称是\\\\??\\\\c:\\\\disk\\\\file.txt
nvc
nvc
驱动牛犊
驱动牛犊
  • 注册日期2002-03-06
  • 最后登录2005-08-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-04-25 17:03
这个问题我也苦恼很久了.
我知道用L\"systemRoot\\\\system32\\\\..\"能操作文件
但是L\"\\\\??\\\\...\" 就不行.
返回的status = c000003a(STATUS_OBJECT_PATH_NOT_FOUND).
我想是\\\\??在wdm中要别的字符串代替.
用什么呢?
不知道.
如果老兄知道了,也告诉我一声!

Email to:VICO_N@21CN.COM :(
Do & Think
guardee
驱动巨牛
驱动巨牛
  • 注册日期2002-11-08
  • 最后登录2010-05-29
  • 粉丝2
  • 关注1
  • 积分2分
  • 威望34点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-04-25 17:17
文件名必须是UNICODE
sprintf(&ucaPathBuffer[0],\"\\\\??\\\\c:\\\\s.txt\");
RtlInitAnsiString(&anstrBuffer,&ucaPathBuffer[0]);
RtlAnsiStringToUnicodeString(&usInterFaceFileName,&anstrBuffer,TRUE);
InitializeObjectAttributes (&tObjAttributes,
&usInterFaceFileName,
OBJ_KERNEL_HANDLE|OBJ_OPENIF|OBJ_CASE_INSENSITIVE,
NULL,
NULL
);
stStatus= ZwCreateFile( &hFileNameHandle,
SYNCHRONIZE|FILE_READ_DATA,
&tObjAttributes,
&tIoStatusBlock,
0,
FILE_ATTRIBUTE_NORMAL,
FILE_SHARE_WRITE|FILE_SHARE_READ,
FILE_OPEN,
FILE_SYNCHRONOUS_IO_NONALERT,
NULL,
0
);
游客

返回顶部