Windows CE 5.0:驱动程序---设备接口

转载 2007年09月14日 17:33:00

Windows CE 5.0:驱动程序---设备接口

设备接口

 

发布日期: 11/1/2004 | 更新日期: 11/1/2004

设备接口类是应用程序可用来访问设备驱动程序的功能的方法。它们向收到通知的任何一方表明特定接口存在。设备驱动程序可以具有多个设备接口类,也可以没有任何设备接口类。

IClass 注册表子项引用设备接口和它们的关联 GUID。声明接口的头 (.h) 文件通常会定义该 GUID 并且将该 GUID 与接口相关联。头文件通过定义该 GUID 将接口与该 GUID 相关联。必须通过 IClass 注册表值或者通过调用 AdvertiseInterface 来公开接口类。还可以定义自己的接口类。

对于设备接口没有任何限制。访问接口的含义取决于接口。

下面的代码示例使用一个示例 GUID 说明了头文件通常如何定义设备接口 GUID。

#define DEVCLASS_IFCNAME_STRING TEXT("{12345678-1234-1234-1122334455667788}")
#define DEVCLASS_IFCNAME_GUID { 0x12345678, 0x1234, 0x1234, { 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88 } }

设备管理器中的公开接口的驱动程序通过在传递到 ActivateDeviceEx 中的注册表项中适当地设置 IClass 值集来公布这一事实。通过 AdvertiseInterface,设备驱动程序公告它在注册表中公开哪些设备接口。该公告可由调用 RequestDeviceNotifications 的任何应用程序或驱动程序使用。应用程序或驱动程序可以通过调用 StopDeviceNotifications 停止接收设备通知。通过这些函数,可以访问设备接口的 GUID 和名称。GUID 描述了设备接口,而该名称能够唯一地标识该设备接口的多个实例。例如,一般性流接口具有一个 GUID,而名称“COM1:”和“DSK1:”引用了该一般性流接口的两个截然不同的实例。

两个不同的设备接口类 GUID 可能具有同名实例。名称仅在由设备接口类 GUID 命名的设备接口的访问方法的上下文中才有意义。

设备驱动程序只有在完整实现设备接口时才应该导出该设备接口。与驱动程序的任何交互都要求得到它公布的设备接口的全部支持。

通过调用 AdvertiseInterface,设备驱动程序可以显式发送通知。这主要适用于可移动媒体存储设备以及其他在加载时尚未准确确定它们将公开哪些接口的驱动程序。

设备驱动程序应当显式表明它们可以接受设备句柄访问请求。如果设备驱动程序公开基于设备句柄的接口,则驱动程序应当能够在该设备驱动程序的其他函数中接受等于零的 hOpenContext 值。hOpenContext 值为零表明是在设备级别请求访问,并且可能使用了不同的 OS 级别安全性。在它们的 XXX_Open (Device Manager) 函数中读取 AccessCode ShareMode 的设备驱动程序应该适当地处理设备句柄访问请求。GUID 用来表明对基于设备的访问和基于单个设备句柄的接口的支持。

有关查找由特定设备通过名称或文件句柄公开的接口的信息,请参阅 Device File Names

下表显示了在其中定义了接口的 %_WINCEROOT% 下的预定义接口和头文件。

接口 头文件

BATTERY_DRIVER_CLASS

Public/Common/OAK/Inc/Battery.h

BLOCK_DRIVER_GUID

Public/Common/SDK/Inc/Storemgr.h

CDDA_MOUNT_GUID

Public/Common/SDK/Inc/Storemgr.h

CDFS_MOUNT_GUID

Public/Common/SDK/Inc/Storemgr.h

DEVCLASS_CARDSERV_GUID

Public/Common/DDK/Inc/Cardserv.h

Public/Common/DDK/Inc/Cardsv2.h

DEVCLASS_DISPLAY_GUID

Public/Common/OAK/Inc/Winddi.h

DEVCLASS_KEYBOARD_GUID

Public/Common/SDK/Inc/Keybd.h

DEVCLASS_STREAM_GUID

Public/Common/SDK/Inc/Pnp.h

DMCLASS_PROTECTEDBUSNAMESPACE

Public/Common/DDK/Inc/Devload.h

FATFS_MOUNT_GUID

Public/Common/SDK/Inc/Storemgr.h

FSD_MOUNT_GUID

Public/Common/SDK/Inc/Storemgr.h

NLED_DRIVER_CLASS

Public/Common/SDK/Inc/NLED.h

PMCLASS_BLOCK_DEVICE

Public/Common/SDK/Inc/Pm.h

PMCLASS_DISPLAY

Public/Common/SDK/Inc/Pm.h

PMCLASS_GENERIC_DEVICE

Public/Common/SDK/Inc/Pm.h

PMCLASS_NDIS_MINIPORT

Public/Common/SDK/Inc/Pm.h

STORE_MOUNT_GUID

Public/Common/SDK/Inc/Storemgr.h

STOREMGR_DRIVER_GUID

Public/Common/SDK/Inc/Storemgr.h

UDFS_MOUNT_GUID

Public/Common/SDK/Inc/Storemgr.h

设备接口的其他预定义 GUID 包含在各种注册表文件中。要查找其他预定义 GUID,请在 %_WINCEROOT%/Public/Common/OAK/Files/Common.reg 文件或驱动程序特有的注册表文件中搜索 IClass 值。驱动程序特有的注册表文件包含在与设备驱动程序相同的目录中。有关驱动程序位于源代码中的哪些位置的信息,请参阅 Device Driver Source Code

另请参阅

Loading Device Drivers | Registry Enumerator | Device Interface Notifications

 

windows CE5.0模拟器 可在PC上运行的WINDOWS CE5.0下载(转载)

蚁言送给新手朋友.免安装绿色版,最好用的分辨率可调CE5.0模拟器  码字很劳累,转贴请注明作者ZH1H2H3或蚁言并保持帖子的完整.  先看几个吧,别的分辨率的就不上图了 看到网上朋友谈论在PC...
  • cruelchen
  • cruelchen
  • 2013年07月12日 10:50
  • 1224

WinCE 5.0 WIFI 无线网卡的配置和建立连接

在 Windows CE 下自带有无线网卡的配置和连接程序,可是我的系统剪裁掉了资源管理器和任务栏,导致自带的无线网卡配置程序不能再使用了,只好自力更生。 TAG: WiFi  无线网卡   ...
  • u011610939
  • u011610939
  • 2013年08月06日 21:17
  • 1585

自制WindowsCE上usb驱动的.cab安装包

1.前言做WindowsCE(以下简称CE)开发中会遇到一些USB的设备,此时一般需要USB设备厂家提供相关的驱动,但由于CE系统经由Windows精简以及硬件配套与PC不同,厂家提供的驱动的安装路径...
  • WQFAE01
  • WQFAE01
  • 2017年12月22日 11:56
  • 79

WinCE 5.0模拟器,在 win7 下安装后, VS2008里不显示

文章来源:http://blog.csdn.net/masterlonely/article/details/8302932 现状: Win7 32位旗舰版 VS2008 Team 在安装了...
  • libaineu2004
  • libaineu2004
  • 2015年09月23日 11:47
  • 1637

Win7 系统下配置WinCE 5.0 模拟器网络环境

最近进行WinCE平台的开发,涉及到网络连接的问题,可是我的模拟器环境却无法连接到网络,需要进行配置方可连接。     参考XP下的配置文章《wince模拟器连接activesync和wince5.0...
  • lightlater
  • lightlater
  • 2013年11月27日 12:41
  • 9360

加快编译Windows CE 6.0的驱动和BSP

在WinCE下面,创建工程,然后编译是需要花很长时间的。当我们第一编译完工程以后,如果需要改我们的驱动或者BSP,我们是不需要重新编译整个工程的: WinCE6.0的编译过程真是很漫长,编译整个OS...
  • zhangjikuan
  • zhangjikuan
  • 2014年10月23日 13:04
  • 783

Windows CE驱动程序分类

Windows CE嵌入式开发入门--基于Xscale架构 傅曦,陈黎等 人民邮电出版社   第九章  Windows CE BSP及驱动程序结构分析 9.1 Windows CE驱动程序结构...
  • chendesheng1988
  • chendesheng1988
  • 2013年07月02日 20:47
  • 651

定制自己的Windows CE 5.0 ARM中文模拟器

一、生成OS 1. 安装Windows CE 5.0(记得CPU类型里把ARMV4I选上)装完之后装DeviceEmulatorBSP.msi,这是ARMV4I模拟器的BSP。 2. 运行...
  • my98800
  • my98800
  • 2016年08月22日 08:39
  • 495

Windows CE操作系统的触摸屏驱动程序模型

欢迎加入Wince技术讨论群QQ#326444254 本文介绍了Windows CE操作系统的触摸屏驱动程序模型,详细阐述嵌入式系统中电阻式触摸屏的Windows CE驱动程序的设计和实现方法。 ...
  • u011610939
  • u011610939
  • 2013年08月12日 19:35
  • 768

Windows驱动开发之入门篇(一)

本文主要介绍“如何入门Windows驱动开发”和“新手需要掌握哪些知识和动手技能”,大部分是本人探索Windows驱动开发近一月时间的经验之谈。大致包括如下几个方面: 1,开发工具、调试工具和调试手段...
  • Sagittarius_Warrior
  • Sagittarius_Warrior
  • 2016年03月28日 20:03
  • 16385
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Windows CE 5.0:驱动程序---设备接口
举报原因:
原因补充:

(最多只允许输入30个字)