Partilhar via


Relógios padrão

Minidrivers de streaming do kernel podem chamar KsAllocateDefaultClockEx para alocar e inicializar uma estrutura de relógio padrão. Como alternativa, eles podem chamar KsAllocateDefaultClock, que é um encapsulador para KsAllocateDefaultClockEx com parâmetros padrão para os membros não relacionados ao relógio. Chame KsCreateDefaultClock depois de usar KsAllocateDefaultClockEx para inicializar o relógio padrão.

O relógio padrão suporta KSPROPSETID_Clock e pode ser acessado como qualquer outro relógio apresentado por um pino de filtro. A estrutura de dados subjacente, no entanto, é criada pelo pino do filtro e partilhada por esse pino e por quaisquer instâncias do relógio que sejam criadas. O relógio depende do pino para atualizar o estado atual e outros elementos na estrutura compartilhada. O relógio padrão lida com solicitações de notificação e consultas de relógio.

Quando um pino no filtro que fornece esse relógio recebe um relógio mestre, o pino possui esse relógio. O pino deve fazer referência ao objeto do arquivo de relógio, como se lhe fosse atribuída alguma outra implementação de relógio. O relógio padrão não faz referência ao objeto de arquivo do pino quando uma instância é criada. Em vez disso, ele mantém uma contagem de referência interna com base na alocação inicial da estrutura de relógio comum e em cada objeto de arquivo aberto no relógio. Mesmo que o proprietário do relógio libere a estrutura do relógio, ele permanece no lugar até que todos os objetos de arquivo sejam fechados. O pino pode acessar diretamente o objeto de relógio padrão, em vez de passar pela interface de relógio padrão.

Os minidrivers podem suportar a propriedade KSPROPERTY_CLOCK_FUNCTIONTABLE para fornecer aos clientes de modo de usuário um mecanismo para verificar a hora do relógio de referência. Esta propriedade preenche uma estrutura com ponteiros de função que facilitam essa funcionalidade, suportando assim a compatibilidade de taxa exata.

Além disso, os minidrivers suportam a propriedade KSPROPERTY_STREAM_RATE se um pino especificado permitir alterações na taxa.

Aplicações que usam a interface de proxy de streaming do kernel chamam métodos na interface IKsClockPropertySet para obter e definir o tempo em relógios físicos que podem ser usados em outros contextos para correção de taxa.

Consulte Gestão da Qualidade para obter informações relacionadas.