ok100fen 发表于 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;
}

ok100fen 发表于 2010-8-8 21:31:05

好了,
终于成功了

#include <ntddk.h>


VOID Unload(IN PDRIVER_OBJECT DriverObject)
{
}

NTSTATUSDriverEntry(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;
}

Tesla.Angela 发表于 2010-8-8 21:53:31

我以前不是有个使用IoCreateFile创建文件的例子吗???

ok100fen 发表于 2010-8-8 22:53:06

我想知道的是,
用驱动函数创建的文件和普通函数创建的文件有什么区别?
为什么大家非要用驱动呢?

Tesla.Angela 发表于 2010-8-8 23:28:49

我想知道的是,
用驱动函数创建的文件和普通函数创建的文件有什么区别?
为什么大家非要用驱动呢?
ok100fen 发表于 2010-8-8 22:53 http://www.m5home.com/bbs/images/common/back.gif


没什么不同,只是觉得用驱动创建文件好玩呗。
对我们编程爱好者来说,编程不就是一种游戏嘛,对不?
页: [1]
查看完整版本: 不知道哪里错了~~