驱动(文件系统)
Scott_Zheng
系统分析师、信息系统项目管理师,20年+开发经验,多年管理经验,C/C++ on windows/linux, SaaS。
展开
-
关于Windows中断的一点疑惑
最近在看微软的IRQL_thread,其中有关中断的几个地方不能太确定,先寒一个A thread’s scheduling priority and the processor’s current IRQL determine whether a running thread can be pre-empted or interrupted. In thread pre-emption, th原创 2006-12-17 12:35:00 · 1098 阅读 · 0 评论 -
说说前两天干的搓事!
代码未编译进来导致调试器找不到相应的符号。原创 2010-12-30 11:32:00 · 503 阅读 · 0 评论 -
内核态可以修改常量?
今天发现一个很奇怪的现象,一个指针指向某常量,在用户态如果对该指针指向的内容进行修改程序肯定会崩溃的,但是在内核态程序却可以正常执行。经过测试,我发现在内核态当中如果修改了该指针所指向内存的内容,系统似乎会自动为其分配一块内存,后续的操作会在这块新分配的内存中生效,而原来那块常量所在的内存并不会被修改。原创 2010-12-24 15:33:00 · 654 阅读 · 0 评论 -
inf文件初探
摘要:本文讨论了仅支持右键安装Windows WDM驱动的inf文件的格式,介绍了相关规则、执行顺序和必需Section。关键词:WDM,INF一、简介INF是Device INFormation File的英文缩写,是Microsoft公司为硬件设备制造商发布其驱动程序推出的一种文件格式,INF文件中包含硬件设备的信息或脚本以控制硬件操作。通过inf文件可以指示安装程序完成:1、文件的复制、删除和重命名操作;2、添加或删除注册表项;3、更新系统设置文件(如:Autoexec.bat、Config.sys、原创 2010-12-09 14:57:00 · 1302 阅读 · 0 评论 -
为串口过滤驱动加上显示串口收发内容的应用程序
最近顺带着进一步完善前面的串口过滤驱动,将过滤的内容能够在应用中显示以方便使用。我的方案是应用程序通过DeviceIoControl发送取过滤内容的请求,在驱动IRP_MJ_DEVICE_CONTROL的派遣函数中通过StartIo例程取列表中的数据;而列表中的数据则由驱动的IRP_MJ_READ的完成例程以及IRP_MJ_WRITE的派遣函数放入,从而达到将数据送到应用程序的目的。在修改过程原创 2010-01-31 15:20:00 · 1142 阅读 · 0 评论 -
ANSI_STRING和UNICODE_STRING的成员变量Length很重要
这几天灾在将前面写的那个简单串口过滤驱动进行小小的改动,原来程序只能在加载时挂接一个固定的串口,这就导致过滤驱动不能在实际当中使用。因此,决定将要挂接的串口的驱动名称通过应用程序调用DeviceIoControl传进来,但发现IoAttachDevice和IoAttachDeviceToDeviceStack始终返回STATUS_OBJECT_NAME_NOT_FOUND,为了这个折腾了好几天才解原创 2010-01-19 21:18:00 · 919 阅读 · 0 评论 -
一个简单的串口过滤驱动及一点体会
最近写一个简单的串口过滤驱动,代码如下:driver.h #ifdef __cplusplusextern "C"{#endif#include #ifdef __cplusplus}#endif#define PAGEDCODE code_seg("PAGE")#define LOCKEDCODE code_seg()#define INITCODE code_seg("原创 2010-01-13 21:57:00 · 2049 阅读 · 0 评论 -
sfilter的DriverEntry例程中创建的控制设备对象之作用
看了在filemon的DriverEntry例程中创建的设备对象类型是filemon自定义的,而sfilter的DriverEntry例程中创建的设备对象类型是FILE_DEVICE_DISK_FILE_SYSTEM。我把sfilter的DriverEntry例程中创建的设备对象改为自定义类型,编译后sfilter仍可以正常运行。然后我就进一步试验,我把sfilter的DriverEntry例程中原创 2007-02-05 19:58:00 · 1603 阅读 · 1 评论 -
DRIVER_OBJECT和DEVICE_OBJECT的关系
从开始接触驱动以来,一直对DRIVER_OBJECT和DEVICE_OBJECT之间的关系很是困惑,经过一段时间的学习,大概了解了两者之间的关系。DRIVER_OBJECT是驱动程序在内核中的数据结构,每个驱动程序有唯一DRIVER_OBJECT,IO管理器使用驱动程序对象代表每个设备驱动程序,驱动程序描述了驱动程序的载入到内存什么地方,驱动程序的大小和它的主要入口点(MajorFunction数原创 2007-01-14 00:02:00 · 2109 阅读 · 0 评论 -
ddk无法编译utf-8编码方式的源文件
ddk无法编译utf-8编码方式的源文件原创 2011-01-10 10:27:00 · 573 阅读 · 0 评论