次の方法で共有


UsbPm_AssignConnectorPowerLevel関数 (usbpmapi.h)

指定された電圧/電流/電力値を使用して PD コントラクトの再ネゴシエーションを試みます。

構文

NTSTATUS UsbPm_AssignConnectorPowerLevel(
  [In] USBPM_CLIENT                               ClientHandle,
  [In] USBPM_CONNECTOR                            ConnectorHandle,
  [In] PUSBPM_ASSIGN_CONNECTOR_POWER_LEVEL_PARAMS Params
);

パラメーター

[In] ClientHandle

UsbPm_Registerに対する前回の呼び出しでクライアント ドライバーが受け取ったハンドル。

[In] ConnectorHandle

ドライバーの EVT_USBPM_EVENT_CALLBACKの実装を呼び出すときに、Policy Manager によって提供されるコネクタ ハンドル。 ハンドルは、Params 値の EventData.ConnectorStateChange.ConnectorHandle メンバーで設定されます。

[In] Params

ネゴシエートする電圧/電流/電力値を含むドライバー提供の USBPM_ASSIGN_CONNECTOR_POWER_LEVEL_PARAMS 構造体へのポインター。 USBPM_ASSIGN_CONNECTOR_POWER_LEVEL_PARAMS_INITを呼び出して構造体を初期化します。

電源シンクの役割でコネクタの電圧/電流/電力値として 0 を指定すると、コネクタは充電を停止します。

戻り値

操作が成功した場合にSTATUS_SUCCESSを返します。 それ以外の場合は、NTSTATUS 適切な値を返します。

備考

ネゴシエートされた設定は、ポート パートナーがアタッチされている限り永続的であり、ポート パートナーがデタッチされると破棄されます。 クライアント ドライバーは、前の設定を想定せずに、現在のコネクタの状態に基づいてこの関数を呼び出す必要があります。

この呼び出しが成功した場合、要求は受け入れられますが、PD コントラクトの再ネゴシエーションが完了していない可能性があります。 PD コントラクトの再ネゴシエーションの結果は、成功または失敗のいずれかになります。

PD コントラクトの再ネゴシエーションが成功した結果、コネクタの状態変更イベントを使用して EVT_USBPM_EVENT_CALLBACK が呼び出されます。 PD コントラクトの再ネゴシエーション要求が失敗した場合、コールバック関数は呼び出されません。 たとえば、パートナーによって要求が拒否されたり、コネクタの状態が変更されたために無効になったりします。
Windows 10 バージョン 1809 では、ドライバーは、UsbCPowerRoleSink の電源ロールと、パートナーがコネクタに接続されている場合にのみ、この関数を呼び出すことができます。

必要条件

要件 価値
サポートされる最小クライアント Windows 10 バージョン 1809
最小 KMDF バージョン 1.27
UMDF の最小バージョン する 2.27
ヘッダー usbpmapi.h
ライブラリ UsbPmApi.lib
IRQL PASSIVE_LEVEL

関連項目

UsbPm_Register

EVT_USBPM_EVENT_CALLBACK