SLI_OPEN

SLI_OPEN谓词将指定逻辑单元 (LU) 的控制转移到 Microsoft® Windows® 逻辑单元应用程序 (LUA) 应用程序。 SLI_OPEN 在系统服务控制点 (SSCP) 和指定的 LU 之间建立会话,以及 LU-LU 会话。

以下结构描述了SLI_OPEN使用的谓词控制块 (VCB) LUA_COMMON成员。

第二个语法联合描述 SLI_OPEN 使用的 VCB 的LUA_SPECIFIC成员。 为清楚起见,将省略其他工会成员。

语法

  
struct LUA_COMMON {  
    unsigned short   lua_verb;  
    unsigned short   lua_verb_length;  
    unsigned short   lua_prim_rc;  
    unsigned long    lua_sec_rc;  
    unsigned short   lua_opcode;  
    unsigned long    lua_correlator;  
    unsigned char    lua_luname[8];  
    unsigned short   lua_extension_list_offset;  
    unsigned short   lua_cobol_offset;  
    unsigned long    lua_sid;  
    unsigned short   lua_max_length;  
    unsigned short   lua_data_length;  
    char FAR *       lua_data_ptr;  
    unsigned long    lua_post_handle;  
    struct LUA_TH    lua_th;  
    struct LUA_RH    lua_rh;  
    struct LUA_FLAG1 lua_flag1;  
    unsigned char    lua_message_type;  
    struct LUA_FLAG2 lua_flag2;   
    unsigned char    lua_resv56[7];  
    unsigned char    lua_encr_decr_option;  
};  
  
union LUA_SPECIFIC {  
    struct union SLI_OPEN open;  
};  
  
The SLI_OPEN structure contains the following nested structures and members:  
struct LUA_EXT_ENTRY {  
    unsigned char lua_routine_type;  
    unsigned char lua_module_name[9];  
    unsigned char lua_procedure_name[33];  
} ;  
  
struct SLI_OPEN {  
    unsigned char         lua_init_type;  
    unsigned char         lua_resv65;  
    unsigned short        lua_wait;  
    struct LUA_EXT_ENTRY  lua_open_extension[3];  
    unsigned char         lua_ending_delim;  
} ;  

成员

lua_verb
提供的参数。 包含谓词代码,LUA_VERB_SLI会话级别接口 (SLI) 谓词。

lua_verb_length
提供的参数。 指定 LUA VCB 的长度(以字节为单位)。 它必须包含要发出的谓词记录的长度。

lua_prim_rc
由 LUA 在谓词完成时设置的主要返回代码。 有效的返回代码因发出的 LUA 谓词而异。

lua_sec_rc
由 LUA 在谓词完成时设置的辅助返回代码。 有效的返回代码因发出的 LUA 谓词而异。

lua_opcode
提供的参数。 包含 LUA 命令代码 (要发出的谓词操作代码) ,LUA_OPCODE_SLI_OPEN。

lua_correlator
提供的参数。 包含用户提供的值,该值将谓词与其他用户提供的信息链接在一起。 LUA 不使用或更改此信息。 此参数是可选的。

lua_luname
提供的参数。 指定 Windows LUA 会话使用的本地 LU 的 ASCII 名称。

SLI_OPEN需要此参数。

此参数长度为 8 个字节,如果名称短于 8 个字符,则用空格 (0x20) 在右侧填充。

lua_extension_list_offset
提供的参数。 指定从 VCB 开头到用户提供的动态链接库扩展列表 (DLL) 的偏移量。 除非没有扩展列表,否则该值必须是单词边界的开头。 在这种情况下,值必须设置为零。

如果SLI_OPEN未使用此选项,则此成员应设置为零。

lua_cobol_offset
MICROSOFT® Host Integration Server 中的 LUA 未使用,应为零。

lua_sid
返回的参数。 指定会话标识符。

lua_max_length
SLI_OPEN不使用,应设置为零。

lua_data_length
提供的参数。 指定要发送的数据的实际长度。

lua_data_ptr
指向应用程序提供的缓冲区的指针,该缓冲区包含要为 SLI_OPEN发送的数据。

SNA 命令和数据都放置在此缓冲区中,它们可以采用扩展二进制编码的十进制交换代码 (EBCDIC) 格式。

发出SLI_OPEN时,此参数可以是以下参数之一:

  • 当初始化类型为辅助类型的未格式化 LOGON 消息时,SSCP 正常流的 LOGON 消息。

  • 请求/响应单元 (INITSELF 的 RU) 。 当初始化类型是 INITSELF 的辅助类型时,将提供应用程序的必要数据。

  • 对于所有其他打开类型,此字段应设置为零。

    此信息由 Windows LUA 应用程序提供。

    lua_post_handle
    提供的参数。 如果异步通知要由事件完成,则用于 Microsoft Windows Server 下。 此变量包含要发出信号的事件的句柄或窗口句柄。

    lua_th
    SLI_OPEN不使用,应设置为零。

    lua_rh
    SLI_OPEN不使用,应设置为零。

    lua_flag1
    SLI_OPEN不使用,应设置为零。

    lua_message_type
    SLI_OPEN不使用,应设置为零。

    lua_flag2
    返回的参数。 包含 LUA 返回的消息的标志。 其子参数如下所示:

    lua_flag2.async

    指示 LUA 接口谓词在设置为 1 时异步完成。

    lua_resv56
    提供的参数。 SLI_OPENRUI_INIT使用的保留字段。 有关详细信息,请参见“备注”部分。

    lua_resv56[1]

    提供的参数。 该参数必须设置为零。

    lua_resv56[2]

    提供的参数。 指示 SLI 应用程序是否可以访问配置为 3270 LU 的 LU 以及 LUA LU。 如果此参数设置为 1,则可以访问 3270 个 LU。

    lua_resv56[3]

    提供的参数。 指示是否支持不完整的读取。 如果此参数设置为 1,则支持不完整或截断的读取。 有关更多详细信息,请参阅 RUI_READ的备注。

    lua_encr_decr_option
    SLI_OPEN不使用,应设置为零。

    open
    SLI_OPEN使用的LUA_SPECIFIC的联合成员。 SLI_OPEN所需的SLI_OPEN结构中包含的组参数。

    open.lua_init_type

    提供的参数。 定义 WINDOWS LUA 接口如何初始化 LU-LU 会话。

    以下是有效值:

    LUA_INIT_TYPE_SEC_IS

    LUA_INIT_TYPE_SEC_LOG

    LUA_INIT_TYPE_PRIM

    LUA_INIT_TYPE_PRIM_SSCP

    open.lua_resv65

    保留的字段。

    open.lua_wait

    提供的参数。 表示次要重试等待时间,指示在主机发送以下任一消息后,Windows LUA 接口在重试传输 INITSELF 或 LOGON 消息之前等待的秒数:

  • 负响应和辅助返回代码为下列值之一:

    RESOURCE_NOT_AVAILABLE (0x08010000) SESSION_LIMIT_EXCEEDED (0x08050000) SESSION_SERVICE_PATH_ERROR (0x087D0000)

    请注意,如果lua_wait设置为零且发生上述情况之一,则SLI_OPEN终止并出现错误。

  • NSPE) 消息 (网络服务过程错误。

  • 一个 NOTIFY 命令,指示过程错误。

    open.lua_open_extension

    提供的参数。 包含应用程序提供的用于处理 BIND、STSN 和 CRV 命令的扩展 DLL 的列表。

    open.open_extension.lua_routine_type

    扩展例程类型。 法定值为:

    LUA_ROUTINE_TYPE_BIND

    LUA_ROUTINE_TYPE_CRV

    LUA_ROUTINE_TYPE_END (指示扩展列表) 结束

    LUA_ROUTINE_TYPE_STSN

    open.open_extension.lua_module_name

    提供的参数。 为用户提供的扩展 DLL 提供 ASCII 模块名称。 模块名称的长度最多为 8 个字符,其余字节设置为0x00。

    open.open_extension.lua_procedure_name

    提供的参数。 在 ASCII 中为用户提供的扩展 DLL 提供过程名称。 过程名称的长度最多为 32 个字符,其余字节设置为0x00。

    open.lua_ending_delim

    扩展列表分隔符。

返回代码

LUA_OK
主要返回代码;谓词已成功执行。

LUA_SEC_OK

辅助返回代码;不存在LUA_OK的其他信息。

LUA_PARAMETER_CHECK
主要返回代码;由于参数错误,谓词未执行。

LUA_INVALID_LUNAME

辅助返回代码;指定 了无效lua_luname 名称。

LUA_BAD_SESSION_ID

辅助返回代码;在 VCB 中为 lua_sid 指定了无效值。

LUA_BAD_DATA_PTR

辅助返回代码; lua_data_ptr 参数不包含有效的指针,或者未指向读/写段,并且需要提供的数据。

LUA_DATA_SEGMENT_LENGTH_ERROR

辅助返回代码;发生以下情况之一:

  • SLI_RECEIVESLI_SEND 提供的数据段不是所需的读/写数据段。

  • 为SLI_RECEIVE提供的数据段不如lua_max_length中提供的数据段。

  • 为SLI_SEND提供的数据段长度不如 lua_data_length 中提供的数据段。

    LUA_RESERVED_FIELD_NOT_ZERO

    辅助返回代码;刚发出的谓词的保留参数未设置为零。

    LUA_INVALID_POST_HANDLE

    辅助返回代码;对于使用事件作为异步过帐方法的 Microsoft Windows 操作系统,Windows LUA VCB 不包含有效的事件句柄。

    LUA_VERB_LENGTH_INVALID

    辅助返回代码;LUA 谓词发出时,使用 LUA 意外 lua_verb_length 值。

    LUA_INVALID_OPEN_INIT_TYPE

    辅助返回代码;SLI_OPEN中包含的lua_init_type中的 值无效。

    LUA_INVALID_OPEN_DATA

    辅助返回代码;如果数据的缓冲区没有有效的 INITSELF 命令,则发出的SLI_OPEN lua_init_type设置为LUA_INIT_TYPE_SEC_IS。

    LUA_INVALID_OPEN_ROUTINE_TYPE

    辅助返回代码;扩展例程SLI_OPEN列表的lua_open_routine_type无效。

    LUA_DATA_LENGTH_ERROR

    辅助返回代码;应用程序未提供所发出谓词所需的用户提供的数据。 请注意,当为 SNA LUSTAT 命令发出 SLI_SEND 时,状态 (四个字节) 是必需的,并且当通过辅助初始化发出 SLI_OPEN 时,需要数据。

    LUA_INVALID_SLI_ENCR_OPTION

    辅助返回代码; lua_encr_decr_option 参数在 SLI_OPEN 中设置为 128,加密/解密处理选项不支持该参数。

    LUA_STATE_CHECK
    主要返回代码;谓词未执行,因为它是在无效状态下发出的。

    LUA_NOT_ACTIVE

    辅助返回代码;发出 LUA 谓词时,LUA 在 Microsoft Host Integration Server 或 SNA 服务器中未处于活动状态。

    LUA_UNEXPECTED_SNA_SEQUENCE

    辅助返回代码;处理 SLI_OPEN 时,主机收到了意外数据或命令。

    LUA_NEG_RSP_FROM_BIND_ROUTINE

    辅助返回代码;用户提供的SLI_BIND例程对 BIND 做出负面响应。 SLI_OPEN 未成功结束。

    LUA_NEG_RSP_FROM_STSN_ROUTINE

    辅助返回代码;用户提供的 SLI STSN 例程对 STSN 做出负面响应。 SLI_OPEN 未成功结束。

    LUA_PROCEDURE_ERROR

    辅助返回代码;收到 NSPE 或 NOTIFY 消息时指示主机过程错误。 不使用重试选项时,返回代码将发布到 SLI_OPEN 。 若要使用重置选项, 请将lua_wait 设置为非零值。 将重试 LOGON 或 INITSELF 命令,直到主机准备就绪或发出 SLI_CLOSE为止。

    LUA_RECEIVED_UNBIND

    辅助返回代码;当会话处于活动状态时,PLU (主逻辑单元) 向 LUA 接口发送了 SNA UNBIND 命令。 因此,会话已停止。

    LUA_SLI_LOGIC_ERROR

    辅助返回代码;LUA 接口在逻辑中发现内部错误。

    LUA_NO_RUI_SESSION

    辅助返回代码;尚未为发出的 LUA 谓词初始化会话,或者在初始化会话之前发出 除 SLI_OPEN 以外的某个谓词。

    LUA_RESOURCE_NOT_AVAILABLE

    辅助返回代码;请求单元中指定的逻辑单元、物理单元、链接或链接站不可用。 除非使用重试选项,否则当资源不可用时,此返回代码将发布到 SLI_OPEN

    若要使用重试选项, 请将lua_wait 设置为非零值。 将重试 LOGON 或 INITSELF 命令,直到主机准备就绪或发出 SLI_CLOSE为止。

    LUA_SESSION_LIMIT_EXCEEDED

    辅助返回代码;请求的会话未激活,因为 NAU 已达到其会话限制。 此 SNA 感知代码适用于以下请求:BID、CINIT、INIT 和 ACTDRM。

    除非使用 RETRY 选项,否则当 NAU 达到限制时,代码将发布到 SLI_OPEN

    若要使用重置选项, 请将lua_wait 设置为非零值。 将重试 LOGON 或 INITSELF 命令,直到主机准备就绪或发出 SLI_CLOSE为止。

    LUA_LU_COMPONENT_DISCONNECTED

    辅助返回代码;LU 组件不可用,因为它未正确连接。 确保电源已打开。

    LUA_NEGOTIABLE_BIND_ERROR

    辅助返回代码;接收了可转让 BIND,仅当用户提供的SLI_BIND例程与SLI_OPEN一起提供时,SLI 才允许该 绑定

    LUA_BIND_FM_PROFILE_ERROR

    辅助返回代码;LUA 接口仅支持文件管理标头配置文件 3 和 4。 在 BIND 上找到了 3 或 4 以外的文件管理配置文件。

    LUA_BIND_TS_PROFILE_ERROR

    辅助返回代码;LUA 接口仅支持传输服务 (TS) 配置文件 3 和 4。 在 BIND 上发现了 3 或 4 以外的 TS 配置文件。

    LUA_BIND_LU_TYPE_ERROR

    辅助返回代码;LUA 仅支持 LU 0、LU 1、LU 2 和 LU 3。 找到了 0、1、2 或 3 以外的 LU。

    LUA_SSCP_LU_SESSION_NOT_ACTIVE

    辅助返回代码;所需的 SSCP-LU 处于非活动状态。 特定感知代码信息以字节 2 和 3 为单位。 有效设置包括0x0000、0x0001、0x0002、0x0003和0x0004。

    LUA_SESSION_SERVICES_PATH_ERROR

    辅助返回代码;无法将会话服务请求重新路由到 SSCP-SSCP 会话路径。 以字节 2 和 3 为单位的特定感知代码信息提供了有关请求无法重新路由的原因的详细信息。

    LUA_UNSUCCESSFUL
    主返回代码;提供的谓词记录有效,但谓词未成功完成。

    LUA_VERB_RECORD_SPANS_SEGMENTS

    辅助返回代码;LUA VCB 长度参数加上段偏移量超出段末尾。

    LUA_SESSION_ALREADY_OPEN

    辅助返回代码;会话已针对 SLI_OPEN 中指定的 LU 名称打开。

    LUA_INVALID_PROCESS

    辅助返回代码;发出 LUA 谓词的会话不可用,因为另一个进程拥有该会话。

    LUA_LINK_NOT_STARTED

    辅助返回代码;在会话初始化期间,LUA 无法激活数据链接。

    LUA_INVALID_ADAPTER

    辅助返回代码;数据链接控件的配置 (DLC) 出错或配置文件损坏。

    LUA_ENCR_DECR_LOAD_ERROR

    辅助返回代码;尝试加载用户提供的加密或解密动态链接模块时,从 OS/2 DosLoadModule 函数收到意外的返回代码。

    LUA_ENCR_DECR_PROC_ERROR

    辅助返回代码;尝试在用户提供的加密或解密动态链接模块中获取过程地址时,从 OS/2 DosGetProcAddr 函数收到意外的返回代码。

    LUA_NEG_NOTIFY_RSP

    辅助返回代码;SSCP 对发出的 NOTIFY 请求做出负面响应,该请求指示辅助 LU 能够执行会话。 接收请求的半会话组件理解并支持请求,但无法执行该请求。

    LUA_LU_INOPERATIVE

    辅助返回代码;SLI 尝试停止会话时发生严重错误。 在从主机收到激活的逻辑单元 (ACTLU) 之前,此 LU 不可用于任何 LUA 请求。

    LUA_CANCELED
    主返回代码;辅助返回代码提供取消命令的原因。

    LUA_TERMINATED

    辅助返回代码;当谓词挂起时,会话已终止。 谓词进程已取消。

    LUA_IN_PROGRESS
    主返回代码;已收到异步命令,但未完成。

    LUA_COMM_SUBSYSTEM_ABENDED
    主要返回代码;指示以下状况之一:

  • 此对话使用的节点遇到了 ABEND。

  • (LAN 错误) ,事务程序 (TP) 与物理单元 (PU) 2.1 节点之间的连接已断开。

  • TP 计算机上的 SnaBase 遇到 ABEND。

    LUA_COMM_SUBSYSTEM_NOT_LOADED
    主要返回代码;处理谓词时无法加载或终止某个必需的组件。 因此无法通信。 请联系系统管理员以执行纠正措施。

    LUA_INVALID_VERB_SEGMENT
    主要返回代码;VCB 超出了数据段的末尾。

    LUA_UNEXPECTED_DOS_ERROR
    主返回代码;发出操作系统调用后,收到意外的操作系统返回代码,并在辅助返回代码中指定。

    LUA_STACK_TOO_SMALL
    主要返回代码;应用程序的堆栈大小太小,无法执行谓词。 增加应用程序的堆栈大小。

    LUA_INVALID_VERB
    主返回代码;谓词代码或操作代码或两者都无效。 谓词未执行。

注解

对于每个 SLI_OPEN,Windows LUA 接口:

另请参阅

RUI_INIT
SLI_RECEIVE
SLI_SEND