Initialize_Conversation (CPI-C)
Initialize_Conversation调用 (函数名称 cminit) 由调用程序发出,以获取 8 字节会话标识符并设置会话特征的初始值。
语法
CM_ENTRY Initialize_Conversation(
unsigned char FAR *conversation_ID,
unsigned char FAR *sym_dest_name,
CM_INT32 FAR *return_code
);
参数
conversation_ID
返回的参数。 指定会话的标识符。 它由后续的 CPI-C 调用使用。
sym_dest_name
提供的参数。 指定符号目标名称-与从配置文件加载的或由 Set_CPIC_Side_Information 调用定义的侧信息条目关联的名称。
此参数是一个 8 字节 ASCII 字符串。 允许的字符如下所示:
大写字母
0 到 9 的数字
此参数也可以设置为 8 个空格。 在这种情况下,调用程序必须在发出 Allocate 之前发出以下调用:
-
return_code
从此调用返回的代码。 本主题后面列出了有效的返回代码。
返回代码
CM_OK
主返回代码;调用已成功执行。
CM_PROGRAM_PARAMETER_CHECK
主返回代码; 由 sym_dest_name 指定的值与侧信息表中的符号目标名称不匹配,并且不是空格。
CM_PRODUCT_SPECIFIC_ERROR
主返回代码;发生特定于产品的错误,并且已记录在产品错误日志中。
状态更改
会话处于 RESET 状态。
如果 CM_OK return_code ,则会话将更改为 INITIALIZE 状态。 对于其他返回代码,聊天状态保持不变。
注解
初始值为 CPI-C 默认值,或派生自与符号目标名称关联的侧信息。 有关初始值和端信息的详细信息,请参阅 CPI-C 程序的初始对话特征和侧信息。
初始值可以通过 Set_ 调用进行更改。
如果端信息包含无效值或 Set_ 调用将会话特征设置为无效值,则会在 Allocate 调用上返回错误。
如果 CPI-C 应用程序尝试调用多个并发会话,则所有会话仅使用单个本地 APPC 逻辑单元 (LU) 。 这可以防止跨两个或多个依赖 LU 6.2 LU 的并发会话,导致后续Initialize_Conversation (CMALLC) 调用等待第一个会话解除分配。
如果 CPI-C 应用程序需要调用多个并发会话,则必须在 Host Integration Server 和远程系统之间使用独立的 LU 6.2。
成功执行此调用后,CPI-C 将生成会话标识符。 此标识符是调用程序为此会话发出的所有其他 CPI-C 调用的必需参数。
在正常情况下,CPI-C 应用程序无法使用两个不同的本地 APPC LU 调用两个并发会话。 注册表项可用,当设置强制 CPI-C 在每个Initialize_Conversation (cminit) 调用上发出新的TP_STARTED谓词。 这是强制每个调用的 APPC 资源位置所必需的。 为强制此行为而必须定义的注册表项如下所示:
\HKLM\CurrentControlSet\Services\SnaBase\Parameters\Client\GETNEWTPID