NdisAdvanceNetBufferDataStart 함수(ndis/nblapi.h)

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

구문

NDIS_EXPORTED_ROUTINE VOID NdisAdvanceNetBufferDataStart(
  [in]           NET_BUFFER          *NetBuffer,
  [in]           ULONG               DataOffsetDelta,
  [in]           BOOLEAN             FreeMdl,
  [in, optional] NET_BUFFER_FREE_MDL *FreeMdlHandler
);

매개 변수

[in] NetBuffer

이전에 할당된 NET_BUFFER 구조체에 대한 포인터입니다.

[in] DataOffsetDelta

릴리스할 사용된 데이터 공간 의 양입니다. NDIS는 NET_BUFFER 구조체의 DataOffset 멤버 값을 적절하게 조정합니다.

[in] FreeMdl

TRUE이면 사전 작업에서 사용되지 않는 모든 MDL을 해제하도록 NDIS에 요청하는 부울 값입니다. FreeMdlFALSE이면 NDIS는 후속 퇴각 작업에 사용하기 위해 사용되지 않는 MDL을 유지합니다.

[in, optional] FreeMdlHandler

NetFreeMdl 함수에 대한 선택적 진입점입니다. 호출자가 NetFreeMdl 함수의 진입점을 지정하는 경우 NDIS는 NetFreeMdl 을 호출하여 MDL 및 메모리를 해제합니다.

반환 값

없음

설명

NDIS가 에 대한 해당 호출을 충족하기 위해 메모리를 할당한 경우 NdisRetreatNetBufferDataStart 함수를 실행한 다음 NdisAdvanceNetBufferDataStartNdisRetreatNetBufferDataStart 가 할당한 메모리를 해제합니다. 그렇지 않으면 메모리가 MDL에 남아 있고 NET_BUFFER 구조체의 DataOffset 멤버 값만 수정됩니다.

NdisAdvanceNetBufferDataStart에서 메모리를 해제해야 하는 경우 NDIS는 FreeMdl에 지정된 NetFreeMdl 함수를 호출합니다. NDIS는 NetFreeMdl 을 호출하여 드라이버가 NetAllocateMdl 함수에 할당한 MDL 및 메모리를 해제합니다.

프로토콜 드라이버가 수신 경로에서 NdisAdvanceNetBufferDataStart 를 호출하여 다양한 전송 헤더에 액세스하는 경우 MDL 체인을 수정하면 안 되며 FreeMdlFALSE입니다.

요구 사항

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

추가 정보

NET_BUFFER

NdisRetreatNetBufferDataStart

NetAllocateMdl

NetFreeMdl