CryptSetProviderA 関数 (wincrypt.h)

大事な この API は非推奨です。 新規および既存のソフトウェアでは 、Cryptography Next Generation API の 使用を開始する必要があります。Microsoft は、今後のリリースでこの API を削除する可能性があります。
 
CryptSetProvider 関数は、現在のユーザーの既定の暗号化サービス プロバイダー (CSP) を指定します。

現在のユーザーの既定のプロバイダーが設定されている場合、その既定のプロバイダーは、そのユーザーが dwProvType プロバイダーの種類を指定する CryptAcquireContext への呼び出しによって取得されますが、CSP 名は取得されません。

この関数の拡張バージョン である CryptSetProviderEx も使用できます。

メモ 一般的なアプリケーションでは、この関数は使用されません。 これは、管理アプリケーションでのみ使用することを目的としています。
 

構文

BOOL CryptSetProviderA(
  [in] LPCSTR pszProvName,
  [in] DWORD  dwProvType
);

パラメーター

[in] pszProvName

新しい既定の CSP の名前。 名前付き CSP がコンピューターにインストールされている必要があります。 使用可能な暗号化プロバイダーの一覧については、「 暗号化プロバイダー名」を参照してください。

[in] dwProvType

pszProvName で指定された CSP のプロバイダーの種類。

戻り値

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

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

リターン コード 説明
ERROR_INVALID_HANDLE
パラメーターの 1 つは、無効なハンドルを指定します。
ERROR_INVALID_PARAMETER
パラメーターの 1 つに無効な値が含まれています。 これはほとんどの場合、無効なポインターです。
ERROR_NOT_ENOUGH_MEMORY
操作中にオペレーティング システムのメモリが不足しました。
 

エラーは、内部呼び出しから RegCreateKeyEx と RegSetValueEx に伝達することもできます。

解説

一般的なアプリケーションでは、 CryptAcquireContext を呼び出すときに CSP 名を指定しません。ただし、アプリケーションには特定の CSP を選択するオプションがあります。 これにより、ユーザーは適切なレベルのセキュリティを備えた CSP を自由に選択できます。

CryptSetProvider を呼び出すと、その時点から実行されるすべてのアプリケーションで使用される指定された型の CSP が決定されるため、ユーザーの同意なしにこの関数を呼び出さないでください。

注意

wincrypt.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして CryptSetProvider を定義します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

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

関連項目

CryptAcquireContext

暗号化プロバイダー名

RegCreateKeyEx

RegSetValueEx

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