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时提供的连接器句柄。 句柄在 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
Library UsbPmApi.lib
IRQL PASSIVE_LEVEL

另请参阅

UsbPm_Register

EVT_USBPM_EVENT_CALLBACK