Función CredWriteA (wincred.h)
La función CredWrite crea una nueva credencial o modifica una credencial existente en el conjunto de credenciales del usuario. La nueva credencial está asociada a la sesión de inicio de sesión del token actual. El token no debe tener deshabilitado el identificador de seguridad (SID) del usuario.
Sintaxis
BOOL CredWriteA(
[in] PCREDENTIALA Credential,
[in] DWORD Flags
);
Parámetros
[in] Credential
Puntero a la estructura CREDENTIAL que se va a escribir.
[in] Flags
Marcas que controlan la operación de la función. Se define la marca siguiente.
Valor devuelto
Si la función se ejecuta correctamente, la función devuelve TRUE.
Si se produce un error en la función, devuelve FALSE. Llame a la función GetLastError para obtener un código de estado más específico. Se pueden devolver los siguientes códigos de estado.
Se pueden devolver otros errores de tarjeta inteligente al escribir una credencial de CRED_TYPE_CERTIFICATE.
Código o valor devuelto | Descripción |
---|---|
|
La sesión de inicio de sesión no existe o no hay ningún conjunto de credenciales asociado a esta sesión de inicio de sesión. Las sesiones de inicio de sesión de red no tienen un conjunto de credenciales asociado. |
|
Algunos campos no se pueden cambiar en una credencial existente. Este error se devuelve si un campo no coincide con el valor de un campo protegido de la credencial existente. |
|
Se especificó un valor que no es válido para el parámetro Flags . |
|
El miembro UserName de la estructura de credenciales pasada no es válido. Para obtener una descripción de la sintaxis de nombre de usuario válida, vea la definición de ese miembro. |
|
CRED_PRESERVE_CREDENTIAL_BLOB se especificó y no hay ninguna credencial existente por el mismo TargetName y Type. |
|
La credencial CRED_TYPE_CERTIFICATE que se escribe requiere que el lector de tarjetas inteligentes esté disponible. |
|
Una credencial de CRED_TYPE_CERTIFICATE que se escribe requiere que se inserte la tarjeta inteligente. |
|
Se proporcionó el PIN incorrecto para la credencial de CRED_TYPE_CERTIFICATE que se está escribiendo. |
Comentarios
Esta función crea una credencial si no existe una credencial con targetName y Type especificados. Si existe una credencial con targetName y Type especificados, la nueva credencial especificada reemplaza a la existente.
Cuando esta función escribe una credencial de CRED_TYPE_CERTIFICATE, el miembro Credential-CredentialBlob> especifica el PIN que protege la clave privada del certificado especificado por el miembro Credential-UserName>. El administrador de credenciales no mantiene el PIN. En su lugar, el PIN se pasa al proveedor de servicios criptográficos (CSP) indicado en el certificado para su uso posterior por el CSP y los paquetes de autenticación. El CSP define la duración del PIN. La mayoría de los CSP vacían el PIN cuando se elimina la tarjeta inteligente del lector de tarjetas inteligentes.
Si el valor del miembro Type de la estructura CREDENTIAL especificada por el parámetro Credential es CRED_TYPE_DOMAIN_EXTENDED, se debe especificar un espacio de nombres en el nombre de destino. Esta función no admite la escritura en nombres de destino que contengan caracteres comodín.
Nota
El encabezado wincred.h define CredWrite como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows XP [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2003 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | wincred.h |
Library | Advapi32.lib |
Archivo DLL | Advapi32.dll |