質問: windowsxp embeddedの開発方法その3 なんとかドライバを見つけてinfファイルをcomponent designerにimportしましたが、エラーの嵐です。 とりあえず、ここでは2パターンを質問します。 <パターン1> warning:d:\xxx\(中略)\xxx.inf: [セクション名] is missing. info:completed processing file [import succeeded] : d:\xxx\(中略)\xxx.inf 最後に成功(succeeded)といっておきながら、何もコンポーネントが追加されませんでした。(空のフォルダだけできる)warningをヘルプで調べると適当なセクションを.infファイルに加えてくださいと書いてありますが、意味不明です。 <パターン2> info:more than one component has the same concordance id [xxxxx]. warning:c:\xxx\xxx.inf: [セクション名] is empty. +++ critical error +++:an error occurred when trying to add a registry resource hkey_local_machine\software\xxx(中略)\display driver\. warning:[セクション名]: cannot handle key "uninstallfiles". (中略)同じような内容がいくつか続きます info:completed processing file [import succeeded] : c:\xxx\xxx.inf こちらも一見うまくいったように見えます。 しかしレジストリの登録にいくつか失敗しているような感じです。ヘルプを見るとレジストリキーを加えるとありますが、これも何をどのようにしていいかわかりません。また、解せないのが同じ名前のコンポーネント複数ができてしまうことです。(1行目のinfo:more than~のところがそれを伝えている?)どう対応したらよいものでしょうか?
回答: infファイルのインポートはautomaticにて行っていますか? automaticで行ってinfファイルをインポートしてコンポーネントが作成されなかった場合、そのinfファイルの中にはデバイスの記述が無かったのだと思います。 またinfファイルをインポートした際に重要なのは、infファイルをどれだけトレース出来たかではなく、"resources"の中に自分が使用しようとしたデバイスのpnp情報と、サービスが作成されているかです。 infファイルの中には、デバッグのために残っているセクション等使用していないセクションが沢山含まれています。 また、windowsにデバイスドライバをインストールする事は可能だけど、エラーのあるinfファイルは沢山あります。これらがワーニングとして検出されているのです。 importは、windowsのインストーラがデバイスを発見した時に行う処理と基本的には同じです。 ですので、これらのワーニングが出ている部分は、普通のwindowsxpにインストールした場合も正常に動作しない部分であることがほとんどですので、あまり気にしなくて大丈夫です。 動かしてみて正しく動作していないようでしたら調査してみてください。 レジストリが必要なものに比べて不足していると思った場合には、普通のwindowsxpにドライバをインストールした結果を「inctrl5」にて抽出して、それをコンポーネントファイルに追加してみてください。 また、デュアルディスプレイ対応のディスプレイドライバは個性が強いので、ファイルや、レジストリの設定等に問題が無くても解像度の変更が出来ない事もあります。 この場合も「inctrl5」にてトレースする必要があります。その結果、レジストリや、infファイルを修正する事になると思います。 > 同じ名前のコンポーネント複数ができてしまう これは、infファイル内に同一の名前で違うデバイスが記述してあるために起こっています。 この場合は、それぞれ手動にて適切な名前に変更しましょう。 これらの作業を行う場合には、infファイルの内容がある程度読める事が前提となります。 このサイトが参考になるかと思いますので、見てみてください。 [what is an inf?] http://sekida.dynsite.net/~yuuki/inf/index.html 参考url:http://sekida.dynsite.net/~yuuki/inf/index.html