阅读:1132回复:4
内核状态的文件操作 问题
新学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; } |
|
沙发#
发布于:2005-04-30 00:28
L\"\\\\?\\\\c:\\\\pWDM.dat\" 改一下试试看! \"\\\\.\\PhysicalDrive0\\pWDM.dat\" |
|
板凳#
发布于:2005-04-30 09:57
老大,还是不行啊
哪位做过日志记录的大侠指点一下啊 |
|
地板#
发布于: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\"); |
|
|
地下室#
发布于:2005-05-03 14:13
终于成功了
谢谢了 zwCreateFile的参数不正确! |
|