Fungsi UcmConnectorCreate (ucmmanager.h)

Membuat objek konektor.

Sintaks

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

Parameter

[in] WdfDevice

Handel ke objek perangkat kerangka kerja yang diterima driver klien dalam panggilan sebelumnya ke WdfDeviceCreate.

[in] Config

Penunjuk ke struktur UCM_CONNECTOR_CONFIG yang disediakan penelepon yang diinisialisasi dengan memanggil UCM_CONNECTOR_CONFIG_INIT.

[in] Attributes

Penunjuk ke struktur WDF_OBJECT_ATTRIBUTES yang disediakan penelepon yang berisi atribut untuk objek konektor baru. Parameter ini bersifat opsional dan dapat WDF_NO_OBJECT_ATTRIBUTES.

[out] Connector

Penunjuk ke lokasi yang menerima handel ke objek konektor baru.

Nilai kembali

UcmConnectorCreate mengembalikan STATUS_SUCCESS jika operasi berhasil. Jika tidak, metode ini dapat mengembalikan nilai NTSTATUS yang sesuai.

Keterangan

Jika driver klien menentukan pengidentifikasi konektor yang sudah digunakan, metode gagal dengan kode kesalahan STATUS_INVALID_PARAMETER.

Jika konektor Type-C ditentukan sebagai port Dual-Role (DRP), driver klien harus mendaftarkan panggilan balik peristiwa EVT_UCM_CONNECTOR_SET_DATA_ROLE .

Objek induk adalah WdfDevice. Anda dapat mengatur anggota ParentObjectWDF_OBJECT_ATTRIBUTES ke NULL atau handel WDFDEVICE. Objek konektor dihapus ketika objek WDFDEVICE induk dihapus.

Tempat yang sesuai untuk driver klien UCM untuk memanggil UcmConnectorCreate ada di EvtDevicePrepareHardware atau EvtDeviceD0Entry. Sebaliknya, driver harus merilis handel UCMCONNECTOR di EvtDeviceReleaseHardware atau EvtDeviceD0Exit.

Contoh

Contoh kode ini menunjukkan cara membuat konektor Type-C yang berkemampuan PD.

    
    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.");

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 10
Server minimum yang didukung Server Windows 2016
Target Platform Windows
Versi KMDF minimum 1.15
Versi UMDF minimum 2.15
Header ucmmanager.h (termasuk Ucmcx.h)
Pustaka UcmCxstub.lib
IRQL PASSIVE_LEVEL

Lihat juga

UCM_CONNECTOR_CONFIG

UCM_CONNECTOR_CONFIG_INIT