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
제공된 매개 변수입니다. SLI(세션 수준 인터페이스) 동사에 대한 LUA_VERB_SLI 동사 코드를 포함합니다.
lua_verb_length
제공된 매개 변수입니다. LUA VCB의 길이(바이트)를 지정합니다. 발급되는 동사 레코드의 길이를 포함해야 합니다.
lua_prim_rc
동사가 완료될 때 LUA가 설정한 기본 반환 코드입니다. 유효한 반환 코드는 발급된 LUA 동사에 따라 달라집니다.
lua_sec_rc
동사가 완료될 때 LUA에서 설정한 보조 반환 코드입니다. 유효한 반환 코드는 발급된 LUA 동사에 따라 달라집니다.
lua_opcode
제공된 매개 변수입니다. LUA_OPCODE_SLI_OPEN 발급할 동사에 대한 LUA 명령 코드(동사 작업 코드)를 포함합니다.
lua_correlator
제공된 매개 변수입니다. 동사를 다른 사용자가 제공한 정보와 연결하는 사용자 제공 값을 포함합니다. LUA는 이 정보를 사용하거나 변경하지 않습니다. 이 매개 변수는 선택적 요소입니다.
lua_luname
제공된 매개 변수입니다. Windows LUA 세션에서 사용하는 로컬 LU의 ASCII 이름을 지정합니다.
SLI_OPEN 이 매개 변수가 필요합니다.
이 매개 변수는 8바이트 길이이며, 이름이 8자보다 짧은 경우 공백(0x20)으로 오른쪽에 패딩됩니다.
lua_extension_list_offset
제공된 매개 변수입니다. VCB 시작부터 사용자가 제공한 DLL(동적 연결 라이브러리)의 확장 목록까지 오프셋을 지정합니다. 확장 목록이 없는 한 값은 단어 경계의 시작이어야 합니다. 이 경우 값을 0으로 설정해야 합니다.
이 옵션을 SLI_OPEN 사용하지 않는 경우 이 멤버를 0으로 설정해야 합니다.
lua_cobol_offset
Microsoft® Host Integration Server의 LUA에서 사용되지 않으며 0이어야 합니다.
lua_sid
반환된 매개 변수입니다. 세션 식별자를 지정합니다.
lua_max_length
SLI_OPEN 사용되지 않으며 0으로 설정해야 합니다.
lua_data_length
제공된 매개 변수입니다. 전송되는 데이터의 실제 길이를 지정합니다.
lua_data_ptr
SLI_OPEN 위해 보낼 데이터가 포함된 애플리케이션 제공 버퍼에 대한 포인터입니다.
SNA 명령과 데이터는 모두 이 버퍼에 배치되며 EBCDIC(Extended Binary Coded Decimal Interchange Code) 형식일 수 있습니다.
SLI_OPEN 발급되면 이 매개 변수는 다음 중 하나일 수 있습니다.
초기화 유형이 형식이 지정되지 않은 LOGON 메시지가 있는 보조인 경우 SSCP 일반 흐름에 대한 LOGON 메시지입니다.
INITSELF에 대한 RU(요청/응답 단위)입니다. 초기화 유형이 INITSELF에서 보조인 경우 애플리케이션에 필요한 데이터가 제공됩니다.
열려 있는 다른 모든 형식의 경우 이 필드를 0으로 설정해야 합니다.
이 정보는 Windows LUA 애플리케이션에서 제공합니다.
lua_post_handle
제공된 매개 변수입니다. 이벤트에 의해 비동기 알림을 수행할 경우 Microsoft Windows Server에서 사용됩니다. 이 변수에는 신호를 받을 이벤트의 핸들 또는 창 핸들이 포함됩니다.lua_th
SLI_OPEN 사용되지 않으며 0으로 설정해야 합니다.lua_rh
SLI_OPEN 사용되지 않으며 0으로 설정해야 합니다.lua_flag1
SLI_OPEN 사용되지 않으며 0으로 설정해야 합니다.lua_message_type
SLI_OPEN 사용되지 않으며 0으로 설정해야 합니다.lua_flag2
반환된 매개 변수입니다. LUA에서 반환하는 메시지에 대한 플래그를 포함합니다. 하위 매개 변수는 다음과 같습니다.lua_flag2.async
1로 설정된 경우 LUA 인터페이스 동사가 비동기적으로 완료되었음을 나타냅니다.
lua_resv56
제공된 매개 변수입니다. SLI_OPEN 및RUI_INIT 사용하는 예약 필드입니다. 자세한 내용은 주의 섹션을 참조하세요.lua_resv56[1]
제공된 매개 변수입니다. 이 매개 변수는 0으로 설정해야 합니다.
lua_resv56[2]
제공된 매개 변수입니다. SLI 애플리케이션이 LUA RU 외에도 3270 RU로 구성된 RU에 액세스할 수 있는지 여부를 나타냅니다. 이 매개 변수를 1로 설정하면 3270 RU에 액세스할 수 있습니다.
lua_resv56[3]
제공된 매개 변수입니다. 불완전한 읽기가 지원되는지 여부를 나타냅니다. 이 매개 변수를 1로 설정하면 불완전하거나 잘린 읽기가 지원됩니다. 자세한 내용은 RUI_READ 설명을 참조하세요.
lua_encr_decr_option
SLI_OPEN 사용되지 않으며 0으로 설정해야 합니다.열기
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
제공된 매개 변수입니다. 호스트가 다음 메시지 중 하나를 보낸 후 INITSELF 또는 LOGON 메시지의 전송을 다시 시도하기 전에 Windows LUA 인터페이스가 대기하는 시간(초)을 나타내는 보조 재시도 대기 시간을 나타냅니다.
음수 응답 및 보조 반환 코드는 다음 중 하나입니다.
RESOURCE_NOT_AVAILABLE(0x08010000)SESSION_LIMIT_EXCEEDED(0x08050000) SESSION_SERVICE_PATH_ERROR(0x087D0000)
lua_wait 0으로 설정되고 이전 중 하나가 발생하는 경우 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
제공된 매개 변수입니다. 사용자가 제공한 확장 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
보조 반환 코드; lua_sid 잘못된 값이 VCB에 지정되었습니다.
LUA_BAD_DATA_PTR
보조 반환 코드; lua_data_ptr 매개 변수는 유효한 포인터를 포함하지 않거나 읽기/쓰기 세그먼트를 가리키지 않으며 제공된 데이터가 필요합니다.
LUA_DATA_SEGMENT_LENGTH_ERROR
보조 반환 코드; 다음 중 하나가 발생했습니다.
SLI_RECEIVE 또는 SLI_SEND 제공된 데이터 세그먼트는 필요에 따라 읽기/쓰기 데이터 세그먼트가 아닙니다.
SLI_RECEIVE 제공된 데이터 세그먼트는 lua_max_length 제공된 데이터 세그먼트만큼 길지 않습니다.
SLI_SEND 제공된 데이터 세그먼트는 lua_data_length 제공된 데이터 세그먼트만큼 길지 않습니다.
LUA_RESERVED_FIELD_NOT_ZERO
보조 반환 코드; 방금 발급된 동사에 대한 예약된 매개 변수가 0으로 설정되지 않았습니다.
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 실행되면 상태(4바이트)이 필요하며, 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 0이 아닌 값으로 설정합니다. LOGON 또는 INITSELF 명령은 호스트가 준비되거나 SLI_CLOSE 실행할 때까지 다시 시도됩니다.
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 0이 아닌 값으로 설정합니다. LOGON 또는 INITSELF 명령은 호스트가 준비되거나 SLI_CLOSE 실행할 때까지 다시 시도됩니다.
LUA_SESSION_LIMIT_EXCEEDED
보조 반환 코드; NAU가 세션 제한에 있으므로 요청된 세션이 활성화되지 않았습니다. 이 SNA 감지 코드는 BID, CINIT, INIT 및 ACTDRM 요청에 적용됩니다.
RETRY 옵션을 사용하지 않는 한 NAU가 제한에 있을 때 코드가 SLI_OPEN 게시됩니다.
재설정 옵션을 사용하려면 lua_wait 0이 아닌 값으로 설정합니다. LOGON 또는 INITSELF 명령은 호스트가 준비되거나 SLI_CLOSE 실행할 때까지 다시 시도됩니다.
LUA_LU_COMPONENT_DISCONNECTED
보조 반환 코드; LU 구성 요소가 제대로 연결되지 않았기 때문에 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(Transmission Service) 프로필 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는 보조 LU가 세션을 수행할 수 있음을 나타내는 NOTIFY 요청에 부정적으로 응답했습니다. 요청을 수신한 반 세션 구성 요소는 요청을 이해하고 지원했지만 실행할 수 없습니다.
LUA_LU_INOPERATIVE
보조 반환 코드; SLI가 세션을 중지하려고 하는 동안 심각한 오류가 발생했습니다. 이 LU는 호스트에서 ACTLU(활성화 논리 단위)를 받을 때까지 모든 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 인터페이스:
통신 세션을 시작합니다.
호스트에서 BIND 명령을 읽고 확인하고 BIND 확장 루틴이 제공된 경우 애플리케이션에 전달합니다.
BIND 응답을 씁니다.
STSN 명령을 읽고 처리하고 BIND 확장이 제공된 경우(필요한 경우) 애플리케이션에 전달합니다.
STSN 응답을 씁니다(필요한 경우).
CRV 명령을 읽습니다(필요한 경우).
CRV 응답을 씁니다(필요한 경우).
SDT 명령을 읽고 처리합니다.
SDT 응답을 씁니다.
Windows LUA 인터페이스는 열려 있는 형식이 LUA_INIT_TYPE_SEC_IS 또는 LUA_INIT_TYPE_SEC_LOG 설정된 SLI_OPEN 발생하는 세션에 대해 다음과 같은 추가 함수를 수행합니다.
INITSELF 또는 서식이 지정되지 않은 LOGON 메시지를 씁니다.
INITSELF 응답 또는 LOGON 메시지 응답을 읽고 처리합니다.
모든 SNA 메시지 트래픽은 SDT 명령 응답을 통해 SLI_OPEN 의해 관리됩니다.
Windows LUA에 대해 구성된 특정 LU를 선택하기 위해 애플리케이션은 필요한 경우 후행 공백으로 패딩된 ASCII의 LU 이름으로 lua_luname 설정합니다.
lua_prim_rc 매개 변수에 LUA_OK SLI_OPEN 게시되면 SLI_OPEN 성공적으로 완료되고 LU-LU 데이터 흐름 세션이 설정되었습니다. 이제 애플리케이션은 SLI_BID, SLI_CLOSE, SLI_PURGE, SLI_RECEIVE 및 SLI_SEND 실행할 수 있습니다.
SLI_OPEN LUA_OK 또는 LUA_IN_PROGRESS 이외의 기본 반환 코드와 함께 게시되면 명령이 세션을 성공적으로 설정하지 못했습니다.
SLI_OPEN 사용하는 경우 Windows LUA 애플리케이션은 세션 초기화 유형을 제공해야 합니다. 유효한 유형은 다음과 같습니다.