다음을 통해 공유


NdisRetreatNetBufferListDataStart 함수(ndis/nblapi.h)

NdisRetreatNetBufferListDataStart 함수를 호출하여 NET_BUFFER_LIST 구조의 모든 NET_BUFFER 구조에서 사용된 데이터 공간을 늘입니다.

구문

NDIS_EXPORTED_ROUTINE NDIS_STATUS NdisRetreatNetBufferListDataStart(
  [in]           NET_BUFFER_LIST         *NetBufferList,
  [in]           ULONG                   DataOffsetDelta,
  [in]           ULONG                   DataBackFill,
  [in, optional] NET_BUFFER_ALLOCATE_MDL *AllocateMdlHandler,
  [in, optional] NET_BUFFER_FREE_MDL     *FreeMdlHandler
);

매개 변수

[in] NetBufferList

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

[in] DataOffsetDelta

각 NET_BUFFER 구조에서 추가로 사용되는 데이터 공간 의 양입니다. 요청을 충족하기에 사용되지 않는 데이터 공간이 충분하지 않은 경우 NDIS는 더 많은 메모리를 할당합니다.

[in] DataBackFill

NDIS에서 메모리를 할당해야 하는 경우 이 매개 변수는 할당할 DataOffsetDelta 매개 변수 값 외에 데이터 공간의 양을 지정합니다.

[in, optional] AllocateMdlHandler

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

[in, optional] FreeMdlHandler

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

반환 값

NdisRetreatNetBufferListDataStart 는 다음 중 하나를 반환합니다.

반환 코드 설명
NDIS_STATUS_SUCCESS
NdisRetreatNetBufferListDataStartDataOffset 멤버의 값을 줄이거나 새 스토리지를 할당하여 모든 NET_BUFFER 구조에 데이터 공간을 할당했습니다.
NDIS_STATUS_RESOURCES
리소스가 부족하여 NdisRetreatNetBufferListDataStart가 실패했습니다.
NDIS_STATUS_FAILURE
리소스 부족 이외의 이유로 NdisRetreatNetBufferListDataStart가 실패했습니다.

설명

NdisRetreatNetBufferListDataStart를 호출하는 것은 를 호출하는 것과 같습니다.NET_BUFFER_LIST 구조체의 모든 NET_BUFFER 구조체에 대한 NdisRetreatNetBufferDataStart 함수입니다. NdisRetreatNetBufferListDataStart 는 모든 NET_BUFFER 구조에서 DataOffset 멤버의 값을 줄여 요청을 충족하려고 시도합니다. 사용하지 않는 데이터 공간이 충분하지 않은 경우 이 함수는 새 버퍼와 MDL을 할당한 다음 새 MDL을 NET_BUFFER 구조체의 MDL 체인 시작 부분에 연결합니다.

다음을 호출합니다. NdisAdvanceNetBufferListDataStart 함수는 이전 NdisRetreatNetBufferListDataStart 호출에서 클레임된 데이터 공간을 해제합니다. 또는 드라이버가 다음을 호출할 수 있습니다.NET_BUFFER_LIST 구조체의 각 NET_BUFFER 구조체에 대한 NdisAdvanceNetBufferDataStart 함수입니다. NdisAdvanceNetBufferListDataStart를 호출하는 것이 더 효율적입니다.

요구 사항

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

추가 정보

NET_BUFFER

NET_BUFFER_LIST

NdisAdvanceNetBufferDataStart NdisAdvanceNetBufferListDataStart NdisRetreatNetBufferDataStart

NetAllocateMdl

NetFreeMdl