Contains the object name, responsible for making an object visible to other processes for sharing, and a pointer to the object directory, which provides the hierarchical structure in which the object names are stored.
1 (0x2)
Object header -
Handle information
Contains a database of entries (or just a single entry) for a process that has an open handle to the object (along with a per-process handle count).
2 (0x4)
Object header -
Quota information
Lists the resource charges levied against a process when it opens a handle to the object.
3 (0x8)
Object header -
Process information
Contains a pointer to the owning process if this is an exclusive object. More information on exclusive objects follows later in the chapter.
4 (0x10)
Object header -
Each of these subheaders is optional and is present only under certain conditions, either during system boot up or at object creation time. Table 3-11 describes each of these conditions.
Name
Condition
Name information
The object must have been created with a name.
Quota information
The object must not have been created by the initial (or idle) system process.
Process information
The object must have been created with the
Handle information
The object type must have enabled the
Creator information
The object type must have enabled the
Finally, a number of attributes and/or flags determine the behavior of the object during creation time or during certain operations. These flags are received by the object manager whenever any new object is being created, in a structure called the
Note
When an object is being created through an API in the Windows subsystem (such as
Attributes Flag
Header Flag
Purpose
OBJ_INHERIT
Saved in the handle table entry
Determines whether the handle to the object will be inherited by child processes, and whether a process can use
OBJ_PERMANENT
OB_FLAG_PERMANENT_OBJECT
Defines object retention behavior related to reference counts, described later.
OBJ_EXCLUSIVE
OB_FLAG_EXCLUSIVE_OBJECT
Specifies that the object can be used only by the process that created it.
OBJ_CASE_INSENSITIVE
Stored in the handle table entry
Specifies that lookups for this object in the namespace should be case insensitive. It can be overridden by the
OBJ_OPENIF
Not stored, used at run time
Specifies that a create operation for this object name should result in an open, if the object exists, instead of a failure.
OBJ_OPENLINK
Not stored, used at run time
Specifies that the object manager should open a handle to the symbolic link, not the target.
OBJ_KERNEL_HANDLE
OB_FLAG_KERNEL_OBJECT
Specifies that the handle to this object should be a
OBJ_FORCE_ACCESS_CHECK
Not stored, used at run time
Specifies that even if the object is being opened from kernel mode, full access checks should be performed.
OBJ_KERNEL_EXCLUSIVE
OB_FLAG_KERNEL_ONLY_ACCESS
Disables any user-mode process from opening a handle to the object; used to protect the
N/A
OF_FLAG_DEFAULT_SECURITY_QUOTA
Вильям Л Саймон , Вильям Саймон , Наталья Владимировна Макеева , Нора Робертс , Юрий Викторович Щербатых
Зарубежная компьютерная, околокомпьютерная литература / ОС и Сети, интернет / Короткие любовные романы / Психология / Прочая справочная литература / Образование и наука / Книги по IT / Словари и Энциклопедии