Windows用户层使用指令操作内核程序执行指令! (1) 日记文件

在运行驱动程序的过程中,我们应当始终确保对日记文件进行持续的写入操作。这样做的目的是为了能够迅速且准确地定位到可能出现的错误。然而,并不建议使用诸如DbgPrint等打印函数来输出调试信息,因为这种方式存在被恶意用户获取并了解驱动程序执行流程的风险。

为了利用C语言标准库中的<stdarg.h>来进行可变参数的处理,我们需要包含对应的驱动开发CRT(C Run-Time)库。以Visual Studio为例,我们应当在项目的“c/c++”配置选项中的附加包含目录里导入特定的路径,比如“D:\Windows Kits\10\Include\10.0.26100.0\km\crt”。请根据实际情况对上述路径进行相应的修改。

接下来就是头文件的定义部分:

Logging.h

#include <ntifs.h>
#include <ntstrsafe.h>
#include <stdarg.h>
#include "data.h"
#include "file.h"

extern HANDLE LogFileHandle;
extern HANDLE ResultFileHandle;
extern char TimeBuffer[30];

NTSTATUS OpenLogFile();
NTSTATUS OpenResultFile();
void FormatCurrentTime();
NTSTATUS WriteLog(const char* data, ...);
NTSTATUS WriteResult(const char* data, ...);
NTSTATUS CleanResult();

对应包含如"data.h"和"file.h"可以先自己定义后面我们来实现,然后就是

Logging

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值