Hi,
In Windows NT/2000 NDIS driver we use NdisAcquireSpinLock to synchronization . which can be used in Windows9X system?
Thanks for you help.
Crasher Guo
xxxxx@sinfors.com.cn
???2003-05-15
Crasher Guo wrote:
In Windows NT/2000 NDIS driver we use NdisAcquireSpinLock to synchronization . which can be used in Windows9X system?
The actual function named NdisAcquireSpinLock is a no-operation in
98/Me. This is actually quite incorrect, inasmuch as it should at least
raise the IRQL to DISPATCH_LEVEL as does the NTKERN implementation of
KeAcquireSpinLock. (Note: DISPATCH_LEVEL is the same as “interrupt time”
in VxD documentation.)
You can bypass the incorrect implementation by defining the preprocessor
variable USE_KLOCKS when you build your NDIS driver. This causes
NdisAcquireSpinLock to become a macro that calls KeAcquireSpinLock.
Beware, however, because it does not also cause functions like
NdisInterlockedIncrement to suddenly start working right – they
continue to be non-interlocked functions that could be preempted by a
hardware interrupt.
–
Walter Oney, Consulting and Training
Basic and Advanced Driver Programming Seminars
Now teaming with John Hyde for USB Device Engineering Seminars
Check out our schedule at http://www.oneysoft.com