Como identificar a versão do Windows no ACPI usando _OSI

Este tópico descreve como usar o método _OSI em ASL (Advanced Configuration and Power Interface) Source Language (ASL) para identificar o sistema operacional host. Usando esse método, os gravadores ASL podem criar firmware que dá suporte a versões futuras de sistemas operacionais e permite que o sistema operacional altere o comportamento com base nos níveis de interface solicitados.

Essas informações se aplicam aos seguintes sistemas operacionais:

  • Windows 11, versão 22H2

  • Windows 11

  • Windows 10, versão 2004

  • Windows 10, versão 1903

  • Windows 10, versão 1809

  • Windows 10, versão 1803

  • Windows 10, versão 1709

  • Windows 10, versão 1703

  • Windows 10, versão 1607

  • Visualização técnica do Windows Server

  • 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

O método _OSI

Todas as versões recentes do sistema operacional Windows dão suporte a componentes da Especificação de ACPI (Advanced Configuration and Power Interface). A especificação acpi define uma linguagem interpretada, ASL (Linguagem de Origem acpi), para permitir que o sistema operacional execute métodos de controle fornecidos por firmware para gerenciamento e configuração de energia. Para melhorar a capacidade dos gravadores ASL de identificar a versão do sistema operacional host, o ASL fornece o nível de interface do sistema operacional (_OSI).

Usando o método _OSI, os gravadores ASL podem determinar facilmente a versão das interfaces ACPI compatíveis com o sistema operacional host. Esse método de controle de versão fornece uma solução para criar firmware que pode dar suporte a sistemas operacionais futuros e permitir que o sistema operacional altere o comportamento com base nos níveis de interface solicitados.

_OSI definido

O método _OSI tem um argumento e um valor retornado. O argumento é uma cadeia de caracteres definida por e para cada sistema operacional. O valor retornado será 0x00000000 se a interface não tiver suporte ou 0xFFFFFFFF se houver suporte para a interface.

Versões recentes da especificação acpi estenderam os casos de uso do método _OSI além da identificação da versão do sistema operacional host.

No entanto, o Windows dá suporte apenas a _OSI para o uso da identificação da versão do host do Windows que está em execução no sistema.

O método _OSI é definido da seguinte maneira:

  • _OSI – Interfaces do sistema operacional

Argumento

Uma cadeia de caracteres definida por e para cada sistema operacional. Por exemplo:

  • "Windows 2013" para Windows 8.1 e Windows Server 2012 R2

  • "Windows 2012" para Windows 8 e Windows Server 2012

  • "Windows 2009" para Windows 7 e Windows Server 2008 R2

  • "Windows 2001" para Windows XP

  • "Windows 2001.1" para Windows Server 2003

Retornar valor

Os valores retornados são os seguintes:

  • 0x00000000 se o sistema operacional não oferecer suporte à versão no argumento .

  • 0xFFFFFFFF se o sistema operacional der suporte à versão no argumento .

_OSI detalhes do argumento para Windows

A tabela a seguir lista as versões do Windows que o ASL pode identificar usando a cadeia de caracteres _OSI correspondente.

Os sistemas operacionais Windows retornarão 0xFFFFFFFF se o argumento para o método _OSI especificar uma versão anterior do Windows. Por exemplo, o Windows 7 retorna 0xFFFFFFFF para "Windows 2009" (Windows 7) e "Windows 2006" (Windows Vista).

cadeias de caracteres _OSI para sistemas operacionais Windows

Cadeia de caracteres OSI Sistema operacional de destino
Windows 2000 Windows 2000
Windows 2001 Windows XP
Windows 2001 SP1 Windows XP SP1
Windows 2001.1 Windows Server 2003
Windows 2001 SP2 Windows XP SP2
Windows 2001.1 SP1 Windows Server 2003 SP1
Windows 2006 Windows Vista
Windows 2006 SP1 Windows Vista 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, versão 1607
Windows 2017 Windows 10, versão 1703
Windows 2017.2 Windows 10, versão 1709
Windows 2018 Windows 10, versão 1803
Windows 2018.2 Windows 10, versão 1809
Windows 2019 Windows 10, versão 1903
Windows 2020 Windows 10, versão 2004
Windows 2021 Windows 11
Windows 2022 Windows 11, versão 22H2

Nota de implementação

Coloque a rotina que identifica o sistema operacional em um método _INI no escopo _SB para que _OSI possa ser executado o mais cedo possível.

Esse posicionamento é importante porque o sistema operacional disponibiliza recursos com base no argumento de cadeia de caracteres para o método _OSI.

Recursos adicionais

Configuração avançada e especificação da interface de energia