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(status) が TRUE の別の状態値を返す必要があります。 それ以外の場合は、NT_SUCCESS(status) が FALSE の状態値を返す必要があります。
備考
EVT_UCM_CONNECTOR_SET_POWER_ROLE コールバック関数を登録するには、クライアントは UcmConnectorCreate 呼び出す必要があります。
USB コネクタ マネージャー フレームワーク拡張機能 (UcmCx) は、UcmPowerRoleSink または UcmPowerRoleSource を要求できます。 ポートが要求された役割に既にある場合、クライアント ドライバーは変更なしで要求を完了できます。 それ以外の場合は、電源ロールのスワップ操作 (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 |
ターゲット プラットフォーム の | ウィンドウズ |
最小 KMDF バージョン | 1.15 |
UMDF の最小バージョン を する | 2.15 |
ヘッダー | ucmmanager.h (Ucmcx.h を含む) |
IRQL | PASSIVE_LEVEL |
関連項目
UcmConnectorCreate を する