CredWriteA 함수(wincred.h)
CredWrite 함수는 새 자격 증명을 만들거나 사용자의 자격 증명 집합에서 기존 자격 증명을 수정합니다. 새 자격 증명은 현재 토큰의 로그온 세션과 연결됩니다. 토큰에 사용자의 SID(보안 식별자)를 사용하지 않도록 설정해서는 안 됩니다.
통사론
BOOL CredWriteA(
[in] PCREDENTIALA Credential,
[in] DWORD Flags
);
매개 변수
[in] Credential
쓸 CREDENTIAL 구조체에 대한 포인터입니다.
[in] Flags
함수의 작업을 제어하는 플래그입니다. 다음 플래그가 정의됩니다.
값 | 의미 |
---|---|
|
기존 자격 증명의 자격 증명 BLOB은 동일한 자격 증명 이름 및 자격 증명 형식으로 유지됩니다. 자격 증명 구조에 전달된 CredentialBlobSize 0이어야 합니다. |
반환 값
함수가 성공하면 함수는 true
함수가 실패하면 false
다른 스마트 카드 오류는 CRED_TYPE_CERTIFICATE 자격 증명을 작성할 때 반환될 수 있습니다.
반환 코드/값 | 묘사 |
---|---|
|
로그온 세션이 없거나 이 로그온 세션과 연결된 자격 증명 집합이 없습니다. 네트워크 로그온 세션에는 연결된 자격 증명 집합이 없습니다. |
|
기존 자격 증명에서는 특정 필드를 변경할 수 없습니다. 필드가 기존 자격 증명의 보호된 필드 값과 일치하지 않으면 이 오류가 반환됩니다. |
|
잘못된 값이 Flags 매개 변수에 지정되었습니다. |
|
자격 증명 구조에 전달된 UserName 멤버가 잘못되었습니다. 유효한 사용자 이름 구문에 대한 설명은 해당 멤버의 정의를 참조하세요. |
|
CRED_PRESERVE_CREDENTIAL_BLOB 지정되었으며 동일한 TargetName 및 형식기존 자격 증명이 없습니다. |
|
CRED_TYPE_CERTIFICATE 자격 증명을 작성하려면 스마트 카드 판독기를 사용할 수 있어야 합니다. |
|
CRED_TYPE_CERTIFICATE 자격 증명을 작성하려면 스마트 카드를 삽입해야 합니다. |
|
작성 중인 CRED_TYPE_CERTIFICATE 자격 증명에 잘못된 PIN이 제공되었습니다. |
발언
이 함수는 지정된 TargetName 및 Type 있는 자격 증명이 없는 경우 자격 증명을 만듭니다. 지정한 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 |