다음을 통해 공유


NdisAllocateNetBufferMdlAndData 함수(ndis/nblapi.h)

NDIS 드라이버는 NdisAllocateNetBufferMdlAndData 함수를 호출하여 연결된 MDL 및 데이터와 함께 NET_BUFFER 구조를 할당합니다.

통사론

NDIS_EXPORTED_ROUTINE NET_BUFFER * NdisAllocateNetBufferMdlAndData(
  [in] NDIS_HANDLE PoolHandle
);

매개 변수

[in] PoolHandle

NdisAllocateNetBufferPool 함수에 대한 호출에서 이전에 반환된 NET_BUFFER 구조체 풀 핸들입니다.

반환 값

NdisAllocateNetBufferMdlAndData NDIS가 할당한 NET_BUFFER 구조체에 대한 포인터를 반환합니다. 할당에 실패한 경우 이 포인터는 NULL .

발언

호출자는 NdisAllocateNetBufferPool 함수를 호출하고 데이터 버퍼의 최대 크기를 지정해야 합니다. 이 값을 감안할 때 NDIS는 호출자에 대한 버퍼를 미리 할당할 수 있습니다.

이 함수는 단일 메모리 버퍼에 NET_BUFFER 구조, MDL 및 데이터를 할당합니다. 이는 NET_BUFFER 구조체가 자주 할당되고 해제될 때 고성능을 달성하는 데 유용합니다. 호출자는 NdisAllocateNetBuffer 호출하여 데이터가 포함된 NET_BUFFER 풀에서 NET_BUFFERs 할당해서는 안 됩니다.

NDIS는 PoolHandle 매개 변수를 사용하여 메모리 블록을 가져와서 NET_BUFFER, MDL 및 데이터 버퍼를 만듭니다.

NET_BUFFER 및 관련 정보를 해제하려면 NdisFreeNetBuffer 함수를 호출합니다.

요구 사항

요구
지원되는 최소 클라이언트 NDIS 6.0 이상에서 지원됩니다.
대상 플랫폼 보편적
헤더 ndis/nblapi.h(ndis.h 포함)
라이브러리 Ndis.lib
IRQL <= DISPATCH_LEVEL
DDI 규정 준수 규칙 Irql_NetBuffer_Function(ndis), NdisAllocateNetBufferMdlAndData(ndis), NdisAllocateNetBufferMdlAndData_InitFail(ndis)

참고 항목

NET_BUFFER

NdisAllocateNetBuffer

NdisFreeNetBuffer