https://bugs.winehq.org/show_bug.cgi?id=47813
Bug ID: 47813 Summary: Itch.io: Warning or error when launching a game (GetFileInformationByHandleEx for FileAttributeTagInfo unimplemented) Product: Wine Version: 4.16 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: ntdll Assignee: wine-bugs@winehq.org Reporter: theristhewolf@gmail.com Distribution: ---
The Windows version of the Itch.io desktop app (which can be downloaded as itch-windows-amd64.zip from https://fasterthanlime.itch.io/itch ) generates a warning message such as the following when launching most titles:
"An error occurred while launching [APP]. The message we got was: While doing auto prereqs: GetFileInformationByHandleEx [BINARY_LOCATION_IN_VIRTUAL_C_DRIVE]: Call not implemented."
With these titles, the game can be launched normally by clicking the "Continue" button. However, with at least one Itch game (and, presumably, any Itch game that only works if launched via the Itch client), the error message instead reads as follows:
"An error occurred while launching [APP]. GetFileInformationByHandleEx [BINARY_LOCATION_IN_VIRTUAL_C_DRIVE]: Call not implemented."
In this case, there is no "Continue" button to click (the bottom right corner of the window instead has an "OK" button, which dismisses the message and proceeds to a Itch bug submission window if a checkbox is enabled, as well as an "Open folder in explorer" button).
This issue was originally reported as a bug for the Itch desktop client (see https://github.com/itchio/itch/issues/2324 ), and a developer for that project has stated that the described behavior occurs due to Wine's partial implementation of the GetFileInformationByHandleEx function (specifically, for the case when the class passed into the function is FileAttributeTagInfo).
Since this is the function call that Go generates when compiling an os.Stat function call performed on a file returned by os.Open, the responding Itch developer expressed a preference for the missing functionality in Wine to be implemented due to this issue's potential impact on other Windows applications that were written in Go. To that end, said developer has generated a short Go code snippet (viewable at https://gist.github.com/fasterthanlime/ec8177b114fa9f711d90b95b49a0e236 ) that tests the os.Stat and os.Open functions.
This issue has been originally produced in Lutris's variant of Wine version 4.12.1-x86_64. I have attempted to reproduce the issue on a system-wide install of Wine 4.16 (as installed on Linux Mint 19.1 via the winehq-devel package), but I have not been able to get the Itch client's window to display anything other than a blank black box when running Itch this way (presumably, there's either a mistake that I've been overlooking, a setup step that Lutris does that I'm missing, a workaround that Lutris does that I'm not aware of, or a bugfix in Lutris's flavor of Wine that isn't mainlined).
I'm hoping, due to the specificity of the bug's identification and the verification of the fact that GetFileInformationByHandle remains a stub in the main Wine project's master branch, that the lack of reproduction in the development version of vanilla Wine will be tolerated for this report. If not, I can continue trying to flail at my efforts to reproduce the bug without the use of Lutris.