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_Conversation 或 Accept_Conversation 所傳回。
error_direction
提供的參數。 指定程式發生錯誤時數據流的方向。 可能的值為:
CM_RECEIVE_ERROR
從合作夥伴計劃收到的數據中發生錯誤。
CM_SEND_ERROR
本機程式準備將數據傳送至合作夥伴計劃時發生錯誤。
return_code
從這個呼叫傳回的程序代碼。 本主題稍後會列出有效的傳回碼。
回傳代碼
CM_OK
主要傳回碼;已成功執行的呼叫。
CM_PROGRAM_PARAMETER_CHECK
主要傳回碼; conversation_ID 或 error_direction 指定的值無效。
CM_PRODUCT_SPECIFIC_ERROR
主要傳回碼;發生產品特定的錯誤,且已在產品錯誤記錄檔中記錄。
狀態變更
交談可以是 RESET 以外的任何狀態。
沒有狀態變更。
備註
此呼叫會覆寫 Initialize_Conversation 或 Accept_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