Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Le verbe SLI_OPEN transfère le contrôle de l’unité logique spécifiée (LU) à l’application LUA (Microsoft® Windows® Logical Unit Application). SLI_OPEN établit une session entre le point de contrôle des services système (SSCP) et l’unité logique spécifiée, ainsi qu’une session LU-LU.
La structure suivante décrit le membre LUA_COMMON du bloc de contrôle verbe (VCB) utilisé par SLI_OPEN.
La deuxième union de syntaxe décrit le membre LUA_SPECIFIC du VCB utilisé par SLI_OPEN. D’autres membres de l’union sont omis pour plus 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 à l’achèvement 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 à l’achèvement 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 verbe) pour que le verbe soit émis, 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 pas ou ne modifie pas ces informations. Ce paramètre est facultatif.
lua_luname
Paramètre fourni. Spécifie le nom ASCII de l’unité logique locale utilisée par la session Windows LUA.
SLI_OPEN nécessite ce paramètre.
Ce paramètre est de huit octets longs, rembourrés à 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 fournies par l’utilisateur (DLL). La valeur doit être le début d’une limite de mot, 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 peuvent être au format EBCDIC (Extended Binary Coded Decimal Interchange Code).
Lorsque SLI_OPEN est émis, ce paramètre peut être l’un des éléments 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 les é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 de l’interface LUA s’est terminé de façon 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 logiques configurées en tant que 3270 unités logiques, en plus des unités LUA. Si ce paramètre est défini sur 1, 3270 unités logiques 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.ouvrir
Membre de l’union de LUA_SPECIFIC utilisé par SLI_OPEN. Ensemble fourni de paramètres contenus dans une structure de SLI_OPEN requise 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 pendant lesquelles l’interface Windows LUA doit attendre avant de réessayer la transmission de l’INITSELF ou du message LOGON après que l’hôte envoie 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 l’un des 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 la liste des 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 comporter jusqu’à huit caractères, avec les octets restants définis sur 0x00.
open.open_extension.lua_procedure_name
Paramètre fourni. Fournit le nom de procédure en ASCII pour la DLL d’extension fournie par l’utilisateur. Le nom de la procédure peut comporter jusqu’à 32 caractères, avec les octets restants définis sur 0x00.
open.lua_ending_delim
Délimiteur de liste d’extensions.
Codes de retour
LUA_OK
Code de retour principal ; le verbe exécuté avec succès.
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 de 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 si 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 é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, windows LUA VCB ne contient pas de handle d’événements 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 de la 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 ; la 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 de données fournies par l’utilisateur requises par le verbe émis. Notez que lorsque SLI_SEND est émis pour une commande SNA LUSTAT, l’état (en quatre octets) est requis et que lorsque SLI_OPEN est émis avec l’initialisation secondaire, les 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 du chiffrement/déchiffrement.
LUA_STATE_CHECK
Code de retour principal ; le verbe n’a pas 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 que SLI_OPEN a été traité.
LUA_NEG_RSP_FROM_BIND_ROUTINE
Code de retour secondaire ; la routine SLI_BIND fournie par l’utilisateur a répondu négativement à la liaison. SLI_OPEN s’est terminé sans succès.
LUA_NEG_RSP_FROM_STSN_ROUTINE
Code de retour secondaire ; la routine SLI STSN 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é dans 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 différente de 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_RECEIVED_UNBIND
Code de retour secondaire ; l’unité logique principale (PLU) a envoyé une commande UNBIND SNA à 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, la liaison ou la station de liaison spécifiée dans l’unité de requête n’est pas disponible. Ce code de retour est publié dans SLI_OPEN lorsqu’une ressource n’est pas disponible, sauf si vous utilisez l’option de nouvelle tentative.
Pour utiliser l’option 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 sens SNA s’applique aux requêtes suivantes : BID, CINIT, INIT et ACTDRM.
Le code est publié sur SLI_OPEN lorsqu’un NAU est limité, sauf si vous utilisez l’option RETRY.
Pour utiliser l’option de réinitialisation, définissez lua_wait sur une valeur différente de 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 connecté correctement. Assurez-vous que la puissance est activée.
LUA_NEGOTIABLE_BIND_ERROR
Code de retour secondaire ; une liaison négociée a été reçue, qui est uniquement autorisée par le SLI 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 la liaison.
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 la liaison.
LUA_BIND_LU_TYPE_ERROR
Code de retour secondaire ; seules lu 0, LU 1, LU 2 et LU 3 sont prises en charge par LUA. Une unité logique autre que 0, 1, 2 ou 3 a été trouvée.
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 d’accès de session SSCP-SSCP. Les informations de code de sens spécifiques en octets 2 et 3 fournissent plus d’informations sur la raison pour laquelle la requête ne peut pas être réacheminée.
LUA_UNSUCCESSFUL
Code de retour principal ; l’enregistrement de verbe fourni était valide, mais le verbe n’a pas réussi.LUA_VERB_RECORD_SPANS_SEGMENTS
Code de retour secondaire ; le paramètre de longueur LUA VCB plus le décalage de segment est au-delà de la fin du segment.
LUA_SESSION_ALREADY_OPEN
Code de retour secondaire ; une session est déjà ouverte pour le nom de l’unité logique spécifiée 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 possède la session.
LUA_LINK_NOT_STARTED
Code de retour secondaire ; l’UA n’a pas pu activer le lien de données lors de 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 de la fonction Os/2 DosLoadModule lors de la tentative de chargement du module de liaison dynamique fourni par l’utilisateur ou de déchiffrement.
LUA_ENCR_DECR_PROC_ERROR
Code de retour secondaire ; un code de retour inattendu a été reçu de la fonction DosGetProcAddr du système d’exploitation/2 lors de la tentative d’obtention de l’adresse de procédure dans le module de chiffrement ou de déchiffrement dynamique 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 l’unité logique secondaire était capable d’une session. Composant de demi-session qui a reçu la demande comprise et pris en charge la requête, mais qui n’a pas pu l’exécuter.
LUA_LU_INOPERATIVE
Code de retour secondaire ; une erreur grave s’est produite pendant 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 donne 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 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 conditions suivantes :Le nœud utilisé par cette conversation a rencontré un ABEND.
La connexion entre le programme de transaction (TP) et le nœud d’unité physique (PU) 2.1 a été interrompue (erreur LAN).
Le SnaBase sur l’ordinateur TPS a rencontré un ABEND.
LUA_COMM_SUBSYSTEM_NOT_LOADED
Code de retour principal ; un composant requis n’a pas pu être chargé ou arrêté lors du traitement du verbe. Ainsi, la communication n’a pas pu avoir lieu. Contactez l’administrateur système pour obtenir une action corrective.LUA_INVALID_VERB_SEGMENT
Code de retour principal ; le VCB s’étend au-delà de la fin du segment de données.LUA_UNEXPECTED_DOS_ERROR
Code de retour principal ; après avoir émis 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 ; la taille de la pile de l’application est trop petite pour exécuter le verbe. Augmentez la taille de la pile de votre application.LUA_INVALID_VERB
Code de retour principal ; le code détaillé ou le code d’opération, ou les deux, n’est pas valide. Le verbe n’a pas exécuté.
Remarques
Pour chaque SLI_OPEN, l’interface Windows LUA :
Démarre la session de communication.
Lit et vérifie une commande BIND 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 de message INITSELF ou LOGON.
Tout le trafic de messages SNA est administré par SLI_OPEN par le biais de la réponse de commande SDT.
Pour choisir une unité logique configurée pour Windows LUA, l’application définit lua_luname le nom de l’unité logique en ASCII, remplie d’espaces de fin si nécessaire.
Lorsque SLI_OPEN est publié avec LUA_OK dans le paramètre lua_prim_rc, SLI_OPEN correctement terminé et la session de flux de données LU-LU a été établie. L’application peut désormais émettre SLI_BID, SLI_CLOSE, SLI_PURGE, SLI_RECEIVE et 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 correctement établi une session.
Lorsque vous utilisez SLI_OPEN, une application Windows LUA doit fournir un type d’initialisation de session. Les types valides sont :