NdisRetreatNetBufferDataStart 함수(ndis/nblapi.h)
NdisRetreatNetBufferDataStart 함수를 호출하여 NET_BUFFER 구조의 MDL 체인에서 더 많이 사용되는 데이터 공간에 액세스합니다.
구문
NDIS_EXPORTED_ROUTINE NDIS_STATUS NdisRetreatNetBufferDataStart(
[in] NET_BUFFER *NetBuffer,
[in] ULONG DataOffsetDelta,
[in] ULONG DataBackFill,
[in, optional] NET_BUFFER_ALLOCATE_MDL *AllocateMdlHandler
);
매개 변수
[in] NetBuffer
이전에 할당된 NET_BUFFER 구조체에 대한 포인터입니다.
[in] DataOffsetDelta
추가할 사용된 데이터 공간 의 양입니다. NDIS는 그에 따라 NET_BUFFER 구조체의 DataOffset 멤버를 조정합니다. 요청을 충족하는 데 사용되지 않는 데이터 공간이 충분하지 않은 경우 NDIS는 추가 메모리를 할당합니다.
[in] DataBackFill
NDIS가 메모리를 할당해야 하는 경우 이 매개 변수는 할당할 DataOffsetDelta 매개 변수 값 외에도 데이터 공간의 양을 지정합니다.
[in, optional] AllocateMdlHandler
NetAllocateMdl 함수에 대한 선택적 진입점입니다. 호출자가 NetAllocateMdl 함수의 진입점을 지정하는 경우 NDIS는 NetAllocateMdl 을 호출하여 MDL 및 메모리를 할당합니다.
반환 값
NdisRetreatNetBufferDataStart 는 다음 중 하나를 반환합니다.
반환 코드 | 설명 |
---|---|
|
NdisRetreatNetBufferDataStart 는 사용되지 않는 데이터 공간을 사용하거나 새 스토리지를 할당하여 사용된 데이터 공간을 성공적으로 할당했습니다. |
|
리소스 부족으로 인해 NdisRetreatNetBufferDataStart 가 실패했습니다. |
|
리소스 부족 이외의 이유로 NdisRetreatNetBufferDataStart 가 실패했습니다. |
설명
NdisRetreatNetBufferDataStart는 NET_BUFFER 구조체의 DataOffset 멤버 값을 줄여 요청을 충족하려고 시도합니다.
사용하지 않는 데이터 공간이 충분하지 않은 경우 이 함수는 새 버퍼를 설명하는 새 버퍼와 MDL을 할당하고 새 MDL을 MDL 체인의 시작 부분에 연결합니다. NDIS는 AllocateMdl에 지정된 NetAllocateMdl 함수를 호출하여 MDL 및 메모리를 할당합니다. NetAllocateMdl 함수는 드라이버의 디자인 요구 사항을 충족하는 할당 방법을 사용할 수 있습니다.
다음을 호출합니다. NdisAdvanceNetBufferDataStart 함수는 NdisRetreatNetBufferDataStart와 함께 추가된 사용된 데이터 공간을 해제합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | NDIS 6.0 이상에서 지원됩니다. |
대상 플랫폼 | 유니버설 |
헤더 | ndis/nblapi.h(include ndis.h) |
라이브러리 | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
DDI 규정 준수 규칙 | Irql_NetBuffer_Function(ndis) |