[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