Partager via


Horloges par défaut

Les minidrivers de diffusion en continu du noyau peuvent appeler KsAllocateDefaultClockEx pour allouer et initialiser une structure d’horloge par défaut. Ils peuvent également appeler KsAllocateDefaultClock, qui est un encapsuleur pour KsAllocateDefaultClockEx avec des paramètres par défaut pour les membres non-horloge. Appelez KsCreateDefaultClock après avoir utilisé KsAllocateDefaultClockEx pour initialiser l’horloge par défaut.

L’horloge par défaut prend en charge KSPROPSETID_Clock et peut être accessible comme n’importe quelle autre horloge présentée par une broche de filtre. Toutefois, la structure de données sous-jacente est créée par la broche de filtre et partagée par cette broche et toutes les instances de l’horloge créées. L’horloge s’appuie sur la broche pour mettre à jour l’état actuel et d’autres éléments de la structure partagée. L’horloge par défaut gère les demandes de notification et les requêtes d’horloge.

Lorsqu’une épingle sur le filtre qui fournit cette horloge est affectée à une horloge principale, l’épingle possède cette horloge. L’épingle doit référencer l’objet de fichier d’horloge, comme s’il a été affecté à une autre implémentation d’horloge. L'horloge par défaut ne se réfère pas à l'objet fichier du pin lorsqu'une instance est créée. Au lieu de cela, il conserve un nombre de références interne basé sur l’allocation initiale de la structure d’horloge commune, et sur chaque objet de fichier ouvert sur l’horloge. Même si le propriétaire de l’horloge libère la structure de l’horloge, il reste en place jusqu’à ce que tous les objets de fichier soient fermés. La broche peut accéder directement à l’objet horloge par défaut, plutôt que passer par l’interface d’horloge standard.

Les minidrivers peuvent prendre en charge la propriété KSPROPERTY_CLOCK_FUNCTIONTABLE pour fournir aux clients en mode utilisateur un mécanisme permettant de vérifier l’heure d’horloge de référence. Cette propriété remplit une structure avec des pointeurs de fonction qui l'autorisent, prenant ainsi en charge l'ajustement précis des taux.

En outre, les minidrivers prennent en charge la propriété KSPROPERTY_STREAM_RATE si une broche spécifiée autorise les modifications de débit.

Applications qui utilisent l'interface proxy de streaming du noyau appellent des méthodes dans l'interface IKsClockPropertySet pour obtenir et définir l'heure sur des horloges physiques qui peuvent être utilisées ailleurs pour l'ajustement de débit.

Consultez Gestion de la qualité pour obtenir des informations connexes.