SLI_OPEN動詞は、指定された論理ユニット (LU) の制御を Microsoft® Windows® 論理ユニット アプリケーション (LUA) アプリケーションに転送します。 SLI_OPENは、 システム・サービス制御ポイント (SSCP) と指定された LU の間のセッションと、LU-LU・セッションを確立します。
次の構造体は、SLI_OPENによって使用される動詞制御ブロック (VCB) のLUA_COMMONメンバーについて説明します。
2 番目の構文共用体は、 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 によって設定された 2 次リターン コード。 有効なリターン コードは、発行された LUA 動詞によって異なります。
lua_opcode
指定されたパラメーター。 発行する動詞の LUA コマンド コード (動詞操作コード) が含LUA_OPCODE_SLI_OPEN。
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 では使用されず、ゼロにする必要があります。
lua_sid
返されたパラメーター。 セッション識別子を指定します。
lua_max_length
SLI_OPENでは使用されず、0 に設定する必要があります。
lua_data_length
指定されたパラメーター。 送信されるデータの実際の長さを指定します。
lua_data_ptr
SLI_OPENに送信するデータを含むアプリケーション提供のバッファーへのポインター。
SNA コマンドとデータの両方がこのバッファーに配置され、拡張バイナリ コード 10 進交換コード (EBCDIC) 形式にすることができます。
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
LUA インターフェイス動詞が 1 に設定されている場合に非同期的に完了したことを示します。
lua_resv56
指定されたパラメーター。 SLI_OPENおよびRUI_INITによって使用される予約済みフィールド。 詳細については、「解説」を参照してください。lua_resv56[1]
指定されたパラメーター。 このパラメーターは 0 に設定する必要があります。
lua_resv56[2]
指定されたパラメーター。 SLI アプリケーションが LUA LU に加えて、3270 LU として構成された LU にアクセスできるかどうかを示します。 このパラメーターを 1 に設定すると、3270 LU にアクセスできます。
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
セカンダリ リターン コード。VCB でlua_sid の無効な値が指定されました。
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
セカンダリ リターン コード。発行された SLI_OPEN の lua_init_type は、データのバッファーに有効な INITSELF コマンドがない場合に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 が 2 次初期設定で発行される場合はデータが必要であることに注意してください。
LUA_INVALID_SLI_ENCR_OPTION
セカンダリ リターン コード。SLI_OPENでは、lua_encr_decr_option パラメーターが 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 コンポーネントが正しく接続されていないため、使用できません。 電源がオンになっていることを確認します。
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) プロファイル 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
プライマリ リターン コード。は、次のいずれかの条件を示します。この会話で使用されたノードで、異常終了が発生しました。
トランザクション プログラム (TP) と物理ユニット (PU) 2.1 ノード間の接続が切断されました (LAN エラー)。
TP コンピューターの SnaBase で、異常終了が発生しました。
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 応答を書き込みます。
BIND 拡張機能が指定されている場合は、STSN コマンドを読み取って処理し、必要に応じてアプリケーションに渡します。
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を発行できるようになりました。
LUA_OKまたはLUA_IN_PROGRESS以外のプライマリ リターン コードを使用してSLI_OPENがポストされた場合、コマンドはセッションを正常に確立しませんでした。
SLI_OPENを使用する場合、Windows LUA アプリケーションはセッション初期化の種類を提供する必要があります。 有効な種類は、次のとおりです。