Função DrtRegisterKey (drt.h)

A função DrtRegisterKey registra uma chave no DRT.

Sintaxe

HRESULT DrtRegisterKey(
  [in]           HDRT                      hDrt,
  [in]           DRT_REGISTRATION          *pRegistration,
  [in, optional] PVOID                     pvKeyContext,
  [out]          HDRT_REGISTRATION_CONTEXT *phKeyRegistration
);

Parâmetros

[in] hDrt

Um ponteiro para um identificador retornado pela função DrtOpen .

[in] pRegistration

Um ponteiro para um identificador para a estrutura DRT_REGISTRATION .

[in, optional] pvKeyContext

Ponteiro para os dados de contexto associados à chave no DRT. Esses dados são passados para as funções específicas da chave do provedor de segurança.

[out] phKeyRegistration

Ponteiro para um identificador para uma chave que foi registrada.

Valor retornado

Essa função retorna S_OK em caso de êxito. Outros valores possíveis incluem:

Código de retorno Descrição
E_INVALIDARG
  • pRegistration é NULL
  • O valor cb do membro appData da estrutura DRT_REGISTRATION é muito grande (ou seja, menor que 1).
  • O valor cb do membro appData da estrutura DRT_REGISTRATION é muito grande (ou seja, mais de 5120).
  • O valor pb do membro de chave da estrutura DRT_REGISTRATION é NULL.
  • phKeyRegistration é NULL
E_HANDLE
hDrt é um identificador inválido ou phKeyRegistration é um identificador inválido
DRT_E_INVALID_KEY_SIZE
O tamanho do valor cb do membro chave da estrutura DRT_REGISTRATION não é igual a 256 bits ou o valor pb do membro chave da estrutura DRT_REGISTRATION é NULL..
DRT_E_FAULTED
A nuvem DRT está no estado com falha.
DRT_E_DUPLICATE_KEY
A chave já está registrada.
DRT_E_INVALID_CERT_CHAIN
A cadeia de certificação fornecida é inválida.
DRT_E_CAPABILITY_MISMATCH
O provedor de certificados fornecido não é compatível com AES.
DRT_E_INVALID_KEY
A chave fornecida não corresponde à chave gerada.
DRT_E_TRANSPORT_NO_DEST_ADDRESSES
Endereço válido não encontrado.
DRT_E_TRANSPORT_SHUTTING_DOWN
O transporte está sendo desligado.
DRT_E_INVALID_TRANSPORT_PROVIDER
O provedor de transporte é NULL.
DRT_E_TRANSPORTPROVIDER_NOT_ATTACHED
O transporte não está anexado.
DRT_E_SECURITYPROVIDER_NOT_ATTACHED
O provedor de segurança não está anexado.
DRT_E_TRANSPORT_NOT_BOUND
O transporte não está associado no momento.
E_OUTOFMEMORY
O sistema está sem memória.
E_UNEXPECTED
  • GlobalControl.HandleTable é NULL.
  • A nuvem está sendo fechada.
  • O DRT está sendo desligado.
E_FAIL
Ocorreu um erro fatal inesperado.
 
 

Comentários

Um nó pode registrar chaves enquanto estiver no estado DRT_ACTIVE, DRT_ALONE ou DRT_NO_NETWORK . No entanto, as chaves registradas nos estados DRT_ALONE e DRT_NO_NETWORK só podem ser reconhecidas por outros DRTs após a transição do nó local para DRT_ACTIVE.

Para atualizar uma chave existente, um aplicativo deve primeiro cancelar o registro da chave com DrtUnregisterKey antes de chamar DrtRegisterKey para registrar a chave atualizada.

Requisitos

   
Cliente mínimo com suporte Windows 7 Professional [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 drt.h
Biblioteca Drt.lib
DLL Drt.dll

Confira também

DRT_REGISTRATION

DrtOpen

DrtUnregisterKey