次の方法で共有


Schannel 接続のシャットダウン

接続が完了したら、クライアントまたはサーバーをシャットダウンする必要があります。 さらに、相手側はシャットダウンを認識し、接続を削除する必要があります。

Schannel 接続をシャットダウンするには

  1. SCHANNEL_SHUTDOWNコントロール トークンを指定して、 ApplyControlToken 関数を呼び出します。
  2. ApplyControlToken からSEC_E_OK戻り値を受け取った後、InitializeSecurityContext (Schannel) (クライアント) または AcceptSecurityContext (Schannel) (サーバー) 関数を呼び出し、空のバッファーを渡します。
  3. 関数がSEC_I_CONTEXT_EXPIREDを返すか、接続がシャットダウンされたことを示すSEC_E_OKまで、アプリケーションが新しい接続を作成しているかのように続行します。
  4. 最終的な出力情報がある場合は、リモート パーティに送信します。
  5. DeleteSecurityContext を呼び出して、接続によって保持されているリソースを解放します。

シャットダウンの認識

DecryptMessage (Schannel) 関数は、メッセージ送信者が接続をシャットダウンしたときにSEC_I_CONTEXT_EXPIREDを返します。 この戻り値を受け取った後、このトピックの前半の「Schannel 接続をシャットダウンするには」の手順に従います。