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


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

Драйверы протокола вызывают функцию NdisCancelSendNetBufferLists, чтобы отменить передачу сетевых данных.

Синтаксис

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

Параметры

[in] NdisBindingHandle

Дескриптор, возвращаемый функцией NdisOpenAdapterEx, которая определяет драйвер минипорта или виртуальный минипорт, к которому применяется отмена.

[in] CancelId

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

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

Никакой

Замечания

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

Вызов NDIS_SET_NET_BUFFER_LIST_CANCEL_ID макрос для каждой NET_BUFFER_LIST структуры, передаваемой драйверам нижнего уровня для передачи. Макрос NDIS_SET_NET_BUFFER_LIST_CANCEL_ID помечает указанный пакет идентификатором отмены.

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

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

Драйвер протокола должен убедиться, что дескриптор, указывающий параметр NdisBindingHandle, остается допустимым в течение срока вызова NdisCancelSendNetBufferLists. То есть драйвер протокола не должен вызывать функцию NdisCloseAdapterEx, чтобы закрыть привязку до возврата NdisCancelSendNetBufferList s.

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

Во всех случаях NDIS возвращает сетевые данные, отправленные для передачи исходному драйверу протокола. функция ProtocolSendNetBufferListsComplete. NDIS возвращает отмененные данные отправки с состоянием завершения NDIS_STATUS_SEND_ABORTED. Задержка между вызовом NdisCancelSendNetBufferLists и возвратом отмененных структур NET_BUFFER_LIST может отличаться и поэтому невозможно точно указать.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Поддерживается в NDIS 6.0 и более поздних версиях.
целевая платформа Всеобщий
заголовка ndis.h (include Ndis.h)
библиотеки Ndis.lib
IRQL <= DISPATCH_LEVEL
правил соответствия DDI Irql_SendRcv_Function(ndis)

См. также

MiniportCancelSend

NDIS_SET_NET_BUFFER_LIST_CANCEL_ID

NET_BUFFER_LIST

NdisCloseAdapterEx

NdisOpenAdapterEx

ProtocolSendNetBufferListsComplete