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).
- 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.
- 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