Поделиться через


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 часам.