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 는 다음 중 하나를 반환합니다.
반환 코드 | 설명 |
---|---|
|
NdisRetreatNetBufferListDataStart 는 DataOffset 멤버의 값을 줄이거나 새 스토리지를 할당하여 모든 NET_BUFFER 구조에 데이터 공간을 할당했습니다. |
|
리소스가 부족하여 NdisRetreatNetBufferListDataStart가 실패했습니다. |
|
리소스 부족 이외의 이유로 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) |