CryptReleaseContext 関数 (wincrypt.h)

大事な この API は非推奨です。 新規および既存のソフトウェアでは 、暗号化次世代 API の 使用を開始する必要があります。Microsoft は、今後のリリースでこの API を削除する可能性があります。
 
CryptReleaseContext 関数は、暗号化サービス プロバイダー (CSP) とキー コンテナーのハンドルを解放します。 この関数の呼び出しごとに、CSP の 参照カウント が 1 つ減らされます。 参照カウントが 0 に達すると、 コンテキスト は完全に解放され、アプリケーション内のどの関数でも使用できなくなります。

アプリケーションは、CSP の使用が完了した後にこの関数を呼び出します。 この関数が呼び出されると、解放された CSP ハンドルは無効になります。 この関数は、 キー コンテナー または キー ペアを破棄しません。

構文

BOOL CryptReleaseContext(
  [in] HCRYPTPROV hProv,
  [in] DWORD      dwFlags
);

パラメーター

[in] hProv

CryptAcquireContext の呼び出しによって作成された暗号化サービス プロバイダー (CSP) のハンドル。

[in] dwFlags

将来使用するために予約されており、0 である必要があります。 dwFlags が 0 に設定されていない場合、この関数は FALSE を返しますが、CSP は解放されます。

戻り値

関数が成功した場合、戻り値は 0 以外 (TRUE) になります

関数が失敗した場合、戻り値は 0 (FALSE) になります。 拡張エラー情報については、 GetLastError を呼び出します。 考えられるエラー コードの一部を次の表に示します。

リターン コード 説明
ERROR_BUSY
hProv によって指定された CSP コンテキストは、現在、別のプロセスで使用されています。
ERROR_INVALID_HANDLE
パラメーターの 1 つは、無効なハンドルを指定します。
ERROR_INVALID_PARAMETER
パラメーターの 1 つに無効な値が含まれています。 これは、ほとんどの場合、無効なポインターです。
NTE_BAD_FLAGS
dwFlags パラメーターは 0 以外です。
NTE_BAD_UID
hProv パラメーターに有効なコンテキスト ハンドルが含まれていません。

解説

この関数が呼び出されると、CSP セッションが終了し、hProv ハンドルを使用して作成されたすべての既存のセッション キーとハッシュ オブジェクトは無効になります。 実際には、これらのオブジェクトはすべて、CryptReleaseContext が呼び出される前に、CryptDestroyKeyCryptDestroyHash の呼び出しで破棄する必要があります。

この関数を使用する例については、「 サンプル C プログラム: セッション キーの作成とハッシュ」を参照してください。

要件

   
サポートされている最小のクライアント Windows XP [デスクトップ アプリ | UWP アプリ]
サポートされている最小のサーバー Windows Server 2003 [デスクトップ アプリのみ | UWP アプリ]
対象プラットフォーム Windows
ヘッダー wincrypt.h
Library Advapi32.lib
[DLL] Advapi32.dll

関連項目

CryptAcquireContext

CryptDestroyHash

CryptDestroyKey

サービス プロバイダー関数