Windows驱动中的队列

本文简要介绍了Windows驱动中IRP队列的管理,包括WDM驱动模型中的IRP排队处理,如何使用IoStartPacket和IoStartNextPacket函数,以及驱动对象的DriverStartIo域。通常,队列对象存储在设备扩展中,并通过KeInitializeDeviceQueue等函数初始化。在Windows Driver Frameworks (WDF)中,使用WdfIoQueueCreate创建和配置队列,WDF_IO_QUEUE_CONFIG结构用于设置队列属性,如IRP处理函数指针。
摘要由CSDN通过智能技术生成
                  

                今天还好!可以很早下班,而且主要是不太忙了,所以以后要加紧更新了!希望今年可以对windows驱动做个很好的总结。

                今天想介绍下,跟IRP也非常相关的队列。这里只简单介绍下,后续还会修改。我们知道在WDM驱动模型中,我们的IRP,需要排队,因为一下无法处理那么多的IRP,怎么办了,那就需要队列。队列的对象一般放在我们的设备扩展中。这里一般我们还会用到两个函数IoStartPacketIoStartNextPacket,还有一个驱动对象的域DriverObject->DriverStartIo,一般来说,我们会在majorfunction的函数指针指向的函数,首先处理IRP,在后面我们调用IoStartPacket,再然后,我们直接调用XxxStartIo例程,或者直接把IRP排进队列中。一般来说,我们会在创建设备对象时,初始化队列,调用KeInitializeDeviceQueue ,KeInsertDeviceQueue or KeInsertByKeyDeviceQueue 来插入队列。我们来看MSDN中的图:

              

 

                    我们再来

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值