Microsoft ASL コンパイラ

Microsoft ACPI ソース言語 (ASL) コンパイラのバージョン 5.0 では、高度な構成と電源インターフェイス仕様、リビジョン 5.0 (ACPI 5.0 仕様) の機能がサポートされています。 ASL コンパイラは、Windows Driver Kit (WDK) と共に配布されます。

Windows Driver Kit (WDK) のダウンロード

ASLコンパイラ (asl.exe) は、インストールされているWDKのTools\arm\ACPIVerify、Tools\arm64\ACPIVerify、Tools\x86\ACPIVerify、およびTools\x64\ACPIVerifyディレクトリにあります (C:\Program Files (x86)\Windows Kits\10\Tools\<build #>\<build architecture>\ACPIVerify など)。

まず SDK をインストールし、次に WDK をインストールする必要があります。 2 つのキットのビルド番号が一致していることが必要です。

コマンドライン オプション

ASL コンパイラでは、いくつかのコマンド ライン オプションがサポートされています。 バージョン情報と使用可能なコマンド ライン オプションを一覧表示するには、コマンド プロンプト ウィンドウでコマンド「asl /?」を実行します。

ASL コンパイラの使用方法

ASL コンパイラでは、次のコマンド ライン オプションがサポートされています。

asl /?
asl [/nologo] /d <BinFile>
asl [/nologo] /u [/Fa=<ASMFile>] [/Fl=<LSTFile>] [/Fn=<NSDFile>] <AMLFile>
asl [/nologo] /tab=<TabSig> [/c] [/Fa=<ASMfile>] [/Fl=<LSTFile>] [/Fn=<NSDFile>]
asl [/nologo] [/Fo=<AMLFile>] [/Fa=<ASMFile>] [/Fl=<LSTFile>] [/Fn=<NSDFile>] <ASLFile>
オプション 説明
? このヘルプ メッセージを印刷します。
nologo ロゴ バナーを非表示にします。
Fo=<AMLFile> DefinitionBlock の AML ファイル名をオーバーライドします。
Fa=<ASMFile> <ASMFile> という名前で .ASM ファイルを生成します。
Fn=<NSDFile> <NSDFile> という名前の名前空間ダンプ ファイルを生成します。
d バイナリ ファイルをテキスト形式でダンプします。
u AML ファイルを .ASL ファイル (デフォルト) または .LST ファイルに逆アセンブルします。
tab=<TabSig> ASL テーブルを .ASL ファイル (デフォルト) または .LST ファイルに逆アセンブルします。 ASL 以外のテーブルを.TXT ファイルにダンプします。 <TabSig> が '*' の場合、すべてのテーブルが ACPI.TXT にダンプされます。 <TabSig> は、テーブルの物理アドレスにすることもできます。
c テーブルからバイナリ ファイルを作成します。

Microsoft ASL コンパイラの ACPI テーブル読み込み機能を使用する

システム開発時に、さまざまな ACPI BIOS コンストラクトをシミュレートし、開発システムでテストする方法があると便利です。 Windows オペレーティング システムでは、PC の BIOS ROM ではなく、Windows レジストリから特定の ACPI テーブルを読み込むことができます。 この機能を使用するには管理者権限が必要です。また、システムでテスト署名を有効にする必要があります。 UEFI セキュア ブートをサポートするシステムの場合、テスト署名を有効にすることはできません。また、UEFI セキュア ブートが無効になっているか、Windows デバッグ ポリシーがシステムにインストールされていない限り、コンパイラのテーブル読み込み機能を使用することはできません。

テーブル読み込み機能を使用するには、オーバーロードする ACPI テーブルが次の要件を満たしている必要があります。

  • オーバーロードするテーブルは、システムの BIOS ROM に既に存在していることが必要です。 たとえば、DSDT はオーバーロードできますが、マシンに SSDT がない場合は、このレジストリ オーバーライド メカニズムから SSDT を強制的に読み込むことはありません。

  • テーブルには、Windows ACPI インタープリター (Acpi.sys ドライバー) によって通常使用される AML コードが含まれている必要があります。

  • バージョン番号が最も高いテーブルが読み込まれます。 テストのためにレジストリに読み込まれるテーブルのバージョン番号は、BIOS ROM 内の同じテーブルよりも大きいことが必要です。

  • 読み込むテーブルはコンパイル済み (AML) 形式で、正しいパラメーターを指定して適切な場所のレジストリに読み込む必要があります。 ここで説明するメカニズムは、テーブルの読み込みとレジストリの構成のすべての側面を処理するよう設計されています。

警告

このトピックで説明するプロセスでは、Windows システムが起動不可能な状態になる可能性があります。 ここで説明する手順を実行する前に、同じコンピューターで NTFS ファイル システムをサポートする別のオペレーティング システム (つまり、「安全なビルド」) にアクセスできることを確認します。 このプロセスはシステム開発者とテスト担当者のみへの提供となり、開発や運用の目的で不可欠なコンピューターでは使用するべきではありません。

ACPI-table-load の使用方法

テスト目的で ACPI テーブルをレジストリに読み込むには、ASL コンパイラが次のように呼び出されます。

asl.exe /loadtable [-v] [-d] <AMLFile>

ここで、AMLFile は、レジストリに読み込むテーブルを含むコンパイル済みの AML ファイルの名前です。

オプション 説明
-v Verbose モード ユーティリティからの追加のデバッグ出力をオンにします。
-d 削除します。 以前に読み込まれた AML ファイルをレジストリから削除し、関連付けられているすべてのレジストリ キーを削除します。

その他のリソース