hai_john0
驱动牛犊
驱动牛犊
  • 注册日期2005-04-22
  • 最后登录2005-05-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1132回复:4

内核状态的文件操作 问题

楼主#
更多 发布于:2005-04-29 22:29
新学wdm开发,想做一下内核状态的文件操作,总是不成功,帮我看一下,代码问题出在什么地方

#include <ntddk.h>

HANDLE hFile;

VOID WDMUnload (
IN PDRIVER_OBJECT DriverObject
)
{
    ZwClose(hFile);
}

NTSTATUS vCreateFile()
{
    UNICODE_STRING              file_name;
    OBJECT_ATTRIBUTES           object_attributes;
NTSTATUS                    status;

    RtlInitUnicodeString(&file_name,L\"\\\\?\\\\c:\\\\pWDM.dat\");

    InitializeObjectAttributes(
        &object_attributes,
        &file_name,
        OBJ_CASE_INSENSITIVE,
        NULL,
        NULL
        );

    status = ZwCreateFile(
        &hFile,
        GENERIC_READ | GENERIC_WRITE,
        &object_attributes,
        0,
        NULL,
        FILE_ATTRIBUTE_NORMAL,
        0,
        FILE_OPEN,
        FILE_NON_DIRECTORY_FILE |
        FILE_RANDOM_ACCESS |
        FILE_NO_INTERMEDIATE_BUFFERING |
        FILE_SYNCHRONOUS_IO_NONALERT,
        NULL,
        0
        );

return status;
}

NTSTATUS DriverEntry (
 IN PDRIVER_OBJECT   DriverObject,
 IN PUNICODE_STRING  RegistryPath
 )
{
NTSTATUS                    status;
status = vCreateFile();

    if (!NT_SUCCESS(status))
    {
DbgPrint(\" CreateFile Failure !\\n\");
        return status;
    }

    DriverObject->DriverUnload = WDMUnload;

    return STATUS_SUCCESS;
}
KMK
KMK
驱动大牛
驱动大牛
  • 注册日期2001-09-12
  • 最后登录2017-10-06
  • 粉丝2
  • 关注0
  • 积分42分
  • 威望404点
  • 贡献值2点
  • 好评度58点
  • 原创分1分
  • 专家分1分
  • 社区居民
沙发#
发布于:2005-04-30 00:28
 
L\"\\\\?\\\\c:\\\\pWDM.dat\"

改一下试试看!
\"\\\\.\\PhysicalDrive0\\pWDM.dat\"
hai_john0
驱动牛犊
驱动牛犊
  • 注册日期2005-04-22
  • 最后登录2005-05-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-04-30 09:57
老大,还是不行啊
哪位做过日志记录的大侠指点一下啊
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-04-30 10:06
 RtlInitUnicodeString(&file_name,L\"\\\\?\\\\c:\\\\pWDM.dat\");
改为
 RtlInitUnicodeString(&file_name,L\"\\\\??\\\\c:\\\\pWDM.dat\");

RtlInitUnicodeString(&file_name,L\"\\\\DosDevice\\\\c:\\\\pWDM.dat\");
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
hai_john0
驱动牛犊
驱动牛犊
  • 注册日期2005-04-22
  • 最后登录2005-05-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-05-03 14:13
终于成功了
谢谢了
zwCreateFile的参数不正确!
游客

返回顶部