共用方式為


Set_Error_Direction (CPI-C)

Set_Error_Direction呼叫 (函式名稱 cmsed) 會指定程式在接收資料時還是準備傳送數據時偵測到錯誤。

語法

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

參數

conversation_ID
提供的參數。 指定交談的標識碼。 此參數的值是由 Initialize_ConversationAccept_Conversation 所傳回。

error_direction
提供的參數。 指定程式發生錯誤時數據流的方向。 可能的值為:

  • CM_RECEIVE_ERROR

    從合作夥伴計劃收到的數據中發生錯誤。

  • CM_SEND_ERROR

    本機程式準備將數據傳送至合作夥伴計劃時發生錯誤。

    return_code
    從這個呼叫傳回的程序代碼。 本主題稍後會列出有效的傳回碼。

回傳代碼

CM_OK
主要傳回碼;已成功執行的呼叫。

CM_PROGRAM_PARAMETER_CHECK
主要傳回碼; conversation_IDerror_direction 指定的值無效。

CM_PRODUCT_SPECIFIC_ERROR
主要傳回碼;發生產品特定的錯誤,且已在產品錯誤記錄檔中記錄。

狀態變更

交談可以是 RESET 以外的任何狀態。

沒有狀態變更。

備註

此呼叫會覆寫 Initialize_ConversationAccept_Conversation所建立的預設錯誤方向。 默認錯誤方向為CM_RECEIVE_ERROR。

只有當程式Send_Error 處於 SEND_PENDING狀態時,在發出 接收和接收數據(data_received 不是CM_NO_DATA_RECEIVED的值)和傳送指標(status_received 是CM_SEND_RECEIVED之後,錯誤方向才會相關。

當交談處於SEND_PENDING狀態時,如果程式偵測到所接收數據中的錯誤,或本機程式準備傳送數據時發生錯誤,則程式會發出 Send_Error 。 程式必須在發出Send_Error之前先使用 Set_Error_Direction 提供錯誤方向資訊,因為邏輯單元 (LU) 無法分辨發生何種錯誤(接收或傳送)。 新的錯誤方向會維持有效狀態,直到後續 Set_Error_Direction 變更為止。

發出 Send_Error 時,合作夥伴計劃會收到下列其中一個傳回碼:

  • 如果error_direction設定為 CM_RECEIVE_ERROR,CM_PROGRAM_ERROR_PURGING

  • 如果 error_direction 設定為 CM_SEND_ERROR,CM_PROGRAM_ERROR_NO_TRUNC