Content deleted Content added
Jim Grisham (talk | contribs) →See also: Added a ‘see also’ entry for the equivalent POSIX/Linux concepts of a process group/control group to Windows concept of Job object/Job objects discussed here as part of that platform’s Object Manager Tags: Mobile edit Mobile web edit Advanced mobile edit |
Fix some directory names |
||
Line 82:
A <code>Type</code> object contains properties unique to the type of the object as well as static methods that implement the services offered by the object. Objects managed by Object Manager must at least provide a predefined set of services: <code>Close</code> (which closes a handle to an object), <code>Duplicate</code> (create another handle to the object with which another process can gain shared access to the object), <code>Query object</code> (gather information about its attributes and properties), <code>Query security</code> (get the [[security descriptor]] of the object), <code>Set security</code> (change the security access), and <code>Wait</code> (to synchronize with one or more objects via certain events). Type objects also have some common attributes, including the type name, whether they are to be allocated in non-paged memory, access rights, and synchronization information. All instances of the same type share the same type object, and the type object is instantiated only once. A new object type can be created by endowing an object with Properties to expose its state and methods to expose the services it offers.
<code>Object name</code> is used to give a descriptive identity to an object, to aid in object lookup. Object Manager maintains the list of names already assigned to objects being managed, and maps the names to the instances. Since most object accesses occur via handles, it is not always necessary to look up the name to resolve into the object reference. Lookup is only performed when an object is created (to make sure the new object has a unique name), or a process accesses an object by its name explicitly. <code>Object directories</code> are used to categorize them according to the types. Predefined directories include <code>\??</code> (device names), <code>\BaseNamedObjects</code> (Mutexes, events, semaphores, waitable timers, and section objects), <code>\Callback</code> (callback functions), <code>\Device</code>, <code>\
OBJECT_ATTRIBUTES structure:
|