![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
windows Driver develop
文章平均质量分 94
nixun
这个作者很懒,什么都没留下…
展开
-
WDM 驱动错误处理
[返回] [上一页] [下一页] 错误处理人总会犯错误,错误恢复是软件工程的一部分。程序中总会发生异常情况,其中一些源自程序中的Bug,或者在我们的代码中或者在调用我们代码的用户模式应用程序中。另一些涉及到系统装载或硬件的瞬间状态。无论什么原因,代码必须能对不寻常的情况作出恰当的反应。在这一节中,我将描述三种错误处理形式:状态代码、结构化异常处理,和bug check。一般,内核模式支转载 2007-11-27 21:27:00 · 5888 阅读 · 0 评论 -
内存管理
[返回] [上一页] [下一页] 内存管理这一节我们讨论内存管理。Windows 2000采用多种方式分割虚拟地址空间。一种方式是基于安全性和完整性,有两种地址:用户模式地址和内核模式地址。另一种方式基于处理器的分页能力,有两种内存:分页内存和非分页内存。全部用户模式地址和某些内核模式地址使用分页内存,内存管理器可以在分页内存页帧和磁盘扇区间交换内容,而另一些内核模式地址总是引用物理内转载 2007-11-27 21:32:00 · 7114 阅读 · 4 评论 -
中断请求级
[返回] [上一页] [下一页] 中断请求级Windows NT为每个硬件中断和少数软件事件赋予了一个优先级,即中断请求级(interrupt request level - IRQL)。IRQL为单CPU上的活动提供了同步方法,它基于下面规则:一旦某CPU执行在高于PASSIVE_LEVEL的IRQL上时,该CPU上的活动仅能被拥有更高IRQL的活动抢先。图4-1显示转载 2007-11-27 21:34:00 · 3123 阅读 · 0 评论 -
自旋锁
[返回] [上一页] [下一页] 自旋锁IRQL概念仅能解决单CPU上的同步问题,在多处理器平台上,它不能保证你的代码不被运行在其它处理器上的代码所干扰。一个称为自旋锁(spin lock)的原始对象可以解决这个问题。为了获得一个自旋锁,在某CPU上运行的代码需先执行一个原子操作,该操作测试并设置(test-and-set)某个内存变量,由于它是原子操作,所以在该操作完成之前其它CPU转载 2007-11-27 21:35:00 · 2568 阅读 · 0 评论 -
IRP
[返回] [下一页]数据结构有两个数据结构对I/O请求的处理至关重要:I/O请求包(IRP)本身和IO_STACK_LOCATION结构。下面我将详细描述这两个结构。IRP结构图5-1显示了IRP的数据结构,阴影部分代表不透明域。下面是该结构中重要域的简要描述。MdlAddress(PMDL)域指向一个内存描述符表(MDL),该表描述了一个与该请求关联的用户模式缓冲区。如果转载 2007-11-27 21:37:00 · 3753 阅读 · 0 评论 -
管理PnP状态转换
<!--google_ad_client = "pub-2050647664789618";//728x90, 创建于 07-11-28google_ad_slot = "5411034739";google_ad_width = 728;google_ad_height = 90;//--><script type="text/javascript"src="http转载 2007-11-27 21:38:00 · 5755 阅读 · 1 评论