EVT_UCM_CONNECTOR_SET_DATA_ROLE回调函数 (ucmmanager.h)

客户端驱动程序实现 的 EVT_UCM_CONNECTOR_SET_DATA_ROLE 事件回调函数,该函数在附加到合作伙伴连接器时将连接器的数据角色交换为指定角色。

语法

EVT_UCM_CONNECTOR_SET_DATA_ROLE EvtUcmConnectorSetDataRole;

NTSTATUS EvtUcmConnectorSetDataRole(
  [in] UCMCONNECTOR Connector,
  [in] UCM_DATA_ROLE DataRole
)
{...}

参数

[in] Connector

客户端驱动程序在上一次调用 UcmConnectorCreate 方法时收到的连接器的句柄。

[in] DataRole

一个UCM_TYPEC_PARTNER类型的标志,指定要设置的角色。

返回值

如果操作成功,回调函数必须返回STATUS_SUCCESS,或NT_SUCCESS (状态) 等于 TRUE 的另一个状态值。 否则,它必须返回一个状态值,NT_SUCCESS (状态) 等于 FALSE。

注解

若要注册 EVT_UCM_CONNECTOR_SET_DATA_ROLE 回调函数,客户端驱动程序必须调用 UcmConnectorCreate

UcmCx (USB 连接器管理器框架扩展) 可以请求 UcmTypeCPortStateUfpUcmTypeCPortStateDfp。 如果端口已在请求的角色中,则客户端驱动程序可以在不进行任何更改的情况下完成请求。 否则,它将 (DR_Swap) 启动数据角色交换操作。 驱动程序调用 UcmConnectorDataDirectionChanged 以通知 UcmCx 该操作是成功还是失败。 驱动程序可以在回调函数中调用该方法。

当前连接的角色保持不变。

如果角色交换操作处于挂起状态,UcmCx 不会请求其他角色交换。 这些操作跨电源和数据角色交换进行序列化。

交换操作完成后,如果伙伴端口发送DR_Swap请求,客户端驱动程序必须拒绝该请求。

示例


EVT_UCM_CONNECTOR_SET_DATA_ROLE     EvtSetDataRole;  

NTSTATUS  
EvtSetDataRole(  
    UCMCONNECTOR  Connector,  
    UCM_TYPE_C_PORT_STATE DataRole  
    )  
{  
    PCONNECTOR_CONTEXT connCtx;  
  
    TRACE_INFO("EvtSetDataRole(%!UCM_TYPE_C_PORT_STATE!) Entry", DataRole);  
  
    connCtx = GetConnectorContext(Connector);

  
    TRACE_FUNC_EXIT();  
    return STATUS_SUCCESS;  
}  

要求

要求
最低受支持的客户端 Windows 10
最低受支持的服务器 Windows Server 2016
目标平台 Windows
最低 KMDF 版本 1.15
最低 UMDF 版本 2.15
标头 ucmmanager.h (包括 Ucmcx.h)
IRQL PASSIVE_LEVEL

另请参阅

UcmConnectorCreate