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 |