Создание поставщика времени

Поставщик времени реализуется в виде библиотеки DLL. Каждая библиотека DLL может поддерживать несколько поставщиков времени. Каждый поставщик отвечает за собственную конфигурацию и синхронизацию.

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

После загрузки библиотеки DLL поставщика диспетчер поставщика времени вызывает TimeProvOpen, передав имя поставщика и указатели на следующие функции:

Эти функции предназначены для использования поставщиком времени. Поставщик времени использует TimeProvOpen для возврата дескриптора поставщика, который диспетчер поставщика времени использует при отправке команд поставщику времени. Значение дескриптора определяется поставщиком времени и используется в основном для различения разных поставщиков, реализованных в одной библиотеке DLL. Поставщик времени может регистрировать значимые события с помощью LogTimeProvEventFunc.

Диспетчер поставщика времени использует TimeProvCommand для отправки команд поставщику времени. Когда поставщику времени необходимо уведомить диспетчера поставщиков времени о том, что у него есть доступные примеры времени, он вызывает AlertSamplesAvailFunc. Затем диспетчер поставщика времени вызывает TimeProvCommand с помощью команды TPC_GetSamples, чтобы получить выборки времени. Диспетчеру поставщика времени может потребоваться до 16 секунд, чтобы запросить пример. Поэтому приложение не должно ждать запроса.

Чтобы обеспечить точность, поставщик времени должен получать все сведения, связанные со временем, с помощью GetTimeSysInfoFunc.

Когда пора завершить работу поставщика времени, диспетчер поставщика времени вызывает TimeProvClose.