WindowsCE50总线驱动程序架构.pptVIP

  1. 1、本文档共36页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

**WindowsCE5.0总线驱动程序架构刘斌北京数智动力科技有限公司概述什么是总线驱动程序?为什么需要?能做什么?架构新的总线驱动程序命名空间注册表资源分配IOCTLsApplicationChild辅助函数什么是总线驱动程序?加载/卸载驱动程序物理总线上的硬件在总线驱动程序没有直接管理的物理总线上加载驱动程序管理物理总线调用ActivateDeviceEx()加载设备驱动程序为从属驱动程序提供服务为何需要总线驱动程序?旧版本的限制?驱动程序和加载它们的实体间没有任何关联根据句柄不能得到流的名称程序不知道谁加载的它们现在能够做到的!总线驱动程序加载/卸载从属驱动程序并重新列举他们的总线.从属驱动程序可以与总线驱动程序通讯请求服务(比如.电源管理)应用程序可以列举设备,总线,和他们支持的接口总线驱动程序提供的保护!恢复时,总线驱动程序可以防止访问已经移除的设备:InstallableISRBusagnosticdriver’spowercallback恢复时,从属驱动程序可以调用总线驱动程序查看硬件是否依然存在.IOCTL_BUS_IS_CHILD_REMOVED新的总线命名空间以前加载多个实例,如大于15个端口的COM任何应用程序可以发送电源管理IOCTL,这将造成驱动程序的电源状态混乱?现在命名空间可以创建无限制的实例命名空间可以根据总线调用和非总线调用提供保护DriverHierarchyBusEnum\Com1:BuiltIn_1BCR1:BuiltIn_2DSK1:BuiltIn_4PCIBusBuiltIn_3Display(GWES)PCI_0_0_0WAV1:PCI_0_1_0UFN1:PCI_0_2_0DSK2:PCI_0_3_0TI1250PCI_0_4_0DSK4:TI1250_0_0NDS1:TI1250_1_0GPS1:ApploadedDSK3:USBFN_0_0AppscallLoad/unload可以借鉴的Quality例程可以参考CE5.0中的以下ProductionQualityDrivers(PQD):PCCardPCIBusUSBFnSDBusBusEnum(replacesRegEnum)(newinMobile5.0)RootBusdriver新的总线命名空间总线驱动程序通过注册表通知设备管理器驱动之间的从属关系总线驱动程序经由ActivateDeviceEx()提供“BusName”,“BusParent”驱动程序在设备标示中提供(可选)“BusPrefix”DeviceManager通过新的API形成层次结构总线驱动程序使用总线名称为从属驱动程序提供服务新旧名称DM支持使用不同的命名空间调用CreateFile()旧的命名空间(e.g.,“COM1:”)

以前CE中的使用方法“$bus”命名空间(e.g.,“$bus\PCIBUS_0_1_0”)用于系统访问;driversupportrequiredtocreatehandleswiththesenames$bus也可以用于总线驱动程序提供的服务启用$bus命名空间在驱动程序的IClass注册表项中公布DMCLASS_PROTECTEDBUSNAMESPACEGUID使用CreateFile(“$busname”)来打开Open()设置dwAccess参数中的DEVACCESS_BUSNAMESPACE位Open是系统访问驱动程序根据该位打开了哪些句柄来决定接受/拒绝其它操作$bus名称可用来与驱动程序的父总线驱动程序进行通讯,以获得诸如加载、卸载和电源管理之类的服务。检查总线访问标志DWORDPCI_Open(DWORDdwContext,DWORDdwAccessMode,DWORDdwShareMode){OPEN_CONTEXT*pContext=(OPEN_CONTEXT*)LocalAlloc(LPTR,sizeof(OPEN_CONTEXT));if(pContext==NULL)return0;if(dwAccessModeDEVACCESS_BUSNAMESPACE){//ThisisabusaccesspCo

文档评论(0)

实验室仪器管理 + 关注
实名认证
服务提供商

本人在医药行业摸爬滚打10年,做过实验室QC,仪器公司售后技术支持工程师,擅长解答实验室仪器问题,现为一家制药企业仪器管理。

1亿VIP精品文档

相关文档