Функция 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) |