Udostępnij przez


Domyślne zegary

Minidrivery przesyłania strumieniowego jądra mogą wywoływać funkcję KsAllocateDefaultClockEx, aby przydzielić i zainicjować domyślną strukturę zegara. Alternatywnie mogą wywołać funkcję KsAllocateDefaultClock, która jest opakowaniem dla funkcji KsAllocateDefaultClockEx z domyślnymi parametrami dla członków nie dotyczących zegara. Wywołaj metodę KsCreateDefaultClock po użyciu polecenia KsAllocateDefaultClockEx , aby zainicjować zegar domyślny.

Zegar domyślny obsługuje KSPROPSETID_Clock i może być dostępny tak samo jak każdy inny zegar przedstawiony przez pin filtru. Podstawowa struktura danych jest jednak tworzona przez pin filtra i współdzielona przez ten pin oraz wszystkie instancje zegara, które zostaną utworzone. Zegar opiera się na numerze PIN, aby zaktualizować bieżący stan i inne elementy w strukturze udostępnionej. Domyślny zegar odpowiada za obsługę żądań powiadomień i zapytań dotyczących zegara.

Gdy pin filtru zapewniającego ten zegar jest przypisany jako zegar główny, pin przejmuje ten zegar. Pin powinien odwoływać się do obiektu pliku zegara, tak jakby przypisano mu inną implementację zegara. Zegar domyślny nie odwołuje się do obiektu pliku styku podczas tworzenia wystąpienia. Zamiast tego utrzymuje wewnętrzną liczbę odwołań, opierając się na początkowej alokacji wspólnej struktury zegara oraz na każdym obiekcie pliku otwartym w związku z zegarem. Nawet jeśli właściciel zegara zwolni strukturę zegara, pozostaje ona na miejscu do chwili zamknięcia wszystkich obiektów plików. Pin może bezpośrednio uzyskać dostęp do domyślnego obiektu zegara, zamiast przechodzić przez standardowy interfejs zegara.

Minidriver może obsługiwać właściwość KSPROPERTY_CLOCK_FUNCTIONTABLE, aby zapewnić klientom działającym w trybie użytkownika mechanizm sprawdzania czasu zegara odniesienia. Ta właściwość wypełnia strukturę wskaźnikami funkcji, które to umożliwiają, dzięki czemu obsługuje precyzyjne dopasowywanie szybkości.

Ponadto minidrivers obsługują właściwość KSPROPERTY_STREAM_RATE, jeśli określony pin zezwala na zmiany tempa.

Aplikacje korzystają z interfejsu serwera proxy przesyłania strumieniowego jądra, wywołując metody w interfejsie IKsClockPropertySet w celu uzyskania i ustawienia czasu na zegarach fizycznych, które mogą być używane gdzie indziej do dopasowywania szybkości.

Aby uzyskać powiązane informacje, zobacz Zarządzanie jakością .