Функция DrtRegisterKey (drt.h)

Функция DrtRegisterKey регистрирует ключ в DRT.

Синтаксис

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

Параметры

[in] hDrt

Указатель на дескриптор, возвращаемый функцией DrtOpen .

[in] pRegistration

Указатель на дескриптор структуры DRT_REGISTRATION .

[in, optional] pvKeyContext

Указатель на данные контекста, связанные с ключом в DRT. Эти данные передаются в функции поставщика безопасности, относящиеся к ключам.

[out] phKeyRegistration

Указатель на дескриптор зарегистрированного ключа.

Возвращаемое значение

Эта функция возвращает S_OK об успешном выполнении. Ниже приведены другие возможные значения.

Код возврата Описание
E_INVALIDARG
  • pRegistration имеет значение NULL.
  • Значение cb элемента appData структуры DRT_REGISTRATION слишком велико (т. е. меньше 1).
  • Значение cb элемента appData структуры DRT_REGISTRATION слишком велико (т. е. больше 5120).
  • Значение pbключевого элемента структуры DRT_REGISTRATION равно NULL.
  • phKeyRegistration имеет значение NULL
E_HANDLE
hDrt — недопустимый дескриптор или phKeyRegistration — недопустимый дескриптор.
DRT_E_INVALID_KEY_SIZE
Размер значения cb ключевого элемента структуры DRT_REGISTRATION не равен 256 битам или значение pbключевого элемента структуры DRT_REGISTRATION равно NULL.
DRT_E_FAULTED
Облако DRT находится в состоянии сбоя.
DRT_E_DUPLICATE_KEY
Ключ уже зарегистрирован.
DRT_E_INVALID_CERT_CHAIN
Указанная цепочка сертификации недопустима.
DRT_E_CAPABILITY_MISMATCH
Предоставленный поставщик сертификатов не поддерживает AES.
DRT_E_INVALID_KEY
Предоставленный ключ не соответствует созданному ключу.
DRT_E_TRANSPORT_NO_DEST_ADDRESSES
Допустимый адрес не найден.
DRT_E_TRANSPORT_SHUTTING_DOWN
Транспорт завершает работу.
DRT_E_INVALID_TRANSPORT_PROVIDER
Поставщик транспорта имеет значение NULL.
DRT_E_TRANSPORTPROVIDER_NOT_ATTACHED
Транспорт не присоединен.
DRT_E_SECURITYPROVIDER_NOT_ATTACHED
Поставщик безопасности не подключен.
DRT_E_TRANSPORT_NOT_BOUND
Транспорт в настоящее время не привязан.
E_OUTOFMEMORY
Системе не хватает памяти.
E_UNEXPECTED
  • Параметр GlobalControl.HandleTable имеет значение NULL.
  • Облако завершает работу.
  • DRT завершает работу.
E_FAIL
Произошла непредвиденная неустранимая ошибка.
 
 

Комментарии

Узел может регистрировать ключи в состоянии DRT_ACTIVE, DRT_ALONE или DRT_NO_NETWORK . Однако ключи, зарегистрированные в состояниях DRT_ALONE и DRT_NO_NETWORK , могут быть распознаны другими DRT только после перехода локального узла на DRT_ACTIVE.

Чтобы обновить существующий ключ, приложение должно сначала отменить регистрацию ключа с помощью DrtUnregisterKey , прежде чем вызывать DrtRegisterKey для регистрации обновленного ключа.

Требования

   
Минимальная версия клиента Windows 7 Профессиональная [только классические приложения]
Минимальная версия сервера Windows Server 2008 R2 [только классические приложения]
Целевая платформа Windows
Header drt.h
Библиотека Drt.lib
DLL Drt.dll

См. также раздел

DRT_REGISTRATION

DrtOpen

DrtUnregisterKey