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;
+ }
}
}
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;