none
Windows 8で、TCP/IP や USBで通知(トースト)を表示させる方法 RRS feed

  • 質問

  • V4 Printer Driverを開発しています。

    WSD環境では、通知(トースト)の表示に成功しましたが、TCP/IPやUSBでは表示させることができません。

    資料によると、

    "DriverEvents can be used with TCP/IP or USB, however, a Bidi extension is required for either of these.

    For more information on specifying a Bidi extension file, see MSDN."

    つまり、TCP/IPやUSBでは、Bidi Extensionファイルの更新が必要とのことです。

    ここで示されているMSDN(http://msdn.microsoft.com/en-us/library/windows/hardware/ff547327(v=vs.85).aspx)を読んでみたのですが、どのようにすれば表示させられるのか理解できませんでした。

    どのようにすれば、よいのかご教授いただけますでしょうか。

    • 移動 Mike Wang (MSCS) 2012年10月2日 13:02 (移動元:Windows デバイスドライバー開発)
    2012年9月18日 7:24

すべての返信

  • 既にご確認されているとは思いますが、V4 のドライバ開発に関しては、下記サイトに日本語ドキュメントが公開されているようです。
    (英語が堪能の方なら、わざわざこちらを確認する必要もありませんが、私の英語力はメタメタなので。。。)

    ----------------
    V4 印刷ドライバーの開発
    http://msdn.microsoft.com/ja-jp/library/windows/hardware/br259124.aspx
    ----------------

    このドキュメントに、USB Bidi エクステンダーに関する記述があるみたいです。
    またこのドキュメントにも記載されていますが、TCP/IP ポート モニタ用の Bidi エクステンダーに関しては、下記サイトに情報があるみたいです。

    ----------------
    TCP/IP Schema Extensions
    http://msdn.microsoft.com/en-us/library/windows/hardware/ff562773(v=vs.85).aspx
    ----------------

    既に確認済みでしたらご容赦ください。

    2012年9月18日 8:00
  • 情報ありがとうございます。

    日本語版あったんですね。ずっと探していたのですが、全然見つかりませんでした(苦笑)。

    しかし、申し訳ございませんが、これらは確認済みです。

    直截的な情報があればよいのですが…。

    2012年9月18日 8:47
  • やっぱり既に確認済みだったんですね、大変失礼致しました。

    先ほど提示したドキュメントの「8.2.1 USB Bidi エクステンダー」の項目に詳細が記載されていると思うのですが、「この説明ではわからない!!」ということでしょうか?
    このドキュメントは V3 ドライバ アーキテクチャの知識を前提としているようですが、それでも個人的には、「結構詳細に説明されているなぁ~」と感じたのですが。。。

    "Windows サンプル ギャラリー" でも「サンプルが提供されている」と書かれていますが、それらを試しても分からないのであれば、マイクロソフトの有償サポートを利用して分からないところを教えてもらう。。。って手もあると思います。

    ------------------------------
    http://www.microsoft.com/ja-jp/services/support.aspx
    (この場合、"アドバイザリーサービス: 原因究明や開発支援などを都度利用される場合のサポートサービス" に該当するのかな?)
    ------------------------------

    もっとも、費用がいくらかかるのかは分かりませんけど。。。


    • 編集済み お馬鹿 2012年9月18日 9:46
    2012年9月18日 9:27
  • 私も悩んでます。

     

    私の場合 TCP/IP で通知を表示したいと思っているのですが、 うまくいきません。

    処理内容としては、

    • bidi-spm.xml を用意し、drvPrinterEvent="true" のエントリを作成
        (Bidi 経由で情報が取得できていることは確認)
    • DriverEvent.xml を用意し、bidi.xml で定義しているクエリをトリガーとして記述
    • manifest ファイルに DriverEvent を登録
    • Metro Style Device App(MSDA) に、Notification の処理を追加

    といった感じですが、トリガーとなるステータスをプリンタで発生させても通知が来ない状態です。

     

    RTMに環境を入れ替えた当初は、MSDA に通知イベントがやってくるようになりましたが、その通知は私の登録している通知ではありませんでした。

    内容を見る限り、DriverEvent をサポートしていない際にOSが出す通知のようでした(Toner Empty の通知)。

    しかしそれも、コードを変えてないのに発生しなくなりました。(OS アップデートがかかったと思われる翌日から)

    この内容に関しては、英語のフォーラムに投稿しましたが、解決してません。

    http://social.msdn.microsoft.com/Forums/ja-JP/wdk/thread/457e8997-86b1-4778-bd7f-e3af3fb394f4

    (英語のフォーラムでは Justin さんがよく答えてくれますよ)

     

    この件から、通知が来て処理ができたのでMSDAの処理は問題ないと思われます。したがって、bidi.xml または DrvierEvent.xml の書き方が悪いのかと考えてます。が、まだ答えは見つかってません...(というか、後回しにしてます)

     

    答えが見つかったら、ここに書くようにします。

    ドライバ開発は情報が少ないので、こういうところで情報を交換できるとよいですね。

    2012年9月19日 0:14
  • 日本語版は最近のようですよ。

    9/14 の Windows Hardware Newsletter 日本語版 のお知らせで私も知りました。

    ニュースレターとってなければ購読したほうが良いですよ。

    2012年9月19日 0:17
  • サンプルはとても参考になりますが、部品的な提供が多く、ドライバとして動くものがないので、全体の動作の確認が難しいですね。

     

    マイクロソフトに直接聞くこともできますが、2,3回やり取りをすると「あとは有料サポートにきいてね」と言われます。
    まぁ、相手の時間を使っているわけですから、当然といえば当然ですが。。。

     

    v4 Printer Driver は、xml の定義ファイルが多くて、動作はブラックボックス(デバッグできない)ので開発が難しいです。

    2012年9月19日 0:27
  • >お2人様

    丁寧なご返答ありがとうございます。

    私も、英語フォーラムで質問したのですが、MSDNを見ろ以上の返答が得られず苦慮していたところです。

    > ドライバ開発は情報が少ないので、こういうところで情報を交換できるとよいですね。

    そうですね。今後ともよろしくお願いいたします。

    2012年9月20日 0:45