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

Функция DrtOpen создает локальный экземпляр распределенной таблицы маршрутизации на основе критериев, заданных структурой DRT_SETTINGS .

Синтаксис

HRESULT DrtOpen(
  [in]           const DRT_SETTINGS *pSettings,
  [in]           HANDLE             hEvent,
  [in, optional] const PVOID        pvContext,
  [out]          HDRT               *phDrt
);

Параметры

[in] pSettings

Указатель на структуру DRT_SETTINGS , которая задает параметры, используемые для создания экземпляра DRT.

[in] hEvent

Дескриптор для события, сигнального при возникновении события.

[in, optional] pvContext

Определяемые пользователем контекстные данные, которые передаются приложению через события.

[out] phDrt

Новый дескриптор, связанный с DRT. Он используется во всех будущих операциях с экземпляром DRT.

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

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

Код возврата Описание
E_INVALIDARG
PhDrt имеет значение NULL.
DRT_E_INVALID_SETTINGS
pSettings имеет значение NULL или значение члена dwSizeDRT_SETTINGS не равно размеру объекта DRT_SETTINGS .
DRT_E_INVALID_KEY_SIZE
CbKey не равен 256 битам.
DRT_E_INVALID_MAX_ADDRESSES
Член ulMaxRoutingAddressesDRT_SETTINGS указывает в качестве максимального числа адресов меньше 1 или более 20.
DRT_E_INVALID_TRANSPORT_PROVIDER
Элемент hTransport в DRT_SETTINGS имеет значение NULL или некоторые поля транспорта имеют значение NULL.
DRT_E_INVALID_SECURITY_MODE
Элемент eSecurityModeDRT_SETTINGS указывает недопустимый режим безопасности.
DRT_E_INVALID_SECURITY_PROVIDER
Элемент pSecurityProviderDRT_SETTINGS имеет значение NULL.
DRT_E_INVALID_BOOTSTRAP_PROVIDER
Элемент pBootstrapProviderDRT_SETTINGS имеет значение NULL или некоторые поля поставщика начальной загрузки имеют значение NULL.
DRT_E_INVALID_INSTANCE_PREFIX
Размер pwzDrtInstancePrefix , указанный в DRT_SETTINGS , больше, чем максимальная длина префикса (128).
E_OUTOFMEMORY
Система не может выделить память для этой операции.
DRT_E_BOOTSTRAPPROVIDER_IN_USE
Поставщик начальной загрузки уже подключен.
DRT_E_SECURITYPROVIDER_IN_USE
Поставщик безопасности уже подключен.
DRT_TRANSPORTPROVIDER_IN_USE
Поставщик транспорта уже подключен.
DRT_E_INVALID_CERT_CHAIN
Недопустимая цепочка сертификации.
DRT_E_CAPABILITY_MISMATCH
Локальный сертификат не может иметь значение NULL в DRT_SECURE_MEMBERSHIP и DRT_SECURE_CONFIDENTIALPAYLOAD безопасности.
DRT_E_TRANSPORT_SHUTTING_DOWN
Транспорт завершает работу.
DRT_E_TRANSPORT_ALREADY_BOUND
Транспорт уже привязан.
DRT_S_RETRY
Поставщику начальной загрузки не удалось найти другие узлы, но может быть успешно выполнена вторая попытка.
DRT_E_TRANSPORT_INVALID_ARGUMENT
Параметр поставщика транспорта имеет значение NULL или недопустимый.
DRT_E_TRANSPORTPROVIDER_NOT_ATTACHED
Транспорт не подключен.
E_FAIL
Произошла непредвиденная неустранимая ошибка.

Комментарии

После вызова DrtOpen DRT начнет процедуру начальной загрузки и перейдет в состояние DRT_ACTIVE или DRT_ALONE в зависимости от успешности начальной загрузки.

Требования

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

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

DRT_SETTINGS

DrtClose