Função CredWriteW (wincred.h)
A função CredWrite cria uma nova credencial ou modifica uma credencial existente no conjunto de credenciais do usuário. A nova credencial está associada à sessão de logon do token atual. O token não deve ter o SID ( identificador de segurança ) do usuário desabilitado.
Sintaxe
BOOL CredWriteW(
[in] PCREDENTIALW Credential,
[in] DWORD Flags
);
Parâmetros
[in] Credential
Um ponteiro para a estrutura CREDENTIAL a ser gravada.
[in] Flags
Sinalizadores que controlam a operação da função. O sinalizador a seguir é definido.
Retornar valor
Se a função for bem-sucedida, a função retornará TRUE.
Se a função falhar, ela retornará FALSE. Chame a função GetLastError para obter um código de status mais específico. Os seguintes códigos de status podem ser retornados.
Outros erros de cartão inteligentes podem ser retornados ao gravar uma credencial de CRED_TYPE_CERTIFICATE.
Valor/código retornado | Descrição |
---|---|
|
A sessão de logon não existe ou não há nenhum conjunto de credenciais associado a esta sessão de logon. As sessões de logon de rede não têm um conjunto de credenciais associado. |
|
Determinados campos não podem ser alterados em uma credencial existente. Esse erro será retornado se um campo não corresponder ao valor em um campo protegido da credencial existente. |
|
Um valor que não é válido foi especificado para o parâmetro Flags . |
|
O membro UserName da estrutura de credenciais passada não é válido. Para obter uma descrição da sintaxe de nome de usuário válida, consulte a definição desse membro. |
|
CRED_PRESERVE_CREDENTIAL_BLOB foi especificado e não há nenhuma credencial existente pelo mesmo TargetName e Type. |
|
A credencial CRED_TYPE_CERTIFICATE que está sendo gravada requer que o leitor de cartão inteligente esteja disponível. |
|
Uma credencial CRED_TYPE_CERTIFICATE que está sendo gravada requer que a cartão inteligente seja inserida. |
|
O PIN errado foi fornecido para o CRED_TYPE_CERTIFICATE credencial que está sendo gravada. |
Comentários
Essa função criará uma credencial se uma credencial com o TargetName e o Type especificados não existirem. Se existir uma credencial com o TargetName e o Type especificados, a nova credencial especificada substituirá a existente.
Quando essa função grava uma credencial CRED_TYPE_CERTIFICATE, o membro Credential-CredentialBlob > especifica o PIN que protege a chave privada do certificado especificado pelo membro Credential-UserName.> O gerenciador de credenciais não mantém o PIN. Em vez disso, o PIN é passado para o CSP ( provedor de serviços criptográficos ) indicado no certificado para uso posterior pelo CSP e pelos pacotes de autenticação. O CSP define o tempo de vida do PIN. A maioria dos CSPs libera o PIN quando o cartão inteligente é removido do leitor de cartão inteligente.
Se o valor do membro Type da estrutura CREDENTIAL especificado pelo parâmetro Credential for CRED_TYPE_DOMAIN_EXTENDED, um namespace deverá ser especificado no nome de destino. Essa função não dá suporte à gravação em nomes de destino que contêm caracteres curinga.
Observação
O cabeçalho wincred.h define CredWrite como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows XP [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2003 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | wincred.h |
Biblioteca | Advapi32.lib |
DLL | Advapi32.dll |