Request_To_Send (CPI-C)

Request_To_Send呼び出し (関数名 cmrts) は、ローカル プログラムがデータを送信することをパートナー プログラムに通知します。

構文

  
CM_ENTRY Request_To_Send(   
  unsigned char FAR *conversation_ID,    
  CM_INT32 FAR *return_code              
);  

パラメーター

conversation_ID
指定されたパラメーター。 会話の識別子を指定します。 このパラメーターの値は 、Initialize_Conversation または Accept_Conversationによって返されました。

return_code
この呼び出しから返されたコード。 有効なリターン コードについては、このトピックの後半で説明します。

リターン コード

CM_OK
主なリターン コード。呼び出しが正常に実行されました。

CM_OPERATION_NOT_ACCEPTED
主なリターン コード。この会話に対する前の操作が不完全です。

CM_OPERATION_INCOMPLETE
主なリターン コード。操作が完了せず (処理モードは非ブロッキングのみ)、まだ進行中です。 プログラムは 、Wait_For_Conversation を発行して操作の完了を 待機したり、 操作と会話を取り消Cancel_Conversationしたりできます。 Specify_Windows_Handleが呼び出された場合、アプリケーションは Microsoft® Windows® メッセージによる通知を待機し、Wait_For_Conversationを呼び出す必要はありません。

CM_PROGRAM_PARAMETER_CHECK
主なリターン コード。 conversation_ID で指定された値が無効です。

CM_PROGRAM_STATE_CHECK
主なリターン コード。会話が RECEIVE、SEND、SEND_PENDING、CONFIRM、CONFIRM_SEND、またはCONFIRM_DEALLOCATE状態ではありません。

CM_PRODUCT_SPECIFIC_ERROR
主なリターン コード。製品固有のエラーが発生し、製品エラー ログに記録されています。

State Changes (状態の変化)

会話は、RECEIVE、SEND、SEND_PENDING、CONFIRM、CONFIRM_SEND、CONFIRM_DEALLOCATEのいずれかの状態にすることができます。

状態の変更はありません。

この要求に応じて、パートナー プログラムは、次のいずれかの呼び出しを発行することで、会話を RECEIVE 状態に変更できます。

  • 受信 の種類が CM_RECEIVE_AND_WAIT に設定された受信

  • Prepare_To_Receive

  • 送信の種類が CM_SEND_AND_PREP_TO_RECEIVE に設定されているSend_Data

    パートナー プログラムは、送信要求を無視することもできます。

    ローカル プログラムが後続の Receive 呼び出しの status_received パラメーターを使用して次のいずれかの値を受け取ると、ローカル プログラムのメッセージ交換状態が SEND に変わります。

  • CM_SEND_RECEIVED

  • CM_CONFIRM_SEND_RECEIVEDとローカル プログラムが 確認済 みの呼び出しで応答する

注釈

送信要求通知は、次の呼び出しの request_to_send_received パラメーターを使用してパートナー プログラムによって受信されます。

  • 確認済み

  • 受信

  • Send_Data

  • Send_Error

  • Test_Request_To_Send_Received

    送信要求通知は、パートナー プログラムに直ちに送信されます。 CPI-C は、送信バッファーがいっぱいになるまで、またはフラッシュされるまで待機しません。 その結果、送信要求通知が順番に到着する可能性があります。 たとえば、ローカル プログラムが SEND 状態で、 Prepare_To_Receive 呼び出しの後に Request_To_Send 呼び出しを発行した場合、パートナー プログラムは RECEIVE 状態で、送信通知を受信する前に要求から送信への通知を受信できます。 このため、 request_to_send は Receive 呼び しを介してプログラムに報告できます。

    送信要求通知を受信すると、パートナー論理ユニット (LU) は、パートナーが request_to_send_receivedを返す呼び出しを発行するまで通知を保持します。 LU は、会話ごとに 1 つの要求から送信への通知のみを保持します。 したがって、ローカル プログラムは、パートナー トランザクション プログラム (TP) によって明示的に処理されるよりも多くの Request_To_Send 呼び出しを発行できます。