SLI_RECEIVE

SLI_RECEIVE動詞會接收回應、SNA 命令和資料到 Microsoft® Windows® 邏輯單元應用程式, (LUA) 應用程式緩衝區。 SLI_RECEIVE 也會提供 Windows LUA 應用程式的會話目前狀態。

下列結構描述SLI_RECEIVE所使用的動詞控制項區塊 (VCB) LUA_COMMON成員。

語法

  
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;  
};  

成員

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_RECEIVE。

lua_correlator
提供的 參數。 包含使用者提供的值,可連結動詞與其他使用者提供的資訊。 LUA 不會使用或變更此資訊。 這是選擇性參數。

lua_luname
提供的 參數。 指定 Windows LUA 會話所使用的本機 LU 的 ASCII 名稱。

SLI_RECEIVE只有在lua_sid為零時,才需要此參數。

此參數長度為八個位元組,如果名稱小於八個字元,則以空格填補右邊 (0x20) 。

lua_extension_list_offset
SLI_RECEIVE未 使用,且 應該設定為零。

lua_cobol_offset
LUA 在 Microsoft® Host Integration Server 或 SNA Server 中使用,而且應該為零。

lua_sid
提供和傳回的參數。 指定會話識別碼,並由 SLI_OPENRUI_INIT傳回。 其他動詞會使用此參數來識別用於命令的會話。 如果其他動詞使用 lua_luname 參數來識別會話,請將 lua_sid 參數設定為零。

lua_max_length
指定RUI_READ和SLI_RECEIVE的接收緩衝區長度。

lua_data_length
傳回的參數。 指定接收緩衝區中傳回的資料長度。

lua_data_ptr
SLI_RECEIVE 動詞接收資料的應用程式提供緩衝區指標。 SNA 命令和資料都會放在此緩衝區中,而且它們可以是擴充二進位編碼十進位交換程式碼, (EBCDIC) 格式。

發出SLI_RECEIVE時,此參數會指向從主機接收資料的位置。

lua_post_handle
提供的 參數。 如果事件要完成非同步通知,則用於 Microsoft® Windows Server。 此變數包含要發出訊號的事件控制碼或視窗控制碼。

lua_th
傳回的參數。 包含所接收訊息的 SNA 傳輸標頭 (TH) 。 讀取和 bid 函式會傳回各種子參數。 其子參數如下所示:

lua_th.flags_fid

格式識別類型 2,四個位。

lua_th.flags_mpf

區隔對應欄位,兩個位。 定義資料區段的類型。 下列是有效值:

0x0 [中間區段]0x04 [最後一個區0x0C] 0x08 [僅限第一個區段] 區段

lua_th.flags_odai

原始位址欄位-目的地位址欄位 (OAF–DAF) 指派器指標,一位。

lua_th.flags_efi

加速流程指示器,一位。

lua_th.daf

目的地位址欄位 (DAF) ,不帶正負號的字元。

lua_th.oaf

原始位址欄位 (OAF) ,不帶正負號的字元。

lua_th.snf

序號欄位,不帶正負號的 char[2]。

lua_rh
傳回的參數。 包含傳送或接收之訊息的 SNA 要求/回應標頭 (RH) 。 其子參數如下所示:

lua_rh.rri

要求回應指標,一位。

lua_rh.ruc

要求/回應單位 (RU) 類別,兩個位。 下列是有效值:

LUA_RH_FMD (0x00 0x00 ) FM資料區段LUA_RH_NC () 0x20 LUA_RH_DFC 0x40 (LUA_RH_DFC) ) 資料流程控制LUA_RH_SC (0x60) 會話控制項0x60

lua_rh.fi

格式化指標,一位。

lua_rh.sdi

包含指標的感知資料,一位。

lua_rh.bci

開始鏈結指標,一位。

lua_rh.eci

結束鏈結指標,一位。

lua_rh.dr1i

明確回應 1 指標,一位。

lua_rh.dr2i

明確回應 2 指標,一位。

lua_rh.ri

要求) 的例外狀況回應指標 (,或回應類型指標 (回應) ,一位。

lua_rh.qri

已排入佇列的回應指標,一個位。

lua_rh.pi

步調指標,一個位。

lua_rh.bbi

開始括弧指標,一個位。

lua_rh.ebi

端括弧指標,一個位。

lua_rh.cdi

變更方向指示器,一位。

lua_rh.csi

程式碼選取指標,一位。

lua_rh.edi

加密的資料指標,一個位。

lua_rh.pdi

填補的資料指標,一個位。

lua_flag1
提供的參數。 包含資料結構,其中包含應用程式所提供之訊息的旗標。 此參數由RUI_BIDRUI_READRUI_WRITE、SLI_BIDSLI_RECEIVESLI_SEND使用。 其子參數如下所示:

lua_flag1.bid_enable

啟用標號指標,一位。

lua_flag1.close_abend

關閉立即指標,一個位。

lua_flag1.nowait

沒有等候資料旗標,一個位。

lua_flag1.sscp_exp

系統服務控制點 (SSCP) 加速流程,一位。

lua_flag1.sscp_norm

SSCP 一般流程,一個位。

lua_flag1.lu_exp

LU 加速流程,一位。

lua_flag1.lu_norm

LU 一般流程,一位。

lua_flag1.bid_enable 設定為 1,以重新啟用最新的 SLI_BID (相當於再次發行 SLI_BID 與) 完全相同的參數,如果您不想重新啟用 SLI_BID,請將它設定為零。 請注意,重新啟用先前 的SLI_BID 重複使用原先為其配置的 VCB,因此此 VCB 不得已釋出或修改。

將 lua_flag1.nowait 設定為 1,表示您想要SLI_RECEIVE立即傳回資料是否可供讀取,或如果您希望動詞在傳回之前等候資料,請將它設定為零。

將下列一或多個旗標設定為 1,以指出要從哪個訊息流程讀取資料:

lua_flag1.sscp_exp

lua_flag1.lu_exp

lua_flag1.sscp_norm

lua_flag1.lu_norm

如果設定多個旗標,則會傳回可用的最高優先順序資料。 優先順序 (最高的第一個) 順序為:SSCP 加速、LU 加速、SSCP 正常、LU 正常。 lua_flag2群組中的對等旗標會設定為指出讀取資料的流程。

lua_message_type
指定輸入或輸出 SNA 命令和資料的類型。 傳回的參數。 指定表示 SLI_RECEIVE的 SNA 訊息類型。 可能的值包括:

LUA_MESSAGE_TYPE_LU_DATA

LUA_MESSAGE_TYPE_SSCP_DATA

LUA_MESSAGE_TYPE_RSP

LUA_MESSAGE_TYPE_BID

LUA_MESSAGE_TYPE_BIND

LUA_MESSAGE_TYPE_BIS

LUA_MESSAGE_TYPE_CANCEL

LUA_MESSAGE_TYPE_CHASE

LUA_MESSAGE_TYPE_LUSTAT_LU

LUA_MESSAGE_TYPE_LUSTAT_SSCP

LUA_MESSAGE_TYPE_QC

LUA_MESSAGE_TYPE_QEC

LUA_MESSAGE_TYPE_RELQ

LUA_MESSAGE_TYPE_RTR

LUA_MESSAGE_TYPE_SBI

LUA_MESSAGE_TYPE_SIGNAL

LUA_MESSAGE_TYPE_STSN

SLI 會透過 LUA 介面擴充常式接收並回應 BIND 和 STSN 要求。

LU-DATA、LUSTAT_LU、LUSTAT_SSCP和SSCP_DATA不是 SNA 命令。

lua_flag2
傳回的參數。 包含 LUA 所傳回之訊息的旗標。 由RUI_BIDRUI_READRUI_WRITE、SLI_BIDSLI_RECEIVESLI_SEND傳回。 其子參數如下所示:

lua_flag2.bid_enable

指出 如果設定為 1,RUI_BID 已成功重新啟用。

lua_flag2.async

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

lua_flag2.sscp_exp

如果設定為 1,表示 SSCP 加速流程。

lua_flag2.sscp_norm

如果設定為 1,表示 SSCP 正常流程。

lua_flag2.lu_exp

如果設定為 1,表示 LU 加速流程。

lua_flag2.lu_norm

如果設定為 1,則表示 LU 一般流程。

lua_resv56
SLI_RECEIVE未使用 ,且 應設定為零。

lua_encr_decr_option
SLI_RECEIVE未使用 ,且 應設定為零。

傳回碼

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_RESERVED_FIELD_NOT_ZERO

次要傳回碼;剛發出動詞的保留參數不會設定為零。

LUA_INVALID_POST_HANDLE

次要傳回碼;對於使用事件做為非同步張貼方法的 Microsoft Windows 作業系統,Windows LUA VCB 不包含有效的事件控制碼。

LUA_BID_VERB_SEGMENT_ERROR

次要傳回碼;發行lua_flag1.bid_enable設為 1 的SLI_RECEIVE之前,會釋放具有 SLI_BID VCB 的緩衝區。

LUA_NO_PREVIOUS_BID_ENABLED

次要傳回碼; SLI_BID 未在發行 SLI_RECEIVElua_flag1.bid_enable之前發出。

LUA_BID_ALREADY_ENABLED

次要傳回碼;SLI_RECEIVE已在SLI_BID使用中時,lua_flag1.bid_enable發出。

LUA_INVALID_FLOW

次要傳回碼;發出動詞時 ,lua_flag1 流程旗標設定不正確:

  • 發出 SLI_SEND 以傳送 SNA 回應時,請只設定一 個lua_flag1 流程旗標。

  • 發出SLI_RECEIVE時,請至少設定一個lua_flag1流程旗標。

    LUA_VERB_LENGTH_INVALID

    次要傳回碼;LUA 動詞是針對 LUA 非預期的 lua_verb_length 發出。

    LUA_STATE_CHECK
    主要傳回碼;動詞未執行,因為其發行狀態無效。

    LUA_NO_SLI_SESSION

    次要傳回碼;會話未開啟或因為發出命令時 發生SLI_CLOSE 或會話失敗而關閉。

    LUA_RECEIVE_ON_FLOW_PENDING

    次要傳回碼;當此應用程式針對 SNA 流程發出另一個SLI_RECEIVE時,SLI_RECEIVE仍然未完成。

    LUA_SESSION_FAILURE
    主要傳回碼;次要傳回碼中指定的錯誤狀況會導致會話失敗。

    LUA_RUI_WRITE_FAILURE

    次要傳回碼;RUI_WRITE張貼到 SLI 時發生非預期的錯誤。

    LUA_RECEIVED_UNBIND

    次要傳回碼;PLU 主要邏輯單元 (PLU) 在會話作用中時,將 SNA UNBIND 命令傳送至 LUA 介面。 因此,會話已停止。

    LUA_SLI_LOGIC_ERROR

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

    LUA_NO_RUI_SESSION

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

    LUA_MODE_INCONSISTENCY

    次要傳回碼;目前狀態不允許執行此函式。 即使已瞭解並支援,傳送至半會話元件的要求也不會執行。 此 SNA 感知程式碼也是例外狀況要求感知程式碼。

    LUA_RECEIVER_IN_TRANSMIT_MODE

    次要傳回碼;處理正常流程資料所需的資源都無法使用,或收到一般流程要求時,未收到半雙工競爭的狀態。 結果是競爭條件。 此 SNA 感知程式碼也是例外狀況要求感知程式碼。

    LUA_LU_COMPONENT_DISCONNECTED

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

    LUA_FUNCTION_NOT_SUPPORTED

    次要傳回碼;LUA 不支援要求的函式。 控制字元、RU 參數或格式化的要求程式碼可能已指定 函式。 特定感知程式碼資訊以位元組 2 和 3 為單位。

    LUA_CHAINING_ERROR

    次要傳回碼;鏈結指標設定的順序發生錯誤。 找到接收者目前會話控制項或資料流程控制狀態的要求標頭或要求單位無效。 已防止傳遞至半會話元件。

    LUA_BRACKET

    次要傳回碼;傳送者無法強制執行會話括弧規則。 請注意,爭用和競爭條件會豁免此錯誤。 找到接收者目前會話控制項或資料流程控制狀態的要求標頭或要求單位無效。 已防止傳遞至半會話元件。

    LUA_DIRECTION

    次要傳回碼;當半雙工翻轉盤狀態NOT_RECEIVE時,收到正常流程的要求。 找到接收者目前會話控制項或資料流程控制狀態的要求標頭或要求單位無效。 已防止傳遞至半會話元件。

    LUA_DATA_TRAFFIC_QUIESCED

    次要傳回碼;資料流程控制 (DFC) 或函式管理資料 (FMD) 要求是從傳送 SHUTC 命令或 QC 命令的半會話接收,而 DFC 或 FMD 要求尚未回應 RELQ 命令。 找到接收者目前會話控制項或資料流程控制狀態的要求標頭或要求單位無效。 已防止傳遞至半會話元件。

    LUA_NO_BEGIN_BRACKET

    次要傳回碼;當收到指定 BBI=BB 的 BID 或 FMD 要求時,接收者已將正回應傳送至 BIS 命令。 找到接收之目前會話控制項或資料流程控制狀態的要求標頭或要求單位無效。 已防止傳遞至半會話元件。

    LUA_IMMEDIATE_REQUEST_MODE_ERROR

    次要傳回碼;要求違反立即要求模式通訊協定。 找到接收之目前會話控制項或資料流程控制狀態的標頭要求或要求單位無效。 已防止傳遞至半會話元件。

    LUA_QUEUED_RESPONSE_ERROR

    次要傳回碼;要求違反佇列回應通訊協定。 找到接收之目前會話控制項或資料流程控制狀態的標頭要求或要求單位無效。 已防止傳遞至半會話元件。

    LUA_ERP_SYNC_EVENT_ERROR

    次要傳回碼;發生 ERP 同步事件通訊協定的違規。 找到接收之目前會話控制項或資料流程控制狀態的標頭要求或要求單位無效。 已防止傳遞至半會話元件。

    LUA_RSP_CORRELATION_ERROR

    次要傳回碼;已傳送的回應未對應至先前收到的要求,或收到未對應至先前傳送要求的回應。

    LUA_RSP_PROTOCOL_ERROR

    次要傳回碼;在從主要半會話收到的回應中找到回應通訊協定違規。

    LUA_BB_NOT_ALLOWED

    次要傳回碼;未正確指定開始括弧指標。 先前選擇的 BIND 選項,或要求標頭參數值違反架構規則。 已防止傳遞至半會話元件。 錯誤不相依于目前的會話狀態。 傳送者無法強制執行會話規則可能會導致錯誤。

    允許LUA_EB_NOT

    次要傳回碼;未正確指定尾括弧指標。 先前選擇的 BIND 選項,或要求標頭參數值違反架構規則。 已防止傳遞至半會話元件。 這些錯誤不相依于目前的會話狀態。 傳送者無法強制執行會話規則可能會導致錯誤。

    LUA_EXCEPTION_RSP_NOT_ALLOWED

    次要傳回碼;不允許例外狀況回應時,會要求一個。 要求標頭參數值違反先前選擇的 BIND 選項或架構規則。 已防止傳遞至半會話元件。 這些錯誤不相依于目前的會話狀態。 傳送者無法強制執行會話規則可能會導致錯誤。

    LUA_DEFINITE_RSP_NOT_ALLOWED

    次要傳回碼;不允許明確回應時,即會要求一個回應。 要求標頭參數值違反先前選擇的 BIND 選項或架構規則。 已防止傳遞至半會話元件。 這些錯誤不相依于目前的會話狀態。 傳送者無法強制執行會話規則可能會導致錯誤。

    LUA_CD_NOT_ALLOWED

    次要傳回碼;變更方向指標未正確指定。 要求標頭參數值違反先前選擇的 BIND 選項或架構規則。 已防止傳遞至半會話元件。 這些錯誤不相依于目前的會話狀態。 傳送者無法強制執行會話規則可能會導致錯誤。

    LUA_NO_RESPONSE_NOT_ALLOWED

    次要傳回碼;EXR 以外的要求包含 NO RESPONSE。 要求標頭參數值違反先前選擇的 BIND 選項或架構規則。 已防止傳遞至半會話元件。 這些錯誤不相依于目前的會話狀態。 傳送者無法強制執行會話規則可能會導致錯誤。

    LUA_CHAINING_NOT_SUPPORTED

    次要傳回碼;鏈結指標未正確指定。 要求標頭參數值違反先前選擇的 BIND 選項或架構規則。 已防止傳遞至半會話元件。 這些錯誤不相依于目前的會話狀態。 傳送者無法強制執行會話規則可能會導致錯誤。

    LUA_BRACKETS_NOT_SUPPORTED

    次要傳回碼;括弧指標未正確指定。 要求標頭參數值違反先前選擇的 BIND 選項或架構規則。 已防止傳遞至半會話元件。 這些錯誤不相依于目前的會話狀態。 傳送者無法強制執行會話規則可能會導致錯誤。

    LUA_CD_NOT_SUPPORTED

    次要傳回碼;已設定變更方向指標,但 LUA 不支援這種情況的變更方向。 要求標頭參數值違反先前選擇的 BIND 選項或架構規則。 已防止傳遞至半會話元件。 這些錯誤不相依于目前的會話狀態。 傳送者無法強制執行會話規則可能會導致錯誤。

    LUA_INCORRECT_USE_OF_FI

    次要傳回碼;格式指標未正確指定。 要求標頭參數值違反先前選擇的 BIND 選項或架構規則。 已防止傳遞至半會話元件。 這些錯誤不相依于目前的會話狀態。 傳送者無法強制執行會話規則可能會導致錯誤。

    LUA_ALTERNATE_CODE_NOT_SUPPORTED

    次要傳回碼;已設定程式碼選取指標,但 LUA 不支援此會話的程式碼選取。 要求標頭參數值違反先前選擇的 BIND 選項或架構規則。 已防止傳遞至半會話元件。 這些錯誤不相依于目前的會話狀態。 傳送者無法強制執行會話規則可能會導致錯誤。

    LUA_INCORRECT_RU_CATEGORY

    次要傳回碼;未正確指定要求單位類別指標。 要求標頭參數值違反先前選擇的 BIND 選項或架構規則。 已防止傳遞至半會話元件。 這些錯誤不相依于目前的會話狀態。 傳送者無法強制執行會話規則可能會導致錯誤。

    LUA_INCORRECT_REQUEST_CODE

    次要傳回碼;未正確指定要求碼。 要求標頭參數值違反先前選擇的 BIND 選項或架構規則。 已防止傳遞至半會話元件。 這些錯誤不相依于目前的會話狀態。 傳送者無法強制執行會話規則可能會導致錯誤。

    LUA_INCORRECT_SPEC_OF_SDI_RTI

    次要傳回碼;未在回應上正確指定 SDI 和 RTI。 要求標頭參數值違反先前選擇的 BIND 選項或架構規則。 已防止傳遞至半會話元件。 這些錯誤不相依于目前的會話狀態。 傳送者無法強制執行會話規則可能會導致錯誤。

    LUA_INCORRECT_DR1I_DR2I_ERI

    次要傳回碼;DR1I、DR2I 和 ERI 未正確指定。 要求標頭參數值違反先前選擇的 BIND 選項或架構規則。 已防止傳遞至半會話元件。 這些錯誤不相依于目前的會話狀態。 傳送者無法強制執行會話規則可能會導致錯誤。

    LUA_INCORRECT_USE_OF_QRI

    次要傳回碼;未正確指定佇列回應指標。 要求標頭參數值違反先前選擇的 BIND 選項或架構規則。 已防止傳遞至半會話元件。 這些錯誤不相依于目前的會話狀態。 傳送者無法強制執行會話規則可能會導致錯誤。

    LUA_INCORRECT_USE_OF_EDI

    次要傳回碼;未正確指定 EDI。 要求標頭參數值違反先前選擇的 BIND 選項或架構規則。 已防止傳遞至半會話元件。 這些錯誤不相依于目前的會話狀態。 傳送者無法強制執行會話規則可能會導致錯誤。

    LUA_INCORRECT_USE_OF_PDI

    次要傳回碼;未正確指定 PDI。 要求標頭參數值違反先前選擇的 BIND 選項或架構規則。 已防止傳遞至半會話元件。 這些錯誤不相依于目前的會話狀態。 傳送者無法強制執行會話規則可能會導致錯誤。

    LUA_UNSUCCESSFUL
    主要傳回碼;提供的動詞記錄有效,但動詞未順利完成。

    LUA_DATA_TRUNCATED

    次要傳回碼;因為收到的資料超過 lua_max_length中指定的緩衝區長度,所以資料遭到截斷。

    LUA_DATA_SEGMENT_LENGTH_ERROR

    次要傳回碼;發生下列其中一項:

  • SLI_RECEIVESLI_SEND所提供的資料區段並非視需要讀取/寫入資料區段。

  • SLI_RECEIVE所提供的資料區段,只要lua_max_length中提供的資料區段就不一樣。

  • SLI_SEND所提供的資料區段,只要lua_data_length中提供的資料區段就不一樣。

    LUA_NO_DATA

    次要傳回碼; 當SLI_RECEIVE 未發出等候參數時,沒有資料可供讀取。

    LUA_VERB_RECORD_SPANS_SEGMENTS

    次要傳回碼;LUA VCB 長度參數加上區段位移超出線段結尾。

    LUA_NOT_ACTIVE

    次要傳回碼;LUA 在發出 LUA 動詞時,在 Microsoft Host Integration Server 或 SNA Server 內未使用。

    LUA_NOT_READY

    次要傳回碼;下列其中一項導致 SLI 會話暫時暫停:

  • 收到 SNA UNBIND 類型0x02命令,這表示即將推出新的 BIND。 如果在開始SLI_OPEN完成後收到 UNBIND 類型 0x02 ,會話會暫停,直到收到 BIND、選擇性 CRV 和 STSN,以及收到 SDT 流程為止。 這些常式會重新進入,因為它們必須再次呼叫。 會話會在 SLI 處理 SDT 命令之後繼續。 如果在SLI_OPEN仍在處理時收到 UNBIND 類型 0x02 ,則主要傳回碼會LUA_SESSION_FAILURE,而不是LUA_STATUS。

  • SNA CLEAR 的收據導致暫停。 收到 SNA SDT 會導致會話繼續。

    LUA_SLI_LOGIC_ERROR

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

    LUA_INVALID_PROCESS

    次要傳回碼;發出 LUA 動詞動詞的會話無法使用,因為另一個 OS/2 進程擁有會話。

    LUA_LU_INOPERATIVE

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

    LUA_RECEIVE_CORRELATION_TABLE_FULL

    次要傳回碼;會話接收要求之流程的相互關聯資料表已達到其容量。

    LUA_NEGATIVE_RESPONSE
    主要傳回碼;LUA 會傳送負回應給從主要邏輯單元接收的訊息, (PLU) ,因為訊息中發現錯誤,或應用程式對鏈結結束抵達的鏈結回應負數。

    LUA_MODE_INCONSISTENCY

    次要傳回碼;目前狀態不允許執行此函式。 即使已瞭解並支援,傳送至半會話元件的要求也不會執行。 此 SNA 感知程式碼也是例外狀況要求感知程式碼。

    LUA_FUNCTION_NOT_SUPPORTED

    次要傳回碼;LUA 不支援要求的函式。 控制字元、RU 參數或格式化的要求程式碼可能已指定 函式。 特定感知程式碼資訊以位元組 2 和 3 為單位。

    LUA_DATA_TRAFFIC_RESET

    次要傳回碼;作用中會話的半會話,但具有非作用中資料流量的一般流量 DFC 或 FMD 要求。 找到接收者目前會話控制項或資料流程控制狀態的要求標頭或要求單位無效。 已防止傳遞至半會話元件。

    LUA_DATA_TRAFFIC_NOT_RESET

    次要傳回碼;當資料流量狀態未重設時,已收到會話控制要求。 找到接收之目前會話控制項或資料流程控制狀態的要求標頭或要求單位無效。 已防止傳遞至半會話元件。

    LUA_SC_PROTOCOL_VIOLATION

    次要傳回碼;發生 SC 通訊協定違規。 只有在 SC 要求之後才允許的要求 (,以及成功交換該要求的正面回應,) 在必要的交換之前收到。 感知資料的位元組 4 包含要求碼。 此意義程式碼沒有任何使用者資料存在。 找到接收之目前會話控制項或資料流程控制狀態的標頭要求或要求單位無效。 已防止傳遞至半會話元件。

    LUA_INVALID_SC_OR_NC_RH

    次要傳回碼;SC 或 NC 要求的 RH 無效。

    LUA_PACING_NOT_SUPPORTED

    次要傳回碼;當接收半會話或界限函式半會話不支援步調時,要求會包含步調指標。 先前選擇的 BIND 選項,或要求標頭參數值違反架構規則。 已防止傳遞至半會話元件。 錯誤不相依于目前的會話狀態。 傳送者無法強制執行會話規則可能會導致錯誤。

    LUA_NAU_INOPERATIVE

    次要傳回碼;網路可定址單位無法處理回應或要求。 由於下列其中一個原因,無法傳遞至接收者:

  • 路徑資訊單位錯誤

  • 路徑中斷

  • 啟用的要求序列無效

    如果在使用中的會話期間收到路徑錯誤,這通常表示會話夥伴不再有有效的路徑。

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

    LUA_PURGED

    次要傳回碼; SLI_PURGE 已發出並取消 SLI_RECEIVE

    LUA_NO_SLI_SESSION

    次要傳回碼;會話未開啟或因為發出命令時 發生SLI_CLOSE 或會話失敗而關閉。

    LUA_CANCEL_COMMAND_RECEIVED

    次要傳回碼;主機已傳送 SNA CANCEL 命令,以取消目前由 SLI_RECEIVE接收的資料鏈結。

    LUA_TERMINATED

    次要傳回碼;當動詞擱置時,會話已終止。 動詞程式已取消。

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

    LUA_STATUS
    主要傳回碼;次要傳回碼包含應用程式的 SLI 狀態資訊。

    LUA_READY

    次要傳回碼;在 [尚未就緒] 狀態之後,會發出此狀態來通知您 SLI 已準備好處理命令。

    LUA_NOT_READY

    次要傳回碼;SLI 會話暫時暫停,原因如下:

  • 收到 SNA UNBIND 類型0x02命令,這表示即將推出新的 BIND。 如果在開始SLI_OPEN完成後收到 UNBIND 類型 0x02 ,會話會暫停,直到收到 BIND、選擇性 CRV 和 STSN,以及收到 SDT 流程為止。 這些常式會重新進入,因為它們必須再次呼叫。 會話會在 SLI 處理 SDT 命令之後繼續。 如果在SLI_OPEN仍在處理時收到 UNBIND 類型 0x02 ,則主要傳回碼為會話失敗,而不是狀態。

  • SNA CLEAR 的收據導致暫停。 收到 SNA SDT 會導致會話繼續。

    LUA_INIT_COMPLETE

    次要傳回碼;LUA 介面會在 處理SLI_OPEN 時初始化會話。 發出lua_open_type_prim_sscp SLI_OPEN的 LUA 應用程式會在SLI_RECEIVESLI_BID上收到此狀態。

    LUA_SESSION_END_REQUESTED

    次要傳回碼;LUA 介面收到來自主機的 SNA SHUTD,這表示主機已準備好關閉會話。

    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_RECEIVE 接收來自主機的回應、SNA 命令和要求單位資料。 SLI_RECEIVE 也會提供 Windows LUA 應用程式的會話狀態。 必須先完成SLI_OPEN要求,才能發出SLI_RECEIVE。 不過,如果SLI_OPEN lua_init_type設定為LUA_INIT_TYPE_PRIM_SSCP,SLI_OPEN傳回IN_PROGRESS時,就可以發出透過 SSCP 一般流程的SLI_RECEIVE。

應用程式會在四個會話流程的其中一個接收資料。 四個會話流程,從最高優先順序到最低優先順序為:

  • SSCP 加速

  • LU 加速

  • SSCP 一般

  • LU 一般

    SLI_RECEIVE將處理的資料流程類型是在lua_flag1中指定。 應用程式也可以指定它是否想要查看多個類型的資料流程。 設定多個流程位時,會先收到最高優先順序。 當SLI_RECEIVE完成處理時,lua_flag2會指出 Windows LUA 應用程式已接收資料的特定流程類型。

    如果在 發出SLI_RECEIVE 之前SLI_BID順利完成,則可以指示 Windows LUA 介面重複使用最後一個SLI_BID動詞 VCB。 若要這樣做,請將 lua_flag1.bid_enable 設為 1 的問題SLI_RECEIVE。

    使用 lua_flag1.bid_enable 時,不得釋放SLI_BID儲存體,因為會使用最後一個SLI_BID動詞 VCB。 此外,使用 lua_flag1.bid_enable 時,將會張貼成功完成SLI_BID。

    如果沒有資料可供接收,SLI_RECEIVE會發出 lua_flag1.nowait,LUA_NO_DATA將會是 Windows LUA 介面所設定的次要傳回碼。

會話狀態傳回值

如果LUA_STATUS是主要傳回碼,次要傳回碼可以是下列其中一項:

LUA_READY

LUA_NOT_READY

LUA_SESSION_END_REQUESTED

LUA_INIT_COMPLETE

此外,如果LUA_STATUS是主要傳回碼,則會使用下列參數:

lua_sec_rc

lua_sid

LUA_READY在LUA_NOT_READY狀態之後傳回,並指出 SLI 已準備好執行所有命令。

LUA_NOT_READY指出 SLI 會話已暫停,因為 SLI 已收到 SNA CLEAR 命令,或具有0X02 UNBIND 類型的 SNA UNBIND 命令, (即將) 的 UNBIND。 視造成暫停的原因而定,會話可以重新啟用,如下所示:

  • 當暫停是由 SNA CLEAR 所造成時,接收 SNA SDT 會重新啟用會話。

  • 當即將推出的 SNA UNBIND 類型 BIND 會導致會話暫停,且開啟會話 的SLI_OPEN 已完成時,會話會暫停,直到 SLI 收到 BIND 和 SDT 命令為止。 會話也可以選擇性地接收 STSN 命令。 因此,必須重新輸入以初始SLI_OPEN發出的使用者提供常式,因為它們將會被回收。

    應用程式可以在 CLEAR 或 UNBIND 類型 BIND 即將送達且讀取NOT_READY狀態之前傳送 SSCP 資料。 應用程式可以在讀取NOT_READY之後傳送和接收 SSCP 資料。

    在開啟會話的SLI_OPEN完成之前,SNA UNBIND 類型 BIND 即將抵達時,LUA_SESSION_FAILURE (不會LUA_STATUS) 是主要傳回碼。

    LUA_SESSION_END_REQUESTED表示應用程式已從主機收到 SNA SHUTD。 Windows LUA 應用程式應該會在方便時發出 SLI_CLOSE 關閉會話。

    只有在LUA_INIT_TYPE_PRIM_SSCP SLI_OPEN的lua_init_type時,才會傳回 LUA_INIT_COMPLETE 。 狀態表示已足夠處理SLI_OPEN,以便立即傳送或接收 SSCP 資料。

例外狀況要求

如果主應用程式要求單位轉換成 EXR,則會傳回感知資料。 當SLI_BID以傳回的動詞參數集完成時,會發生 EXR 轉換。

成員 設定為
lua_prim_rc 確定 (0x0000)
lua_sec_rc 確定 (0x00000000)
lua_rh.rri 位關閉 (要求單位)
lua_rh.sdi bit on (包含感知資料)

lua_peek_data中的七個位元組資料中,位元組 0 到 3 會定義偵測到的錯誤。 下表指出可能的感知資料和位元組 0 到 3 的值。

感知資料 位元組 0–3 的值
LUA_MODE_INCONSISTENCY 0x08090000
LUA_BRACKET_RACE_ERROR 0x080B0000
LUA_BB_REJECT_NO_RTR 0x08130000
LUA_RECEIVER_IN_TRANSMIT_MODE 0x081B0000
LUA_CRYPTOGRAPHY_FUNCTION_INOP 0x08480000
LUA_SYNC_EVENT_RESPONSE 0x10010000
LUA_RU_DATA_ERROR 0x10020000
LUA_RU_LENGTH_ERROR 0x10020000
LUA_INCORRECT_SEQUENCE_NUMBER 0x20010000

lua_peek_data 中傳 回至位元組 3 到 6 的資訊是由造成錯誤之初始要求單位的前三個位元組所決定。

另請參閱

RUI_INIT
RUI_PURGE
RUI_READ
RUI_WRITE
SLI_BID
SLI_CLOSE
SLI_OPEN
SLI_PURGE
SLI_SEND