CredWriteW 関数 (wincred.h)

CredWrite 関数は、新しい資格情報を作成するか、ユーザーの資格情報セット内の既存の資格情報を変更します。 新しい資格情報は、現在のトークンのログオン セッションに関連付けられます。 トークンには、ユーザーの セキュリティ識別子 (SID) を無効にすることはできません。

構文

BOOL CredWriteW(
  [in] PCREDENTIALW Credential,
  [in] DWORD        Flags
);

パラメーター

[in] Credential

書き込む CREDENTIAL 構造体へのポインター。

[in] Flags

関数の操作を制御するフラグ。 次のフラグが定義されています。

意味
CRED_PRESERVE_CREDENTIAL_BLOB
既存の資格情報からの資格情報 BLOB は、同じ資格情報名と資格情報の種類で保持されます。 Credential 構造体で渡されるの CredentialBlobSize は 0 である必要があります。

戻り値

関数が成功した場合、関数は TRUE を返します。

関数が失敗すると、 FALSE が返されます。 GetLastError 関数を呼び出して、より具体的な状態コードを取得します。 次の状態コードを返すことができます。

CRED_TYPE_CERTIFICATE資格情報を記述するときに、その他のスマート カード エラーを返すことができます。

リターン コード/値 Description
ERROR_NO_SUCH_LOGON_SESSION
ログオン セッションが存在しないか、このログオン セッションに関連付けられている資格情報セットがありません。 ネットワーク ログオン セッションには、関連付けられた資格情報が設定されていません。
ERROR_INVALID_PARAMETER
既存の資格情報では、特定のフィールドを変更できません。 このエラーは、フィールドが既存の資格情報の保護されたフィールドの値と一致しない場合に返されます。
ERROR_INVALID_FLAGS
無効な値が Flags パラメーターに指定されました。
ERROR_BAD_USERNAME
Credential 構造体で渡された UserName メンバーが無効です。 有効なユーザー名構文の説明については、そのメンバーの定義を参照してください。
ERROR_NOT_FOUND
CRED_PRESERVE_CREDENTIAL_BLOBが指定されており、同じ TargetNameType によって既存の資格情報がありません。
SCARD_E_NO_READERS_AVAILABLE
書き込まれるCRED_TYPE_CERTIFICATE資格情報を使用するには、スマート カード リーダーを使用できる必要があります。
SCARD_E_NO_SMARTCARDまたはSCARD_W_REMOVED_CARD
CRED_TYPE_CERTIFICATE資格情報を書き込むには、スマート カードを挿入する必要があります。
SCARD_W_WRONG_CHV
書き込まれるCRED_TYPE_CERTIFICATE資格情報に間違った PIN が指定されました。

注釈

この関数は、指定した TargetNameType を持つ資格情報が存在しない場合に資格情報を作成します。 指定した TargetNameType の資格情報が存在する場合は、新しい指定された資格情報が既存の資格情報に置き換えられます。

この関数がCRED_TYPE_CERTIFICATE資格情報を書き込むとき、Credential-CredentialBlob メンバーは、Credential-UserName>> メンバーによって指定された証明書の秘密キーを保護する PIN を指定します。 資格情報マネージャーは PIN を維持しません。 代わりに、PIN は、後で CSP と認証パッケージで使用するために、証明書に示されている 暗号化サービス プロバイダー (CSP) に渡されます。 CSP は PIN の有効期間を定義します。 スマート カード リーダーからスマート カードが削除されると、ほとんどの CSP が PIN をフラッシュします。

Credential パラメーターで指定された CREDENTIAL 構造体の Type メンバーの値がCRED_TYPE_DOMAIN_EXTENDED場合は、ターゲット名に名前空間を指定する必要があります。 この関数は、ワイルドカードを含むターゲット名への書き込みをサポートしていません。

注意

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

要件

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

こちらもご覧ください

資格 情報