Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers...
[reactos.git] / media / doc / locks.txt
1 Next-Gen (NT 5.2) Executive Locks in NTOSKRNL.
2 ------------------------------
3 1a. Rundown Protection
4 USED IN: Thread/Process Ps* Code.
5 EXAMPLES: NtSetInformationProcess/Thread, PspCreateThread/Process, PspSuspend/ResumeThread...
6 REPLACES: Unlocked access and/or PsLock/UnlockProcess.
7 ROS STATUS: Implemented. Code needs cleanup. Not yet tested. Not yet used.
8
9 1b. Cache-Aware Rundown Protection
10 USED IN: Unknown. Functions exported for drivers.
11 EXAMPLES: None.
12 REPLACES: Nothing.
13 ROS STATUS: Unimplemented.
14
15 2. Guarded Mutex
16 USED IN: Configuration Manager, MCB Functions (FsRtl), Binary Hive Module (Hv), PnP (Notifications), LPC, Jobs (Ps), Device Map (Ob), and Memory Management (Address Space/Virtual Memory).
17 EXAMPLES: Too many.
18 REPLACES: Anything that used FAST_MUTEX.
19 ROS STATUS: Implemented, slightly tested; appears to still contain a bug.
20
21 3. Fast Referencing
22 USED IN: Tokens.
23 EXAMPLES: R: PsReferencePrimary/EffectiveToken. D: Failure code of anything that calls those two functions.
24 REPLACES: Normal referencing.
25 ROS STATUS: Hackplemented stubs.
26
27 4a. Pushlocks
28 USED IN: Configuration Manager (Cm), Handle Table (Ex), Binary Hive Module (Hv), Memory Management (Address Space/Virtual Memory), Object Namespace (Directories/Names) (Ob), Impersonation (Ps).
29 EXAMPLES: Too many.
30 REPLACES: Anything that used ERESOURCE.
31 ROS STATUS: Implemented (missing Block/([Timed]Wait)Unblock) and slightly tested.
32
33 4b. Cache-Aware Pushlocks
34 USED IN: AWE (Mm).
35 EXAMPLES: None.
36 REPLACES: Executive Resources.
37 ROS STATUS: Unimplemented.
38
39 TODO: Kernel Locks (Queued and In-Stack Spinlocks)