共用方式為


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

USB 連接器管理員架構延伸模組 (UcmCx) 可以要求 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