다음을 통해 공유


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 다음 중 하나를 반환합니다.

반환 코드 묘사
NDIS_STATUS_SUCCESS
NdisRetreatNetBufferDataStart는 사용되지 않는 데이터 공간 사용하거나 새 스토리지를 할당하여 사용된 데이터 공간을 성공적으로 할당할 있습니다.
NDIS_STATUS_RESOURCES
NdisRetreatNetBufferDataStart 리소스 부족으로 인해 실패했습니다.
NDIS_STATUS_FAILURE
NdisRetreatNetBufferDataStart 리소스 부족 이외의 이유로 실패했습니다.

발언

NdisRetreatNetBufferDataStart는 NET_BUFFER 구조체의 DataOffset 멤버의 값을 줄여 요청을 충족하려고.

사용되지 않는 데이터 공간 충분하지 않은 경우 이 함수는 새 버퍼를 설명하는 새 버퍼와 MDL을 할당하고 새 MDL을 MDL 체인의 시작 부분에 연결합니다. NDIS는 AllocateMdl 지정된 NetAllocateMdl 함수를 호출하여 MDL 및 메모리를 할당합니다. NetAllocateMdl 함수는 드라이버의 디자인 요구 사항을 충족하는 할당 방법을 사용할 수 있습니다.

다음을 호출합니다. NdisAdvanceNetBufferDataStart 함수를 사용하여 NdisRetreatNetBufferDataStart추가된 사용된 데이터 공간 해제합니다.

요구 사항

요구
지원되는 최소 클라이언트 NDIS 6.0 이상에서 지원됩니다.
대상 플랫폼 보편적
헤더 ndis/nblapi.h(ndis.h 포함)
라이브러리 Ndis.lib
IRQL <= DISPATCH_LEVEL
DDI 규정 준수 규칙 Irql_NetBuffer_Function(ndis)

참고 항목

NET_BUFFER

NdisAdvanceNetBufferDataStart

netAllocateMdl