正在加载图片...
此外, Driver verifier检查非法的I/O调用,包括: 尝试释放一个非 IO TYPE IRP类型的IRP 传递非法设备对象给 lo callDriver 传递一IRP给含有非法的状态或仍保留一已取消的例程集的 lo CompleteRequest 通过驱动程序调度例程的调用来改变IRQL 尝试释放保留关联的一个线程的IRP 传递一个设备对象给已经有初始化过的定时器的 lo lnitializetimer 传递 个非法的缓冲区给 lo Build Asynchronous sdRequest或 lo Build Devicelo ControlRequest 当一个IO状态块分配给一极松散的堆栈时,传递一个I/O状态块给一个IRP 当一个事件对象分配给一极松散的堆栈时,传递一个事件对象给一个IRP 由于特别IRP池有大小限制,只有当一次使用于一个驱动程序时,IO检查才最有效 1级IO检查失效将引起错误检测0xC9发布,错误检测的第一个参数表明有什么违背发生 欲得一个全部的错误检测0xC9参数的列表,参看微软的调试程序文件。 级ⅣO检查 2级O检查错误以不同的方式显示:在一个蓝屏上、在一个崩溃的转储文件里和在一个内 核调试程序里。 在一个蓝屏上,信息 IO SYSTEMⅤ ERIFICATION ERROR和信息串 WDM DRIVER ERROR XXX记下了这些错误,这里XXX是一个LO的错误代码 个崩溃的转储文件里 信息 BugCheck0xC9 ( DRIVERⅤ ERIFIER IOMANAGER VIOLATION)与IO错误代码一道,记下了这些错误 在此情况下,IO错误代码以错误检测0xC9的第一个参数出现。 个内核调试程序里(KD或 WinDbg)这些错误以信息 WDM DRIⅤ ER ERROR和一描述 的文本信息串出现,当内核调试程序运行时,忽略2级错误和恢复系统操作是可能的。(不可能出 现别的错误检测。) 在以上的每一情况下,额外信息(例如驱动程序名和各种可用的指针)也被显示,欲知2级 L/O检査错误信息的全面描述,参看微软的调试程序文件中关于错误检测0xC9的部分。 图形驱动程序 I/O检查选项不适用于图形驱动程序,如被选中,不起作用 212 Driver verifier对图形驱动程序的能力 微软的 Windows2000内核模式图形驱动程序不直接分配内存池,相反,这些驱动程序使用 GDⅠ(图形驱动程序接口)服务例程,该例程由win32ksys提供。 由于这个差异, Driver verifier对待图形驱动程序与内核模式驱动程序不同。 下面的部分描述了 Driver verifier在显示驱动程序和内核模式打印驱动程序上的作用。 2.12.1图形驱动程序的特别内存池 该动作使用一特别池来检测内存的上溢和下溢,还有在其释放后访问内存 2.1.2.2图形驱动程序的低资源模拟 该动作注入随机的分配故障和其他被拒绝的请求来检测驱动程序在一个低内存状况下的反9 此外,Driver Verifier 检查非法的 I/O 调用,包括: ◼ 尝试释放一个非 IO_TYPE_IRP 类型的 IRP ◼ 传递非法设备对象给 IoCallDriver ◼ 传递一 IRP 给含有非法的状态或仍保留一已取消的例程集的 IoCompleteRequest ◼ 通过驱动程序调度例程的调用来改变 IRQL ◼ 尝试释放保留关联的一个线程的 IRP ◼ 传递一个设备对象给已经有初始化过的定时器的 IoInitializeTimer ◼ 传 递 一 个 非 法 的 缓 冲 区 给 IoBuildAsynchronousFsdRequest 或 IoBuildDeviceIoControlRequest ◼ 当一个 I/O 状态块分配给一极松散的堆栈时,传递一个 I/O 状态块给一个 IRP ◼ 当一个事件对象分配给一极松散的堆栈时,传递一个事件对象给一个 IRP 由于特别 IRP 池有大小限制,只有当一次使用于一个驱动程序时,I/O 检查才最有效。 1 级 I/O 检查失效将引起错误检测 0xC9 发布,错误检测的第一个参数表明有什么违背发生。 欲得一个全部的错误检测 0xC9 参数的列表,参看微软的调试程序文件。 2 级 I/O 检查 2 级 I/O 检查错误以不同的方式显示:在一个蓝屏上、在一个崩溃的转储文件里和在一个内 核调试程序里。 在一个蓝屏上,信息 IO SYSTEM VERIFICATION ERROR 和信息串 WDM DRIVER ERROR XXX 记下了这些错误,这里 XXX 是一个 I/O 的错误代码。 在 一 个 崩 溃 的 转 储 文 件 里 , 信 息 BugCheck 0xC9 (DRIVER_VERIFIER_IOMANAGER_VIOLATION)与 I/O 错误代码一道,记下了这些错误。 在此情况下,I/O 错误代码以错误检测 0xC9 的第一个参数出现。 一个内核调试程序里(KD 或 WinDbg)这些错误以信息 WDM DRIVER ERROR 和一描述 的文本信息串出现,当内核调试程序运行时,忽略 2 级错误和恢复系统操作是可能的。(不可能出 现别的错误检测。) 在以上的每一情况下,额外信息(例如驱动程序名和各种可用的指针)也被显示,欲知 2 级 I/O 检查错误信息的全面描述,参看微软的调试程序文件中关于错误检测 0xC9 的部分。 图形驱动程序 I/O 检查选项不适用于图形驱动程序,如被选中,不起作用。 2.1.2 Driver Verifier 对图形驱动程序的能力 微软的 Windows2000 内核模式图形驱动程序不直接分配内存池,相反,这些驱动程序使用 GDI(图形驱动程序接口)服务例程,该例程由 win32k.sys 提供。 由于这个差异,Driver Verifier 对待图形驱动程序与内核模式驱动程序不同。 下面的部分描述了 Driver Verifier 在显示驱动程序和内核模式打印驱动程序上的作用。 ◼ 2.1.2.1 图形驱动程序的特别内存池 该动作使用一特别池来检测内存的上溢和下溢,还有在其释放后访问内存。 ◼ 2.1.2.2 图形驱动程序的低资源模拟 该动作注入随机的分配故障和其他被拒绝的请求来检测驱动程序在一个低内存状况下的反
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有