AddPrinterConnection 関数と DeletePrinterConnection 関数の呼び出しにより、印刷スプーラサービスでメモリリークが発生する可能性がある

こんにちは、Platform SDK (Windows SDK) サポートチームです。

今回は、Windows 8 以降の OS において、印刷スプーラサービス (Spoolsv.exe) でメモリリークが発生する問題についてご案内いたします。

 

現象

アプリケーションから AddPrinterConnection 関数と DeletePrinterConnection 関数により、プリンターの接続・切断を行った場合、印刷スプーラサービス (Spoolsv.exe) でメモリが20KB、ハンドルが 1 つ増加する可能性があることが確認されています。

本現象は、AddPrinterConnection 関数と DeletePrinterConnection 関数を連続して呼び出すようなアプリケーションを実行した場合に発生します。

なお、AddPrinterConnection 関数と DeletePrinterConnection 関数の呼び出し間隔が数分間空いている場合には、メモリとハンドルの増加がみられない場合もあります。

例えば、ログオン時に AddPrinterConnection 関数を呼び出し、ログオフ時に DeletePrinterConnection 関数を呼び出すようなシナリオの場合、ログオフまでに充分な時間があれば問題は発生しません。

 

状況

この現象については現在調査中です。

詳細について分かりしだい更新する予定です。

 

対処方法

一般的なシナリオとして、本問題により、印刷スプーラサービスやシステムが動作できなくなるほどに、メモリが使用されることはありません。

しかし、メモリリークが顕著に見られる場合には、印刷スプーラサービス、または、システムを再起動していただく必要があります。