EVT_UCM_CONNECTOR_SET_POWER_ROLE回调函数 (ucmmanager.h)

客户端驱动程序实现 的 EVT_UCM_CONNECTOR_SET_POWER_ROLE 事件回调函数,该函数在连接到合作伙伴连接器时将连接器的电源角色设置为指定角色。

语法

EVT_UCM_CONNECTOR_SET_POWER_ROLE EvtUcmConnectorSetPowerRole;

NTSTATUS EvtUcmConnectorSetPowerRole(
  [in] UCMCONNECTOR Connector,
  [in] UCM_POWER_ROLE PowerRole
)
{...}

参数

[in] Connector

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

[in] PowerRole

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

返回值

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

注解

若要注册 EVT_UCM_CONNECTOR_SET_POWER_ROLE 回调函数,客户端必须调用 UcmConnectorCreate

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

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

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

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

示例


EVT_UCM_CONNECTOR_SET_POWER_ROLE     EvtSetPowerRole;  

NTSTATUS  
EvtSetPowerRole(  
    UCMCONNECTOR Connector,  
    UCM_POWER_ROLE PowerRole  
    )  
{  
    PCONNECTOR_CONTEXT connCtx;  
  
    TRACE_INFO("EvtSetPowerRole(%!UCM_POWER_ROLE!) Entry", PowerRole);  
  
    connCtx = GetConnectorContext(Connector);  

    //PR_Swap operation.  
  
  
    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