WDM 版本的差異
確保跨系統相容性的最簡單方式是撰寫只使用最低編號 WDM 版本所支援功能的驅動程式。 不過,這不一定可行。 有時候,驅動程式需要額外的程式碼,才能利用較新版本 WDM 中可用的功能,或補償 Windows 作業系統之間的差異。
驅動程式支援常式中的 WDM 差異
每個驅動程式支援常式的 Windows 驅動程式套件 (WDK) 參考頁面會指出常式是否受限於特定版本的 WDM,或其行為在不同作業系統版本上是否不同。 在跨系統驅動程式中使用任何驅動程式支援常式之前,請務必瞭解任何版本特定的限制或行為。
隨插即用中的 WDM 差異
下列隨插即用 I/O 要求封包 (IRP) 僅支援 Windows 2000 和更新版本的 NT 型作業系統, (WDM 1.10 版和更新版本) :
此外,下列 IRP 在 Windows 98/Me 上的運作方式與 NT 型作業系統的運作方式不同:
IRP_MN_STOP_DEVICE 和 IRP_MN_REMOVE_DEVICE
電源管理中的 WDM 差異
下列電源管理功能和 I/O 要求在 Windows 98/Me 作業系統與 NT 型作業系統之間的作業不同:
PoRegisterDeviceForIdleDetection
完成電源 IRP 時,Windows 98/Me 上的驅動程式必須在 IRQL = PASSIVE_LEVEL完成電源 IRP,而 NT 型作業系統上的驅動程式可以在 IRQL = PASSIVE_LEVEL或 IRQL = DISPATCH_LEVEL完成這類 IRP。
DEVICE_OBJECT 結構中的 DO_POWER_PAGABLE 旗標在 Windows 98/Me 作業系統上與 NT 型作業系統上的使用方式不同。
Kernel-Mode驅動程式作業中的 WDM 差異
適用于 Windows 98/Me 的核心模式 WDM 驅動程式必須遵循使用浮點運算、MMX、3DNOW!或 Intel SSE 擴充功能的特定指導方針。 如需詳細資訊,請參閱 在 WDM 驅動程式中使用浮點或 MMX。
Windows 98/Me 提供可能不適合某些驅動程式的固定背景工作執行緒數目。