[PATCH 1/5] services: Fall back to the current architecture if GetBinaryType fails.
Zebediah Figura
z.figura12 at gmail.com
Mon Apr 30 13:59:54 CDT 2018
This allows loading a test DLL on Wine.
Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
---
programs/services/services.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/programs/services/services.c b/programs/services/services.c
index eba98d6..1973d27 100644
--- a/programs/services/services.c
+++ b/programs/services/services.c
@@ -723,7 +723,7 @@ static DWORD get_service_binary_path(const struct service_entry *service_entry,
return ERROR_SUCCESS;
}
-static DWORD get_winedevice_binary_path(WCHAR **path, BOOL *is_wow64)
+static DWORD get_winedevice_binary_path(struct service_entry *service_entry, WCHAR **path, BOOL *is_wow64)
{
static const WCHAR winedeviceW[] = {'\\','w','i','n','e','d','e','v','i','c','e','.','e','x','e',0};
WCHAR system_dir[MAX_PATH];
@@ -734,7 +734,7 @@ static DWORD get_winedevice_binary_path(WCHAR **path, BOOL *is_wow64)
else if (GetBinaryTypeW(*path, &type))
*is_wow64 = (type == SCS_32BIT_BINARY);
else
- return GetLastError();
+ *is_wow64 = service_entry->is_wow64;
GetSystemDirectoryW(system_dir, MAX_PATH);
HeapFree(GetProcessHeap(), 0, *path);
@@ -857,7 +857,7 @@ static DWORD service_start_process(struct service_entry *service_entry, struct p
struct service_entry *winedevice_entry;
WCHAR *group;
- if ((err = get_winedevice_binary_path(&path, &is_wow64)))
+ if ((err = get_winedevice_binary_path(service_entry, &path, &is_wow64)))
{
service_unlock(service_entry);
HeapFree(GetProcessHeap(), 0, path);
--
2.7.4
More information about the wine-devel
mailing list