Función StreamClassQueryMasterClock (strmini.h)
Cuando el minidriver llama a la rutina StreamClassQueryMasterClock , el controlador de clase consulta el valor de hora adecuado del reloj maestro de forma asincrónica y pasa el resultado a la rutina pasada en el parámetro ClockCallbackRoutine .
Sintaxis
void StreamClassQueryMasterClock(
[in] PHW_STREAM_OBJECT HwStreamObject,
[in] HANDLE MasterClockHandle,
[in] TIME_FUNCTION TimeFunction,
[in] PHW_QUERY_CLOCK_ROUTINE ClockCallbackRoutine
);
Parámetros
[in] HwStreamObject
Puntero a un HW_STREAM_OBJECT que indica la secuencia que está consultando su reloj maestro. La secuencia solo puede tener una consulta pendiente a la vez. El controlador de clase pasa este valor a la devolución de llamada en el miembro HwStreamObject del parámetro TimeContext de la devolución de llamada.
[in] MasterClockHandle
Especifica el identificador del reloj maestro que se está consultando. El controlador de clase pasa esto en la solicitud SRB_INDICATE_MASTER_CLOCK a la rutina StrMiniReceiveStreamControlPacket del minidriver.
[in] TimeFunction
Especifica la función de hora para la que se va a consultar el reloj maestro. Consulte HW_TIME_CONTEXT para conocer los valores posibles. El controlador de clase pasa este valor a la devolución de llamada en el miembro Function del parámetro TimeContext .
[in] ClockCallbackRoutine
Especifica la rutina a la que el controlador de clase pasa los resultados. El prototipo de función debe ser:
ClockCallbackRoutine(PHW_TIME_CONTEXT TimeContext);
Valor devuelto
None
Observaciones
El controlador de clase consulta el reloj maestro y pasa los resultados en el parámetro TimeContext (de tipo HW_TIME_CONTEXT) de la devolución de llamada. En concreto, establece el miembro Time de esta estructura en el valor de hora solicitado en el parámetro TimeFunction , la hora actual del sistema en el miembro SystemTime de la misma estructura y la extensión del dispositivo del minidriver en el miembro HwDeviceExtension de esa estructura.
El controlador de clase desasigna la estructura HW_TIME_CONTEXT después de que finalice la rutina de devolución de llamada del reloj, por lo que la devolución de llamada debe almacenar cualquier información que el minidriver desea mantener. Para ello, la rutina de devolución de llamada puede usar espacio asignado previamente en la extensión del dispositivo del minidriver (TimeContext-HwDeviceExtension>) o la extensión de secuencia de la secuencia que consultó su reloj maestro (TimeContext-HwStreamObject-HwStreamExtension).>>
En raras ocasiones, el administrador de grafos cambia el reloj maestro. El controlador de clase expone una condición de carrera para controlar el nuevo reloj maestro. Si el minidriver llama a una rutina de reloj maestra de clase de secuencia inmediatamente después de recibir un nuevo reloj del controlador de clase, el controlador de clase puede producir resultados inesperados.
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Escritorio |
Encabezado | strmini.h (incluya Strmini.h) |
Library | Stream.lib |