詳しい原因は不明ですが、ReadyBoost 関連の下記に示すエラーと警告が発生していたので、その対策です
ログの名前: Microsoft-Windows-Kernel-EventTracing/Admin
ソース: Microsoft-Windows-Kernel-EventTracing
日付: YYYY/MM/DD (w) HH:MM:SS
イベント ID: 3
タスクのカテゴリ: セッション
レベル: エラー
キーワード: セッション
ユーザー: SYSTEM
コンピューター: test
説明:
セッション "ReadyBoot" が次のエラーで停止しました: 0xC0000188
ログの名前: Microsoft-Windows-Kernel-EventTracing/Admin
ソース: Microsoft-Windows-Kernel-EventTracing
日付: YYYY/MM/DD (w) HH:MM:SS
イベント ID: 4
タスクのカテゴリ: ログ
レベル: 警告
キーワード: セッション
ユーザー: SYSTEM
コンピューター: test
説明:
セッション "ReadyBoot" の最大ファイル サイズに達しました。このため、イベントがファイル C:¥Windows¥Prefetch¥ReadyBoot¥ReadyBoot.etl に書き込まれない可能性があります。最大ファイル サイズは現在 20971520 バイトに設定されています。
コマンドプロンプトから下記のようにレジストリを修正して対策は終了です
For %A in (ControlSet001 ControlSet002 CurrentControlSet
) Do REG ADD "HKLM¥SYSTEM¥%A¥Control¥WMI¥Autologger¥ReadyBoot" /v "Start" /t "REG_DWORD" /d 0 /f
Intel 製のネットワークアダプター I/F カードや Chip を搭載したマザーボードでドライバーをインストールして PC を再起動する度に下記の警告が発生します
ログの名前: System
ソース: e1rexpress
日付: YYYY/MM/DD (w) HH:MM:SS
イベント ID: 27
タスクのカテゴリ: なし
レベル: 警告
キーワード: クラシック
ユーザー: N/A
コンピューター: test
説明:
Intel(R) XXXXXXXXXX Gigabit Network Connection
ネットワーク・リンクが切断されました。
原因はドライバーがオートネゴシエーション(auto-negotiation) の完了を待たずにリンクチェックを行っている為です。オートネゴシエーションとは簡単に言ってしまえば通信相手との規格を合わせるという仕組みです
解決方法は、WIN + R キーを押下し、%SystemRoot%¥system32¥devmgmt.msc /s と入力フィールドに入力し、Enter キーを押下し、デバイスマネージャーを起動します
デバイスカテゴリーの ネットワーク アダプター を展開し、Intel(R) ~ Gigabit Network Connection をダブルクリックします。上記画像では I211 というチップ名称になっています
上記画像の様に リンクを待機 を オン に設定し OK を選択し終了です
…ですが、もうデバイスドライバーインストール時に リンクを待機 を オン の状態でドライバーがインストールされる様にしちゃえばいいんじゃね?と、思い調べてみました
まずは ここ から Intel Gigabit Network Connection のドライバーをダウンロードします
ダウンロードしたファイルの実体は RAR 形式の自己解凍アーカイブファイルなので、RAR 形式のアーカイブファイルを取り扱える解凍ツールで適当な空のディレクトリに解凍します
次に実際使用しているチップ名称をキーワードにして、解凍したディレクトリに点在する *.inf ファイルを探し当てます(秀丸エディタのgrep機能などを使えば便利です) Chip 型番が I211 の場合は e1r62x64.inf というファイルでした
文字列 %WaitAutoNegComplete% を検索し、以下 default の部分を "1" に変更します
; Wait for Link
HKR, Ndi¥Params¥WaitAutoNegComplete, ParamDesc, 0, %WaitAutoNegComplete%
HKR, Ndi¥Params¥WaitAutoNegComplete, default, 0, "2" ← これを "1" に変更する
HKR, Ndi¥Params¥WaitAutoNegComplete¥Enum, "0", 0, %Off%
HKR, Ndi¥Params¥WaitAutoNegComplete¥Enum, "1", 0, %On%
HKR, Ndi¥Params¥WaitAutoNegComplete¥Enum, "2", 0, %AutoDetect%
HKR, Ndi¥Params¥WaitAutoNegComplete, type, 0, "enum"
該当の inf ファイル保存します。保存の際に注意する事は、このファイルは多言語で記述されているので、秀丸エディタ等の文字コードのエンコード/デコードを行うエディターで保存してしまうと正しく保存されないので、バイナリセーフなエディタ、例えば メモ帳 で編集、保存(ANSIで) する事を推奨します
デバイスドライバーをインストール時に変更した inf ファイルを指定してインストールを行えば、いいと思います…と、言うのもこの方法はまだ試していません …ので、次回 Windows 7 統合インストール USB メモリ作成の際に試してみたいと思います
まだ、現時点で試していませんが *.inf ファイルを一括置換する PHP スクリプトを作りました。変更する値のプロパティ以下の4箇所です
ドライバー書庫を解凍したディレクトリに infdeault.php を置き、実行するだけです
原因は対応しているセキュリティカタログファイル e1r62x64.cat の内容と e1r62x64.inf が矛盾している為、セキュリティ警告のメッセージウィンドウが表示されます…しかし、何故か WinToolkit の統合インストールイメージ作成ではエラーが発生せず、編集前のデフォルト値でインストールされるのが不思議です…('A`)
以上の事から、自動化は断念し、インストール時にデバイスマネージャーから手動で設定する事にしました。上記 PHP スクリプト を使用してインストール場合は 自己責任 でお願いします…('A`)
WinToolkit の統合インストールで編集した inf ファイルの値を反映させる方法がわかりました。これは実際に動作確認済みです。後述する方法は 自己責任 でお願いします
WinTookit を起動し、All-In-One-Integrator を選択し、統合するエディションを選択、プリセットをロードし、以下の画像の All-In-One-Integrator の Options の Force Unsigned をチェックして、統合を行えばいいだけです
ついでに infdeault.php もちょっとバージョンアップしました。オリジナルの inf ファイルはファイル名サフィックス部分に .org を付与し、実際に inf ファイルがあるディレクトリのファイルを更新するように変更しました
NTFS フォーマットを施した USB メモリーを差し込んだまま Windows 7 を起動したりすると、以下の様な警告がイベント ビューアーに記録される
ログの名前: System
ソース: Microsoft-Windows-Kernel-PnP
日付: YYYY/MM/DD (w) HH:MM:SS
イベント ID: 219
タスクのカテゴリ: (212)
レベル: 警告
キーワード:
ユーザー: SYSTEM
コンピューター: test
説明:
デバイス WpdBusEnumRoot¥UMB¥2&37c186b&0&STORAGE#VOLUME#_??_USBSTOR#DISK&VEN_TOSHIBA&PROD_TRANSMEMORY-MX&REV_PMAP#A14593E4A599ED7090000F31&0# のドライバー ¥Driver¥WUDFRd を読み込めませんでした。
上記の警告が発生する原因として考えられるのは、WDF のフレームワークが入っている状態で発生すると思われます
WDF のフレームワーク の実体は Windows 7 では何かと言うと…
対策は下記スクリーンショットの様に サービスの Windows Driver Foundation - User-mode Driver Framework を手動から自動に変更するだけです
以上で、イベントビューアーに警告は出なくなります