Partager via


UcmConnectorCreate, fonction (ucmmanager.h)

Crée un objet connecteur.

Syntaxe

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

Paramètres

[in] WdfDevice

Handle d’un objet d’appareil d’infrastructure que le pilote client a reçu lors de l’appel précédent à WdfDeviceCreate.

[in] Config

Pointeur vers une structure de UCM_CONNECTOR_CONFIG fournie par l’appelant qui est initialisée en appelant UCM_CONNECTOR_CONFIG_INIT.

[in] Attributes

Pointeur vers une structure de WDF_OBJECT_ATTRIBUTES fournie par l’appelant qui contient des attributs pour le nouvel objet connecteur. Ce paramètre est facultatif et peut être WDF_NO_OBJECT_ATTRIBUTES.

[out] Connector

Pointeur vers un emplacement qui reçoit un handle vers le nouvel objet connecteur.

Valeur retournée

UcmConnectorCreate retourne STATUS_SUCCESS si l’opération réussit. Sinon, cette méthode peut retourner une valeur NTSTATUS appropriée.

Remarques

Si le pilote client spécifie un identificateur de connecteur déjà utilisé, la méthode échoue avec STATUS_INVALID_PARAMETER code d’erreur.

Si le connecteur Type-C est spécifié comme étant un port Dual-Role (DRP), le pilote client doit inscrire son rappel d’événement EVT_UCM_CONNECTOR_SET_DATA_ROLE .

L’objet parent est WdfDevice. Vous pouvez définir le membre ParentObject de WDF_OBJECT_ATTRIBUTES sur NULL ou le handle WDFDEVICE. L’objet connector est supprimé lorsque l’objet WDFDEVICE parent est supprimé.

Un emplacement approprié pour qu’un pilote client UCM appelle UcmConnectorCreate se trouve dans EvtDevicePrepareHardware ou EvtDeviceD0Entry. À l’inverse, le pilote doit libérer le handle UCMCONNECTOR dans EvtDeviceReleaseHardware ou EvtDeviceD0Exit.

Exemples

Cet exemple de code montre comment créer un connecteur Type-C prenant en charge pdd.

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

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 10
Serveur minimal pris en charge Windows Server 2016
Plateforme cible Windows
Version KMDF minimale 1.15
Version UMDF minimale 2.15
En-tête ucmmanager.h (inclure Ucmcx.h)
Bibliothèque UcmCxstub.lib
IRQL PASSIVE_LEVEL

Voir aussi

UCM_CONNECTOR_CONFIG

UCM_CONNECTOR_CONFIG_INIT