RUI_INIT

Il RUI_INIT verbo trasferisce il controllo dell'unità logica specificata all'applicazione LuA (Logical Unit Application ®) di Microsoft® Windows. RUI_INIT stabilisce una sessione tra il punto di controllo dei servizi di sistema (SSCP) e l'istanza di Lu specificata.

Nota

Per gli utenti dell'emulatore 3270, è stata aggiunta un'estensione microsoft Host Integration Server che consente di usare 3270 unità erre anziché unità luminarie LUA. Per altre informazioni, vedere la sezione Osservazioni in questo argomento.

La struttura seguente descrive il LUA_COMMON del blocco di controllo verbo (VCB) usato da RUI_INIT.

Sintassi

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

Members

lua_verb
Parametro fornito. Contiene il codice del verbo, LUA_VERB_RUI verbi RUI (Request Unit Interface).

lua_verb_length
Parametro fornito. Specifica la lunghezza in byte del VCB LUA. Deve contenere la lunghezza del record verbo generato.

lua_prim_rc
Codice restituito primario impostato da LUA al completamento del verbo. I codici restituiti validi variano a seconda del verbo LUA emesso.

lua_sec_rc
Codice restituito secondario impostato da LUA al completamento del verbo. I codici restituiti validi variano a seconda del verbo LUA emesso.

lua_opcode
Parametro fornito. Contiene il codice di comando LUA (codice operazione verbo) per il verbo da emissione, LUA_OPCODE_RUI_INIT.

lua_correlator
Parametro fornito. Contiene un valore fornito dall'utente che collega il verbo ad altre informazioni fornite dall'utente. LUA non usa o modifica queste informazioni. Questo parametro è facoltativo.

lua_luname
Parametro fornito. Specifica il nome ASCII della lu locale usata dal Windows LUA.

RUI_INIT richiede questo parametro.

Questo parametro è lungo otto byte, riempito a destra con spazi (0x20) se il nome è più breve di otto caratteri.

lua_extension_list_offset
Non usato da RUI in Host Integration Server e deve essere impostato su zero.

lua_cobol_offset
Non usato da LUA in Host Integration Server e deve essere zero.

lua_sid
Parametro restituito. Specifica l'identificatore di sessione.

lua_max_length
Non usato dal RUI_INIT e deve essere impostato su zero.

lua_data_length
Non usato dal RUI_INIT e deve essere impostato su zero.

lua_data_ptr
Non usato dal RUI_INIT e deve essere impostato su zero.

lua_post_handle
Parametro fornito. Usato in Microsoft® Windows Server se la notifica asincrona deve essere eseguita dagli eventi. Questa variabile contiene l'handle dell'evento da segnalare o un handle di finestra.

lua_th
Non usato dal RUI_INIT e deve essere impostato su zero.

lua_rh
Non usato dal RUI_INIT e deve essere impostato su zero.

lua_flag1
Non usato dal RUI_INIT e deve essere impostato su zero.

lua_message_type
Specifica il tipo di dati e comandi SNA in ingresso o in uscita. Si tratta di un parametro restituito per RUI_INIT. I valori possibili sono:

LUA_MESSAGE_TYPE_LU_DATA

LUA_MESSAGE_TYPE_SSCP_DATA

LUA_MESSAGE_TYPE_BID

LUA_MESSAGE_TYPE_BIND

LUA_MESSAGE_TYPE_BIS

LUA_MESSAGE_TYPE_CANCEL

LUA_MESSAGE_TYPE_CHASE

LUA_MESSAGE_TYPE_CLEAR

LUA_MESSAGE_TYPE_CRV

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_RQR

LUA_MESSAGE_TYPE_RTR

LUA_MESSAGE_TYPE_SBI

LUA_MESSAGE_TYPE_SHUTD

LUA_MESSAGE_TYPE_SIGNAL

LUA_MESSAGE_TYPE_SDT

LUA_MESSAGE_TYPE_STSN

LUA_MESSAGE_TYPE_UNBIND

L'interfaccia SLI (Session Level Interface) riceve e risponde alle richieste BIND, CRV e STSN tramite le routine di estensione dell'interfaccia LUA.

LU_DATA, LUSTAT_LU, LUSTAT_SSCP e SSCP_DATA non sono comandi SNA.

lua_flag2
Parametro restituito. Contiene i flag per i messaggi restituiti da LUA.

lua_flag2.async

Indica che il verbo dell'interfaccia LUA è stato completato in modo asincrono se impostato su 1.

RUI_INIT viene sempre completato in modo asincrono, a meno che non restituisca un errore, ad esempio LUA_PARAMETER_CHECK).

lua_resv56
Parametro fornito. Campo riservato usato da RUI_INIT e SLI_OPEN. Tutti gli altri campi riservati nella matrice devono essere lasciati vuoti. Per altre informazioni, vedere la discussione di queste estensioni Host Integration Server nella sezione Osservazioni.

lua_resv56[1]

Parametro fornito. Indica se un'applicazione RUI può accedere a unità LU configurate come 3270 LU, oltre alle UNITÀ LUA. Se questo parametro è diverso da zero, è possibile accedere a 3270 UNITÀ.

lua_resv56[2]

Parametro fornito. Indica se la libreria RUI rilascerà la lu quando la sessione o la connessione LU-SSCP viene finisce. Se questo parametro è diverso da zero, la LU non verrà rilasciata.

lua_resv56[3]

Parametro fornito. Indica se sono supportate le operazioni di lettura incomplete. Se questo parametro è impostato su un valore diverso da zero, sono supportate le operazioni di lettura incomplete o troncate. Per altri dettagli, vedere le osservazioni per RUI_READ.

lua_resv56[4]

Parametro fornito. Indica se la libreria RUI consentirà all'applicazione di mantenere la LU se viene riciclata nell'host. Se questo parametro è diverso da zero, l'applicazione può mantenere la LU.

lua_encr_decr_option
Campo per le opzioni di crittografia. In RUI_INIT sono supportati solo gli elementi seguenti:

lua_encr_decr_option = 0

lua_encr_decr_option = 128

I valori da 1 a 127 non sono supportati.

Codici restituiti

LUA_OK
Codice restituito primario; il verbo è stato eseguito correttamente.

LUA_CANCELED
Codice restituito primario; Il verbo non è stato completato correttamente perché è stato annullato da un altro verbo.

LUA_TERMINATED

Codice restituito secondario; RUI_TERM stato rilasciato prima del RUI_INIT completato.

LUA_PARAMETER_CHECK
Codice restituito primario; Il verbo non è stato eseguito a causa di un errore di parametro.

LUA_INVALID_LUNAME

Codice restituito secondario; Il lua_luname parametro non corrisponde ad alcun nome LU o nome pool LU nel file di configurazione.

LUA_INVALID_POST_HANDLE

Codice restituito secondario; per un Windows sistema operativo che usa eventi come metodo di registrazione asincrono, il vcb LUA Windows non contiene un handle di evento valido.

LUA_RESERVED_FIELD_NOT_ZERO

Codice restituito secondario; un campo riservato nel record del verbo o un parametro non usato da questo verbo è stato impostato su un valore diverso da zero.

LUA_VERB_LENGTH_INVALID

Codice restituito secondario; un verbo LUA è stato rilasciato con il valore di lua_verb_length imprevisto da LUA.

LUA_STATE_CHECK
Codice restituito primario; Il verbo non è stato eseguito perché è stato generato in uno stato non valido.

LUA_DUPLICATE_RUI_INIT

Codice restituito secondario; il lua_luname parametro ha specificato un nome lu o un nome di pool LU già in uso da questa applicazione (o per cui l'applicazione ha già RUI_INIT in corso ).

LUA_UNSUCCESSFUL
Codice restituito primario; Il record del verbo fornito era valido, ma il verbo non è stato completato correttamente.

LUA_COMMAND_COUNT_ERROR

Codice restituito secondario, che indica uno degli errori seguenti:

Non è stato possibile emesso il verbo perché l'applicazione ha già raggiunto il numero massimo di sessioni attive. In Windows un'applicazione può avere fino a 15.000 sessioni attive in qualsiasi momento.

Il verbo ha specificato il nome di un pool di LU o il nome di una LU in un pool, ma tutte le unità di archiviazione nel pool sono in uso.

LUA_ENCR_DECR_LOAD_ERROR

Codice restituito secondario; il verbo ha specificato un valore per lua_encr_decr_option diverso da 0 o 128.

LUA_INVALID_PROCESS

Codice restituito secondario; la LU specificata da lua_luname è in uso da un altro processo.

LUA_LINK_NOT_STARTED

Codice restituito secondario; la connessione all'host non è stata avviata. nessuno dei servizi di collegamento che potrebbe usare è attivo.

LUA_COMM_SUBSYSTEM_ABENDED
Codice restituito primario; indica una delle condizioni seguenti:

  • Il nodo usato da questa conversazione ha rilevato un ABEND.

  • La connessione tra il programma di transazioni (TP) e il nodo unità fisica (PU) 2.1 è stata interrotta (errore LAN).

  • L'oggetto SnaBase nel computer TP ha rilevato un ABEND.

    LUA_SESSION_FAILURE
    Codice restituito primario; un componente Host Integration Server necessario è terminato.

    LUA_LU_COMPONENT_DISCONNECTED

    Codice restituito secondario; indica che la sessione LUA non è riuscita a causa di un problema con il servizio di collegamento o con la LU host.

    LUA_INVALID_VERB
    Codice restituito primario; Il codice verbo o il codice dell'operazione o entrambi non sono validi. Il verbo non è stato eseguito.

    LUA_STACK_TOO_SMALL
    Codice restituito primario; le dimensioni dello stack dell'applicazione sono troppo piccole per eseguire il verbo. Aumentare le dimensioni dello stack dell'applicazione.

    LUA_COMM_SUBSYSTEM_NOT_LOADED
    Codice restituito primario; Non è stato possibile caricare un componente obbligatorio o è stato terminato durante l'elaborazione del verbo. Pertanto, la comunicazione non è stata possibile. Per un'azione correttiva, contattare l'amministratore di sistema.

    LUA_UNEXPECTED_DOS_ERROR
    Codice restituito primario; Dopo l'emissione di una chiamata al sistema operativo, è stato ricevuto un codice restituito imprevisto del sistema operativo e viene specificato nel codice restituito secondario.

Commenti

Questo verbo deve essere il primo verbo LUA rilasciato per la sessione. Finché questo verbo non viene completato correttamente, l'unico altro verbo LUA che può essere rilasciato per questa sessione è RUI_TERM (che termina un RUI_INIT).

Tutti gli altri verbi emessi in questa sessione devono identificare la sessione usando uno dei parametri seguenti di questo verbo:

  • Identificatore di sessione, restituito all'applicazione in lua_sid.

  • Nome lu o nome pool LU, fornito dall'applicazione nel parametro lua_luname.

    RUI_INIT viene completato dopo la ricezione di un messaggio ACTLU dall'host. Se necessario, il verbo attende all'infinito. Se un ACTLU è già stato ricevuto prima di RUI_INIT, LUA invia una notifica all'host per informarlo che la LU è pronta per l'uso.

    Né ACTLU né NOTIFY sono visibili all'applicazione LUA.

    Dopo RUI_INIT completata, questa sessione usa la LU per cui è stata avviata la sessione. Nessuna altra sessione LUA (da questa o qualsiasi altra applicazione) può usare la LU fino a quando non viene emesso RUI_TERM o fino a quando non viene ricevuto un LUA_SESSION_FAILURE codice restituito primario.

Uso di 3270 UNITÀ

Per offrire a 3270 utenti dell'emulatore la possibilità di usare la chiamata di configurazione Emulator Interface Specification (EIS) con l'API RUI, è stata aggiunta un'estensione Host Integration Server al RUI. Questa estensione consente di usare 3270 LU anziché LUA LU. Se un'applicazione imposta lua_resv56[1] su un valore diverso da zero nella chiamata RUI_INIT, è possibile usare 3270 UNITÀ.

Non rilasciare la lu

Se un'applicazione imposta lua_resv56[2] su un valore diverso da zero nella chiamata RUI_INIT , la libreria RUI non rilascerà la LU quando la sessione o la connessione LU-SSCP non viene stabilita. Quando questa Host Integration Server è abilitata, l'applicazione non deve eseguire un nuovo RUI_INIT dopo un errore di sessione o un errore di connessione. Quando la sessione LU-SSCP viene ripartita (l'applicazione può usare WinRUIGetLastInitStatus per rilevare questo problema), l'applicazione può iniziare a usarla di nuovo.

Supporto della suddivisione in blocchi in questa sessione

Se un'applicazione imposta lua_resv56[3] su un valore diverso da zero nella sessione di RUI_INIT, viene abilitata un'estensione Host Integration Server che può modificare il comportamento di RUI_READ. Il comportamento predefinito per una chiamata RUI_READ è troncare i dati (rimuovendo tutti i dati rimanenti) se il buffer di dati dell'applicazione non è sufficientemente grande da ricevere tutti i dati nella RICHIESTA, restituisce un codice di errore. Quando lua_resv56[3] è impostato su un valore diverso da zero nella chiamata RUI_INIT , un RUI_READ generato in cui il buffer dei dati dell'applicazione non è sufficientemente grande non comporta l'eliminazione dei dati della RICHIESTA. Il RUI_READ verbo restituirà l'esito positivo (LUA_OK) per il codice restituito primario e LUA_DATA_INCOMPLETE per il codice restituito secondario. Le RUI_READ richieste successive possono quindi essere inviate per recuperare i dati che hanno superato il buffer di dati dell'applicazione.

Ignora DACTLI

Se un'applicazione imposta lua_resv56[4] su un valore diverso da zero nella sessione di RUI_INIT, abilita un'estensione Host Integration Server e la libreria RUI consentirà all'applicazione di mantenere la LU se viene riciclata nell'host, ovvero disattivata e riattivata.

Nota

Tutti gli altri campi riservati devono essere lasciati vuoti.

Per altre informazioni, vedere la descrizione della funzione sepdcrec nella sezione della Guida di Software Development Kit (SDK) nella specifica dell'interfaccia Emulator 3270.

Crittografia

La crittografia a livello di sessione viene implementata tramite richieste CRV (Cryptography Verification). Le applicazioni RUI devono eseguire tutte le elaborazioni necessarie di queste richieste. Per tutte le interfacce diverse da RUI, le richieste CRV vengono rifiutate con una risposta negativa Host Integration Server.

Per RUI_INIT, sono supportate le opzioni seguenti:

  • lua_encr_decr_option = 0

  • lua_encr_decr_option = 128

    I valori da 1 a 127 (routine ACSRENCR e ACSROECR) non sono supportati.

    L'applicazione mittente è responsabile della spaziatura interna dei dati su un multiplo di otto byte e dell'impostazione del bit dell'indicatore di dati con riempimento in RH e per la crittografia. L'applicazione ricevente è responsabile della rimozione della spaziatura interna dopo la decrittografia.

Vedere anche

RUI_TERM
SLI_OPEN