共用方式為


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(status) 等於 TRUE 的另一個狀態值。 否則,它必須傳回狀態值,NT_SUCCESS(status) 等於 FALSE。

言論

若要註冊 EVT_UCM_CONNECTOR_SET_DATA_ROLE 回呼函式,用戶端驅動程式必須呼叫 UcmConnectorCreate

USB 連接器管理員架構延伸模組 (UcmCx) 可以要求 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
目標平臺 窗戶
最低 KMDF 版本 1.15
最低 UMDF 版本 2.15
標頭 ucmmanager.h (包括 Ucmcx.h)
IRQL PASSIVE_LEVEL

另請參閱

UcmConnectorCreate