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 |