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 |