Unterschiede in WDM-Versionen
Die einfachste Möglichkeit, die systemübergreifende Kompatibilität sicherzustellen, besteht darin, einen Treiber zu schreiben, der nur Features verwendet, die von der version mit der niedrigsten Nummer von WDM unterstützt werden. Dies ist jedoch nicht immer möglich. Manchmal benötigen Treiber zusätzlichen Code, um die Features zu nutzen, die in späteren Versionen von WDM verfügbar sind, oder um Unterschiede zwischen Windows-Betriebssystemen auszugleichen.
WDM-Unterschiede in Treiberunterstützungsroutinen
Auf der Referenzseite des Windows Driver Kit (WDK) für jede Treiberunterstützungsroutine wird angegeben, ob die Routine auf bestimmte Versionen von WDM beschränkt ist oder ob sich ihr Verhalten bei verschiedenen Betriebssystemversionen unterscheidet. Bevor Sie eine Treiberunterstützungsroutine in einem systemübergreifenden Treiber verwenden, sollten Sie alle versionsspezifischen Einschränkungen oder Verhaltensweisen verstehen.
WDM-Unterschiede in Plug & Play
Das folgende Plug & Play E/A-Anforderungspaket (IRP) wird nur in Windows 2000 und höheren Versionen des NT-basierten Betriebssystems (WDM Version 1.10 und höher) unterstützt:
Darüber hinaus funktionieren die folgenden IRPs unter Windows 98/Me anders als mit dem NT-basierten Betriebssystem:
IRP_MN_STOP_DEVICE und IRP_MN_REMOVE_DEVICE
WDM-Unterschiede in der Energieverwaltung
Die folgenden Energieverwaltungsfunktionen und E/A-Anforderungen unterscheiden sich im Betrieb zwischen dem Windows 98/Me-Betriebssystem und dem NT-basierten Betriebssystem:
PoRegisterDeviceForIdleDetection
Beim Abschluss von Power IRPs müssen Treiber unter Windows 98/Me die Energie-IRPs bei IRQL = PASSIVE_LEVEL abschließen, während Treiber des NT-basierten Betriebssystems solche IRPs bei IRQL = PASSIVE_LEVEL oder IRQL = DISPATCH_LEVEL abschließen können.
Das DO_POWER_PAGABLE-Flag in der DEVICE_OBJECT-Struktur wird auf dem Windows 98/Me-Betriebssystem anders verwendet als auf dem NT-basierten Betriebssystem.
WDM-Unterschiede im Kernel-Mode-Treiberbetrieb
Kernelmodus-WDM-Treiber für Windows 98/Me müssen bestimmte Richtlinien für die Verwendung von Gleitkommavorgängen, MMX, 3DNOW! oder Intels SSE-Erweiterungen befolgen. Weitere Informationen finden Sie unter Verwenden von Gleitkomma oder MMX in einem WDM-Treiber.
Windows 98/Me stellt eine feste Anzahl von Workerthreads bereit, die für einige Treiber möglicherweise nicht ausreichend sind.