UcmConnectorCreate-Funktion (ucmmanager.h)

Erstellt ein Connectorobjekt.

Syntax

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

Parameter

[in] WdfDevice

Ein Handle für ein Framework-Geräteobjekt, das der Clienttreiber im vorherigen Aufruf von WdfDeviceCreate empfangen hat.

[in] Config

Ein Zeiger auf eine vom Aufrufer bereitgestellte UCM_CONNECTOR_CONFIG-Struktur , die durch Aufrufen von UCM_CONNECTOR_CONFIG_INIT initialisiert wird.

[in] Attributes

Ein Zeiger auf eine vom Aufrufer bereitgestellte WDF_OBJECT_ATTRIBUTES Struktur, die Attribute für das neue Connectorobjekt enthält. Dieser Parameter ist optional und kann WDF_NO_OBJECT_ATTRIBUTES werden.

[out] Connector

Ein Zeiger auf eine Position, die ein Handle für das neue Connectorobjekt empfängt.

Rückgabewert

UcmConnectorCreate gibt STATUS_SUCCESS zurück, wenn der Vorgang erfolgreich ist. Andernfalls kann diese Methode einen geeigneten NTSTATUS-Wert zurückgeben.

Hinweise

Wenn der Clienttreiber einen bereits verwendeten Connectorbezeichner angibt, schlägt die Methode mit STATUS_INVALID_PARAMETER Fehlercode fehl.

Wenn der Typ-C-Connector als Dual-Role-Port (DRP) angegeben wird, muss der Clienttreiber seinen EVT_UCM_CONNECTOR_SET_DATA_ROLE Ereignisrückruf registrieren.

Das übergeordnete Objekt ist WdfDevice. Sie können das ParentObject-Element von WDF_OBJECT_ATTRIBUTES auf NULL oder das WDFDEVICE-Handle festlegen. Das Connectorobjekt wird gelöscht, wenn das übergeordnete WDFDEVICE-Objekt gelöscht wird.

Ein geeigneter Ort für einen UCM-Clienttreiber zum Aufrufen von UcmConnectorCreate ist in EvtDevicePrepareHardware oder EvtDeviceD0Entry. Umgekehrt sollte der Treiber das UCMCONNECTOR-Handle in EvtDeviceReleaseHardware oder EvtDeviceD0Exit freigeben.

Beispiele

Dieser Beispielcode zeigt, wie Sie einen Typ-C-Connector erstellen, der PD-fähig ist.

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

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 10
Unterstützte Mindestversion (Server) Windows Server 2016
Zielplattform Windows
KMDF-Mindestversion 1.15
UMDF-Mindestversion 2.15
Kopfzeile ucmmanager.h (ucmcx.h einschließen)
Bibliothek UcmCxstub.lib
IRQL PASSIVE_LEVEL

Weitere Informationen

UCM_CONNECTOR_CONFIG

UCM_CONNECTOR_CONFIG_INIT