Crash-geïsoleerde codec-workers

HotPDF kan risicovolle DCTDecode-, JPXDecode- en JBIG2Decode-beelddecompressie uit het hostproces verplaatsen

Isolatiemodi

Zodra een beschikbare worker een verzoek accepteert, herhaalt cimAutomatic mislukte of kwaadaardige invoer niet in het hostproces

Procesgrens

Elk decodeerverzoek wordt uitgevoerd in een verse verborgen proces dat is toegewezen aan een single-process Windows-Job-Object

Configuratie

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;

Een lege CodecWorkerExecutable lost op naar HotPDFCodecWorker.exe naast de huidige toepassing

Telemetrie

GetLastCodecWorkerInfo rapporteert de status, procesidentificatie, exitcode, verstreken milliseconden en een begrensde host-zijde-diagnostiek

GetLastJPEGReducedDecodeInfo rapporteert bron-, geschaalde, uitvoer- en scanlinegeometrie na een geïsoleerd gereduceerd JPEG-verzoek

Verschillende statussen dekken niet-beschikbare of niet-startbare workers, time-out, crash, decodeerafwijzing, protocolmismatch en decodeeruitvoer-limieten

Opbouw en implementatie

build-HotPDF-Codec-Worker.cmd

De opbouwopdracht produceert afzonderlijke Win32- en Win64-workers onder tools\CodecWorker\<platform>\Release; implementeer de worker die overeenkomt met de hostprocesarchitectuur

Gerelateerde API's