Функция обратного вызова NDIS_SWITCH_SET_NET_BUFFER_LIST_SOURCE (NDIS. h)

Функция сетнетбуфферлистсаурце задает идентификатор исходного порта и индекса сетевого адаптера для расширяемого коммутатора Hyper-V для пакета, указанного структурой NET_BUFFER_LIST .

Синтаксис

NDIS_SWITCH_SET_NET_BUFFER_LIST_SOURCE NdisSwitchSetNetBufferListSource;

NDIS_STATUS NdisSwitchSetNetBufferListSource(
  [in] NDIS_SWITCH_CONTEXT NdisSwitchContext,
       PNET_BUFFER_LIST NetBufferList,
  [in] NDIS_SWITCH_PORT_ID PortId,
  [in] NDIS_SWITCH_NIC_INDEX NicIndex
)
{...}

Параметры

[in] NdisSwitchContext

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

NetBufferList

Указатель на структуру NET_BUFFER_LIST для одного пакета.

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

[in] PortId

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

[in] NicIndex

Значение NDIS_SWITCH_NIC_INDEX, указывающее индекс сетевого адаптера, подключенного к порту расширяемого коммутатора, заданному параметром PortId .

Дополнительные сведения о NDIS_SWITCH_NIC_INDEX значениях см. в разделе значения индекса сетевого адаптера.

Примечание . Этот параметр должен указывать значение индекса сетевого адаптера, который находится в подключенном состоянии. Значения индекса для сетевых адаптеров, которые находятся в состоянии "создано" или "disconnected", не могут быть указаны. Дополнительные сведения о состояниях сетевого подключения см. в статье состояния сетевого адаптера и порта расширяемого коммутатора Hyper-V.

Возвращаемое значение

Если вызов завершается с ошибкой, функция возвращает NDIS_STATUS_SUCCESS. В противном случае возвращается код ошибки NDIS_STATUS_xxx , определенный в NDIS. h.

Remarks

Расширение расширяемого коммутатора вызывает функцию сетнетбуфферлистсаурце , чтобы задать идентификатор исходного порта и индекс сетевого адаптера в структуре NET_BUFFER_LIST пакета. Расширение выполняет это для следующих типов пакетов:

  • Новый пакет, выделенный расширением для операций отправки или получения.
    Примечание . Прежде чем расширение вызовет сетнетбуфферлистсаурце для выделенного пакета, оно должно вызвать аллокатенетбуфферлистфорвардингконтекст.
  • Дубликат пакета, клонированного расширением из исходного пакета, который был отфильтрован. Расширение дублирует пакет путем вызова ндисаллокатеклоненетбуфферлист.
В обоих случаях для нового или повторяющегося пакета идентификатору исходного порта будет присвоено значение NDIS_SWITCH_DEFAULT_PORT_ID а для индекса исходного сетевого адаптера — значение NDIS_SWITCH_DEFAULT_NIC_INDEX. Расширение вызывает функцию сетнетбуфферлистсаурце для изменения идентификатора исходного порта и индекса сетевого адаптера в структуре NET_BUFFER_LIST пакета.

Например, пакет с идентификатором исходного порта NDIS_SWITCH_DEFAULT_PORT_ID является доверенным и обходит многие политики расширяемого порта коммутатора. Эти политики включают списки управления доступом (ACL) и качество обслуживания (QoS). Если расширение указывает для пакета порт источника, отличный от используемого по умолчанию, это позволяет применить к пакету политики для этого порта.

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

Требования

   
Минимальная версия клиента Поддерживается в NDIS 6,30 и более поздних версиях.
Целевая платформа Рабочий стол
Header NDIS. h (включает NDIS. h)
УРОВЕНЬ <= DISPATCH_LEVEL

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

аллокатенетбуфферлистфорвардингконтекст

NET_BUFFER

NET_BUFFER_LIST

ндисаллокатеклоненетбуфферлист

ндисфжетоптионалсвитчхандлерс