Поддержка нескольких версий операционной системы
Пакеты драйверов обычно поддерживают многие версии операционной системы Windows. В рамках поддержки нескольких версий операционной системы пакет драйвера может иметь разные действия в разных версиях операционной системы, чтобы использовать новые функции или соответствовать новым требованиям новой версии операционной системы. Например, пакет драйвера может иметь другое поведение в операционных системах после определенной версии, чтобы соответствовать требованиям драйверов Windows. В следующих разделах описывается, как в INF-файле пакета драйвера и в поведении двоичных файлов в пакете драйвера может быть по-разному.
Поддержка INF
Украшения TargetOSVersion в разделах INF-моделей в INF позволяют автору INF предоставить различные инструкции по установке и параметры для различных версий операционной системы.
Дополнительные сведения см. в разделе "Объединение расширений платформы с версиями операционной системы".
Поддержка времени выполнения
При попытке изменить поведение во время выполнения для поддержки нескольких версий операционной системы рекомендуется проверять доступность компонентов или API, если это возможно, а не пытаться проверить, работает ли код в определенной версии операционной системы или более поздней версии. Например, если есть API, который вы хотите использовать, если он доступен, можно попытаться динамически найти его вместо статического связывания с ним. Если вы можете найти его, его можно использовать, однако, если он отсутствует в текущей работающей среде, вы можете вернуться к некоторому альтернативному поведению.
Режим ядра
Сведения о поддержке нескольких версий Windows из одного драйвера см. в разделе "Написание драйверов" для разных версий Windows.
Режим пользователя
В пользовательском режиме вы можете использовать LoadLibraryEx вместе с GetProcAddress , чтобы проверить, доступен ли определенный API, который вы хотите использовать в текущей работающей среде, и получить указатель функции для вызова этого API. Дополнительные сведения см. в статье об динамической компоновке во время выполнения и использовании динамической компоновки во время выполнения.