2015-03-10 3 views
0

Я изучал Диспетчер задач подробно, там я нашел столбец USER Объекты. Теперь, когда я пытался найти это точное значение, я получил следующее описание,Являются ли пользовательские объекты похожими на слабые указатели?

Task Manager Columns Description

Количество пользовательских объектов в настоящее время используется в процессе. Объект USER - объект из Window Manager, который включает в себя окна, меню, курсоры, значки, крючки, ускорители, мониторы, клавиатуру макеты и другие внутренние объекты.

Означает ли это, что объект USER похож на слабый указатель на объекты, такие как курсор, значки, монитор и т. Д., Которые будут использоваться всеми запущенными приложениями?

+0

Посмотрите ручки GDI. – shawnt00

+0

@ shawnt00 Я .. Я тоже это сделал .. но это частная ручка. –

ответ

1

Да, вы несколько верны.

Доступ к объекту возможен только через его ручку. Приложение не может напрямую обращаться к данным объекта или к системному ресурсу, который представляет объект. Вместо этого приложение должно получить объект дескриптор, который он может использовать для проверки или изменения системного ресурса.

Субъектов, которые явно помечены как объекты под окном GDI и USER объекты:

  • GDI объекты кисть, ручки, растровые изображения, шрифты, палитры и регионы;

  • USER-объекты - это классы окон, атомы, меню и окна.

Каждый ручка имеет вход в внутреннюю таблицу. Эти записи содержат адреса ресурсов и средства идентификации типа ресурса.

Ручки для этих объектов являются, по сути, указателями на сегменты данных по умолчанию модулей GDI и USER, соответственно. Связь между дескрипторами и объектами подразумевается в том, что дескрипторы, преобразованные в указатели в сегмент данных USER и GDI по умолчанию, указывают на структуры данных, которые описывают объекты внутри.

+0

Некоторые ручки, такие как дескрипторы USER и GDI, или дескрипторы модулей, возвращаемые 'LoadLibrary', на самом деле являются указателями. OTOH обрабатывает типы объектов ядра NT (например, «Device», «File», «Section», «Process», «Thread», «Token») в таблицу для каждого процесса, поддерживаемую диспетчером объектов. Таблица содержит базовый адрес объекта, к которому можно получить доступ только из режима ядра, а также предоставленный доступ (подмножество прав, определенных для типа объекта), и является ли дескриптор наследуемым. – eryksun

Смежные вопросы