プロトコル プロバイダーを起動するには、リモート デスクトップ サービスサービス:
- レジストリから、リスナーの名前とプロトコル マネージャー オブジェクトの CLSID (IWRdsProtocolManager) を取得します。 詳細については、「プロトコル マネージャーの登録」を参照してください。
- プロトコル マネージャー 初期化 を呼び出して初期化します。
- CLSID を使用してプロトコル マネージャー オブジェクトを作成します。 同じプロトコル プロバイダーに複数のリスナーが登録されている場合でも、サービスによって作成されるプロトコル マネージャー オブジェクトは 1 つだけです。
- CreateListener呼び出して、IWRdsProtocolListener リスナー オブジェクトを作成し、サービスに返すようにプロトコル マネージャー オブジェクトに指示します。 プロトコル マネージャー オブジェクトは、サービスに返す前にリスナー オブジェクトへの参照を追加する必要があります。 サービスが停止するか、リスナーが削除されると、サービスによってオブジェクトが解放されます。
- リスナー 着信接続のリッスンを開始できるように、リスナー オブジェクトに対して StartListen を呼び出します。
- StopListen呼び出して、リスナー オブジェクトのリッスンを停止します。
- プロトコル マネージャー 初期化解除 を呼び出して初期化解除します。
リスナーは、クライアントが接続しようとしたときに、IWRdsProtocolConnection オブジェクトを作成します。 リスナー オブジェクトは、OnConnected を呼び出して、新しいクライアントが接続または再接続しようとしていることをリモート デスクトップ サービス サービスに通知し、その呼び出しで IWRdsProtocolConnection オブジェクトを渡します。 リモート デスクトップ サービスは、その呼び出しで IWRdsProtocolConnectionCallback オブジェクトを返し、プロトコルが必要に応じてリモート デスクトップ サービス サービスと通信できるようにします。 サービスは、コールバック オブジェクトへの参照を返す前に追加します。プロトコルは、接続が閉じるときにその参照を解放する必要があります。
次の図は、起動時のさまざまなオブジェクト間の相互作用を示しています。
rcm 開始シーケンス
関連トピック