Windows 98Me Compatibility Notes

Windows 98/Me Compatibility Notes

In addition to the horrible problem with KeWaitXxx functions described in an earlier sidebar and the fact that KeReadStateEvent isn t supported, note the following additional compatibility issues between Windows 98/Me on the one hand and Windows 2000/XP on the other.

You cannot wait on a KTHREAD object in Windows 98/Me. Attempting to do so crashes the system because the thread object doesn t have the fields necessary for VWIN32 to wait on it.

DISPATCH_LEVEL in a WDM driver corresponds to what is called interrupt time in a VxD driver. Every WDM interrupt service routine runs at a higher IRQL, which means that WDM interrupts have higher priority than non-WDM interrupts. If a WDM device shares an interrupt with a VxD device, however, both interrupt routines run at the WDM driver s DIRQL.

WDM driver code running at PASSIVE_LEVEL won t be preempted in Windows 98/Me unless it blocks explicitly by waiting for a dispatcher object or implicitly by causing a page fault.

Windows 98/Me is inherently a single-CPU operating system, so the spin lock primitives always just raise the IRQL. This fact, combined with the fact that nonpaged driver code won t be preempted, means that synchronization problems are much less frequent in this environment. (Therefore, do most of your debugging in Windows XP so you ll trip on the problems.)



Programming the Microsoft Windows Driver Model
Programming the Microsoft Windows Driver Model
ISBN: 0735618038
EAN: 2147483647
Year: 2003
Pages: 119
Authors: Walter Oney

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net