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时,此参数可以是下列参数之一:

  • 当初始化类型为辅助类型时,SSCP 正常流的 LOGON 消息具有未格式化的 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]

    提供的参数。 指示除了 LUA LU 之外,SLI 应用程序是否可以访问配置为 3270 RU 的 LU。 如果此参数设置为 1,可以访问 3270 RU。

    lua_resv56[3]

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

    lua_encr_decr_option
    SLI_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 模块名称。 模块名称最多可以包含八个字符,其余字节设置为0x00。

    open.open_extension.lua_procedure_name

    提供的参数。 为用户提供的扩展 DLL 提供 ASCII 中的过程名称。 过程名称最多可以包含 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 Server 中未处于活动状态。

    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 设置为非零的值。 在主机准备就绪或 发出SLI_CLOSE之前,将重试 LOGON 或 INITSELF 命令。

    LUA_RECEIVED_UNBIND

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

    LUA_SLI_LOGIC_ERROR

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

    LUA_NO_RUI_SESSION

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

    LUA_RESOURCE_NOT_AVAILABLE

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

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

    LUA_SESSION_LIMIT_EXCEEDED

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

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

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

    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。

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

  • 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