OID_GEN_CO_GET_TIME_CAPS
Примечание
OID_GEN_CO_GET_TIME_CAPS совпадает с OID_GEN_GET_TIME_CAPS.
OID OID_GEN_CO_GET_TIME_CAPS запрашивает драйвер минипорта для возврата его возможностей для передачи данных о местном времени сетевого адаптера в формате GEN_GET_TIME_CAPS структуры, которая определяется следующим образом:
typedef struct _GEN_GET_TIME_CAPS{
ULONG Flags;
ULONG ClockPrecision;
} GEN_GET_TIME_CAPS, *PGEN_GET_TIME_CAPS;
Элементы этой структуры содержат следующие сведения:
Flags
Следующие флаги могут быть объединены. Все неопределенные флаги должны иметь нулевое значение.
READABLE_LOCAL_CLOCK
Если задано значение , указывает на наличие доступных для чтения часов на сетевом адаптере. Даже без таких аппаратных часов драйвер минипорта может использовать системные часы, вызвав NdisGetCurrentSystemTime, если он сообщает о правильной точности в элементе ClockPrecision.
CLOCK_NETWORK_DERIVED
Если задано значение , указывает, что местное время сетевого адаптера является производным от сетевого подключения, а не от свободно работающих часов.
CLOCK_PRECISION
Если задано значение , указывает, что элемент ClockPrecision содержит допустимые сведения.
RECEIVE_TIME_INDICATION_CAPABLE
Если задано значение , указывает, что оборудование сетевой карты может отметить местное время, в которое оно получает первую ячейку полученного PDU, и что драйвер мини-порта распространяет это время получения для каждого PDU при указании пакета в протокол.
TIMED_SEND_CAPABLE
Если этот параметр задан, указывает, что сетевой адаптер может запланировать передачу пакета в соответствии с местным временем. Протоколы могут использовать NDIS_SET_PACKET_TIME_TO_SEND для задания метки времени TimeToSend во внеполосном блоке данных дескриптора пакета. Установка метки времени не влияет на фактическое время передачи пакета; Вместо этого метка времени используется для хранения записей. Драйвер протокола может использовать метку времени, чтобы определить, сколько времени потребуется для завершения отправки пакета.
TIME_STAMP_CAPABLE
Если задано значение , указывает, что сетевой адаптер может пометить (в соответствующем поле исходящего пакета) время передачи первого байта пакета и что сетевой адаптер может извлечь это время из того же поля входящего пакета.
ClockPrecision
Указывает точность часов в частях на миллион. Чтобы эти сведения считались допустимыми, необходимо установить флаг CLOCK_PRECISION.
Комментарии
Драйвер мини-порта может обеспечить поддержку определенных параметров времени даже при отсутствии локальных или сетевых часов. В частности, драйвер минипорта может использовать системные часы для указания времени получения, отправки по времени и даже метки времени. Часы на основе сетевого адаптера лучше, так как они, скорее всего, обеспечивают более высокую точность и будут доступны с меньшей задержкой, чем системные часы. Во всех случаях драйвер мини-порта должен указать точность часов, которые он использует. Это позволяет протоколам определить, как лучше всего использовать поддержку времени драйвера мини-порта.
Если водитель минипорта сообщает о наличии доступных для чтения часов, он должен быть готов немедленно ответить на запрос OID_GEN_GET_NETCARD_TIME. Ответ драйвера минипорта на этот вызов является критическим по времени и поэтому должен быть синхронным.
Требования
Версия: Windows Vista и более поздних версий Заголовок: Ntddndis.h (включая Ndis.h)