[PATCH 1/5] kernel32: Allow GetBinaryType() to succeed on Unix binaries.
Alexandre Julliard
julliard at winehq.org
Mon Apr 30 12:44:26 CDT 2018
Zebediah Figura <z.figura12 at gmail.com> writes:
> On 11/04/18 10:41, Alexandre Julliard wrote:
>> Zebediah Figura <z.figura12 at gmail.com> writes:
>>
>>> This is necessary for services.exe to correctly start the driver,
>>> and seems desirable given the function's other uses.
>>
>> I don't think it's a good idea to claim that non-PE files are Windows
>> binaries. It's going to break many assumptions in app code, and even in
>> Wine itself (cf. SHGetFileInfo).
>>
>
> Thanks for the review; sorry it took so long to get back to this.
>
> services.exe uses GetBinaryType to determine which architecture of
> winedevice.exe to start, and in the case of the given test DLL it'll be
> passed a builtin .so when running under Linux. What should be done
> instead in this case? Reimplement MODULE_GetBinaryType in services.exe?
> Somehow pass a fake DLL from the test?
services.exe should never be passed a .so file directly. It should be
passed the path to a PE binary, and rely on the loader to find the
corresponding builtin. If the PE file doesn't exist, it should still
try to load the builtin; in that case it would be OK to default to the
current platform.
--
Alexandre Julliard
julliard at winehq.org
More information about the wine-devel
mailing list