Complete requests and free buffers outside of queue lock
Complete requests and free buffers outside of queue lock

Just reducing the critical section here.
WdfRequestUnmarkCancelable needs to be called while holding
the queue lock to synchronize with the cancellation logic but
the actual request completion doesn't have to be done under
the lock. Same is true for buffer deallocation.

virtio-win/kvm-guest-drivers-windows,vrozenfe/kvm-guest-drivers-windows,YanVugenfirer/virtio-win-arm,virtio-win/kvm-guest-drivers-windows,vrozenfe/kvm-guest-drivers-windows,YanVugenfirer/virtio-win-arm,gnif/kvm-guest-drivers-windows,YanVugenfirer/kvm-guest-drivers-windows,gnif/kvm-guest-drivers-windows,YanVugenfirer/kvm-guest-drivers-windows,ladipro/kvm-guest-drivers-windows,YanVugenfirer/kvm-guest-drivers-windows,gnif/kvm-guest-drivers-windows,gnif/kvm-guest-drivers-windows,daynix/kvm-guest-drivers-windows,daynix/kvm-guest-drivers-windows,YanVugenfirer/kvm-guest-drivers-windows,virtio-win/kvm-guest-drivers-windows,YanVugenfirer/virtio-win-arm,daynix/kvm-guest-drivers-windows,vrozenfe/kvm-guest-drivers-windows,YanVugenfirer/virtio-win-arm,daynix/kvm-guest-drivers-windows,ladipro/kvm-guest-drivers-windows,ladipro/kvm-guest-drivers-windows,vrozenfe/kvm-guest-drivers-windows,daynix/kvm-guest-drivers-windows,YanVugenfirer/kvm-guest-drivers-windows,virtio-win/kvm-guest-drivers-windows,ladipro/kvm-guest-drivers-windows,virtio-win/kvm-guest-drivers-windows,vrozenfe/kvm-guest-drivers-windows