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

pdcomm_gem_spool_configure_local

함수

로컬 스풀 정책과 스트림/펑션 선택을 교체합니다.

PdcommStatus pdcomm_gem_spool_configure_local(PdcommTcpEndpoint *endpoint, const PdcommGemSpoolPolicy *policy, const PdcommGemSpoolSelection *selections, size_t count, PdcommGemSpoolWriteInfo *info)

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

엔드포인트가 정지되어 있어야 하며, 전송 실행, 진행 중인 전달, 대기 중인 큐 꺼내기가 없어야 합니다. 변경은 이후 캡처에만 영향을 주며 기존 엔트리는 유지됩니다. 빈 선택(NULL과 0인 count)은 모든 스트림의 스풀링을 비활성화합니다. 전역 enabled 플래그는 선택과 독립적입니다. 변경은 스풀 저장소에 설치되며 동기화를 무효화하므로, 캡처하기 전에 pdcomm_gem_spool_sync()를 다시 호출합니다.

매개변수

이름설명
endpoint장비 스풀이 있는 Stopped 상태의 엔드포인트입니다.
policystruct_size를 설정한 새 정책입니다.
selectionscount개의 스트림 선택 배열입니다. 모든 스트림과 나열된 펑션은 카탈로그에 있어야 하며, 스트림과 펑션은 중복되면 안 됩니다. count가 0이면 NULL일 수 있습니다.
count선택 개수입니다. 최대 max_streams입니다.
info결과(#PDCOMM_GEM_SPOOL_CONFIGURED)를 받습니다. NULL이 아니어야 합니다.

반환값

설치되면 #PDCOMM_OK 또는 #PDCOMM_SPOOL_UNCONFIRMED를 반환합니다. 구조체가 NULL이거나 너무 작거나, enabled가 1보다 크거나, 오버플로 정책을 알 수 없거나, 길이가 0이 아닌데 배열이 NULL이거나, 선택이 중복되거나 카탈로그에 없으면 #PDCOMM_INVALID_ARGUMENT를 반환합니다. 선택 한도를 넘으면 #PDCOMM_LIMIT_EXCEEDED를 반환합니다. 엔드포인트가 정지 상태가 아니거나 장비 스풀이 없으면 #PDCOMM_INVALID_STATE를 반환합니다. 준비된 TCP 이벤트(staged event)가 대기 중이거나 전달, 큐 꺼내기, 전송 실행이 대기 중이면 #PDCOMM_BACKPRESSURE를 반환합니다. 스냅샷을 설치하지 못했으면 #PDCOMM_IO_ERROR 또는 다른 영속화 오류를 반환하며 상태는 바뀌지 않습니다. 그 밖에 #PDCOMM_ALLOCATION_FAILED 또는 #PDCOMM_POISONED를 반환합니다.