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


Инициализация поставщика разбиения Header-Data

Для поддержки разделения заголовков и данных драйвер мини-порта необходимо зарегистрировать как драйвер NDIS 6.1 или более поздней версии. В файле источников для драйвера мини-порта необходимо указать DNDIS61_MINIPORT=1 вместо DNDIS60_MINIPORT=1. Драйвер мини-порта также должен указать NDIS 6.1 или более позднюю версию в структуре NDIS_MINIPORT_DRIVER_CHARACTERISTICS .

Чтобы зарегистрировать атрибуты разделения заголовков и данных, драйвер минипорта NDIS 6.1 вызывает функцию NdisMSetMiniportAttributes из функции MiniportInitializeEx и передает NdisMSetMiniportAttributes инициализированнуюструктуру NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES .

Структура NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES содержит следующие сведения:

  • Элемент HDSplitAttributes NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES содержит указатель на структуру NDIS_HD_SPLIT_ATTRIBUTES , которая определяет возможности разделения заголовков и данных, которые предоставляет адаптер мини-порта.

  • Член HardwareCapabilities NDIS_HD_SPLIT_ATTRIBUTES содержит возможности разделения заголовков и данных, поддерживаемые адаптером мини-порта. Эти возможности могут включать возможности, которые в настоящее время отключены параметрами INF-файла или на странице Дополнительные свойства.

  • Элемент CurrentCapabilities NDIS_HD_SPLIT_ATTRIBUTES содержит текущие возможности разделения заголовков и данных, поддерживаемые адаптером мини-порта. Если разделение заголовков и данных включено с помощью стандартизованного INF-ключевое слово *HeaderDataSplit, драйвер мини-порта использует те же флаги, что и член HardwareCapabilities, чтобы указать текущую конфигурацию разделения заголовков и данных. Дополнительные сведения о *HeaderDataSplit см. в разделе Стандартизированные ключевые слова INF для разбиения Header-Data.

  • Элемент HDSplitFlags NDIS_HD_SPLIT_ATTRIBUTES содержит флаги конфигурации разделения заголовков и данных. Драйвер мини-порта должен установить для этого элемента значение 0 перед вызовом NdisMSetMiniportAttributes. NDIS задает этому члену побитовое ИЛИ флагов конфигурации. После успешного возврата NdisMSetMiniportAttributes драйвер мини-порта должен проверка параметры флага в HDSplitFlags и соответствующим образом настроить оборудование.

NDIS использует флаг NDIS_HD_SPLIT_ENABLE_HEADER_DATA_SPLIT, чтобы включить разделение заголовков и данных для адаптера минипорта. NDIS не устанавливает NDIS_HD_SPLIT_ENABLE_HEADER_DATA_SPLIT, если драйвер мини-порта не установил флаг NDIS_HD_SPLIT_CAPS_SUPPORTS_HEADER_DATA_SPLIT в элементе CurrentCapabilitiesструктуры NDIS_HD_SPLIT_ATTRIBUTES . Драйвер мини-порта должен включить разделение заголовков и данных в сетевом адаптере, если NDIS устанавливает флаг NDIS_HD_SPLIT_ENABLE_HEADER_DATA_SPLIT.

Драйвер мини-порта должен задать для элемента BackfillSize структуры NDIS_HD_SPLIT_ATTRIBUTES значение 0, прежде чем вызывать атрибуты NdisMSetMiniportAttributes. NDIS задает член BackfillSize, если драйвер мини-порта должен предварительно выделить хранилище обратного заполнения в буфере данных разделенных кадров. После успешного возврата NdisMSetMiniportAttributes драйвер мини-порта должен использовать значение BackfillSize , указанное NDIS, и предварительно выделить буферы данных. Дополнительные сведения о размере обратного заполнения буфера данных см. в разделе Выделение обратного заполнения для буфера данных.

Драйвер мини-порта должен задать для элемента MaxHeaderSize структуры NDIS_HD_SPLIT_ATTRIBUTES значение 0, прежде чем вызывать атрибуты NdisMSetMiniportAttributes. NDIS задает этому элементу максимальный размер, допустимый для буфера заголовков разделенных кадров. После успешного возврата NdisMSetMiniportAttributes драйвер мини-порта должен использовать значение MaxHeaderSize , указанное NDIS. Дополнительные сведения о максимальном размере заголовка см. в разделе Выделение буфера заголовков.