mirror of
https://github.com/reactos/reactos.git
synced 2025-04-09 23:37:40 +00:00
![]() - Split buffers on page to prevent non-contiguous memory being passed to driver. - Protect CIrpQueue::GetMappingWithTag, ReleaseMappingWithTag with spinlock to prevent race conditions (GetMapping, ReleaseMapping do not need spinlock, they are only called from a service routine). - Remove ASSERT in CIrpQueue::ReleaseMappingWithTag, when mappings are released out of order. Just ignore the tag argument and release the next one in the list. This is what windows does, confirmed by calling PortWavePciStream::ReleaseMapping() with tag argument set to 0, absolutly no difference observed. Allowing out of order release is essential given that a driver is not permitted to hold a spinlock when calling ReleaseMapping(). - Remove IIrpQueue::HasLastMappingFailed(), it never worked and there is no way it could work. CPortPinWavePci::HandleKsStream() call MappingAvailable() non-conditionally, this is what Windows does, verified by debug prints in ac97 driver. - Implement CIrpQueue::NumData(). - Remove incorrect interlocked operations/volatile variables and several (now unused) class fields. |
||
---|---|---|
.. | ||
base | ||
battery | ||
bluetooth | ||
bus | ||
crypto | ||
filesystems | ||
filters | ||
hid | ||
input | ||
ksfilter | ||
multimedia | ||
network | ||
parallel | ||
processor | ||
sac | ||
serial | ||
setup | ||
storage | ||
usb | ||
wdm | ||
wmi | ||
CMakeLists.txt |