プリンタポートモニター

デバイスドライバ超初心者です。勉強中です。

4年前に作成されたプリンタポートモニターのメンテナンスを行う必要があります。
引き継ぎを行わず担当者がいなくなったため、放置していたのですが、担当することになりました。

が、この辺の知識がないためどこから手を付ければよいかわかりません。

MSDNからWindows2003のDDKにあるポートモニタのサンプルをベースに作成していることまでは
わかったのですが、当然あまり意味がありません。

開発しているポートモニターの仕様は理解しているので、
どうせするなら最新の開発環境で一から作り直したいのですが、
参考となる資料(書籍など)やまた開発ツールはなにがいいのかを教えてもらえませんか。

Windows における Print

Windows における Print Monitor には、以下の2種類があります。

☆ Language Monitor
☆ Port Monitor

Language Monitor は、Printer Device が双方向通信をサポートしている場合に、
Printer Status あるいは Print Job Status などを取得したりするためのもので、
代表的なものとしては、HP Printer Device がサポートしている PJL に対応した
PJLMon があります。 (WDK についている PJLMon がこれです。)

Port Monitor は、Printer 用の Port を制御するために使用されるもので、
代表的なものとしては、USB ポートをサポートするための usbMon.dll や、
LPD/LPR をサポートするための Standard TCP/IP Port を提供する tcpmon.dll
などがあります。

今回のご質問は「プリンタポートモニター」とのことですので、Port Monitor のことを
さしていることと思いますが、上記で示した USB Port や TCP/IP Port をはじめ、
Printer Property の "ポート" タグで表示されるポート名は、すべて Port Monitor に
よって提供されているわけです。

ちなみに、"COMx:" や "LPTx:" あるいは "FILE:" などのポート名は、
Local Print Provider である localspl.dll に包含されているようです。

Port Monitor の機能を理解するためには、Print Spooler Architecture の理解が必須です。
WDK ドキュメントの "Print Spooler Architecture" と、"Print Spooler Components" の
部分をしっかり読めば、理解できるはずです。

勉強を兼ねてドライ

勉強を兼ねてドライバまで作ってしまうか、
仕組みを知った上で、標準ドライバで叩くか、で、
アプローチが違うかと思いますが、

まず仕組みを知りたいと言うことであれば、
プリンタポート自体の仕組みは、ググるとたくさん出てきます。
「パラレルポート」で検索した方がよいかもしれません。
H8あたりでハードまで自作して、PCから制御している人もゴロゴロいます。

本は、あまり思いつきませんが、CQ出版から「パソコンのレガシィI/O活用大全」というのが出ています。
これにパラレルポートについて書いてあったような・・・ちょっと古いですが。

頑張ってください。

DDKにあるポートモニ

DDKにあるポートモニタのサンプルなのですが、実装する関数群などはわかるのですが、
いつどのようにしてメソッドが呼ばれるのか、どのような形でデータが受け取れるのかが
わかりません。
またどのように登録するのかがいろいろ見たのですが、
みつかりませんでした。

基本概念がわかるものはあるのですが、実装的な資料がないのです。

なにか参考となるものがあれば教えてください。

まず訂正ですが、プ

まず訂正ですが、プリンタポート自体の仕組みは理解できておりません。
そこから勉強したいと思っておりますので、なにかよい資料・書籍があればと思っております。

実装するメソッド等はわかるのですが、
だれからいつ呼ばれるのか、
どのようにデータが転送されてくるのか
インストール方法はなどを理解したいのです。
そこから既存のプリンタモニターをカスタマイズしたいと思っております。

でやりたいことは、PrimoPDFのように、データが流れてきた時に保存先を指定するダイアログが表示され
そのデータをカスタマイズしてファイルに保存したいと思っております。

この際勉強を兼ねて開発したいのですが、よろしくお願いします。

プリンタポートモニ

プリンタポートモニターとはどのようなものでしょうか。
プリンタポートに入ってきたデータの中身を見たいだけなら、標準ドライバでできるので、
新たなドライバは不要です。
逆にプリンタポートにデータを送るもの、標準ドライバでできます。
どういったことを考えていらっしゃるのでしょうか。