Hi all,
I have a ClientEventReceive handler registered on TCP transport.
In the handler I allocate some memory and copy the TSDU.
My question is - what do I have to do if cannot consume ANY
of the TSDU and I cannot allocate an Irp to issue TDI_RECEIVE request.
I.e., all memory/Irp/Mdl allocations fail.
I think I should set
*BytesTaken = 0
and
*IoRequestPacket = NULL
and return STATUS_SUCCESS.
I do this, but it seems that the whole TDI pipeline is stuck, i.e.,
my ClientEventReceive does not get called anymore.
Can anyone advise?
Thanks,
Alex.
************************************************************************************
This footnote confirms that this email message has been scanned by
PineApp Mail-SeCure for the presence of malicious code, vandals & computer viruses.
************************************************************************************
Basically, if you do not consume all of the data that was available when your callback was called, you must remember this fact and eventually make an ordinary TdiReceive call to fetch this unread information.
This part of the DDK documentation for ClientEventReceive is helpful:
"The transport does not call ClientEvent(Chained)Receive while the client has an outstanding normal receive request or has rejected previously indicated data for a particular incoming normal receive until that receive is done. "
Good luck,
Thomas F. Divine, Windows DDK MVP
http://www.pcausa.com
“Alexander Lyakas” wrote in message news:xxxxx@ntdev…
Hi all,
I have a ClientEventReceive handler registered on TCP transport.
In the handler I allocate some memory and copy the TSDU.
My question is - what do I have to do if cannot consume ANY
of the TSDU and I cannot allocate an Irp to issue TDI_RECEIVE request.
I.e., all memory/Irp/Mdl allocations fail.
I think I should set
*BytesTaken = 0
and
*IoRequestPacket = NULL
and return STATUS_SUCCESS.
I do this, but it seems that the whole TDI pipeline is stuck, i.e.,
my ClientEventReceive does not get called anymore.
Can anyone advise?
Thanks,
Alex.
This footnote confirms that this email message has been scanned by
PineApp Mail-SeCure for the presence of malicious code, vandals & computer viruses.
>I do this, but it seems that the whole TDI pipeline is stuck, i.e.,
my ClientEventReceive does not get called anymore.
Correct, such an out-of-memory condition will kill the TCP connection for sure.
Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com
http://www.storagecraft.com