RpcNsBindingLookupBeginA 函数 (rpcnsi.h)
RpcNsBindingLookupBegin 函数为接口和对象创建查找上下文。
语法
RPC_STATUS RpcNsBindingLookupBeginA(
unsigned long EntryNameSyntax,
RPC_CSTR EntryName,
RPC_IF_HANDLE IfSpec,
UUID *ObjUuid,
unsigned long BindingMaxCount,
RPC_NS_HANDLE *LookupContext
);
参数
EntryNameSyntax
EntryName 参数的语法。
若要使用注册表项 HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc\NameService\DefaultSyntax中指定的语法,请提供值 RPC_C_NS_SYNTAX_DEFAULT。
EntryName
指向开始搜索兼容绑定的条目名称的指针。
若要使用注册表值项中指定的项名称 HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc\NameService\DefaultEntry,请提供 null 指针或空字符串。 在这种情况下, 将忽略 EntryNameSyntax 参数,运行时库使用默认语法。
IfSpec
存根生成的结构,指示要查找的接口。 如果接口规范尚未导出或与调用方无关,请为此参数指定 null 值。 在这种情况下,仅保证返回的绑定是兼容且受支持的协议序列,并且包含指定的对象 UUID。 所联系的服务器可能不支持所需的接口。
ObjUuid
指向可选对象 UUID 的指针。
对于非零 UUID,仅当服务器导出了指定的对象 UUID 时,才会从条目返回兼容的绑定句柄。
对于此参数的 null 指针值或 nil UUID,返回的绑定句柄包含由兼容服务器导出的对象 UUID 之一。 如果服务器未导出任何对象 UUID,则返回的兼容绑定句柄包含一个 nil 对象 UUID。
BindingMaxCount
从 RpcNsBindingLookupNext 函数在 BindingVec 参数中返回的最大绑定数。
将值指定为零,以使用默认计数RPC_C_BINDING_MAX_COUNT_DEFAULT。
LookupContext
返回指向名称-服务句柄的指针,以便与 RpcNsBindingLookupNext 和 RpcNsBindingLookupDone 函数一起使用。
返回值
值 | 含义 |
---|---|
|
调用成功。 |
|
名称语法无效。 |
|
不支持名称语法。 |
|
名称不完整。 |
|
找不到名称服务条目。 |
|
名称服务不可用。 |
|
对象无效。 |
注解
RpcNsBindingLookupBegin 函数创建查找上下文,用于将客户端兼容的绑定句柄定位到提供指定接口和对象的服务器。
在调用 RpcNsBindingLookupNext 之前,客户端应用程序必须先调用 RpcNsBindingLookupBegin 来创建查找上下文。 此函数的参数控制 RpcNsBindingLookupNext 函数的操作。
在 Windows 2000 中,RPC 环境使用 Active Directory 作为其名称服务数据库,运行时环境执行搜索的顺序如下:
- 在本地缓存中搜索。
- 如果在本地缓存中找不到条目,请搜索该计算机的 Active Directory。
- 如果在本地计算机上找不到条目,请将广播请求发送到域中的所有其他 Active Directory 服务。
请注意,如果该条目存在于 Active Directory 中,但没有与条目关联的信息,则运行时环境不会发出此广播请求。
注意
rpcnsi.h 标头将 RpcNsBindingLookupBegin 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名的使用与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | rpcnsi.h (包括 Rpc.h) |
Library | Rpcns4.lib |
DLL | Rpcns4.dll |