Freigeben über


KSCLOCK_DISPATCH-Struktur (ks.h)

Die KSCLOCK_DISPATCH-Struktur enthält die Rückrufe, die für eine Anheftung erforderlich sind, um ein Uhrobjekt zu implementieren.

Syntax

typedef struct _KSCLOCK_DISPATCH {
  PFNKSPINSETTIMER       SetTimer;
  PFNKSPINCANCELTIMER    CancelTimer;
  PFNKSPINCORRELATEDTIME CorrelatedTime;
  PFNKSPINRESOLUTION     Resolution;
} KSCLOCK_DISPATCH, *PKSCLOCK_DISPATCH;

Member

SetTimer

Enthält optional einen Zeiger auf eine alternative Funktion, die zum Generieren von DPC-Timer-Rückrufen basierend auf einer Präsentationszeit verwendet werden soll. Wenn dies festgelegt ist, wird diese Funktion verwendet, um Timer basierend auf Deltas auf die aktuelle Präsentationszeit festzulegen, um Ereignisbenachrichtigungen zu generieren. Wenn eine alternative Funktion zum Festlegen von Timern angegeben wird, muss auch eine entsprechende CancelTimer-Funktion bereitgestellt werden. Dies wird auf NULL festgelegt, wenn die KeSetTimerEx-Standardfunktion verwendet wird, um die nächste Benachrichtigungszeit anzunähern. Dies wird normalerweise nur festgelegt, wenn eine KeSetTimerEx-Funktion verwendet wird. Die Funktion muss dieselben Merkmale wie die Standardfunktion aufweisen.

Die Funktion sollte wie folgt prototypiert werden:

BOOLEAN SetTimer (IN PKSPIN Pin,
    IN PKTIMER Timer,
    IN LARGE_INTEGER DueTime,
    IN PKDPC Dpc);

Ausführliche Informationen zur Implementierung dieser Funktion finden Sie in der Dokumentation zu KeSetTimerEx . Jede Clientimplementierung muss sich ähnlich verhalten.

CancelTimer

Enthält optional eine alternative Funktion, die beim Abbrechen ausstehender Timerrückrufe verwendet werden soll. Wenn eine alternative Funktion zum Abbrechen von Timern bereitgestellt wird, muss auch eine entsprechende SetTimer-Funktion bereitgestellt werden. Dies ist auf NULL festgelegt, wenn die Standardfunktion KeCancelTimer verwendet werden soll. Die Funktion muss dieselben Merkmale wie die Standardfunktion aufweisen.

Die Funktion sollte wie folgt prototypiert werden:

BOOLEAN CancelTimer (IN PKSPIN Pin,
    IN PKTIMER Timer);

Ausführliche Informationen zur Implementierung dieser Funktion finden Sie in der Dokumentation zu KeCancelTimer . Jede Clientimplementierung muss sich ähnlich verhalten.

CorrelatedTime

Ein Zeiger auf eine Funktion zum Abrufen der aktuellen Uhrzeit und einer korrelierten Systemzeit als atomarer Vorgang. Die Funktion sollte wie folgt prototypiert werden:

LONGLONG CorrelatedTime (IN PKSPIN Pin,
    OUT PLONGLONG SystemTime);

Die aktuelle Uhrzeit sollte zurückgegeben werden, und die aktuelle Systemzeit sollte in SystemTime platziert werden.

Resolution

Ein Zeiger auf eine Funktion, um die Auflösung der Uhr anzugeben. Dies entspricht der KS-Eigenschaft KSPROPERTY_CLOCK_RESOLUTION. Diese Funktion sollte die Granularität in Bezug auf 100 Nanosekundeneinheiten melden. Weitere Informationen finden Sie in der KS-Dokumentation zu KSPROPERTY_CLOCK_RESOLUTION.

Die Funktion sollte wie folgt prototypiert werden:

void Resolution (IN PKSPIN Pin,
        OUT PKSRESOLUTION Resolution);

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar in Microsoft Windows XP und höheren Betriebssystemen sowie in Microsoft DirectX 8.0 und höheren Versionen.
Kopfzeile ks.h (einschließlich Ks.h)

Weitere Informationen

KDPC

KSPIN

KSPIN_DISPATCH

KSPROPERTY_CLOCK_RESOLUTION

KSRESOLUTION

KeSetTimerEx