Partager via


StreamClassQueryMasterClock, fonction (strmini.h)

Lorsque le minidriver appelle la routine StreamClassQueryMasterClock, le pilote de classe interroge la valeur de temps appropriée de l’horloge principale de manière asynchrone et transmet le résultat à la routine passée dans le paramètre ClockCallbackRoutine.

Syntaxe

void StreamClassQueryMasterClock(
  [in] PHW_STREAM_OBJECT       HwStreamObject,
  [in] HANDLE                  MasterClockHandle,
  [in] TIME_FUNCTION           TimeFunction,
  [in] PHW_QUERY_CLOCK_ROUTINE ClockCallbackRoutine
);

Paramètres

[in] HwStreamObject

Pointeur vers un HW_STREAM_OBJECT indiquant le flux qui interroge son horloge principale. Le flux ne peut avoir qu’une seule requête en attente à la fois. Le pilote de classe transmet cette valeur au rappel dans le HwStreamObject membre du paramètre TimeContext du rappel.

[in] MasterClockHandle

Spécifie le handle de l’horloge principale interrogée. Le pilote de classe le transmet dans la requête SRB_INDICATE_MASTER_CLOCK à la routine StrMiniReceiveStreamControlPacket du minidriver.

[in] TimeFunction

Spécifie la fonction d’heure pour laquelle interroger l’horloge principale. Consultez HW_TIME_CONTEXT pour connaître les valeurs possibles. Le pilote de classe transmet cette valeur au rappel dans le membre Function du paramètre TimeContext.

[in] ClockCallbackRoutine

Spécifie la routine à laquelle le pilote de classe transmet les résultats. Le prototype de fonction doit être :

ClockCallbackRoutine(PHW_TIME_CONTEXT TimeContext);

Valeur de retour

Aucun

Remarques

Le pilote de classe interroge l’horloge principale et transmet les résultats au paramètre TimeContext (de type HW_TIME_CONTEXT) du rappel. En particulier, il définit le membre Time de cette structure sur la valeur de temps demandée dans le paramètre TimeFunction, l’heure système actuelle dans le membre SystemTime de la même structure et l’extension d’appareil du minidriver dans le HwDeviceExtension membre de cette structure.

Le pilote de classe désalloue la structure HW_TIME_CONTEXT une fois la routine de rappel d’horloge terminée, de sorte que le rappel doit stocker toutes les informations que le minidriver souhaite conserver. À cet effet, la routine de rappel peut utiliser l’espace alloué précédemment dans l’extension d’appareil du minidriver (TimeContext->HwDeviceExtension), ou l’extension de flux du flux qui a interrogé son horloge principale (TimeContext->HwStreamObject->HwStreamExtension).

À de rares occasions, le gestionnaire de graphiques change l’horloge principale. Le pilote de classe expose une condition de course dans la gestion du nouvel horloge maître. Si le minidriver appelle une routine d’horloge maître de classe de flux immédiatement après qu’il reçoit une nouvelle horloge du pilote de classe, le pilote de classe peut produire des résultats inattendus.

Exigences

Exigence Valeur
plateforme cible Bureau
d’en-tête strmini.h (include Strmini.h)
bibliothèque Stream.lib

Voir aussi

HW_TIME_CONTEXT

StrMiniReceiveStreamControlPacket

StreamClassQueryMasterClockSync