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_ATTRIBUTES 的 ParentObject 成员设置为 NULL 或 WDFDEVICE 句柄。 删除父 WDFDEVICE 对象时,将删除连接器对象。
UCM 客户端驱动程序调用 UcmConnectorCreate 的合适位置位于 EvtDevicePrepareHardware 或 EvtDeviceD0Entry 中。 相反,驱动程序应释放 EvtDeviceReleaseHardware 或 EvtDeviceD0Exit 中的 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 |