функция обратного вызова EVT_UCM_CONNECTOR_SET_DATA_ROLE (ucmmanager.h)

Реализация драйвером клиента функции обратного вызова события EVT_UCM_CONNECTOR_SET_DATA_ROLE , которая переключает роль данных соединителя на указанную роль при подключении к соединителю партнера.

Синтаксис

EVT_UCM_CONNECTOR_SET_DATA_ROLE EvtUcmConnectorSetDataRole;

NTSTATUS EvtUcmConnectorSetDataRole(
  [in] UCMCONNECTOR Connector,
  [in] UCM_DATA_ROLE DataRole
)
{...}

Параметры

[in] Connector

Обработка соединителя, полученного драйвером клиента при предыдущем вызове метода UcmConnectorCreate .

[in] DataRole

Флаг UCM_TYPEC_PARTNER типа, указывающий роль для задания.

Возвращаемое значение

Если операция выполнена успешно, функция обратного вызова должна возвращать STATUS_SUCCESS или другое значение состояния, для которого NT_SUCCESS(status) равно TRUE. В противном случае он должен возвращать значение состояния, для которого NT_SUCCESS (status) равно FALSE.

Комментарии

Чтобы зарегистрировать функцию обратного вызова EVT_UCM_CONNECTOR_SET_DATA_ROLE, драйвер клиента должен вызвать UcmConnectorCreate.

Расширение платформы диспетчера usb-соединителей (UcmCx) может запрашивать UcmTypeCPortStateUfp или UcmTypeCPortStateDfp. Если порт уже находится в запрошенной роли, драйвер клиента может выполнить запрос без каких-либо изменений. В противном случае запускается операция переключения ролей данных (DR_Swap). Драйвер вызывает UcmConnectorDataDirectionChanged , чтобы уведомить UcmCx об успешном или неудачном выполнении этой операции. Драйвер может вызывать этот метод в функции обратного вызова.

Роль сохраняется для текущего подключения.

Если операция переключения ролей находится в состоянии ожидания, UcmCx не запрашивает другое переключение ролей. Эти операции сериализуются по переключениям ролей питания и данных.

Если после завершения операции переключения порт партнера отправляет запрос DR_Swap, драйвер клиента должен отклонить запрос.

Примеры


EVT_UCM_CONNECTOR_SET_DATA_ROLE     EvtSetDataRole;  

NTSTATUS  
EvtSetDataRole(  
    UCMCONNECTOR  Connector,  
    UCM_TYPE_C_PORT_STATE DataRole  
    )  
{  
    PCONNECTOR_CONTEXT connCtx;  
  
    TRACE_INFO("EvtSetDataRole(%!UCM_TYPE_C_PORT_STATE!) Entry", DataRole);  
  
    connCtx = GetConnectorContext(Connector);

  
    TRACE_FUNC_EXIT();  
    return STATUS_SUCCESS;  
}  

Требования

Требование Значение
Минимальная версия клиента Windows 10
Минимальная версия сервера Windows Server 2016
Целевая платформа Windows
Минимальная версия KMDF 1.15
Минимальная версия UMDF 2.15
Верхняя часть ucmmanager.h (включая Ucmcx.h)
IRQL PASSIVE_LEVEL

См. также раздел

UcmConnectorCreate