Condividi tramite


Orologi predefiniti

I minidriver di streaming del kernel possono chiamare KsAllocateDefaultClockEx per allocare e inizializzare una struttura di clock predefinita. In alternativa, possono chiamare KsAllocateDefaultClock, che è un wrapper per KsAllocateDefaultClockEx con parametri predefiniti per i membri non di blocco. Chiamare KsCreateDefaultClock dopo aver usato KsAllocateDefaultClockEx per inizializzare l'orologio predefinito.

L'orologio predefinito supporta KSPROPSETID_Clock e può essere accessibile come qualsiasi altro orologio presentato da un pin di filtro. La struttura dei dati sottostante, tuttavia, viene creata dal pin del filtro e condivisa da tale pin e da tutte le istanze dell'orologio create. L'orologio si basa sul pin per aggiornare lo stato corrente e altri elementi nella struttura condivisa. L'orologio predefinito gestisce le richieste di notifica e le query di clock.

Quando viene assegnato un segnaposto sul filtro che fornisce questo orologio viene assegnato un orologio master, il segnaposto è proprietario di questo orologio. Il pin deve fare riferimento all'oggetto file di clock, come se fosse stato assegnato un'altra implementazione dell'orologio. L'orologio predefinito non fa riferimento all'oggetto file del pin quando viene creata un'istanza. Mantiene invece un conteggio dei riferimenti interno in base all'allocazione iniziale della struttura di clock comune e a ogni oggetto file aperto sull'orologio. Anche se il proprietario dell'orologio libera la struttura dell'orologio, rimane sul posto fino a quando tutti gli oggetti file non vengono chiusi. Il pin può accedere direttamente all'oggetto orologio predefinito, anziché passare attraverso l'interfaccia dell'orologio standard.

I minidriver possono supportare la proprietà KSPROPERTY_CLOCK_FUNCTIONTABLE per fornire ai client in modalità utente un meccanismo per controllare l'ora del clock di riferimento. Questa proprietà riempie una struttura con puntatori a funzione che lo abilitano, supportando in tal modo la corrispondenza precisa della frequenza.

Inoltre, i minidriver supportano la proprietà KSPROPERTY_STREAM_RATE se un pin specificato consente modifiche alla frequenza.

Le applicazioni che usano i metodi di chiamata dell'interfaccia proxy di streaming del kernel nell'interfaccia IKsClockPropertySet per ottenere e impostare l'ora sugli orologi fisici che possono essere usati altrove per la corrispondenza delle tariffe.

Per informazioni correlate, vedere Gestione della qualità .