NDIS IM driver power transitions and packet completion?

How should an NDIS intermediate (deserialized) driver handle power state changes with respect to queued packets and their completion?

The question in more detail:

How should the following be handled, assuming we’re attempting to or have transitioned to a sleeping state ie. (> NetDeviceStateD0).

  1. The DDK states that in ProtocolPNPEvent I should stop sending anymore packets down and wait until all outstanding send packets are completed before finishing the power state change. However, it doesn’t
    indicate what I should do with packets I have queued for sending but haven’t as yet or how to handle new send requests in MiniportSendPackets, should I just complete them all with an error, and if so what error?

I figure we should just complete all queued packets with an error just incase there’s another intermediate driver layered above us who is also making a transition to a sleep state and is waiting in its ProtocolPNPEvent
for its outstanding requests which I currently have queued or passed down to a miniport.

  1. If the power state change in ProtocolPNPEvent occurs in the middle of my MiniportSendPackets and I’m using NdisSendPackets to pass the array down. Should I finish repackaging the array and send it down or
    should I revert my repackaging and complete them all with some error status as noted above.

Once again I figure they should be handled the same as the queued packets above.

Cheers

Karl

PGP Public Key Fingerprint: 402F D539 3CDB DCC6 0E40 8437 B957 C9B2


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com