Criando um provedor de tempo
Um provedor de tempo é implementado como uma DLL. Cada DLL pode dar suporte a vários provedores de tempo. Cada provedor é responsável por sua própria configuração e sincronização.
Os provedores de tempo devem implementar as seguintes funções de retorno de chamada:
Depois de carregar a DLL do provedor, o gerenciador de provedores de tempo chama TimeProvOpen, passando o nome do provedor e os ponteiros para as seguintes funções:
Essas funções são usadas pelo provedor de tempo. O provedor de tempo usa TimeProvOpen para retornar um identificador de provedor que o gerenciador de provedores de tempo usa ao enviar comandos para o provedor de tempo. O valor do identificador é definido pelo provedor de tempo e é usado principalmente para distinguir entre provedores diferentes implementados na mesma DLL. O provedor de tempo pode registrar eventos significativos usando LogTimeProvEventFunc.
O gerenciador de provedores de tempo usa TimeProvCommand para enviar comandos para o provedor de tempo. Quando o provedor de tempo precisa notificar o gerenciador de provedores de tempo de que ele tem amostras de tempo disponíveis, ele chama AlertSamplesAvailFunc. Em seguida, o gerenciador de provedores de tempo chama TimeProvCommand com o comando TPC_GetSamples para recuperar os exemplos de tempo. Pode levar até 16 segundos para que o gerenciador de provedores de tempo solicite o exemplo. Portanto, o aplicativo não deve aguardar a solicitação.
Para garantir a precisão, o provedor de tempo deve recuperar todas as informações relacionadas ao tempo usando GetTimeSysInfoFunc.
Quando é hora de desligar o provedor de tempo, o gerenciador de provedores de tempo chama TimeProvClose.