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


Обслуживание стека сетевого интерфейса

NDIS предоставляет службы для обслуживания таблицы стека интерфейса (ifStackTable в RFC 2863). NDIS поддерживает таблицу стека для адаптеров NDIS miniport, NDIS 5. Промежуточные драйверы фильтра x и модули фильтров NDIS. NDIS также предоставляет службы, позволяющие драйверам NDIS добавлять и удалять записи в этой таблице. Для промежуточных драйверов MUX NDIS не имеет доступа к связи между интерфейсом виртуального мини-порта и интерфейсом ниже протокола. Таким образом, промежуточные драйверы NDIS 6.0 MUX должны указывать эти связи внутреннего интерфейса.

Чтобы определить связь стека между двумя интерфейсами, любой драйвер NDIS может передать параметры HigherLayerIfIndex и LowerLayerIfIndex в функцию NdisIfAddIfStackEntry . Эти параметры определяют один сетевой интерфейс, который должен быть выше в стеке сетевых интерфейсов, и один сетевой интерфейс, который должен быть ниже в стеке.

Драйвер, имеющий сведения о порядке стека для интерфейса, связанного с другим интерфейсом (например, внутренние привязки в промежуточном драйвере MUX, которые не видны NDIS), вызывает NdisIfAddIfStackEntry для заполнения таблицы стека интерфейса. Эта функция возвращает NDIS_STATUS_SUCCESS, если запись стека была успешно создана. Как правило, компонент, который владеет или является поставщиком интерфейса для интерфейса более высокого уровня (который определяет HigherLayerIfIndex ), вызывает NdisIfAddIfStackEntry.

Чтобы удалить запись таблицы стека, драйвер передает параметры HigherLayerIfIndex и LowerLayerIfIndex функции NdisIfDeleteIfStackEntry .

Пример обслуживания стека интерфейса см. в примере драйвера MUX 6.0.