Compartilhar via


Função CredWriteA (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 CredWriteA(
  [in] PCREDENTIALA Credential,
  [in] DWORD        Flags
);

Parâmetros

[in] Credential

Um ponteiro para a estrutura de DE CREDENCIAIS a ser gravada.

[in] Flags

Sinalizadores que controlam a operação da função. O sinalizador a seguir é definido.

Valor Significado
CRED_PRESERVE_CREDENTIAL_BLOB
O BLOB de credenciais de uma credencial existente é preservado com o mesmo nome de credencial e tipo de credencial. O credentialBlobSize da estrutura de de Credenciais passada deve ser zero.

Valor de retorno

Se a função for bem-sucedida, a função retornará VERDADEIRO.

Se a função falhar, ela retornará FALSE . Chame a função GetLastError para obter um código de status mais específico. Os códigos de status a seguir podem ser retornados.

Outros erros de cartão inteligente podem ser retornados ao escrever uma credencial de CRED_TYPE_CERTIFICATE.

Código/valor de retorno Descrição
ERROR_NO_SUCH_LOGON_SESSION
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.
ERROR_INVALID_PARAMETER
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.
ERROR_INVALID_FLAGS
Um valor que não é válido foi especificado para o parâmetro Flags.
ERROR_BAD_USERNAME
O UserName membro da estrutura de 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.
ERROR_NOT_FOUND
CRED_PRESERVE_CREDENTIAL_BLOB foi especificado e não há nenhuma credencial existente pelo mesmo TargetName e Type.
SCARD_E_NO_READERS_AVAILABLE
A CRED_TYPE_CERTIFICATE credencial que está sendo gravada requer que o leitor de cartão inteligente esteja disponível.
SCARD_E_NO_SMARTCARD ou SCARD_W_REMOVED_CARD
Uma CRED_TYPE_CERTIFICATE credencial que está sendo gravada requer que o cartão inteligente seja inserido.
SCARD_W_WRONG_CHV
O PIN errado foi fornecido para o CRED_TYPE_CERTIFICATE credencial que está sendo gravada.

Observações

Essa função criará uma credencial se uma credencial com o de e de Tipo de especificados não existir. Se houver uma credencial com o TargetName e Type especificados, a nova credencial especificada substituirá a existente.

Quando essa função grava uma credencial de CRED_TYPE_CERTIFICATE, ade Credencial -credentialBlob membro 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 a remoção do cartão inteligente do leitor de cartão inteligente.

Se o valor do tipo membro da estrutura de DE CREDENCIAIS especificada pelo parâmetro de Credenciais 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.

Nota

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 do pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows XP [somente aplicativos da área de trabalho]
servidor com suporte mínimo Windows Server 2003 [somente aplicativos da área de trabalho]
da Plataforma de Destino Windows
cabeçalho wincred.h
biblioteca Advapi32.lib
de DLL Advapi32.dll

Consulte também

de CREDENCIAIS