rpcdce.h) (RPC_BINDING_HANDLE_TEMPLATE_V1_A 结构
RPC_BINDING_HANDLE_TEMPLATE_V1 结构包含用于创建 RPC 绑定句柄的基本选项。
语法
typedef struct _RPC_BINDING_HANDLE_TEMPLATE_V1_A {
unsigned long Version;
unsigned long Flags;
unsigned long ProtocolSequence;
unsigned char *NetworkAddress;
unsigned char *StringEndpoint;
union {
unsigned char *Reserved;
} u1;
UUID ObjectUuid;
} RPC_BINDING_HANDLE_TEMPLATE_V1_A, *PRPC_BINDING_HANDLE_TEMPLATE_V1_A;
成员
Version
此结构的版本。 对于 RPC_BINDING_HANDLE_TEMPLATE_V1 必须将其设置为 1。
Flags
标记描述 RPC 模板的特定属性的值。
值 | 含义 |
---|---|
|
ObjectUuid 成员包含有效值。 如果未设置此标志,则 ObjectUuid 成员不包含有效的 UUID。 |
ProtocolSequence
与此绑定句柄关联的协议序列 ID。 可以是下列值之一。
- RPC_PROTSEQ_LRPC - 指定本地 RPC。
- RPC_PROTSEQ_TCP - 指定基于 TCP/IP 的 RPC。
- RPC_PROTSEQ_NMP - 通过命名管道指定 RPC。
- RPC_PROTSEQ_HTTP - 指定 RPC over HTTP。
NetworkAddress
指向要绑定到的网络地址的字符串表示形式的指针。
StringEndpoint
指向要绑定到的终结点的字符串表示形式的指针。 如果使用动态终结点,请将此成员设置为 NULL。 解析终结点后,使用 RpcBindingToStringBinding 获取它。
u1
u1.Reserved
保留。 此成员必须设置为 NULL。
ObjectUuid
远程对象的 UUID。 此 UUID 的语义与字符串绑定的语义相同。 创建绑定句柄后,调用 RpcBindingSetObject 以根据需要更改 UUID。
注解
快速绑定句柄与“经典”绑定句柄在调用 RpcBindingReset 期间处理它们的方式略有不同。 RpcBindingReset 是静态快速绑定句柄的无操作调用。 但是,对于经典绑定句柄, RpcBindingReset 会将静态绑定句柄转换为动态绑定句柄,以保持向后兼容性。
下表演示了与 RpcBindingReset 和 RpcEpResolveBinding 相关的静态和动态绑定句柄的行为。
终结点类型 | Static | 动态 | ||
---|---|---|---|---|
绑定句柄类型 | 快速 | 经典 | 快速 | 经典 |
RpcBindingReset | No-op | 转换为动态 | 删除已解析的终结点(如果存在) | 删除已解析的终结点(如果存在) |
RpcEpResolveBinding | No-op | No-op | 如果以前未解析,则解析终结点 | 如果以前未解析,则解析终结点 |
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
标头 | rpcdce.h (包括 Rpc.h) |