Crash on Windows Server 2025: wmidcom.dll_unloaded

Hi,

(User of Dopus since the 80's. My fave product - thanks Team!)

Occasionally, on startup, or entering a path directly into Dopus, it dissappears, and then reappears. Then dissapears, and reappears - watchdog rebooting?

Version 13.18 x64

Here's all the data from the EventLog.

Faulting application name: dopus.exe, version: 13.18.0.0, time stamp: 0x68abc556
Faulting module name: wmidcom.dll_unloaded, version: 10.0.26100.1, time stamp: 0xbf89f149
Exception code: 0xc0000005
Fault offset: 0x000000000000f8c0
Faulting process id: 0x4A0
Faulting application start time: 0x1DC29FC6F861C1C
Faulting application path: C:\Program Files\GPSoftware\Directory Opus\dopus.exe
Faulting module path: wmidcom.dll
Report Id: e04353df-a60d-497f-a6b4-fec87077c1e7
Faulting package full name:
Faulting package-relative application ID:

=================

Fault bucket 2304529654123659001, type 5
Event Name: BEX64
Response: Not available
Cab Id: 0

Problem signature:
P1: dopus.exe
P2: 13.18.0.0
P3: 68abc556
P4: wmidcom.dll_unloaded
P5: 10.0.26100.1
P6: bf89f149
P7: 000000000000f8c0
P8: c0000005
P9: 0000000000000008
P10:

Attached files:
\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER.c7d92ca8-ceff-44f5-b4f8-1ff0e20cf514.tmp.mdmp
\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER.8a0f2a9d-d82d-4b0d-b94a-4741cc195b61.tmp.WERInternalMetadata.xml
\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER.a8f03cb0-a0b1-43a3-905e-dece60175121.tmp.csv
\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER.8144de5e-19fc-4e58-ba4c-fa2b677a7ebd.tmp.txt
\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER.05561af2-889a-42bb-9e85-9bb5ea263830.tmp.xml

These files may be available here:
\?\C:\ProgramData\Microsoft\Windows\WER\ReportArchive\AppCrash_dopus.exe_ef25ed50825cb9668342bf5dba527a325e6e535a_e275d7c4_a5ea17f0-1862-4e86-9dbc-d21b7c701dd9

Analysis symbol:
Rechecking for solution: 0
Report Id: e04353df-a60d-497f-a6b4-fec87077c1e7
Report Status: 268435456
Hashed bucket: cb1b188ca42debf31ffb5582b064fef9
Cab Guid: 0

========================

AI Says of the attached .wer file:

EventType=BEX64 means it’s a Buffer Overflow Exception on x64 (Windows Error Reporting term for DEP/ASLR violations). In other words, Directory Opus tried to execute code from memory that wasn’t valid, or a module wrote/ran past a memory boundary.

Combined with:

Faulting module = wmidcom.dll_unloaded → code still referencing WMI’s COM marshalling DLL after it had been unloaded.

Exception code = 0xc0000005 → illegal memory access (access violation).

Exception data = 0000000000000008 → trying to read/write memory at offset 0x8, i.e. a dereference of a bad/null pointer.

That points strongly to a use-after-free: Opus (or a shell extension inside it) was calling WMI via COM, wmidcom.dll got unloaded, but code was still trying to jump into it. Windows’ DEP caught it as a buffer execution violation.

This helps narrow it down:

It’s unlikely WMI itself is broken (your repository tests passed).

More likely it’s a third-party shell extension or viewer plugin loaded into Opus that uses WMI (system info, network discovery, antivirus hooks, etc.). Your crash dump lists things like dopusbch.dll (Opus’ USB handler), opus7zip.dll, preview handlers, and Defender’s MpOav.dll. Any of those could have a dangling WMI query.

If you want to test this:

Use Sysinternals Autoruns → Explorer tab to disable non-Microsoft shell extensions (especially preview handlers).

Restart Opus, see if the crash stops.

If it does, re-enable them one at a time until the culprit shows.

Dopus.wer.txt (12.5 KB)

Please submit the crash logs and let us known the ID for them.

I tried, but the logs don't look connected to the crash. (When I submit, I get a "Cannot connect to remote host (18)" error.

Thanks.

They can be emailed as well, if the machine doesn't have direct internet access.

The WER file may also be useful.

The crash is probably not coming from Opus itself. wmidcom.dll_unloaded in the error details means that DLL was unloaded while code from it was still being used in the process.

I think we only use WMI in one place in Opus, and the code is all using smart pointers which make it impossible for any of the involved objects to be used after being released. There also aren't any other bug reports mentioning that DLL.

But it could be caused by something else releasing the WMI DLL incorrectly, or a bug in that version of the OS where the DLL allows itself to be unloaded while there are still COM objects from it being used with non-zero refcounts.

Setting Preferences / Miscellaneous / Advanced: [Compatibility] flush_com_libraries to False will make Opus less aggressive about unloading COM DLLs that report they are no longer in use, which may hide the error (depending on what's causing it). If so, that probably confirms it's being caused by code that's outside of Opus.

Ok .. it works all day, every day, fine. But on a "first startup", after things have unloaded, I guess, it crashes, as it did this morning. I looked at the crash logs list, and it didn't generate one. It reboots.

I've attached the .wer in the first post. :+1:

This situation is no big deal to me - it's a new server, and I was concerned the new drives were dodgy, but it does seem that it's dopus, and only on first run for the day, and I can live with that....