Compartilhar via


Método IMFClock::GetCorrelatedTime (mfidl.h)

Recupera a hora do último relógio correlacionada com a hora do sistema.

Sintaxe

HRESULT GetCorrelatedTime(
  [in]  DWORD    dwReserved,
  [out] LONGLONG *pllClockTime,
  [out] MFTIME   *phnsSystemTime
);

Parâmetros

[in] dwReserved

Reservado, precisa ser zero.

[out] pllClockTime

Recebe a hora do último relógio conhecido, em unidades da frequência do relógio.

[out] phnsSystemTime

Recebe a hora do sistema que corresponde à hora do relógio retornada em pllClockTime, em unidades de 100 nanossegundos.

Retornar valor

O método retorna um HRESULT. Os possíveis valores incluem, mas sem limitação, aqueles na tabela a seguir.

Código de retorno Descrição
S_OK
O método foi bem-sucedido.
MF_E_CLOCK_NO_TIME_SOURCE
O relógio não tem uma fonte de tempo.

Comentários

Em algum intervalo fixo, um relógio correlaciona seus tiques de relógio internos com a hora do sistema. (A hora do sistema é a hora retornada pelo contador de desempenho de alta resolução.) Esse método retorna:

  • A hora mais recente do relógio correlacionada com a hora do sistema.
  • A hora do sistema em que a correlação foi executada.
A hora do relógio é retornada no parâmetro pllClockTime e é expressa em unidades da frequência do relógio. Se o método IMFClock::GetClockCharacteristics do relógio retornar o sinalizador MFCLOCK_CHARACTERISTICS_FLAG_FREQUENCY_10MHZ , a frequência do relógio será de 10 MHz (cada tique do relógio é de 100 nanossegundos). Caso contrário, você poderá obter a frequência do relógio chamando IMFClock::GetProperties. A frequência é fornecida no membro qwClockFrequency da estrutura MFCLOCK_PROPERTIES retornada por esse método.

A hora do sistema é retornada no parâmetro phnsSystemTime e sempre é expressa em unidades de 100 nanossegundos.

Para descobrir com que frequência o relógio correlaciona o horário do relógio com a hora do sistema, chame GetProperties. O intervalo de correlação é fornecido no membro qwCorrelationRate da estrutura MFCLOCK_PROPERTIES . Se qwCorrelationRate for zero, isso significa que o relógio executa a correlação sempre que GetCorrelatedTime é chamado. Caso contrário, você pode calcular a hora atual do relógio extrapolando a partir da última hora correlacionada.

Alguns relógios dão suporte a alterações de taxa por meio da interface IMFRateControl . Nesse caso, o tempo do relógio avança a uma velocidade de frequência × taxa atual. Se um relógio não expor a interface IMFRateControl , a taxa será sempre de 1,0.

Para o relógio de apresentação, a hora do relógio é a hora da apresentação e é sempre relativa à hora de início especificada em IMFPresentationClock::Start. Você também pode obter o tempo de apresentação chamando IMFPresentationClock::GetTime.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows Server 2008 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho mfidl.h
Biblioteca Mfuuid.lib

Confira também

IMFClock

MFTIME