SLI_OPEN
Le verbe SLI_OPEN transfère le contrôle de l’unité logique (LU) spécifiée vers l’application LUA (Application d’unité logique Microsoft® Windows®). SLI_OPEN établit une session entre le point de contrôle des services système (SSCP) et la lu spécifiée, ainsi qu’une session LU-LU.
La structure suivante décrit le membre LUA_COMMON du bloc de contrôle de verbe (VCB) utilisé par SLI_OPEN.
La deuxième union de syntaxe décrit le membre LUA_SPECIFIC du VCB utilisé par SLI_OPEN. Les autres membres du syndicat sont omis pour des motifs de clarté.
Syntaxe
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;
} ;
Membres
lua_verb
Paramètre fourni. Contient le code verbe, LUA_VERB_SLI pour les verbes SLI (Session Level Interface).
lua_verb_length
Paramètre fourni. Spécifie la longueur en octets du VCB LUA. Il doit contenir la longueur de l’enregistrement de verbe émis.
lua_prim_rc
Code de retour principal défini par LUA à la fin du verbe. Les codes de retour valides varient en fonction du verbe LUA émis.
lua_sec_rc
Code de retour secondaire défini par LUA à la fin du verbe. Les codes de retour valides varient en fonction du verbe LUA émis.
lua_opcode
Paramètre fourni. Contient le code de commande LUA (code d’opération de verbe) pour le verbe à émettre, LUA_OPCODE_SLI_OPEN.
lua_correlator
Paramètre fourni. Contient une valeur fournie par l’utilisateur qui lie le verbe à d’autres informations fournies par l’utilisateur. LUA n’utilise ni ne modifie ces informations. Ce paramètre est facultatif.
lua_luname
Paramètre fourni. Spécifie le nom ASCII de la lu locale utilisée par la session Windows LUA.
SLI_OPEN nécessite ce paramètre.
Ce paramètre a une longueur de huit octets, rembourré à droite avec des espaces (0x20) si le nom est inférieur à huit caractères.
lua_extension_list_offset
Paramètre fourni. Spécifie le décalage entre le début du VCB et la liste d’extensions des bibliothèques de liens dynamiques (DLL) fournies par l’utilisateur. La valeur doit être le début d’une limite de mots, sauf s’il n’existe aucune liste d’extensions. Dans ce cas, la valeur doit être définie sur zéro.
Si cette option n’est pas utilisée par SLI_OPEN, ce membre doit être défini sur zéro.
lua_cobol_offset
Non utilisé par LUA dans Microsoft® Host Integration Server et doit être égal à zéro.
lua_sid
Paramètre retourné. Spécifie l’identificateur de session.
lua_max_length
Non utilisé par SLI_OPEN et doit être défini sur zéro.
lua_data_length
Paramètre fourni. Spécifie la longueur réelle des données envoyées.
lua_data_ptr
Pointeur vers la mémoire tampon fournie par l’application qui contient les données à envoyer pour SLI_OPEN.
Les commandes et les données SNA sont placées dans cette mémoire tampon, et elles peuvent être au format EBCDIC (Extended Binary Coded Decimal Interchange Code).
Lorsque SLI_OPEN est émis, ce paramètre peut être l’un des suivants :
Message LOGON pour le flux normal SSCP lorsque le type d’initialisation est secondaire avec un message LOGON non mis en forme.
Unité de requête/réponse (RU) pour INITSELF. Lorsque le type d’initialisation est secondaire avec INITSELF, les données nécessaires pour l’application sont fournies.
Pour tous les autres types ouverts, ce champ doit être défini sur zéro.
Ces informations sont fournies par l’application Windows LUA.
lua_post_handle
Paramètre fourni. Utilisé sous Microsoft Windows Server si la notification asynchrone doit être effectuée par des événements. Cette variable contient le handle de l’événement à signaler ou un handle de fenêtre.lua_th
Non utilisé par SLI_OPEN et doit être défini sur zéro.lua_rh
Non utilisé par SLI_OPEN et doit être défini sur zéro.lua_flag1
Non utilisé par SLI_OPEN et doit être défini sur zéro.lua_message_type
Non utilisé par SLI_OPEN et doit être défini sur zéro.lua_flag2
Paramètre retourné. Contient des indicateurs pour les messages retournés par LUA. Ses sous-paramètres sont les suivants :lua_flag2.async
Indique que le verbe d’interface LUA s’est terminé de manière asynchrone s’il est défini sur 1.
lua_resv56
Paramètre fourni. Champ réservé utilisé par SLI_OPEN et RUI_INIT. Pour plus d'informations, consultez la section Notes.lua_resv56[1]
Paramètre fourni. Ce paramètre doit être défini sur zéro.
lua_resv56[2]
Paramètre fourni. Indique si une application SLI peut accéder aux unités LU configurées en tant que 3270 unités de référence, en plus des unités LUA. Si ce paramètre est défini sur 1, 3270 unités de référence sont accessibles.
lua_resv56[3]
Paramètre fourni. Indique si les lectures incomplètes sont prises en charge. Si ce paramètre a la valeur 1, les lectures incomplètes ou tronquées sont prises en charge. Pour plus d’informations, consultez les remarques relatives à RUI_READ.
lua_encr_decr_option
Non utilisé par SLI_OPEN et doit être défini sur zéro.open
Membre de l’union de LUA_SPECIFIC utilisé par SLI_OPEN. Ensemble fourni de paramètres contenus dans une structure de SLI_OPEN requis avec SLI_OPEN.open.lua_init_type
Paramètre fourni. Définit la façon dont la session LU-LU est initialisée par l’interface Windows LUA.
Les valeurs valides sont les suivantes :
LUA_INIT_TYPE_SEC_IS
LUA_INIT_TYPE_SEC_LOG
LUA_INIT_TYPE_PRIM
LUA_INIT_TYPE_PRIM_SSCP
open.lua_resv65
Champ réservé.
open.lua_wait
Paramètre fourni. Représente un temps d’attente de nouvelle tentative secondaire indiquant le nombre de secondes d’attente de l’interface Windows LUA avant de réessayer la transmission du message INITSELF ou LOGON après que l’hôte a envoyé l’un de ces messages :
Une réponse négative et le code de retour secondaire sont l’un des éléments suivants :
RESOURCE_NOT_AVAILABLE (0x08010000)SESSION_LIMIT_EXCEEDED (0x08050000) SESSION_SERVICE_PATH_ERROR (0x087D0000)
Notez que SLI_OPEN se termine par une erreur si lua_wait est défini sur zéro et que l’un des éléments précédents se produit.
Message d’erreur de procédure des services réseau (NSPE).
Commande NOTIFY, qui indique une erreur de procédure.
open.lua_open_extension
Paramètre fourni. Contient une liste de DLL d’extension fournies par l’application pour traiter les commandes BIND, STSN et CRV.
open.open_extension.lua_routine_type
Type de routine d’extension. Les valeurs légales sont les suivantes :
LUA_ROUTINE_TYPE_BIND
LUA_ROUTINE_TYPE_CRV
LUA_ROUTINE_TYPE_END (indique la fin de la liste d’extensions)
LUA_ROUTINE_TYPE_STSN
open.open_extension.lua_module_name
Paramètre fourni. Fournit le nom du module ASCII pour la DLL d’extension fournie par l’utilisateur. Le nom du module peut avoir jusqu’à huit caractères, les octets restants étant définis sur 0x00.
open.open_extension.lua_procedure_name
Paramètre fourni. Fournit le nom de la procédure en ASCII pour la DLL d’extension fournie par l’utilisateur. Le nom de la procédure peut avoir jusqu’à 32 caractères, les octets restants étant définis sur 0x00.
open.lua_ending_delim
Délimiteur de liste d’extensions.
Codes de retour
LUA_OK
Code de retour principal ; indique que le verbe s’est exécuté correctement.
LUA_SEC_OK
Code de retour secondaire ; Aucune information supplémentaire n’existe pour LUA_OK.
LUA_PARAMETER_CHECK
Code de retour principal ; le verbe n’a pas été exécuté en raison d’une erreur de paramètre.
LUA_INVALID_LUNAME
Code de retour secondaire ; un nom de lua_luname non valide a été spécifié.
LUA_BAD_SESSION_ID
Code de retour secondaire ; une valeur non valide pour lua_sid a été spécifiée dans le VCB.
LUA_BAD_DATA_PTR
Code de retour secondaire ; le paramètre lua_data_ptr ne contient pas de pointeur valide ou ne pointe pas vers un segment en lecture/écriture et les données fournies sont requises.
LUA_DATA_SEGMENT_LENGTH_ERROR
Code de retour secondaire ; l’une des opérations suivantes s’est produite :
Le segment de données fourni pour SLI_RECEIVE ou SLI_SEND n’est pas un segment de données en lecture/écriture, comme nécessaire.
Le segment de données fourni pour SLI_RECEIVE n’est pas aussi long que celui fourni dans lua_max_length.
Le segment de données fourni pour SLI_SEND n’est pas aussi long que celui fourni dans lua_data_length.
LUA_RESERVED_FIELD_NOT_ZERO
Code de retour secondaire ; Un paramètre réservé pour le verbe qui vient d’être émis n’est pas défini sur zéro.
LUA_INVALID_POST_HANDLE
Code de retour secondaire ; Pour un système d’exploitation Microsoft Windows utilisant des événements comme méthode de publication asynchrone, le VCB LUA Windows ne contient pas de handle d’événement valide.
LUA_VERB_LENGTH_INVALID
Code de retour secondaire ; un verbe LUA a été émis avec une valeur pour lua_verb_length inattendue par LUA.
LUA_INVALID_OPEN_INIT_TYPE
Code de retour secondaire ; La valeur dans le lua_init_type contenue dans SLI_OPEN n’est pas valide.
LUA_INVALID_OPEN_DATA
Code de retour secondaire ; le lua_init_type pour le SLI_OPEN émis est défini sur LUA_INIT_TYPE_SEC_IS lorsque la mémoire tampon pour les données n’a pas de commande INITSELF valide.
LUA_INVALID_OPEN_ROUTINE_TYPE
Code de retour secondaire ; le lua_open_routine_type de la liste SLI_OPEN des routines d’extension n’est pas valide.
LUA_DATA_LENGTH_ERROR
Code de retour secondaire ; l’application n’a pas fourni les données fournies par l’utilisateur requises par le verbe émis. Notez que lorsque SLI_SEND est émis pour une commande SNA LUSTAT, status (en quatre octets) est obligatoire et que lorsque SLI_OPEN est émis avec l’initialisation secondaire, des données sont requises.
LUA_INVALID_SLI_ENCR_OPTION
Code de retour secondaire ; le paramètre lua_encr_decr_option a été défini sur 128 dans SLI_OPEN, ce qui n’est pas pris en charge pour l’option de traitement de chiffrement/déchiffrement.
LUA_STATE_CHECK
Code de retour principal ; le verbe n’a pas été exécuté, car il a été émis dans un état non valide.LUA_NOT_ACTIVE
Code de retour secondaire ; LUA n’était pas actif dans Microsoft Host Integration Server ou SNA Server lorsqu’un verbe LUA a été émis.
LUA_UNEXPECTED_SNA_SEQUENCE
Code de retour secondaire ; des données ou des commandes inattendues ont été reçues de l’hôte pendant le traitement de SLI_OPEN .
LUA_NEG_RSP_FROM_BIND_ROUTINE
Code de retour secondaire ; la routine de SLI_BIND fournie par l’utilisateur a répondu négativement à l’objet BIND. SLI_OPEN s’est terminé sans succès.
LUA_NEG_RSP_FROM_STSN_ROUTINE
Code de retour secondaire ; la routine STSN SLI fournie par l’utilisateur a répondu négativement au STSN. SLI_OPEN s’est terminé sans succès.
LUA_PROCEDURE_ERROR
Code de retour secondaire ; Une erreur de procédure hôte est indiquée par la réception d’un message NSPE ou NOTIFY. Le code de retour est publié sur SLI_OPEN lorsque l’option de nouvelle tentative n’est pas utilisée. Pour utiliser l’option de réinitialisation, définissez lua_wait sur une valeur autre que zéro. La commande LOGON ou INITSELF sera retentée jusqu’à ce que l’hôte soit prêt ou que vous émettez SLI_CLOSE.
LUA_RECEIVED_UNBIND
Code de retour secondaire ; l’unité logique primaire (PLU) a envoyé une commande SNA UNBIND à l’interface LUA lorsqu’une session était active. Par conséquent, la session a été arrêtée.
LUA_SLI_LOGIC_ERROR
Code de retour secondaire ; L’interface LUA a trouvé une erreur interne dans la logique.
LUA_NO_RUI_SESSION
Code de retour secondaire ; aucune session n’a été initialisée pour le verbe LUA émis, ou un verbe autre que SLI_OPEN a été émis avant l’initialisation de la session.
LUA_RESOURCE_NOT_AVAILABLE
Code de retour secondaire ; l’unité logique, l’unité physique, le lien ou la station de liaison spécifiés dans l’unité de requête n’est pas disponible. Ce code de retour est publié sur SLI_OPEN lorsqu’une ressource n’est pas disponible, sauf si vous utilisez l’option de nouvelle tentative.
Pour utiliser l’option de nouvelle tentative, définissez lua_wait sur une valeur autre que zéro. La commande LOGON ou INITSELF sera retentée jusqu’à ce que l’hôte soit prêt ou jusqu’à ce que vous émettez SLI_CLOSE.
LUA_SESSION_LIMIT_EXCEEDED
Code de retour secondaire ; la session demandée n’a pas été activée, car un NAU est à sa limite de session. Ce code de détection SNA s’applique aux requêtes suivantes : BID, CINIT, INIT et ACTDRM.
Le code est publié sur SLI_OPEN lorsqu’un NAU est à sa limite, sauf si vous utilisez l’option RÉESSAYER.
Pour utiliser l’option de réinitialisation, définissez lua_wait sur une valeur autre que zéro. La commande LOGON ou INITSELF sera retentée jusqu’à ce que l’hôte soit prêt ou jusqu’à ce que vous émettez SLI_CLOSE.
LUA_LU_COMPONENT_DISCONNECTED
Code de retour secondaire ; un composant LU n’est pas disponible, car il n’est pas correctement connecté. Assurez-vous que l’alimentation est activée.
LUA_NEGOTIABLE_BIND_ERROR
Code de retour secondaire ; un bind négociable a été reçu, ce qui n’est autorisé par le SLI que lorsqu’une routine de SLI_BIND fournie par l’utilisateur est fournie avec SLI_OPEN.
LUA_BIND_FM_PROFILE_ERROR
Code de retour secondaire ; seuls les profils d’en-tête de gestion de fichiers 3 et 4 sont pris en charge par l’interface LUA. Un profil de gestion de fichiers autre que 3 ou 4 a été trouvé sur le bind.
LUA_BIND_TS_PROFILE_ERROR
Code de retour secondaire ; seuls les profils TS (Transmission Service) 3 et 4 sont pris en charge par l’interface LUA. Un profil TS autre que 3 ou 4 a été trouvé sur le bind.
LUA_BIND_LU_TYPE_ERROR
Code de retour secondaire ; seuls LU 0, LU 1, LU 2 et LU 3 sont pris en charge par LUA. Un lu autre que 0, 1, 2 ou 3 a été trouvé.
LUA_SSCP_LU_SESSION_NOT_ACTIVE
Code de retour secondaire ; le SSCP-LU requis est inactif. Les informations de code de sens spécifique sont en octets 2 et 3. Les paramètres valides sont 0x0000, 0x0001, 0x0002, 0x0003 et 0x0004.
LUA_SESSION_SERVICES_PATH_ERROR
Code de retour secondaire ; Une demande de services de session ne peut pas être redirigée vers un chemin de session SSCP-SSCP. Les informations de code de sens spécifiques en octets 2 et 3 donnent plus d’informations sur la raison pour laquelle la demande ne peut pas être redirigée.
LUA_UNSUCCESSFUL
Code de retour principal ; l’enregistrement du verbe fourni était valide, mais le verbe ne s’est pas terminé correctement.LUA_VERB_RECORD_SPANS_SEGMENTS
Code de retour secondaire ; le paramètre de longueur VCB LUA plus le décalage de segment est au-delà de l’extrémité du segment.
LUA_SESSION_ALREADY_OPEN
Code de retour secondaire ; une session est déjà ouverte pour le nom lu spécifié dans SLI_OPEN.
LUA_INVALID_PROCESS
Code de retour secondaire ; la session pour laquelle un verbe LUA a été émis n’est pas disponible, car un autre processus est propriétaire de la session.
LUA_LINK_NOT_STARTED
Code de retour secondaire ; le LUA n’a pas pu activer la liaison de données pendant l’initialisation de la session.
LUA_INVALID_ADAPTER
Code de retour secondaire ; la configuration du contrôle de liaison de données (DLC) est en erreur ou le fichier de configuration est endommagé.
LUA_ENCR_DECR_LOAD_ERROR
Code de retour secondaire ; un code de retour inattendu a été reçu à partir de la fonction DosLoadModule du système d’exploitation/2 lors de la tentative de chargement du module de liaison dynamique de chiffrement ou de déchiffrement fourni par l’utilisateur.
LUA_ENCR_DECR_PROC_ERROR
Code de retour secondaire ; un code de retour inattendu a été reçu à partir de la fonction DosGetProcAddr os/2 lors de la tentative d’obtention de l’adresse de procédure dans le module de liaison dynamique de chiffrement ou de déchiffrement fourni par l’utilisateur.
LUA_NEG_NOTIFY_RSP
Code de retour secondaire ; le SSCP a répondu négativement à une demande NOTIFY émise indiquant que la lu secondaire était capable d’une session. Le composant demi-session qui a reçu la demande a compris et pris en charge la demande, mais n’a pas pu l’exécuter.
LUA_LU_INOPERATIVE
Code de retour secondaire ; une erreur grave s’est produite alors que le SLI tentait d’arrêter la session. Cette lu n’est pas disponible pour toutes les requêtes LUA jusqu’à ce qu’une unité logique d’activation (ACTLU) soit reçue de l’hôte.
LUA_CANCELED
Code de retour principal ; le code de retour secondaire indique la raison de l’annulation de la commande.LUA_TERMINATED
Code de retour secondaire ; la session a été arrêtée lorsqu’un verbe était en attente. Le processus de verbe a été annulé.
LUA_IN_PROGRESS
Code de retour principal ; une commande asynchrone a été reçue, mais n’est pas terminée.LUA_COMM_SUBSYSTEM_ABENDED
Code de retour principal ; indique l’une des situations suivantes :Le nœud utilisé par cette conversation a rencontré un abandon (ABEND).
La connexion entre le programme de transaction (TP) et le nœud d’unité physique (PU) 2.1 a été rompue (erreur LAN).
Le SnaBase sur l’ordinateur des fournisseurs de services a rencontré un ABEND.
LUA_COMM_SUBSYSTEM_NOT_LOADED
Code de retour principal ; indique qu’il n’a pas été possible de charger un composant requis ou d’y mettre fin lors du traitement du verbe. Par conséquent, la communication n’a pas pu être établie. Contactez l’administrateur système pour mettre en place une action corrective.LUA_INVALID_VERB_SEGMENT
Code de retour principal ; indique que le bloc de contrôle de verbe s’étend au-delà de la fin du segment de données.LUA_UNEXPECTED_DOS_ERROR
Code de retour principal ; après l’émission d’un appel de système d’exploitation, un code de retour inattendu du système d’exploitation a été reçu et est spécifié dans le code de retour secondaire.LUA_STACK_TOO_SMALL
Code de retour principal ; indique que la taille de la pile de l’application est trop petite pour exécuter le verbe. Augmentez la taille de pile de votre application.LUA_INVALID_VERB
Code de retour principal ; le code du verbe ou le code d’opération, ou les deux, n’est pas valide. Le verbe n’a pas été exécuté.
Remarques
Pour chaque SLI_OPEN, l’interface Windows LUA :
Démarre la session de communication.
Lit et vérifie une commande BIND à partir de l’hôte et la transmet à l’application si une routine d’extension BIND est fournie.
Écrit une réponse BIND.
Lit et traite la commande STSN et la transmet à l’application si une extension BIND est fournie (si nécessaire).
Écrit la réponse STSN (si nécessaire).
Lit la commande CRV (si nécessaire).
Écrit la réponse CRV (si nécessaire).
Lit et traite la commande SDT.
Écrit la réponse SDT.
L’interface Windows LUA effectue les fonctions supplémentaires suivantes pour les sessions qui émettent des SLI_OPEN avec le type ouvert défini sur LUA_INIT_TYPE_SEC_IS ou LUA_INIT_TYPE_SEC_LOG :
Écrit un message INITSELF ou un message LOGON non mis en forme.
Lit et traite une réponse INITSELF ou une réponse de message LOGON.
Tout le trafic de messages SNA est administré par SLI_OPEN via la réponse de commande SDT.
Pour choisir une certaine lu configurée pour Windows LUA, l’application définit lua_luname au nom lu en ASCII, avec des espaces de fin si nécessaire.
Lorsque SLI_OPEN est publié avec LUA_OK dans le paramètre lua_prim_rc, SLI_OPEN terminé et la session de flux de données LU-LU a été établie. L’application peut désormais émettre des SLI_BID, des SLI_CLOSE, des SLI_PURGE, des SLI_RECEIVE et des SLI_SEND.
Lorsque SLI_OPEN est publié avec un code de retour principal autre que LUA_OK ou LUA_IN_PROGRESS, la commande n’a pas réussi à établir une session.
Lors de l’utilisation de SLI_OPEN, une application Windows LUA doit fournir un type d’initialisation de session. Les types valides sont :