SRB_INDICATE_MASTER_CLOCK
Драйвер класса отправляет этот запрос, чтобы указать потоку дескриптор для объекта часов, который теперь служит в качестве master часов, или нулевой дескриптор, указывающий, что поток работает свободно.
Возвращаемое значение
Мини-диск должен задать одно из следующих состояний в SRB:
STATUS_SUCCESS
Указывает на успешное выполнение команды.
STATUS_NOT_IMPLEMENTED
Указывает, что функция не поддерживается мини-накопителем.
STATUS_IO_DEVICE_ERROR
Указывает, что произошел сбой оборудования.
Комментарии
Драйвер класса задает CommandData. Элемент MasterClockHandle, на который указывает pSrb на дескриптор объекта clock, представляющего master часы. Указатель pSrb указывает на структуру HW_STREAM_REQUEST_BLOCK .
Поток может запрашивать значение времени master часов, передав дескриптор master в StreamClassQueryMasterClock или StreamClassQueryMasterClockSync.
Пока мини-диск не получит SRB_INDICATE_MASTER_CLOCK для определенного потока, он может предположить, что поток работает бесплатно. Если дескриптор, переданный в этом SRB для подчиненного контакта, совпадает с дескриптором, переданным в мини-диск в SRB_OPEN_MASTER_CLOCK, мини-диск может считывать время непосредственно из master часов, так как он управляет master и подчиненным.
Мини-накопитель должен сохранить поле CommandData.MasterClockHandle в SRB, которое указывает на дескриптор для master часов. Если этот дескриптор равен нулю, он указывает на то, что этот поток теперь является бесплатным и не может быть подчиненным master часам.