IDispatch Invoke を介して呼び出されるいくつかの COM 関数を公開している Windows サービスがあります。いつでもこれらの関数を呼び出すことができるさまざまなクライアント (Windows アプリケーション) があります。クライアントの変更を必要としない変更を Windows サービスに導入する必要があります (クライアントを変更することはできません)。どのアプリケーションが関数を呼び出しているか (ID など) を区別する必要があります。注: 正確なクライアント アプリケーションを知る必要はありません。現在のセッション内のさまざまなクライアントを区別するだけで十分です。
例: 2 つのクライアント C1 と C2 があるとします。C1 が Windows サービス (WS) で関数 F1 を呼び出すと、WS はそのたびに (現在のセッション中に) クライアント X1 (X1 と言ったことに注意してください。 PID~プロセスID~のようなC1へのID)。したがって、C3 が F2 を呼び出すと、WS はクライアント X2 (X1 とは異なります) が F2 を呼び出したことを認識します。そして、再び C1 が FX を呼び出します (WS によって公開された任意の COM 関数) WS は、クライアント Xn (X2 など) が FX を呼び出したのではなく、X1 が FX を呼び出したことを区別できます。
クライアントからの ID 引数を必要とせずに、この状況を達成するのに役立つものはありますか?