正在加载图片...
图形驱动程序的不可用选项 当在检查一个图形驱动程序时, Driver verifier经常执行的自动检查(IRQL和内存例程的检 查,检査定时器释放的内存池,检査驱动程序卸载)并不执行。 强迫IRL检测、内存池跟踪和1/O检査选项不被用于图形驱动程序,如被选择,没有作用。 注意: Driver Verifier能被设置检查win32kss自身。然而,这对同时检查的所有图形驱动程 序都有影响。为获得更多关于图形驱动程序的具体信息, Driver verifier应该仅当驱动程序在调查 状态下才被检查 2121图形驱动程序的特别内存池 内存讹误是一个常见的驱动程序问题,驱动程序错误能导致在它们建立起来很长时间后崩溃 这些错误当中最常见的要数访问已释放的内存,并分配n字节然后是n+1字节。 当特别内存池功能应用到图形驱动程序时, EngAlloc men例程分配的内存将被移出特别内存 池, Driver verifier将监视该池以发现不正确的使用 两种特别内存池定位是可行的, Verify End定位能更好的发现访问上溢, Verify Start定位能 更好的发现访问下溢。(注意:最主要的内存讹误是由于上溢,而非下溢。) 当特别内存池运行且选择Ⅴ /erify End时,驱动程序所请求的每一内存分配被放到分别的各分 页上,在每页上允许分配的最高可能地址被返回,以便内存分配到页末。每页前面的部分以特别 形式写出。前页与下一页被标记为不可访问。 如果驱动程序在分配之后尝试访问内存, Driver verifier将立即发现并发布错误检测0xCD。 如果驱动程序先于缓冲区开始写入内存,这很有可能改变形式。当缓冲区被释放时, Driver verifier 将发现并报告错误检测0xCl。 如果驱动程序在释放缓冲区之后读或写, Driver verifier将报告错误检测xCC 当 Verify Start被选择,内存缓冲区被定位到页的开端,在这种设置下,下溢引起立即的错误 检测,而上溢当内存释放时才引起内存检测。这种选项在其他方面与 Verify End选项相同 Verify End是缺省定位,是由于驱动程序上溢错误比下溢错误要普遍的多。为改变这种设置,请 使用全局标记应用程序 池标记 Driver verifier将给已选择检查的驱动程序分配特别内存池,使用特别内存池的另一个方法是 分配它给一个具有特别标记的内存池。 可利用全局标记应用程序致力于将特别池给具有给定标记的池。 同时通过 Driver verifier和全局标记应用程序来请求特别池是允许的,如果这么做, Windows2000将尝试为所有具有指定标记的池和所有指定的驱动程序的池分配请求使用特别池。 特别池效率 特别池的每一个分配使用不可分页内存的一页和有虚拟地址空间的两页。如果池耗尽,内存 以标准方法分配,直到特别池再次变得可用为止。这样,如果特别内存池在用,多驱动程序同时 被检查则不受推荐 有大量小内存请求的一个单一驱动程序也会耗尽此池,出现此情况,给驱动程序内存指定池 标记和致力于一次给特别池一个池标记将是更可取的 特别池的大小随系统里的物理内存的大小增长而增长,理想的池大小至少1GB。在x86机器10 应。 图形驱动程序的不可用选项 当在检查一个图形驱动程序时,Driver Verifier 经常执行的自动检查(IRQL 和内存例程的检 查,检查定时器释放的内存池,检查驱动程序卸载)并不执行。 强迫 IRQL 检测、内存池跟踪和 I/O 检查选项不被用于图形驱动程序,如被选择,没有作用。 注意:Driver Verifier 能被设置检查 win32k.sys 自身。然而,这对同时检查的所有图形驱动程 序都有影响。为获得更多关于图形驱动程序的具体信息,Driver Verifier 应该仅当驱动程序在调查 状态下才被检查。 2.1.2.1 图形驱动程序的特别内存池 内存讹误是一个常见的驱动程序问题,驱动程序错误能导致在它们建立起来很长时间后崩溃。 这些错误当中最常见的要数访问已释放的内存,并分配 n 字节然后是 n+1 字节。 当特别内存池功能应用到图形驱动程序时,EngAllocMem 例程分配的内存将被移出特别内存 池,Driver Verifier 将监视该池以发现不正确的使用。 两种特别内存池定位是可行的,Verify End 定位能更好的发现访问上溢,Verify Start 定位能 更好的发现访问下溢。(注意:最主要的内存讹误是由于上溢,而非下溢。) 当特别内存池运行且选择 Verify End 时,驱动程序所请求的每一内存分配被放到分别的各分 页上,在每页上允许分配的最高可能地址被返回,以便内存分配到页末。每页前面的部分以特别 形式写出。前页与下一页被标记为不可访问。 如果驱动程序在分配之后尝试访问内存,Driver Verifier 将立即发现并发布错误检测 0xCD。 如果驱动程序先于缓冲区开始写入内存,这很有可能改变形式。当缓冲区被释放时,Driver Verifier 将发现并报告错误检测 0xC1。 如果驱动程序在释放缓冲区之后读或写,Driver Verifier 将报告错误检测 0xCC。 当 Verify Start 被选择,内存缓冲区被定位到页的开端,在这种设置下,下溢引起立即的错误 检测,而上溢当内存释放时才引起内存检测。这种选项在其他方面与 Verify End 选项相同。 Verify End 是缺省定位,是由于驱动程序上溢错误比下溢错误要普遍的多。为改变这种设置,请 使用全局标记应用程序。 池标记 Driver Verifier 将给已选择检查的驱动程序分配特别内存池,使用特别内存池的另一个方法是 分配它给一个具有特别标记的内存池。 可利用全局标记应用程序致力于将特别池给具有给定标记的池。 同时通过 Driver Verifier 和全局标记应用程序来请求特别池是允许的,如果这么做, Windows2000 将尝试为所有具有指定标记的池和所有指定的驱动程序的池分配请求使用特别池。 特别池效率 特别池的每一个分配使用不可分页内存的一页和有虚拟地址空间的两页。如果池耗尽,内存 以标准方法分配,直到特别池再次变得可用为止。这样,如果特别内存池在用,多驱动程序同时 被检查则不受推荐。 有大量小内存请求的一个单一驱动程序也会耗尽此池,出现此情况,给驱动程序内存指定池 标记和致力于一次给特别池一个池标记将是更可取的。 特别池的大小随系统里的物理内存的大小增长而增长,理想的池大小至少 1GB。在 x86 机器
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有