次の方法で共有


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

関連項目

UcmConnectorCreate する