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 以降の一般的なログ レベル、デバイスインストールログレベル、および特別なログフラグを示します。
一般的なログ レベル | 意味 |
---|---|
0x00000000 | 既定の設定 (現在0x20) を使用します。 |
0x00000001 | オフ (デバイスインストールログなし)。 |
0x00000010 | ログ エラー。 |
0x00000020 | ログ エラーと警告 |
0x00000030 | エラー、警告、その他の情報をログに記録します。 |
0x00000040 | 詳細モードで、エラー、警告、その他の情報をログに記録します。 |
0x00000050 | 詳細モードのエラー、警告、およびその他の情報に加えて、タイムスタンプ付きのエントリをログに記録します。 |
0x00000060 | 詳細モードのエラー、警告、およびその他の情報に加えて、タイム エントリをログに記録します。 さらに、すべてのエントリにタイムスタンプが付けられます。 |
0x00000070 | 詳細モードのエラー、警告、およびその他の情報に加えて、タイム メッセージをログに記録します。 すべてのエントリにタイムスタンプが付けられます。 キャッシュ ヒットなど、システムの速度を低下する可能性がある追加のメッセージが含まれています。 |
0x000000FF | 使用可能な最も詳細なログを指定します。 |
デバイス ログ レベル | 意味 |
---|---|
0x00000000 | 既定の設定 (現在 0x3000) を使用します。 |
0x00000100 | オフ (デバイスインストールログなし)。 |
0x00001000 | ログ エラー。 |
0x00002000 | ログ エラーと警告 |
0x00003000 | エラー、警告、その他の情報をログに記録します。 |
0x00004000 | 詳細モードで、エラー、警告、その他の情報をログに記録します。 |
0x00005000 | 詳細モードのエラー、警告、およびその他の情報に加えて、タイムスタンプ付きのエントリをログに記録します。 |
0x00006000 | 詳細モードのエラー、警告、およびその他の情報に加えて、タイム エントリをログに記録します。 さらに、すべてのエントリにタイムスタンプが付けられます。 |
0x00007000 | 詳細モードのエラー、警告、およびその他の情報に加えて、タイム メッセージをログに記録します。 すべてのエントリにタイムスタンプが付けられます。 キャッシュ ヒットなど、システムの速度を低下する可能性がある追加のメッセージが含まれています。 |
0x0000FF00 | 使用可能な最も詳細なログを指定します。 |
特殊フラグ | 意味 |
---|---|
0x08000000 | (Windows XP 以降) すべてのログ エントリにタイム スタンプを追加します。 |
0x20000000 | (Windows XP 以降) 各エントリが書き込まれた後にログ情報をディスクにフラッシュしないでください。 (ログ記録は高速ですが、システムがクラッシュすると情報が失われる可能性があります)。 |
0x40000000 | ログ エントリは、エントリをグループ化するのではなく、時系列で書き込みます。 |
0x80000000 | 出力をログ ファイル同様にデバッガーにも送信します。 |
たとえば、SetupAPI では、いくつかのサンプル LoggingFlags 値が 次のように解釈されます。
0x00000000 は既定のログ記録を意味します。
0x0000FFFF は詳細ログ記録を意味します。
0x8000FF00 は、詳細なデバイス インストール情報をログ ファイルとデバッガーの両方に記録することを意味します。
クリーンインストール中に既定の SetupAPI ログ レベルを変更するには、テキスト モードのセットアップと GUI モードのセットアップの間にレジストリを編集します。 次の手順では、方法を説明します。 これらの手順では、D:\Winnt にインストールし、別のパーティションに同じバージョンの Windows の動作ビルドがあることを前提としています。 SetupAPI のログ 記録レベルを次のように変更します。
テストするクリーン ビルドのインストールを開始します。
テキスト モードのセットアップの後 (つまり、GUI モードのセットアップの前) の最初の起動中にセットアップ プロセスを停止します。
ブート メニューから作業ビルドを選択して起動し、管理者 としてログオンします。
D:\Winnt\System32\config でレジストリ ハイブ (ファイル) を見つけます。この場合は、Software.sav でレジストリ ハイブを変更する必要があります。
Windows 2000 では、Regedt32 を実行し、[ローカル コンピューターでHKEY_LOCAL_MACHINE] ウィンドウを選択し、HKEY_LOCAL_MACHINE キーを選択します。 次に、[レジストリ] メニューをクリックし、[Hive の読み込み] を選択します。
Windows XP 以降では、RegEdit を実行 します。 HKEY_LOCAL_MACHINE を強調表示し、[ファイル] メニューをクリックして [ハイブの読み込み] を選択します。
ファイルを参照し、D:\Winnt\System32\config\software.sav を選択します。 キー名の入力を求められたら、「_sw.sav」と入力します。
HKEY_LOCAL_MACHINEで_sw.sav キーを開き、次のキーを強調表示します。
HKEY_LOCAL_MACHINE_sw.sav\Microsoft\Windows\CurrentVersion\Setup
Windows 2000 では、[セキュリティ] メニューをクリックし、[アクセス許可] を選択し、管理者 にフル コントロール権限を付与します。
Windows XP 以降では、[編集] メニューをクリックし、[アクセス許可] を選択し、管理者 にフル コントロール権限を付与します。
Windows 2000 では、[編集] をクリックして [値の追加] を選択して、このキーの下に必要なレジストリ値を追加します。
Windows XP 以降では、[編集] をクリックし、[新しい DWORD 値] を選択します。
値を入力します。 たとえば、"0xFFFF" を追加して、完全な詳細ログを有効にします。
HKEY_LOCAL_MACHINE\_sw.savを選択し、(Windows 2000 の [レジストリ] メニューまたは Windows XP 以降の [ファイル] メニューを使用して) ハイブをアンロードします。The_sw.sav キーが消えます。
D:\Winnt\System32\config\software.sav を D:\Winnt\System32\config\software にコピーします。
再起動してセットアップに進みます。
この変更を確認するには、GUI モードのセットアップで Shift キーを押しながら F10 キーを押し、regedit.exe を実行し、ログ レベルをチェックします。