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


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

Внимание!

Для процессоров ARM и ARM64 настоятельно рекомендуется, чтобы модули записи драйверов NDIS использовали WDF DMA или WDM DMA вместо NDIS Scatter/Gather DMA.

Дополнительные сведения о WDF DMA см. в разделе Обработка операций DMA в драйверах KMDF.

Дополнительные сведения о WDM DMA см. в дочерних разделах, связанных с DMA статьи Управление входными и выходными данными для драйверов.

Водители master минипорта в шине вызывают функцию NdisMFreeNetBufferSGList, чтобы освободить ресурсы точечного или собирания списка, которые были выделены путем вызова Функция NdisMAllocateNetBufferSGList .

Синтаксис

void NdisMFreeNetBufferSGList(
  [in] NDIS_HANDLE          NdisMiniportDmaHandle,
  [in] PSCATTER_GATHER_LIST pSGL,
  [in] PNET_BUFFER          NetBuffer
);

Параметры

[in] NdisMiniportDmaHandle

Дескриптор контекстной области, которую NDIS использует для управления ресурсом DMA. Вызывающий объект получил этот дескриптор, вызвав Функция NdisMRegisterScatterGatherDma .

[in] pSGL

Указатель на буфер точечного или собираемого списка драйвера минипорта.

[in] NetBuffer

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

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

None

Remarks

Водители master минипорта должны вызывать функцию NdisMFreeNetBufferSGList, чтобы освободить точечный или собирательный список. Драйвер мини-порта обычно вызывает NdisMFreeNetBufferSGList из своей функции MiniportInterruptDPC во время обработки полного прерывания отправки или в любое время, когда драйверу больше не требуется список точечной и сборной. Не вызывайте NdisMFreeNetBufferSGList , пока драйвер или оборудование по-прежнему обращаются к памяти, описанной в структуре NET_BUFFER, связанной со списком точечной и сборной.

Драйверы минипорта могут освободить буфер, указанный в параметре ScatterGatherListBuffer функции NdisMAllocateNetBufferSGList после возврата NdisMFreeNetBufferSGList .

Перед доступом к полученным данным драйверы минипорта должны вызвать NdisMFreeNetBufferSGList для очистки кэша памяти.

Требования

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

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

MiniportInterruptDPC

NDIS Scatter/Gather DMA

NET_BUFFER

NdisMAllocateNetBufferSGList

NdisMRegisterScatterGatherDma