Compartilhar via


Função StreamClassQueryMasterClock (strmini.h)

Quando o minidriver chama a rotina StreamClassQueryMasterClock, o driver de classe consulta o valor de hora apropriado da master relógio de forma assíncrona e passa o resultado para a rotina passada no parâmetro ClockCallbackRoutine.

Sintaxe

void StreamClassQueryMasterClock(
  [in] PHW_STREAM_OBJECT       HwStreamObject,
  [in] HANDLE                  MasterClockHandle,
  [in] TIME_FUNCTION           TimeFunction,
  [in] PHW_QUERY_CLOCK_ROUTINE ClockCallbackRoutine
);

Parâmetros

[in] HwStreamObject

Ponteiro para um HW_STREAM_OBJECT indicando o fluxo que está consultando seu relógio master. O fluxo pode ter apenas uma consulta pendente por vez. O driver de classe passa esse valor para o retorno de chamada no membro HwStreamObject do parâmetro TimeContext do retorno de chamada.

[in] MasterClockHandle

Especifica o identificador do relógio master que está sendo consultado. O driver de classe passa isso na solicitação SRB_INDICATE_MASTER_CLOCK para a rotina StrMiniReceiveStreamControlPacket do minidriver.

[in] TimeFunction

Especifica a função de tempo para a qual consultar o relógio master. Consulte HW_TIME_CONTEXT para obter os valores possíveis. O driver de classe passa esse valor para o retorno de chamada no membro Function do parâmetro TimeContext .

[in] ClockCallbackRoutine

Especifica a rotina para a qual o driver de classe passa os resultados. O protótipo de função deve ser:

ClockCallbackRoutine(PHW_TIME_CONTEXT TimeContext);

Retornar valor

Nenhum

Comentários

O driver de classe consulta o relógio master e passa os resultados no parâmetro TimeContext (do tipo HW_TIME_CONTEXT) do retorno de chamada. Em particular, ele define o membro Time dessa estrutura como o valor de tempo solicitado no parâmetro TimeFunction , a hora atual do sistema no membro SystemTime da mesma estrutura e a extensão de dispositivo do minidriver no membro HwDeviceExtension dessa estrutura.

O driver de classe desaloca a estrutura HW_TIME_CONTEXT após o término da rotina de retorno de chamada do relógio, portanto, o retorno de chamada deve armazenar todas as informações que o minidriver deseja manter. Para essa finalidade, a rotina de retorno de chamada pode usar espaço alocado anteriormente na extensão de dispositivo do minidriver (TimeContext-HwDeviceExtension>) ou na extensão de fluxo do fluxo que consultou seu relógio master (TimeContext-HwStreamObject-HwStreamExtension).>>

Em raras ocasiões, o gerenciador de grafo alterna o relógio master. O piloto da classe expõe uma condição de corrida ao lidar com o novo relógio master. Se o minidriver chamar uma classe de fluxo master rotina de relógio imediatamente após receber um novo relógio do driver de classe, o driver de classe poderá produzir resultados inesperados.

Requisitos

Requisito Valor
Plataforma de Destino Área de Trabalho
Cabeçalho strmini.h (inclua Strmini.h)
Biblioteca Stream.lib

Confira também

HW_TIME_CONTEXT

StrMiniReceiveStreamControlPacket

StreamClassQueryMasterClockSync