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
操作中にオペレーティング システムのメモリが不足しました。
 

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

解説

一般的なアプリケーションでは、 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

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