Compartilhar via


Método IX509CertificateTemplateWritable::Commit (certenroll.h)

O método Commit exclui um modelo ou o salva no Active Directory.

Sintaxe

HRESULT Commit(
  [in] CommitTemplateFlags commitFlags,
  [in] BSTR                strServerContext
);

Parâmetros

[in] commitFlags

Um valor de enumeração CommitTemplateFlags que especifica como salvar ou excluir o modelo. Esse deve ser um dos valores a seguir.

Valor Significado
CommitFlagSaveTemplateGenerateOID
Salve o modelo e crie um identificador de objeto para ele.
CommitFlagSaveTemplateUseCurrentOID
Não usado.
CommitFlagSaveTemplateOverwrite
Não usado.
CommitFlagDeleteTemplate
Exclua o modelo.

[in] strServerContext

Uma variável BSTR que contém o nome DNS do servidor do Active Directory ao qual as alterações serão aplicadas. Se esse valor for NULL, as alterações serão aplicadas ao controlador de domínio padrão.

Retornar valor

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

Se a função falhar, ela retornará um valor HRESULT que indica o erro. Os possíveis valores incluem, mas sem limitação, aqueles na tabela a seguir. Para obter uma lista de códigos de erro comuns, consulte Valores HRESULT comuns.

Código de retorno Descrição
CRYPT_E_EXISTS
CommitFlagSaveTemplateGenerateOID foi especificado no argumento commitFlags , mas já existe um modelo com um nome comum correspondente ou um OID (identificador de objeto) correspondente.
CRYPT_E_NOT_FOUND
CommitFlagDelete foi especificado no argumento commitFlags e um modelo com o mesmo Nome Comum foi encontrado, mas o OID não correspondeu.
E_ACCESSDEINED
O chamador não tem a permissão apropriada para salvar ou excluir um modelo. O chamador deve ter permissão de gravação e exclusão no contêiner de modelo e nos objetos de modelo no Active Directory. Se o chamador tiver permissão de exclusão no contêiner de modelo e nos objetos, mas não tiver permissão de exclusão no contêiner e nos objetos OID, o modelo será excluído, mas o OID não será.
E_NOTIMPL
CommitFlagSaveTemplateUseCurrentOID ou CommitFlagSaveTemplateOverwrite foi especificado no argumento commitFlags. Esses valores não são usados no momento.
HRESULT_FROM_WIN32(ERROR_NOT_FOUND)
CommitFlagDelete foi especificado no argumento commitFlags , mas não foi possível encontrar um modelo com um CN (Nome Comum) correspondente.
HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED)
Não há suporte para o método Commit para modelos padrão.
OLE_E_BLANK
O objeto IX509CertificateTemplateWritable não foi inicializado.

Comentários

Quando CommitFlagSaveTemplateGenerateOID for especificado no argumento commitFlags , esse método não terá êxito, a menos que o modelo e os contêineres OID já tenham sido criados. Esses contêineres podem ser criados de qualquer uma das seguintes maneiras:

  • Instalando uma autoridade de certificação corporativa no servidor.
  • Iniciando o snap-in Certtmpl.msc.
  • Usando o comando Certutil.exe -installDefaultTemplates para instalar os modelos padrão.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 7 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 R2 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho certenroll.h

Confira também

IX509CertificateTemplateWritable