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


Захват расширений

Расширяемый коммутатор Hyper-V, который захватывает расширение, проверяет трафик пакетов, запросы идентификаторов объектов (OID) и индикаторы состояния NDIS. Этот тип расширения не может изменять или удалять пакеты, а также исключать пакеты из доставки в расширяемые порты коммутатора. Однако сбор расширений может создавать трафик пакетов, например пакеты, содержащие статистику трафика, отправляемую расширением в ведущее приложение.

Захватываемые расширения вызываются в начале пути данных входящего трафика и в конце пути исходящих данных. Дополнительные сведения об этих путях данных см. в статье Путь к данным расширенного коммутатора Hyper-V.

Расширение записи имеет следующие требования и ограничения.

  • Расширение записи должно быть разработано как драйвер фильтра NDIS, который поддерживает расширяемый интерфейс коммутатора.

    Дополнительные сведения о драйверах фильтров см. в разделе Драйверы фильтра NDIS.

    Дополнительные сведения о написании захватываемого расширения см. в разделе Написание расширений расширяемого коммутатора Hyper-V.

  • Расширение записи предоставляет те же функции, что и стандартный драйвер фильтра мониторинга NDIS. Однако INF-файл для захватываемого расширения должен установить его в качестве драйвера изменяющегося фильтра.

    Дополнительные сведения об изменении драйверов фильтров см. в разделе Типы драйверов фильтров.

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

  • Расширение записи может отслеживать пакеты по пути данных входящего и исходящего коммутатора. Однако этот тип расширения должен всегда вызывать NdisFSendNetBufferLists , чтобы перенаправлять пакеты базовым драйверам в стеке драйверов расширяемого коммутатора и не завершать их.

  • Расширение записи не должно изменять данные в пакетах и добавлять назначения портов к данным внеполосного (OOB) пакета. Расширение не должно освобождать доставку пакета на любой расширяемый порт коммутатора.

  • Захватывающее расширение может быть источником пакетов. Например, расширение может создавать пакеты для передачи данных об условиях трафика в приложение удаленного мониторинга.

    Дополнительные сведения об источнике пакетов с помощью расширения см. в разделе Исходящий трафик пакетов.

    Примечание Как и в случае с другими расширениями, захватываемое расширение может создавать только трафик пакетов в пути входящего трафика расширяемого коммутатора.

  • Расширение записи может отслеживать пакеты, запросы OID и индикаторы состояния NDIS, выдаваемые через стек драйверов расширяемого коммутатора. Однако этот тип расширения должен пересылать пакеты, запросы OID и индикаторы состояния NDIS через стек драйвера расширяемого коммутатора. Расширение не должно изменять данные в пакетах, запросах OID или индикаторах состояния NDIS, которые он отслеживает.

  • Значение FilterClass в INF-файле для расширения должно быть равно ms_switch_capture. Дополнительные сведения см. в разделе Требования к INF для расширений расширяемого коммутатора Hyper-V.

  • Любое количество захватываемых расширений можно привязать к экземпляру расширяемого коммутатора. По умолчанию несколько захватываемых расширений упорядочены в зависимости от того, когда они были установлены. Например, несколько расширений записи размещаются в стеке драйвера расширяемого коммутатора, а последнее установленное расширение — над другими захватываемыми расширениями в стеке.

    После привязки к экземпляру расширяемого коммутатора можно переупорядочение расширений записи в стеке драйвера расширяемого коммутатора. Дополнительные сведения см. в статье Изменение порядка расширений коммутаторов Hyper-V.