Compartilhar via


Função UcmConnectorCreate (ucmmanager.h)

Cria um objeto de conector.

Sintaxe

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

Parâmetros

[in] WdfDevice

Um identificador para um objeto de dispositivo de estrutura que o driver cliente recebeu na chamada anterior para WdfDeviceCreate.

[in] Config

Um ponteiro para uma estrutura de UCM_CONNECTOR_CONFIG fornecida pelo chamador que é inicializada chamando UCM_CONNECTOR_CONFIG_INIT.

[in] Attributes

Um ponteiro para uma estrutura de WDF_OBJECT_ATTRIBUTES fornecida pelo chamador que contém atributos para o novo objeto conector. Esse parâmetro é opcional e pode ser WDF_NO_OBJECT_ATTRIBUTES.

[out] Connector

Um ponteiro para um local que recebe um identificador para o novo objeto do conector.

Valor de retorno

ucmConnectorCreate retornará STATUS_SUCCESS se a operação for bem-sucedida. Caso contrário, esse método poderá retornar um valor de NTSTATUS apropriado.

Observações

Se o driver cliente especificar um identificador de conector que já está em uso, o método falhará com STATUS_INVALID_PARAMETER código de erro.

Se o conector Type-C for especificado para ser um DRP (porta Dual-Role), o driver cliente deverá registrar seu EVT_UCM_CONNECTOR_SET_DATA_ROLE retorno de chamada de evento.

O objeto pai é WdfDevice. Você pode definir o ParentObject membro do WDF_OBJECT_ATTRIBUTES como NULL ou o identificador WDFDEVICE. O objeto conector é excluído quando o objeto WDFDEVICE pai é excluído.

Um local apropriado para um driver cliente UCM chamar ucmConnectorCreate está em EvtDevicePrepareHardware ou EvtDeviceD0Entry. Por outro lado, o driver deve liberar o identificador UCMCONNECTOR no EvtDeviceReleaseHardware ou EvtDeviceD0Exit.

Exemplos

Este código de exemplo mostra como criar um conector Type-C capaz de 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.");

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows 10
servidor com suporte mínimo Windows Server 2016
da Plataforma de Destino Windows
versão mínima do KMDF 1.15
versão mínima do UMDF 2.15
cabeçalho ucmmanager.h (inclua Ucmcx.h)
biblioteca UcmCxstub.lib
IRQL PASSIVE_LEVEL

Consulte também

UCM_CONNECTOR_CONFIG

UCM_CONNECTOR_CONFIG_INIT