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) 可以要求 UcmTypeCPortStateUfp 或 UcmTypeCPortStateDfp。 如果埠已經在要求的角色中,用戶端驅動程式就可以完成要求,而不需要進行任何變更。 否則,它會啟動數據角色交換作業(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 |