Menu

#47 Win32DiskImager crashes at start with no GUI and no error

1.0
pending
None
Medium
7(64bit)
2018-01-09
2017-03-19
Sven Lübke
No

Can't start Win32DiskImager 1.0 . It crashes right after start with no error message. In every other release I get at least the following error message:

An error occurred while querying the properties.
This usually means something is currently accessing the device; please close all applications and try again.

Error 1: Incorrect function.

But Win32DiskImager starts after clicking the OK button.

Update:

This affects users with the following conditions:
Using a ramdisk
Mounting a network drive
Using SUBST
(there are likely other methods to reproduce this).

The root of the issue is that when the program first loads, it tries to determine free space of the available drives, which apparently only works on physical drives, not ramdisks or network drives. The same mechanism is used when the user selects READ. The failure will generate a warning window, but there is nothing to attach this window to during start (hence the program crashes).

Discussion

1 2 > >> (Page 1 of 2)
  • Tobin Davis

    Tobin Davis - 2017-03-23

    Which version of Windows is this in? The bug lists Windows 7, but I need to verify. Note that we no longer support XP/Vista as there are functions that are needed but not available for those OSs.

     
  • Sven Lübke

    Sven Lübke - 2017-03-23

    It is Windows 7 (64bit) as stated in bug.

     
  • Tobin Davis

    Tobin Davis - 2017-03-24

    I have not been able to reproduce this. Can you give me more details? Which specific Windows 7 release (Home starter, Home Premium, etc). Make sure you don't have ReadyBoost enabled. You may have to do a bit of Google searching to figure out what is going on. It is possible that you have a registry error or some other program is preventing this from running. Our program requires it to be Run as Administrator, as it is dealing with the raw devices. Check to make sure you have Administrator privileges and Administrator has full access to your drives.

     
  • Sven Lübke

    Sven Lübke - 2017-03-24

    OK, I had a suspicion:

    I am using the freeware version (3.4.8) of

    SoftPerfect RAMDisk

    As soon as you create and activate a RAM disk (mine is always active for temporary files), win32diskimager crashes. Would you like to analyze that issue?

    Thank you and BR,
    Sven

     
    • OCReactive

      OCReactive - 2017-04-03

      Same error for me, once disabled RAMDisk it works great

       
  • Tobin Davis

    Tobin Davis - 2017-03-24

    Good to know. This may be similar to the issue using ASSIGN. Since you have a working solution and this is kind of an odd corner case, I'll put it on a lower priority and document it in the Wiki.

     
  • Tobin Davis

    Tobin Davis - 2017-03-24
    • status: open --> triaged
    • assigned_to: Tobin Davis
    • Importance: Critical --> Medium
     
  • Achim Schoenen

    Achim Schoenen - 2017-03-27

    Same problems here. Version Win32DiskImager-0.9.5-install works except for a few errors at the beginning. win32diskimager-1.0.0-install, starting, getting memory, closing.

     
  • Steve Whitley

    Steve Whitley - 2017-03-27

    same, crash on launch, will attempt to upload/link crash dump.

     
  • Tobin Davis

    Tobin Davis - 2017-03-27

    Achim and Steve, are either of you running the same issue where if you have a ramdisk, the program crashes? Steve, unfortunately the crash dump doesn't give me any useful information (other than it is a 64bit dump of a 32bit process).

     

    Last edit: Tobin Davis 2017-03-27
  • Tobin Davis

    Tobin Davis - 2017-03-28
    • summary: Win32DiskImager crashes at start with no GUI and no error --> Win32DiskImager crashes at start with no GUI and no error when using ramdisk
     
  • Thomas Lemmons

    Thomas Lemmons - 2017-03-30

    I appear to be having the same problem. Crash and exits before gui. I am not running any ramdisk and win32diskimager has been installed and working for some time. Just died, I assume with last windows 10 update. Event log shows two events:
    1:
    Fault bucket 108794295219, type 1
    Event Name: APPCRASH
    Response: Not available
    Cab Id: 0

    Problem signature:
    P1: Win32DiskImager.exe
    P2: 1.0.0.0
    P3: 58bdb94c
    P4: AcLayers.DLL
    P5: 10.0.14393.953
    P6: 58ba5d8a
    P7: c00000fd
    P8: 0001923e
    P9:
    P10:

    Attached files:
    \?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER41FC.tmp.WERInternalMetadata.xml

    These files may be available here:
    C:\ProgramData\Microsoft\Windows\WER\ReportArchive\AppCrash_Win32DiskImager._a02655e6b7f4d354176fd15d18af73fd70ce482_cb50a873_2c084558

    Analysis symbol:
    Rechecking for solution: 0
    Report Id: eb17f630-def0-44ba-b8a5-86c934ec40a7
    Report Status: 0
    Hashed bucket: 4fd3c18dcac4d41bafc947a6972ca3c9

    2:
    Faulting application name: Win32DiskImager.exe, version: 1.0.0.0, time stamp: 0x58bdb94c
    Faulting module name: AcLayers.DLL, version: 10.0.14393.953, time stamp: 0x58ba5d8a
    Exception code: 0xc00000fd
    Fault offset: 0x0001923e
    Faulting process id: 0x40e0
    Faulting application start time: 0x01d2a9894203ac33
    Faulting application path: C:\tools\diskimager32\Win32DiskImager.exe
    Faulting module path: C:\WINDOWS\AppPatch\AcLayers.DLL
    Report Id: eb17f630-def0-44ba-b8a5-86c934ec40a7
    Faulting package full name:
    Faulting package-relative application ID:

    if there is anything I can get you or test, please let me know.

     
  • Achim Schoenen

    Achim Schoenen - 2017-03-30

    I've a Multi-Boot System Windows7 with VMWare,
    but either Linux Disks in it.

    C: NTFS
    D: NTFS
    E: DOKAN
    G: DOKAN
    H: CD/DVD
    J: DOKAN

    The first access to the E: partition causes the problem.

     
  • Attila

    Attila - 2017-03-31

    I am also having this issue. UAC asks if I want to run this program and then nothing. After reading this post, I disabled my MSI RamDisk and it instently worked.
    Edit: I forgot to mention that my RamDisk is drive B: so maybe win32diskimager thinks its a floppy?

     

    Last edit: Attila 2017-04-01
  • Elias Batek

    Elias Batek - 2017-05-26

    I can reproduce this on Windows 10 Pro (x64).
    RamDisk is atteched as drive [R:] using ImDisk Virtual Disk Driver.

     
  • JohnnyK

    JohnnyK - 2017-05-26

    Ditto for me. I'm seeing the same behavior on Windows 10 Pro (x64) but no RamDisk. Version 0.9.5 works fine with previously mentioned errors at startup.

     
  • Aleksandar Vinchev

    Guys, it is the same on my side. I have pCloud service, which is using DOKAN to create virtual drive (P: in my case). While their service is running, Win32 Imager could not start normally. If their service is stopped, everything is normal.

     
  • Bill White

    Bill White - 2017-06-20

    I can confirm this bug too. WIndows 7 / 32, with ramdisk and SUBST (see bug 41) entries.
    The application starts in the background, memory usage over 200 MB, then, about after 9 seconds, the process terminates itself, no GUI or error message displayed.

     
  • wassereimer

    wassereimer - 2017-07-16

    I have the same problem but in my case it´s not a ramdisk.

    I use the Windows 10 "Storage Space" feature where two harddrives are combined to a software raid 1. After that i encrypted this virtual drive with VeraCrypt. If this volume is mounted in VeraCrypt, Win32 Disk Imager won´t start. If i unmount it, it´s working again.

     
  • Tobin Davis

    Tobin Davis - 2017-08-08
    • status: triaged --> pending
     
  • Tobin Davis

    Tobin Davis - 2017-08-08

    Ok, so the problem has been root caused and I have a fix in the git tree. This will likely not be the final fix to this issue though, but for those that want to the code is there to rebuild. I am currently looking into a fix for the SD reader detection issue (it is actually a Windows API issue - figures), and hope to get that resolved before spinning a 1.1 release.

     
  • Dirk Shrivels

    Dirk Shrivels - 2017-08-10

    Similarly fails (ver 1.0) when a SUBST drive is present. Delete the SUBSTituted drive (b: drive in my case) with "subst b: /D" makes it work

     
  • Chamile

    Chamile - 2017-08-30

    Hi there,
    since the problem is still present in the latest codebase, I started to debug this behaviour (Win10 1703, VC2015, Qt5.9) and have seen the problem is not any specific drive problem, but one from the GUI. It occurs whenever a drive cannot be read successful by checkDriveType() or following GetDisksProperty() in disk.cpp. There an error is generated and should be shown in a QMessageBox. The problem is, that the call "MainWindow::getInstance()" (line 339,359 and 450) which defines the parent for the box, seems to cause a heap corruption, which manipulates the return address and also the driveMask from the calling getLogicalDrives() function of MainWindow (the debugger jumps back to the start of getLogicalDrives() instead of continuing the while-loop). The result is an endless loop and Windows seems to detect a heap overflow after some time, and kills the application.

    My solution: simply replace in this 3 code parts MainWindow::getInstance() with NULL. With this, the boxes will not have a parent, but this seems uncritical (details below). Doing this, the application starts with an error-box about my subst-Drive and a second about my RamDrive and then is operating as expected. There also I have seen the possible problem: the main window is still not open at the time, when the message boxes should be shown, probably this is the reason, getInstance() is not working as expected.

    But to be honest, I would prefer to replace this MessageBoxes by e.g. an entry in a logfile, because these are annoying and the user cannot do anything against the cause of the problem (except unmounting this drive).

    Hope this helps,
    Michael

     
  • Tobin Davis

    Tobin Davis - 2017-08-30

    There are several problems with using NULL, and the issue with just puting this into a log file is that most users will never know what went wrong. The function is called both during program start and when a new device is detected. The problem with the current code is that MainWindow::getinstance fails as the main window hasn't been created yet. I have tried to fix this with a quick workaround with commit 135eb07cf9698abdc82761f5d8d546e8060f292f, but it is in no way complete. I have other code changes that have not been committed yet as I am still fleshing them out (mainly SD detection/removal). It is slow going as I really do not have a lot of time to dedicate to this at the moment (3 weeks ago my schedule had some open time). I will get this resolved properly for the next release. Please be patient.

     

    Last edit: Tobin Davis 2017-09-06
1 2 > >> (Page 1 of 2)