fc2ブログ

WinI2C-DDC Kernel Mode Driver サービスのエラーについて

 PC(Windows 7 Professional x64 SP1)のイベントビュアーに次のエラーがOS起動時に毎回記録されている。

「ログの名前: System
ソース: Service Control Manager
日付: 2014/02/02 13:50:13
イベント ID: 7000
タスクのカテゴリ: なし
レベル: エラー
キーワード: クラシック
ユーザー: N/A
コンピューター: PC-XXXXX
説明:
WinI2C-DDC Kernel Mode Driver サービスを、次のエラーが原因で開始できませんでした:
指定されたファイルが見つかりません。…〈以下略〉…」
というものである。

 このエラーはここ1か月間記録され続けているが、PCの使用には特に不都合はないようである。とはいうものの、気持ちのよいものではないので、その原因を特定し、可能であればそのエラーを回避したい。ウェブで調べてみたが、はっきりとしたことは分からなかった。しかし、このドライバについての情報は得られた。

 このWinI2C-DDC Kernel Mode Driverは、Nicomsoft社のWinI2C/DDCというベンダー向けのモニター用ツールを構成するドライバである。このWinI2C/DDCは、DDC/CIというプロトコルを介してWindows環境でモニターをコントロールするものであり、キャリブレーション等を行うソフトウェアに組み込まれるものだと、同社のウェブサイトで紹介されている。取引先として、富士通周辺機、Philips、Intel等の名が挙げられている。その本体であるddcdrv.sysは、通常のドライバと同様C:\Windows\system32\drivers内に置かれるとされる。

 このDriverサービスは、「管理ツール」内の「サービス」(services.msc)には表示されていないので、レジストリを調べてみることにした。

 レジストリに[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\WinI2C-DDC]というキーが存在する。その中の[ImagePath]は[\??\C:\Windows\system32\drivers\DDCDrv.sys]となっており、[Start]の「値のデータ」は[2]とされている。

【追記】:
 ドライバがロードされるタイミングについては、"CurrentControlSet\Services Subkey Entries"と題されたMicrosoft Supportのknowledge baseで解説されている。
 CurrentControlSet\Services配下のドライバのStart値がいつドライバをロードするかを定める。

0: ブートスタートを示す。ブート(スタートアップ)ボリュームのドライバスタックの一部であり、それ故ブートローダによってロードされなければならない。

1: システムスタートを示す。カーネルの初期化時にロードされるドライバである。入出力サブシステムによってロードされる。

2: 自動スタートを示す。サービスの種類にかかわらず、全てのスタートアップに対して自動的にロードされ、開始される。

3: 手動スタートを示す。種類にかかわらず、開始可能であるが、ユーザが開始する(例えば、コントロールパネルのディバイスのアイコンを使って)まで、開始されることはない。

4: 無効を示す。いかなる情況であっても開始されない。

 となると、[2]は「自動」を意味している。なるほど。今現在、我が機にはddcdrv.sysは存在しない。にもかかわらず、そのファイルを指定するサービスが自動で開始するように設定されている。これがためにエラーが記録されているのである。同じOSを使う他のPCには、このレジストリキーはない。

 では、なぜ存在しないddcdrv.sysというファイルを指定するこのようなキーが作られたのか。

 このエラーが最初に記録された日まで遡って、その日にPCに対して行ったことを調べてみた。原因は、EIZO EasyPIX Softwareというカラー・マッチングを行うソフトをVer.1.1.4からVer.2.3.2に更新したことによるものであった。

 EIZO EasyPIX Software Ver.1.1.4をインストールすると、前述のレジストリキーが作成され、ddcdrv.sysもC:\Windows\system32\drivers内にインストールされる。従って、このバージョンを使っている間は、問題は生じなかった。ところが、これを、Ver.2.3.2にアップデートするために、アンインストールすると、ddcdrv.sysは削除されるが、キーだけは残るのである。改めてVer.2.3.2をインストールしても、その更新バージョンはこのキーを削除することも、ddcdrv.sysをインストールすることもないため、キーはそのままの内容で残ることになる。これがエラーの原因である。

 専用のセンサーを使わずに目視によるマッチングを行うために、このソフトを使用しており、センサーを使ってキャリブレーションを行う場合にも同様の事態が生ずるかは分からないが、少なくともセンサーを使わない場合は上記のようになる。

 そうだとすれば、エラーを回避するためには、この[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\WinI2C-DDC]というレジストリキーそのものを削除すればよいと思うが、不用意にレジストリキーを削除するのは不安だという方は、このキーの[Start]の「値のデータ」を[3]又は[4]に変更して、「手動」又は「無効」に設定すればよいのではないだろうか。特にこのエラーが上記以外の原因で発生し、当のレジストリキーが無用であることが明らかでない場合には、無闇にそれを削除することは避けた方が無難かもしれない。ともかく、これで一応イベントビュアーにこのエラーが記録されることはない。

 なお、レジストリにはもう一つ[LEGACY_WINI2C-DDC]というキーが、[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root\]に存在する。こちらはこのエラーには直接関係はないようなので、敢えてキーを削除せずとも問題はないようである。もっとも、通常の「regedit.exe」(16bit)では削除しようとしても、「LEGACY_WINI2C-DDCは削除できません。削除中にエラーが発生しました。」と、「キーの削除エラー」が出て削除することはできないのである。

 因みに、そのような[LEGACY_]が冠されるキー等は、「regedt32.exe」(32bit)を用いてレジストリ キーのセキュリティ設定を行ってからでなければ、削除できないようである。

tag : WinI2C-DDCKernelModeDriver

プロフィール

そんぷうし ふうえん

Author:そんぷうし ふうえん

忙中閑は、こっそりと見出す。
カミさんと子どもたちが寝静まるのを待って、夜な夜なPCの前に端座し、その不可思議なる箱の内奥にそっと手を入れては、悦に入る日々なのであります。
時としてその手はPC以外の内奥にも。


※ リンク貼付及び引用は自由ですが、引用する場合は該当ページのURL及びタイトルを明記して下さい。

Automatic Translation
If you click a language below on any page, the translator is supposed to display the latest page at first. So you need to jump back to the previous page you were about to read.
Please note that there are some translations that are non-grammatical and do not accurately reflect the meaning of the originals because of machine translation.
 【Translated by Google Translate】
全記事一覧表示

   全ての記事のタイトルを表示する

最新記事
カテゴリ別アーカイブ
最新コメント
月別アーカイブ
検索フォーム
リンク
最新トラックバック
RSSリンクの表示
累計閲覧回数
  
QRコード
QR