Pracovní procesy kodeků izolované proti pádu
HotPDF může přesunout vysoce rizikové dekódování obrázků DCTDecode, JPXDecode a JBIG2Decode mimo hostitelský proces
Režimy izolace
cimAutomaticje výchozí režim a použijeHotPDFCodecWorker.exe, pokud je k dispozici vedle hostitelského spustitelného souboru, jinak zachová kompatibilní cestu v procesucimRequiredbezpečně selže, pokud pracovní proces chybí, nelze jej spustit, spadne, vyprší čas, odmítne vstup nebo překročí limit výstupucimDisabledvždy používá existující dekodéry v procesu
Jakmile dostupný pracovní proces požadavek přijme, cimAutomatic nezkouší selhaný nebo škodlivý vstup znovu v hostitelském procesu
Hranice procesu
Každý požadavek na dekódování běží v novém skrytém procesu přiřazeném k objektu Windows Job Object pro jeden proces. Objekt Job Object při uzavření svého popisovače ukončí pracovní proces i jeho případné potomky
CodecWorkerMemoryLimitBytesnastaví limit potvrzené paměti procesu, jehož výchozí hodnota je 512 MiBCodecWorkerTimeoutMillisecondsmá výchozí hodnotu 10 000 ms a ukončí zaseknutý pracovní proces- Kódovaný vstup, volitelné globální proměnné JBIG2 a výstup BGR24 používají jedno náhodně pojmenované mapování sdílené paměti s verzovaným protokolem pevné šířky
- Kapacita dekódovaného výstupu je omezená deklarovanou geometrií obrázku a
DecodeBudgetBytes
Konfigurace
PDF.CodecIsolationMode := cimRequired;
PDF.CodecWorkerExecutable :=
'C:\Program Files\MyApp\HotPDFCodecWorker.exe';
PDF.CodecWorkerTimeoutMilliseconds := 5000;
PDF.CodecWorkerMemoryLimitBytes := 256 * 1024 * 1024;Prázdné CodecWorkerExecutable se vyřeší jako HotPDFCodecWorker.exe vedle aktuální aplikace
Telemetrie
GetLastCodecWorkerInfo uvádí stav, identifikátor procesu, ukončovací kód, uplynulé milisekundy a omezenou diagnostiku na straně hostitele
GetLastJPEGReducedDecodeInfo uvádí zdrojovou, zmenšenou, výstupní a skenovací geometrii po izolovaném požadavku na zmenšené JPEG
Odlišné stavy pokrývají nedostupné či nespustitelné pracovní procesy, vypršení času, pád, odmítnutí dekódování, nesoulad protokolu a limity dekódovaného výstupu
Sestavení a nasazení
build-HotPDF-Codec-Worker.cmdPříkaz sestavení vytváří samostatné pracovní procesy Win32 a Win64 v tools\CodecWorker\<platform>\Release. Nasaďte pracovní proces odpovídající architektuře hostitelského procesu