smaller than PAGE_SIZE. This caused creation of the paging file on such a
partition to fail, which in turn made SMSS fail, blocking the boot process.
Creation of paging file fixed, and failure to create it is no longer a blocker
for the boot process (just try to run without paging file).
svn path=/trunk/; revision=20493
* The functions now disable interrupts as they should. This is a core functionality of the ExInterlocked functions which we did not do.
* The functions now preserve EFLAGS as they should. This is another core functionality and point of ExInterlocked functions, which we did not do.
* Use KiAcquire/ReleaseSpinlock equivalents instead of going through HAL. Also make them macros which can be later used in other assembly files.
* Write optimized versions for non-SMP machines. Namely, the spinlock macros are coded to be no-ops on UP machines, since they are not needed.
* Write all functions in assembly, so we can cleanly optimize them and properly restore/save EFLAGS and use CLI.
- Use the right interlocked macro in guarded mutex implementation.
- Fix export of Exi386InterlockedExchangeUlong
- Use documented EFLAGS definition instead of hard-coded value in some interlocked functions.
svn path=/trunk/; revision=20474
info for translating purposes:
IDS_INETTIMESUCSYNC "The time has been successfully synchronized with <server> on <date> at <time>"
IDS_INETTIMENEXTSYNC "Next synchronization: <date> at <time>"
svn path=/trunk/; revision=20461
- Implement YieldProcessor
- Fix formatting in spinlock.c
- KiAcquireSpinlock and KiReleaseSpinLock should be no-op functions on uniprocessor machines.
- KiReleaseSpinLock does not need interlocked access to release the lock.
- Use portable code for KiAcquireSpinLock. Also use interlocked bit operations since they are faster.
svn path=/trunk/; revision=20436
- Rundown re-implementation:
* Added inlined functions for internal system use for quickest path.
* Correctly named all functions Exf instead of Ex.
* Removed PAGED_CODE(); macro where it shouldn't be used.
* Addded multiple ASSERTS for sanity checks.
* Used macros for win64/32 portability.
* Fixed the following bugs/features:
* ExfAcquireRundownProtection:
** Added specific code instead of calling the generic function. Rundown locks are
performance critical and a dedicated path is prefered.
* ExfAcquireRundownProtectionEx:
** Added a quick immediate check to see if the rundown is active.
* ExfReleaseRundownProtection:
** Added specific code instead of calling the generic function. Rundown locks are
performance critical and a dedicated path is prefered.
* ExfReleaseRundownProtectionEx:
** Simplified the loop code.
** Fixed a bug in signaling of the event during waitblock count removal
* ExfWaitForRundownProtectionRelease:
** Add quick case when we don't actually need a full wait.
** Simplified loop code.
* Added stubs for cache-aware implementation.
* Documented the functions.
svn path=/trunk/; revision=20435