Share via


CryptUpdateProtectedState 함수(dpapi.h)

CryptUpdateProtectedState 함수는 사용자의 SID(보안 식별자)가 변경된 후 현재 사용자의 master 키를 마이그레이션합니다. 이 함수는 사용자가 한 도메인에서 다른 도메인으로 이동한 후 암호화된 데이터를 보존하는 데 사용할 수 있습니다.

구문

DPAPI_IMP BOOL CryptUpdateProtectedState(
  [in]  PSID    pOldSid,
  [in]  LPCWSTR pwszOldPassword,
  [in]  DWORD   dwFlags,
  [out] DWORD   *pdwSuccessCount,
  [out] DWORD   *pdwFailureCount
);

매개 변수

[in] pOldSid

사용자의 이전 SID를 포함하는 SID 구조체의 주소입니다. 이 SID는 이전 master 키를 찾는 데 사용됩니다. 이 매개 변수가 NULL이면 현재 사용자 SID에 대한 master 키가 마이그레이션됩니다.

이 매개 변수 또는 pwszOldPassword 매개 변수는 NULL일 수 있지만 둘 다 그렇지는 않습니다.

[in] pwszOldPassword

SID를 변경하기 전에 사용자의 암호를 포함하는 null로 종료된 유니코드 문자열에 대한 포인터입니다. 이 암호는 이전 master 키의 암호를 해독하는 데 사용됩니다. 이 매개 변수가 NULL이면 현재 사용자의 암호가 사용됩니다.

이 매개 변수 또는 pOldSid 매개 변수는 NULL일 수 있지만 둘 다 그렇지는 않습니다.

[in] dwFlags

사용되지 않습니다. 0이어야 합니다.

[out] pdwSuccessCount

성공적으로 마이그레이션된 master 키 수를 수신하는 DWORD 변수의 주소입니다.

[out] pdwFailureCount

암호를 해독할 수 없는 master 키 수를 수신하는 DWORD 변수의 주소입니다.

하나 이상의 master 키를 해독할 수 없는 경우 반드시 오류가 되는 것은 아닙니다. 일부 사용자는 정체되어 오랫동안 암호 해독할 수 없는 master 키를 보유할 수 있습니다. 이 문제가 발생할 수 있는 한 가지 방법은 로컬 사용자의 암호가 관리적으로 재설정된 경우입니다.

반환 값

함수가 성공하면 반환 값은 TRUE입니다.

함수가 실패하면 반환 값은 FALSE입니다. 확장된 오류 정보는 GetLastError를 호출합니다. 몇 가지 가능한 오류 코드에는 다음이 포함됩니다.

반환 코드 설명
ERROR_INVALID_PARAMETER
매개 변수 중 하나에는 유효하지 않은 값이 포함되어 있습니다.
ERROR_OUTOFMEMORY
메모리 할당 오류가 발생했습니다.
ERROR_ENCRYPTION_FAILED
이전 암호를 암호화할 수 없습니다.

설명

이 함수는 이전 암호를 사용하여 이전 master 키 디렉터리에 있는 사용자의 모든 master 키를 해독하고 사용자의 현재 암호로 암호화된 사용자의 현재 master 키 디렉터리에 저장합니다.

이 함수는 키가 마이그레이션되는 사용자 계정에서 호출되어야 합니다.

이 함수가 이전 master 키를 성공적으로 마이그레이션할 수 있으면 이전 master 키가 자동으로 삭제됩니다. 암호를 해독할 수 없는 마스터 키는 삭제되지 않습니다.

요구 사항

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