다음을 통해 공유


NdisAllocateBufferPool 함수(ndis.h)

참고 NDIS 5. x 더 이상 사용되지 않으며 NDIS 6으로 대체됩니다. x . 새로운 NDIS 드라이버 개발은 Windows Vista 시작하는네트워크 드라이버를 참조하세요. NDIS 5 포팅에 대한 자세한 내용입니다. x 드라이버를 NDIS 6에. x NDIS 5.x 드라이버를 NDIS 6.0 참조하세요.

이 함수는 호출자가 NdisAllocateBuffer 함수를 호출하여 버퍼 설명자를 할당할 수 있는 핸들을 반환합니다.

통사론

void NdisAllocateBufferPool(
  [out] PNDIS_STATUS Status,
  [out] PNDIS_HANDLE PoolHandle,
  [in]  UINT         NumberOfDescriptors
);

매개 변수

[out] Status

이 함수가 버퍼 풀 할당의 최종 상태를 반환하는 호출자 제공 변수에 대한 포인터입니다.

[out] PoolHandle

이 함수가 버퍼 풀에 대한 핸들을 반환하는 호출자 제공 변수에 대한 포인터입니다. 이 핸들은 드라이버가 이후에 호출하는 NDIS 버퍼 함수에 필요한 매개 변수입니다.

[in] NumberOfDescriptors

할당된 버퍼 설명자를 풀로 다시 해제하지 않고 호출자가 버퍼 풀에서 할당해야 하는 버퍼 설명자의 수를 지정합니다.

반환 값

없음

발언

항상 NDIS_STATUS_SUCCESS 반환합니다.

이 함수가 반환되면 드라이버는 NdisAllocateBuffer 함수를 한 번 이상 호출하여 필요한 버퍼 설명자를 할당합니다. 드라이버는 초기화 중에 이 함수를 호출해야 합니다.

NIC 드라이버에서 지정한 NumberOfDescriptors 매개 변수는 일반적으로 NIC의 기능에 따라 달라집니다. 예를 들어 링 버퍼가 있는 버스 마스터 DMA NIC의 드라이버는 NumberOfDescriptors 전체 링을 매핑할 만큼 충분히 큰 지정합니다.

이 함수에 대한 호출에 지정된 NumberOfDescriptors는 버퍼 설명자를 버퍼 풀의 사용 가능한 목록으로 반환하기 위해 NdisFreeBuffer 함수를 호출하기 전에 드라이버가 NdisAllocateBuffer 호출할 수 있는 횟수에 대한 유효 제한입니다.

드라이버에 할당된 버퍼 풀이 더 이상 필요하지 않은 경우 NdisFreeBufferPool 함수를 호출하여 버퍼 풀 핸들을 해제합니다.

드라이버는 이 함수를 호출하기 전에 보유하고 있는 스핀 잠금을 해제해야 합니다.

모든 하위 수준 NDIS 드라이버는 버퍼 풀의 패킷에 연결하는 모든 버퍼 설명자를 할당해야 합니다. 최고 수준의 프로토콜 드라이버만 가상 메모리 범위를 매핑하는 OS 종속 설명자를 지정할 수 있습니다. 이러한 메모리 설명자가 NDIS 버퍼 설명자와 동일한 경우 최상위 프로토콜은 이러한 설명자를 매개 변수로 NDIS 함수에 전달할 수 있습니다.

OS 버전: windows CE .NET 4.0 이상.

요구 사항

요구
헤더 ndis.h
IRQL IRQL <= DISPATCH_LEVEL

참고 항목