Kraschisolerade codec-arbetare
HotPDF kan flytta högrisk-DCTDecode-, JPXDecode- och JBIG2Decode-bildavkodning ut ur värdprocessen
Isoleringslägen
cimAutomaticär standard och använderHotPDFCodecWorker.exenär den finns bredvid värdens körbara fil, annars bevarar den den kompatibla in-process-sökvägencimRequiredmisslyckas stängt när arbetaren saknas, inte kan starta, kraschar, tar timeout, avvisar indata eller överstiger en utgångsgränscimDisabledanvänder alltid de befintliga in-process-avkodarna
Så snart en tillgänglig arbetare accepterar en förfrågan provar cimAutomatic inte misslyckad eller skadlig indata i värdprocessen
Processgräns
Varje avkodningsförfrågan körs i en färsk dold process tilldelad ett en-process-Windows-Job-Object
- Job-Objectet avslutar arbetaren och varje avsedd avkomling när dess handtag stängs
CodecWorkerMemoryLimitBytestillämpar ett per-process-committed-minnestak och är som standard 512 MiBCodecWorkerTimeoutMillisecondsär som standard 10,000 ms och avslutar en hängd arbetare- Kodad indata, valfria JBIG2-globaler och BGR24-utdata använder en slumpmässigt namngiven delad-minnesmappning med ett versionssatt protokoll med fast bredd
- Den avkodade utgångskapaciteten begränsas av deklarerad bildgeometri och
DecodeBudgetBytes - Lägupplösta JPEG-förfrågningar bär exakta måldimensioner och returnerar reducerad-DCT-geometri utan att konstruera ett fullupplöst arbetsraster
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 löses upp till HotPDFCodecWorker.exe bredvid den aktuella applikationen
Telemetri
GetLastCodecWorkerInfo rapporterar statusen, processidentifieraren, avslutningskoden, förflutna millisekunder och en begränsad värd-sida-diagnostik
GetLastJPEGReducedDecodeInfo rapporterar käll-, skalad-, utgångs- och skanninjengeometri efter en isolerad reducerad JPEG-förfrågan
Distinkta statusar täcker otillgängliga eller icke-startbara arbetare, timeout, krasch, avkodningsavvisning, protokoll-mismatch och avkodade utgångsgränser
Byggnad och distribution
build-HotPDF-Codec-Worker.cmd
Byggkommandot avger separata Win32- och Win64-arbetare under tools\CodecWorker\<platform>\Release; distribuera arbetaren som matchar värdprocessarkitekturen