reactos/ntoskrnl/include/internal
George Bișoc 697a52aa33
[NTOS:CM] Do not acquire the lock twice when the Object Manager calls CmpSecurityMethod
Whenever a security request is invoked into a key object, such as when requesting
information from its security descriptor, the Object Manager will execute
the CmpSecurityMethod method to do the job.

The problem is that CmpSecurityMethod is not aware if the key control block
of the key body already has a lock acquired which means the function will attempt
to acquire a lock again, leading to a deadlock. This happens if the same
calling thread locks the KCB but it also wants to acquire security information
with ObCheckObjectAccess in CmpDoOpen.

Windows has a hack in CmpSecurityMethod where the passed KCB pointer is ORed
with a bitfield mask to avoid locking in all cases. This is ugly because it negates
every thread to acquire a lock if at least one has it.
2023-10-01 20:06:02 +02:00
..
amd64 [NTOS:KE] Add x86 CPU features reporting to AMD64 2023-07-02 21:00:32 +03:00
arch
arm
i386 [NTOS:KE] Report x86 CPU features in a separate function 2023-07-02 21:00:31 +03:00
cc.h NTOS:CC Free some VACBs when we're under memory pressure 2023-07-29 14:00:44 +03:00
cm.h [NTOS:CM] Do not acquire the lock twice when the Object Manager calls CmpSecurityMethod 2023-10-01 20:06:02 +02:00
cm_x.h [NTOS:CM] Implement the shared lock macro for use 2023-10-01 20:06:00 +02:00
cmboot.h [NTOS:CM] Adapt cmboot.c for usage in NT/ReactOS bootloader. 2022-04-16 18:37:45 +02:00
dbgk.h
ex.h [NTOS:EX] Initialize ExpResourceTimeoutCount also via the "Session Manager/ResourceTimeoutCount" registry value (#4089) 2023-09-21 13:33:28 +02:00
fsrtl.h [NTOS] Properly implement and use FsRtlAcquireFileForModWriteEx 2022-11-02 19:41:04 +01:00
hal.h
hdl.h
icif.h [NTOSKRNL] Force a probe against ReturnLength on query & Misc ICIF stuff 2022-06-12 11:05:05 +02:00
inbv.h [NTOS:INBV] Code refactoring: Move all the boot animation-specific code out of inbv.c and into the new bootanim.c file. 2022-02-13 21:29:14 +01:00
io.h [NTOS:PNP] Refactor PnpRootCreateDevice 2023-06-29 19:25:28 +03:00
io_i.h
io_x.h [NTOS:IO] Use a guarded region in IopQueueIrpToThread. 2021-11-20 14:58:51 -05:00
kd.h [NTOS:KD:KDBG] Integration into KD framework (Part 1/3) 2023-08-31 16:07:51 +02:00
kd64.h [NTOS:KD64] Format string of KdpDprintf can be const. 2023-03-22 19:57:59 +01:00
ke.h
ke_x.h [NTOS:IO] Use a guarded region in IopQueueIrpToThread. 2021-11-20 14:58:51 -05:00
ldr.h
lpc.h
lpc_x.h
mm.h [NTOS:MM/PS] Remove code duplication between LookupEntryPoint/MiLocateExportName/MiFindExportedRoutineByName. (#4918) 2023-08-29 17:26:57 +02:00
napi.h
ntoskrnl.h [NTOS] Include kdbg/kdb.h only in the files that really need it. 2023-04-11 00:44:10 +02:00
ob.h [NTOS:OB] Add a system process quota block macro 2022-01-11 10:11:09 +01:00
ob_x.h [NTOS:OB] Clarify and fix the usage of the Obp*DirectoryLock*() and ObpReleaseLookupContextObject() functions. 2021-09-25 00:47:43 +02:00
po.h
probe.h [NTOSKRNL] Force a probe against ReturnLength on query & Misc ICIF stuff 2022-06-12 11:05:05 +02:00
ps.h [NTOS:MM/PS] Remove code duplication between LookupEntryPoint/MiLocateExportName/MiFindExportedRoutineByName. (#4918) 2023-08-29 17:26:57 +02:00
ps_i.h [NTOS:PS] Support using QUOTA_LIMITS_EX in NtSetInformationProcess(ProcessQuotaLimits) 2021-07-15 19:33:45 +02:00
ps_x.h
rtl.h
se.h [RTL] Improve usage of absolte vs self-relative security descriptors 2023-09-26 18:01:45 +03:00
spinlock.h
tag.h [NTOS:SE] Do not allocate memory pool just for the access rights 2023-03-07 17:50:39 +01:00
test.h
vdm.h