共用方式為


WDM 版本的差異

確保跨系統相容性的最簡單方式是撰寫只使用最低編號 WDM 版本所支援功能的驅動程式。 不過,這不一定可行。 有時候,驅動程式需要額外的程式碼,才能利用較新版本 WDM 中可用的功能,或補償 Windows 作業系統之間的差異。

驅動程式支援常式中的 WDM 差異

每個驅動程式支援常式的 Windows 驅動程式套件 (WDK) 參考頁面會指出常式是否受限於特定版本的 WDM,或其行為在不同作業系統版本上是否不同。 在跨系統驅動程式中使用任何驅動程式支援常式之前,請務必瞭解任何版本特定的限制或行為。

隨插即用中的 WDM 差異

下列隨插即用 I/O 要求封包 (IRP) 僅支援 Windows 2000 和更新版本的 NT 型作業系統, (WDM 1.10 版和更新版本) :

IRP_MN_SURPRISE_REMOVAL

此外,下列 IRP 在 Windows 98/Me 上的運作方式與 NT 型作業系統的運作方式不同:

IRP_MN_STOP_DEVICEIRP_MN_REMOVE_DEVICE

IRP_MN_QUERY_REMOVE_DEVICE

電源管理中的 WDM 差異

下列電源管理功能和 I/O 要求在 Windows 98/Me 作業系統與 NT 型作業系統之間的作業不同:

PoSetPowerState

PoRequestPowerIrp

PoRegisterDeviceForIdleDetection

IRP_MN_QUERY_POWER

IRP_MN_SET_POWER

完成電源 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 提供可能不適合某些驅動程式的固定背景工作執行緒數目。