Extensive processing at Wan Miniport Driver Leading to a system Stall

Hi Everyone

I have developed an ISDN Wan Miniport Driver on Windows NT 4.0 - Ndis
Framework 4.0.
The driver works fine under normal conditions and is able to send and
receive packets accurately.
However under Heavy-Traffic condition the driver Stalls the operating System
(i.e. The Keyboard, mouse, etc becomes non-functional).
For better understanding of the above problem please refer following
details.

  1. I have kept the SendWindow as 1. Thus the driver processes 1 packet at a
    time for sending it on the network. If the user-mode applications requests
    for sending another packets, when a particular packet is processed at the
    driver level then these packets are queued at the NdisWan Level.
  2. Processing for sending and receiving Packets may occur simultaneously.
  3. My adapter architecture requires to limit my MaxPacketSize that the
    driver can accept and process as 4080 bytes.
  4. On each Packet Send, an interrupt is received from the adapter for
    confirmation. This interrupt is processed in the HandleInterruptHandler at
    the DISPATCH_LEVEL by setting the “QueueInterruptHandler” field as TRUE in
    the ISR. Thus in the ISR, processing is minimized to --just setting the
    field as TRUE and immediately returning from it to avoid excessive
    processing at DIRQL which may hang the system.

Even after following the above process, in Heavy-Traffic conditions (like
multiple ftp Clients trying to upload and download data simultaneously), My
system gets stalled (i.e unable to Key-in through keyboard or operate
mouse).

Can anybody please suggest what could be the possible reason for the above
problem and how can it be solved.

Regards,
Chirag Sanghani.

If you can, break in with a kernel debugger and look for threads blocked
in your driver. It could be something like breaking your locking
hierarchy or something.

-sd

On Mon, 2004-07-12 at 23:29, Chirag Sanghani wrote:

Hi Everyone

I have developed an ISDN Wan Miniport Driver on Windows NT 4.0 - Ndis
Framework 4.0.
The driver works fine under normal conditions and is able to send and
receive packets accurately.
However under Heavy-Traffic condition the driver Stalls the operating System
(i.e. The Keyboard, mouse, etc becomes non-functional).
For better understanding of the above problem please refer following
details.

  1. I have kept the SendWindow as 1. Thus the driver processes 1 packet at a
    time for sending it on the network. If the user-mode applications requests
    for sending another packets, when a particular packet is processed at the
    driver level then these packets are queued at the NdisWan Level.
  2. Processing for sending and receiving Packets may occur simultaneously.
  3. My adapter architecture requires to limit my MaxPacketSize that the
    driver can accept and process as 4080 bytes.
  4. On each Packet Send, an interrupt is received from the adapter for
    confirmation. This interrupt is processed in the HandleInterruptHandler at
    the DISPATCH_LEVEL by setting the “QueueInterruptHandler” field as TRUE in
    the ISR. Thus in the ISR, processing is minimized to --just setting the
    field as TRUE and immediately returning from it to avoid excessive
    processing at DIRQL which may hang the system.

Even after following the above process, in Heavy-Traffic conditions (like
multiple ftp Clients trying to upload and download data simultaneously), My
system gets stalled (i.e unable to Key-in through keyboard or operate
mouse).

Can anybody please suggest what could be the possible reason for the above
problem and how can it be solved.

Regards,
Chirag Sanghani.


Questions? First check the Kernel Driver FAQ at http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: xxxxx@positivenetworks.net
To unsubscribe send a blank email to xxxxx@lists.osr.com