#include <ntddk.h>
//写一个卸载函数
void DriverUnload(PDRIVER_OBJECT pDriver)
{
//pDriver;
KdPrint(("xie zai"));
}
//写一个入口函数
NTSTATUS DriverEntry(
IN PDRIVER_OBJECT pDriver, //代表本驱动的驱动对象
IN PUNICODE_STRING szPath //驱动的路径,在注册表中
)
{
HANDLE hFile = NULL;
IO_STATUS_BLOCK ioStatus;
NTSTATUS ntStatus;
OBJECT_ATTRIBUTES oa;
UNICODE_STRING usPath;
RtlInitUnicodeString(&usPath,L"\\??\\c:\\log.log");
InitializeObjectAttributes(&oa,&usPath,OBJ_KERNEL_HANDEL|OBJ_CASE_INSENSITIVE,NULL,NULL);
//编译提示:OBJ_KERNEL_HANDEL”: 未声明的标识符,为什么不存在?
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,NULL);
ZwWriteFile(hFile,NULL,NULL,NULL,&ioStatus,usPath.Buffer,usPath.Length,NULL,NULL);
pDriver->DriverUnload = DriverUnload;//填写卸载函数。
return STATUS_SUCCESS; //返回成功的意思
}