Windows驱动_UMDF驱动之二UMDF电源管理和PNP操作

              终于可以回家了,有一段时间没有回家了,挺想念家人的。好好的放松心情,好好的利用这段时间自己来休整一下。再出发。很多事情都可以再想一想。博客终于100了,呵呵。


              Framework Objects 


              UMDF中一般会使用到如下的框架对象。


        Driver Object               IWDFDriver             驱动对象
        Device Object              IWDFDeivce             设备对象
        File   Object                IWDFFile               文件对象
        Interrupt Object           IWDFInterrupt          中断对象
        Queue  Object             IWDFIoQueue            队列对象
        Request Object            IWDFIoRequest          请求对象
        Target Ojbect              IWDFIoTarget           目标对象
        USB device object        IWDFUsbTargetDevice    USB设备对象
        USB pipe object           IWDFUsbTargetPipe      USB设备管道
        USB interface object     IWDFUsbInterface       USB设备接口
        Base object                 IWDFObject             代表通用的基本对象
        Memory Object            IWDFMemory             内存对象   


             在UMDF驱动对设备进行初始化之前,驱动管理器和反射器被操作系统装载,驱动主持进程被创建。为了保证设备启动成功,驱动管理器被装载并被完全初始化跟反射器初始化一起。


             当设备被安装,PNP子系统装载反射器,如果装载还为完成,反射器联系驱动管理器创建驱动主持进程。在新创建的驱动主持进程内框架调用IDriverEntry::OnInitialize历程初始化UMDF驱动。


              框架为每一个被驱动主持进程装载的设备创建一个设备对象。


              Adding a Device Overview


              


              Adding a Device


             框架会为每一个驱动主持进程中的设备增加一个设备对象,框架调用驱动IDriverEntry::OnDeviceAdd例程,并传递IWDFDrvier和IWDFDevcieInitialize接口做为其参数。驱动必须在调用IWDFDriver::CreateDevice之前使用IWDFDeviceInitialize接口,下面是IWDFDeviceInitialize接口暴露的方法。


             驱动调用IWDFDeviceInitialize::RetrieveDevicePropertyStore 得到IWDFNamedPropertyStore,得到或者设置设备相关的属性。


            驱动调用IWDFDeviceInitialize::SetLockingConstraint方法指定框架如何调用其的回调函数。


            驱动可以调用 IWDFDeviceInitialize::SetFilter 使能其设备为过滤设备。

 
           当驱动初始化IWDFDeviceInitialize,对设备相关属性进行初始化后,可以调用IWDFDriver::CreateDevice创建UMDF的设备对象,当设备对象创建以后,驱动可以调用IWDFDevice::CreateIoQueue方法创建读写的IO队列。
       
           PnP and Power Management Interfaces


           当驱动创建框架设备对象,它可以注册一些PNP和电源的回调函数,当这些事件发生的时候,系统会调用这些回掉函数。


            IPnpCallback


            IPnpCallbackSelfManagedIo


            IPnpCallbackHardware


            IPowerPolicyCallbackWa

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值