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 |
対象プラットフォーム | Windows |
最小 KMDF バージョン | 1.15 |
最小 UMDF バージョン | 2.15 |
Header | ucmmanager.h (Ucmcx.h を含む) |
IRQL | PASSIVE_LEVEL |