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 一般流程的登入訊息。

  • 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

    指出如果設定為1,則 LUA 介面動詞命令會以非同步方式完成。

    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 或登入訊息之前的等候秒數:

  • 負回應和次要傳回碼是下列其中一項:

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

    請注意,如果 lua_wait 設定為零,且發生上述其中一個錯誤,SLI_OPEN 就會終止。

  • 網路服務程式錯誤 (NSPE) 訊息。

  • 指出程式錯誤的 [通知] 命令。

    open.lua_open_extension

    提供的參數。 包含應用程式提供的擴充 Dll 清單,可處理 BIND、STSN 和 CRV 命令。

    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_OPENlua_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

    次要傳回碼;在SLI_OPEN中, lua_encr_decr_option參數設定為128,但加密/解密處理選項不支援此參數。

    LUA_STATE_CHECK
    主要傳回碼;因為發出的動作處於無效狀態,所以無法執行。

    LUA_NOT_ACTIVE

    次要傳回碼;當已發出 lua 動詞時,在 Microsoft Host Integration Server 或 SNA Server 內無法使用 lua。

    LUA_UNEXPECTED_SNA_SEQUENCE

    次要傳回碼;處理 SLI_OPEN 時,從主機收到未預期的資料或命令。

    LUA_NEG_RSP_FROM_BIND_ROUTINE

    次要傳回碼;使用者提供的 SLI_BIND 常式對系結的回應會有負面影響。 SLI_OPEN 結束失敗。

    LUA_NEG_RSP_FROM_STSN_ROUTINE

    次要傳回碼;使用者提供的 SLI STSN 常式對 STSN 的回應會有負面影響。 SLI_OPEN 結束失敗。

    LUA_PROCEDURE_ERROR

    次要傳回碼;NSPE 或通知訊息的接收會指出主機程式錯誤。 當未使用 [重試] 選項時,會將傳回碼張貼至 SLI_OPEN 。 若要使用 [重設] 選項,請將 lua_wait 設定為零以外的值。 登入或 INITSELF 命令將會重試,直到主機就緒或您發出 SLI_CLOSE為止。

    LUA_RECEIVED_UNBIND

    次要傳回碼;當會話為作用中時,主要邏輯單元 (PLU) 傳送 SNA 解除系結命令給 LUA 介面。 因此,會話已停止。

    LUA_SLI_LOGIC_ERROR

    次要傳回碼;LUA 介面在邏輯中發現內部錯誤。

    LUA_NO_RUI_SESSION

    次要傳回碼;未針對發出的 LUA 動詞初始化任何會話,或在初始化會話之前發出 SLI_OPEN 以外的某些動詞。

    LUA_RESOURCE_NOT_AVAILABLE

    次要傳回碼;要求單位中指定的邏輯單元、實體單位、連結或連結站無法使用。 當資源無法使用時,除非您使用 [重試] 選項,否則會將此傳回碼張貼至 SLI_OPEN

    若要使用 [重試] 選項,請將 lua_wait 設定為零以外的值。 登入或 INITSELF 命令將會重試,直到主機就緒或您發出 SLI_CLOSE為止。

    LUA_SESSION_LIMIT_EXCEEDED

    次要傳回碼;要求的會話未啟動,因為 NAU 為其會話限制。 此 SNA 感知程式碼適用于下列要求:投標、CINIT、INIT 和 ACTDRM。

    除非您使用 [重試] 選項,否則 NAU 會將程式碼張貼至 SLI_OPEN 的限制。

    若要使用 [重設] 選項,請將 lua_wait 設定為零以外的值。 登入或 INITSELF 命令將會重試,直到主機就緒或您發出 SLI_CLOSE為止。

    LUA_LU_COMPONENT_DISCONNECTED

    次要傳回碼;LU 元件無法使用,因為它未正確連接。 請確定電源已開啟。

    LUA_NEGOTIABLE_BIND_ERROR

    次要傳回碼;已收到可流通系結,只有在 SLI_OPEN提供使用者提供的 SLI_BIND 常式時,才會允許該系結。

    LUA_BIND_FM_PROFILE_ERROR

    次要傳回碼;LUA 介面僅支援檔案管理標頭設定檔3和4。 在系結上找到3或4以外的檔案管理設定檔。

    LUA_BIND_TS_PROFILE_ERROR

    次要傳回碼;LUA 介面僅支援 (TS) 設定檔3和4的傳輸服務。 在系結上找到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 length 參數加上區段位移超出區段結尾。

    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 對發出的通知要求有負面的回應,指出次要 LU 能夠進行會話。 接收要求的半會話元件已瞭解並支援要求,但無法執行。

    LUA_LU_INOPERATIVE

    次要傳回碼;當 SLI 嘗試停止會話時發生嚴重錯誤。 在從主機接收 (ACTLU) 的啟動邏輯單元之前,任何 LUA 要求都無法使用此 LU。

    LUA_CANCELED
    主要傳回碼;次要傳回碼會提供取消命令的原因。

    LUA_TERMINATED

    次要傳回碼;當動詞暫止時,會話已結束。 已取消動詞進程。

    LUA_IN_PROGRESS
    主要傳回碼;已收到非同步命令,但是未完成。

    LUA_COMM_SUBSYSTEM_ABENDED
    主要傳回碼;表示下列其中一個條件:

  • 此交談使用的節點發生 ABEND。

  • 交易程式 (TP) 與實體單位 (PU) 2.1 節點之間的連線已中斷 () 的 LAN 錯誤。

  • TPs 電腦上的 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