次の方法で共有


Confirmed (CPI-C)

Confirmed 呼び出し (関数名 cmcfmd) は、パートナー プログラムからの確認要求に応答します。 これは、ローカル・プログラムが受信データのエラーを検出しなかったことをパートナー・プログラムに通知します。 確認要求を発行するプログラムは確認を待機するため、 Confirmed は 2 つのプログラムの処理を同期します。

構文


CM_ENTRY Confirmed(   
  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
プライマリ リターン コード。プログラムがこの呼び出しを発行したときに、会話が CONFIRM、CONFIRM_SEND、またはCONFIRM_DEALLOCATE状態でなかった。

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

状態の変更

プログラムが Confirmed を発行した場合、会話は次のいずれかの状態である必要があります。

  • CONFIRM

  • CONFIRM_SEND

  • CONFIRM_DEALLOCATE

    新しい状態は、古い状態 (ローカル プログラムが Confirmed を発行したときの会話の状態) によって決まります。 古い状態は、前の Receive 呼び出しのstatus_received値によって示されます。 次の表は、 return_codeが CM_OK に設定されている場合に発生する可能性のある状態の変更をまとめたものです。

古い状態 新しい状態
CONFIRM RECEIVE
CONFIRM_SEND SEND
CONFIRM_DEALLOCATE RESET

その他の戻りコードでは、状態は変更されません。

注釈

確認要求は、パートナー プログラムで次のいずれかの呼び出しによって発行されます。

  • [確認]:

  • 受信 準備の種類がCM_PREP_TO_RECEIVE_CONFIRMまたはCM_PREP_TO_RECEIVE_SYNC_LEVELに設定され、会話の同期レベルがCM_CONFIRMに設定されている場合にPrepare_To_Receiveします。

  • 割り当て 解除の種類が CM_DEALLOCATE_CONFIRM または CM_DEALLOCATE_SYNC_LEVEL に設定されていて、会話の同期レベルが CM_CONFIRM に設定されている場合は、割り当てを解除します。

  • の状況でSend_Dataします。

    • 送信の種類は CM_SEND_AND_CONFIRM に設定されます。

    • 送信の種類は CM_SEND_AND_PREPARE_TO_RECEIVE に設定され、受信準備の種類は CM_PREPARE_TO_RECEIVE_CONFIRM に設定されます。

    • 送信の種類は CM_SEND_AND_PREPARE_TO_RECEIVE に設定され、受信準備の種類は CM_PREPARE_TO_RECEIVE_SYNC_LEVEL に設定され、同期レベルは CM_CONFIRM に設定されます。

    • 送信の種類は CM_SEND_AND_DEALLOCATE に設定され、割り当て解除の種類は CM_DEALLOCATE_CONFIRM に設定されます。

    • 送信の種類は CM_SEND_AND_DEALLOCATE に設定され、割り当て解除の種類は CM_DEALLOCATE_SYNC_LEVEL に設定され、同期レベルは CM_CONFIRM に設定されます。

    確認要求は、Receive の status_received パラメーターを介してローカル プログラムによって 受信されます。 ローカル プログラムは、status_received パラメーターが次のいずれかの値に設定されている場合にのみ Confirmed を発行できます。

  • CM_CONFIRM_RECEIVED

  • CM_CONFIRM_SEND_RECEIVED

  • CM_CONFIRM_DEALLOC_RECEIVED