使用PnP通知.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
使用PnP通知

在一个即插即用(PnP)的环境里,驱动程序和应用程序需要对机器里的设备配置的变化作出反应。例如,一个应用程序需要知道何时感兴趣的设备已经被添加到机器上,而一个驱动程序需要知道何时一个变化发生在一个特定的设备上。 当特定的PnP事件发生时,PnP管理器提供一个机制来通知驱动程序和应用程序。。本章描述了在内核模式代码里怎样使用PnP通知。用户模式应用程序的编写者应该看平台SDK文档获得关于RegisterDeviceNotification功能和相关的功能的信息。 本章包括以下的主题: 1.1??????? PnP通知总览 1.2??????? 编写PnP通知回调例程指南 1.3??????? 使用PnP设备接口改变通知 1.4??????? 使用PnP目标设备改变通知 1.5??????? 使用PnP硬件profile改变通知 1.6??????? 使用PnP定制通知 参见《Windows2000驱动程序开发参考》的卷一获得当一个设备的电源状态变化时关于使用PoRegisterDeviceNotify来为通知注册。为了了解系统状态、时间和策略变化的通知的有关内容,请看内核模式驱动程序设计指南里有关系统定义的回调的信息。 1.1 PnP通知总览 当特定的事件发生在指定的设备上或者在整个系统上时,PnP管理器提供一个机制来通知的驱动程序和应用程序。一个驱动程序能够为下面种类的事件的通知而注册。 ????????? EventCategoryInterfaceChange 当一个驱动程序为设备接口上这个种类的事件而注册时,PnP管理器通知驱动程序下面的事件: ??????????? GUID_DEVICE_INTERFACE_ARRIVAL 表明一个特定类的设备接口已经启用。例如,一个用户给机器添加一个新的硬盘和卷管理器使一个新的卷可用(类“卷”的一个设备接口)。 ??????????? GUID_DEVICE_INTERFACE_REMOVAL 表明指定类的一个设备接口已经被禁止。 在《Windows2000驱动程序开发参考》的卷一中参看IoRegisterDeviceInterface和相关的例程获得设备接口的更多信息。 ????????? EventCategoryTargetDeviceChange 当一个驱动程序为设备上这类事件注册时,当在设备上发生下面的事件时,PnP管理器通知驱动程序: ??????????? GUID_TARGET_DEVICE_QUERY_REMOVE 表明PnP管理器准备删除设备的驱动程序。几种操作能够引起这个事件,包括一个用户请求从机器上删除指定的设备,或者一个用户发布设备的一个更新驱动程序请求。这个通知请求设备的驱动程序或者支持或者否决到来的删除操作。 ??????????? GUID_TARGET_DEVICE_REMOVE_COMPLETE 表明指定的设备已经从机器中删除,或者一个用户正在改变设备的驱动程序。 ??????????? GUID_TARGET_DEVICE_REMOVE_CANCELLED 表明指定的设备上的一个到来的删除操作已经被取消。 ??????????? GUID_Xxx(定制事件) 表明一个定制事件已经发生在一个指定的设备上。 你能够定义设备的一个定制事件。当驱动程序(或另外的相关组件)通知PnP管理器定制事件已经发生时,PnP管理器通知设备上为目标设备的改变通知而注册的任何组件。 不象设备接口的改变的注册过程,它可被认为是设备接口里一个“被动的”权利,而为目标设备的改变的注册表明设备里一个“主动的”权利。 ????????? EventCategoryHardwareProfileChange 本类包括下面的事件: ??????????? GUID_HWPROFILE_QUERY_CHANGE 表明一个用户已经请求改变机器的硬件profile。PnP管理器使用这个通知询问已注册的组件,是否它能够改变硬件profile而没有中断系统操作。已注册的组件典型地使这些查询请求成功。 ??????????? GUID_HWPROFILE_CHANGE_COMPLETE 表明一个机器的硬件profile已经改变。如果一个驱动程序维护profile专用的设置,它应该在一个硬件profile改变之后更新这些设置。 ??????????? GUID_HWPROFILE_CHANGE_CANCELLED 表明一个到来的硬件profile改变已经被取消。 为了内核模式组件,PnP通知如下工作: 1.??????? 通过调用IoRegisterPlugPlayNotification,驱动程序注册一个种类事件的通知。 一个PnP通知的回调例程保留被注册状态直到驱动

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档