Share via


CredWriteDomainCredentialsW 함수(wincred.h)

CredWriteDomainCredentials 함수는 사용자의 자격 증명 집합에 도메인 자격 증명을 씁니다. 사용되는 자격 증명 집합은 현재 토큰의 로그온 세션과 연결된 자격 증명 집합입니다. 토큰에 사용자의 SID를 사용하지 않도록 설정해서는 안 됩니다.

구문

BOOL CredWriteDomainCredentialsW(
  [in] PCREDENTIAL_TARGET_INFORMATIONW TargetInfo,
  [in] PCREDENTIALW                    Credential,
  [in] DWORD                           Flags
);

매개 변수

[in] TargetInfo

대상 서버를 식별합니다. 명명 멤버 중 하나 이상이 NULL 이 아니어야 하며 NetbiosServerName, DnsServerName, NetbiosDomainName, DnsDomainName 또는 DnsTreeName일 수 있습니다.

[in] Credential

쓸 자격 증명입니다.

자격 증명은 TargetInfo for instance 일치하는 자격 증명이어야 합니다. TargetName이 와일드카드 DNS 이름인 경우 자격 증명의 TargetName 멤버는 TargetInfoDnsServerName 멤버의 후위여야 합니다.

[in] Flags

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

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

반환 값

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

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

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

반환 코드 설명
ERROR_INVALID_PARAMETER
하나 이상의 매개 변수가 잘못되었습니다. 명명 매개 변수가 지정되지 않았거나 지정된 자격 증명에 Type 멤버가 CRED_TYPE_DOMAIN_PASSWORD 또는 CRED_TYPE_DOMAIN_CERTIFICATE 설정되지 않았거나 자격 증명이TargetInfo와 일치하지 않습니다.
ERROR_NO_SUCH_LOGON_SESSION
로그온 세션이 없거나 이 로그온 세션과 연결된 자격 증명 집합이 없습니다. 네트워크 로그온 세션에는 연결된 자격 증명 집합이 없습니다.
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이 제공되었습니다.

설명

이 함수가 CRED_TYPE_CERTIFICATE 자격 증명을 작성하면 Credential-CredentialBlob 멤버는 Credential-UserName>>으로 지정된 인증서의 프라이빗 키를 보호하는 PIN을 지정합니다. 자격 증명 관리자는 PIN을 유지 관리하지 않습니다. 대신 나중에 CSP 및 인증 패키지에서 사용할 수 있도록 PIN이 인증서의 CSP에 전달됩니다. CSP는 PIN의 수명을 정의합니다. instance 경우 대부분의 CSP는 스마트 카드 제거 시 PIN을 플러시합니다.

CredWriteDomainCredentials 는 도메인(CRED_TYPE_DOMAIN_PASSWORD 또는 CRED_TYPE_DOMAIN_CERTIFICATE) 자격 증명의 특이성을 처리한다는 점에서 CredWrite 와 다릅니다. 도메인 자격 증명에는 둘 이상의 대상 멤버가 포함됩니다.

Credential 매개 변수로 지정된 CREDENTIAL 구조체의 Type 멤버 값이 CRED_TYPE_DOMAIN_EXTENDED 경우 대상 이름에 네임스페이스를 지정해야 합니다.

참고

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

요구 사항

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