Crash-isolerede codec-arbejdere

HotPDF kan flytte højrisikoafkodning af billeder med DCTDecode, JPXDecode og JBIG2Decode ud af værtsprocessen

Isolationstilstande

Når en tilgængelig arbejder har accepteret en anmodning, forsøger cimAutomatic ikke igen at behandle mislykket eller ondsindet input i værtsprocessen

Procesgrænse

Hver afkodningsanmodning kører i en ny skjult proces, der er tildelt et Windows Job Object med én proces

Konfiguration

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;

En tom CodecWorkerExecutable opløses til HotPDFCodecWorker.exe ved siden af det aktuelle program

Telemetri

GetLastCodecWorkerInfo rapporterer status, procesidentifikator, afslutningskode, forløbne millisekunder og en afgrænset diagnosticering på værtssiden

GetLastJPEGReducedDecodeInfo rapporterer kilde-, skaleret-, output- og scanline-geometri efter en isoleret reduceret JPEG-anmodning

Adskilte statustilstande dækker utilgængelige eller ikke-startbare arbejdere, timeout, nedbrud, afkodningsafvisning, protokolmismatch og grænser for afkodet output

Bygning og udrulning

build-HotPDF-Codec-Worker.cmd

Byggekommandoen udsender separate Win32- og Win64-arbejdere under tools\CodecWorker\<platform>\Release; udrul arbejderen, der svarer til værtsprocessens arkitektur

Relaterede API'er