阅读:3021回复:10
练习张帆《Windows 驱动开发技术详解》22章 FileFilter中的例子系统蓝屏
我把例子中一下代码屏蔽了
// if(opCode==SCSIOP_MODE_SENSE && CurSrb->DataBuffer // && CurSrb->DataTransferLength >= // sizeof(MODE_PARAMETER_HEADER)) // { // KdPrint(("SCSIOP_MODE_SENSE comming!\n")); // // PMODE_PARAMETER_HEADER modeData = (PMODE_PARAMETER_HEADER)CurSrb->DataBuffer; // // modeData->DeviceSpecificParameter |= MODE_DSP_WRITE_PROTECT; // } 应该不会只读保护,安装驱动,然后将驱动LowerFilters到{4D36E967-E325-11CE-BFC1-08002BE10318}即磁盘设备,重启系统后蓝屏,用WinDBG调试,在DriverEntry中设置断点,蓝屏时根本就没有进入驱动代码,无法调试。 WinDBG调试信息提示: *** Fatal System Error: 0x0000007b (0xF8945524,0xC0000034,0x00000000,0x00000000) Probably caused by : ntkrpamp.exe ( nt!IopMarkBootPartition+f5 ) 蓝屏信息如下图: 图片:未标题-1.jpg |
|
沙发#
发布于:2009-08-24 08:34
回 楼主(hothua) 的帖子
请大家帮帮我分析一下,不要吝惜您宝贵时间和知识。 |
|
板凳#
发布于:2009-09-03 13:16
还没有人回答我呀,是不是问题太简单了,还是请多指教!
|
|
地板#
发布于:2009-09-08 16:58
我尝试写了一个所有请求全部传发给下层驱动的DEMO,重启系统后蓝屏出错,系统根本就没有进入我的处理程序。
驱动程序本身存于磁盘,如果要加载驱动,必须先加载磁盘驱动,而加载磁盘驱动就必须先加载下层过滤驱动,所以两者矛盾,也就是说没有下层磁盘过滤驱动,不知道我理解对不对? 但是注册表文件是存于磁盘的,系统必须访问注册表才能知道有哪些下层磁盘过滤驱动,系统是如何访问注册表的,迷惑? 请大家指教! |
|
地下室#
发布于:2009-09-09 01:50
what's the start value of your driver?
|
|
5楼#
发布于:2009-09-09 18:58
物理硬盘只有1个,分为C:、D:两个区,系统装在C:盘。
|
|
6楼#
发布于:2009-09-14 15:01
|
|
7楼#
发布于:2009-09-14 15:32
将inf文件中 StartType改为0
|
|
8楼#
发布于:2009-09-15 10:34
将inf文件中 StartType改为0
还是蓝屏 |
|
9楼#
发布于:2009-09-27 08:51
关于张帆的书有没有比较好讨论的群?
|
|
10楼#
发布于:2009-09-27 09:32
调试蓝屏产生的dump文件
|
|