印刷モニターをクラスター化されたプリント サーバーで使用するために変換する
プリント サーバーのクラスタリングは、Windows 2000 の新機能です。 Windows 2000 (またはそれ以降) クラスターで実行することを目的としたプリンター ポート モニターは、複数のスプーラー インスタンス (ノードのスプーラーとクラスター スプーラー) から呼び出すことができるように変更する必要があります。 次のステップを実行する必要があります。
モニターの InitializePrintMonitor 関数を InitializePrintMonitor2 関数に置き換える必要があります。 後者の関数は、モニター インスタンス ハンドルを返します。
グローバルに格納された変数はローカルに割り当てられたメモリに移動する必要があり、このメモリは InitializePrintMonitor2 によって返されるモニター ハンドルに関連付けられている必要があります。
Win32 レジストリ API の呼び出しは、スプーラーのレジストリ関数の呼び出しに置き換える必要があります。そのアドレスは MONITORREG 構造体のモニターに渡されます。 詳細については、「ポート構成情報の格納」を参照してください。
ポート モニターは、ポート モニター UI DLL とポート モニター サーバー DLL に分割する必要があります。 UI DLL は、スプーラー の XcvData 関数を呼び出すことによって、サーバー DLL と通信する必要があります。
Shutdown 関数を追加する必要があります。
変換されない印刷モニターは、クラスター化されていない環境でのみ使用できます。 クラスター化されたサーバーでは使用できません。
Windows 2000 以降を実行しているコンピューターのクラスター化されたノードで実行されているプリンター ポート モニターが (ネットワーク経由またはローカルで) 接続を確立したら、ポート モニターは、スプーラーによって行われた呼び出しから、妥当な時間内に戻る必要があります。 スプーラー リソースのタイムアウトの既定値は 180 秒です。 詳細については、「ポートのタイムアウト値の設定」を参照してください 。
あるクラスター ノードから別のクラスター ノードへのフェールオーバーが発生した場合、スプーラーは、現在のすべての印刷ジョブが完了するか失敗するまで待機する必要があります。 保留中の印刷ジョブが、スプーラー リソースのタイムアウトよりも長くポート モニターに保持されている場合、スプーラーが不完全な状態でオンラインに戻り、プリンターが一時的に見つからない可能性があります。 これは、プリンターが見つからないユーザーに接続しているユーザーに影響を与える可能性があります。