Een tijdprovider maken
Een tijdprovider wordt geïmplementeerd als een DLL. Elke DLL kan meerdere tijdproviders ondersteunen. Elke provider is verantwoordelijk voor een eigen configuratie en synchronisatie.
Tijdproviders moeten de volgende callback-functies implementeren:
Nadat het DLL-bestand van de provider is geladen, roept de tijdprovidermanager TimeProvOpenaan, waarbij de naam van de provider en aanwijzers worden doorgegeven aan de volgende functies:
Deze functies zijn bedoeld voor gebruik door de tijdprovider. De tijd-provider gebruikt TimeProvOpen om een providerhandle te retourneren die de tijd-provider-manager gebruikt bij het verzenden van opdrachten naar de tijd-provider. De handlewaarde wordt gedefinieerd door de tijdprovider en wordt voornamelijk gebruikt om onderscheid te maken tussen verschillende providers die in dezelfde DLL zijn geïmplementeerd. De tijdprovider kan belangrijke gebeurtenissen registreren met behulp van LogTimeProvEventFunc-.
De tijdprovidermanager gebruikt TimeProvCommand- om opdrachten naar de tijdprovider te verzenden. Wanneer de tijdprovider de tijdprovidermanager op de hoogte moet stellen dat er tijdmonsters beschikbaar zijn, roept hij AlertSamplesAvailFuncaan. De tijdprovidermanager roept vervolgens TimeProvCommand- aan met de opdracht TPC_GetSamples om de tijdsvoorbeelden op te halen. Het kan tot 16 seconden duren voordat de providermanager het voorbeeld heeft aangevraagd. Daarom moet de toepassing niet wachten op de aanvraag.
Om de nauwkeurigheid te garanderen, moet de tijdprovider alle tijdgerelateerde informatie ophalen met behulp van GetTimeSysInfoFunc.
Wanneer het tijd is om de tijdprovider uit te schakelen, wordt TimeProvClosedoor de tijdprovidermanager opgeroepen.