_OSI を使用して ACPI で Windows バージョンを識別する方法

このトピックでは、Advanced Configuration and Power Interface (ACPI) ソース言語 (ASL) の _OSI メソッドを使用して、ホスト オペレーティング システムを識別する方法について説明します。 この方法を使用すると、ASL ライターは、将来のオペレーティング システム バージョンをサポートするファームウェアを作成し、要求されたインターフェイス レベルに基づいてオペレーティング システムの動作を変更できます。

このドキュメントに記載された情報の対象となるオペレーティング システムは次のとおりです。

  • Windows 11、 バージョン 22H2

  • Windows 11

  • Windows 10 バージョン 2004

  • Windows 10 Version 1903

  • Windows 10 Version 1809

  • Windows 10 Version 1803

  • Windows 10 Version 1709

  • Windows 10 Version 1703

  • Windows 10 Version 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) を提供します。

ASL ライターは _OSI メソッドを使用すると、ホスト オペレーティング システムがサポートする ACPI インターフェイスのバージョンを簡単に判断できます。 このバージョン管理方法は、将来のオペレーティング システムをサポートし、オペレーティング システムが要求されたインターフェイス レベルに基づいて動作を変更できるようにするファームウェアを作成するためのソリューションを提供します。

_OSI が定義されている場合

_OSI メソッドには、1 つの引数と 1 つの戻り値があります。 引数は、オペレーティング システムごとに定義される文字列です。 戻り値は、インターフェイスがサポートされていない場合は 0x00000000、インターフェイスがサポートされている場合は 0xFFFFFFFF です。

ACPI 仕様の最近のバージョンでは、ホスト オペレーティング システムのバージョン識別を超えて、_OSI メソッドのユース ケースが拡張されています。

ただし、Windows では、システム上で実行されている Windows のホスト バージョンを識別する場合にのみ、_OSI がサポートされます。

_OSI メソッドの定義は次のとおりです。

  • _OSI - オペレーティング システム インターフェイス

引数

オペレーティング システムごとに定義された文字列。 次に例を示します。

  • Windows 8.1 と Windows Server 2012 R2 に "Windows 2013"

  • Windows 8 と Windows Server 2012 に "Windows 2012"

  • Windows 7 と Windows Server 2008 R2 に "Windows 2009"

  • Windows XP に "Windows 2001"

  • Windows Server 2003 の "Windows 2001.1"

戻り値

戻り値は次のとおりです。

  • オペレーティング システムが引数のバージョンをサポートしていない場合は 0x00000000 です。

  • オペレーティング システムが引数のバージョンをサポートしている場合は 0xFFFFFFFF です。

Windows の_OSI 引数の詳細

次の表に、対応する _OSI 文字列を使用して ASL が識別できる Windows のバージョンを示します。

Windows オペレーティング システムは、_OSI メソッドの引数で以前のバージョンの Windows が指定されている場合、0xFFFFFFFF を返します。 たとえば、Windows 7 では、"Windows 2009" (Windows 7) と "Windows 2006" (Windows Vista) の両方に対して 0xFFFFFFFF が返されます。

Windows オペレーティング システムの _OSI 文字列

OSI 文字列 ターゲット OS
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 サーバー 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 Version 1607
Windows 2017 Windows 10 Version 1703
Windows 2017.2 Windows 10 Version 1709
Windows 2018 Windows 10 Version 1803
Windows 2018.2 Windows 10 Version 1809
Windows 2019 Windows 10 Version 1903
Windows 2020 Windows 10 バージョン 2004
Windows 2021 Windows 11
Windows 2022 Windows 11、 バージョン 22H2

実装に関する注意事項

_OSI ができるだけ早く実行できるように、オペレーティング システムを識別するルーチンを _INI メソッドの_SB スコープの下に配置します。

オペレーティング システムでは、_OSI メソッドの文字列引数に基づいて機能を使用できるため、この配置は重要です。

その他のリソース

Advanced Configuration and Power Interface の仕様