Horloges par défaut
Les mini-disques de streaming de noyau peuvent appeler KsAllocateDefaultClockEx pour allouer et initialiser une structure d’horloge par défaut. Ils peuvent également appeler KsAllocateDefaultClock, qui est un wrapper pour KsAllocateDefaultClockEx avec des paramètres par défaut pour les membres non-verrouilleux. 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 est 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 l’épingle pour mettre à jour l’état actuel et d’autres éléments dans la structure partagée. L’horloge par défaut gère les demandes de notification et les requêtes d’horloge.
Lorsqu’une broche sur le filtre qui fournit cette horloge se voit attribuer une horloge master, l’épingle est propriétaire de cette horloge. Le code pin doit référencer l’objet de fichier d’horloge, comme s’il avait été affecté à une autre implémentation d’horloge. L’horloge par défaut ne fait pas référence à l’objet de fichier de l’épingle lors de la création d’un instance. 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 d’horloge, celle-ci reste en place jusqu’à ce que tous les objets de fichier soient fermés. La broche peut accéder directement à l’objet d’horloge par défaut, au lieu de 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 d’case activée heure d’horloge de référence. Cette propriété remplit une structure avec des pointeurs de fonction qui le permettent, ce qui prend en charge la correspondance précise du 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.
Les 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 les horloges physiques qui peuvent être utilisées ailleurs pour la correspondance de débit.
Pour obtenir des informations connexes, consultez Gestion de la qualité .