To close the subject:
To force your application to be moved to FTH shim, just create 3 times a
crash within an hour with
QString *heap = new QString();
delete heap;
delete heap;
then to detect your app has been moved to FTH do
QSettings winsettings(
"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\FTH\\State",
QSettings::NativeFormat);
QStringList fths = winsettings.childKeys();
foreach(const QString &fth, fths) {
if(fth == qApp->applicationFilePath()) {
/* do something*/
break;
}
}
Thanks again for your replies and help
-- Philippe
Le 07-09-2021 20:05, maitai a écrit :
OK, thanks. I will not attempt to modify the registry. I just want to
know if that is the case and eventually display a warning.
The key for that is
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\FTH\State
Now I want to test my changes, I have already forced more than 100
crashes in the hope Windows will move me to FTH, no luck :)
--Philippe
Le 07-09-2021 17:17, Scott Bloom a écrit :
You shouldn't need it for a read of the registry, however it is
possible that the IT dept of the user, or the user themselves has
escalated the default privileges required to read from HKLM
You might want to code your check to allow for a security violation, so
the is it enabled would be yes, no, or "I cant tell" response.
Scott
From: Interest <interest-boun...@qt-project.org> On Behalf Of maitai
Sent: Tuesday, September 7, 2021 7:36 AM
To: Interest@qt-project.org
Subject: Re: [Interest] qt and Windows tolerance heap
Thank you very much that is the way. Do you know if elevated privileges
are needed to do that?
--Philippe
Le 07-09-2021 15:22, Jérôme Godbout a écrit :
You can put your aplicaiton into the exclude list, sorry though it was
mentionned into the microowft page, but here is the registry key:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\FTH\ExclusionList\myapp.exe
Change myapp.exe for your actual application.
From: Jérôme Godbout <jgodb...@dimonoff.com>
Date: Tuesday, September 7, 2021 at 9:07 AM
To: maitai <mai...@virtual-winds.org>, Interest@qt-project.org
<Interest@qt-project.org>
Subject: Re: [Interest] qt and Windows tolerance heap
The tolerant heap only make workaround for actual bug. Disable the
tolerant heap for your developers (this should be a system options when
developer mode is enabled directly into Windows but sadly you have to
do it manually). This will show where your bug is and will appear on
dev workstation before they appear on the clients.
The "myth" of try to launch it again on windows is not really a myth,
it come from this feature, the OS try to fix the heap allocation, but
the application is still broken. You can also disable your application
from using it during the installer.
To disable:
https://docs.microsoft.com/en-us/windows/win32/win7appqual/fault-tolerant-heap?redirectedfrom=MSDN
From: Interest <interest-boun...@qt-project.org> on behalf of maitai
<mai...@virtual-winds.org>
Date: Tuesday, September 7, 2021 at 5:32 AM
To: Interest@qt-project.org <Interest@qt-project.org>
Subject: [Interest] qt and Windows tolerance heap
Hi,
I have some users (mainly beta testers) that are suffering from
"Windows Tolerant Heap"
(https://docs.microsoft.com/en-us/windows/win32/win7appqual/fault-tolerant-heap).
The consequence of this being activated after some crashes is that the
application becomes very slow, plus some mysterious crashes occur
randomly deep inside qt event queue manager.
I know how to remove the app from Tolerant Heap with an elevated
command prompt.
My question is: is there a way from inside the application to detect
the app is running in this mode, so I can prompt the user to contact us
for instance?
Thanks for any insight
Philippe Lelong
_______________________________________________
Interest mailing list
Interest@qt-project.org
https://lists.qt-project.org/listinfo/interest
_______________________________________________
Interest mailing list
Interest@qt-project.org
https://lists.qt-project.org/listinfo/interest