Question DRIVER_VERIFIER_DMA_VIOLATION Issue

Page 2 - Seeking answers? Join the Tom's Hardware community: where nearly two million members share solutions and discuss the latest tech.
Status
Not open for further replies.
Apr 2, 2022
32
0
30
o I've been running into this bluescreen for the last couple of weeks along with short freezes, my audio driver disconnecting, and my mouse or keyboard briefly disconnecting as well.

I've had this computer for over two months and it recently started doing this.

Ever since this started happening, I updated my BIOS, reinstalled my audio drivers, updated my GPU drivers, got the recent windows update and intel updates, and updated my SSD firmware. After doing all that, I still have this problem. So I'm kind of stump so I would like some help.

Specs:
Operating System
Windows 11 Pro 64-bit
CPU
Intel Core i7-12700KF @ 3.60GHz
RAM
32.0GB Dual-Channel GSkill @ 3600MHz
Motherboard
MSI z690-A DDR4
GPU
NVIDIA GeForce GTX 1070
Storage
Samsung SSD 980 PRO 1TB
Audio
Realtek High Definition Audio

***
  • *
  • Bugcheck Analysis *
  • *
***

DRIVER_VERIFIER_DMA_VIOLATION (e6)
An illegal DMA operation was attempted by a driver being verified.
Arguments:
Arg1: 0000000000000026, IOMMU detected DMA violation.
Arg2: 0000000000000000, Device Object of faulting device.
Arg3: 0000000040313cf3, Faulting information (usually faulting physical address).
Arg4: 0000000000000004, Fault type (hardware specific).

Debugging Details:
------------------


KEY_VALUES_STRING: 1

Key : Analysis.CPU.mSec
Value: 1171

Key : Analysis.DebugAnalysisManager
Value: Create

Key : Analysis.Elapsed.mSec
Value: 1176

Key : Analysis.Init.CPU.mSec
Value: 296

Key : Analysis.Init.Elapsed.mSec
Value: 4040

Key : Analysis.Memory.CommitPeak.Mb
Value: 99

Key : WER.OS.Branch
Value: co_release

Key : WER.OS.Timestamp
Value: 2021-06-04T16:28:00Z

Key : WER.OS.Version
Value: 10.0.22000.1


FILE_IN_CAB: MEMORY.DMP

DUMP_FILE_ATTRIBUTES: 0x1000

BUGCHECK_CODE: e6

BUGCHECK_P1: 26

BUGCHECK_P2: 0

BUGCHECK_P3: 40313cf3

BUGCHECK_P4: 4

BLACKBOXBSD: 1 (!blackboxbsd)


BLACKBOXNTFS: 1 (!blackboxntfs)


BLACKBOXPNP: 1 (!blackboxpnp)


BLACKBOXWINLOGON: 1

PROCESS_NAME: System

STACK_TEXT:
fffff8055096eec8 fffff8055252add1 : 00000000000000e6 0000000000000026 0000000000000000 0000000040313cf3 : nt!KeBugCheckEx
fffff8055096eed0 fffff80552513cfb : fffff80552c4bd40 fffff80552c4bd40 ffff9501b9747100 fffff80500400a02 : nt!IvtHandleInterrupt+0x1d1
fffff8055096ef20 fffff80552221440 : fffff80552cf8090 fffff80552cf8140 ffff9501b97471f0 fffff8055096ef40 : nt!HalpIommuInterruptRoutine+0x4b
fffff8055096ef50 fffff8055241846c : fffff8055095fa70 fffff80552cf8090 ffff950100000000 fffff80550953000 : nt!KiCallInterruptServiceRoutine+0xa0
fffff8055096ef90 fffff805524188a7 : 0000000150650000 00000000ffffffff 000000313dea5d2f 0000000000000000 : nt!KiInterruptSubDispatchNoLock+0x11c
fffff8055095f9f0 fffff8055241a89a : 0000000000000000 fffff80552d35bc0 ffffdf8d94da0080 00000000000009be : nt!KiInterruptDispatchNoLock+0x37
fffff8055095fb80 0000000000000000 : fffff80550960000 fffff80550959000 0000000000000000 0000000000000000 : nt!KiIdleLoop+0x5a


SYMBOL_NAME: nt!IvtHandleInterrupt+1d1

MODULE_NAME: nt

IMAGE_NAME: ntkrnlmp.exe

STACK_COMMAND: .cxr; .ecxr ; kb

BUCKET_ID_FUNC_OFFSET: 1d1

FAILURE_BUCKET_ID: 0xE6_nt!IvtHandleInterrupt

OS_VERSION: 10.0.22000.1

BUILDLAB_STR: co_release

OSPLATFORM_TYPE: x64

OSNAME: Windows 10

FAILURE_ID_HASH: {2cafa897-b47c-7b20-cee6-b1b68f30ec38}

Followup: MachineOwner
---------

Link to minidump
https://drive.google.com/file/d/1mN_LzAuUXo8n6DHSWh2HaWS9wiayUhZy/view?usp=sharing
 
I think disabling the buetooth exposed a bug in the intel driver. enable it and it might never bugcheck again.

Latest dump

I had the Bluetooth enabled and discoverable, but I ran into a BSOD again. I will try disabling plug-and-play and see how that goes.

Edit: I had my plug-and-play disabled and I ran into the same device disconnecting issue,
 
Last edited:
looks like you have the same bugcheck.
But there is not a hung thread in plug and play.

what I do see is usb network activity and usb hubs suspended (sleeping)
you might go into control panel, device manager and right mouse click each usb port, set them to not allow windows to save power.

then go to the hid device list and right mouse click them and do the same. so windows does not power down the device.

if you are not expecting network activity on your bluetooth you might go into the services and stop the intel blue tooth service and see if that is related to this bugcheck.

I still see a lock that is not getting released. I am guessing it going to be the intel bluetooth service talking to its driver that can not respond due to the usb port being asleep.

I will see if I can find the internal log and see what it indicates
-------------
system tried to wake the device on hub 1 port 14
and got a error:
hub1 port14 0xffffc101a8fed4e0 1356: HUBPDO_CompleteWaitWake - WdfDeviceIndicateWakeStatus Failed 0xc0000010(STATUS_INVALID_DEVICE_REQUEST)
------------
windows suspended the ports (low power mode)
later sent a wake up request.
some ports did not respond,
windows attempted a reset on the ports.
one port returned the invalid device request
then you get your bugcheck.
------------
the hub that did not respond was hub 2
ProductId: USB2.0 Hub
DeviceDescriptor: VID 05e3 ( Genesys Logic, Inc.) PID 0608 REV 6070, Class: (9)Class_UsbHUB BcdUsb: 0200

the root hub looked ok and hub 3 looked ok.
windows was expecting a response from this driver
\SystemRoot\System32\drivers\USBXHCI.SYS
and did not get it, and is still waiting.
this is the microsoft usb 3 host controller driver.

you might be able to update the firmware for your
Genesys Logic, Inc 2 hub so that it works correctly with sleep functions. Or just disable windows sleep for that hub so windows does not try to make it sleep.
(sleep seems to work, but wakeup does not.

note: hub and port numbers sometimes do not match since sometimes they are numbered starting from 0
and sometimes they are numbered starting from 1. depend on the programmer.
--------------
I am looking at some internal errors coming from usbxhci.sys it reports some DMA functions where the packets are broken up incorrectly. there are 7 usb packets that are still pending to be processed. it looks like the packets came from usb device slot 7
which I think is a logitech device with a usb device id of 0AAA which does not show on the list that I see here:https://devicehunt.com/search/type/usb/vendor/046D/device/0AAA

so you may have some logitech device that needs to have its firmware updated. found more info in the debugger about the device it was a Pro X revision 31
if that helps. maybe a logitech pro x gaming headset.
I would check for a driver update and maybe a firmware update.
(I do not know if this is the cause of the problems I was seeing. is this a bluetooth usb wireless device? assuming that you have one.) i don't see any special logitech drivers being loaded.

maybe this will fix the issue: software update came out
2022-04-13
https://support.logi.com/hc/en-us/articles/360034037633-Downloads-PRO-X-Gaming-Headset
 
Last edited:
Got the BSOD again



I have the updated pro x headset ghub, I set all my USBs to not turn off the power, and I have the plug and play off. I don't know what's wrong with my USB drivers :/
looks like lostark.exe was using a very high number of threads (350)
using 9 GB pagefile space. And was trying to get directx to free up some memory.

ucx01000!UsbDevice_TreePurgeFromHub
right before bugcheck.
------------------
BIOS Version 1.20
BIOS Starting Address Segment f000
BIOS Release Date 02/24/2022
Product Name MS-7D25
Manufacturer Micro-Star International Co., Ltd.
Product PRO Z690-A WIFI DDR4(MS-7D25)
Version 1.0
Processor Family_2 c6h - Intel Pentium M processor
Core Count 2 12
Core Enabled 2 12
Thread Count 2 20
Socket Designation U3E1
Processor Type Central Processor
Processor Family c6h - Intel Pentium M processor
Processor Manufacturer Intel(R) Corporation
Processor ID 72060900fffbebbf
Processor Version 12th Gen Intel(R) Core(TM) i7-12700KF
Processor Voltage 8bh - 1.1V
External Clock 100MHz
Max Speed 8500MHz
Current Speed 3564MHz

8: kd> !sysinfo cpumicrocode
Initial Microcode Version: 0000001a:00000000
Cached Microcode Version: 0000001a:00000000
Processor Family: 06
Processor Model: 97
Processor Stepping: 02

8: kd> !sysinfo cpuinfo
[CPU Information]
~MHz = REG_DWORD 3610
Component Information = REG_BINARY 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Configuration Data = REG_FULL_RESOURCE_DESCRIPTOR ff,ff,ff,ff,ff,ff,ff,ff,0,0,0,0,0,0,0,0
Identifier = REG_SZ Intel64 Family 6 Model 151 Stepping 2
ProcessorNameString = REG_SZ 12th Gen Intel(R) Core(TM) i7-12700KF
Update Status = REG_DWORD 2
VendorIdentifier = REG_SZ GenuineIntel
MSR8B = REG_QWORD 1a00000000

---------------
need to lookup maker of hub number 2.
will look in dump.
------------------------
this is the stack that leads to the failure: read from bottom up:
# Call Site
00 nt!KeAcquireSpinLockRaiseToDpc
01 ucx01000!StateMachineEngine_EventAdd
02 ucx01000!UsbDevice_TreePurgeFromHub
03 ucx01000!UsbDevice_EvtMgmtIoInternalDeviceControl
04 Wdf01000!FxIoQueueIoInternalDeviceControl::Invoke
05 Wdf01000!FxIoQueue:😀ispatchRequestToDriver
06 Wdf01000!FxIoQueue:😀ispatchEvents
07 Wdf01000!FxIoQueue::QueueRequestFromForward
08 Wdf01000!FxIoQueue::ForwardRequestWorker
09 Wdf01000!FxIoQueue::ForwardRequest
0a Wdf01000!imp_WdfRequestForwardToIoQueue
0b ucx01000!UsbDevice_EvtTreePurgeIoInternalDeviceControl
0c Wdf01000!FxIoQueueIoInternalDeviceControl::Invoke
0d Wdf01000!FxIoQueue:😀ispatchRequestToDriver
0e Wdf01000!FxIoQueue:😀ispatchEvents
0f Wdf01000!FxIoQueue::QueueRequest
10 Wdf01000!FxPkgIo:😀ispatchStep2
11 Wdf01000!imp_WdfDeviceWdmDispatchIrpToIoQueue
12 ucx01000!RootHub_Pdo_EvtInternalDeviceControlIrpPreprocessCallback
13 Wdf01000!PreprocessIrp
14 Wdf01000!DispatchWorker
15 Wdf01000!FxDevice:😀ispatch
16 Wdf01000!FxDevice:😀ispatchWithLock
17 nt!IofCallDriver
18 ACPI!ACPIIrpDispatchDeviceControl
19 ACPI!ACPIDispatchIrp
1a nt!IofCallDriver
1b Wdf01000!FxIoTarget::Send
1c Wdf01000!imp_WdfRequestSend
1d UsbHub3!HUBUCX_SubmitUcxIoctl
1e UsbHub3!HUBUCX_PurgeDeviceTreeIoUsingUCXIoctl
1f UsbHub3!HUBDSM_PurgingDeviceTreeIoOnReEnumerationInConfigured
20 UsbHub3!HUBSM_ExecuteEntryFunctionsAndPushPopStateMachinesForCurrentState
21 UsbHub3!HUBSM_RunStateMachine
22 UsbHub3!HUBSM_AddEvent
23 UsbHub3!HUBPDO_EvtIoInternalDeviceControl
24 Wdf01000!FxIoQueueIoInternalDeviceControl::Invoke
25 Wdf01000!FxIoQueue:😀ispatchRequestToDriver
26 Wdf01000!FxIoQueue:😀ispatchEvents
27 Wdf01000!FxIoQueue::QueueRequest
28 Wdf01000!FxPkgIo:😀ispatchStep2
29 Wdf01000!imp_WdfDeviceWdmDispatchIrpToIoQueue
2a UsbHub3!HUBPDO_EvtDeviceWdmIrpPreprocess
2b Wdf01000!PreprocessIrp
2c Wdf01000!DispatchWorker
2d Wdf01000!FxDevice:😀ispatch
2e Wdf01000!FxDevice:😀ispatchWithLock
2f nt!IofCallDriver
30 ACPI!ACPIIrpDispatchDeviceControl
31 ACPI!ACPIDispatchIrp
32 nt!IofCallDriver
33 usbccgp!CallNextDriverSync
34 usbccgp!ParentResetOrCyclePort
35 usbccgp!DispatchFdoInternalDeviceControl
36 usbccgp!USBC_Dispatch
37 nt!IofCallDriver
38 usbccgp!UsbcForwardIrp
39 usbccgp!DispatchPdoInternalDeviceControl
3a usbccgp!USBC_Dispatch
3b nt!IofCallDriver
3c hidusb!HumResetParentPort
3d hidusb!HumResetWorkItem
3e nt!IopProcessWorkItem
3f nt!ExpWorkerThread
40 nt!PspSystemThreadStartup
41 nt!KiStartSystemThread

i think the driver ucx01000 .sys is an extension that will only work with very standard USB devices. that is why I am looking at your hubs in the debugger.
-------------------
!device_info 0xffffc20a931d20d0, !devstack ffffc20a95a31d80
Current Device State: ReEnumeratingOnClientRequestInConfigured.PurgingDeviceTreeIoOnReEnumerationInConfigured
Desc: PRO X
USB\VID_046D&PID_0AAA&REV_0031 Logitech Inc.
!ucx_device 0xffffc20a954ade00 !xhci_deviceslots 0xffffc20a8bc9dcf0 6 !xhci_info 0xffffc20a8bc9dcf0
UCX !irp 0xffffc20a8c132010 _IOCTL_INTERNAL_USB_USBDEVICE_TREE_PURGEIO is PENDING


the logitech pro x is plugged in to a usb 2 hub. maybe you should try plugging it directly into a usb 3 root hub.
it looks like the logitech device had power but shut down its radio, then tells the hub above it to reset when it starts back up. the hub above it thinks it is bogus and not required and says it is ignoring the request. I think the logitech device just does not finish and waits for ever for a signal that the root hub will not send. Only thing I can think to do is move the connections. (assuming the hub is not inside the device)
 
Last edited:
Basically, use a different USB port? The ports I'm using are the black one in the middle above the blue one. Should I try putting it in the blue one instead?
1024.png


I don't know if this relates to the problem but from the looks of the event viewer, I keep getting this,
Session "dc3a3596-71e1-45a3-b2ea-39ad5322fe51" failed to start with the following error: 0xC0000022
 
Last edited:
Basically, use a different USB port? The ports I'm using are the black one in the middle above the blue one. Should I try putting it in the blue one instead?
1024.png


I don't know if this relates to the problem but from the looks of the event viewer, I keep getting this,
Session "dc3a3596-71e1-45a3-b2ea-39ad5322fe51" failed to start with the following error: 0xC0000022
Error code: (NTSTATUS) 0xc0000022 (3221225506) - {Access Denied} A process has requested access to an object, but has not been granted those access rights
--------------
there was only one error reported from the ubs 3 hub and it was a failed usb call https://docs.microsoft.com/en-us/wi...i-acpiioct-ioctl_acpi_async_eval_method_v1_ex
something that was added to
Windows 10, version 1709 and later versions

your build is newer.

the system reported having like 16 usb 2 ports and maybe the same usb 3 ports.

i think black plastic is usb 2,
blue is usb 3
and red is usb applecharger ?
internally it looks like all of your usb 2 are connected to hub controllers that connect to your usb 3 ports.
so your usb 3 is your main root port. try the blue ones.
usb 3 will be faster for your headset also.
 
the system reported having like 16 usb 2 ports and maybe the same usb 3 ports.

That is weird, there's 2 USB 2 ports in the front, 4 in the back, 2 USB 3.1 ports, and 1 USB 3.2 port on my entire computer.

Only USB ports I am using is the USB 2 ports on the far left for my mouse and keyboard, and then the Pro X on the USB 2 port in the middle according to the picture I sent.
 
That is weird, there's 2 USB 2 ports in the front, 4 in the back, 2 USB 3.1 ports, and 1 USB 3.2 port on my entire computer.

Only USB ports I am using is the USB 2 ports on the far left for my mouse and keyboard, and then the Pro X on the USB 2 port in the middle according to the picture I sent.
they must be exposed by a motherboard header that you would have to connect a cable to then backplane holder that uses a one of the case slots.
looks like the motherboard spec indicated
9 usb 3.x
8 usb 2.x
not sure why the debugger reported more.
(ok, my mistake, the debugger shows all of the ports connected to the USB 3 which included the 2 usb 2 hubs and all of their ports) still need to find out why the debugger thought there were 16 usb 2 ports. most likely a debugger mistake.
  • Intel® Z690 Chipset
    • 1x USB 3.2 Gen 2x2 20Gbps Type-C port on the back panel
    • 2x USB 3.2 Gen 2 10Gbps ports (1 Type-C internal connector and 1 Type-A port on the back panel)
    • 6x USB 3.2 Gen 1 5Gbps ports (2 Type-A ports on the back panel, and 4 ports are available through the internal USB connectors)
    • 4x USB 2.0 Type-A ports on the back panel
  • USB 2.0 Hubs GL850G
    • 4x USB 2.0 ports are available through the internal USB connectors
------------
this is just a note for me in case you still get a bugcheck after moving the logitech pro x to a usb 3.x hub.

debug command:
!usb3kd.xhci_dumpall [1]
look for errors on device
USB\VID_046D&PID_0AAA Logitech Inc.
look for errors on port:
CC_MISSED_SERVICE_ERROR
CC_SPLIT_TRANSACTION_ERROR
CC_USB_TRANSACTION_ERROR


most likely a bug in the logitech device.
also, may only happen on windows 10 1709 or newer builds.
 
Last edited:
Recent BSOD with switching usb ports

Should I try a day without my headset plugged in?
errors on the same device and on your intel network driver.

you might just start verifier.exe an select custom flags and turn on the DMA checking since the bugcheck is in DMA access.

otherwise, I would unplug the device, start windows control panel, find device manager, find show hidden device in the menu. remove any drivers for any hidden device then reboot and see if you bugcheck without the device installed.
running with verifier with dma access checking on might find the problem quicker. IE bugcheck faster.

note: turning on dma verifier flags should turn on and allow the debugger to see what rule is violated.
!ruleinfo
!verifier 0x200
!dma
https://docs.microsoft.com/en-us/windows-hardware/drivers/devtest/dma-verification

there is a note that microsoft is now checking dma transaction that bypass the normal kernel functions. This should help name the driver and rule that it violates.
updated doc showing why verifier can be off and still bugcheck
https://docs.microsoft.com/en-us/wi...bug-check-0xe6--driver-verifier-dma-violation
 
Last edited:
I tried doing dir /s *.dmp but it said Volume in drive C has no label. Volume serial number is FE40-A36E. File Not Found.

I barely have anything on my computer atm ever since I'm having this BSOD problem. I feel like I need to do another clean install or something.

Another weird thing in the event viewer, as it didn't say it was a bugcheck, but it generated a dmp file.
 
Last edited:
I tried doing dir /s *.dmp but it said Volume in drive C has no label. Volume serial number is FE40-A36E. File Not Found.

I barely have anything on my computer atm ever since I'm having this BSOD problem. I feel like I need to do another clean install or something.

Another weird thing in the event viewer, as it didn't say it was a bugcheck, but it generated a dmp file.
sorry you need to go to the root of drive c
use:
cd C:\
dir /s *.dmp
 
Status
Not open for further replies.