Compartir a través de


Función DrtRegisterKey (drt.h)

La función DrtRegisterKey registra una clave en el DRT.

Sintaxis

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

Parámetros

[in] hDrt

Puntero a un identificador devuelto por la función DrtOpen .

[in] pRegistration

Puntero a un identificador de la estructura DRT_REGISTRATION .

[in, optional] pvKeyContext

Puntero a los datos de contexto asociados a la clave del DRT. Estos datos se pasan a las funciones específicas de la clave del proveedor de seguridad.

[out] phKeyRegistration

Puntero a un identificador de una clave que se ha registrado.

Valor devuelto

Esta función devuelve S_OK si se ejecuta correctamente. Otros valores posibles son:

Código devuelto Descripción
E_INVALIDARG
  • pRegistration es NULL
  • El valor cb del miembro appData de la estructura DRT_REGISTRATION es demasiado grande (es decir, menor que 1).
  • El valor cb del miembro appData de la estructura DRT_REGISTRATION es demasiado grande (es decir, más de 5120).
  • El valor pb del miembro clave de la estructura DRT_REGISTRATION es NULL.
  • phKeyRegistration es NULL
E_HANDLE
hDrt es un identificador no válido o phKeyRegistration es un identificador no válido.
DRT_E_INVALID_KEY_SIZE
El tamaño del valor cb del miembro clave de la estructura DRT_REGISTRATION no es igual a 256 bits o el valor pb del miembro clave de la estructura DRT_REGISTRATION es NULL..
DRT_E_FAULTED
La nube DRT está en estado defectuoso.
DRT_E_DUPLICATE_KEY
La clave ya está registrada.
DRT_E_INVALID_CERT_CHAIN
La cadena de certificación proporcionada no es válida.
DRT_E_CAPABILITY_MISMATCH
El proveedor de certificados proporcionado no es compatible con AES.
DRT_E_INVALID_KEY
La clave proporcionada no coincide con la clave generada.
DRT_E_TRANSPORT_NO_DEST_ADDRESSES
No se encontró la dirección válida.
DRT_E_TRANSPORT_SHUTTING_DOWN
El transporte se está cerrando.
DRT_E_INVALID_TRANSPORT_PROVIDER
El proveedor de transporte es NULL.
DRT_E_TRANSPORTPROVIDER_NOT_ATTACHED
El transporte no está conectado.
DRT_E_SECURITYPROVIDER_NOT_ATTACHED
El proveedor de seguridad no está asociado.
DRT_E_TRANSPORT_NOT_BOUND
El transporte no está enlazado actualmente.
E_OUTOFMEMORY
El sistema está sin memoria.
E_UNEXPECTED
  • GlobalControl.HandleTable es NULL.
  • La nube se está cerrando.
  • El DRT se está cerrando.
E_FAIL
Se ha producido un error irrecuperable inesperado.
 
 

Comentarios

Un nodo puede registrar claves mientras se encuentra en el estado DRT_ACTIVE, DRT_ALONE o DRT_NO_NETWORK . Sin embargo, las claves registradas en DRT_ALONE y los estados de DRT_NO_NETWORK solo pueden ser reconocidas por otros DRT después de que el nodo local haya pasado a DRT_ACTIVE.

Para actualizar una clave existente, una aplicación debe anular primero el registro de la clave con DrtUnregisterKey antes de llamar a DrtRegisterKey para registrar la clave actualizada.

Requisitos

   
Cliente mínimo compatible Windows 7 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 R2 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado drt.h
Library Drt.lib
Archivo DLL Drt.dll

Consulte también

DRT_REGISTRATION

DrtOpen

DrtUnregisterKey