다음을 통해 공유


NdisMFreeNetBufferSGList 함수(ndis.h)

주의

ARM 및 ARM64 프로세서의 경우 NDIS 드라이버 작성기는 NDIS 분산/수집 DMA 대신 WDF DMA 또는 WDM DMA를 사용하는 것이 좋습니다.

WDF DMA에 대한 자세한 내용은 KMDF 드라이버에서 DMA 작업 처리를 참조하세요.

WDM DMA에 대한 자세한 내용은 드라이버에 대한 입력/출력 관리의 DMA 관련 자식 topics 참조하세요.

버스 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 구조체에 대한 포인터입니다.

반환 값

없음

설명

버스 master 미니포트 드라이버는 NdisMFreeNetBufferSGList 함수를 호출하여 분산/수집 목록을 해제해야 합니다. 미니포트 드라이버는 일반적으로 MiniportInterruptDPC 함수에서 NdisMFreeNetBufferSGList를 호출하며 전송 전체 인터럽트를 처리하는 동안 또는 드라이버에 더 이상 분산/수집 목록이 필요하지 않습니다. 드라이버 또는 하드웨어가 분산/수집 목록과 연결된 NET_BUFFER 구조에서 설명하는 메모리에 계속 액세스하는 동안에는 NdisMFreeNetBufferSGList를 호출하지 마세요.

미니포트 드라이버는 NdisMFreeNetBufferSGList가 반환된 후 NdisMAllocateNetBufferSGList 함수의 ScatterGatherListBuffer 매개 변수에 지정된 버퍼를 해제할 수 있습니다.

받은 데이터에 액세스하기 전에 미니포트 드라이버는 NdisMFreeNetBufferSGList 를 호출하여 메모리 캐시를 플러시해야 합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 NDIS 6.0 이상에서 지원됩니다.
대상 플랫폼 유니버설
헤더 ndis.h(Ndis.h 포함)
라이브러리 Ndis.lib
IRQL DISPATCH_LEVEL
DDI 규정 준수 규칙 Irql_Gather_DMA_Function(ndis)

추가 정보

MiniportInterruptDPC

NDIS 분산/수집 DMA

NET_BUFFER

NdisMAllocateNetBufferSGList

NdisMRegisterScatterGatherDma