Поделиться через


Различия в версиях WDM

Самый простой способ обеспечить совместимость между системами — написать драйвер, использующий только функции, поддерживаемые версией WDM с наименьшими номерами. Однако это не всегда возможно. Иногда драйверам требуется дополнительный код для использования функций, доступных в более поздних версиях WDM, или для компенсации различий между операционными системами Windows.

Различия WDM в подпрограммах поддержки драйверов

На странице справочника по пакету драйверов Windows (WDK) для каждой подпрограммы поддержки драйверов указывается, ограничена ли подпрограмма определенными версиями WDM или ее поведение отличается в разных версиях операционных систем. Прежде чем использовать какие-либо подпрограммы поддержки драйверов в кросссистемном драйвере, обязательно изучите ограничения или поведение, связанные с конкретной версией.

Различия WDM в Plug and Play

Следующие Plug and Play пакет запроса ввода-вывода (IRP) поддерживается только в Windows 2000 и более поздних версиях операционной системы на основе NT (WDM версии 1.10 и более поздних):

IRP_MN_SURPRISE_REMOVAL

Кроме того, следующие irP работают в Windows 98/Me иначе, чем в операционной системе на основе NT:

IRP_MN_STOP_DEVICE и IRP_MN_REMOVE_DEVICE

IRP_MN_QUERY_REMOVE_DEVICE

Различия WDM в управлении питанием

Следующие функции управления питанием и запросы ввода-вывода отличаются по работе между операционной системой Windows 98/Me и операционной системой на основе NT:

PoSetPowerState

PoRequestPowerIrp

PoRegisterDeviceForIdleDetection

IRP_MN_QUERY_POWER

IRP_MN_SET_POWER

При выполнении интеграции с питанием драйверы в Windows 98/Me должны выполнять irp в irQL = PASSIVE_LEVEL, в то время как драйверы в операционной системе на основе NT могут выполнять такие irP по адресу IRQL = PASSIVE_LEVEL или IRQL = DISPATCH_LEVEL.

Флаг DO_POWER_PAGABLE в структуре DEVICE_OBJECT используется в операционной системе Windows 98/Me иначе, чем в операционной системе на основе NT.

Различия WDM в работе драйвера Kernel-Mode

Драйверы WDM в режиме ядра для Windows 98/Me должны соответствовать определенным рекомендациям по использованию операций с плавающей запятой, MMX, 3DNOW! или расширений Intel SSE. Дополнительные сведения см. в статье Использование с плавающей запятой или MMX в драйвере WDM.

Windows 98/Me предоставляет фиксированное количество рабочих потоков, которых может быть недостаточно для некоторых драйверов.