找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 5286|回复: 4

不知道哪里错了~~

  [复制链接]

90

主题

473

回帖

2

精华

钻石会员

积分
3261
发表于 2010-8-8 17:10:08 | 显示全部楼层 |阅读模式
本帖最后由 ok100fen 于 2010-8-8 21:37 编辑

我想用驱动在c盘建立一个ok100fen.txt文件
并且里面写上ok100fen.txt
但是没成功
没找到原因
高手帮忙啊

代码:

#include <ntddk.h>

VOID Unload(IN PDRIVER_OBJECT DriverObject)
{
}
NTSTATUS DriverEntry( IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath)
{
  HANDLE hFile=NULL;
  IO_STATUS_BLOCK ioStatus;
  NTSTATUS ntStatus;

  OBJECT_ATTRIBUTES oa;
  UNICODE_STRING usPath;
  RtlInitUnicodeString(&usPath,L"\\??\\c:\\ok100fen.txt");
  InitializeObjectAttributes(&oa,&usPath,OBJ_KERNEL_HANDLE|OBJ_CASE_INSENSITIVE,NULL,NULL);

   
  ntStatus=ZwCreateFile(
  &hFile,
  GENERIC_READ|GENERIC_WRITE,
  &oa,
  &ioStatus,
  NULL,
  FILE_ATTRIBUTE_NORMAL,
  FILE_SHARE_READ,
  FILE_OPEN_IF,
  FILE_NON_DIRECTORY_FILE|FILE_RANDOM_ACCESS|FILE_SYNCHRONOUS_IO_NONALERT,
  NULL,
  0);

ntStatus=ZwWriteFile(
      
   hFile,
   NULL,
   NULL,
   NULL,
   &ioStatus,
   usPath.Buffer,
   usPath.Length,
   NULL,
   NULL
   );
ZwClose(hFile);










DriverObject->DriverUnload = Unload;
return STATUS_SUCCESS;
}

90

主题

473

回帖

2

精华

钻石会员

积分
3261
 楼主| 发表于 2010-8-8 21:31:05 | 显示全部楼层
好了,
终于成功了

#include <ntddk.h>


VOID Unload(IN PDRIVER_OBJECT DriverObject)
{
}

NTSTATUS  DriverEntry(IN PDRIVER_OBJECT DriverObject,IN PUNICODE_STRING RegistryPath)
{
        HANDLE hFile=NULL;
        IO_STATUS_BLOCK        ioStatus;
        NTSTATUS        ntStatus;




        OBJECT_ATTRIBUTES oa;
        UNICODE_STRING usPath;
        RtlInitUnicodeString(&usPath,L"\\??\\c:\\ok100fen.txt");
        InitializeObjectAttributes(&oa,&usPath,OBJ_KERNEL_HANDLE|OBJ_CASE_INSENSITIVE,NULL,NULL);
       
       
        ntStatus=ZwCreateFile(
                &hFile,
                GENERIC_READ|GENERIC_WRITE,
                &oa,
                &ioStatus,
                NULL,
                FILE_ATTRIBUTE_NORMAL,
                FILE_SHARE_READ,
                FILE_OPEN_IF,
                FILE_NON_DIRECTORY_FILE|FILE_RANDOM_ACCESS|FILE_SYNCHRONOUS_IO_NONALERT,
                NULL,
                0);
       

  ntStatus=ZwWriteFile(
             hFile,
                 NULL,
                 NULL,
                 NULL,
                 &ioStatus,
                 usPath.Buffer,
                 usPath.Length,
                 NULL,
                 NULL);
       
       
        ZwClose(hFile);
       
        DriverObject->DriverUnload = Unload;

        return STATUS_SUCCESS;
}

857

主题

2632

回帖

2

精华

管理员

此生无悔入华夏,  长居日耳曼尼亚。  

积分
36130
发表于 2010-8-8 21:53:31 | 显示全部楼层
我以前不是有个使用IoCreateFile创建文件的例子吗???

90

主题

473

回帖

2

精华

钻石会员

积分
3261
 楼主| 发表于 2010-8-8 22:53:06 | 显示全部楼层
我想知道的是,
用驱动函数创建的文件和普通函数创建的文件有什么区别?
为什么大家非要用驱动呢?

857

主题

2632

回帖

2

精华

管理员

此生无悔入华夏,  长居日耳曼尼亚。  

积分
36130
发表于 2010-8-8 23:28:49 | 显示全部楼层
我想知道的是,
用驱动函数创建的文件和普通函数创建的文件有什么区别?
为什么大家非要用驱动呢?
ok100fen 发表于 2010-8-8 22:53



没什么不同,只是觉得用驱动创建文件好玩呗。
对我们编程爱好者来说,编程不就是一种游戏嘛,对不?
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表