다음을 통해 공유


CredWriteA 함수(wincred.h)

CredWrite 함수는 새 자격 증명을 만들거나 사용자의 자격 증명 집합에서 기존 자격 증명을 수정합니다. 새 자격 증명은 현재 토큰의 로그온 세션과 연결됩니다. 토큰에 사용자의 SID(보안 식별자)를 사용하지 않도록 설정해서는 안 됩니다.

통사론

BOOL CredWriteA(
  [in] PCREDENTIALA Credential,
  [in] DWORD        Flags
);

매개 변수

[in] Credential

CREDENTIAL 구조체에 대한 포인터입니다.

[in] Flags

함수의 작업을 제어하는 플래그입니다. 다음 플래그가 정의됩니다.

의미
CRED_PRESERVE_CREDENTIAL_BLOB
기존 자격 증명의 자격 증명 BLOB은 동일한 자격 증명 이름 및 자격 증명 형식으로 유지됩니다. 자격 증명 구조에 전달된 CredentialBlobSize 0이어야 합니다.

반환 값

함수가 성공하면 함수는 true반환합니다.

함수가 실패하면 false반환합니다. GetLastError 함수를 호출하여 보다 구체적인 상태 코드를 가져옵니다. 다음 상태 코드를 반환할 수 있습니다.

다른 스마트 카드 오류는 CRED_TYPE_CERTIFICATE 자격 증명을 작성할 때 반환될 수 있습니다.

반환 코드/값 묘사
ERROR_NO_SUCH_LOGON_SESSION
로그온 세션이 없거나 이 로그온 세션과 연결된 자격 증명 집합이 없습니다. 네트워크 로그온 세션에는 연결된 자격 증명 집합이 없습니다.
ERROR_INVALID_PARAMETER
기존 자격 증명에서는 특정 필드를 변경할 수 없습니다. 필드가 기존 자격 증명의 보호된 필드 값과 일치하지 않으면 이 오류가 반환됩니다.
ERROR_INVALID_FLAGS
잘못된 값이 Flags 매개 변수에 지정되었습니다.
ERROR_BAD_USERNAME
자격 증명 구조에 전달된 UserName 멤버가 잘못되었습니다. 유효한 사용자 이름 구문에 대한 설명은 해당 멤버의 정의를 참조하세요.
ERROR_NOT_FOUND
CRED_PRESERVE_CREDENTIAL_BLOB 지정되었으며 동일한 TargetName형식기존 자격 증명이 없습니다.
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 있는 자격 증명이 없는 경우 자격 증명을 만듭니다. 지정한 TargetName형식 있는 자격 증명이 있는 경우 지정된 새 자격 증명이 기존 자격 증명을 대체합니다.

이 함수가 CRED_TYPE_CERTIFICATE 자격 증명을 작성하면 Credential->CredentialBlob 멤버는 자격 증명지정된 인증서의 프라이빗 키를 보호하는 PIN을 지정합니다.>UserName 멤버입니다. 자격 증명 관리자는 PIN을 유지 관리하지 않습니다. 대신 PIN은 나중에 CSP 및 인증 패키지에서 사용하기 위해 인증서에 표시된 CSP(암호화 서비스 공급자)에 전달됩니다. CSP는 PIN의 수명을 정의합니다. 스마트 카드 판독기에서 스마트 카드를 제거할 때 대부분의 CSP는 PIN을 플러시합니다.

자격 증명 매개 변수로 지정된 CREDENTIAL 구조체의 Type 멤버 값이 CRED_TYPE_DOMAIN_EXTENDED경우 대상 이름에 네임스페이스를 지정해야 합니다. 이 함수는 와일드카드를 포함하는 대상 이름에 쓰기를 지원하지 않습니다.

메모

wincred.h 헤더는 CRedWrite를 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입대한 규칙을 참조하세요.

요구 사항

요구
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 wincred.h
라이브러리 Advapi32.lib
DLL Advapi32.dll

참고 항목

자격 증명