Freigeben über


Standarduhren

Kernelstreaming-Minidriver können KsAllocateDefaultClockEx aufrufen, um eine Standarduhrstruktur zuzuweisen und zu initialisieren. Alternativ können sie KsAllocateDefaultClock aufrufen, bei dem es sich um einen Wrapper für KsAllocateDefaultClockEx mit Standardparametern für die Nonclock-Member handelt. Rufen Sie KsCreateDefaultClock nach verwendung von KsAllocateDefaultClockEx auf, um die Standarduhr zu initialisieren.

Die Standarduhr unterstützt KSPROPSETID_Clock und kann genauso wie jede andere Uhr aufgerufen werden, die durch einen Filternadel dargestellt wird. Die zugrunde liegende Datenstruktur wird jedoch durch den Filter-Pin erstellt und von diesem Pin und allen Instanzen der von ihm erstellten Uhr geteilt. Die Uhr verwendet den 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 Masteruhr zugewiesen wird, besitzt der Pin diese Uhr. Der Pin sollte auf das Clock-Dateiobjekt verweisen, genau so, als ob ihm eine andere Taktimplementierung zugewiesen wurde. Die Standarduhr verweist nicht auf das Dateiobjekt des Pins, wenn eine Instanz erstellt wird. Stattdessen wird eine interne Referenzanzahl basierend auf der anfänglichen Zuordnung der allgemeinen Uhrstruktur und auf jedem Dateiobjekt, das auf der Uhr geöffnet wird, beibehalten. Selbst wenn der Besitzer der Uhr die Uhrenstruktur freigibt, bleibt sie vorhanden, bis alle Dateiobjekte geschlossen werden. Der Pin kann direkt auf das Standarduhrobjekt zugreifen, anstatt die Standarduhrschnittstelle zu durchlaufen.

Minitreiber können die KSPROPERTY_CLOCK_FUNCTIONTABLE-Eigenschaft unterstützen, um einen Mechanismus bereitzustellen, mit dem Benutzer im Benutzermodus die Referenzuhrzeit überprüfen können. Diese Eigenschaft füllt eine Struktur mit Funktionszeigern aus, die dies ermöglichen, wodurch präzise Ratevergleiche unterstützt werden.

Darüber hinaus unterstützen Minidriver die KSPROPERTY_STREAM_RATE Eigenschaft, wenn ein angegebener Pin Änderungen der Rate zulässt.

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

Weitere Informationen finden Sie unter Qualitätsmanagement .