Standarduhren

Kernelstreaming-Minidriver können KsAllocateDefaultClockEx aufrufen, um eine Standarduhrstruktur zuzuordnen und zu initialisieren. Alternativ können sie KsAllocateDefaultClock aufrufen, bei dem es sich um einen Wrapper für KsAllocateDefaultClockEx mit Standardparametern für die Nicht-Clock-Member handelt. Rufen Sie KsCreateDefaultClock auf, nachdem Sie KsAllocateDefaultClockEx zum Initialisieren der Standarduhr verwendet haben.

Die Standarduhr unterstützt KSPROPSETID_Clock und kann genauso wie auf jede andere Uhr zugegriffen werden, die von einem Filternadel angezeigt wird. Die zugrunde liegende Datenstruktur wird jedoch vom Filternadel erstellt und von dieser Pin und allen instanzen der erstellten Uhr freigegeben. Die Uhr basiert auf der Pin, um den aktuellen Zustand und andere Elemente in der freigegebenen Struktur zu aktualisieren. Die Standarduhr verarbeitet Benachrichtigungsanforderungen und Uhrenabfragen.

Wenn einem Pin auf dem Filter, der diese Uhr bereitstellt, eine master Uhr zugewiesen wird, besitzt der Pin diese Uhr. Der Pin sollte auf das Uhrdateiobjekt verweisen, so als ob ihm eine andere Uhrimplementierung zugewiesen wäre. Die Standarduhr verweist nicht auf das Dateiobjekt des Pins, wenn ein instance erstellt wird. Stattdessen wird eine interne Verweisanzahl basierend auf der anfänglichen Zuordnung der allgemeinen Uhrstruktur und für jedes auf der Uhr geöffnete Dateiobjekt beibehalten. Selbst wenn der Besitzer der Uhr die Uhrstruktur freigibt, bleibt sie an Ort und Stelle, bis alle Dateiobjekte geschlossen werden. Der Pin kann direkt auf das Standarduhrobjekt zugreifen, anstatt die Standarduhrschnittstelle zu durchlaufen.

Minidriver können die KSPROPERTY_CLOCK_FUNCTIONTABLE-Eigenschaft unterstützen, um Clients im Benutzermodus einen Mechanismus zum Überprüfen der Referenzuhrzeit bereitzustellen. Diese Eigenschaft füllt eine -Struktur mit Funktionszeigern auf, die dies ermöglichen, und unterstützt dadurch eine präzise Ratenabgleichung.

Darüber hinaus unterstützen Minidriver die KSPROPERTY_STREAM_RATE-Eigenschaft , wenn eine angegebene Pin Ratenänderungen zulässt.

Anwendungen, die die Kernel-Streamingproxyschnittstelle verwenden, rufen Methoden in der IKsClockPropertySet-Schnittstelle auf, um die Zeit auf physischen Uhren abzurufen und festzulegen, die an anderer Stelle für den Ratenabgleich verwendet werden können.

Weitere Informationen finden Sie unter Qualitätsmanagement .