www.wikidata.uk-ua.nina.az
Deskriptor angl Handle ce struktura danih yaka predstavlyaye vidkritij ekzemplyar bazovogo ob yekta operacijnoyi sistemi napriklad fajl klyuch reyestru ob yekt sinhronizaciyi tosho 1 Deskriptor odnoznachno identifikuye stvorenij ob yekt i nadaye dostup do ob yekta dozvolyayuchi chitati ta zminyuvati jogo stan Zmist 1 Deskriptori ob yektiv operacijnoyi sistemi 2 Robota z deskriptorom 3 Deskriptor zahistu 4 Inshi vidi deskriptoriv 5 PrimitkiDeskriptori ob yektiv operacijnoyi sistemi RedaguvatiDeskriptor mozhe buti vikoristanij bud yakim potokom procesu dlya dostupu do vlastivostej ob yekta i same jogo peredayut funkciyam yaki pracyuyut z ob yektami Dlya pokrashennya nadijnosti u roboti operacijnoyi sistemi Microsoft zabezpechila zalezhnist deskriptoriv vid konkretnogo procesu Tomu yaksho peredati deskriptor inshomu procesu vin ne zmozhe vikoristovuvati vidpovidnij ob yekt yadra Pri inicializaciyi procesu sistema stvoryuye v nomu tablicyu deskriptoriv ob yektiv yadra yaka mistit informaciyu pro vsi vikoristani nim ob yekti ta nabir privileyiv dostupu do nih Koli proces inicializuyetsya tablicya deskriptoriv porozhnya Pri kozhnomu vikliku funkciyi sho stvoryuye ob yekt vidrazu pislya jogo stvorennya yadro pereglyadaye tablicyu deskriptoriv procesu znahodit pershij vilnij zapis i zapisuye u nogo dani pro ob yekt vkazivnik na oblast pam yati za yakoyu znahoditsya ob yekt ta parametri dostupu Vsi funkciyi yaki stvoryuyut ob yekti yadra povertayut priv yazani do konkretnogo procesu deskriptori sho mozhut buti vikoristani v bud yakomu potoci cogo procesu Znachennya deskriptora ye bajtovim zmishennyam vid pochatku tablici deskriptoriv procesu Yaksho pri zvertanni do ob yekta yadra vidpovidnij funkciyi peredati nepravilnij deskriptor vona zavershitsya z pomilkoyu ERROR INVALID HANDLE nedopustimij deskriptor Yaksho viklik funkciyi yaka stvoryuye ob yekt yadra nevdalij to zvichajno povertayetsya znachennya 0 NULL Taka situaciya mozhliva pri gostrij nestachi pam yati abo za nayavnosti problem iz dostupom Robota z deskriptorom RedaguvatiPrograma otrimuye deskriptor pid chas stvorennya novogo abo vidkrivannya isnuyuchogo ob yekta Napriklad pri stvorenni potoku za dopomogoyu funkciyi CreateThread vona povertaye deskriptor stvorenogo potoku Nezalezhno vid togo yakim chinom otrimano deskriptor pri zakinchenni roboti jogo potribno zakriti viklikom funkciyi CloseHandle function CloseHandle hObject THandle BOOL Cya funkciya spochatku pereviryaye tablicyu deskriptoriv viklikayuchogo procesu shob perekonatisya chi identifikuye peredanij yij deskriptor ob yekt do yakogo cej proces dijsno maye dostup Yaksho peredanij indeks pravilnij sistema otrimuye adresu strukturi danih ob yekta j zmenshuye v cij strukturi lichilnik chisla koristuvachiv a yak tilki lichilnik obnulitsya yadro vidalit ob yekt iz pam yati Yaksho deskriptor nepravilnij funkciya CloseHandle povertaye znachennya false Pered povernennyam u viklikayuchu programu CloseHandle vidalyaye vidpovidnij zapis iz tablici deskriptoriv pislya cogo deskriptor vzhe nedijsnij u procesi j vikoristovuvati jogo ne mozhna Pri comu zapis vidalyayetsya nezalezhno vid togo znishenij ob yekt yadra chi ni Pislya vikliku CloseHandle proces bilshe ne otrimaye dostupu do cogo ob yekta yadra ale yaksho jogo lichilnik ne obnuleno ob yekt zalishayetsya v pam yati Pislya zavershennya procesu operacijna sistema avtomatichno zvilnyaye vsi resursi yaki jomu nalezhali i u vipadku ob yektiv yadra diye tak u moment zavershennya procesu pereglyadaye jogo tablicyu deskriptoriv i zakrivaye vsi vidkriti deskriptori Deskriptori ye proceso zalezhnimi prote chasto vinikaye neobhidnist yih sumisnogo vikoristannya kilkoma procesami U Windows realizovano taki mehanizmi sumisnogo dostupu do ob yektiv yadra kilkoma procesami spadkuvannya deskriptoriv yih imenuvannya ta dublyuvannya Spadkuvannya stosuyetsya lishe sporidnenih procesiv batkivskij dochirnij Batkivskij proces pri stvorenni mozhe peredati prava dostupu do svoyih ob yektiv yadra dochirnomu procesu Dlya cogo pole bInheritHandle strukturi SECURITY ATTRIBUTES slid vstanoviti u true Pri takomu nasliduvanni sistema krim kopiyuvannya zapisiv z tablici deskriptoriv zbilshuye znachennya lichilnikiv vidpovidnih ob yektiv yadra oskilki voni teper vikoristovuyutsya oboma procesami Shob znishiti yakijs ob yekt yadra jogo deskriptor povinni zakriti viklikom CloseHandle obidva procesi Uspadkovuyutsya tilki deskriptori ob yektiv sho isnuyut na moment stvorennya dochirnogo procesu Yaksho batkivskij proces stvorit pislya cogo novi ob yekti yadra z uspadkovuvanimi deskriptorami voni budut nedostupni dochirnomu procesu Pri spadkuvanni dochirnij proces ne znaye sho vin uspadkuvav yakis deskriptori tomu jomu okremo peredayut znachennya ochikuvanogo nim deskriptora ob yekta yadra napriklad yak argument u komandnomu ryadku chi zminnu otochennya Deskriptori dozvolyayut riznim procesam vikoristovuvati sistemni ob yekti Inshij sposib yakij dozvolyaye kilkom procesam spilno vikoristovuvati ob yekti yadra pov yazanij z imenuvannyam cih ob yektiv Imenuvati mozhna bagato ale ne vsi ob yekti yadra Napriklad imenovani ob yekti stvoryuyut taki funkciyi CreateMutex CreateEvent CreateSemaphore CreateFileMapping tosho Za vidomim imenem ob yekta inshi procesi mozhut vidkriti jogo deskriptor i otrimati takim chinom do nogo dostup She odin mehanizm spilnogo vikoristannya ob yektiv yadra kilkoma procesami ce zastosuvannya funkciyi DuplicateHandle yaka otrimuye zapis u tablici deskriptoriv odnogo procesu j stvoryuye yiyi kopiyu v tablici inshogo 1 Yak i pri spadkuvanni proces prijmach niyak ne povidomlyayetsya pro te sho vin oderzhav dostup do novogo ob yekta yadra tomu jogo potribno specialno informuvati pro ce Deskriptor zahistu RedaguvatiOb yekti yadra mozhna zahistiti deskriptorom zahistu security descriptor yakij opisuye hto stvoriv ob yekt i hto maye pravo dostupu do nogo 2 Majzhe vsi funkciyi sho stvoryuyut ob yekti yadra prijmayut argument vkazivnik na strukturu SECURITY ATTRIBUTES Bilshist program zamist cogo argumentu peredaye NULL sho privodit do stvorennya ob yekta iz zahistom za zamovchuvannyam Taka situaciya peredbachaye sho tvorec ob yekta j bud yakij koristuvach grupi administratoriv otrimuye do nogo povnij dostup a vsi inshi ne dopuskayutsya Odnak dlya zmini ciyeyi povedinki mozhna samostijno stvoriti j inicializuvati strukturu SECURITY ATTRIBUTES a potim peredati yiyi adresu funkciyi stvorennya ob yekta Vona maye takij viglyad opisano movoyu Delphi 1 SECURITY ATTRIBUTES record nLength DWORD Rozmir strukturi lpSecurityDescriptor Pointer Adresa deskriptora zahistu bInheritHandle BOOL Chi uspadkovuvati deskriptor end SECURITY ATTRIBUTES SECURITY ATTRIBUTES Lishe odin element ciyeyi strukturi maye stosunok do zahistu lpSecurityDescriptor Yaksho slid obmezhiti dostup do ob yekta potribno stvoriti deskriptor zahistu j inicializuvati strukturu SECURITY ATTRIBUTES Prote specifichnij zahist ob yektiv vikoristovuyut ridko Inshi vidi deskriptoriv RedaguvatiDeskriptori virtualnih adres virtual address descriptors VAD ce strukturi danih yaki vikoristovuyutsya dispetcherom pam yati dlya obliku adres virtualnoyi pam yati zadiyanih procesom Primitki Redaguvati a b v Konovalenko I V Fedoriv P S 2012 Sistemne programuvannya u Windows z prikladami na Delphi DjVu ukrayinskoyu Ternopil TNTU s 319 Arhiv originalu za 8 serpnya 2016 Procitovano 3 chervnya 2016 Rihter Dzheffri 2001 Windows dlya professionalov sozdanie effektivnyh Win32 prilozhenij s uchetom specifiki 64 razryadnoj versii Windows Windows dlya profesionaliv stvorennya efektivnih Win32 zastosunkiv z urahuvannyam specifiki 64 rozryadnoyi versiyi Windows rosijskoyu vid 4 e Sankt Peterburg Moskva Piter Izdatelsko torgovyj dom Russkaya redakciya nbsp Ce nezavershena stattya pro operacijni sistemi Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi Otrimano z https uk wikipedia org w index php title Deskriptor Windows amp oldid 36177417