Skip to content

v0.02-1

tagged this 17 Aug 06:30
In some cases driver sends IOCTLS to the underlying devices.
It uses IoBuildDeviceIoControlRequest() function to allocate
IOCTL IRP.

This function allocates threaded IRP which has a number of
limitations for contexts it may be sent from.
In particular it must be sent from PASSIVE_LEVEL
and non-arbitrary thread context to complete successfully.

Since this is not always true for contexts driver sends IRPs from,
never completed IOCTLs were observed on load tests.

This patch fixes the problem by using IoAllocateIrp()
function to allocate IOCTL IRPs.

Signed-off-by: Pavel Gurvich <[email protected]>
Signed-off-by: Dmitry Fleytman <[email protected]>
Assets 2
Loading