UCM通过使用WDF类扩展客户端驱动程序模型进行设计。类扩展(UcmCx)是一个Microsoft提供的WDF驱动程序,它提供了客户端驱动程序可以调用的接口以报告有关连接器的信息。UCM客户端驱动程序使用连接器的硬件接口,并保持类扩展注意发生在控制器上的事件。相反,类扩展调用客户端驱动程序实现的回调函数来响应操作系统事件。宝宝拼音乐园app下载-宝宝拼音乐园10.60.00.00 安卓手机版
若要启用系统上的USBType-C连接器,则必须编写客户端驱动程序。

开始之前...
安装 适用于你的开发计算机的最新Windows驱动程序工具包(WDK)。该工具包带有编写UCM客户端驱动程序所需的头文件和库,具体来说,你将需要:
你可以编写可在用户模式或内核模式下运行的UCM客户端驱动程序。对于用户模式,它绑定了UMDF2.x库;对于内核模式,它为KMDF1.15。对于任意一种模式,编程接口都相同。

存根库,(UcmCxstub.lib)。该库将转换由客户端驱动程进行的调用,并将它们传递给UcmCx。
头文件,UcmCx.h。
确定你的客户端驱动程序是否支持USBType-C连接器和 USB功率输出的高级功能。
如果支持,你可以使用USBType-C连接器、USBType-C扩展坞和附件以及USBType-C充电器生成Windows设备。客户端驱动程序将报告允许操作系统实现关于系统中USB和电源消耗的策略的连接器事件。
在你的目标计算机上安装Windows10桌面版(家庭版、专业版、企业版和教育版),或使用USBType-C连接器安装Windows10移动版。
熟悉UCM以及它与其他Windows驱动程序交互的方式。请参阅体系结构:适用于Windows系统的USBType-C设计。
熟悉Windows驱动程序基础(WDF)。推荐阅读:使用Windows驱动程序基础开发驱动程序,由PennyOrwick和GuySmith编写。
UCM类扩展提供的服务摘要
UCM类扩展保持操作系统随时了解数据和电源角色、充电级别和已协商的PD合约发生的更改。在客户端驱动程序与硬件交互时,它必须通知类扩展这些更改发生的时间。类扩展提供了一组客户端驱动程序可用来发送通知(本主题中已讨论)的方法。下面是提供的服务:
数据角色配置
在USBType-C系统上,数据角色(主机或函数)取决于连接器的CC引脚的状态。你的客户端驱动程序将从你的端口控制器读取CC行(请参阅基础结构:Windows系统的USBType-C设计)状态,以确定该端口已解析为上行端口(UFP)还是下行端口(DFP)。它会将该信息报告给类扩展,以便它可以将当前角色报告给USB角色切换驱动程序。
注意 USB角色切换驱动程序在Windows10移动版系统上使用。在Windows10桌面版系统上,类扩展和角色切换驱动程序之间的通信是可选的。此类系统可能不使用双角色控制器,在此情况下,不使用角色切换驱动程序。
电源角色和充电
你的客户端驱动程序将读取USBType-C电流播发,或与合作伙伴连接器协商PD电源合约。
在Windows10移动版系统上,选择相应充电器的决策由软件辅助。客户端驱动程序会将合约信息报告给类扩展,以便它可以将充电级别发送至充电仲裁驱动程序(CAD.sys)。CAD选择要使用的电流强度,并将充电级别信息转发到电池子系统。
在Windows10桌面版系统上,由硬件选择相应的充电器。客户端驱动程序可以选择获取该信息,并将其转发到类扩展。或者,该逻辑可以由不同的驱动程序实现。
数据和电源角色更改
在协商PD合约后,数据角色和电源角色可能会发生更改。这一更改可能由你的客户端驱动程序或合作伙伴连接器引发。客户端驱动程序会将该信息报告给类扩展,以便它可以相应地重新配置一些内容。
数据和/或电源角色更新
操作系统可能会确定当前数据角色不正确。在此种情况下,类扩展将调用你的驱动程序的回调函数,以执行必要的角色交换操作。
客户端驱动程序的预期行为
你的客户端驱动程序负责执行以下任务:
检测CC行上的变化,并确定合作伙伴的类型(如UFP、DFP等)。为此,驱动程序必须实现完整的Type-C状态机,如USBType-C规范中所定义。
根据在CC行上检测到的方向,配置你的Mux。这包括打开你的PD发射器/接收器,并处理和响应PD消息。为此,驱动程序必须实现完整的PD接收器和发射器状态机(如USB功率输出2.0规范中定义)。
做出PD策略决策,如协商合约(作为源或接收器)、角色交换等。客户端驱动程序负责确定最合适的合约。
播发和协商备用模式,并在检测到备用模式时配置Mux。客户端驱动程序负责确定要协商的备用模式。
对连接器的VBus/VConn控制。
1.初始化UCM连接器对象(UCMCONNECTOR)
UCM连接器对象(UCMCONNECTOR)表示USBType-C连接器,并且是UCM类扩展和客户端驱动程序之间的主要句柄。该对象跟踪连接器的操作模式和电源功能。
下面是客户端驱动程序检索连接器的UCMCONNECTOR句柄的序列摘要。调用 WdfDeviceCreate 后,在你的驱动程序的 EvtDriverDeviceAdd 回调函数中执行这些任务来创建框架设备对象。
通过向 UCM_MANAGER_CONFIG 结构传递引用来调用 UcmInitializeDevice。
在 UCM_MANAGER_CONFIG 结构中,指定 UCM_CONNECTOR_TYPEC_CONFIG 结构中USBType-C连接器的初始化参数。这包括连接器的操作模式,无论它是下行端口、上行端口,还是支持双重角色的端口。当连接器是电源时,它还将指定USBType-C电流强度。可以对USBType-C连接器进行设计,以便它可以充当3.5毫米音频插孔。如果硬件支持该功能,则必须相应地初始化连接器对象。
在结构中,还必须注册客户端驱动程序的回调函数,以便处理数据角色。
此回调函数与由UCM类扩展调用的连接器对象相关联。此函数必须由客户端驱动程序实现。
EVT_UCM_CONNECTOR_SET_DATA_ROLE
当连接到合作伙伴连接器时,将连接器的数据角色交换为指定的角色。
如果你的客户端驱动程序想要支持PD(即能够处理连接器的功率输出2.0硬件实现),还必须初始化 UCM_CONNECTOR_PD_CONFIG 结构,该结构可指定PD初始化参数。这包括电源流,不管连接器是电源接收器还是电源。
在结构中,还必须注册客户端驱动程序的回调函数,以便处理电源角色。
此回调函数与由UCM类扩展调用的连接器对象相关联。此函数必须由客户端驱动程序实现。
EVT_UCM_CONNECTOR_SET_POWER_ROLE
当连接到合作伙伴连接器时,将连接器的电源角色设置为指定的角色。
调用 UcmConnectorCreate 并检索连接器的UCMCONNECTOR句柄。请确保在返回你的客户端驱动程序的 EvtDevicePrepareHardware 之前调用此方法。


2.报告合作伙伴连接器附加事件
当检测到与合作伙伴连接器连接时,客户端驱动程序必须调用 UcmConnectorTypeCAttach 。此调用将通知UCM类扩展,从而进一步通知操作系统。此时,系统可以开始以USBType-C级别充电。

UCM类扩展也会通知USB角色切换驱动程序(URS)。根据合作伙伴的类型,URS配置主机角色或函数角色中的控制器。调用此方法之前,请确保你的系统上的Mux已正确配置。否则,如果系统处于函数角色中,它将以不正确的速度(高速而不是SuperSpeed)连接。
3.报告USBType-C播发更改
在初始附加事件中,合作伙伴连接器会发送电流播发。如果合作伙伴是USBType-C下行端口,播发将指定合作伙伴连接器的电流强度。否则,由UCMCONNECTOR句柄(本地连接器)表示的播发将指定本地连接器的电流强度。此初始播发可能会在连接的生存期内发生更改。这些更改必须由客户端驱动程序监视。
如果本地连接器是电源接收器,并且电流播发发生更改,则客户端驱动程序必须检测电流播发中的更改并将其报告给类扩展。在Windows10移动版系统上,该信息由CAD.sys和电池子系统用于调整它从源抽取的电流量。若要将电流强度中的更改报告给类扩展,客户端驱动程序必须调用UcmConnectorTypeCCurrentAdChanged。
4.报告新协商的PD合约
如果你的连接器支持PD,那么在初始附加事件后,将有PD消息在连接器及其合作伙伴连接器之间进行传输。在这两个合作伙伴之间,PD合约的协商将确定连接器可以吸收的或允许合作伙伴吸收的电流强度。每次PD合约发生更改时,客户端驱动程序都必须调用这些方法,以便将更改报告给类扩展。
每当客户端驱动程序获取来自合作伙伴的源功能播发(主动提供或其他方式)时,它都必须调用这些方法。本地连接器(接收器)仅在合作伙伴是源时从合伙伙伴处获取主动提供的播发。此外,本地连接器可以从能够成为源的合作伙伴(即使该合作伙伴当前是接收器)显式请求源功能。通过向该合作伙伴发送Get_Source_Caps 消息来完成此交换。
调用 UcmConnectorPdPartnerSourceCaps 以报告由合作伙伴连接器播发的源功能。
调用 UcmConnectorPdConnectionStateChanged 以报告合约的详细信息。在“请求数据对象”中对该合约进行了描述,如功率输出2.0规范中所定义。
相反,每次本地连接器(源)向合作伙伴播发源功能时,客户端驱动程序都必须调用这些方法。此外,当本地连接器收到来自合作伙伴的 Get_Source_Caps 消息时,他必须使用本地连接器的源功能响应。
调用 UcmConnectorPdSourceCaps 以报告由系统播发到合作伙伴连接器的源功能。
调用 UcmConnectorPdConnectionStateChanged 以报告当前已协商的PD合约的连接功能。
5.报告电池充当状态
如果充电级别不恰当,客户端驱动程序可能会通知UCM类扩展。类扩展会将此信息报告给操作系统。系统会使用此信息显示一条用户通知,即充电器未以最佳状态给系统充电。可通过以下方法来报告充电状态:
这些方法可指定充电状态。如果报告的级别为 UcmChargingStateSlowCharging 或 UcmChargingStateTrickleCharging(请参阅UCM_CHARGING_STATE),操作系统将显示用户通知。
6.报告PR_Swap/DR_Swap事件
如果连接器从合作伙伴接收电源角色(PR_Swap)或数据角色(DR_Swap)交换消息,则客户端驱动程序必须通知UCM类扩展。
UcmConnectorDataDirectionChanged
在处理PDDR_Swap消息后,调用此方法。完成此调用后,操作系统会将新角色报告给URS,这将删除现有角色驱动程序,并为新角色加载驱动程序。
UcmConnectorPowerDirectionChanged
在处理PDPR_Swap消息后,调用此方法。在PR_Swap之后,需要重新协商PD合约。客户端驱动程序必须通过调用步骤4 中所述的方法报告该PD合约协商。
7.实现回调函数来处理电源和数据角色交换请求
UCM类扩展可能会收到更改连接器的数据或电源方向的请求。在此情况下,它将调用客户端驱动程序的 EVT_UCM_CONNECTOR_SET_DATA_ROLE 和EVT_UCM_CONNECTOR_SET_POWER_ROLE 回调函数的实现(如果连接器实现PD)。客户端驱动程序之前在调用 UcmConnectorCreate 时已注册过这些函数。
客户端驱动程序通过使用硬件接口执行角色交换操作。
EVT_UCM_CONNECTOR_SET_DATA_ROLE
在回调实现中,客户端驱动程序可以:
将PDDR_Swap消息发送到端口合作伙伴。
调用 UcmConnectorDataDirectionChanged 来通知类扩展该消息序列已成功或未成功完成。

EVT_UCM_CONNECTOR_SET_POWER_ROLE
在回调实现中,客户端驱动程序可以:
调用UcmConnectorPowerDirectionChanged 来通知类扩展该消息序列已成功或未成功完成。

注意
客户端驱动程序可以异步(即不是从回调线程)调用 UcmConnectorDataDirectionChanged 和 UcmConnectorPowerDirectionChanged。在典型的实现中,类扩展调用回调函数,该回调函数导致客户端驱动程序启动硬件事务来发送消息。当该事务完成时,硬件将通知驱动程序。驱动程序将调用这些方法来通知类扩展。
8.报告合作伙伴连接器分离事件
客户端驱动程序必须在结束连接合作伙伴连接器时调用 UcmConnectorTypeCDetach 。此调用将通知UCM类扩展,从而进一步通知操作系统。
使用案例示例:已连接到电脑的移动设备
当运行Windows10移动版的设备通过USBType-C连接连接到运行Windows10桌面版的电脑时,操作系统将确保该移动设备是上行端口(UFP),因为只有在此方向下MTP才能正常运行。在此情况下,以下是数据角色更正的序列:
运行于移动设备上的客户端驱动程序通过调用 UcmConnectorTypeCAttach 来报告一个附加事件,并且将合作伙伴连接器报告为下行端口(UFP)。
客户端驱动程序通过调用 UcmConnectorPdPartnerSourceCaps 和 UcmConnectorPdConnectionStateChanged 来报告PD合约。
UCM类扩展将通知USB设备端驱动程序,从而使这些驱动程序响应来自主机的枚举。操作系统信息通过USB进行交换。
UCM类扩展UcmCx将调用客户端驱动程序的回调函数来更改角色:EVT_UCM_CONNECTOR_SET_DATA_ROLE 和EVT_UCM_CONNECTOR_SET_POWER_ROLE。
注意 如果两台Windows10移动版设备互相连接,将不执行角色交换,并且系统将通知用户该连接无效。

USB3.1是一个行业标准,该标准由英特尔等大公司发起。USB3.1最大的特点就是数据传输极为迅速,理论上速度可以达到10Gbps。而USB Type-C则是一种连接器的规范,由Type-C插头和Type-C插座组成。
在最新的USB 3.1标准中,有三种接口样式,一个是Type-A(即Standard-A,传统计算机上最常见的USB接口样式),一个是Type-B(既Micro-B,目前主流Android智能手机使用的接口样式),另外一个就是Type-C(即上面提到的全新设计的接口样式)。

那么我们应该就能很容易理解了。虽然USBType-C是基于USB3.1进行设计的,但这并不意味着使用这种连接方式的设备就一定都是支持USB 3.1标准的;而与我们所想的正相反的是,对于较为老旧的USB3.0Type-A接口的设备来说,却是能够兼容USB3.1标准的。
手机的充电接口将统一使用USBType-C的,它的尺寸小,又纤薄,传输速度,不用分方向正反都可以插,借电能力也强,扩展性也不错,东坡这里附上USBType-C驱动程序下载,下面还附上了制作教程,有兴趣的可以试一试。
展开内容
SoundSpot Oracle Reverb WiN OSX音频工具1.0 绿色版
油品惠app下载-油品惠app1.6 安卓版
智信药品进销存管理软件-智信药品管理软件2.92 绿色版
海思通用进销存工具-海思通用进销存软件v7.61.131203 试用版
Procreate Pocket安卓手机版下载-Procreate Pocket Pro官方安卓版11.1.12 最新版
高能英雄️官方版游戏下载-高能英雄️游戏1.3.7.3200 安卓版
pscc2016破解版下载-Photoshop CC 2016破解版64位免激活
PUBG国际服绿AR增强版下载-绿AR增强版7.02.6 最新版
灵格斯词霸(Lingoes)2.9.2 绿色便携版
混沌易代码修复1.0 绿色版
婚纱相册模板-清新淡雅婚纱照电子相册模板psd分层高清版
钓鱼通最新版下载-钓鱼通app1.0.8 官方版
腾讯火影忍者手游ios版下载-腾讯火影忍者苹果版1.72.62 官方正版
cyberduck破解版下载-cyberduck(免费开源的FTP/SFTP软件)6.0.1 破解版
梦幻西游手游2018元宵猜灯谜活动题库及答案完整版
得力考勤管理系统标准版-得力考勤管理系统101 官方最新版
Windows 10 Build 15063 创意者更新RTM ISO镜像下载-Win10创意者更新15063 ISO镜像64位/32位官方最新版
iringer苹果铃声制作官方免费下载-iRinger官方中文版4.3.0 官方中文下载
王牌战争冒险下载-王牌战争冒险1.0.38 安卓版
InfoGraphics(AE脚本)下载-InfoGraphics(AE脚本)1.0 官方版
ps油画滤镜插件下载-PS油画滤镜绿色免费版
数学计算器软件下载-星河计算器(数学计算器)2.3 单文件版
圣诞节的祝福语英文-圣诞节的祝福语(2015中英文圣诞节祝福语大全)doc格式免费下载
Rainlendar(桌面日历小工具)2.9 Build 108 Beta
迪士尼脸生成器下载-迪士尼脸生成器(toonme)0.9.48 安卓最新版
绝帝傲游1.0.6地图-绝帝傲游1.0.6正式版攻略+隐藏英雄密码
8.0/1,698.2M
魔兽地图绝帝傲游是很多玩家喜欢玩的魔兽防守地图,现在正式推出了绝帝傲游1.0.6正式版,加强终极BOSS的血量,增加挑战心魔,喜欢的玩家快来下载吧。绝帝傲游1....
8.7/17.9M
元尊传折扣版是根据同名小说改编而来的角色扮演游戏,整个优秀的多样性挑战游戏玩法非常的独特,这款游戏独特的多样性战斗乐趣十足,游戏上线即送VIP11,海量的福利等...
知悦世界街景软件下载-知悦世界街景20251.1.2 最新版
9.4/1,237.6M
知悦世界街景地图-谷歌地图手机版有后室,这个APP可以打开谷歌地图,里面可以看到后室,就是奇形怪状的各种非人类怪物地图,不过这些都是要靠大家自己寻找的。如果你的...
Project Pro 2010-Microsoft Project Pro 2010简体中文版
7.6/1,109.2M
一个国际上享有盛誉的通用的项目管理工具软件,凝集了许多成熟的项目管理现代理论和方法,可以帮助项目管理者实现时间、资源、成本的计划、控制。产品激活说明本站提供的下...
9.1/1,677.8M
飞翔关机精灵是一个绿色小巧的定时关机软件,用于定时关机、重启电脑。软件虽小却功能强大,支持定时关机、重启、注销、休眠,支持开机启动。使用说明首先选择开启定时关机...
全民爱消除2高清豪华版-全民爱消除2-豪华版1.0 高清豪华版
9.1/1,298.0M
全民爱消除2高清豪华版是腾讯最新的超好玩消除手游,萌萌哒游戏画面,轻松愉快的游戏玩法,让你尽享游戏快乐,欢迎来东坡下载体验!全民爱消除2高清豪华版介绍腾讯出身的...
9.1/1,044.9M
春天来了,许多人都会出去走走看看,回家之后就是发朋友圈啦!小编为您带来了春天朋友圈说说及配图,可以让你的朋友圈显得更高端!春天朋友圈配图预览春天朋友圈说说1.去...
9.3/1,779.4M
中国铁建和中望软件联合举办的2022年“装试用,促应用”活动已正式启动!今年3月1日至11月30日,只需下载试用“中望CAD中国铁建2022活动版”,就可免费使...
快递查询软件下载-卡酷快递单号查询工具v2.0.5 正式安装版
8.5/335.8M
卡酷快递单号查询工具可以帮助你快速查询快递时间和进度,支持近百家快递公司,为你带来极大的方便,让你可以轻松了解快递的进度情况,简单实用,绿色免费。功能介绍1.界...
9.7/1,832.1M
弹吧钢琴谱大全电脑版是一款包含了上万份钢琴谱的软件,支持离线播放、还可以把乐谱打印出来,是弹吧钢琴网推出来的一款全新的音乐播放器,特别的简单方便,欢迎有需要的朋...
注册安全工程师考试宝典破解版下载-注册安全工程师考试宝典破解版201511.0 免费版
9.5/1,022.5M
注册安全工程师考试宝典破解版是一款免费的助考软件,帮助即将要参加注册安全工程师考试的网友提高自己的知识,需要的网友可以来东坡网下载!注册安全工程师考试宝典破解版...
8.2/1,808.2M
关于截图的软件有很多种,每一款软件都有着自己的特点。那么红枫叶抓图能手是一款功能强大,无功能限制并且完全免费的抓截图软件。可以让你轻松的获得想要的任意屏幕截图。...
7.5/260.7M
科学计算器是目前Android平台上设计最为人性化的智能计算器,最大的特点就是非常适合触摸屏计算,它集单点和多点触控、真人语音、表达式计算等众多功能为一体,追求...
9.5/207.5M
这款游戏是一款非常好玩的火柴人摇摆游戏,你可以通过左右的运动让自己在绳子上面自由的摇动,游戏中有着许多不同的关卡,让游戏玩起来十分带感!火柴人摇摆明星介绍Sti...
AdClear Content Blocker下载-AdClear Content Blocker4.0.1.514-play 官方版
8.1/1,547.9M
AdClear拦截器是一款聚焦“高效拦截、简单易用”的广告屏蔽工具,致力于为用户打造干净无扰、加载流畅的网页浏览环境,无需复杂操作即可远离各类广告干扰。打开软件...
7.6/1,262.0M
汽车官网网页设计模板psd素材是专为需要设计汽车行业网站的朋友带来的psd素材,可以直接修改成自己的网站首页,效果很不错,非常精美,需要的朋友可以来下载使用!汽...
Topaz Video Enhance AI汉化版下载-Topaz Video Enhance AI汉化破解版2.0.0 中文版
9.8/1,700.0M
TopazVideoEnhanceAI是一个智能视频无损放大软件,本站为您带来的是汉化破解版本,TopazVideoEnhanceAI可以对数千个视频进行训练,...
utovr全景视频播放器-UtoVR全景视频播放器(高清VR视频播放器)6.7 官方最新版
9.0/1,047.1M
UtoVR全景视频播放器,一款非常给力的全景视频播放器,带你走进虚拟现实世界,还原真实场景,配合虚拟眼镜,让你如在真实场景中一样,有需要的赶紧来下载使用吧。Ut...
MC-BD897吸尘器说明书-松下吸尘器MC-BD897使用说明书pdf免费版
9.0/11.2M
松下吸尘器MC-BD897是一款非常不错的家用电器,可以满足日常清洁需求,本站带来了松下吸尘器MC-BD897使用说明书,可以下载查看!MC-BD897吸尘器说...
9.0/1,820.4M
微商截图宝最新版是一款使用十分方便的微商转账截图软件,软件支持支付宝转账截图支持微信截图,支持微信聊天等多种功能,软件操作简单,使用方便。有需要的朋友们可下载软...
7.9/1,206.2M
ICO图标转换工具是一款绿色小巧的图标转换工具。一键提取,操作简单、方便,欢迎有需要的用户下载使用!ICO图标转换工具怎么用ICO图标转换工具使用方法介绍喜欢别...
战斗粉红豹(Fighting Pink Panther)1.2.5 安卓版
8.8/761.7M
你喜欢玩格斗游戏吗?这款战斗粉红豹(FightingPinkPanther)是一款街机格斗游戏,玩家需要控制角色进行战斗,击败所有挑战你的敌人!战斗粉红豹游戏介...
初中防溺水主题班会ppt-2017初中防溺水主题班会教案ppt免费下载
9.3/397.1M
2017初中防溺水主题班会教案ppt是小编为初中教师带来的教案,暑假到了,老师可以给孩子们上一堂关于防溺水知识的课,让孩子在暑假过的更安全!初中防溺水主题班会p...
10.0/1,938.0M
翡翠源头直播购物,翠叮当藏品app直接都是采购源头,货真价实,质量都有保障,用户可以直接的看直播视频,仔细的观察,看中后在线下单。主要功能匠心工艺·品质臻选源头...
抖音是时候该为我们的爱情续费了表情包-2020也快结束了了是时候该为我们的爱情续费了无水印版
8.0/170.2M
2020也快结束了了是时候该为我们的爱情续费了,马上就要2020年过完了,可以和自己的男朋友去谈续费的事情,非常好玩的一个表情包,喜欢可以发给自己的对象,增进双...