다음을 통해 공유


Confirmed(CPI-C)

확인된 호출(함수 이름 cmcfmd)은 파트너 프로그램의 확인 요청에 회신합니다. 로컬 프로그램에서 수신된 데이터의 오류를 감지하지 못했다고 파트너 프로그램에 알릴 수 있습니다. 확인 요청을 실행하는 프로그램이 확인을 대기하므로 Confirmed 는 두 프로그램의 처리를 동기화합니다.

구문


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

매개 변수

conversation_ID
제공된 매개 변수입니다. 대화의 식별자를 지정합니다. 이 매개 변수의 값은 Initialize_Conversation 또는 Accept_Conversation 반환되었습니다.

return_code
이 호출에서 반환된 코드입니다. 유효한 반환 코드는 이 항목의 뒷부분에 나와 있습니다.

반환 코드

CM_OK
기본 반환 코드; 호출이 성공적으로 실행되었습니다.

CM_OPERATION_NOT_ACCEPTED
기본 반환 코드; 이 대화에 대한 이전 작업이 완료되지 않았습니다.

CM_OPERATION_INCOMPLETE
기본 반환 코드; 작업이 완료되지 않았으며(처리 모드는 차단 해제에만 해당) 아직 진행 중입니다. 프로그램은 Wait_For_Conversation 실행하여 작업 완료를 기다리거나 Cancel_Conversation 작업 및 대화를 취소할 수 있습니다. Specify_Windows_Handle 호출된 경우 애플리케이션은 Microsoft® Windows® 메시지의 알림을 기다리며 Wait_For_Conversation 호출하지 않아야 합니다.

CM_PROGRAM_PARAMETER_CHECK
기본 반환 코드; conversation_ID 지정한 값이 잘못되었습니다.

CM_PROGRAM_STATE_CHECK
기본 반환 코드; 프로그램이 이 호출을 실행했을 때 대화가 CONFIRM, CONFIRM_SEND 또는 CONFIRM_DEALLOCATE 상태가 아니었습니다.

CM_PRODUCT_SPECIFIC_ERROR
기본 반환 코드; 제품별 오류가 발생하여 제품 오류 로그에 기록되었습니다.

상태 변경

프로그램이 확인됨을 발급할 때 대화는 다음 상태 중 하나여야 합니다.

  • 확인

  • CONFIRM_SEND

  • CONFIRM_DEALLOCATE

    새 상태는 이전 상태(로컬 프로그램에서 Confirmed를 실행했을 때의 대화 상태)에 의해 결정됩니다. 이전 상태는 이전 Receive 호출의 status_received 값으로 표시됩니다. 다음 표에는 return_code CM_OK 설정되면 가능한 상태 변경이 요약되어 있습니다.

이전 상태 새 상태
확인 RECEIVE
CONFIRM_SEND SEND
CONFIRM_DEALLOCATE RESET

다른 반환 코드로 인해 상태가 변경되지 않습니다.

설명

확인 요청은 파트너 프로그램에서 다음 호출 중 하나에 의해 발급됩니다.

  • 암호 확인 -

  • Prepare_To_Receive 수신 준비 유형이 CM_PREP_TO_RECEIVE_CONFIRM 또는 CM_PREP_TO_RECEIVE_SYNC_LEVEL 설정되고 대화 동기화 수준이 CM_CONFIRM 설정되었는지 여부입니다.

  • 할당 취소 형식이 CM_DEALLOCATE_CONFIRM 또는 CM_DEALLOCATE_SYNC_LEVEL 설정되고 대화 동기화 수준이 CM_CONFIRM 설정되면 할당을 취소합니다.

  • 다음과 같은 상황에서 Send_Data.

    • 송신 유형이 CM_SEND_AND_CONFIRM 설정됩니다.

    • 보내기 유형은 CM_SEND_AND_PREPARE_TO_RECEIVE 설정되고 수신 준비 형식은 CM_PREPARE_TO_RECEIVE_CONFIRM.

    • 보내기 유형이 CM_SEND_AND_PREPARE_TO_RECEIVE 설정되고, 수신 준비 유형이 CM_PREPARE_TO_RECEIVE_SYNC_LEVEL 설정되고, 동기화 수준이 CM_CONFIRM 설정됩니다.

    • 보내기 형식이 CM_SEND_AND_DEALLOCATE 설정되고 할당 취소 형식이 CM_DEALLOCATE_CONFIRM 설정됩니다.

    • 보내기 유형이 CM_SEND_AND_DEALLOCATE 설정되고, 할당 취소 형식이 CM_DEALLOCATE_SYNC_LEVEL 설정되고, 동기화 수준이 CM_CONFIRM 설정됩니다.

    로컬 프로그램에서 Receive의 status_received 매개 변수를 통해 확인 요청을 받습니다. 로컬 프로그램은 status_received 매개 변수가 다음 값 중 하나로 설정된 경우에만 Confirmed를 실행할 수 있습니다.

  • CM_CONFIRM_RECEIVED

  • CM_CONFIRM_SEND_RECEIVED

  • CM_CONFIRM_DEALLOC_RECEIVED