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


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

Драйверы miniport вызывают функцию NdisMSendNetBufferListsComplete , чтобы вернуть связанный список NET_BUFFER_LIST структур в вышестоящему драйверу и вернуть окончательное состояние запроса на отправку.

Синтаксис

void NdisMSendNetBufferListsComplete(
  [in] NDIS_HANDLE      MiniportAdapterHandle,
       PNET_BUFFER_LIST NetBufferList,
  [in] ULONG            SendCompleteFlags
);

Параметры

[in] MiniportAdapterHandle

Дескриптор мини-порта, переданный NDIS функции MiniportInitializeEx .

NetBufferList

Указатель на связанный список NET_BUFFER_LIST структур. Драйвер мини-порта получил NET_BUFFER_LIST структуры в предыдущих вызовах функции MiniportSendNetBufferLists .

[in] SendCompleteFlags

Флаги NDIS, которые можно объединить с операцией OR. Чтобы очистить все флаги, установите для этого элемента нулевое значение. Эта функция поддерживает флаг NDIS_SEND_COMPLETE_FLAGS_DISPATCH_LEVEL, который; Значение , если задано, указывает, что текущий irQL DISPATCH_LEVEL. Дополнительные сведения об этом флаге см. в разделе Dispatch IRQL Tracking.

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

None

Remarks

Драйвер мини-порта вызывает NdisMSendNetBufferListsComplete для завершения отправки запросов, выполненных NDIS в функцию MiniportSendNetBufferLists драйвера. Драйвер мини-порта указывает связанный список NET_BUFFER_LIST структур, связанных с завершенными запросами на отправку. Пока состояние запросов на отправку находится в состоянии ожидания, драйвер мини-порта сохраняет за собой право собственности на структуры NET_BUFFER_LIST и все ресурсы, выделенные протоколом, связанные с NET_BUFFER_LIST структурами.

После того как драйвер мини-порта вызывает NdisMSendNetBufferListsComplete, NDIS вызывает функцию ProtocolSendNetBufferListsComplete драйвера, который вызвал функцию NdisSendNetBufferLists , чтобы инициировать запрос на отправку.

Драйвер мини-порта может отправлять запросы в любом порядке. Например, драйвер мини-порта может объединить NET_BUFFER_LIST списки структуры из нескольких вызовов MiniportSendNetBufferLists или разделить список из вызова MiniportSendNetBufferLists . Однако драйвер мини-порта не должен изменять список NET_BUFFER структур, связанных со структурой NET_BUFFER_LIST.

Драйвер мини-порта должен задать один из следующих кодов состояния в элементе Status каждой структуры NET_BUFFER_LIST, указанной параметром NetBufferLists :

Структура Описание
NDIS_STATUS_SUCCESS Все сетевые данные, описываемые структурой NET_BUFFER_LIST и связанными структурами NET_BUFFER, успешно обработаны для передачи. Например, драйвер мини-порта скопировал данные в очередь или данные уже были переданы.
NDIS_STATUS_INVALID_LENGTH Размер данных в некоторых NET_BUFFER структурах, связанных с этой структурой NET_BUFFER_LIST, был слишком велик для базовой сетевой карты.
NDIS_STATUS_RESOURCES Запрос на отправку для этой структуры NET_BUFFER_LIST завершился сбоем из-за нехватки ресурсов.
NDIS_STATUS_PAUSED Адаптер мини-порта находится в состоянии Приостановлено, как описано на странице справочника по функции MiniportPause.
NDIS_STATUS_SEND_ABORTED NDIS вызвал функцию MiniportCancelSend, чтобы отменить операцию отправки для этой структуры NET_BUFFER_LIST.
NDIS_STATUS_RESET_IN_PROGRESS Драйвер мини-порта прервал запрос на отправку из-за сброса.
NDIS_STATUS_FAILURE Драйвер мини-порта не выполнил запрос на отправку по какой-либо причине, отличной от описанных ранее. Например, драйвер мини-порта может завершить запрос на отправку из-за сбоя оборудования.

Вызов драйвера минипорта к NdisMSendNetBufferListsComplete не обязательно означает, что данные для запроса на отправку были переданы по сети. Данные могут быть поставлены в очередь на оборудовании сетевой карты.

Требования

Требование Значение
Минимальная версия клиента Поддерживается в NDIS 6.0 и более поздних версиях.
Целевая платформа Универсальное
Верхняя часть ndis.h (включая Ndis.h)
Библиотека Ndis.lib
IRQL <= DISPATCH_LEVEL
Правила соответствия DDI Irql_SendRcv_Function(ndis), NdisTimedDataHang, NdisTimedDataSend

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

MiniportCancelSend

MiniportInitializeEx

MiniportSendNetBufferLists

NET_BUFFER

NET_BUFFER_LIST

NdisSendNetBufferLists