mirror of
https://github.com/reactos/reactos.git
synced 2024-09-27 21:16:34 +00:00
[NTOSKRNL/CONFIG]
- Implement new (correct) hive flusher lock/release routines, unused right now. svn path=/trunk/; revision=46619
This commit is contained in:
parent
3b722382ee
commit
fbf4909187
|
@ -27,6 +27,7 @@ BOOLEAN CmpFlushOnLockRelease;
|
|||
BOOLEAN CmpSpecialBootCondition;
|
||||
BOOLEAN CmpNoWrite;
|
||||
BOOLEAN CmpWasSetupBoot;
|
||||
BOOLEAN CmpProfileLoaded;
|
||||
ULONG CmpTraceLevel = 0;
|
||||
|
||||
extern LONG CmpFlushStarveWriters;
|
||||
|
@ -1622,6 +1623,56 @@ CmpTestRegistryLockExclusive(VOID)
|
|||
return !ExIsResourceAcquiredExclusiveLite(&CmpRegistryLock) ? FALSE : TRUE;
|
||||
}
|
||||
|
||||
VOID
|
||||
NTAPI
|
||||
CmpLockHiveFlusherExclusive(IN PCMHIVE Hive)
|
||||
{
|
||||
/* Lock the flusher. We should already be in a critical section */
|
||||
CMP_ASSERT_REGISTRY_LOCK_OR_LOADING(Hive);
|
||||
ASSERT((ExIsResourceAcquiredShared(Hive->FlusherLock) == 0) &&
|
||||
(ExIsResourceAcquiredExclusiveLite(Hive->FlusherLock) == 0));
|
||||
ExAcquireResourceExclusiveLite(Hive->FlusherLock, TRUE);
|
||||
}
|
||||
|
||||
VOID
|
||||
NTAPI
|
||||
CmpLockHiveFlusherShared(IN PCMHIVE Hive)
|
||||
{
|
||||
/* Lock the flusher. We should already be in a critical section */
|
||||
CMP_ASSERT_REGISTRY_LOCK_OR_LOADING(Hive);
|
||||
ASSERT((ExIsResourceAcquiredShared(Hive->FlusherLock) == 0) &&
|
||||
(ExIsResourceAcquiredExclusiveLite(Hive->FlusherLock) == 0));
|
||||
ExAcquireResourceSharedLite(Hive->FlusherLock, TRUE);
|
||||
}
|
||||
|
||||
VOID
|
||||
NTAPI
|
||||
CmpUnlockHiveFlusher(IN PCMHIVE Hive)
|
||||
{
|
||||
/* Sanity check */
|
||||
CMP_ASSERT_REGISTRY_LOCK_OR_LOADING(Hive);
|
||||
CMP_ASSERT_FLUSH_LOCK(Hive);
|
||||
|
||||
/* Release the lock */
|
||||
ExReleaseResourceLite(Hive->FlusherLock);
|
||||
}
|
||||
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
CmpTestHiveFlusherLockShared(IN PCMHIVE Hive)
|
||||
{
|
||||
/* Test the lock */
|
||||
return !ExIsResourceAcquiredSharedLite(Hive->FlusherLock) ? FALSE : TRUE;
|
||||
}
|
||||
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
CmpTestHiveFlusherLockExclusive(IN PCMHIVE Hive)
|
||||
{
|
||||
/* Test the lock */
|
||||
return !ExIsResourceAcquiredExclusiveLite(Hive->FlusherLock) ? FALSE : TRUE;
|
||||
}
|
||||
|
||||
VOID
|
||||
NTAPI
|
||||
CmpUnlockRegistry(VOID)
|
||||
|
|
|
@ -621,6 +621,24 @@ CmCheckRegistry(
|
|||
IN ULONG Flags
|
||||
);
|
||||
|
||||
//
|
||||
// Hive List Routines
|
||||
//
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
CmpAddToHiveFileList(
|
||||
IN PCMHIVE Hive
|
||||
);
|
||||
|
||||
//
|
||||
// Quota Routines
|
||||
//
|
||||
VOID
|
||||
NTAPI
|
||||
CmpSetGlobalQuotaAllowed(
|
||||
VOID
|
||||
);
|
||||
|
||||
//
|
||||
// Notification Routines
|
||||
//
|
||||
|
@ -633,6 +651,13 @@ CmpReportNotify(
|
|||
IN ULONG Filter
|
||||
);
|
||||
|
||||
VOID
|
||||
NTAPI
|
||||
CmpFlushNotify(
|
||||
IN PCM_KEY_BODY KeyBody,
|
||||
IN BOOLEAN LockHeld
|
||||
);
|
||||
|
||||
VOID
|
||||
NTAPI
|
||||
CmpInitCallback(
|
||||
|
@ -822,6 +847,36 @@ CmpUnlockRegistry(
|
|||
VOID
|
||||
);
|
||||
|
||||
VOID
|
||||
NTAPI
|
||||
CmpLockHiveFlusherExclusive(
|
||||
IN PCMHIVE Hive
|
||||
);
|
||||
|
||||
VOID
|
||||
NTAPI
|
||||
CmpLockHiveFlusherShared(
|
||||
IN PCMHIVE Hive
|
||||
);
|
||||
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
CmpTestHiveFlusherLockExclusive(
|
||||
IN PCMHIVE Hive
|
||||
);
|
||||
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
CmpTestHiveFlusherLockShared(
|
||||
IN PCMHIVE Hive
|
||||
);
|
||||
|
||||
VOID
|
||||
NTAPI
|
||||
CmpUnlockHiveFlusher(
|
||||
IN PCMHIVE Hive
|
||||
);
|
||||
|
||||
//
|
||||
// Delay Functions
|
||||
//
|
||||
|
@ -978,6 +1033,13 @@ CmpReleaseTwoKcbLockByKey(
|
|||
IN ULONG ConvKey2
|
||||
);
|
||||
|
||||
VOID
|
||||
NTAPI
|
||||
CmpFlushNotifiesOnKeyBodyList(
|
||||
IN PCM_KEY_CONTROL_BLOCK Kcb,
|
||||
IN BOOLEAN LockHeld
|
||||
);
|
||||
|
||||
//
|
||||
// Name Functions
|
||||
//
|
||||
|
@ -1507,6 +1569,7 @@ extern ULONG CmpDelayedCloseSize, CmpDelayedCloseIndex;
|
|||
extern BOOLEAN CmpNoWrite;
|
||||
extern BOOLEAN CmpForceForceFlush;
|
||||
extern BOOLEAN CmpWasSetupBoot;
|
||||
extern BOOLEAN CmpProfileLoaded;
|
||||
extern PCMHIVE CmiVolatileHive;
|
||||
extern LIST_ENTRY CmiKeyObjectListHead;
|
||||
extern BOOLEAN CmpHoldLazyFlush;
|
||||
|
|
Loading…
Reference in a new issue