共用方式為


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_PENDING狀態 Send_Error 時,才會有錯誤方向,在發出 接收和接收資料 (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