2011-06-28 16 views
0

Windowsサービスと通信する必要があるWinsock LSP(Layered Service Provider)DLLを作成しています。WindowsサービスとLSP DLLの間のIPC

通信は、メモリマップファイルと同期イベントを使用して行われます。アプリケーションがサービスとして実行されていない場合はすべて正常に動作しますが、イベントやファイルマッピングが見つからない場合(OpenEventでERROR_FILE_NOT_FOUNDエラーが発生します)

これは、サービスとして実行すると、アプリケーションがSYSTEMユーザーとして実行され、ローカルユーザーとして実行されるアプリケーションによってLSPが読み込まれるためです。

これは適切なSECURITY_DESCRIPTORを使用して解決できると思いますが、どのように設定するべきかわかりません。

この作品を作成する方法についてのご意見はありますか?

おかげで、

+0

ようこそ。自分の質問を編集して更新することができます。あなたは質問(upvoteまたはdownvote)に投票することができます。あなたのニーズを満たし、あなたの質問に答える答えが得られたら、答えとしてマークすることができます –

答えて

0

はOSに依存して、セッションの問題がある可能性があります。 CreateEvent、CreateMemoryMappingなどのドキュメントをもう一度見てみると、オブジェクト名にGLOBAL \という接頭辞が付いています。このプレフィックス(SESSION \ x \ prefixを使用)は、オブジェクトの可視範囲を定義します。 GLOBAL接頭辞はシステム全体に見えますが、接頭辞の付いていないオブジェクトは特定のローカル(\ SESSION接頭辞が省略されている場合)のセッションです。セッションは、Windows XP用のターミナルサービスで表示され、Windows 2003 Server以降のOSに組み込まれました。

関連する問題