콘텐츠로 이동
무료 평가 시작

pdcomm_gem_formatted_program_verification_respond

함수

수신한 S7F29 문의에 S7F30으로 응답합니다.

PdcommStatus pdcomm_gem_formatted_program_verification_respond(PdcommTcpEndpoint *endpoint, PdcommGemResult *received, uint8_t pp_gnt)

선언 위치: #include <pdcomm_gem_formatted_program_verification_negotiation.h>

호스트 전용입니다. 성공하면 결과 유형이 #PDCOMM_GEM_REPLIED가 되고, reply_sent가 1이 되며, 상태가 RESPONDED가 되고, 협상 종료 값이 GRANTED(PPGNT 0) 또는 DENIED가 됩니다. 성공한 뒤 같은 pp_gnt로 다시 호출하면 보내지 않고 #PDCOMM_OK를 반환하고, 다른 코드로 호출하면 #PDCOMM_STALE_TOKEN을 반환합니다. 송신에 실패하면 응답은 준비된 상태로 남습니다. 같은 pp_gnt로 이 함수를 다시 호출하거나 pdcomm_gem_formatted_program_verification_retry_response()를 호출합니다.

매개변수

이름설명
endpointreceived를 만든 Communicating 상태의 GEM 호스트 엔드포인트입니다.
received결과 유형이 #PDCOMM_GEM_FORMATTED_PROGRAM_VERIFICATION_NEGOTIATION_RECEIVED인 결과입니다.
pp_gnt0부터 63까지의 PPGNT 허가 코드입니다. 0은 허가하며, 0이 아닌 코드는 SEMI E5 사유로 거부합니다(예: 1 이미 있음, 2 공간 없음, 4 사용 중, 5 수락하지 않음).

반환값

S7F30을 큐에 넣었거나 pp_gnt로 이미 보냈으면 #PDCOMM_OK를 반환합니다. endpoint 또는 received가 NULL이거나 pp_gnt가 63보다 크면 #PDCOMM_INVALID_ARGUMENT를 반환합니다. 엔드포인트가 Communicating 상태의 GEM 호스트가 아니거나, 서비스가 구성되지 않았거나, received가 협상 결과가 아니면 #PDCOMM_INVALID_STATE를 반환합니다. received가 이 엔드포인트와 세션의 호스트 측 문의가 아니거나 문의가 이미 끝났으면 #PDCOMM_STALE_TOKEN을 반환합니다. 이 문의에 다른 pp_gnt를 이미 준비했거나 보냈을 때도 #PDCOMM_STALE_TOKEN을 반환합니다. 엔드포인트에 준비된 TCP 이벤트(staged event)가 있거나 송신 큐가 가득 차면 #PDCOMM_BACKPRESSURE를 반환합니다(나중에 다시 시도합니다). 그 밖에 #PDCOMM_IO_ERROR 같은 TCP 상태 코드와 #PDCOMM_POISONED를 반환합니다.