X-Git-Url: https://git.reactos.org/?p=reactos.git;a=blobdiff_plain;f=reactos%2Fdrivers%2Fnetwork%2Fafd%2Fafd%2Fread.c;h=a4b8bc84352efa4893c0b32704d768d64aaefa4c;hp=039a8ec9e02ebfe9d68b03b8205339b8f505c771;hb=923017639c13f50601b196575772b8de07768f26;hpb=cb57056f4bea90313fc74cd8aff017000e8256e8 diff --git a/reactos/drivers/network/afd/afd/read.c b/reactos/drivers/network/afd/afd/read.c index 039a8ec9e02..a4b8bc84352 100644 --- a/reactos/drivers/network/afd/afd/read.c +++ b/reactos/drivers/network/afd/afd/read.c @@ -85,9 +85,12 @@ static NTSTATUS TryToSatisfyRecvRequestFromBuffer( PAFD_FCB FCB, MmUnmapLockedPages( Map[i].BufferAddress, Map[i].Mdl ); - FCB->Recv.BytesUsed += BytesToCopy; - *TotalBytesCopied += BytesToCopy; - BytesAvailable -= BytesToCopy; + *TotalBytesCopied += BytesToCopy; + + if (!(RecvReq->TdiFlags & TDI_RECEIVE_PEEK)) { + FCB->Recv.BytesUsed += BytesToCopy; + BytesAvailable -= BytesToCopy; + } } } @@ -405,8 +408,11 @@ SatisfyPacketRecvRequest( PAFD_FCB FCB, PIRP Irp, MmUnmapLockedPages( Map[0].BufferAddress, Map[0].Mdl ); - FCB->Recv.BytesUsed = 0; - *TotalBytesCopied = BytesToCopy; + *TotalBytesCopied = BytesToCopy; + + if (!RecvReq->TdiFlags & TDI_RECEIVE_PEEK) { + FCB->Recv.BytesUsed = 0; + } } Status = Irp->IoStatus.Status = STATUS_SUCCESS;