次の方法で共有


RUI_INIT

RUI_INIT動詞は、指定された論理ユニット (LU) の制御を Microsoft® Windows® 論理ユニット アプリケーション (LUA) アプリケーションに転送します。 RUI_INIT は、システム・サービス制御ポイント (SSCP) と指定された LU との間にセッションを確立します。

3270 エミュレーター ユーザーの場合、LUA LU ではなく 3270 LU を使用できる Microsoft Host Integration Server 拡張機能が追加されました。 詳細については、このトピックの「解説」を参照してください。

次の構造体は、 RUI_INIT によって使用される動詞制御ブロック (VCB) の LUA_COMMONメンバーについて説明します。

構文

  
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_verb
指定されたパラメーター。 要求ユニット インターフェイス (RUI) 動詞のLUA_VERB_RUI動詞コードが含まれています。

lua_verb_length
指定されたパラメーター。 LUA VCB の長さをバイト単位で指定します。 発行される動詞レコードの長さを含む必要があります。

lua_prim_rc
動詞の完了時に LUA によって設定されたプライマリ リターン コード。 有効なリターン コードは、発行された LUA 動詞によって異なります。

lua_sec_rc
動詞の完了時に LUA によって設定された 2 次リターン コード。 有効なリターン コードは、発行された LUA 動詞によって異なります。

lua_opcode
指定されたパラメーター。 発行する動詞の LUA コマンド コード (動詞操作コード) が含LUA_OPCODE_RUI_INIT。

lua_correlator
指定されたパラメーター。 動詞を他のユーザー指定の情報とリンクするユーザー指定の値が含まれます。 LUA では、この情報は使用または変更されません。 このパラメーターは省略可です。

lua_luname
指定されたパラメーター。 Windows LUA セッションで使用されるローカル LU の ASCII 名を指定します。

RUI_INIT には、このパラメーターが必要です。

このパラメーターは 8 バイトの長さであり、名前が 8 文字より短い場合は、右側にスペース (0x20) が埋め込まれます。

lua_extension_list_offset
Host Integration Server のRUI では使用されず、ゼロに設定する必要があります。

lua_cobol_offset
Host Integration Server の LUA では使用されず、ゼロにする必要があります。

lua_sid
返されたパラメーター。 セッション識別子を指定します。

lua_max_length
RUI_INITでは使用されず、0 に設定する必要があります。

lua_data_length
RUI_INITでは使用されず、0 に設定する必要があります。

lua_data_ptr
RUI_INITでは使用されず、0 に設定する必要があります。

lua_post_handle
指定されたパラメーター。 非同期通知がイベントによって実現される場合は、Microsoft® Windows Server で使用されます。 この変数には、通知されるイベントのハンドルまたはウィンドウ ハンドルが含まれます。

lua_th
RUI_INITでは使用されず、0 に設定する必要があります。

lua_rh
RUI_INITでは使用されず、0 に設定する必要があります。

lua_flag1
RUI_INITでは使用されず、0 に設定する必要があります。

lua_message_type
受信または送信の SNA コマンドとデータの種類を指定します。 これは、RUI_INITに返されるパラメーター です。 使用可能な値は次のとおりです。

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

セッション レベル インターフェイス (SLI) は、LUA インターフェイス拡張ルーチンを介して BIND、CRV、STSN 要求を受信して応答します。

LU_DATA、LUSTAT_LU、LUSTAT_SSCP、およびSSCP_DATAは SNA コマンドではありません。

lua_flag2
返されたパラメーター。 LUA によって返されるメッセージのフラグが含まれています。

lua_flag2.async

LUA インターフェイス動詞が 1 に設定されている場合に非同期的に完了したことを示します。

RUI_INIT は、LUA_PARAMETER_CHECK) などのエラーを返さない限り、常に非同期的に完了します。

lua_resv56
指定されたパラメーター。 RUI_INITおよびSLI_OPENによって使用される予約済みフィールド。 配列内の他のすべての予約済みフィールドは空白のままにする必要があります。 詳細については、「解説」セクションの Host Integration Server 拡張機能の説明を参照してください。

lua_resv56[1]

指定されたパラメーター。 LUA LU に加えて、3270 LU として構成された LU に、RU アプリケーションがアクセスできるかどうかを示します。 このパラメーターが 0 以外の場合は、3270 LU にアクセスできます。

lua_resv56[2]

指定されたパラメーター。 LU-SSCP セッションまたは接続が切断されたときに、LU ライブラリが LU を解放するかどうかを示します。 このパラメーターが 0 以外の場合、LU は解放されません。

lua_resv56[3]

指定されたパラメーター。 不完全な読み取りがサポートされているかどうかを示します。 このパラメーターが 0 以外の値に設定されている場合は、不完全読み取りまたは切り捨て読み取りがサポートされます。 詳細については、 RUI_READの解説を参照してください。

lua_resv56[4]

指定されたパラメーター。 LU がホストでリサイクルされる場合に、アプリケーションが LU を保持することを、RUI ライブラリが許可するかどうかを示します。 このパラメーターが 0 以外の場合、アプリケーションは LU を保持できます。

lua_encr_decr_option
暗号化オプションのフィールド。 RUI_INITでは、以下のみがサポートされます。

lua_encr_decr_option = 0

lua_encr_decr_option = 128

1 ~ 127 の値はサポートされていません。

リターン コード

LUA_OK
プライマリ リターン コード。動詞が正常に実行されました。

LUA_CANCELED
プライマリ リターン コード。別の動詞によって取り消されたため、動詞が正常に完了しませんでした。

LUA_TERMINATED

セカンダリ リターン コード。 RUI_TERM は、RUI_INITが完了 する 前に発行されました。

LUA_PARAMETER_CHECK
プライマリ リターン コード。パラメーター エラーのため、動詞が実行されませんでした。

LUA_INVALID_LUNAME

セカンダリ リターン コード。 lua_luname パラメーターが、構成ファイル内の LUA LU 名または LU プール名と一致しませんでした。

LUA_INVALID_POST_HANDLE

セカンダリ リターン コード。非同期投稿方法としてイベントを使用する Windows オペレーティング システムの場合、Windows LUA VCB には有効なイベント ハンドルが含まれていません。

LUA_RESERVED_FIELD_NOT_ZERO

セカンダリ リターン コード。動詞レコードの予約フィールド、またはこの動詞で使用されていないパラメーターが 0 以外の値に設定されました。

LUA_VERB_LENGTH_INVALID

セカンダリ リターン コード。LUA 動詞が LUA によって予期しない値 lua_verb_length 発行されました。

LUA_STATE_CHECK
プライマリ リターン コード。無効な状態で発行されたため、動詞は実行されませんでした。

LUA_DUPLICATE_RUI_INIT

セカンダリ リターン コード。 lua_luname パラメーターは、このアプリケーションで既に使用されている LU 名または LU プール名を指定しました (または、このアプリケーションが既 に実行中RUI_INIT )。

LUA_UNSUCCESSFUL
プライマリ リターン コード。指定された動詞レコードは有効でしたが、動詞が正常に完了しませんでした。

LUA_COMMAND_COUNT_ERROR

次のいずれかのエラーが発生したことを示すセカンダリ リターン コード。

アプリケーションが既にアクティブなセッションの最大数に達していたため、動詞を発行できませんでした。 Windows では、アプリケーションは、いつでも 15,000 個のセッションをアクティブにすることができます。

動詞は、LU プールの名前またはプール内の LU の名前を指定しましたが、プール内のすべての LU が使用中です。

LUA_ENCR_DECR_LOAD_ERROR

セカンダリ リターン コード。動詞は、0 または 128 以外 のlua_encr_decr_option の値を指定しました。

LUA_INVALID_PROCESS

セカンダリ リターン コード。 lua_luname で指定された LU が別のプロセスで使用されています。

LUA_LINK_NOT_STARTED

セカンダリ リターン コード。ホストへの接続が開始されていません。使用できるリンク サービスはアクティブでありません。

LUA_COMM_SUBSYSTEM_ABENDED
プライマリ リターン コード。は、次のいずれかの条件を示します。

  • この会話で使用されたノードで、異常終了が発生しました。

  • トランザクション プログラム (TP) と物理ユニット (PU) 2.1 ノード間の接続が切断されました (LAN エラー)。

  • TP コンピューターの SnaBase で、異常終了が発生しました。

    LUA_SESSION_FAILURE
    プライマリ リターン コード。必要な Host Integration Server コンポーネントが終了しました。

    LUA_LU_COMPONENT_DISCONNECTED

    セカンダリ リターン コード。は、リンク サービスまたはホスト LU に問題があるため、LUA セッションが失敗したことを示します。

    LUA_INVALID_VERB
    プライマリ リターン コード。動詞コードまたは操作コード、またはその両方が無効です。 動詞が実行されませんでした。

    LUA_STACK_TOO_SMALL
    プライマリ リターン コード。アプリケーションのスタック サイズが小さすぎて動詞を実行できませんでした。 アプリケーションのスタック サイズを増やします。

    LUA_COMM_SUBSYSTEM_NOT_LOADED
    プライマリ リターン コード。必要なコンポーネントを読み込めなかったか、動詞の処理中に終了しました。 したがって、通信は行われませんでした。 修正措置については、システム管理者に問い合わせてください。

    LUA_UNEXPECTED_DOS_ERROR
    プライマリ リターン コード。オペレーティング システム呼び出しを発行した後、予期しないオペレーティング システムのリターン コードが受信され、セカンダリ リターン コードで指定されます。

注釈

この動詞は、セッションに対して発行された最初の LUA 動詞である必要があります。 この動詞が正常に完了するまで、このセッションに対して発行できる他の LUA 動詞は RUI_TERM (保留中の RUI_INITを終了する) だけです。

このセッションで発行された他のすべての動詞は、この動詞の次のいずれかのパラメーターを使用してセッションを識別する必要があります。

  • lua_sidでアプリケーションに返されるセッション識別子。

  • lua_luname パラメーターでアプリケーションによって提供される LU 名または LU プール名。

    RUI_INIT は、ホストから ACTLU メッセージを受信した後に完了します。 必要に応じて、動詞は無期限に待機します。 RUI_INITする前に ACTLU が既に受信されている場合、LUA は NOTIFY をホストに送信して、LU が使用できる状態であることを通知します。

    ACTLU も NOTIFY も LUA アプリケーションには表示されません。

    RUI_INITが正常に完了すると、このセッションはセッションが開始された LU を使用します。 RUI_TERMが発行されるまで、または LUA_SESSION_FAILURE プライマリ リターン コードを受信するまで、他の LUA セッション (このアプリケーションまたは他のアプリケーションから) は LU を使用できません。

3270 LU の使用

3270 エミュレーター・ユーザーに、RUI API でエミュレーター・インターフェース仕様 (EIS) 構成呼び出しを使用できるようにするために、HOST Integration Server 拡張機能がRUIに追加されました。 この拡張機能を使用すると、LUA LU ではなく 3270 LU を使用できます。 アプリケーションがRUI_INIT呼びしで lua_resv56[1] を 0 以外の値に設定すると、3270 LU を使用できます。

LU を解放しない

アプリケーションがRUI_INIT呼び出しで lua_resv56[2] を 0 以外の値に設定した場合、LU-SSCP セッションまたは接続が切断されても、LU は解放されません。 この Host Integration Server 拡張機能が有効になっている場合、アプリケーションはセッション障害または接続エラーの後に新しい RUI_INIT を発行する必要はありません。 LU-SSCP セッションがバックアップされると (アプリケーションは WinRUIGetLastInitStatus を使用してこれを検出できます)、アプリケーションでもう一度使用を開始できます。

このセッションでのチャンクのサポート

アプリケーションが RUI_INIT セッション確立時に lua_resv56[3] を 0 以外の値に設定すると、RUI_READの動作を変更できる Host Integration Server 拡張機能が有効になります。 RUI_READ呼び出しの既定の動作は、アプリケーションのデータ バッファーが RU 内のすべてのデータを受信するのに十分な大きさでない場合にデータを切り捨て (残りのデータを破棄) し、エラー コードを返します。 lua_resv56[3] がRUI_INIT呼び出しで 0 以外の値に設定されている場合、アプリケーションのデータ バッファーが十分な大きさでない場合に発行されたRUI_READでは、RU データは破棄されません。 RUI_READ動詞は、プライマリ リターン コードの成功 (LUA_OK) とセカンダリ リターン コードのLUA_DATA_INCOMPLETEを返します。 その後 、後続のRUI_READ 要求を発行して、アプリケーションのデータ バッファーを超えたデータを取得できます。

DACTLU を無視する

アプリケーションが RUI_INIT セッション確立lua_resv56[4] を 0 以外の値に設定すると、Host Integration Server 拡張機能が有効になり、LU がホストでリサイクルされた場合 (つまり、非アクティブ化および再アクティブ化) 場合、アプリケーションは LU を保持できます。

その他の予約済みフィールドはすべて空白のままにする必要があります。

詳細については、3270 エミュレーター インターフェイス仕様のソフトウェア開発キット (SDK) ヘルプのセクションの sepdcrec 関数の説明を参照してください。

暗号化

セッション レベルの暗号化は、暗号化検証 (CRV) 要求によって実装されます。 RUI アプリケーションは、これらの要求に必要なすべての処理を実行する必要があります。 RUI 以外のすべてのインターフェイスについて、CRV 要求は Host Integration Server によって否定応答で拒否されます。

RUI_INITでは、次のオプションがサポートされています。

  • lua_encr_decr_option = 0

  • lua_encr_decr_option = 128

    1 ~ 127 の値 (ACSRENCR ルーチンおよび ACSROECR ルーチン) はサポートされていません。

    送信側アプリケーションは、データを 8 バイトの倍数に埋め込み、RH に埋め込まれたデータ インジケーター ビットを設定し、暗号化を行います。 受信アプリケーションは、復号化後にパディングを削除する役割を担います。

こちらもご覧ください

RUI_TERM
SLI_OPEN