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


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

Осторожность

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

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

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

Драйверы мини-порта шины вызывают функцию 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, связанную с указанным буфером списка точечного или сбора.

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

Никакой

Замечания

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

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

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

Требования

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

См. также

MiniportInterruptDPC

NDIS точечная и сборная DMA

NET_BUFFER

NdisMAllocateNetBufferSGList

NdisMRegisterScatterGatherDma