Función CryptUpdateProtectedState (dpapi.h)
La función CryptUpdateProtectedState migra las claves maestras del usuario actual después de que haya cambiado el identificador de seguridad (SID) del usuario. Esta función se puede usar para conservar los datos cifrados después de que un usuario se haya movido de un dominio a otro.
Sintaxis
DPAPI_IMP BOOL CryptUpdateProtectedState(
[in] PSID pOldSid,
[in] LPCWSTR pwszOldPassword,
[in] DWORD dwFlags,
[out] DWORD *pdwSuccessCount,
[out] DWORD *pdwFailureCount
);
Parámetros
[in] pOldSid
Dirección de una estructura de SID que contiene el SID anterior del usuario. Este SID se usa para localizar las claves maestras antiguas. Si este parámetro es NULL, se migran las claves maestras del SID de usuario actual.
Este parámetro o el parámetro pwszOldPassword pueden ser NULL, pero no ambos.
[in] pwszOldPassword
Puntero a una cadena Unicode terminada en null que contiene la contraseña del usuario antes de cambiar el SID. Esta contraseña se usa para descifrar las claves maestras antiguas. Si este parámetro es NULL, se usará la contraseña del usuario actual.
Este parámetro o el parámetro pOldSid pueden ser NULL, pero no ambos.
[in] dwFlags
No se usa. Debe ser cero.
[out] pdwSuccessCount
Dirección de una variable DWORD que recibe el número de claves maestras que se migraron correctamente.
[out] pdwFailureCount
Dirección de una variable DWORD que recibe el número de claves maestras que no se pudieron descifrar.
No es necesariamente un error si no se pueden descifrar una o varias claves maestras. Algunos usuarios pueden poseer claves maestras que están estancadas y que no se pudieron descifrar durante mucho tiempo. Una manera de que esto puede ocurrir es cuando la contraseña de un usuario local se ha restablecido administrativamente.
Valor devuelto
Si la función se ejecuta correctamente, el valor devuelto es TRUE.
Si se produce un error en la función, el valor devuelto es FALSE. Para obtener información de error extendida, llame a GetLastError. Algunos códigos de error posibles incluyen lo siguiente.
Código devuelto | Descripción |
---|---|
|
Uno de los parámetros contiene un valor que no es válido. |
|
Error de asignación de memoria. |
|
No se pudo cifrar la contraseña antigua. |
Comentarios
Esta función descifra todas las claves maestras del usuario en el directorio de claves maestras anterior, con la contraseña anterior y las almacena en el directorio de claves maestras actual del usuario, cifrada con la contraseña actual del usuario.
Se debe llamar a esta función desde la cuenta de usuario a la que se van a migrar las claves.
Si esta función puede migrar correctamente una clave maestra antigua, eliminará automáticamente la clave maestra antigua. Las claves maestras que no se pueden descifrar no se eliminan.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows Vista [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2008 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | dpapi.h |
Library | Crypt32.lib |
Archivo DLL | Crypt32.dll |