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 구조가 자주 할당되고 해제되는 경우 고성능을 달성하는 데 유용합니다. 호출자는 데이터를 포함하는 NET_BUFFER 풀에서 NET_BUFFERs 할당하기 위해 NdisAllocateNetBuffer 를 호출해서는 안 됩니다.

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

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

요구 사항

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

추가 정보

NET_BUFFER

NdisAllocateNetBuffer

NdisFreeNetBuffer