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_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_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