ランゲージモニタがプリンタ ポートのオープンに失敗することがあります。

現象

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

原因

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

解決方法

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

詳細

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


プロパティ

文書番号:2889643 - 最終更新日: 2016/09/29 - リビジョン: 1

Windows 8, Windows 8.1, Windows Driver Kit 8.0, Windows Driver Kit 8.1

フィードバック