In Windows 11, a firmware upgrade issue occurs in the VC++ application starting from the second upgrade attempt.

Raghav Kuppili 0 Reputation points
2025-11-27T05:15:21.8+00:00

We upgraded the code from Windows 10 to Windows 11 last year using Visual Studio 2022 (VC++). When upgrading the firmware for the first time, the process works correctly. However, from the second attempt onward, the device switches to loader mode and the upgrade does not continue unless we close and reopen the application. This issue occurs only on Windows 11, while Windows 10 works perfectly every time. The problem occurs only with a few specific firmware versions, not all.

We have also verified the packet-to-packet timing but no luck.

In Windows 10 we are using the DLLs STDFU.dll, STDFUFiles.dll, STDFUPRT.dll, and STTubeDevice30.dll, whereas in Windows 11 we are using libusb.dll.
Moved from Microsoft Teams | Development

 

Windows development | Windows Performance Toolkit
0 comments No comments
{count} votes

1 answer

Sort by: Most helpful
  1. Q&A Assist
    2025-11-27T05:15:34.4833333+00:00
    AI generated content. This question contains an answer created with AI from Q&A Assist. Learn more

    The issue you are experiencing with the firmware upgrade in your VC++ application on Windows 11, where the device switches to loader mode after the first upgrade attempt, may be related to the changes in how firmware updates are handled in Windows 11 compared to Windows 10. Since you mentioned that the problem occurs only with specific firmware versions and not all, it suggests that there might be compatibility issues with those particular versions when using libusb.dll on Windows 11.

    In Windows 11, the absence of co-installers for USB device firmware updates may also affect the upgrade process. The recommended approach for updating USB device firmware without a co-installer involves using a lower filter driver that can initiate the firmware update process during the AddDevice call. This method ensures that the firmware version is checked and updated if necessary, which could potentially resolve issues related to the device entering loader mode.

    Additionally, since you have verified packet-to-packet timing, it might be worth investigating if there are any specific timing or command sequence requirements for the firmware versions that are failing during the upgrade process on Windows 11.

    If the issue persists, consider checking for updates or patches for libusb.dll or any related libraries that might address compatibility with Windows 11.


    References:

    0 comments No comments

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.