Driver
文章平均质量分 58
ALCAT
苦心人天不负
展开
-
Windbg符号路径问题
最近因开发需要,开始使用Windbg,有点心得记录于此。首先,一开始运行的时候就是会遇到这个问题*** ERROR: Module load completed but symbols could not be loaded for ~~~查资料显示是符号路径设置有问题。符号路径一般有两个(或更多),一个是设置保存系统符号文件的路径,另一个是你的驱动的pdb文件原创 2011-10-25 11:50:22 · 2925 阅读 · 0 评论 -
如何安装 Fltmgr.sys 驱动程序
用Minifilter开发的驱动程序都依赖于驱动程序 Fltmgr.sys,也就是我们所说的File System Filter Manager。从系统的安装镜像中提取Filter Manager所需要的文件,分为3步:1. 文件包含4个:fltmgr.inf, fltmc.exe, fltmgr.sys, fltlib.dll2. 这些文件都在安装文件的i386目录下,对应为:flt原创 2012-06-12 14:35:04 · 13966 阅读 · 0 评论 -
Windbg内核调试: Windows Server 2008
本文介绍利用Windbg和VMware调试驱动程序的配置过程,关于VMware设置的部分网上有很多教程,就不再阐述。这里给一个参考的文章:http://blog.csdn.net/goodwinds/article/details/2487819一般的教程都以XP为例进行说明,但是Windows Server 2008该如何配置呢,有篇文章是这样介绍的:http://www.cnblo原创 2012-05-10 16:32:55 · 2840 阅读 · 0 评论 -
驱动返回值代码查询
返回值代码说明以及含义都在头文件中了。粘贴到这里,以便查阅。/*++ BUILD Version: 0005 // Increment this if a change has global effectsCopyright (c) Microsoft Corporation. All rights reserved.Module Name: ntstatus.h原创 2012-04-11 15:27:16 · 8254 阅读 · 0 评论 -
#pragma pack 使用说明
原文地址: http://hi.baidu.com/zhanghuikl/blog/item/124ea7998108a9006e068c19.html声明:整理自网络达人们的帖子,部分参照MSDN。作用:指定结构体、联合以及类成员的packing alignment;语法:#pragma pack( [show] | [push | pop] [, identi转载 2012-04-09 17:35:26 · 873 阅读 · 0 评论 -
DbgPrint/KdPrint输出格式控制
在驱动编程学习中,往往需要通过DbgPrint或者KdPrint来输出调试信息,对于Check版本,KdPrint只是DbgPrint的一个宏定义,而对于Free版本,KdPrint将被优化掉。这些输出信息可以通过DebugView对内核的监控来看到。KdPrint is identical to the DbgPrint routine in code that is compiled in转载 2012-01-31 14:06:49 · 1261 阅读 · 0 评论 -
使用ShellExecute函数来安装INF文件
写驱动过程中有时候需要自动安装驱动程序,那么可以使用ShellExecute函数来完成这个工作: 首先查下看看你的HKEY_CLASSES_ROOT\inffile\shell\Install\command的值是什么,比如我的机子上是%SystemRoot%\System32\rundll32.exe setupapi,InstallHinfSection DefaultInst转载 2011-12-23 15:37:38 · 3174 阅读 · 0 评论 -
设置驱动程序开机启动
开发驱动程序时,每次都用INF文件安装再加载实在是很麻烦,就写个程序来实现。但是在实现驱动程序开机启动时却遇到了问题。函数原型如下:CreateService FunctionCreates a service object and adds it to the specified service control manager database.SC_原创 2011-12-21 11:01:36 · 11137 阅读 · 1 评论 -
使用Nt或者Zw版本的本地服务例程
原文地址:Using Nt and Zw Versions of the Native System Services RoutinesWindows本地的操作系统服务API,是运行在内核模式的一系列例程。这些例程的名字都带有前缀Nt或者Zw。内核模式的驱动能直接调用这些例程,而用户模式的程序需要使用系统调用才能间接的调用它们。不同的是,每个本地系统服务例程都有两种不同的版本,原创 2011-11-11 09:39:20 · 906 阅读 · 0 评论 -
驱动开发中使用安全字符串函数
一、前言 大量的系统安全问题是由于薄弱的缓冲处理以及由此产生的缓冲区溢出造成的,而薄弱的缓冲区处理常常与字符串操作相关。c/c++语言运行库提供的标准字符串操作函数(strcpy, strcat, sprintf等)不能阻止在超出字符串尾端的写入。 基于Windows XP SP1以及随后的操作系统的Windows DDK版本提供了安全字符串函数(safe stri转载 2011-11-08 17:04:01 · 1462 阅读 · 0 评论 -
VS2008下编译错误(error C2065: '_S1max' : undeclared identifier)的解决办法
最近用VS2008+WDK调试程序,但是即使我新建的一个工程也调试不成功,想当的纠结,查了N久终于找到一篇靠谱的,然后才调试通过,先把原文贴上:After deep investigation, i solved my problem. The problem is after Windows Driver Kit (WDK) 7.1.0 installation , i ha原创 2011-11-08 13:53:59 · 5213 阅读 · 0 评论 -
Minifilter中 Filter Initiated I/O(过滤器自产生I/O)
下面的话摘自《Filter Driver Developer Guide》:Certain minifilters need to perform I/O of theirown. This I/O is only seen byminifilters below the current minifilter in the minifilter stack of theVolume.原创 2011-11-25 11:51:47 · 3176 阅读 · 0 评论 -
Minifilter中Swapping buffers(交换缓冲)
下面的话摘自《Filter Driver Developer Guide》:Certain minifilters need to swap the suppliedbuffer for certain operations. Consider a minifilter that implements customencryption. On a non-cached IRP_MJ_REA原创 2011-11-25 10:46:41 · 2758 阅读 · 0 评论 -
驱动中的IRP
文章作者:grayfox作者主页:http://nokyo.blogbus.com原始出处:http://nokyo.blogbus.com/logs/34005738.html 此前我们可能曾经多次听说过IRP这个名词,那么它究竟是什么呢? IRP的全名是I/O Request Package,即输入输出请求包,它是Windows内核中的一种非常重要的数据转载 2011-11-22 15:05:11 · 5987 阅读 · 0 评论 -
关于Fast I/O和IRP
这篇文章只是对Fast I/O和IRP做个简单的区分,不同点做简单的说明而已。NT 下 Fast I/O 是一套 IO MANAGER 与 DEVICE DRIVER 沟通的另外一套 API。在进行基于 IRP 为基础的接口调用前, IO MANAGER 会尝试使用Fast I/O接口来加速各种 IO操作.首先,Fast I/O是独立于普通的处理 IRP的分发函数之外的原创 2011-10-28 16:07:31 · 1959 阅读 · 0 评论 -
Windows内核驱动中操作文件
一. 在驱动中使用文件在Windows执行体中,通过文件对象来代表文件,该文件对象是一种由对象管理器管理的执行体对象。例如:目录也是由文件对象代表的。内核组件通过对象名来引用文件,即在文件的全路径前面加\DosDevices。(在Windows 2000及后续操作系统中,\??等同于\DosDevices)。例如,文件C:\WINDOWS\example.txt的对象名为\DosDevic转载 2011-11-08 17:10:13 · 5839 阅读 · 1 评论 -
WDM驱动程序入门示例
驱动程序开发实在是一件很头疼的事情,入手几天还是没什么感觉。找到一段代码,麻雀虽小五脏俱全,看了之后能对整个完整的框架有个基本的了解,很有参考价值。发这里一起分享。//头文件#ifdef __cplusplusextern "C"{#endif#include #ifdef __cplusplus}#endiftypedef st原创 2011-10-26 16:48:08 · 954 阅读 · 0 评论 -
有关驱动内存分配的说明
转载自:http://hi.baidu.com/zhanghuikl/blog/item/845478096f6878c53bc763ae.html 程序设计涉及的一个重大的方面是分配存储单元。不幸的是,驱动程序不能简单的调用malloc和 free,或者new和delete。要确定分配正确类型的存储器,使用完毕后必须释放分配的存储器,因为内核模式代码没有自动清除机制。驱动程序可用的转载 2012-06-21 15:16:13 · 1740 阅读 · 0 评论