diff options
| author | Wei Mao <[email protected]> | 2018-01-29 09:05:30 -0800 |
|---|---|---|
| committer | Wei Mao <[email protected]> | 2018-01-29 09:05:30 -0800 |
| commit | 7744ad753f86da9f93d151d3280aacd666c789ef (patch) | |
| tree | f7fbdc2e59927b04dea4d145330853cba5efbfe6 | |
| parent | 8b17cf3d06b4e74dde2d1d83eeb75a247883f92d (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.c | 2 |
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); |
