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.