다음을 통해 공유


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

요구 사항

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

추가 정보

자격 증명