Partager via


Fonction StreamClassQueryMasterClock (strmini.h)

Lorsque le minidriver appelle la routine StreamClassQueryMasterClock, le pilote de classe interroge la valeur de temps appropriée de l’horloge master 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 master. 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 membre HwStreamObject du paramètre TimeContext du rappel.

[in] MasterClockHandle

Spécifie le handle de l’horloge master interrogée. Le pilote de classe transmet cela 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 master. 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

None

Remarques

Le pilote de classe interroge l’horloge master et transmet les résultats dans le 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 membre HwDeviceExtension de cette structure.

Le pilote de classe libère 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. À cette fin, 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 master (TimeContext-HwStreamObject-HwStreamExtension).>>

À de rares occasions, le gestionnaire de graphiques change l’horloge master. Le pilote de classe expose une condition de course lors de la gestion de la nouvelle horloge master. Si le minidriver appelle une classe de flux master routine d’horloge immédiatement après avoir reçu une nouvelle horloge du pilote de classe, le pilote de classe peut produire des résultats inattendus.

Configuration requise

Condition requise Valeur
Plateforme cible Desktop (Expérience utilisateur)
En-tête strmini.h (include Strmini.h)
Bibliothèque Stream.lib

Voir aussi

HW_TIME_CONTEXT

StrMiniReceiveStreamControlPacket

StreamClassQueryMasterClockSync