Creación de un proveedor de hora
Un proveedor de hora se implementa como un archivo DLL. Cada DLL puede admitir varios proveedores de tiempo. Cada proveedor es responsable de su propia configuración y sincronización.
Los proveedores de tiempo deben implementar las siguientes funciones de devolución de llamada:
Una vez cargado el archivo DLL del proveedor, el administrador de proveedores de hora llama a TimeProvOpen, pasando el nombre del proveedor y punteros a las siguientes funciones:
Estas funciones las usa el proveedor de hora. El proveedor de hora usa TimeProvOpen para devolver un identificador de proveedor que el administrador de proveedores de hora usa al enviar comandos al proveedor de hora. El proveedor de hora define el valor de identificador y se usa principalmente para distinguir entre distintos proveedores implementados en el mismo archivo DLL. El proveedor de hora puede registrar eventos significativos mediante LogTimeProvEventFunc.
El administrador de proveedores de hora usa TimeProvCommand para enviar comandos al proveedor de hora. Cuando el proveedor de hora necesita notificar al administrador del proveedor de hora que tiene muestras de tiempo disponibles, llama a AlertSamplesAvailFunc. A continuación, el administrador de proveedores de hora llama a TimeProvCommand con el comando TPC_GetSamples para recuperar los ejemplos de tiempo. El administrador del proveedor de tiempo puede tardar hasta 16 segundos en solicitar el ejemplo. Por lo tanto, la aplicación no debe esperar a la solicitud.
Para garantizar la precisión, el proveedor de hora debe recuperar toda la información relacionada con el tiempo mediante GetTimeSysInfoFunc.
Cuando es hora de apagar el proveedor de hora, el administrador del proveedor de tiempo llama a TimeProvClose.