Функция CryptUpdateProtectedState (dpapi.h)
Функция CryptUpdateProtectedState переносит ключи master текущего пользователя после изменения идентификатора безопасности (SID) пользователя. Эта функция может использоваться для сохранения зашифрованных данных после перемещения пользователя из одного домена в другой.
Синтаксис
DPAPI_IMP BOOL CryptUpdateProtectedState(
[in] PSID pOldSid,
[in] LPCWSTR pwszOldPassword,
[in] DWORD dwFlags,
[out] DWORD *pdwSuccessCount,
[out] DWORD *pdwFailureCount
);
Параметры
[in] pOldSid
Адрес структуры sid , содержащей предыдущий идентификатор безопасности пользователя. Этот идентификатор безопасности используется для поиска старых ключей master. Если этот параметр имеет значение NULL, переносятся ключи master для текущего идентификатора безопасности пользователя.
Этот параметр или параметр pwszOldPassword может иметь значение NULL, но не оба.
[in] pwszOldPassword
Указатель на строку Юникода, завершающуюся значением NULL, которая содержит пароль пользователя до изменения идентификатора безопасности. Этот пароль используется для расшифровки старых ключей master. Если этот параметр имеет значение NULL, будет использоваться пароль текущего пользователя.
Этот параметр или параметр pOldSid может иметь значение NULL, но не оба.
[in] dwFlags
Не используется. Должен равняться нулю.
[out] pdwSuccessCount
Адрес переменной DWORD, получающей количество ключей master, которые были успешно перенесены.
[out] pdwFailureCount
Адрес переменной DWORD, получающей количество master ключей, которые не удалось расшифровать.
Если не удается расшифровать один или несколько ключей master, это не обязательно является ошибкой. Некоторые пользователи могут обладать master ключами, которые являются застойными и не могут быть расшифрованы в течение длительного времени. Одним из способов этого является административный сброс пароля локального пользователя.
Возвращаемое значение
Если функция выполняется успешно, возвращается значение TRUE.
Если функция завершается сбоем, возвращается значение FALSE. Чтобы получить дополнительные сведения об ошибке, вызовите Метод GetLastError. Ниже приведены некоторые возможные коды ошибок.
Код возврата | Описание |
---|---|
|
Один из параметров содержит недопустимое значение. |
|
Произошел сбой выделения памяти. |
|
Не удалось зашифровать старый пароль. |
Комментарии
Эта функция расшифровывает все ключи master пользователя в старом каталоге ключей master, используя предыдущий пароль, и сохраняет их в текущем каталоге ключа master пользователя, зашифрованном с помощью текущего пароля пользователя.
Эта функция должна вызываться из учетной записи пользователя, в которую переносятся ключи.
Если эта функция может успешно перенести старый ключ master, она автоматически удалит старый ключ master. Главные ключи, которые невозможно расшифровать, не удаляются.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 [только классические приложения] |
Целевая платформа | Windows |
Header | dpapi.h |
Библиотека | Crypt32.lib |
DLL | Crypt32.dll |