Obiecte nucleu

Obiecte nucleu

obiect Descriptori nucleu - acesta este un proces special. Adică, procesul trebuie să fie să creeze un obiect, sau deschide un obiect existent pentru a obține un mâner la obiect nucleu. Restricție pe descriptori de proces una de bază - 30 februarie.

Orice proces poate crea un nou descriptor existent obiect nucleu (exact la fel ca și cea creată de un alt proces), cu condiția ca procesul cunoaște numele obiectului și are acces permis de sistemul de securitate la obiect. Kernel descriptori obiect includ permisiuni, indicând acțiunile pe care le poate acorda sau refuza acest proces. Aplicația determină drepturile de acces atunci când creează un obiect sau devine un mâner la obiect existent. Fiecare tip de obiect nucleu menține propriul set de permisiuni. De exemplu, descriptorii de evenimente pot avea acces la „stabili“ sau „așteptați“ (sau ambele), descriptorii de fișiere pot avea acces la „citi“ sau „scrie“ (sau ambele), și așa mai departe. Pentru mai multe informații, consultați. Obiecte protejate.

În următoarele ilustrații, aplicația creează un obiect eveniment. Funcția CreateEvent creează un obiect eveniment și returnează un mâner obiect.

După crearea obiectului evenimentului, aplicația poate utiliza mânerul unui eveniment pentru a seta sau așteptați pentru eveniment. Descriptorul rămâne valabilă până la momentul până când aplicația se închide sau se închide mânerul.

Cele mai multe obiecte nucleu suporta descriptori recurente pentru un singur obiect. De exemplu, în ilustrația de mai sus, aplicația poate obține descriptori suplimentari ai obiectului evenimentului folosind functia OpenEvent. așa cum se arată în ilustrația următoare.

Această metodă permite o aplicație să aibă mânere cu drepturi de acces diferite. De exemplu, mânerul 1, poate avea acces la eveniment „set“ și „așteptați“ și descriptor 2 poate avea acces la doar „aștepte.“

În cazul în care un alt proces cunoaște numele evenimentului și are acces, permite sistemului să asigure siguranța obiectului, se poate crea propriul descriptor al obiectului evenimentului cu ajutorul funcției OpenEvent. Creați o aplicație poate duplica, de asemenea, unul dintre descriptorii în același proces sau într-un alt proces folosind funcția DuplicateHandle.

Obiectul rămâne în memorie, atâta timp cât există cel puțin un mâner de obiect. În următoarea ilustrație, aplicații utilizează funcția CloseHandle. pentru a închide obiectul lor descriptori eveniment. Atunci când nu există evenimente de descriptori, sistemul elimină obiectul din memorie, așa cum se arată în ilustrația următoare.

Sistemul gestionează obiecte de fișiere oarecum diferit în raport cu alte obiecte nucleu. obiecte de fișiere conțin un pointer la poziția în fișierul - pointer la următorul octet care este citit sau scris la dosar. Ori de câte ori o aplicație creează un nou descriptor de fișier, sistemul creează un obiect nou fișier. Prin urmare, într-un singur fișier de pe disc se poate aplica mai mult de un fișier obiect, așa cum se arată în ilustrația următoare.

Numai datorită dublării sau moștenire se poate aplica mai mult de un descriptor de fișier pentru același obiect de fișier, așa cum se arată în ilustrația următoare.

Ceea ce urmează este un tabel care listează fiecare dintre obiecte nucleu, creator funcționează împreună și distrugătorul fiecărui obiect. Funcția - creatorul sau creează un obiect și un mâner obiect, sau creează un nou mâner la obiect existent. Funcția - distrugătorul închide mânerul de obiect. Când aplicația se închide ultimul mâner la obiect nucleu, sistemul elimină obiectul din memorie.