Функция NdisMCoIndicateReceiveNetBufferLists (ndis.h)
Функция NdisMCoIndicateReceiveNetBufferLists указывает, что драйвер мини-порта получил данные из сети.
Синтаксис
void NdisMCoIndicateReceiveNetBufferLists(
[in] IN NDIS_HANDLE NdisVcHandle,
[in] IN PNET_BUFFER_LIST NetBufferLists,
[in] IN ULONG NumberOfNetBufferLists,
[in] IN ULONG CoReceiveFlags
);
Параметры
[in] NdisVcHandle
Дескриптор, идентифицирующий виртуальное подключение. Драйвер мини-порта получил этот дескриптор в качестве входного параметра функции MiniportCoCreateVc , когда клиент настроит исходящий вызов или когда диспетчер вызовов создал VC для зарегистрированной клиентом точки доступа службы (SAP), чтобы указать уведомление о входном вызове.
[in] NetBufferLists
Связанный список NET_BUFFER_LIST структур, выделенных драйвером мини-порта.
[in] NumberOfNetBufferLists
Количество NET_BUFFER_LIST структур, которые находятся в связанном списке структур, указанных NetBufferLists .
[in] CoReceiveFlags
Флаги, определяющие атрибуты для операции отправки. Флаги можно объединить с побитовой операцией ИЛИ. Чтобы очистить все флаги, задайте для этого параметра нулевое значение. NdisMCoIndicateReceiveNetBufferLists поддерживает следующие флаги:
NDIS_RECEIVE_FLAGS_DISPATCH_LEVEL
Текущий irQL DISPATCH_LEVEL. Дополнительные сведения об этом флаге см. в разделе Dispatch IRQL Tracking.
NDIS_RECEIVE_FLAGS_RESOURCES
Драйвер мини-порта возвращает права владения NET_BUFFER_LIST структурами и любыми присоединенными NET_BUFFER структурами сразу после возврата NdisMCoIndicateReceiveNetBufferLists .
Возвращаемое значение
None
Remarks
Драйвер мини-порта обычно вызывает функцию NdisMCoIndicateReceiveNetBufferLists из своей функции MiniportInterruptDPC . Когда драйвер мини-порта вызывает NdisMCoIndicateReceiveNetBufferLists, он указывает список NET_BUFFER_LIST структур в параметре NetBufferLists . Затем NDIS передает структуры NET_BUFFER_LIST связанным драйверам протокола.
Драйверы miniport должны задать для элемента SourceHandle каждой структуры NET_BUFFER_LIST то же значение, что и параметр NdisVcHandle , чтобы NDIS мог возвращать структуры NET_BUFFER_LIST в правильный драйвер мини-порта.
Если драйвер мини-порта вызывает NdisMCoIndicateReceiveNetBufferLists и очищает флаг NDIS_RECEIVE_FLAGS_RESOURCES в параметре CoReceiveFlags , NDIS возвращает структуры NET_BUFFER_LIST, которые NetBufferLists задает драйверу мини-порта.Функция MiniportReturnNetBufferLists. В этом случае драйвер мини-порта не должен возвращать NET_BUFFER_LIST структуры, пока NDIS не вернет структуры NET_BUFFER_LIST в функцию MiniportReturnNetBufferLists .
Если драйвер мини-порта вызывает NdisMCoIndicateReceiveNetBufferLists и задает флаг NDIS_RECEIVE_FLAGS_RESOURCES в параметре CoReceiveFlags , драйвер мини-порта должен немедленно восстановить владение структурами NET_BUFFER_LIST. В этом случае NDIS не вызывает функцию MiniportReturnNetBufferLists драйвера мини-порта для возврата NET_BUFFER_LIST структур. Вместо этого NDIS возвращает структуры NET_BUFFER_LIST драйверу мини-порта при возврате NdisMCoIndicateReceiveNetBufferLists . Драйвер мини-порта должен восстановить NET_BUFFER_LIST структуры сразу после возврата NdisMCoIndicateReceiveNetBufferLists . Чтобы вернуть NET_BUFFER_LIST структуры, драйвер мини-порта может вызвать свой собственныйФункция MiniportReturnNetBufferLists.
Если драйвер мини-порта устанавливает флаг NDIS_RECEIVE_FLAGS_RESOURCES в параметре CoReceiveFlags , драйверы протокола должны скопировать сетевые данные и освободить NET_BUFFER_LIST структуры в драйвере мини-порта. Необходимо разработать драйверы мини-портов с достаточным количеством предварительно подготовленных NET_BUFFER_LIST структур, чтобы избежать ненужного копирования.
Вызывающий объект NdisMCoIndicateReceiveNetBufferLists должен правильно инициализировать структуры NET_BUFFER_LIST, присоединенные структуры NET_BUFFER и все подключенные списки дескрипторов памяти (MDL).
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Поддерживается в NDIS 6.0 и более поздних версиях. |
Целевая платформа | Персональный компьютер |
Верхняя часть | ndis.h (включая Ndis.h) |
Библиотека | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
Правила соответствия DDI | Irql_MCO_Function(ndis) |