現象

InitializePrintMonitor2() をサポートしていないランゲージモニタが、この初期化関数をサポートしているポートモニタに対して、OpenPort() もしくは OpenPortEx() でポートのオープンを要求しても失敗することがあります。

原因

Windows 2000 以降のポートモニタとランゲージモニタでは、InitializePrintMonitor2() で初期化を行うことを推奨しており、この関数以外の初期化は推奨していません。
Windows 8 以前では、InitializePrintMonitor2() で登録したコールバック関数と非推奨の初期化関数で登録したコールバック関数が、混在しているプリント キューにおいて、スプーラーサービスがコールバック関数のインターフェースの変換処理を行っていました。
しかしながら、Windows 8 以降、非推奨の初期化関数で登録したコールバック関数の変換処理を廃止しました。この変換処理の廃止に伴い 、非推奨の初期化関数で実装しているランゲージモニタでは、InitializePrintMonitor2() で初期化するポート モニタの利用ができなくなります。
 

解決方法

この問題を回避するためには、InitializePrintMonitor2() で初期化を行うランゲージ モニタに移行する必要があります。

詳細

この問題が発生するプリンタ ポートの例としては、Bluetooth ポートやターミナル サービスのリダイレクトポートがあります。
また、USB ポートは特例処理として、インターフェースの変換処理を行う場合があります。


関連情報

InitializeMonitor





InitializeMonitorEx





InitializePrintMonitor function





InitializePrintMonitor2 function

ヘルプを表示

スキルを磨く
トレーニングの探索
新機能を最初に入手
Microsoft Insider に参加する

この情報は役に立ちましたか?

言語の品質にどの程度満足していますか?
どのような要因がお客様の操作性に影響しましたか?

ご意見をいただきありがとうございます。

×