Struttura comune di VCB LUA
La struttura di dati seguente mostra i parametri comuni a tutti i verbi LUA (Logical Unit Application) di Microsoft® Windows®.
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;
} LUA_COMMON;
Osservazioni
Membri
lua_verb
Parametro fornito. Contiene il codice verbo, LUA_VERB_RUI per verbi URI (Request Unit Interface) o LUA_VERB_SLI per i verbi SLI. Per entrambe le macro il valore è 0x5200.
lua_verb_length
Parametro fornito. Specifica la lunghezza in byte del VCB LUA. Deve contenere la lunghezza del record verbo da emettere.
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 del comando LUA (codice dell'operazione verbo) per il verbo da emettere, ad esempio LUA_OPCODE_RUI_BID per il verbo RUI_BID . I valori validi sono i seguenti:
LUA_OPCODE_SLI_OPEN
LUA_OPCODE_SLI_CLOSE
LUA_OPCODE_SLI_RECEIVE
LUA_OPCODE_SLI_SEND
LUA_OPCODE_SLI_PURGE
LUA_OPCODE_SLI_BID
LUA_OPCODE_SLI_BIND_ROUTINE
LUA_OPCODE_SLI_STSN_ROUTINE
LUA_OPCODE_SLI_CRV_ROUTINE
LUA_OPCODE_RUI_INIT
LUA_OPCODE_RUI_TERM
LUA_OPCODE_RUI_READ
LUA_OPCODE_RUI_WRITE
LUA_OPCODE_RUI_PURGE
LUA_OPCODE_RUI_BID
lua_correlator
Parametro fornito. Contiene un valore fornito dall'utente che collega il verbo con altre informazioni fornite dall'utente. LUA non usa o modifica queste informazioni. Questo parametro è facoltativo e,
lua_luname
Parametro fornito. Specifica il nome ASCII dell'lu locale utilizzato dalla sessione LUA di Windows.
SLI_OPEN e RUI_INIT richiedono questo parametro. Altri verbi LUA di Windows richiedono questo parametro solo se lua_sid è zero.
Questo parametro è lungo otto byte, riempito a destra con spazi (0x20) se il nome è più breve di otto caratteri.
lua_extension_list_offset
Specifica l'offset dall'inizio di VCB all'elenco di estensioni delle librerie a collegamento dinamico (DLL) fornite dall'utente. Questo parametro non viene usato dalla URI in Microsoft® Host Integration Server e deve essere impostato su zero. Il valore deve essere l'inizio di un limite di parola, a meno che non sia presente alcun elenco di estensioni.
lua_cobol_offset
Offset dell'estensione COBOL. Non usato da LUA in Host Integration Server e deve essere zero.
lua_sid
Parametro fornito e restituito. Specifica l'identificatore di sessione e viene restituito da SLI_OPEN e RUI_INIT. Altri verbi usano questo parametro per identificare la sessione usata per il comando . Se altri verbi usano il parametro lua_luname per identificare le sessioni, impostare il parametro lua_sid su zero.
lua_max_length
Specifica la lunghezza del buffer ricevuto per RUI_READe SLI_RECEIVE. Per altri verbi RUI e SLI, non viene usato e deve essere impostato su zero.
lua_data_length
Specifica la lunghezza dei dati inviati o ricevuti. Specifica la lunghezza dei dati restituiti in lua_peek_data per il verbo RUI_BID .
lua_data_ptr
Puntatore a un buffer fornito dall'applicazione.
Quando viene eseguita SLI_RECEIVE o RUI_READ , questo parametro punta alla posizione in cui ricevere i dati dall'host.
Quando viene eseguita SLI_SEND o RUI_WRITE , questo parametro punta alla posizione dei dati dell'applicazione da inviare all'host.
Quando viene emesso SLI_PURGE o RUI_PURGE , questo parametro punta alla posizione del vcB del SLI_RECEIVE o del verbo di RUI_READ da annullare.
Quando viene eseguita SLI_OPEN , questo parametro può essere uno dei seguenti:
Messaggio di accesso per il flusso normale SSCP quando il tipo di inizializzazione è secondario con un messaggio di accesso non formattato.
Unità richiesta/risposta (UR) per INITSELF. Quando il tipo di inizializzazione è secondario con INITSELF, vengono forniti i dati necessari per l'applicazione.
Per tutti gli altri tipi aperti, questo campo deve essere impostato su zero.
Per altri verbi RUI e SLI (Session Level Interface), questo parametro non viene usato e deve essere impostato su zero. Entrambi i comandi e i dati SNA vengono inseriti in questo buffer e possono essere in formato EBCDIC.
Queste informazioni vengono fornite dall'applicazione LUA di Windows.
lua_post_handle
Parametro fornito. Utilizzato in Windows 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
Parametro restituito. Contiene l'intestazione di trasmissione SNA (TH) del messaggio inviato o ricevuto. Vari sottoparametri sono impostati per le funzioni di scrittura e restituite per le funzioni di lettura e offerta. I sottoparametri sono i seguenti:lua_th.flags_fid
Tipo di identificazione del formato 2, quattro bit.
lua_th.flags_mpf
Campo di mapping segmentazione, due bit. Definisce il tipo di segmento di dati. I valori seguenti sono validi:
segmento 0x00 centrale
0x01 Ultimo segmento
0x02 Primo segmento
segmento solo 0x03
lua_th.flags_odai
Indicatore dell'assegnatore OAF-DAF (Address Field-DAF) di origine, un bit.
lua_th.flags_efi
Indicatore di flusso accelerato, un bit.
lua_th.daf
Campo indirizzo di destinazione (DAF), un carattere senza segno.
lua_th.oaf
Campo indirizzo di origine (OAF), un carattere senza segno.
lua_th.snf
Campo numero di sequenza, un carattere senza segno[2].
lua_rh
Parametro restituito. Contiene l'intestazione richiesta/risposta SNA del messaggio inviato o ricevuto. Viene impostata per la funzione di scrittura e restituita dalle funzioni di lettura e offerta. I parametri secondari sono i seguenti:
lua_rh.rri
Indicatore di risposta della richiesta, un bit.
lua_rh.ruc
Categoria UR, due bit. I valori seguenti sono validi:
LUA_RH_FMD (0x00) controllo di reteLUA_RH_NC (0x20) Controllo di reteLUA_RH_DFC (0x40) Controllo flusso di datiLUA_RH_SC (0x60) Controllo sessione
lua_rh.fi
Indicatore di formato, un bit.
lua_rh.sdi
Indicatore di rilevamento dei dati inclusi, un bit.
lua_rh.bci
Indicatore della catena di inizio, un bit.
lua_rh.eci
Indicatore catena finale, un bit.
lua_rh.dr1i
Indicatore di risposta definito 1, un bit.
lua_rh.dr2i
Indicatore di risposta definita 2, un bit.
lua_rh.ri
Indicatore di risposta dell'eccezione (per una richiesta) o indicatore del tipo di risposta (per una risposta), un bit.
lua_rh.qri
Indicatore di risposta in coda, un bit.
lua_rh.pi
Indicatore di velocità, un bit.
lua_rh.bbi
Indicatore parentesi quadre iniziale, un bit.
lua_rh.ebi
Indicatore parentesi quadra finale, un bit.
lua_rh.cdi
Indicatore di direzione di modifica, un bit.
lua_rh.csi
Indicatore di selezione del codice, un bit.
lua_rh.edi
Indicatore di dati crittografati, un bit.
lua_rh.pdi
Indicatore dati riempito, un bit.
lua_flag1
Parametro fornito. Contiene una struttura di dati contenente flag per i messaggi forniti dall'applicazione. Questo parametro viene usato da RUI_BID, RUI_READ, RUI_WRITE, SLI_BID, SLI_RECEIVE e SLI_SEND. Per altri verbi LUA questo parametro non viene usato e deve essere impostato su zero. I relativi sottoparametri sono i seguenti:
lua_flag1.bid_enable
Indicatore di abilitazione dell'offerta, un bit.
lua_flag1.close_abend
Indicatore immediato di chiusura, un bit.
lua_flag1.nowait
Nessuna attesa per il flag di dati, un bit.
lua_flag1.sscp_exp
Flusso accelerato di SSCP, un bit.
lua_flag1.sscp_norm
Flusso normale SSCP, un bit.
lua_flag1.lu_exp
Flusso accelerato lu, un bit.
lua_flag1.lu_norm
Flusso normale LU, un bit.
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 e SLI_OPEN e un parametro fornito per SLI_SEND. Per altri verbi LUA questa variabile non viene usata e deve essere impostata su zero.
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'SLI 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. Questo parametro viene restituito da RUI_BID, RUI_READ, RUI_WRITE, SLI_BID, SLI_RECEIVE e SLI_SEND. Per altri verbi LUA questo parametro non viene usato e deve essere impostato su zero. I relativi sottoparametri sono i seguenti:
lua_flag2.bid_enable
Indica che RUI_BID è stato riabilitato se impostato su 1.
lua_flag2.async
Indica che il verbo dell'interfaccia LUA è stato completato in modo asincrono se impostato su 1.
lua_flag2.sscp_exp
Indica il flusso accelerato di SSCP se impostato su 1.
lua_flag2.sscp_norm
Indica il flusso normale di SSCP se impostato su 1.
lua_flag2.lu_exp
Indica il flusso accelerato lu se impostato su 1.
lua_flag2.lu_norm
Indica il flusso normale lu se impostato su 1.
lua_resv56
Questo parametro fornito è un campo riservato usato da SLI_OPEN e RUI_INIT. Per tutti gli altri verbi LUA, questo parametro è riservato e deve essere impostato su zero.
lua_encr_decr_option
Questo parametro è un campo per le opzioni di crittografia. In RUI_INIT sono supportati solo i seguenti elementi:
lua_encr_decr_option = 0
lua_encr_decr_option = 128
Per tutti gli altri verbi LUA, questo parametro è riservato e deve essere impostato su zero.