RE: Very long wait on event after TDI_SEND

Hello Jeffrey,

Monday, June 23, 2003, 8:45:31 PM, you wrote:

Bad.

If I send data to tcp without synchronization(it’s possible), using
completion routine, than after few minutes of good job system stops
calling my completion routine. No delivery to client, no MDL destroy,
no free memory, etc…
AFAWinDbgK, other tdi clientst use events in their tdi tcp clients. It seems that
something wrong somewhere.

CJ> You shouldn’t change that value in the registry. Remember that it is the
CJ> server machine’s delay ack setting that is the issue here.

CJ> What I would do is setup a completion routine on your TDI_SEND IRP and
CJ> in the completion routine handle any cleanup you need to do.

CJ> The only synchronization you need is if you access a shared resource
CJ> in the sending thread and the thread that services your completion
CJ> routine.

CJ> -Jeff

CJ> -----Original Message-----
CJ> From: Sergey Kipnis [mailto:kipnis@wp.pl]
CJ> Sent: Monday, June 23, 2003 1:40 PM
CJ> To: NT Developers Interest List
CJ> Subject: [ntdev] RE: Very long wait on event after TDI_SEND

CJ> Hello Jeffrey,

CJ> Monday, June 23, 2003, 6:29:57 PM, you wrote:

CJ> And what to do with delayed ack? How to change this behaviour from the
CJ> driver? Of course, I could change this in registry

CJ> =====================================================

CJ> Delayed ACKs reduce the number of packets sent on the network. An ACK
CJ> is only sent when either of the following occurs:

CJ> - No ACK was sent for the previously received segment.

CJ> - No segment arrives within 200 milliseconds (the default), after
CJ> receiving a segment.

CJ> =====================================================

CJ> This means that changing ACK delay time to zero is not very good idea.

CJ>> Sounds like a delayed ack to me.

CJ>> -Jeff

CJ>> -----Original Message-----
CJ>> From: Sergey Kipnis [mailto:kipnis@wp.pl]
CJ>> Sent: Monday, June 23, 2003 12:26 PM
CJ>> To: NT Developers Interest List
CJ>> Subject: [ntdev] Very long wait on event after TDI_SEND

CJ>> Hello,

CJ>> I have very strange behaviour in my tdi client. Elapsed time in
CJ>> KeWaitForSingleObject after IoCallDriver is almost exactly 200
CJ>> milliseconds(usually 199 millisecond but time to time 398 millisecs)!
CJ>> What may be the reason of such behaviour?

CJ>> Event is set inside completion routine.


Best regards,
Sergey mailto:kipnis@wp.pl