Message


BIOSメッセージリファレンス


【メッセージ一覧】

 システムプロセスが使用しているメッセージコードの一覧を以下に示します。

コード
応答
メッセージ名
 MSG_SYSTEM
0
 システムメッセージ
 MSG_PUTDATA
1
任意
 データ通知
 MSG_GETDATA
2
 データ要求
 MSG_PUTSTAT
3
 状態通知
 MSG_GETSTAT
4
有 *1
 状態取得
 MSG_SVOPEN
5
無 *2
 サーバオープン要求
 MSG_SVCLOSE
6
無 *3
 サーバクローズ要求
 MSG_CONNECT
7
無 *4
 接続要求
 MSG_CONNECTED
8
 接続完了通知
 MSG_CONNCLOSE
9
無 *5
 切断要求
 MSG_CONNCLOSED
10
 接続切断通知
 MSG_SVOPENED
11
 サーバオープン通知
 MSG_SVCLOSED
12
 サーバクローズ通知
 MSG_PUTFILE
13
必須
 ファイル書込要求
 MSG_GETFILE
14
必須
 ファイル取得要求
 MSG_BUFFULL
15
 バッファ満杯通知
 MSG_BUFREADY
16
 バッファレディ通知
 MSG_LSTFILE
17
必須
 ファイル一覧要求
 MSG_ENDFILE
18
必須
 ファイル終了通知
 MSG_DELFILE
19
必須
 ファイル削除要求
 MSG_APPENDFILE
20
必須
 ファイル追加要求
 MSG_CH_DIR
21
必須
 ディレクトリ変更要求
 MSG_PUTLOG
24
 ログ通知
 MSG_GETREQ
30
必須
 SNMP-GET要求
 MSG_GETNEXTREQ
31
必須
 SNMP-GETNEXT要求
 MSG_SETREQ
32
必須
 SNMP-SET要求
 MSG_GETBULKREQ
33
必須
 SNMP-GETBULK要求
 MSG_TRAPSEND
34
必須
 SNMP-TRAP送信要求
 ERR_SRCPID
0x80
 プロセスIDエラー
 (システム間でのみ使用)
 ERR_MSGCMD
0x81
 コマンドエラー
 ERR_PARAMLEN
0x82
 パラメータ長エラー
 ERR_PARAMDATA
0x83
 パラメータデータエラー
 (システム間でのみ使用)
 ERR_READONLY
0x84
 読み取りエラー
 (システム間でのみ使用)
 ERR_INVALIDSTAT
0x85
 状態エラー
 ERR_DESTNON
0x86
 宛先エラー

 システムプロセスが使用するメッセージではパラメータを以下のように扱います。

 ・パラメータ長が4バイト以下の場合、メッセージ構造は以下のようになります。
+0
+1
+2
+3
msg+00
宛先プロセスID
自プロセスID
msg+04
メッセージ種別
コマンドコード
パラメータ長
msg+08
パラメータの実体

 ・パラメータ長が4より大きい場合、メッセージ構造は以下のようになります。「 メモリ取得 」を参照して下さい。
+0
+1
+2
+3
msg+04
宛先プロセスID
自プロセスID
msg+04
メッセージ種別
コマンドコード
パラメータ長
msg+08
メモリ取得 」ファンクションで取得したポインタ
(下図の先頭アドレスを指すポインタ)

  メモリ管理テーブル
+0
+1
+2
+3
tbl+00
tbl+??
先頭アドレス(確保したヒープ領域を指すポインタ)
tbl+??
tbl+--

  確保されたヒープ内の実メモリ
+0
+1
--
--
heap+??
 
heap+??
パラメータの実体
heap+--
 

【システムメッセージ】

 <フォーマット>
+0
+1
+2
+3
req+00
全てのプロセス
システム(常に0)
req+04
MSG_REQUEST
MSG_SYSMSG
0
req+08
0

 <解説>
 シリアルの受信バッファにデータがある場合、動作中の全てのプロセスに通知します。
 ソケットにイベントが発生した場合、ソケット所有のプロセスにのみ通知します。

 イベントが処理されるまでメッセージが通知されます。(メッセージは取得したが、処理は行なわないとまたこのメッセージが通知されます。)

 <ユーザプログラムの処理>
 シリアルのデータを直接処理するプログラム(自プロセスでRSオープンした)の場合、「RS受信」ファンクションでデータを受信して下さい。
 ソケットをオープンしている場合、オープン中のソケットに対して「イベントチェック」ファンクションでソケットの状態チェックして状態に対応した処理を行なって下さい。
 シリアルもオープンしていないプロセスの場合、このメッセージは無視して下さい。
 応答(MSG_RESPONSE+MSG_SYSMSG)は必要ありません。

【データ通知】

 <フォーマット>
+0
+1
+2
+3
req+00
受付プロセス
発行元プロセス
req+04
MSG_REQUEST
MSG_PUTDATA
データ長
req+08
データ または 「 メモリ取得 」ファンクションで取得したポインタ

 <プロセス>
 発行プロセス:FTPサーバ、ソケットクライアント、ソケットサーバ、シリアルスルー、UDPスルー、ユーザプログラム
 受付プロセス:全てのプロセス

 <解説>
 FTPサーバは、データコネクションから受信したデータを本メッセージで通知します。
 FTPサーバに通知した場合、FTPクライアントからのGETによりデータが転送されます。このとき動作パラメータのファイルターミネータの指定があれば、ターミネータ文字で区切られます。FTPクライアントの要求があるまでは、内部バッファ(64キロバイト)にデータを保持します。

 ソケットクライアント、ソケットサーバは、接続ソケットから受信したデータを本メッセージで通知します。
 ソケットクライアント、ソケットサーバに通知した場合、接続ソケットからデータを送信します。

 シリアルスルーは、シリアルインタフェースから受信したデータを本メッセージで通知します。このとき、動作パラメータのレコードターミネータの指定があれば、ターミネータ文字で区切られます。
 シリアルスルーに通知した場合、シリアルインタフェースからデータを送信します。

 UDPスルーは、UDPソケットから受信したデータを本メッセージで通知します。
 UDPスルーに通知した場合、UDPソケットから宛先に送信します。
 UDPスループロセスとの「データ通知」メッセージのデータ部分のフォーマットは「サーバオープン要求」メッセージの動作モードで異なります。
   動作モード:0,1  全て転送される実データ
   動作モード:2   データの先頭6バイトにアドレス情報(実データは6バイト目から)
                アドレス構造はIPアドレス(4バイト)+ポート番号(2バイト)

 TELNETサーバに通知した場合、最初の接続したTELNETクライアントにデータを送信します。

 TELNETサーバ以外の各システムプロセスはデータ処理をした時に、メッセージ種別をMSG_RESPONSEとした応答メッセージを発行元に通知します。データ長はそのまま返しますがデータは返しません。MSG_RESPONSE+MSG_PUTDATAのデータの「メモリ解放」は必要ありません。

 <ユーザプログラムの処理>
 メッセージ種別がMSG_REQUESTの場合、受け取ったデータに対する処理を行なって下さい。
 データ長が4バイトより大きい場合はデータのメモリを解放して下さい。

 システムプロセスに対する応答メッセージは必須ではありません。(システムプロセスで捨てられます。)
 システムプロセスにデータを渡す場合、データ長によりデータの設定方法を切り替えて下さい。

【データ要求】

 <フォーマット>
+0
+1
+2
+3
req+00
受付プロセス
発行元プロセス
req+04
MSG_REQUEST
MSG_GETDATA
0
req+08
0

 <プロセス>
 発行プロセス:ユーザプログラム
 受付プロセス:FTPサーバ、ソケットクライアント、ソケットサーバ、シリアルスルー、UDPスルー

 <解説>
 各受付プロセスに通知した場合、以降の「データ通知」メッセージの宛先プロセスを本ファンクション発行元プロセスに設定します。

 <ユーザプログラムの処理>
 システムプロセスがユーザプログラムに発行することはありません。
 各システムプロセスは応答のメッセージは発行しません。

【状態通知】

 <フォーマット>
+0
+1
+2
+3
req+00
受付プロセス
発行元プロセス
req+04
MSG_REQUEST
MSG_PUTSTAT
状態を表すテキストデータの長さ
req+08
状態を表すテキストデータ または 「 メモリ取得 」ファンクションで取得したポインタ

 <プロセス>
 発行プロセス:ユーザプログラム、シリアルスルー
 受付プロセス:FTPサーバ、TELNETサーバ、ユーザプログラム

 <解説>
 FTPサーバは、FTPライアントからSTATコマンドを受け付けると、「 状態取得 」メッセージを通知して本メッセージを待ちます。本メッセージのパラメータをFTPクライアントに送信します。

 TELNETサーバは、TELNETクライアントからSTコマンドを受け付けると、「 状態取得 」メッセージを通知して本メッセージを待ちます。本メッセージのパラメータをTELNETクライアントに送信します。

 シリアルスルーは「 状態取得 」メッセージに対する応答として、制御線状態とシリアル送受信バッファのデータ量をテキストデータで通知します。

 <ユーザプログラムの処理>
 受け取ったデータに対する処理を行い、データのメモリが存在する場合は解放して下さい。
 本メッセージに対する応答は必要ありません。

【状態取得】

 <フォーマット>
+0
+1
+2
+3
req+00
受付プロセス
発行元プロセス
req+04
MSG_REQUEST
MSG_GETSTAT
4
req+08
オプション(0=状態要求登録/1=現在の状態を要求/2=状態を表すテキストデータを要求)

 <プロセス>
 発行プロセス:FTPサーバ、TELNETサーバ、ユーザプログラム
 受付プロセス:FTPサーバ、ソケットクライアント、ソケットサーバ、シリアルスルー、UDPスルー

 <解説>
 FTPサーバは、FTPクライアントからSTATコマンドを受け付けると、本メッセージ(オプション=2)を出力します。

 TELNETサーバは、TELNETクライアントからSTコマンドを受け付けると、本メッセージ(オプション=2)を出力します。

 FTPサーバ、ソケットサーバに通知した場合、「 接続完了通知 」、「 接続切断通知 」、「 サーバオープン通知 」、「 サーバクローズ通知 」メッセージのいずれかを状態に合わせて発行元に通知します。

 ソケットクライアントに通知した場合、「 接続完了通知 」、「 接続切断通知 」メッセージのいずれかを状態に合わせて発行元に通知します。

 UDPスルーに通知した場合、「 サーバオープン通知 」、「 サーバクローズ通知 」メッセージのいずれかを状態に合わせて発行元に通知します。

 シリアルスルーに通知した場合、オプション=2であれば、制御線状態とシリアル送受信バッファのデータ量を「 状態通知 」メッセージで発行元プロセスに通知します。

 オプションは以下になります。
   0:以降の状態変化時に「 状態通知 」メッセージを発行元プロセスに通知します。
   1:現在の状態を「 状態通知 」メッセージを発行元プロセスに通知します。
     以降の状態変化時には通知しません。
   2:FTPサーバ、ソケットクライアント、ソケットサーバはメッセージを無視します。

 <ユーザプログラムの処理 *1>
 システムプロセスがユーザプログラムに発行するケースは、FTPサーバとTELNETサーバのみでその場合、オプション=2です。この場合応答として「 状態通知 」メッセージを発行します。
 本メッセージに対する応答は必要ありません。

【サーバオープン要求】

 <フォーマット>
+0
+1
+2
+3
req+00
受付プロセス
発行元プロセス
req+04
MSG_REQUEST
MSG_SVOPEN
パラメータ長
req+08
(ユーザ名/パスワード/ポート番号/動作モード)

 <プロセス>
 発行プロセス:ユーザプログラム
 受付プロセス:FTPサーバ、ソケットサーバ、TELNETサーバ、UDPスルー

 <解説>
 FTPサーバに通知した場合、FTPのリッスンソケットをオープンします。(ポート番号は無視します。)
 ログインを許可するユーザ名、パスワードをパラメータに指定されているものに切り替えます。

 ソケットサーバに通知した場合、パラメータに指定されているポート番号でリッスンソケットをオープンします。

 TELNETサーバに通知した場合、TELNETのリッスンソケットをオープンします。(ポート番号は無視します。)

 UDPスルーに通知した場合、パラメータに指定されているポート番号でUDPソケットを作成します。

 本メッセージは応答はありません。*2>
 すでにソケットが作成されている場合や、クライアントから接続されている場合は、「 状態エラー 」メッセージを発行元に返します。

 <ユーザプログラムの処理>
 システムプロセスがユーザプログラムに発行することはありません。

 ユーザ名、パスワードはそれぞれヌルで終わる文字列として下さい。有効な長さは15バイトまでで、15バイトを超える部分は無視されます。

 FTPでユーザ名、パスワードを「無」にする場合、ソケットサーバの場合、メッセージ構造は以下の様にして下さい。
+0
+1
+2
+3
req+00
FtpSv/SockSv
自プロセス
req+04
MSG_REQUEST
MSG_SVOPEN
2
req+08
ポート番号
x

 FTPでユーザ名、パスワードを指定する場合、「 メモリ取得 」ファンクションにより必要なメモリを確保し、その先頭からパラメータを設定して下さい。メッセージ構造は以下の様になります。
+0
+1
+2
+3
req+00
FtpSv
自プロセス
req+04
MSG_REQUEST
MSG_SVOPEN
パラメータ長
req+08
メモリ取得 」ファンクションで取得したポインタ
+0
+1
+2
+3
heap+00
ボート番号(2バイト)
ユーザ名(先頭2バイト)
heap+04
ユーザ名(可変長、NULLターミネート)
heap+--
パスワード(可変長、NULLターミネート)

 UDPスルーの場合、「 メモリ取得 」ファンクションにより必要なメモリを確保し、その先頭からパラメータを設定して下さい。メッセージ構造は以下の様になります。
+0
+1
+2
+3
req+00
SockUdp
自プロセス
req+04
MSG_REQUEST
MSG_SVOPEN
4
req+08
ポート番号
動作モード

 動作モード以下になります。
   0:指定ポート番号は無視されます。ポート番号、宛先アドレスは動作パラメータの設定値に従います。
   1:指定ポート番号でバインドします。宛先アドレスは動作パラメータの設定値に従います。
   2:指定ポート番号でバインドします。宛先アドレスは「 データ通知 」メッセージの先頭6バイトを参照します。
     「 データ通知 」メッセージを発行する場合、 メッセージの先頭6バイトに送信元アドレスを設定します。

【サーバクローズ要求】

 <フォーマット>
+0
+1
+2
+3
req+00
受付プロセス
発行元プロセス
req+04
MSG_REQUEST
MSG_SVCLOSE
0
req+08
0

 <プロセス>
 発行プロセス:ユーザプログラム
 受付プロセス:FTPサーバ、ソケットサーバ、TELNETサーバ、UDPスルー

 <解説>
 FTPサーバ、ソケットサーバ、TELNETサーバに通知した場合、クライアントからの接続ソケットを含めてすべてのソケットをクローズします。

 UDPスルーに通知した場合、UDPソケットを解放します。

 本メッセージは応答はありません。*3>
 オープンされているソケットが無い場合、「 状態エラー 」メッセージを発行元に返します。

 <ユーザプログラムの処理>
 システムプロセスがユーザプログラムに発行することはありません。

【接続要求】

 <フォーマット>
+0
+1
+2
+3
req+00
受付プロセス
発行元プロセス
req+04
MSG_REQUEST
MSG_CONNECT
6
req+08
メモリ取得 」ファンクションで取得したポインタ

+0
+1
+2
+3
heap+00
宛先IPアドレス(4バイト)
heap+04
宛先ポート番号(2バイト)
x

 <プロセス>
 発行プロセス:ユーザプログラム
 受付プロセス:ソケットクライアント

 <解説>
 ソケットクライアントに通知した場合、パラメータで指定された宛先に接続します。

 本メッセージは応答はありません。*4>
 既に接続されている場合、「 状態エラー 」メッセージを発行元に返します。

 <ユーザプログラムの処理>
 システムプロセスがユーザプログラムに発行することはありません。

 宛先アドレスを格納するため、6バイト以上の領域を「 メモリ取得 」ファンクションにより確保し、パラメータを設定して下さい。

【接続完了通知】

 <フォーマット>
+0
+1
+2
+3
req+00
受付プロセス
発行元プロセス
req+04
MSG_REQUEST
MSG_CONNECTED
0
req+08
0

 <プロセス>
 発行プロセス:FTPサーバ、ソケットクライアント、ソケットサーバ、TELNETサーバ
 受付プロセス:「 状態取得 」メッセージを発行したユーザプログラム

 <解説>
 FTPサーバ、ソケットサーバ、TELNETサーバは、クライアントからの接続を受け付けた時に、本メッセージを通知します。

 ソケットクライアントは、接続が確立したときに本メッセージを通知します。

 <ユーザプログラムの処理>
 「 状態取得 」メッセージを通知しない限り、システムプロセスがユーザプログラムに発行することはありません。
 本メッセージに応答は必要ありません。

【切断要求】

 <フォーマット>
+0
+1
+2
+3
req+00
受付プロセス
発行元プロセス
req+04
MSG_REQUEST
MSG_CONNCLOSE
0
req+08
0

 <プロセス>
 発行プロセス:ユーザプログラム
 受付プロセス:ソケットクライアント

 <解説>
 ソケットクライアントに通知した場合、接続中のソケットをクローズします。

 本メッセージは応答はありません。*5>
 接続されていない場合、「 状態エラー 」メッセージを発行元に返します。

 <ユーザプログラムの処理>
 システムプロセスがユーザプログラムに発行することはありません。

【切断通知】

 <フォーマット>
+0
+1
+2
+3
req+00
受付プロセス
発行元プロセス
req+04
MSG_REQUEST
MSG_CONNCLOSED
0
req+08
0

 <プロセス>
 発行プロセス:ソケットクライアント
 受付プロセス:「 状態取得 」メッセージを発行したユーザプログラム

 <解説>
 ソケットクライアントは、接続が切れたときに本メッセージを通知します。

 <ユーザプログラムの処理>
 「 状態取得 」メッセージを通知しない限り、システムプロセスがユーザプログラムに発行することはありません。

【サーバオープン通知】

 <フォーマット>
+0
+1
+2
+3
req+00
受付プロセス
発行元プロセス
req+04
MSG_REQUEST
MSG_SVOPENED
0
req+08
0

 <プロセス>
 発行プロセス:FTPサーバ、ソケットサーバ、TELNETサーバ、UDPスルー
 受付プロセス:「 状態取得 」メッセージを発行したユーザプログラム

 <解説>
 FTPサーバ、ソケットサーバ、TELNETサーバは、リッスンソケットのオープンに成功した場合に、本メッセージを通知します。

 UDPスルーは、UDPソケットのオープンに成功した場合に、本メッセージを通知します。

 <ユーザプログラムの処理>
 「 状態取得 」メッセージを通知しない限り、システムプロセスがユーザプログラムに発行することはありません。

【サーバクローズ通知】

 <フォーマット>
+0
+1
+2
+3
req+00
受付プロセス
発行元プロセス
req+04
MSG_REQUEST
MSG_SVCLOSED
0
req+08
0

 <プロセス>
 発行プロセス:FTPサーバ、ソケットサーバ、TELNETサーバ、UDPスルー
 受付プロセス:「 状態取得 」メッセージを発行したユーザプログラム

 <解説>
 FTPサーバ、ソケットサーバ、TELNETサーバは、すべてのソケットがクローズした場合に、本メッセージを通知します。

 UDPスルーは、UDPソケットがクローズした場合に、本メッセージを通知します。

 <ユーザプログラムの処理>
 「 状態取得 」メッセージを通知しない限り、システムプロセスがユーザプログラムに発行することはありません。

【ファイル書込要求】

 <フォーマット>
+0
+1
+2
+3
req+00
受付プロセス
発行元プロセス
req+04
MSG_REQUEST
MSG_PUTFILE
ファイル名の長さ
req+08
ファイル名 または 「 メモリ取得 」ファンクションで取得したポインタ

 <プロセス>
 発行プロセス:FTPサーバ
 受付プロセス:シリアルスルー、ユーザプログラム

 <解説>
 FTPサーバは、FTPクライアントからPUT(STOR)コマンドを受け付けた場合、本メッセージを通知して、応答待ち状態になります。(本メッセージに対する応答は必須です。)

 シリアルスルーに通知した場合、「 コマンドエラー 」メッセージを発行元に返します。

 既に接続されている場合、「 状態エラー 」メッセージを発行元に返します。

 ファイル名が4バイト以下の場合、メッセージ構造は以下の様になります。
+0
+1
+2
+3
req+00
自プロセス
FTPサーバ
req+04
MSG_REQUEST
MSG_PUTFILE
ファイル名の長さ(4以内)
req+08
ファイル名の実体

 ファイル名が4バイトより大きい場合、メッセージ構造は以下の様になります。
+0
+1
+2
+3
req+00
自プロセス
FTPサーバ
req+04
MSG_REQUEST
MSG_PUTFILE
ファイル名の長さ(4より大)
req+08
メモリ取得 」ファンクションで取得したポインタ

 パラメータの実体
+0
+1
--
--
heap+00
ファイル名の実体
heap+--
ファイル名の実体(つづき)

 <ユーザプログラムの処理>
 「 データ要求 」メッセージを通知しない限り、システムプロセスがユーザプログラムに発行することはありません。
 ファイル名の長さが4より大きい場合、ファイル名のメモリを解放して下さい。

 本メッセージを通知された場合、以下の応答メッセージが「 コマンドエラー 」メッセージを返して下さい。
+0
+1
+2
+3
rsp+00
FTPサーバ
自プロセス
rsp+04
MSG_RESPONSE
MSG_PUTFILE
4
rsp+08
処理の方法(1:送信確認なし 0:送信確認あり -1:データ受付拒否)

 <応答解説>
 FTPサーバは、上記の応答に応じて処理を行います。
 「送信確認なし」の場合、FTPクライアントからのデータを「 データ通知 」メッセージで通知します。FTPクライアントからすべてのデータを受信したとき、「ファイル転送成功」のFTP応答をFTPクライアントに送信します。
 「送信確認あり」の場合、FTPクライアントからのデータを「 データ通知 」メッセージで通知します。FTPクライアントからすべてのデータを受信したとき、「 ファイル終了通知 」メッセージを通知し、その応答により「ファイル転送成功」か「ファイル転送失敗」のFTP応答をFTPクライアントに送信します。
 「データ受付拒否」の場合、ファイル転送は行われません。FTPクライアントには「ファイル書き込み不可」のFTP応答をFTPクライアントに送信します。

 「 コマンドエラー 」メッセージが返された場合、FTPサーバは「送信確認なし」の応答と同じ動作を行ないます。

【ファイル取得要求】

 <フォーマット>
+0
+1
+2
+3
req+00
受付プロセス
発行元プロセス
req+04
MSG_REQUEST
MSG_GETFILE
ファイル名の長さ
req+08
ファイル名 または 「 メモリ取得 」ファンクションで取得したポインタ

 <プロセス>
 発行プロセス:FTPサーバ
 受付プロセス:シリアルスルー、「 データ要求 」メッセージを発行したユーザプログラム

 <解説>
 FTPサーバは、FTPクライアントからGET(RETR)コマンドを受け付けた場合、本メッセージを通知して、応答待ち状態になります。(本メッセージに対する応答は必須です。)

 シリアルスルーに通知した場合、「 コマンドエラー 」を発行元に返します。

 既に接続されている場合、「 状態エラー 」メッセージを発行元に返します。

 ファイル名の設定につきましては「 ファイル書込要求 」を参照して下さい。

 <ユーザプログラムの処理>
 「 データ要求 」メッセージを通知しない限り、システムプロセスがユーザプログラムに発行することはありません。
 ファイル名の長さが4より大きい場合、ファイル名のメモリを解放して下さい。

 本メッセージを通知された場合、以下の応答メッセージが「 コマンドエラー 」メッセージを返して下さい。
+0
+1
+2
+3
rsp+00
FTPサーバ
自プロセス
rsp+04
MSG_RESPONSE
MSG_GETFILE
4
rsp+08
ファイルサイズ

 <応答解説>
 FTPサーバは応答メッセージを受け取ると、以後の「 データ通知 」メッセージで渡されるデータを応答メッセージのパラメータに指定されたファイルサイズ分FTPクライアントに送信します。
 ファイルサイズが0の場合、「ファイルなし」のFTP応答をFTPクライアントに送信します。

 「 コマンドエラー 」メッセージが返された場合、FTPサーバはファイルサイズ0と同じ動作を行ないます。

【バッファ満杯通知】

 <フォーマット>
+0
+1
+2
+3
req+00
受付プロセス
発行元プロセス
req+04
MSG_REQUEST
MSG_BUFFULL
0
req+08
0

 <プロセス>
 発行プロセス:FTPサーバ、ソケットクライアント、ソケットサーバ、シリアルスルー、ユーザプログラム
 受付プロセス:FTPサーバ、ソケットクライアント、ソケットサーバ、シリアルスルー、UDPスルー、ユーザプログラム

 <解説>
 各プロセスは「 データ通知 」メッセージで渡されたデータのすべてを処理できない場合、本メッセージを「 データ通知 」メッセージの発行元プロセスに通知します。受け取ったデータは処理が可能になった時点で処理されます。

 <ユーザプログラムの処理>
 本メッセージを通知された場合、「 バッファレディ通知 」メッセージを受け取るまで「 データ通知 」メッセージを発行しないようにして下さい。
 本メッセージに応答は必要ありません。

 本メッセージを他のプロセスに通知した場合、後で「 バッファレディ通知 」メッセージを発行して下さい。

【バッファレディ通知】

 <フォーマット>
+0
+1
+2
+3
req+00
受付プロセス
発行元プロセス
req+04
MSG_REQUEST
MSG_BUFREADY
0
req+08
0

 <プロセス>
 発行プロセス:FTPサーバ、ソケットクライアント、ソケットサーバ、シリアルスルー、ユーザプログラム
 受付プロセス:FTPサーバ、ソケットクライアント、ソケットサーバ、シリアルスルー、UDPスルー、ユーザプログラム

 <解説>
 各プロセスは「 バッファ満杯通知 」メッセージを発行した後、再びデータ処理が可能となった時点で本メッセージを通知します。

 <ユーザプログラムの処理>
 本メッセージを通知された場合、「 データ通知 」メッセージによるデータの受け渡しを再開して下さい。
 本メッセージに応答は必要ありません。

 「 バッファ満杯通知 」メッセージを発行したプロセスは、後で本メッセージを発行して下さい。

【ファイル一覧要求】

 <フォーマット>
+0
+1
+2
+3
req+00
受付プロセス
発行元プロセス
req+04
MSG_REQUEST
MSG_LSTFILE
オプション長(4)+パス名
req+08
オプション または 「 メモリ取得 」ファンクションで取得したポインタ

 <プロセス>
 発行プロセス:FTPサーバ
 受付プロセス:シリアルスルー、「 データ要求 」メッセージを発行したユーザプログラム

 <解説>
 FTPサーバは、FTPクライアントからLS(NLST)/DIR(LIST)コマンドを受け付けた場合、本メッセージを通知して、応答待ち状態になります。(本メッセージに対する応答は必須です。)
  LS(NLST)コマンドを受け付けた場合、オプションに0を設定します。
  DIR(LIST)コマンドを受け付けた場合、オプションに1を設定します。
  パス名は上記コマンドに引数が指定されていれば設定します。

 シリアルスルーに通知した場合、「 コマンドエラー 」メッセージを発行元に返します。

 パス名が指定されていない場合、パラメータにはオプションがそのまま設定されます。(パラメータ長=4)
 パス名が指定されている場合、パラメータには「 メモリ取得 」ファンクションにより取得されたポインタが設定され、オプション(4バイト)に続いてパス名が設定されます。

 <ユーザプログラムの処理>
 「 データ要求 」メッセージを通知しない限り、システムプロセスがユーザプログラムに発行することはありません。
 パス名の指定がある場合、パラメータのメモリを解放して下さい。

 本メッセージを通知された場合、以下の応答メッセージが「 コマンドエラー 」メッセージを返して下さい。
+0
+1
+2
+3
rsp+00
FTPサーバ
自プロセス
rsp+04
MSG_RESPONSE
MSG_LSTFILE
ファイル一覧の文字列の長さ
rsp+08
ファイル一覧文字列 または 「 メモリ取得 」ファンクションで取得したポインタ

 <応答解説>
 FTPサーバは応答メッセージを受け取ると、応答メッセージのパラメータをFTPクライアントに送信します。
 「 コマンドエラー 」メッセージが返された場合、FTPサーバは内部バッファの状態をFTPクライアントに送信します。

 ファイル名一覧の文字(応答パラメータ)数が4バイトより大きい場合、「 メモリ取得 」ファンクションで取得したエリアに文字列を設定して下さい。

【ファイル終了通知】

 <フォーマット>
+0
+1
+2
+3
req+00
受付プロセス
発行元プロセス
req+04
MSG_REQUEST
MSG_ENDFILE
0
req+08
0

 <プロセス>
 発行プロセス:FTPサーバ
 受付プロセス:「 データ要求 」メッセージを発行したユーザプログラム

 <解説>
 FTPサーバは、FTPクライアントからのファイル転送が終了したときに、本メッセージを通知し、応答待ちになります。(本メッセージに対する応答は必須です。)
 「 ファイル書込要求 」メッセージの応答で「送信確認なし」を指定した場合、本メッセージは通知されません。

 <ユーザプログラムの処理>
 「 データ要求 」メッセージを通知しない限り、システムプロセスがユーザプログラムに発行することはありません。

 本メッセージを通知された場合、以下の応答メッセージが「 コマンドエラー 」メッセージを返して下さい。
+0
+1
+2
+3
rsp+00
FTPサーバ
自プロセス
rsp+04
MSG_RESPONSE
MSG_ENDFILE
4
rsp+08
結果(0:NG 1:OK)

 <応答解説>
 FTPサーバは応答メッセージを受け取ると、応答メッセージのパラメータに対応するFTP応答をFTPクライアントに送信します。
 「 コマンドエラー 」メッセージが返された場合、「ファイル転送成功」のFTP応答をFTPクライアントに送信します。

【ファイル削除要求】

 <フォーマット>
+0
+1
+2
+3
req+00
受付プロセス
発行元プロセス
req+04
MSG_REQUEST
MSG_DELFILE
削除ファイル名の長さ
req+08
削除ファイル名 または 「 メモリ取得 」ファンクションで取得したポインタ

 <プロセス>
 発行プロセス:FTPサーバ
 受付プロセス:「 データ要求 」メッセージを発行したユーザプログラム

 <解説>
 FTPサーバは、FTPクライアントからDELETE(DELE)コマンドを受け付けた場合、本メッセージを通知し、応答待ちになります。(本メッセージに対する応答は必須です。)

 ファイル名の設定につきましては「 ファイル書込要求 」を参照して下さい。

 <ユーザプログラムの処理>
 「 データ要求 」メッセージを通知しない限り、システムプロセスがユーザプログラムに発行することはありません。

 ファイル名が4バイトより大きい場合、ファイル名のメモリを解放して下さい。

 本メッセージを通知された場合、以下の応答メッセージか「 コマンドエラー 」メッセージを返して下さい。
+0
+1
+2
+3
rsp+08
FTPサーバ
自プロセス
rsp+04
MSG_RESPONSE
MSG_DELFILE
4
rsp+08
結果(0:NG 1:OK)

 <応答解説>
 FTPサーバは応答メッセージを受け取ると、応答メッセージのパラメータに対応するFTP応答をFTPクライアントに送信します。

 「 コマンドエラー 」メッセージが返された場合、「ファイル削除失敗」のFTP応答をFTPクライアントに送信します。

【ファイル追加要求】

 <フォーマット>
+0
+1
+2
+3
req+00
受付プロセス
発行元プロセス
req+04
MSG_REQUEST
MSG_APPENDFILE
ファイル名の長さ
req+08
ファイル名 または 「 メモリ取得 」ファンクションで取得したポインタ

 <プロセス>
 発行プロセス:FTPサーバ
 受付プロセス:「 データ要求 」メッセージを発行したユーザプログラム

 <解説>
 FTPサーバは、FTPクライアントからAPPEND(APPE)コマンドを受け付けた場合、本メッセージを通知し、応答待ちになります。(本メッセージに対する応答は必須です。)

 ファイル名の設定につきましては「 ファイル書込要求 」を参照して下さい。

 <ユーザプログラムの処理>
 「 データ要求 」メッセージを通知しない限り、システムプロセスがユーザプログラムに発行することはありません。

 ファイル名が4バイトより大きい場合、ファイル名のメモリを解放して下さい。。

 本メッセージを通知された場合、応答メッセージ( ファイル書込要求 の応答を参照)か「 コマンドエラー 」メッセージを返して下さい。

【ディレクトリ変更要求】

 <フォーマット>
+0
+1
+2
+3
req+00
受付プロセス
発行元プロセス
req+04
MSG_REQUEST
MSG_CH_DIR
パス名の長さ
req+08
パス名 または 「 メモリ取得 」ファンクションで取得したポインタ

 <プロセス>
 発行プロセス:FTPサーバ
 受付プロセス:「 データ要求 」メッセージを発行したユーザプログラム

 <解説>
 FTPサーバは、FTPクライアントからCD(CWD)コマンドを受け付けた場合、本メッセージを通知し、応答待ちになります。(本メッセージに対する応答は必須です。)

 パス名の設定につきましては「 ファイル書込要求 」を参照して下さい。

 <ユーザプログラムの処理>
 「 データ要求 」メッセージを通知しない限り、システムプロセスがユーザプログラムに発行することはありません。

 パス名が4バイトより大きい場合、ファイル名のメモリを解放して下さい。。

 本メッセージを通知された場合、以下の応答メッセージか「 コマンドエラー 」メッセージを返して下さい。
+0
+1
+2
+3
rsp+00
FTPサーバ
自プロセス
rsp+04
MSG_RESPONSE
MSG_CH_DIR
4
rsp+08
結果(0:NG 1:OK)

 <応答解説>
 FTPサーバは応答メッセージを受け取ると、応答メッセージのパラメータに対応するFTP応答をFTPクライアントに送信します。
 「 コマンドエラー 」メッセージが返された場合、「コマンド正常終了」のFTP応答をFTPクライアントに送信します。

【ログ通知】

 <フォーマット>
+0
+1
+2
+3
req+00
受付プロセス
発行元プロセス
req+04
MSG_REQUEST
MSG_PUTLOG
ログメッセージの長さ
req+08
メモリ取得 」ファンクションで取得したポインタ(ログメッセージが設定されている)

 <プロセス>
 発行プロセス:FTPサーバ、ソケットサーバ、ソケットクライアント、UDPスルー、ユーザプログラム
 受付プロセス:TELNETサーバ

 <解説>
 TELNETサーバがトレースモード時に本メッセージが通知されると、ログメッセージをTELNETクライアントに送信します。
 TELNETサーバはトレースモード以外で本メッセージを受けた場合、ログメッセージを破棄します。

 <ユーザプログラムの処理>
 システムプロセスがユーザプログラムに発行することはありません。

【SNMP-GET要求】

 <フォーマット>
+0
+1
+2
+3
req+00
受付プロセス
発行元プロセス
req+04
MSG_REQUEST
MSG_GETREQ
SNMPデータの長さ
req+08
メモリ取得 」ファンクションで取得したポインタ(SNMPデータ設定)

 <プロセス>
 発行プロセス:SNMPエージェント
 受付プロセス:「 SNMPアプリ登録 」ファンクションをコールしたユーザプログラム

 <解説>
 SNMPエージェントは、SNMPマネージャからGET-REQUESTTパケットを受け付け、アクセスMIBがカーネル管理下に存在しない場合、本メッセージを通知し、応答待ちになります。(本メッセージに対する応答は必須です。)

 データは常に4バイより大きいため、常に「 メモリ取得 」ファンクションにより取得したポインタのエリアに設定されます。

 <ユーザプログラムの処理>
 「 SNMPアプリ登録 」ファンクションをコールしない限り、システムプロセスがユーザプログラムに発行することはありません。

 本メッセージを通知された場合、パラメータ内のフィールドの必要箇所を設定して、以下の応答メッセージを返して下さい。
+0
+1
+2
+3
rsp+00
SNMPエージェント
自プロセス
rsp+04
MSG_RESPONSE
MSG_GETREQ
SNMP応答データの長さ
rsp+08
要求メッセージのポインタを設定

 <応答解説>
 SNMPエージェントは応答メッセージを受け取ると、応答メッセージのパラメータに対応するSNMP応答(GET-RESPONSE)をSNMPエージェントに送信します。

 「要求」メッセージのパラメータ(ポインタ)を解放することなく、「応答」メッセージに設定して下さい。SNMPエージェントプロセス側で解放します。

【SNMP-GETNEXT要求】

 <フォーマット>
+0
+1
+2
+3
req+00
受付プロセス
発行元プロセス
req+04
MSG_REQUEST
MSG_GETNEXTREQ
SNMPデータの長さ
req+08
メモリ取得 」ファンクションで取得したポインタ(SNMPデータ設定)

 <プロセス>
 発行プロセス:SNMPエージェント
 受付プロセス:「 SNMPアプリ登録 」ファンクションをコールしたユーザプログラム

 <解説>
 SNMPエージェントは、SNMPマネージャからGET-NEXTREQUESTパケットを受け付け、アクセスMIBがカーネル管理下に存在しない場合、本メッセージを通知し、応答待ちになります。(本メッセージに対する応答は必須です。)

 データは常に4バイより大きいため、常に「 メモリ取得 」ファンクションにより取得したポインタのエリアに設定されます。

 <ユーザプログラムの処理>
 「 SNMPアプリ登録 」ファンクションをコールしない限り、システムプロセスがユーザプログラムに発行することはありません。

 本メッセージを通知された場合、パラメータ内のフィールドの必要箇所を設定して、以下の応答メッセージを返して下さい。
+0
+1
+2
+3
rsp+00
SNMPエージェント
自プロセス
rsp+04
MSG_RESPONSE
MSG_GETNEXTREQ
SNMP応答データの長さ
rsp+08
要求メッセージのポインタを設定

 <応答解説>
 SNMPエージェントは応答メッセージを受け取ると、応答メッセージのパラメータに対応するSNMP応答(GET-RESPONSE)をSNMPマネージャに送信します。

 「要求」メッセージのパラメータ(ポインタ)を解放することなく、「応答」メッセージに設定して下さい。SNMPエージェントプロセス側で解放します。

【SNMP-SET要求】

 <フォーマット>
+0
+1
+2
+3
req+00
受付プロセス
発行元プロセス
req+04
MSG_REQUEST
MSG_SETREQ
SNMPデータの長さ
req+08
メモリ取得 」ファンクションで取得したポインタ(SNMPデータ設定)

 <プロセス>
 発行プロセス:SNMPエージェント
 受付プロセス:「 SNMPアプリ登録 」ファンクションをコールしたユーザプログラム

 <解説>
 SNMPエージェントは、SNMPマネージャからSET-REQUESTパケットを受け付け、アクセスMIBがカーネル管理下に存在しない場合、本メッセージを通知し、応答待ちになります。(本メッセージに対する応答は必須です。)

 データは常に4バイより大きいため、常に「 メモリ取得 」ファンクションにより取得したポインタのエリアに設定されます。

 <ユーザプログラムの処理>
 「 SNMPアプリ登録 」ファンクションをコールしない限り、システムプロセスがユーザプログラムに発行することはありません。

 本メッセージを通知された場合、パラメータ内のフィールドの必要箇所を設定して、以下の応答メッセージを返して下さい。
+0
+1
+2
+3
rsp+00
SNMPエージェント
自プロセス
rsp+04
MSG_RESPONSE
MSG_SETREQ
SNMP応答データの長さ
rsp+08
要求メッセージのポインタを設定

 <応答解説>
 SNMPエージェントは応答メッセージを受け取ると、応答メッセージのパラメータに対応するSNMP応答(GET-RESPONSE)をSNMPマネージャに送信します。

 「要求」メッセージのパラメータ(ポインタ)を解放することなく、「応答」メッセージに設定して下さい。SNMPエージェントプロセス側で解放します。

【SNMP-GETBULK要求】

 <フォーマット>
+0
+1
+2
+3
req+00
受付プロセス
発行元プロセス
req+04
MSG_REQUEST
MSG_GETBULKREQ
SNMPデータの長さ
req+08
メモリ取得 」ファンクションで取得したポインタ(SNMPデータ設定)

 <プロセス>
 発行プロセス:SNMPエージェント
 受付プロセス:「 SNMPアプリ登録 」ファンクションをコールしたユーザプログラム

 <解説>
 SNMPエージェントは、SNMPマネージャからGET-BULKREQUESTパケットを受け付け、アクセスMIBがカーネル管理下に存在しない場合、本メッセージを通知し、応答待ちになります。(本メッセージに対する応答は必須です。)

 データは常に4バイより大きいため、常に「 メモリ取得 」ファンクションにより取得したポインタのエリアに設定されます。

 <ユーザプログラムの処理>
 「 SNMPアプリ登録 」ファンクションをコールしない限り、システムプロセスがユーザプログラムに発行することはありません。

 本メッセージを通知された場合、パラメータ内のフィールドの必要箇所を設定して、以下の応答メッセージを返して下さい。
+0
+1
+2
+3
rsp+00
SNMPエージェント
自プロセス
rsp+04
MSG_RESPONSE
MSG_GETBULKREQ
SNMP応答データの長さ
rsp+08
要求メッセージのポインタを設定

 <応答解説>
 SNMPエージェントは応答メッセージを受け取ると、応答メッセージのパラメータに対応するSNMP応答(GET-RESPONSE)をSNMPマネージャに送信します。

 「要求」メッセージのパラメータ(ポインタ)を解放することなく、「応答」メッセージに設定して下さい。SNMPエージェントプロセス側で解放します。
応答のデータは要求より大きくなりますが、編集最大分のメモリを確保してあります。メモリはSNMPエージェントプロセス側で解放します。

【SNM-TRAPSEND要求】

 <フォーマット>
+0
+1
+2
+3
req+00
受付プロセス
発行元プロセス
req+04
MSG_REQUEST
MSG_TRAPSEND
SNMPデータの長さ
req+08
メモリ取得 」ファンクションで取得したポインタ(SNMPデータ設定)

 <プロセス>
 発行プロセス:「 SNMPアプリ登録 」ファンクションをコールしたユーザプログラム
 受付プロセス:SNMPエージェント

 <解説>
 ユーザアプリケーションが「SNMPトラップ」の送信が必要な場合、本メッセージを通知し、応答待ちになります。(本メッセージに対する応答は必須です。)

 データは常に4バイより大きいため、常に「 メモリ取得 」ファンクションにより取得したポインタのエリアに設定して下さい。

 <ユーザプログラムの処理>
 本メッセージを通知して応答を取得して下さい。
 「 SNMPアプリ登録 」をコールしていない場合、本メッセージは無視されます。

 本メッセージを通知された場合、パラメータ内のフィールドの必要箇所を設定して、以下の応答メッセージを返します。
+0
+1
+2
+3
rsp+00
ユーザプログラム
SNMPエージェント
rsp+04
MSG_RESPONSE
MSG_TRAPSEND
SNMP応答データの長さ
rsp+08
要求メッセージのポインタを設定

 <応答解説>
 SNMPエージェントは要求メッセージを受け取ると、TRAP(SNMP-TRAP)をSNMPマネージャ(実際には指定されたIPアドレス)に送信し、送信結果を応答します。

 「要求」メッセージのパラメータを解放することなく、「応答」メッセージに載せて返します。メモリはユーザプログラムス側で解放して下さい。

【コマンドエラー通知】

 <フォーマット>
+0
+1
+2
+3
err+00
受付プロセス
発行元プロセス
err+04
MSG_ERROR
MSG_MAGCMD
4
err+08
エラーになったコマンドコード

 <プロセス>
 発行プロセス:システムプロセス
 受付プロセス:全プロセス

 <解説>
 未対応のコマンドコードを持つメッセージを受け取った場合に、発行元プロセスに返します。

 <ユーザプログラムの処理>
 各プロセスで適切な処理をして下さい。

【パラメータ長エラー通知】

 <フォーマット>
+0
+1
+2
+3
err+00
受付プロセス
発行元プロセス
err+04
MSG_ERROR
MSG_MAGCMD
エラーになったメッセージのパラメータ長
err+08
無し

 <プロセス>
 発行プロセス:SockUdp
 受付プロセス:ユーザプログラム

 <解説>
 UDPスルーへの「 データ通知 」メッセージのパラメータ長が異常な場合、発行元プロセスに返します。
 「 サーバオープン要求 」メッセージで動作モード2を指定した場合、「 データ通知 」メッセージのパラメータ長は7バイト以上になるはずです。

 <ユーザプログラムの処理>
 各プロセスで適切な処理をして下さい。

【状態エラー通知】

 <フォーマット>
+0
+1
+2
+3
err+00
受付プロセス
発行元プロセス
err+04
MSG_ERROR
ERR_INVALIDSTAT
エラーになったメッセージのパラメータ長
err+08
無し

 <プロセス>
 発行プロセス:システムプロセス
 受付プロセス:全プロセス

 <解説>
 内部の状態が、通知されたメッセージを処理できない状態の場合に、発行元プロセスに返します。

 <ユーザプログラムの処理>
 各プロセスで適切な処理をして下さい。

【宛先エラー通知】

 <フォーマット>
+0
+1
+2
+3
err+00
受付プロセス
発行元プロセス
err+04
MSG_ERROR
ERR_DEST
エラーになったメッセージのパラメータ長
err+08
無し

 <プロセス>
 発行プロセス:SockUdp
 受付プロセス:ユーザプログラム

 <解説>
 UDPスループロセスへ「 データ通知 」メッセージを発行した場合、UDP送信が失敗すると発行元プロセスに返します。
 「 サーバオープン要求 」メッセージで動作モード2を指定し、「 データ通知 」メッセージの先頭6バイトの宛先アドレスがARPに応答しない場合、または動作モード0/1で動作パラメータで設定されている宛先アドレスがARPに応答しない要因が考えられます。

 <ユーザプログラムの処理>
 ユーザプロセスで適切な処理をして下さい。