summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWei Mao <[email protected]>2018-01-29 09:05:30 -0800
committerWei Mao <[email protected]>2018-01-29 09:05:30 -0800
commit7744ad753f86da9f93d151d3280aacd666c789ef (patch)
treef7fbdc2e59927b04dea4d145330853cba5efbfe6
parent8b17cf3d06b4e74dde2d1d83eeb75a247883f92d (diff)
general/toaster/toastmon: purge iotarget
wdftoastmon: AV_VRF_Wdf01000!FxRequestBase::Vf_VerifyDispose The previous fix to Stop the IoTarget on D0Exit does not solve the problem. In stopped state, the IoTarget still receives incoming request and puts them in a pending list. On device removal, those requests trigger VerifyDispose break. With Purge, The IoTarget "in" gate is closed and won't accept any more incoming request. Besides, any existing requests in pending list are completed as well.
-rw-r--r--general/toaster/toastDrv/kmdf/toastmon/toastmon.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/general/toaster/toastDrv/kmdf/toastmon/toastmon.c b/general/toaster/toastDrv/kmdf/toastmon/toastmon.c
index c011c73e..44f6f5d2 100644
--- a/general/toaster/toastDrv/kmdf/toastmon/toastmon.c
+++ b/general/toaster/toastDrv/kmdf/toastmon/toastmon.c
@@ -384,7 +384,7 @@ Routine Description:
for (i = 0; i < count; i ++) {
ioTarget = WdfCollectionGetItem(deviceExtension->TargetDeviceCollection, i);
- WdfIoTargetStop(ioTarget, WdfIoTargetWaitForSentIoToComplete);
+ WdfIoTargetPurge(ioTarget, WdfIoTargetPurgeIoAndWait);
targetDeviceInfo = GetTargetDeviceInfo(ioTarget);
WdfTimerStop(targetDeviceInfo->TimerForPostingRequests, TRUE);