Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Драйвер протокола TCP/IP Windows накладывает набор требований для получения кадров Ethernet. Любой драйвер, который обрабатывает индикации приема кадров Ethernet или модифицирует индикации приема базовых драйверов, должен поддерживать общие требования, которые налагает TCP/IP. К этим драйверам относятся драйверы минипорта Ethernet, промежуточные драйверы MUX и драйверы фильтров.
Примечание Если драйвер не соответствует этим требованиям, вышележащие драйверы (такие как транспорт TCP/IP, промежуточные драйверы MUX и драйверы фильтров) могут вести себя непредсказуемо.
Драйверы, обрабатывающие сигналы приема Ethernet, должны соответствовать следующим требованиям:
Драйвер должен выделить структуру NET_BUFFER_LIST для полученного кадра Ethernet. Каждая структура NET_BUFFER_LIST, необходимая для конкретного использования, должна содержать внеполосные данные (OOB), определенные в элементе NetBufferListInfo структуры NET_BUFFER_LIST.
Драйвер должен выделить структуру NET_BUFFER для кадра и связать ее со структурой NET_BUFFER_LIST. Минипорт Ethernet должен назначать точно одну структуру NET_BUFFER к структуре NET_BUFFER_LIST при указании на полученные данные. Это ограничение применяется только к каналу приема Ethernet. Это неприменимо к другим типам носителей, таким как собственный интерфейс беспроводной локальной сети 802.11. или NDIS в целом.
Начиная с NDIS 6.1, в некоторых сценариях структура NET_BUFFER может быть связана с несколькими списками дескрипторов памяти (MDLs) для полученного кадра Ethernet. Несмотря на то, что структура NET_BUFFER_LIST должна содержать одну структуру NET_BUFFER, использование нескольких MDL позволяет драйверу разделить полученные данные пакета на отдельные буферы.
Например, драйверы Ethernet, поддерживающие интерфейс разделения заголовков, разделяют полученный кадр Ethernet с помощью связанного списка нескольких многомерных выражений, связанных с одной структурой NET_BUFFER. Дополнительные сведения см. в разделе Header-Data Разделение.
Для простоты и производительности настоятельно рекомендуется, чтобы драйверы, не поддерживающие разделение данных заголовков, использовали только один MDL для каждой структуры NET_BUFFER.
Примечание В NDIS 6.0 для Windows Vista, каждая NET_BUFFER структура должна содержать только один MDL.
Драйверы не должны разделять Ethernet-кадры в середине заголовка IP, параметров IPv4, заголовков IPsec, заголовков расширения IPv6 или заголовков протоколов верхнего уровня, если только первый MDL не содержит по крайней мере столько байтов, сколько определено NDIS для размера предварительного просмотра.
Протокол NDIS и драйверы фильтров должны поддерживать разделенные кадры Ethernet в индикациях получения, если такие кадры соответствуют ограничениям, определенным в предыдущем элементе списка. Ограничения гарантируют совместимость протоколов и фильтров с будущими версиями Windows.