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
phDrtNULL
DRT_E_INVALID_SETTINGS
pSettingsNULLDRT_SETTINGSdwSize 成员值不等于 DRT_SETTINGS 对象的大小。
DRT_E_INVALID_KEY_SIZE
cbKey 不等于 256 位。
DRT_E_INVALID_MAX_ADDRESSES
DRT_SETTINGSulMaxRoutingAddresses 成员将小于 1 或超过 20 指定为最大地址数。
DRT_E_INVALID_TRANSPORT_PROVIDER
DRT_SETTINGS中的 hTransport 成员为 NULL,或者 Transport 的某些字段为 NULL
DRT_E_INVALID_SECURITY_MODE
DRT_SETTINGSeSecurityMode 成员指定无效的安全模式。
DRT_E_INVALID_SECURITY_PROVIDER
DRT_SETTINGSpSecurityProvider 成员为 NULL
DRT_E_INVALID_BOOTSTRAP_PROVIDER
DRT_SETTINGSpBootstrapProvider 成员为 NULL,或者引导提供程序的某些字段为 NULL
DRT_E_INVALID_INSTANCE_PREFIX
DRT_SETTINGS中指定的 pwzDrtInstancePrefix 的大小大于最大前缀长度 (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
本地证书在DRT_SECURE_MEMBERSHIP和DRT_SECURE_CONFIDENTIALPAYLOAD安全性中不能为 NULL
DRT_E_TRANSPORT_SHUTTING_DOWN
传输正在关闭。
DRT_E_TRANSPORT_ALREADY_BOUND
传输已绑定。
DRT_S_RETRY
Bootstrap 提供程序未能找到其他节点,但在第二次尝试中可能成功。
DRT_E_TRANSPORT_INVALID_ARGUMENT
传输提供程序参数为 NULL 或无效。
DRT_E_TRANSPORTPROVIDER_NOT_ATTACHED
传输未附加。
E_FAIL
发生意外的致命错误。

备注

调用 DrtOpen 后,DRT 将启动启动过程,并移动到 DRT_ACTIVEDRT_ALONE 状态,具体取决于启动成功。

要求

   
最低受支持的客户端 Windows 7 专业版 [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 R2 [仅限桌面应用]
目标平台 Windows
标头 drt.h
Library Drt.lib
DLL Drt.dll

另请参阅

DRT_SETTINGS

DrtClose