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


Функция NdisCancelSendPackets (ndis.h)

Примечание NDIS 5. X является нерекомендуемым и заменен NDIS 6. x. Сведения о разработке новых драйверов NDIS см. в статье Сетевые драйверы, начиная с Windows Vista. Сведения о переносе NDIS 5. x драйверы для NDIS 6. x, см. раздел Перенос драйверов NDIS 5.x в NDIS 6.0.

NdisCancelSendPackets отменяет передачу всех пакетов, помеченных указанным идентификатором отмены, в драйвере мини-порта, определяемом дескриптором привязки.

Синтаксис

void NdisCancelSendPackets(
  [in] NDIS_HANDLE NdisBindingHandle,
  [in] PVOID       CancelId
);

Параметры

[in] NdisBindingHandle

Указывает дескриптор, возвращаемый NdisOpenAdapter , который определяет сетевой адаптер или виртуальный адаптер, к которому применяется отмена.

[in] CancelId

Указатель на идентификатор отмены. Этот идентификатор указывает пакет или группу пакетов, передача которых отменяется.

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

None

Remarks

Транспортные протоколы сопоставляют IRP, полученные от программного обеспечения более высокого уровня, с пакетами NDIS, которые затем протоколы отправляют в драйверы более низкого уровня для передачи. Если IRP отменена, транспортный протокол может вызвать функцию NdisCancelSendPackets для отмены ожидающей передачи соответствующего пакета NDIS.

Функция NdisCancelSendPackets отменяет передачу пакетов для одной привязки. Чтобы отменить передачу пакетов в нескольких привязках, протокол или промежуточный драйвер должен вызывать функцию NdisCancelSendPackets один раз для каждой привязки.

Протокол или промежуточный драйвер должен гарантировать, что NdisBindingHandle, представляющий привязку драйвера к адаптеру, остается действительным в течение всего вызова NdisCancelSendPackets. То есть протокол или промежуточный драйвер не должен вызывать функцию NdisCloseAdapter , чтобы закрыть привязку до возврата NdisCancelSendPackets .

Нет никакой гарантии, что вызов NdisCancelSendPackets отменит ожидающую передачу всех пакетов с указанным идентификатором отмены. Например, если драйвер следующего уровня, к которому привязан протокол или промежуточный драйвер, не предоставляет функцию MiniportCancelSendPackets , вызов NdisCancelSendPackets не выполняет никаких действий.

Во всех случаях пакеты, отправленные для передачи, возвращаются исходному протоколу или промежуточному драйверу через вызов функции ProtocolSendComplete или ProtocolCoSendComplete драйвера. Отмененные пакеты отправки возвращаются с состоянием завершения NDIS_STATUS_ABORTED. Задержка между вызовом NdisCancelSendPackets и возвратом отмененных пакетов может отличаться и поэтому не может быть указана точно.

  • Целевая платформа: универсальная
  • Версия: не поддерживается для драйверов NDIS 6.0 в Windows Vista. Вместо этого используйте NdisCancelSendNetBufferLists. Поддерживается для драйверов NDIS 5.1 в Windows Vista и Windows XP.

Требования

Требование Значение
Заголовок ndis.h (включая Ndis.h)
Библиотека Ndis.lib
IRQL IRQL <= DISPATCH_LEVEL

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