Complete reference for all LCS self-configuration parameters. Every
parameter lives under Machine\System\Registry\ and follows the
self-configuration mechanism described in the Self-Configuration
section: compiled-in defaults at boot, hot-swapped via self-watch
when registry values are available, validated against defined
ranges, invalid values rejected with audit event.
All parameters are REG_DWORD (uint32). All have compiled-in
defaults that produce correct behaviour without any registry
configuration.
Per-request timeout for RSI round trips to a source. When exceeded, the calling thread receives ETIMEDOUT. The source stays alive.
ETIMEDOUT
Machine\System\Registry\TransactionTimeoutMs
30000
1000
600000
milliseconds
Maximum lifetime of an open transaction from reg_begin_transaction to auto-abort. Prevents stalled or malicious processes from holding the source's write lock indefinitely.
Transaction auto-aborted; caller's next operation returns EINVAL.
Maximum queued events per armed watch before overflow. When exceeded, oldest events are dropped and OVERFLOW is inserted.
OVERFLOW event delivered to watcher.
Machine\System\Registry\MaxSubtreeWatchDepth
0
0
4096
levels
Maximum depth from the watched key to descendant keys for subtree watch event delivery. 0 means unlimited (all descendants). Events for changes deeper than this limit are silently dropped.
Events silently not delivered for changes beyond the depth limit.
Maximum watch events generated per-watcher from a single transaction commit. When exceeded, LCS stops generating individual events and inserts a single OVERFLOW instead.
OVERFLOW event delivered to watcher.
§11.4.8 Private hive and layer credential limits #
Full path
Default
Min
Max
Unit
Description
Errno on violation
Machine\System\Registry\MaxScopeGUIDsPerToken
8
1
256
GUIDs
Maximum private hive scope GUIDs a thread's credentials can carry. Bounds per-syscall routing iteration cost.
Error at credential attachment time (KACS concern).
Machine\System\Registry\MaxPrivateLayersPerToken
16
1
256
layers
Maximum private layer names a thread's credentials can carry. Bounds per-resolution is_active() iteration cost.
Error at credential attachment time (KACS concern).
All parameters are read from Machine\System\Registry\ via the
self-watch mechanism. Changes take effect for new operations
after the self-watch callback completes. In-flight operations
use the value active when they started.
Invalid values (out of range, wrong type) are silently ignored.
LCS retains the previous known-good value and emits an audit
event.
Values are never clamped. The registry shows what was written;
the audit log shows what LCS is actually using.
The SD on Machine\System\Registry\ controls who can modify
these parameters. By default: SYSTEM and Administrators have
KEY_ALL_ACCESS, Authenticated Users have KEY_READ. Domain
policy via Group Policy at higher precedence layers provides
additional protection.