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(상태)이 TRUE인 다른 상태 값을 반환해야 합니다. 그렇지 않으면 NT_SUCCESS(상태)이 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