Set_Deallocate_Type (CPI-C)
Set_Deallocate_Type呼叫 (函式名稱cmsdt) 指定如何解除配置交談。
語法
CM_ENTRY Set_Deallocate_Type(
unsigned char FAR *conversation_ID,
CM_INT32 FAR *deallocate_type,
CM_INT32 FAR *return_code
);
參數
conversation_ID
提供的參數。 指定交談的識別碼。 此參數的值是由 Initialize_Conversation 或 Accept_Conversation傳回。
deallocate_type
提供的參數。 指定如何執行解除配置。 可能的值包括:
CM_DEALLOCATE_ABEND
表示交談會以異常且無條件的方式解除配置。 當程式遇到導致無法成功完成交易的錯誤時,應該指定CM_DEALLOCATE_ABEND。
如果交談處於 SEND 狀態,CPI-C 會先將本機邏輯單元傳送緩衝區的內容, (LU) 傳送到合作夥伴計畫,然後再解除配置交談。 如果交談處於 RECEIVE 狀態,則可以清除傳入的資料。 對於處於 SEND 狀態的基本交談,可能會發生邏輯記錄截斷。
CM_DEALLOCATE_CONFIRM
用來傳送合作夥伴計畫本機 LU 傳送緩衝區的內容,以及確認解除配置的要求。
解除配置確認的要求是由 Deallocate 或傳送類型設定為 CM_SEND_AND_DEALLOCATE 的Send_Data 傳送。 當合作夥伴計畫發出 確認時,交談通常會解除配置,並回應確認要求。
CM_DEALLOCATE_FLUSH
用來將本機 LU 的內容傳送緩衝區傳送至合作夥伴計畫,然後再正常解除配置交談。
CM_DEALLOCATE_SYNC_LEVEL
使用交談同步處理層級來決定如何解除配置交談。 預設同步處理層級是由 Initialize_Conversation 所建立,而且可由 Set_Sync_Level覆寫。
如果交談的同步處理層級CM_NONE,則預設值會傳送本機 LU 傳送緩衝區的內容給合作夥伴計畫,且交談會正常解除配置。
如果交談的同步處理層級CM_CONFIRM,本機 LUS 的內容會傳送緩衝區,以及確認解除配置的要求會傳送給合作夥伴計畫。 解除配置確認的要求是由 Deallocate 或傳送類型設定為 CM_SEND_AND_DEALLOCATE 的Send_Data 傳送。 當合作夥伴計畫發出 「已確認 」通話時,交談會正常解除配置,並回應確認要求。
return_code
從這個呼叫傳回的程式碼。 本主題稍後會列出有效的傳回碼。
傳回碼
CM_OK
主要傳回碼;已成功執行呼叫。
CM_PROGRAM_PARAMETER_CHECK
主要傳回碼;發生下列其中一項:
conversation_ID或deallocate_type所指定的值無效。
deallocate_type參數會指定CM_DEALLOCATE_CONFIRM,但交談同步處理層級會設定為CM_NONE。
變數的位址無效。
CM_PRODUCT_SPECIFIC_ERROR
主要傳回碼;發生產品特定的錯誤,並已記錄在產品錯誤記錄檔中。
狀態變更
交談可以處於 RESET 以外的任何狀態。
沒有狀態變更。
備註
此呼叫會覆寫 Initialize_Conversation 或 Accept_Conversation所建立的預設解除配置類型。 預設解除配置類型為 CM_DEALLOCATE_SYNC_LEVEL。
發出 Deallocate 時,或當傳送類型設定為 CM_SEND_AND_DEALLOCATE 併發出 Send_Data 時,此呼叫所指定的解除配置指令就會生效。
如果交談的同步處理層級設定為CM_NONE或CM_CONFIRM,您可以將 deallocate_type 設定為 CM_FLUSH。
值CM_DEALLOCATE_FLUSH的功能與CM_DEALLOCATE_SYNC_LEVEL設定為 CM_NONE 的交談同步處理層級相同。
值CM_DEALLOCATE_CONFIRM的功能與交談同步處理層級設定為CM_CONFIRM CM_DEALLOCATE_SYNC_LEVEL相同。