Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Wenn der Minidriver die StreamClassQueryMasterClock Routine aufruft, fragt der Klassentreiber den entsprechenden Zeitwert der Masteruhr asynchron ab und übergibt das Ergebnis an die routine, die im ClockCallbackRoutine Parameter übergeben wird.
Syntax
VOID StreamClassQueryMasterClock(
[in] PHW_STREAM_OBJECT HwStreamObject,
[in] HANDLE MasterClockHandle,
[in] TIME_FUNCTION TimeFunction,
[in] PHW_QUERY_CLOCK_ROUTINE ClockCallbackRoutine
);
Parameter
[in] HwStreamObject
Zeigen Sie auf eine HW_STREAM_OBJECT, die den Datenstrom angibt, der die Masteruhr abfragt. Der Datenstrom kann jeweils nur eine Abfrage ausstehen. Der Klassentreiber übergibt diesen Wert an den Rückruf im HwStreamObject Member des TimeContext Parameter des Rückrufs.
[in] MasterClockHandle
Gibt das Handle für die Masteruhr an, die abgefragt wird. Der Klassentreiber übergibt dies in der SRB_INDICATE_MASTER_CLOCK Anforderung an die StrMiniReceiveStreamControlPacket Routine des Minidrivers.
[in] TimeFunction
Gibt an, für welche Zeitfunktion die Masteruhr abfragen soll. Mögliche Werte finden Sie unter HW_TIME_CONTEXT. Der Klassentreiber übergibt diesen Wert an den Rückruf im Function Member des TimeContext- Parameters.
[in] ClockCallbackRoutine
Gibt die Routine an, an die der Klassentreiber die Ergebnisse übergibt. Der Funktionsprototyp muss folgendes sein:
ClockCallbackRoutine(PHW_TIME_CONTEXT TimeContext);
Rückgabewert
Nichts
Bemerkungen
Der Klassentreiber fragt die Masteruhr ab und übergibt die Ergebnisse im TimeContext Parameter (vom Typ HW_TIME_CONTEXT) des Rückrufs. Insbesondere legt es den Time Member dieser Struktur auf den zeitwert fest, der im TimeFunction Parameter angefordert wird, die aktuelle Systemzeit im SystemTime Member derselben Struktur und die Geräteerweiterung des Minidrivers in der HwDeviceExtension Member dieser Struktur.
Der Klassentreiber verordnet die HW_TIME_CONTEXT Struktur ab, nachdem die Uhrrückrufroutine beendet wurde, sodass der Rückruf alle Informationen speichern muss, die der Minidriver beibehalten möchte. Zu diesem Zweck kann die Rückrufroutine entweder zuvor zugewiesenen Speicherplatz in der Geräteerweiterung des Minidrivers (TimeContext->HwDeviceExtension) oder die Streamerweiterung des Datenstroms verwenden, der die Masteruhr abgefragt hat (TimeContext->HwStreamObject->HwStreamExtension).
In seltenen Fällen wechselt der Graph-Manager die Masteruhr. Der Klassenfahrer macht eine Rennbedingung beim Umgang mit der neuen Masteruhr verfügbar. Wenn der Minidriver unmittelbar nach dem Empfangen einer neuen Uhr vom Klassentreiber eine Streamklassenmasteruhr-Routine aufruft, kann der Klassentreiber unerwartete Ergebnisse erzielen.
Anforderungen
| Anforderung | Wert |
|---|---|
| Zielplattform- | Desktop |
| Header- | strmini.h (einschließlich Strmini.h) |
| Library | Stream.lib |