다음을 통해 공유


EVT_UCM_CONNECTOR_SET_POWER_ROLE 콜백 함수(ucmmanager.h)

커넥터의 전원 역할을 파트너 커넥터에 연결할 때 지정된 역할로 설정하는 EVT_UCM_CONNECTOR_SET_POWER_ROLE 이벤트 콜백 함수의 클라이언트 드라이버 구현입니다.

구문

EVT_UCM_CONNECTOR_SET_POWER_ROLE EvtUcmConnectorSetPowerRole;

NTSTATUS EvtUcmConnectorSetPowerRole(
  [in] UCMCONNECTOR Connector,
  [in] UCM_POWER_ROLE PowerRole
)
{...}

매개 변수

[in] Connector

UcmConnectorCreate 메서드에 대한 이전 호출에서 클라이언트 드라이버가 받은 커넥터에 대한 핸들입니다.

[in] PowerRole

설정할 역할을 지정하는 UCM_POWER_ROLE 형식의 플래그입니다.

반환 값

작업이 성공하면 콜백 함수는 STATUS_SUCCESS 반환하거나 NT_SUCCESS(상태)이 TRUE인 다른 상태 값을 반환해야 합니다. 그렇지 않으면 NT_SUCCESS(상태)가 FALSE와 같은 상태 값을 반환해야 합니다.

설명

EVT_UCM_CONNECTOR_SET_POWER_ROLE 콜백 함수를 등록하려면 클라이언트가 UcmConnectorCreate를 호출해야 합니다.

USB 커넥터 관리자 프레임워크 확장(UcmCx)은 UcmPowerRoleSink 또는 UcmPowerRoleSource를 요청할 수 있습니다. 포트가 이미 요청된 역할에 있는 경우 클라이언트 드라이버는 변경하지 않고 요청을 완료할 수 있습니다. 그렇지 않으면 전원 역할 교환 작업(PR_Swap)이 시작됩니다. 드라이버는 UcmConnectorPowerDirectionChanged 를 호출하여 UcmCx에 해당 작업의 성공 또는 실패를 알립니다. 드라이버는 콜백 함수 내에서 해당 메서드를 호출할 수 있습니다.

역할은 현재 연결에 대해 유지됩니다.

역할 교환 작업이 보류 중인 경우 UcmCx는 다른 역할 교환을 요청하지 않습니다. 이러한 작업은 전원 및 데이터 역할 교환을 통해 직렬화됩니다.

교환 작업이 완료된 후 파트너 포트가 PR_Swap 요청을 보내는 경우 클라이언트 드라이버는 요청을 거부해야 합니다.

예제


EVT_UCM_CONNECTOR_SET_POWER_ROLE     EvtSetPowerRole;  

NTSTATUS  
EvtSetPowerRole(  
    UCMCONNECTOR Connector,  
    UCM_POWER_ROLE PowerRole  
    )  
{  
    PCONNECTOR_CONTEXT connCtx;  
  
    TRACE_INFO("EvtSetPowerRole(%!UCM_POWER_ROLE!) Entry", PowerRole);  
  
    connCtx = GetConnectorContext(Connector);  

    //PR_Swap operation.  
  
  
    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