Поделиться через


Функция StreamClassQueryMasterClock (strmini.h)

Когда мини-драйвер вызывает подпрограмму StreamClassQueryMasterClock, драйвер класса асинхронно запрашивает соответствующее значение времени master часов и передает результат в подпрограмму, переданную в параметре ClockCallbackRoutine.

Синтаксис

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

Параметры

[in] HwStreamObject

Указатель на HW_STREAM_OBJECT, указывающий поток, запрашивающий часы master. Поток может иметь только один запрос, ожидающий одновременно. Драйвер класса передает это значение обратному вызову в элементе HwStreamObject параметра TimeContext обратного вызова.

[in] MasterClockHandle

Указывает дескриптор для запрашиваемых часов master. Драйвер класса передает его в запросе SRB_INDICATE_MASTER_CLOCK подпрограмме StrMiniReceiveStreamControlPacket мини-драйвера .

[in] TimeFunction

Указывает, для какой функции времени следует запрашивать часы master. Возможные значения см. в HW_TIME_CONTEXT . Драйвер класса передает это значение обратному вызову в элементе Function параметра TimeContext .

[in] ClockCallbackRoutine

Задает подпрограмму, в которую драйвер класса передает результаты. Прототип функции должен быть следующим:

ClockCallbackRoutine(PHW_TIME_CONTEXT TimeContext);

Возвращаемое значение

None

Remarks

Драйвер класса запрашивает master часы и передает результаты в параметре TimeContext (типа HW_TIME_CONTEXT) обратного вызова. В частности, он задает для элемента Time этой структуры значение времени, запрошенное в параметре TimeFunction , текущее системное время в элементе SystemTime той же структуры и расширение устройства minidriver в элементе HwDeviceExtension этой структуры.

Драйвер класса освобождает структуру HW_TIME_CONTEXT после завершения подпрограммы обратного вызова с часов, поэтому в обратном вызове должны храниться все сведения, которые требует хранить мини-диск. Для этой цели подпрограмма обратного вызова может использовать ранее выделенное пространство либо в расширении устройства мини-накопителя (TimeContext-HwDeviceExtension>), либо в расширении потока, запрашивающего master часов (TimeContext-HwStreamObject-HwStreamExtension).>>

В редких случаях диспетчер графов переключает master часы. Классный водитель предоставляет состояние гонки при обработке новых часов master. Если мини-драйвер вызывает потоковый класс master подпрограмму часов сразу после получения новых часов от драйвера класса, драйвер класса может привести к непредвиденным результатам.

Требования

Требование Значение
Целевая платформа Персональный компьютер
Верхняя часть strmini.h (включая Strmini.h)
Библиотека Stream.lib

См. также раздел

HW_TIME_CONTEXT

StrMiniReceiveStreamControlPacket

StreamClassQueryMasterClockSync