Simon Rozman
8eefe85bb2
Move packet queue clearing into a reusable function
...
We will need this in OID_PNP_SET_POWER.
Signed-off-by: Simon Rozman <simon@rozman.si>
2019-04-03 03:37:23 +02:00
Jason A. Donenfeld
bba0f6aecf
Do not call NdisMPauseComplete before TunPause returns
...
Otherwise we trigger a bugcheck on Server 2019.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-03-29 21:42:46 +01:00
Simon Rozman
7b3ea2a8a9
Reintroduce outgoing statistics
...
Outgoing statistics-keeping was accidentally dropped in
ed93692ca0049123979e0497aa3c4a4698f844cd. This commit reintroduces it.
Signed-off-by: Simon Rozman <simon@rozman.si>
2019-03-29 16:23:24 +01:00
Simon Rozman
cf01a7ded2
Use tabs for indentation and spaces for horizontal alignment
...
Screen is a valuable real-estate on small displays or when working in
less than maximized or full-screen Visual Studio IDE.
This commit replaces tabulators used for horizontal alignment with
spaces, and stops imposing 8-space tabulators on everyone.
Signed-off-by: Simon Rozman <simon@rozman.si>
2019-03-29 06:05:17 +01:00
Simon Rozman
5e5cb74553
Limit minimum size of exchange buffer
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2019-03-28 12:08:14 +01:00
Simon Rozman
6085957d9d
Check buffer for oversize after MDL size consultation
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2019-03-28 11:48:01 +01:00
Simon Rozman
69d6f003e4
Clean TunQueueProcess()
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2019-03-28 11:48:01 +01:00
Simon Rozman
745acc8b95
Tighten code analysis annotations
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2019-03-28 11:22:16 +01:00
Simon Rozman
49847b5508
Skip IRPs we fail to get MDL access from
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2019-03-28 11:12:59 +01:00
Jason A. Donenfeld
f0275285a3
Skip impossibly large NBs when removing
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-03-28 09:11:06 +01:00
Jason A. Donenfeld
64c408a2e4
Don't discard unfitting NBLs and fix prepend ref counting
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-03-28 08:30:37 +01:00
Simon Rozman
9294d4b498
Fix uninitialized status and remove redundant locking in TunQueueProcess
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2019-03-28 07:41:44 +01:00
Simon Rozman
5e87977cf8
Kill some more Camels
...
Disclaimer: No animals were hurt in this commit.
Signed-off-by: Simon Rozman <simon@rozman.si>
2019-03-28 07:41:43 +01:00
Jason A. Donenfeld
03a45fb768
Better ctx management
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-03-27 17:16:35 +01:00
Simon Rozman
015999430f
Simplify adapter context extraction from device extension
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2019-03-27 15:18:37 +01:00
Simon Rozman
b157105c58
Revise adapter pausing
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2019-03-27 13:47:38 +01:00
Simon Rozman
269007f606
Kill some more Camels
...
Disclaimer: No animals were hurt in this commit.
Signed-off-by: Simon Rozman <simon@rozman.si>
2019-03-27 10:12:53 +01:00
Simon Rozman
894a7f54a1
Upgrade TunNBLRefDec() to provide IRQL hints to NDIS
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2019-03-27 09:18:47 +01:00
Jason A. Donenfeld
0dac9b2bc7
Use CSQ instead of StartIO
...
This also introduces a proper queueing and refcounting system, which
should increase performance and allow for IRP cancelation.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Signed-off-by: Simon Rozman <simon@rozman.si>
2019-03-27 09:00:19 +01:00
Simon Rozman
9704a4d11f
Terminate device connection on NDIS pause
...
If device connection is not terminated on NDIS pause, the driver doesn't
unload when adapter is disabled. This also prevents driver updates
without reboot.
Signed-off-by: Simon Rozman <simon@rozman.si>
2019-03-22 16:52:31 -06:00
Simon Rozman
9fbc8091ab
Add some basic assert checks
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2019-03-22 16:52:31 -06:00
Simon Rozman
b6f0e07c2f
Unify and revise NDIS pause checks
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2019-03-22 16:52:31 -06:00
Simon Rozman
d6dfda0421
Rename ActiveNBLCount to ActiveTransactionCount
...
We are not using this counter for NBL counting only.
Signed-off-by: Simon Rozman <simon@rozman.si>
2019-03-22 16:52:31 -06:00
Simon Rozman
2e35974a24
Fix ActiveNBLCount management in TunDispatchWrite()
...
The ActiveNBLCount must be bumped _before_ adapter state is checked.
Otherwise, there is a window of code that may allow adapter transition
from pausing to paused state, followed by a
NdisMIndicateReceiveNetBufferLists() call.
Signed-off-by: Simon Rozman <simon@rozman.si>
2019-03-22 16:52:31 -06:00
Simon Rozman
999cfaabcc
Optimize ActiveNBLCount management in TunSendNetBufferLists
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2019-03-22 16:52:31 -06:00
Simon Rozman
a9afa3a692
Fix the UAF issue with premature MDL release in IRP_MJ_WRITE
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2019-03-22 16:52:31 -06:00
Jason A. Donenfeld
03479caf9d
Initial commit
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Signed-off-by: Simon Rozman <simon@rozman.si>
2019-03-22 16:52:31 -06:00