Член ядрото обекти
Обекти ядро. (Част 1)
Какво е обект на ядрото.
Ядрото предмети, използвани от нашата система и приложения за управление на много различни ресурси: процеси, конци, файлове и т.н.
Системата ви позволява да създавате и да работят няколко типа обекти, включително означението за достъп (достъп символични предмети), файлове (файлове обекти), проекции на файлове (файлове картографиране обекти), пълен входни изходни портове (I / O завършване пристанищни обекти), задачи (работа), пощенски кутии (mailslot обекти), мутекс (мутекси обекти), канал (тръбни обекти), метод (конец обекти) и очаквани таймери (waitable таймер обекти).
Тези обекти са създадени от Windows-функции. Например, CreateFileMapping кара системата за генериране на проекцията на обект файл. Всеки ядро обект наистина е само един блок от памет разпределени на ядрото и е достъпна само за него.
Блокът е структура от данни, в която да елементи на обекта. Някои елементи (дескриптор за защита, номерът на брояч на потребителите и др.), Присъстващ във всички сайтове, но Бо lshaya от тях е специфична за определен тип обект. Например, обект на процеса има идентификатор, основен приоритет и код завършване, и файлът обект - байт компенсира, сплит и режим откритие.
За да си взаимодействат с обекти в ядрото на Windows предоставя набор от функции, които да се справят с основната структура на обекти на строго определени правила. Когато ние създаваме обект ядрото, функцията връща манипулатор идентифициране на новосъздадения обект (дръжката). Всички операции с текущия обект ядрото са възможни само когато се указва контрол функцията на този ЕВРОВОК.
За по-голяма защита, дръжките са уникални в рамките на определен процес. Ето защо, минаваща за interprocessor комуникация обект дръжка на друг процес, с помощта на дръжка в другия процес, ние получите съобщение за грешка. Това ограничение може да се заобиколи, но повече за това по-късно.
Отчитане на основните потребителски обекти.
Ядрото предмети принадлежат на ядрото, а не на процеса. Той казва, че затварянето на този процес, ние не е задължително да се унищожи обекта ядро. В повечето случаи, обектът е унищожена, но ако обектът на ядрото, който сте създали се използва от друг процес, ядрото ще се забрани унищожаването на обекта, докато потребителят не се откаже от последната от него.
В всяко съоръжение, както вече бе споменато, има потребители на брояч обекта. Времето на брояча е настроен на 1. Съответно, е достъпна от друг брояч процес се увеличава с 1. При процес на употреба се прекратява, броячът се декрементирани. Системата изтрива обект ядрото, когато броячът се нулира.
Защита на ядрото обекти
В почти всички функции, които създават обекти, независимо дали е параметър SECURITY_ATTRIBUTES. Това е необходимо за защитата на ядрото предмети от неоторизиран достъп. Най-често това свойство се използва в приложения, сървър, клиентски приложения, този обект може да бъде игнориран.
При изпращане в NULL атрибут повечето от обектите ще бъде създаден със стандартните функции за защита, когато са разрешени обект: създател и администратор на групата. Останалите са игнорирани.
За повече информация относно защитата на основни съоръжения следващия път.