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) |