Compartir a través de


EVT_UCM_CONNECTOR_SET_POWER_ROLE función de devolución de llamada (ucmmanager.h)

La implementación del controlador cliente de la función de devolución de llamada de evento EVT_UCM_CONNECTOR_SET_POWER_ROLE que establece el rol de potencia del conector en el rol especificado cuando se adjunta a un conector de asociado.

Sintaxis

EVT_UCM_CONNECTOR_SET_POWER_ROLE EvtUcmConnectorSetPowerRole;

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

Parámetros

[in] Connector

Controle al conector que el controlador cliente recibió en una llamada anterior al método UcmConnectorCreate.

[in] PowerRole

Marca de tipo UCM_POWER_ROLEque especifica el rol que se va a establecer.

Valor devuelto

Si la operación se realiza correctamente, la función de devolución de llamada debe devolver STATUS_SUCCESS u otro valor de estado para el que NT_SUCCESS(status) es igual a TRUE. De lo contrario, debe devolver un valor de estado para el que NT_SUCCESS(status) es igual a FALSE.

Observaciones

Para registrar una función de devolución de llamada de EVT_UCM_CONNECTOR_SET_POWER_ROLE, el cliente debe llamar a UcmConnectorCreate.

La extensión del marco del administrador de conectores USB (UcmCx) puede solicitar UcmPowerRoleSink o UcmPowerRoleSource. Si el puerto ya está en el rol solicitado, el controlador cliente puede completar la solicitud sin realizar ningún cambio. De lo contrario, inicia una operación de intercambio de roles de energía (PR_Swap). El controlador llama a UcmConnectorPowerDirectionChanged para notificar a UcmCx el éxito o error de esa operación. El controlador puede llamar a ese método dentro de la función de devolución de llamada.

El rol persiste para la conexión actual.

Si una operación de intercambio de roles está pendiente, UcmCx no solicita otro intercambio de roles. Esas operaciones se serializan en intercambios de roles de energía y datos.

Una vez completada la operación de intercambio, si el puerto del asociado envía una solicitud de PR_Swap, el controlador cliente debe rechazar la solicitud.

Ejemplos


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;  
}  

Requisitos

Requisito Valor
cliente mínimo admitido Windows 10
servidor mínimo admitido Windows Server 2016
de la plataforma de destino de Windows
versión mínima de KMDF 1.15
versión mínima de UMDF 2.15
encabezado de ucmmanager.h (include Ucmcx.h)
irQL PASSIVE_LEVEL

Consulte también

UcmConnectorCreate