Funzione UcmConnectorCreate (ucmmanager.h)
Crea un oggetto connettore.
Sintassi
NTSTATUS UcmConnectorCreate(
[in] WDFDEVICE WdfDevice,
[in] PUCM_CONNECTOR_CONFIG Config,
[in] PWDF_OBJECT_ATTRIBUTES Attributes,
[out] UCMCONNECTOR *Connector
);
Parametri
[in] WdfDevice
Handle per un oggetto dispositivo framework ricevuto dal driver client nella chiamata precedente a WdfDeviceCreate.
[in] Config
Puntatore a una struttura di UCM_CONNECTOR_CONFIG fornita dal chiamante inizializzata chiamando UCM_CONNECTOR_CONFIG_INIT.
[in] Attributes
Puntatore a una struttura di WDF_OBJECT_ATTRIBUTES fornita dal chiamante che contiene attributi per il nuovo oggetto connettore. Questo parametro è facoltativo e può essere WDF_NO_OBJECT_ATTRIBUTES.
[out] Connector
Puntatore a una posizione che riceve un handle per il nuovo oggetto connettore.
Valore restituito
UcmConnectorCreare restituisce STATUS_SUCCESS se l'operazione ha esito positivo. In caso contrario, questo metodo può restituire un valore NTSTATUS appropriato.
Osservazioni
Se il driver client specifica un identificatore del connettore già in uso, il metodo ha esito negativo con STATUS_INVALID_PARAMETER codice di errore.
Se il connettore Type-C è specificato come porta Dual-Role (DRP), il driver client deve registrare il callback dell'evento EVT_UCM_CONNECTOR_SET_DATA_ROLE.
L'oggetto padre è WdfDevice. È possibile impostare il membro ParentObject di WDF_OBJECT_ATTRIBUTES su NULL o sull'handle WDFDEVICE. L'oggetto connettore viene eliminato quando l'oggetto WDFDEVICE padre viene eliminato.
Una posizione appropriata per un driver client UCM per chiamare UcmConnectorCreate si trova in EvtDevicePrepareHardware o EvtDeviceD0Entry. Viceversa, il driver deve rilasciare l'handle UCMCONNECTOR in EvtDeviceReleaseHardware o EvtDeviceD0Exit.
Esempi
Questo codice di esempio illustra come creare un connettore Type-C che supporta 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.");
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows 10 |
server minimo supportato | Windows Server 2016 |
piattaforma di destinazione | Finestre |
versione minima di KMDF | 1.15 |
versione minima di UMDF | 2.15 |
intestazione | ucmmanager.h (include Ucmcx.h) |
libreria | UcmCxstub.lib |
IRQL | PASSIVE_LEVEL |