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


OID_GEN_TRANSPORT_HEADER_OFFSET

Как набор, OID_GEN_TRANSPORT_HEADER_OFFSET OID указывает размер дополнительных заголовков для пакетов, которые отправляет и получает конкретный транспорт.

Сведения о версии

Windows Vista и более поздние версии Windows
Поддерживается.

Драйверы мини-портов NDIS 6.0 и более поздних версий
Необязательный элемент.

Драйверы минипорта NDIS 5.1
Необязательный элемент.

Windows XP
Поддерживается.

Драйверы минипорта NDIS 5.1
Необязательный элемент.

Комментарии

Транспорт информирует водителей минипорта и других многоуровневых драйверов об этом размере заголовка; затем эти драйверы могут использовать эти сведения при обработке пакетов. Например, драйвер может использовать размер заголовка вложенного слоя, полученный из транспорта, чтобы найти начало данных более высокого уровня в пакетах, таких как начало ip-заголовка; затем драйвер может проанализировать и соответствующим образом настроить поля заголовка ПРОТОКОЛА IP. Транспорты используют структуру TRANSPORT_HEADER_OFFSET, определенную следующим образом, чтобы указать этот размер заголовка.

typedef struct _TRANSPORT_HEADER_OFFSET {
  USHORT  ProtocolType; 
  USHORT  HeaderOffset; 
} TRANSPORT_HEADER_OFFSET, *PTRANSPORT_HEADER_OFFSET;

Элементы этой структуры содержат следующие сведения:

ProtocolType
Указывает тип протокола, который отправляет этот OID, а затем отправляет и получает пакеты, используя указанный размер заголовка подслоя. Протокол является одним из следующих значений:

NDIS_PROTOCOL_ID_DEFAULT
Протокол по умолчанию

NDIS_PROTOCOL_ID_TCP_IP
Протокол TCP/IP

NDIS_PROTOCOL_ID_IPX
Протокол NETWare IPX

NDIS_PROTOCOL_ID_NBF
Протокол NetBIOS

HeaderOffset
Указывает размер (в байтах) заголовка подслоя, который предшествует заголовку протокола для пакетов, которые протокол впоследствии отправляет или получает от драйвера мини-порта или другого многоуровневого драйвера. Например, sizeof(Заголовок Ethernet) + sizeof(заголовок SNAP).

Как правило, транспорты вычисляют размер заголовков пакетов из сведений, полученных от драйверов мини-порта. Чтобы запросить максимальный общий размер пакета в байтах, поддерживаемый сетевой картой, включая заголовок, транспорты используют OID_GEN_MAXIMUM_TOTAL_SIZE OID. Чтобы запросить максимальный размер пакета в байтах, поддерживаемый сетевой картой, не включая заголовок, транспорты используют OID_GEN_MAXIMUM_FRAME_SIZE OID. Чтобы вычислить максимальный размер заголовка, транспорты вычитают максимальный размер кадра из максимального общего размера.

Если транспорт передает пакеты, содержащие сведения о заголовке подслоя, транспорт должен знать размер заголовка подслоя этих пакетов и информировать базовые драйверы мини-портов и другие многоуровневые драйверы о размере, чтобы драйверы могли обрабатывать пакеты. Отправка и получение сведений о заголовке определенного подслоя в пакете может быть параметром, который можно задать в реестре для определенного протокола. Затем транспорты могут получать сведения о заголовках подслоев из реестра и передавать размер заголовка в драйверы мини-портов или другие многоуровневые драйверы.

Например, если транспорт обрабатывает пакеты из среды Fibre Distributed Data Interface, транспорт должен отправить запрос набора базовым драйверам мини-портов и другим многоуровневые драйверы, используя OID_GEN_TRANSPORT_HEADER_OFFSET для информирования этих драйверов о размере подслойного заголовка пакетов. (FDDI не поддерживается в Windows Vista и более поздних версиях Windows.) Эти пакеты из FDDI могут содержать сведения об управлении логическими ссылками (LLC). Эти сведения LLC, в свою очередь, могут включать заголовок LLC и другие заголовки, такие как Sub-Network Access Protocol (SNAP). Транспорт определяет из реестра использование LLC/SNAP и передает размер заголовка сегментов пакетов LLC/SNAP драйверам мини-порта.

Этот идентификатор OID является необязательным для драйверов мини-портов и других многоуровневые драйверы. Так как этот OID является необязательным, драйверы не обязаны отвечать на запросы, выполняемые транспортом с помощью этого идентификатора.

Требования

Заголовок

Ntddndis.h (включая Ndis.h)

См. также раздел

OID_GEN_MAXIMUM_FRAME_SIZE

OID_GEN_MAXIMUM_TOTAL_SIZE