diff options
| author | Yang You (UU) <[email protected]> | 2025-12-04 15:30:32 -0800 |
|---|---|---|
| committer | Yang You (UU) <[email protected]> | 2025-12-04 15:30:32 -0800 |
| commit | 10835ebc2bc4a774907fb47880ffc366b159622c (patch) | |
| tree | 7cfd1d9508a9a9c216706269a37cddb9db61299c /network/netadaptercx/netvadapterlibrary/code/memory.cpp | |
| parent | 977cb2461482a898f96ee08f9cb24eb7f421da03 (diff) | |
Cleanup the KSpinlock.h and replace with WDFSpinlock
Diffstat (limited to 'network/netadaptercx/netvadapterlibrary/code/memory.cpp')
| -rw-r--r-- | network/netadaptercx/netvadapterlibrary/code/memory.cpp | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/network/netadaptercx/netvadapterlibrary/code/memory.cpp b/network/netadaptercx/netvadapterlibrary/code/memory.cpp index 0c010d59..b7536531 100644 --- a/network/netadaptercx/netvadapterlibrary/code/memory.cpp +++ b/network/netadaptercx/netvadapterlibrary/code/memory.cpp @@ -34,6 +34,13 @@ Memory::Initialize( } m_lastBufferToUse = PREALLOCATED_BUFFERS_COUNT; + // Create WDF spinlock for the queue, parent to the queue's WDF handle + { + WDF_OBJECT_ATTRIBUTES attributes; + WDF_OBJECT_ATTRIBUTES_INIT(&attributes); + status = WdfSpinLockCreate(&attributes, &m_spinLock); + NT_ASSERT(NT_SUCCESS(status)); + } return STATUS_SUCCESS; } @@ -56,14 +63,17 @@ Memory::PopAvailableBuffer( void ) { - KAcquireSpinLock lock{ m_spinLock }; + WdfSpinLockAcquire(m_spinLock); if (m_lastBufferToUse == 0) { + WdfSpinLockRelease(m_spinLock); return nullptr; } + auto returnbuffer = m_buffersReadyToUse[--m_lastBufferToUse]; + WdfSpinLockRelease(m_spinLock); - return m_buffersReadyToUse[--m_lastBufferToUse]; + return returnbuffer; } void @@ -71,11 +81,12 @@ Memory::ReturnBuffer( MemoryBuffer* Buffer ) { - KAcquireSpinLock lock{ m_spinLock }; + WdfSpinLockAcquire(m_spinLock); NT_FRE_ASSERT(m_lastBufferToUse < PREALLOCATED_BUFFERS_COUNT); m_buffersReadyToUse[m_lastBufferToUse++] = Buffer; + WdfSpinLockRelease(m_spinLock); } #endif //NETCX 2.6 only |
