IT点滴

我不去想是否能够成功 既然选择了远方 便只顾风雨兼程
  博客园  :: 首页  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  驱动

摘要:[教训]异步IRP中,IoSetCompletionRoutine()要在IoCallDriver()的前面,不然底层驱动完成了读写之后,找不到完成例程,会导致出错。看似简单,不小心却可能带来大麻烦。 [经过]修改驱动,需要把原来较大的IO切成小IO发给磁盘驱动,结果改完后一读写数据就蓝屏,百思不得 阅读全文

posted @ 2019-07-11 18:03 Ady Lee 阅读(365) 评论(0) 推荐(0)

摘要:While processing an IRP_MJ_CREATE a filter may need to open the file with different attributes/rights, etc. This is often done by using a second call 阅读全文

posted @ 2019-07-11 18:01 Ady Lee 阅读(550) 评论(0) 推荐(0)

摘要:IRQL是Interrupt ReQuest Level,中断请求级别。 一个由windows虚拟出来的概念,划分在windows下中断的优先级,这里中断包括了硬中断和软中断,硬中断是由硬件产生,而软中断则是完全虚拟出来的。处理器在一个IRQL上执行线程代码。IRQL用于帮助决定线程如何被中断的。在 阅读全文

posted @ 2019-07-11 18:01 Ady Lee 阅读(909) 评论(0) 推荐(0)

摘要:当阅读过滤驱动代码自己实践时,我想法是绑定完卷设备后,把所有的IRP都原封不动向下发,只是在passthru中打印个信息,表示经过了我的驱动,想看下效果。 用Device Tree查看,已成功绑定了D盘这个分区。用Dbgview查看,也能查看到输出信息。但是,绑定的D盘中,除了txt文件外,无法打开 阅读全文

posted @ 2019-07-11 18:00 Ady Lee 阅读(631) 评论(0) 推荐(0)

摘要:用poolmon来查找内存泄露poolmon C:\WinDDK\7600.16385.1\tools\Other\i386\poolmon.exegflags C:\WinDDK\7600.16385.1\Debuggers\gflags.exe[步骤]:1).修改注册表HKEY_LOCAL_MA 阅读全文

posted @ 2019-07-11 17:58 Ady Lee 阅读(4616) 评论(0) 推荐(0)

摘要:标 题: 【分享】缓存管理器作 者: yaolibing时 间: 2009-07-31,21:48:35链 接: http://bbs.pediy.com/showthread.php?t=94762简言之,就是会预先读入文件和延迟写入文件。当ReadFile时,会调用NtReadFile()系统调 阅读全文

posted @ 2019-07-11 17:57 Ady Lee 阅读(603) 评论(0) 推荐(0)

摘要:转自:http://www.cnblogs.com/Sonic2007/archive/2008/07/08/1238167.html 任何时候系统内存资源相对磁盘空间来说都是相形见拙的。因为虚拟内存机制,使我们可以有相对丰富的地址资源(通常32bit的虚拟地址,可以有4G的寻址空间),而这些资源对 阅读全文

posted @ 2019-07-11 17:56 Ady Lee 阅读(377) 评论(0) 推荐(0)

摘要:CCB ContextControlBlock 是存Private信息的,这个FO的特殊信息 FCB FileControlBlock 是存全局信息的 FO FileObject 代表一个文件打开实例 之间关系: FO 与 CCB 是1:1的 即一个FO有一个CCB根着 FCB 与 CCB 是1:n 阅读全文

posted @ 2019-07-11 17:55 Ady Lee 阅读(615) 评论(0) 推荐(0)

摘要:WDM驱动改可手动加卸载的NT驱动 测试工具:osrloader 把一个WDM类型的驱动改成可动态加载/卸载,需要做以下2个修改: 1. 把SOURCES文件夹中的DRIVERTYPE=WDM去掉 2.去掉AddDevice()例程 阅读全文

posted @ 2019-07-11 17:54 Ady Lee 阅读(251) 评论(0) 推荐(0)

摘要:Windows 文件过滤驱动经验总结作者:sinister本文转载自驱动开发网看了 ChuKuangRen 的第二版《文件过滤驱动开发教程》后,颇有感触。我想,交流都是建立在平等的基础上,在抱怨氛围和环境不好的同时应该先想一想自己究竟付出了多少?只知索取不愿付出的人也就不用抱怨了,要怪也只能怪自己。 阅读全文

posted @ 2019-07-11 17:52 Ady Lee 阅读(2261) 评论(0) 推荐(0)

摘要:概述 API在某个头文件中定义,被封装在某个DLL中,而这个DLL会进一步被封装在ntdll.dll中(它里面的API叫native api),比如,ReadFile在ntdll.dll中就对应着ntReadFile;然后这个API会通过sysenter的方式进入内核层。 那么,比如对于Create 阅读全文

posted @ 2018-11-09 14:27 Ady Lee 阅读(256) 评论(0) 推荐(0)

摘要:LoadDriver 首先通过OpenSCManager打开服务会话管理器,然后利用CreateService创建驱动所对应的服务,这个函数很重要,它涉及到了驱动的安装。它会在注册表的对应位置创建一个服务名。它相当于InstDrv中的安装按钮: 服务会创建在注册表位置:HKEY_LOCAL_MACH 阅读全文

posted @ 2018-11-09 14:26 Ady Lee 阅读(426) 评论(0) 推荐(0)

摘要: 阅读全文

posted @ 2018-11-09 14:12 Ady Lee 阅读(123) 评论(0) 推荐(0)

摘要:驱动程序和客户应用程序经常需要进行数据交换,但我们知道驱动程序和客户应用程序可能不在同一个地址空间,因此操作系统必须解决两者之间的数据交换。驱动层和应用层通信,主要是靠DeviceIoControl函数,下面是该函数的原型:BOOL DeviceIoControl ( HANDLE hDevice, 阅读全文

posted @ 2018-08-09 23:31 Ady Lee 阅读(1877) 评论(0) 推荐(0)

摘要:交换方式 输入缓冲区 输出缓冲区 METHOD_BUFFERED KIrp::IoctlBuffer KIrp::IoctlBuffer METHOD_IN_DIRECT KIrp::IoctlBuffer KIrp::Mdl METHOD_OUT_DIRECT KIrp::IoctlBuffer 阅读全文

posted @ 2018-07-12 16:16 Ady Lee 阅读(919) 评论(0) 推荐(0)

摘要:驱动程序通信的函数,除了ReadFile和WriteFile函数还有DeviceIoControl函数,而且DeviceIoControl函数那是相当的彪悍。因为它可以自定义控制码,你只要在IRP_MJ_DEVICE_CONTROL对应的派遣函数中读取控制码,然后针对控制码,你就可以实现自定义的功能 阅读全文

posted @ 2018-07-12 16:08 Ady Lee 阅读(1261) 评论(0) 推荐(1)

摘要:一、前言 大量的系统安全问题是由于薄弱的缓冲处理以及由此产生的缓冲区溢出造成的,而薄弱的缓冲区处理常常与字符串操作相关。c/c++语言运行库提供的标准字符串操作函数(strcpy, strcat, sprintf等)不能阻止在超出字符串尾端的写入。 基于Windows XP SP1以及随后的操作系统 阅读全文

posted @ 2018-05-24 17:41 Ady Lee 阅读(850) 评论(0) 推荐(0)

摘要:今日遇见一个开超市的朋友,真没想到在高校开超市一个月可以达到月净利润50K,相比起我们程序员的工资,真是不可同日而语,这个世道啊,真是做程序员不如经商开超市, 我们高科技的从业者,真是造原子弹不如卖茶叶蛋。请见代码详细注释// 修复涉及后视列表的Win2K兼容性 // Fixes Win2K com... 阅读全文

posted @ 2016-01-08 14:29 Ady Lee 阅读(1685) 评论(0) 推荐(0)

摘要:上一篇说到内核里面用户态这边差不多的函数, 比如ZwCreateFile, ZwReadFile什么之类的, 内核里面其实还有些更加暴力的东西存在的, 比如说用户态这边打开设备只有一个句柄, 但是内核里面是可以直接触摸到指针的, 用户态那边只可以调用几个固定的函数来发送Irp. 那么内核里面可以自定... 阅读全文

posted @ 2014-05-07 17:42 Ady Lee 阅读(525) 评论(0) 推荐(0)

摘要:除了在Win32下面可以调用ReadFile, WriteFile之类的函数打开设备对象, 在内核中也是可以的, 而且方法比用户态这边更多. 首先这种方法就是Win32上面相同的方式了, 直接打开设备. 内核也有一套函数类似Win32下面的CreateFile, WriteFile, ReadFil... 阅读全文

posted @ 2014-05-07 17:40 Ady Lee 阅读(652) 评论(0) 推荐(0)