UcmConnectorCreate 函数 (ucmmanager.h)

创建连接器对象。

语法

NTSTATUS UcmConnectorCreate(
  [in]  WDFDEVICE              WdfDevice,
  [in]  PUCM_CONNECTOR_CONFIG  Config,
  [in]  PWDF_OBJECT_ATTRIBUTES Attributes,
  [out] UCMCONNECTOR           *Connector
);

参数

[in] WdfDevice

客户端驱动程序在上一次调用 WdfDeviceCreate 时收到的框架设备对象的句柄。

[in] Config

指向调用方提供的 UCM_CONNECTOR_CONFIG 结构的指针,该结构通过调用 UCM_CONNECTOR_CONFIG_INIT进行初始化。

[in] Attributes

指向调用方提供的 WDF_OBJECT_ATTRIBUTES 结构的指针,该结构包含新连接器对象的属性。 此参数是可选的,可以WDF_NO_OBJECT_ATTRIBUTES。

[out] Connector

指向接收新连接器对象的句柄的位置的指针。

返回值

如果操作成功,则 UcmConnectorCreate 返回STATUS_SUCCESS。 否则,此方法可以返回相应的 NTSTATUS 值。

注解

如果客户端驱动程序指定了已在使用的连接器标识符,该方法将失败并STATUS_INVALID_PARAMETER错误代码。

如果将 Type-C 连接器指定为 Dual-Role 端口 (DRP) ,则客户端驱动程序必须注册其 EVT_UCM_CONNECTOR_SET_DATA_ROLE 事件回调。

父对象为 WdfDevice。 可以将 WDF_OBJECT_ATTRIBUTESParentObject 成员设置为 NULL 或 WDFDEVICE 句柄。 删除父 WDFDEVICE 对象时,将删除连接器对象。

UCM 客户端驱动程序调用 UcmConnectorCreate 的合适位置位于 EvtDevicePrepareHardwareEvtDeviceD0Entry 中。 相反,驱动程序应释放 EvtDeviceReleaseHardwareEvtDeviceD0Exit 中的 UCMCONNECTOR 句柄。

示例

此示例代码演示如何创建支持 PD 的 Type-C 连接器。

    
    UCMCONNECTOR Connector;
  
    UCM_CONNECTOR_CONFIG_INIT(&connCfg, 0);

    UCM_CONNECTOR_TYPE_C_CONFIG_INIT(
        &connCfg.TypeCConfig,
        UcmTypeCOperatingModeDrp,
        UcmTypeCCurrentDefaultUsb | UcmTypeCCurrent1500mA | UcmTypeCCurrent3000mA);

    connCfg.EvtSetDataRole = EvtSetDataRole;

    UCM_CONNECTOR_PD_CONFIG_INIT(&connCfg.PdConfig, UcmPowerRoleSink | UcmPowerRoleSource);

    WDF_OBJECT_ATTRIBUTES_INIT_CONTEXT_TYPE(&attr, CONNECTOR_CONTEXT);

    status = UcmConnectorCreate(Device, &connCfg, &attr, &Connector);
    if (!NT_SUCCESS(status))
    {
        TRACE_ERROR(
            "UcmConnectorCreate failed with %!STATUS!.",
            status);
        goto Exit;
    }

    TRACE_INFO("UcmConnectorCreate() succeeded.");

要求

要求
最低受支持的客户端 Windows 10
最低受支持的服务器 Windows Server 2016
目标平台 Windows
最低 KMDF 版本 1.15
最低 UMDF 版本 2.15
标头 ucmmanager.h (包括 Ucmcx.h)
Library UcmCxstub.lib
IRQL PASSIVE_LEVEL

另请参阅

UCM_CONNECTOR_CONFIG

UCM_CONNECTOR_CONFIG_INIT