SetupAPI のログ レベルの設定

SetupAPI ログに書き込まれる情報の量を、すべてのデバイス インストール アプリケーションまたは個々のデバイス インストール アプリケーションに対して制御できます。

すべてのデバイス インストール アプリケーションの SetupAPI ログに書き込まれる情報のレベルを変更するには、次のレジストリ値を作成 (または変更) します。

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Setup\LogLevel

(次の表に示す値を使用して) この値を設定すると、ログ記録されるエラーのレベルを選択したり、ログ記録の詳細度を変更したり、ログ記録をオフにしたりできます。 デバッガーやログ ファイルに情報をログに記録することもできます。

個々のデバイス インストール アプリケーションのログ 記録レベルを指定するには、次のキーの下にレジストリ エントリを作成します。

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Setup\AppLogLevels

このキーの下に、アプリケーションの実行可能ファイル名を表す値名を作成し、必要なログ レベルをその名前に割り当てます (次の表に示す値を使用)。 service.exe=LoggingLevel などです。

ログ 記録レベルは DWORD 値です。 この値が指定されていないか、0 の場合、SetupAPI は次の表に示すように、既定の動作を使用します。

DWORD 値は、0xSSSSDDGG として書式設定された 3 つの部分で構成されます。 マスク 0x000000FFで表される下位 8 ビットは、一般的なデバイス インストール操作のログ レベルを設定します。 マスク 0x0000FF00で表される次の上位 8 ビットは、デバイスのインストール操作のログ レベルを設定します。 最上位ビットは特殊フラグです。

次の表には、Windows 2000 以降の一般的なログ レベル、デバイスインストールログレベル、および特別なログフラグが含まれています。

一般的なログ 記録レベル Meaning
0x00000000 既定の設定を使用(現在 0x20)
0x00000001 オフ (デバイスインストールログなし)。
0x00000010 エラーを記録します。
0x00000020 エラーと警告をログに記録します。
0x00000030 エラー、警告、その他の情報をログに記録します。
0x00000040 詳細モードでエラー、警告、その他の情報をログに記録します。
0x00000050 冗長モードでエラー、警告、およびその他の情報に加えて、タイムスタンプ付きのエントリをログに記録します。
0x00000060 詳細表示モードでは、エラー、警告、その他の情報に加えて、時刻エントリもログに記録します。 さらに、各エントリにはタイムスタンプが記録されます。
0x00000070 詳細モードでは、エラー、警告、その他の情報に加えて、時間に関するメッセージもログに記録します。 すべてのエントリにタイムスタンプが付けられます。 キャッシュヒットなど、システムを遅くする可能性のある追加メッセージが含まれています。
0x000000FF 使用可能な最も詳細なログを指定します。
デバイスのログ レベル Meaning
0x00000000 既定の設定(現在では 0x3000)を使用します。
0x00000100 オフ (デバイスインストールログなし)。
0x00001000 エラーを記録する。
0x00002000 エラーと警告をログに記録します。
0x00003000 エラー、警告、その他の情報をログに記録します。
0x00004000 詳細モードでエラー、警告、その他の情報をログに記録します。
0x00005000 詳細モードのエラー、警告、およびその他の情報に加えて、タイムスタンプ付きのエントリをログに記録します。
0x00006000 詳細モードでは、エラー、警告、その他の情報に加えて、タイムスタンプもログに出力します。 さらに、すべてのエントリにはタイムスタンプが付いています。
0x00007000 詳細モードのエラー、警告、その他の情報と時刻メッセージをログに記録します。 すべてのエントリにタイムスタンプが付けられます。 キャッシュ ヒットなど、システムを遅くする可能性のある追加メッセージも含まれます。
0x0000FF00 使用可能な最も詳細なログを指定します。
特殊フラグ Meaning
0x08000000 (Windows XP 以降) すべてのログ エントリにタイム スタンプを追加します。
0x20000000 (Windows XP 以降) 各エントリの書き込み後にログ情報をディスクにフラッシュしないでください。 (ログ記録は高速ですが、システムがクラッシュすると情報が失われる可能性があります)。
0x40000000 ログ エントリは、エントリをグループ化するのではなく、時系列で書き込みます。
0x80000000 出力をデバッガーとログ ファイルに送信します。

たとえば、SetupAPI では、いくつかのサンプル LoggingFlags 値が次のように解釈されます。

  • 0x00000000は既定のログ記録を意味します。

  • 0x0000FFFFは詳細ログ記録を意味します。

  • 0x8000FF00は、詳細なデバイス インストール情報をログ ファイルとデバッガーの両方に記録することを意味します。

クリーン インストール中に既定の SetupAPI ログ レベルを変更するには、テキスト モードのセットアップから GUI モードのセットアップへの移行期間中にレジストリを編集します。 以下の手順で、この手順を説明します。 これらの手順では、D:\Winnt にインストールし、別のパーティションに同じバージョンのWindowsの正常に動作するビルドがあることを前提としています。 SetupAPI のログ 記録レベルを次のように変更します。

  1. テストするクリーン ビルドのインストールを開始します。

  2. GUI モードのセットアップの前、つまりテキスト モードのセットアップ後の最初の起動時に、セットアップ プロセスを停止します。

  3. ブート メニューから稼働中のビルドを選択して起動し、管理者としてログオンします。

  4. D:\Winnt\System32\config でレジストリ ハイブ (ファイル) を見つけます。この場合は、Software.sav にあるレジストリ ハイブを変更する必要があります。

  5. Windows 2000 で Regedt32 を実行し、[ローカル コンピューターでHKEY_LOCAL_MACHINE] ウィンドウを選択し、HKEY_LOCAL_MACHINE キーを選択します。 次に、レジストリメニューをクリックし、Hive の読み込みを選択します。

    Windows XP 以降で、RegEdit を実行してください。 HKEY_LOCAL_MACHINE を強調表示し、[ ファイル ] メニューをクリックし、[ Hive の読み込み] を選択します。

  6. ファイルを参照し、 D:\Winnt\System32\config\software.sav を選択します。 キー名の入力を求められたら、「_sw.sav」と入力します。

  7. HKEY_LOCAL_MACHINEで_sw.sav キーを開き、次のキーを強調表示します。

    HKEY_LOCAL_MACHINE_sw.sav\Microsoft\Windows\CurrentVersion\Setup
    

    Windows 2000 で、[セキュリティ] メニューをクリックし、[アクセス許可] を選択し、管理者にフル コントロールを付与します。

    Windows XP以降で、[編集] メニューをクリックし、[アクセス許可] を選択し、管理者にフル コントロールを付与します。

  8. Windows 2000 では、[編集] をクリックして [値の追加] を選択し、このキーの下に必要なレジストリ値を追加します。

    Windows XP 以降では、[編集] をクリックし、[新しい DWORD 値] を選択します。

    値を入力します。 たとえば、"0xFFFF" を追加して、完全な詳細ログを有効にします。

  9. HKEY_LOCAL_MACHINE\_sw.sav を選択し、(Windows 2000 の レジストリ メニューまたは Windows XP 以降の ファイル メニューを使用して) ハイブをアンロードします。The_sw.sav キーは消えます。

  10. D:\Winnt\System32\config\software.sav を D:\Winnt\System32\config\software にコピーします。

  11. 再起動してSetup画面に進みます。

  12. この変更を確認するには、GUI モードセットアップで Shift キーを押しながら F10 キーを押し、次に regedit.exe を実行し、ログレベルを確認します。