diff options
author | Simon Rozman <simon@rozman.si> | 2019-07-22 10:31:57 +0200 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2019-07-31 13:59:46 +0000 |
commit | 0d9b9b925af040becf82e37a66bba58b77a706a1 (patch) | |
tree | a7c99b0088f9be973f76b247064f8117575c1369 /wintun.proj | |
parent | Compile on 32-bit and arm64 (diff) | |
download | wintun-0d9b9b925af040becf82e37a66bba58b77a706a1.tar.xz wintun-0d9b9b925af040becf82e37a66bba58b77a706a1.zip |
Reinitialize active NBL remove lock to allow adapter reuse
Before the TunProcessReceiveData() thread terminates or adapter is
paused, we wait for all receive NBLs to be returned. Unfortunately,
IoReleaseRemoveLockAndWait() leaves the remove lock in non reusable
state.
To be able to start receiving packets on existing adapter again, we
(re)initialize the remove lock on ring registration or adapter resume.
The former addresses TunProcessReceiveData()'s
IoReleaseRemoveLockAndWait() call, the later addresses the TunPause()'s.
Signed-off-by: Simon Rozman <simon@rozman.si>
Diffstat (limited to 'wintun.proj')
0 files changed, 0 insertions, 0 deletions