Delovni procesi kodekov, izolirani pred zrušitvami
HotPDF lahko prestavi visoko tvegano dekodiranje slik DCTDecode, JPXDecode in JBIG2Decode iz gostiteljskega procesa
Načini izolacije
cimAutomaticje privzeti način in uporabiHotPDFCodecWorker.exe, kadar je na voljo poleg gostiteljske izvedljive datoteke, sicer ohrani združljivo pot znotraj procesacimRequiredse zapre ob napaki, kadar delovni proces manjka, se ne more zagnati, zruši, preseže časovno omejitev, zavrne vhod ali preseže omejitev izhodacimDisabledvedno uporabi obstoječe dekoderje znotraj procesa
Ko razpoložljivi delovni proces sprejme zahtevo, cimAutomatic ne ponovi neuspelega ali zlonamernega vhoda v gostiteljskem procesu
Meja procesa
Vsaka zahteva za dekodiranje se izvede v novem skritem procesu, dodeljenem objektu Job Windows za en proces
- Objekt Job prekine delovni proces in vse poskusne potomce, ko se njegov ročaj zapre
CodecWorkerMemoryLimitBytesuporabi zgornjo mejo zavezane pomnilniške kapacitete na proces in privzeto znaša 512 MiBCodecWorkerTimeoutMillisecondsprivzeto znaša 10.000 ms in prekine obešen delovni proces- Kodirani vhod, neobvezni globalni podatki JBIG2 in izhod BGR24 uporabljajo eno naključno imenovano preslikavo deljene pomnilniške kapacitete s protokolom fiksne širine z različico
- Zmogljivost dekodiranega izhoda je omejena z razglašeno geometrijo slike in
DecodeBudgetBytes - Zahteve JPEG z nizko ločljivostjo nosijo natančne ciljne dimenzije in vrnejo geometrijo zmanjšane DCT brez izgradnje rastra delovnega procesa v polni ločljivosti
Konfiguracija
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;
Prazen CodecWorkerExecutable se razreši na HotPDFCodecWorker.exe poleg trenutne aplikacije
Telemetrija
GetLastCodecWorkerInfo poroča o statusu, identifikatorju procesa, izhodni kodi, pretečenih milisekundah in omejeni diagnostični informaciji gostiteljske strani
GetLastJPEGReducedDecodeInfo poroča o geometriji izvora, merila, izhoda in skenirne vrstice po izolirani zahtevi za zmanjšani JPEG
Ločeni statusi pokrivajo nedosegljive ali nezaženljive delovne procese, časovno omejitev, zrušitev, zavrnitev dekodiranja, neujemanje protokola in omejitve dekodiranega izhoda
Izgradnja in namestitev
build-HotPDF-Codec-Worker.cmd
Ukaz za izgradnjo izda ločena delovna procesa Win32 in Win64 pod tools\CodecWorker\<platform>\Release; namestite delovni proces, ki ustreza arhitekturi gostiteljskega procesa