Search
Module:
Directory

   Desktop Functions:

   Smart Device Functions:


Show Recent Changes
Subscribe (RSS)
Misc. Pages
Comments
FAQ
Helpful Tools
Playground
Suggested Reading
Website TODO List
Download Visual Studio Add-In

OBJ_ATTRIBUTES (Enums)
 
.
Summary
TODO - a short description

C# Definition:

    [Flags]
    public enum OBJ_ATTRIBUTES : uint
    {
    /// <summary> This handle can be inherited by child processes of the current process. </summary>
    INHERIT           /**/ = 0x00000002,

    /// <summary> This flag only applies to objects that are named within the object manager. By default,
    /// such objects are deleted when all open handles to them are closed. If this flag is specified, the
    /// object is not deleted when all open handles are closed. Drivers can use the ZwMakeTemporaryObject
    /// routine to make a permanent object non-permanent. </summary>
    PERMANENT         /**/ = 0x00000010,

    /// <summary> If this flag is set and the OBJECT_ATTRIBUTES structure is passed to a routine that creates an object,
    /// the object can be accessed exclusively. That is, once a process opens such a handle to the object,
    /// no other processes can open handles to this object. If this flag is set and the OBJECT_ATTRIBUTES structure is
    /// passed to a routine that creates an object handle, the caller is requesting exclusive access to the object for
    /// the process context that the handle was created in. This request can be granted only if the OBJ.EXCLUSIVE flag
    /// was set when the object was created. </summary>
    EXCLUSIVE         /**/ = 0x00000020,

    /// <summary> If this flag is specified, a case-insensitive comparison is used when matching the name pointed to by
    /// the ObjectName member against the names of existing objects. Otherwise, object names are compared using the
    /// default system settings. </summary>
    CASE_INSENSITIVE      /**/ = 0x00000040,

    /// <summary> If this flag is specified, by using the object handle, to a routine that creates objects and if that
    /// object already exists, the routine should open that object. Otherwise, the routine creating the object returns
    /// an NTSTATUS code of STATUS_OBJECT_NAME_COLLISION. </summary>
    OPENIF        /**/ = 0x00000080,

    /// <summary> If an object handle, with this flag set, is passed to a routine that opens objects and if the object
    /// is a symbolic link object, the routine should open the symbolic link object itself, rather than the object that
    /// the symbolic link refers to (which is the default behavior). </summary>
    OPENLINK          /**/ = 0x00000100,

    /// <summary> The handle is created in system process context and can only be accessed from kernel mode. </summary>
    KERNEL_HANDLE     /**/ = 0x00000200,

    /// <summary> The routine that opens the handle should enforce all access checks for the object, even if the handle
    /// is being opened in kernel mode. </summary>
    FORCE_ACCESS_CHECK    /**/ = 0x00000400,
    };

Notes:

None.

Documentation
 

Please edit this page!

Do you have...

  • helpful tips?
  • corrections to the existing content?
  • additional languages you want to include?

Select "Edit This Page" on the right hand toolbar and edit it!

 
Access PInvoke.net directly from VS:
Terms of Use
Edit This Page
Find References
Show Printable Version
Revisions