除了调试driver之外,诊断driver问题还有很重要的一种方式就是查看driver的log,当然也可以像应用层程序一样,输出log到文件中,但是输出log到文件中,会影响系统性能,因为log信息一般都是实时输出的,而且一般只希望在debug版本的时候才会输出log,release版本是不会输出的,这样可以使系统运行得更加顺畅。

可以使用

DbgPrint

来输出log信息,在我们用Visual studio 2013创建出来的工程中,已经定义了一个宏,名叫

PT_DBG_PRINT

这也是输出log用的,但是默认没有启用,需要把下面这一句

ULONG gTraceFlags = 0;

改成

ULONG gTraceFlags = 1;

这样在代码中调用PT_DBG_PRINT就可以输出log信息了。

要查看driver输出的log信息,可以使用工具DebugView来进行查看。

重新编译driver,然后拷贝到目标机器上,再次使用sc start ssmf命令启动driver,同时打开DebugView查看输出的log。如下图所示。

到此我们看到我们的第一个driver程序已经在系统中正常运行起来了,并且还看到了我们的输出信息,是不是有点小激动呢?不管你激不激动,反正我有点:)



Visual Studio 2013开发 mini-filter driver step by step (3) - 查看运行结果相关推荐

  1. Visual Studio 2013开发 mini-filter driver step by step (1) - 创建 mini filter driver 工程

    Visual Studio 2013终于集成了Driver的开发和调试功能了,这是大多数开发者期盼已久的大事了,本文以mini filter driver的开发为例. 想当初,要创建一个mini fi ...

  2. Visual Studio 2013开发 mini-filter driver step by step (2) - 编译,部署,运行

    编译driver 一个基本的mini filter项目创建好了以后,就可以编译,部署和运行了,在部署之前,我们要先确定在什么样的系统上运行,我有一台windows 2008 r2拟机,所以我的运行的目 ...

  3. Visual Studio 2013开发 mini-filter driver step by step 获取文件读写内容(6)

    由于后面的内容跟Visual Studio已经没有太大关系,故文章标题去掉Visual Studio前缀. 今天刚好在CSDN上读到一篇文章<程序员都要有八块腹肌>,所以要练好身体啊!其实 ...

  4. Visual Studio 2013开发 mini-filter driver step by step (4) - 获取文件名

    mini filter驱动一般用于杀毒,加密,数据实时备份等.无论是杀毒软件,加密软件还是备份软件等都是基于这样一个基本事实,就是监控文件内容以及文件内容的变化,怎样监控检测文件内容?就是监控文件的读 ...

  5. 使用Visual Studio 2013开发Python Django

    熟悉了C++或C#的童鞋可能对Visual Studio编辑器比较熟悉,最近在学python,就想使用VS当做IDE,经过几番调试,感觉还是不错的 1.安装Python Tools for Visua ...

  6. Visual Studio 2013开发 mini-filter driver step by step (11) driver 签名

    在windows vista以后的版本,driver必须签名才能正常运行,如果要想没有签名的driver也能正常运行在这些系统上面,需要在系统启动的时候按F8,选择  Disable Driver ...

  7. Visual Studio 2013开发 mini-filter driver step by step 应用层与内核通讯(8)

    应用层与内核通讯是通过通讯端口来进行的,下面的这个API就是内核用来创建一个内核端口的. NTSTATUS FltCreateCommunicationPort(_In_ PFLT_FILTER Fi ...

  8. Visual Studio 2013开发 mini-filter driver step by step (5) - 读写文件

    在kernel中读写文件要比在应用层麻烦一些,但是基本思路大体上还是一致的. 在内核中,也有很多相关的读写文件的API,本文只对 FltCreateFileEx FltReadFile FltWrit ...

  9. Visual Studio 2013开发 mini-filter driver step by step 获取可执行文件名称 - 实现process monitor的一个功能 (10)

    国庆就要结束了,遗憾一下:) 先看看process monitor的样子 他的功能就是监控哪些应用程序执行了什么操作,比如打开了哪些文件,读取了哪些文件等. 今天在使用一张小学英语光盘的时候,发现安装 ...

最新文章

  1. 详解OpenCV中的Lucas Kanade稀疏光流单应追踪器
  2. sql server 2008 r2 没有维护计划_坚果R2发布,骁龙865+1亿像素+90Hz,4499元起
  3. 技术转管理?这些“坑”你要绕道走
  4. mysql如何创建用户代码_MySQl创建用户和授权的方法介绍(代码示例)
  5. 《JavaScript高级程序设计(第2版)》
  6. (转)关于同步和异步的理解(ajax网络编程)
  7. [转]IE首页被http://www.9798.net/篡改解决办法
  8. 故障排查 node_Kubernetes 故障解决心得(一)
  9. MAC使用RZ SZ指令实现本地与远程服务器之间文件上传与下载
  10. 怎么彻底卸载mysql8.0_彻底卸载MySQL8.0
  11. java解析魔兽争霸3录像_Java解析魔兽争霸3录像W3G文件(五):Action和APM计算
  12. 【PWM】从stm32到pwm到OLED屏幕调光到晚上不要玩手机
  13. JS - 解决鼠标单击、双击事件冲突问题(原生js实现)
  14. python软件是什么架构_Python应用程序的最佳项目结构是什么? [关闭]
  15. Ubuntu安装sogo输入法
  16. c语言 将结构体放在flash,stm32的内部flash读写操作(含结构体的保存)
  17. 【QT】QT菜单栏、状态栏、工具栏
  18. 树状图JQuery.ztree插件的使用
  19. 使用ffmpeg转换webm格式
  20. 基于爬虫的诗人APP

热门文章

  1. php queryList函数,QueryList/QueryList.php at master · baijunyao/QueryList · GitHub
  2. python word2vector (三)
  3. elasticsearch最大节点数_Elasticsearch选举原理之Bully算法
  4. iphone屏蔽系统更新_未越狱屏蔽系统更新还是来了
  5. 111. Leetcode 300. 最长递增子序列 (动态规划-子序列问题)
  6. 26. Leetcode 206. 反转链表 (链表-反转链表)
  7. 机器学习笔记 network compression
  8. 机器学习笔记 RNN初探 LSTM
  9. 数据挖掘系列(4)使用weka做关联规则挖掘
  10. 分布式计算Hadoop系列之如何修改Eclipse插件