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 之前发出以下调用:

  • Set_Mode_Name

  • Set_Partner_LU_Name

  • Set_TP_Name

    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