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_INIT所初始化之呼叫端所提供之 UCM_CONNECTOR_CONFIG 結構的指標。
[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 的適當位置位於 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 |
目標平臺 | 窗戶 |
最低 KMDF 版本 | 1.15 |
最低 UMDF 版本 | 2.15 |
標頭 | ucmmanager.h (包括 Ucmcx.h) |
連結庫 | UcmCxstub.lib |
IRQL | PASSIVE_LEVEL |