Определение версии Windows в ACPI с помощью _OSI

В этом разделе описывается, как использовать метод _OSI в языке описания интерфейса расширенной конфигурации и управления питанием (ACPI) для идентификации операционной системы узла. С помощью этого метода средства записи ASL могут создавать встроенное ПО, которое поддерживает будущие версии операционных систем и позволяет операционной системе изменять поведение на основе запрошенных уровней интерфейса.

Эта информация относится к следующим операционным системам:

  • Windows 11, версия 22H2

  • Windows 11

  • Windows 10 версии 2004

  • Windows 10 версии 1903

  • Windows 10, версия 1809

  • Windows 10 версии 1803

  • Windows 10 версии 1709

  • Windows 10 версии 1703

  • Windows 10, версия 1607

  • Windows Server Technical Preview

  • Windows 10

  • Windows Server 2012 R2

  • Windows 8.1

  • Windows Server 2012

  • Windows 8

  • Windows Server 2008 R2

  • Windows 7

  • Windows Server 2008

  • Windows Vista

  • Windows Server 2003

  • Windows XP

Метод _OSI

Все последние версии операционной системы Windows поддерживают компоненты спецификации Advanced Configuration and Power Interface (ACPI). Спецификация ACPI определяет интерпретируемый язык, язык исходного кода ACPI (ASL), чтобы дать возможность операционной системе выполнять предоставленные прошивкой методы контроля для управления питанием и конфигурации. Чтобы улучшить способность авторов ASL определять версию основной операционной системы, ASL предоставляет интерфейс операционной системы (_OSI).

Используя метод _OSI, средства записи ASL могут легко определить версию интерфейсов ACPI, поддерживаемых операционной системой узла. Этот метод управления версиями предоставляет решение для создания встроенного ПО, которое может поддерживать будущие операционные системы и позволяет операционной системе изменять поведение на основе запрошенных уровней интерфейса.

_OSI определено

Метод _OSI имеет один аргумент и одно возвращаемое значение. Аргумент — это строка, определяемая и для каждой операционной системы. Возвращаемое значение 0x00000000, если интерфейс не поддерживается или 0xFFFFFFFF, если интерфейс поддерживается.

Последние версии спецификации ACPI расширили варианты использования метода _OSI за пределами идентификации версии операционной системы узла.

Однако Windows поддерживает _OSI только для идентификации хост-версии Windows, работающей в системе.

Метод _OSI определяется следующим образом:

  • _OSI — интерфейсы операционной системы

Аргумент

Строка, определенная и для каждой операционной системы. Рассмотрим пример.

  • Windows 2013 для Windows 8.1 и Windows Server 2012 R2

  • "Windows 2012" для Windows 8 и Windows Server 2012

  • Windows 2009 для Windows 7 и Windows Server 2008 R2

  • "Windows 2001" для Windows XP

  • "Windows 2001.1" для Windows Server 2003

Возвращаемое значение

Возвращаемые значения приведены следующим образом:

  • 0x00000000, если операционная система не поддерживает версию в аргументе.

  • 0xFFFFFFFF, если операционная система поддерживает версию в аргументе.

_OSI сведения об аргументе для Windows

В таблице ниже перечислены версии Windows, которые ASL могут определять с помощью соответствующей строки _OSI.

Операционные системы Windows возвращают 0xFFFFFFFF, если аргумент метода _OSI указывает более раннюю версию Windows. Например, Windows 7 возвращает 0xFFFFFFFF для Windows 2009 (Windows 7) и Windows 2006 (Windows Vista).

строки _OSI для операционных систем Windows

Строка OSI Целевая ОС
Windows 2000 Windows 2000
Windows 2001 Windows XP
Windows 2001 с пакетом обновления 1 (SP1) Windows XP с пакетом обновления 1 (SP1)
Windows 2001.1 Windows Server 2003
Windows 2001 с пакетом обновления 2 (SP2) Windows XP с пакетом обновления 2 (SP2)
Windows 2001.1 с пакетом обновления 1 (SP1) Windows Server 2003 с пакетом обновления 1 (SP1)
Windows 2006 Windows Vista
Windows 2006 с пакетом обновления 1 (SP1) Windows Vista с пакетом обновления 1 (SP1)
Windows 2006.1 Windows Server 2008
Windows 2009 Windows 7, Win Server 2008 R2
Windows 2012 Windows 8, Win Server 2012
Windows 2013 Windows 8.1
Windows 2015 Windows 10
Windows 2016 Windows 10, версия 1607
Windows 2017 Windows 10 версии 1703
Windows 2017.2 Windows 10 версии 1709
Windows 2018 Windows 10 версии 1803
Windows 2018.2 Windows 10, версия 1809
Windows 2019 Windows 10 версии 1903
Windows 2020 Windows 10 версии 2004
Windows 2021 Windows 11
Windows 2022 Windows 11, версия 22H2

Примечание о реализации

Поместите подпрограмму, которая идентифицирует операционную систему, в методе _INI в области _SB, чтобы _OSI мог выполняться как можно раньше.

Это размещение важно, так как операционная система делает функции доступными на основе строкового аргумента в методе _OSI.

Дополнительные ресурсы

спецификации расширенной конфигурации и интерфейса питания