アプリケーションソフトウェアの構築において,ユーザインタフェースと,データ処理エンジンのモジュールを分けて設けるといったことはよく行われる手法である。複雑なデータを取り扱ったり,何かのデバイスからの入力を監視したり,通信に対応する必要がある場合,データ処理エンジンの側のモジュールはシステムに常駐させる必要がある。 Windows 2000やWindows NTのプラットフォームには,システムに常駐させて稼動させることのできる「サービスプロセス」(あるいはたんに「サービス」)と呼ばれるプログラムの形態がある。 Windows のサービスプロセスは,Unix システムやLinux システムの「デーモン」プロセスに相当するが,その書き方に少々約束ごとがある。サービスプロセスをプログラミングする際に行う必要があるのは主に次のようなことだ。 サービス本体には,Windows のサービスコントロールマ