Re: [NTDEV][WIN2k][WINXP] Use of the ExInterlockedXxxx function calls across different IRQL levels

> Given that I have a doubly linked list, and that I am using

ExInterlockedInsertTailList and ExInterlockedRemoveHeadList to access
items
in that list, must the list be accessed only at the highest IRQL, or may
it
be accessed at any IRQL? Specially, completed IRPs will be hung on the
list
for deferred completion while in my ISR and at DIRQL. Each IRP will then
be
removed from the list in the DpcForIsr routine and then completed while at
DISPATCH_LEVEL.

Is that kosher, or must the list only be accessed at DIRQL?

Imagine:

  • you do not raise an IRQL and perform the interlocked operation from
    DISPATCH_LEVEL
  • the ISR interrupts it…
  • …and tries to acquire the same spinlock.

Max


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