Relational NT
A relational database kernel shaped around NT-style object management.
Loading...
Searching...
No Matches
nt::HandlerManager::handle Struct Reference

Represents authorized access to an object in the registry. More...

#include <HandlerManager.h>

Public Attributes

ObjectManager::registry * object = nullptr
 Object referenced by this handle.
void * connection_context = nullptr
 Connection metadata associated with the authorized access.
std::set< AUTH_CLAIM > granted_access
 Access claims granted to this handle at open time.

Detailed Description

Represents authorized access to an object in the registry.

The access mask is evaluated once during Open and cached here for the lifetime of the handle. Subsequent operations check granted_access rather than re-evaluating the security descriptor on every call. This resolves the performance question in PermissionsManager about when to check permissions.

Because storage is append-only, a WRITE claim does not mean mutating an existing tuple in-place. It means the session is authorized to commit a new snapshot version of the relation. Two sessions holding WRITE handles on the same relation always produce independent snapshots — there is no data-level conflict.

Todo
Populate granted_access inside HandlerManager::Open from PermissionsManager::Firewall / Access. See docs/reactos-ob-comparison.md §4.

Member Data Documentation

◆ granted_access

std::set<AUTH_CLAIM> nt::HandlerManager::handle::granted_access

Access claims granted to this handle at open time.

Cached here so that per-operation checks read from the handle rather than re-evaluating the security descriptor.

Todo
Populate in HandlerManager::Open.

The documentation for this struct was generated from the following file: