自作派の悪癖!? いらないポートも開けておけ
謎の七面鳥


謎の七面鳥
 中学1年でアニメ・パソコン・パソ通にハマり、以後パソ通メンバーと共にヲタク街道を驀進する(笑)。パソコンに関してはPC-9801シリーズを通して触れていくことになる。
 自作屋にありがちな傾向として、ソフトよりハードの話題を好む。やりたいことがあってハードを拡張するより、とりあえず性能を追究しといて後からやりたいことを探すといった感じである(^^;)。
 ちなみに他の趣味はアニメ・マンガ・鉄道。ゲームはあまりやらず、格闘系・音楽系以外は一通りやったりやらなかったり。あとAV(オーディオ・ビデオ)も興味はあるが、懐がおいつかないので見てるだけ状態(^^;)。


●ネットワークプリンターが使えない!

というわけで、謎の七面鳥でございます。
最近は何をトチ狂ったのか、会社のマシンのHDDをきれいサッパリフォーマットして、再インストールなぞやらかしております。

まぁ実際やってみると出るわ出るわトラブルが。それを全部書くと涙がちょちょぎれそうになるので(--;)、その中から一つだけ書かせてもらいます。

まぁ多少の規模の会社に勤めたりなぞしますと、部・課・フロア単位でプリンタを共有してるかと思います。ネットワークプリンタってやつですな。私の勤め先もご多分に漏れずそんなプリンタでした。他ならぬエプソンのLP-9600Sというエプソン最強のページプリンタです。

ところがこのプリンタ、ネットワークに繋がっている(PINGやTRACERTにはちゃんと反応するし、プリントサーバ部のWebページまで見られる)のに、なぜかちゃんとドライバのインストールができません。インストールは完了するんですが、一向にプリンタが見えない状態なんですね。
他の人はバンバン打ち出しているので、当然ウチでもインストールして印刷できるはずです。で、プリンタを探すわけですが、IP直打ちに始まってNetBEUI経由でのアクセス、そこでやっとプリンタは見つけられてもインストールはやはり失敗。悪戦苦闘の果てにシステム担当者に泣きつくハメに。

彼に操作を委ねると、彼はインストーラーの中から「EpsonNet Direct Print」なるツールをインストールしました。
「これで大丈夫ですよ」
『わ〜い、ありがとにょ!』
これでめでたしめでたし…とならないのが私のマシンなのです。


●「ポートを閉じたりしてませんか?」

そうです、正しくインストールしたはずなのにそうはなっていなかったです。
不審に思ったシステム担当者はおもむろにデバイスマネージャーを開きます。
「プリンタポートがありませんね。ポートを閉じたりしてませんか?」
その瞬間、BIOS周りに関する記憶がサーッと脳裏を駆けめぐっていきました。

実は私のマシン(実はこれもエプソン)のBIOSは、エプソンのオリジナルBIOS からマザーボードメーカー(何を隠そうASUSTeK)のBIOSに書き換えたのですが、 そうしたらマシンについてきたリカバリCDが動かないという理由で、また元の エプソンのBIOSに戻したという曰くつきのマシンなのです。さらに、一番最初の BIOSの時にいらないと思ったCOMポートとLPT(プリンタポート)を閉じて(Disableにして)いたのです。今回のトラブルのタネは、こんなところにも潜んでいたのです。

『すみません』と謝りつつポートを復旧させる私。その後は見事に印刷できるようになりました。
そんな私に彼は一言「普通にインストールしましょうね」。
えぇ、あの、わかってます。本来なら怒鳴りつけられてもしょうがない私になんと慈悲のこもった一言(ぉ。けど、やはりその言葉は私のどこかにチクリと刺さっちゃいました。

ここでこっそり弁護(=いいわけ)させてもらっちゃいますけど…
『何も繋がってもいないLPTに用があるとは思わないじぢゃないか!!』(--;)。
『BIOSって書き換えたときに内容がリセットされると思ってたよ!!』
#三村風に言うと「リセットされないのかよ!!」みたいな(ぉ。
#リセットされるということは、デフォルトに戻るのでプリンタポートが その時点で再度開くと思っていたわけです。

結局、その後1〜2度の再起動を経て、プリンタは無事復活しました。
さぁこれで仕事ができるぞ!! と思ったはものの、まだデータベースへアクセスするAccessのマクロがちゃんと動いていないのでした。
#その辺は本当に社内事情に深く絡んでしまうのでオフレコ。


●ネットワークプリンターなのにLPT(パラレルポート)を通す?

で、こうして(精神的に)疲れた身体を引きずって帰ってきて、我が家で愛すべきエプソン様のHPで調べてみました。すると、ENDPのドライバにはこんな注釈が。
「エプソン製ネットワークプリンタ及びオプションネットワークインターフェイスにWindows95/98/Me/NT/2000からLPR印刷するツールです。」

どういうことかと言うと、基本的にプリンタドライバという物はOSから受け取った命令をLPTを通してプリンタに渡して制御するものです。この「LPTを通して」という点が今回のクセモノだったのです。

私は「ネットワークに流すんだからLPTは関係ない」と思っていました。ある意味自然な考えだと思います。Windowsだって出力先を(ある程度)自由に変更できるようになってますから、余計そう考えてしまいます。

しかし、エプソンのプリンタドライバは、基本的にLPT経由で出力する仕様になっています。これではネットワークに流せません。

そこで、さっきのENDPがLPTに来たデータを横取りして、ネットワークに流します。こうすれば、ドライバはLPT向けの物だけ書いてネットワーク対応部分と切り離せますから、ドライバ製作者の負担は軽くなります。

#そうでなかった場合は、LPT送出用モジュールとネットワーク送出用モジュールとを切り替えられるよう、ドライバを切り離して書かなくてはならない。また、LPTに比べてネットワーク上のプリンタを検出して捕まえてくるのはずっと複雑なので、そこだけ分離してしまった方が見通しがよいとか仕事量がだいたい同じになるとか、開発側にとっては都合が良いのでしょう、きっと。

話が逸れました。とすると、ネットワークへの印刷データもLPTを通るわけですから、 LPTが無いとネットワークにもプリントデータを送れなくなります。今回はここがキモだったというわけです。


で、一見繋がってないから不必要に見えるポート。だけど、こうしてこっそり使われている場合って、案外あるのかも知れませんね。

…けど、要らないポートを閉じておいた方が特にIRQを稼げてイイ! って思ってしまうのは、年寄りなんでしょうか(トホホ)。

「ポート一つにきりきりまい」の謎の七面鳥でした。

でわでわ…。

(2002/01/21 Mon )

[Text by 謎の七面鳥( turkey@mse.biglobe.ne.jp )]






戻る