Change spin lock release functions to do an interlocked exchange.

This commit is contained in:
Skyth 2024-11-11 20:18:12 +03:00
parent 043c9e039b
commit 3080412dc0

View file

@ -664,7 +664,7 @@ void RtlRaiseException_x()
void KfReleaseSpinLock(uint32_t* spinLock) void KfReleaseSpinLock(uint32_t* spinLock)
{ {
//printf("!!! STUB !!! KfReleaseSpinLock\n"); //printf("!!! STUB !!! KfReleaseSpinLock\n");
*spinLock = 0; InterlockedExchange((volatile long*)spinLock, 0);
} }
void KfAcquireSpinLock(uint32_t* spinLock) void KfAcquireSpinLock(uint32_t* spinLock)
@ -711,7 +711,7 @@ void VdGetSystemCommandBuffer()
void KeReleaseSpinLockFromRaisedIrql(uint32_t* spinLock) void KeReleaseSpinLockFromRaisedIrql(uint32_t* spinLock)
{ {
//printf("!!! STUB !!! KeReleaseSpinLockFromRaisedIrql\n"); //printf("!!! STUB !!! KeReleaseSpinLockFromRaisedIrql\n");
*spinLock = 0; InterlockedExchange((volatile long*)spinLock, 0);
} }
void KeAcquireSpinLockAtRaisedIrql(uint32_t* spinLock) void KeAcquireSpinLockAtRaisedIrql(uint32_t* spinLock)