# OBJECT\_ATTRIBUTES

```csharp
public unsafe struct OBJECT_ATTRIBUTES
{
    public uint Length;
    public HANDLE RootDirectory;
    public UNICODE_STRING* ObjectName;
    public uint Attributes;
    public void* SecurityDescriptor;
    public void* SecurityQualityOfService;
}
```

[UNICODE\_STRING](/foundation/unicode_string.md)

```csharp
//
// Valid values for the Attributes field
//
public const int OBJ_HANDLE_TAGBITS = 3;
public const int OBJ_INHERIT = 2;
public const int OBJ_PERMANENT = 16;
public const int OBJ_EXCLUSIVE = 32;
public const int OBJ_CASE_INSENSITIVE = 64;
public const int OBJ_OPENIF = 128;
public const int OBJ_OPENLINK = 256;
public const int OBJ_KERNEL_HANDLE = 512;
public const int OBJ_FORCE_ACCESS_CHECK = 1024;
public const int OBJ_IGNORE_IMPERSONATED_DEVICEMAP = 2048;
public const int OBJ_DONT_REPARSE = 4096;
public const int OBJ_VALID_ATTRIBUTES = 8178;
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://www.pinvoke.dev/foundation/object_attributes.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
