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 |