none
プリンタドライバのビルド環境 RRS feed

  • 質問

  • WDK7.1でUNIドライバのプラグインdllを作ろうと思っています。

    プラグインdll自体はOS依存はせず、XP以降のOSなら同じdllが動作すると思っています。

    スタートメニューから表示されるfreeビルド環境には、Windows7、Vista、XPなど4種類ありますが、どの環境を使ってビルドするのがよいと思われますか?

    生成されるdllに何か違いはあるでしょうか。実績がある、困ったことが起きる等ございましたら、おしえてくださいませ。

     

    • 移動 Mike Wang (MSCS) 2012年10月2日 12:40 (移動元:Windows デバイスドライバー開発)
    2010年5月18日 6:36

回答

  • 相変わらず誰も返信しないので、とりあえず...
    スタートメニューから表示されるfreeビルド環境には、Windows7、Vista、XPなど4種類ありますが、どの環境を使ってビルドするのがよいと思われますか?

    同一バイナリで複数のプラットフォームをサポートするドライバをビルドする場合、一番古いプラットフォームの Build Environment を選択すべきだと思います。
    例えば、Windows 7 / Vista / XP を同一バイナリでサポートしたいのであれば、Windows XP の Build Environment を使用すべきだと思います。

    Printer Driver は基本的に User Mode 側なので一概に同じかどうかわかりませんが、Kernel Mode のドライバの場合、Windows 7 あるいは Windows Vista の
    Build Environment でビルドしたドライバは、Windows XP では動作しません。(私の試した限りでは。)
    生成されるdllに何か違いはあるでしょうか。実績がある、困ったことが起きる等ございましたら、おしえてくださいませ。

    ビルド時に使用する Build Environment に依存して、Link される Library File が変化すると思います。
    つまり、Windows 7 の Build Environment を使用した Windows 7 用の Library File が使用されることになると思います。
    なので、Windows XP 用の Build Environment でビルドすることを前提とした場合、Vista / 7 で追加された拡張機能は使えないことになると思います。

    じゅー人さんが開発されようとしている Plug-In が、Rendering / User Interface どちらの Plug-In なのかは存じませんが、
    仮に Rendering Plug-In を開発されようとしている場合、XP Build Environment でビルドしたドライバを Vista / 7 でもサポートすることを前提とすると、
    IPrintOemUni3 COM interface を使用した実装は NG ... ということになると思います。

    • 回答の候補に設定 山本春海 2010年6月14日 2:34
    • 回答としてマーク じゅー人 2010年6月17日 1:09
    2010年5月19日 5:10

すべての返信

  • 相変わらず誰も返信しないので、とりあえず...
    スタートメニューから表示されるfreeビルド環境には、Windows7、Vista、XPなど4種類ありますが、どの環境を使ってビルドするのがよいと思われますか?

    同一バイナリで複数のプラットフォームをサポートするドライバをビルドする場合、一番古いプラットフォームの Build Environment を選択すべきだと思います。
    例えば、Windows 7 / Vista / XP を同一バイナリでサポートしたいのであれば、Windows XP の Build Environment を使用すべきだと思います。

    Printer Driver は基本的に User Mode 側なので一概に同じかどうかわかりませんが、Kernel Mode のドライバの場合、Windows 7 あるいは Windows Vista の
    Build Environment でビルドしたドライバは、Windows XP では動作しません。(私の試した限りでは。)
    生成されるdllに何か違いはあるでしょうか。実績がある、困ったことが起きる等ございましたら、おしえてくださいませ。

    ビルド時に使用する Build Environment に依存して、Link される Library File が変化すると思います。
    つまり、Windows 7 の Build Environment を使用した Windows 7 用の Library File が使用されることになると思います。
    なので、Windows XP 用の Build Environment でビルドすることを前提とした場合、Vista / 7 で追加された拡張機能は使えないことになると思います。

    じゅー人さんが開発されようとしている Plug-In が、Rendering / User Interface どちらの Plug-In なのかは存じませんが、
    仮に Rendering Plug-In を開発されようとしている場合、XP Build Environment でビルドしたドライバを Vista / 7 でもサポートすることを前提とすると、
    IPrintOemUni3 COM interface を使用した実装は NG ... ということになると思います。

    • 回答の候補に設定 山本春海 2010年6月14日 2:34
    • 回答としてマーク じゅー人 2010年6月17日 1:09
    2010年5月19日 5:10
  • ニコちゃん大王様

    詳細なご回答ありがとうございました。大変役に立ちました。

    私も、微力ながらも、このフォーラムに貢献できるよう、精進して行きたいと思います。

    このようなフォーラムを作ってくださったMSの方にも感謝いたします。

     

    2010年6月17日 1:11