NdisAllocateBuffer 함수(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 NdisAllocateBuffer(
  [out]          PNDIS_STATUS Status,
  [out]          PNDIS_BUFFER *Buffer,
  [in, optional] NDIS_HANDLE  PoolHandle,
  [in]           PVOID        VirtualAddress,
  [in]           UINT         Length
);

매개 변수

[out] Status

이 함수가 버퍼 할당의 최종 상태 반환하는 호출자 제공 변수에 대한 포인터로, 버퍼에서 유효한 버퍼 설명자 포인터를 반환하고 그렇지 않으면 NDIS_STATUS_FAILURE 경우 NDIS_STATUS_SUCCESS.

[out] Buffer

이 함수가 할당된 버퍼 설명자에 대한 포인터를 반환하는 호출자 제공 변수에 대한 포인터입니다.

[in, optional] PoolHandle

NdisAllocateBufferPool에 대한 이전 호출에서 반환된 핸들을 지정합니다.

[in] VirtualAddress

반환된 버퍼 설명자에 매핑할 이전에 할당된 시스템 공간 메모리의 기본 가상 주소에 대한 포인터입니다.

[in] Length

매핑할 바이트 수를 지정합니다.

반환 값

없음

설명

반환 값: 없음

NdisAllocateBuffer 는 패킷 헤더 또는 NIC 수신 버퍼에 사용된 메모리와 같이 이전에 할당된 메모리의 지정된 범위를 매핑하기 위해 버퍼 설명자에 대한 스토리지를 할당하고 초기화합니다.

버퍼 설명자 할당은 NdisAllocateBufferPool 이 만드는 버퍼 풀에 그립니다. 드라이버는 초기화 중에 NdisAllocateBufferPool 을 호출하는 경우 필요한 버퍼 설명자를 할당하는 데 필요한 만큼 NdisAllocateBuffer를 호출할 수 있습니다.

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

요구 사항

요구 사항
헤더 ndis.h(Ndis.h 포함)
라이브러리 Ndis.lib
IRQL IRQL <= DISPATCH_LEVEL

추가 정보