Worker Codec Isolati dai Crash

HotPDF può spostare la decodifica delle immagini ad alto rischio DCTDecode, JPXDecode e JBIG2Decode fuori dal processo host

Modalità di isolamento

Una volta che un worker disponibile accetta una richiesta, cimAutomatic non ritenta input falliti o malevoli nel processo host

Confine di processo

Ogni richiesta di decodifica viene eseguita in un processo nascosto fresco assegnato a un Job Object Windows monoprocesso

Configurazione

PDF.CodecIsolationMode := cimRequired;
PDF.CodecWorkerExecutable :=
  'C:\Program Files\MyApp\HotPDFCodecWorker.exe';
PDF.CodecWorkerTimeoutMilliseconds := 5000;
PDF.CodecWorkerMemoryLimitBytes := 256 * 1024 * 1024;

Bitmap := PDF.ExtractLoadedImage(0);
if Bitmap = nil then
begin
  PDF.GetLastCodecWorkerInfo(Info);
  Writeln(Ord(Info.Status), ': ', Info.ErrorMessage);
end;

Un CodecWorkerExecutable vuoto si risolve in HotPDFCodecWorker.exe accanto all'applicazione corrente

Telemetria

GetLastCodecWorkerInfo riporta lo stato, l'identificatore di processo, il codice di uscita, i millisecondi trascorsi e una diagnostica host delimitata

GetLastJPEGReducedDecodeInfo riporta la geometria sorgente, ridimensionata, di output e di scanline dopo una richiesta JPEG ridotta isolata

Stati distinti coprono worker non disponibili o non avviabili, timeout, crash, rifiuto della decodifica, disallineamento del protocollo e limiti dell'output decodificato

Build e distribuzione

build-HotPDF-Codec-Worker.cmd

Il comando di build emette worker Win32 e Win64 separati sotto tools\CodecWorker\<platform>\Release; distribuire il worker corrispondente all'architettura del processo host

API correlate