Compartilhar via


SRB_INDICATE_MASTER_CLOCK

O driver de classe emite essa solicitação para indicar a um fluxo o identificador do objeto de relógio que agora serve como seu relógio master ou um identificador zero para indicar que o fluxo está em execução livre.

Valor retornado

O minidriver deve definir um dos seguintes como o status no SRB:

STATUS_SUCCESS
Indica a conclusão bem-sucedida do comando.

STATUS_NOT_IMPLEMENTED
Indica que a função não é compatível com o minidriver.

STATUS_IO_DEVICE_ERROR
Indica que ocorreu uma falha de hardware.

Comentários

O driver de classe define o CommandData. Membro MasterClockHandle apontado por pSrb para o identificador do objeto de relógio que representa o relógio master. O ponteiro pSrb aponta para uma estrutura de HW_STREAM_REQUEST_BLOCK .

Um fluxo pode consultar o valor de hora do relógio master passando o identificador do relógio master para StreamClassQueryMasterClock ou StreamClassQueryMasterClockSync.

Até que o minidriver receba uma SRB_INDICATE_MASTER_CLOCK para um fluxo específico, ele pode assumir que o fluxo está em execução gratuita. Se o identificador passado neste SRB para um pino subordinado for o mesmo que o identificador passado para o minidriver em SRB_OPEN_MASTER_CLOCK, o minidriver poderá ler a hora diretamente do relógio master porque controla o master e o subordinado.

O minidriver deve manter o campo CommandData.MasterClockHandle no SRB que aponta para o identificador do relógio master. Se esse identificador for zero, ele indicará ao minidriver que esse fluxo agora está em execução livre e não pode ser subordinado a um relógio master.