Rebase against 92f38bc8790cbfb31badf97a211ed890ac00c1db.

This commit is contained in:
Zebediah Figura
2018-11-26 18:45:43 -06:00
parent c45c01449e
commit bfff924f04
18 changed files with 34 additions and 1205 deletions

View File

@@ -1,16 +1,16 @@
From c182c26c828a589dce773bd365040ce7b1a8a943 Mon Sep 17 00:00:00 2001
From b84172fad2693e3dc75adab1820a95457eba80aa Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Thu, 11 Feb 2016 03:17:09 +0100
Subject: setupapi: Create registry keys for display devices and display
drivers.
---
dlls/setupapi/devinst.c | 111 ++++++++++++++++++++++++++++++++++++++++++------
dlls/setupapi/devinst.c | 111 +++++++++++++++++++++++++++++++++++-----
loader/wine.inf.in | 2 +
2 files changed, 101 insertions(+), 12 deletions(-)
diff --git a/dlls/setupapi/devinst.c b/dlls/setupapi/devinst.c
index 771fc70..d9517bd 100644
index 1f020b9b..0452d7a5 100644
--- a/dlls/setupapi/devinst.c
+++ b/dlls/setupapi/devinst.c
@@ -94,6 +94,15 @@ static const WCHAR SymbolicLink[] = {'S','y','m','b','o','l','i','c','L','i','n'
@@ -29,9 +29,9 @@ index 771fc70..d9517bd 100644
/* is used to identify if a DeviceInfoSet pointer is
valid or not */
#define SETUP_DEVICE_INFO_SET_MAGIC 0xd00ff056
@@ -129,6 +138,90 @@ struct device_iface
struct list entry;
};
@@ -181,6 +190,90 @@ static struct device_iface *get_device_iface(HDEVINFO devinfo, const SP_DEVICE_I
return (struct device_iface *)data->Reserved;
}
+static void create_display_keys(HKEY enumKey, int index, DISPLAY_DEVICEW *disp)
+{
@@ -120,7 +120,7 @@ index 771fc70..d9517bd 100644
static inline void copy_device_data(SP_DEVINFO_DATA *data, const struct device *device)
{
data->ClassGuid = device->class;
@@ -418,8 +511,7 @@ static HKEY SETUPDI_CreateDevKey(struct device *device)
@@ -470,8 +563,7 @@ static HKEY SETUPDI_CreateDevKey(struct device *device)
HKEY enumKey, key = INVALID_HANDLE_VALUE;
LONG l;
@@ -130,7 +130,7 @@ index 771fc70..d9517bd 100644
if (!l)
{
RegCreateKeyExW(enumKey, device->instanceId, 0, NULL, 0,
@@ -511,8 +603,7 @@ static void SETUPDI_RemoveDevice(struct device *device)
@@ -563,8 +655,7 @@ static void SETUPDI_RemoveDevice(struct device *device)
HKEY enumKey;
LONG l;
@@ -140,7 +140,7 @@ index 771fc70..d9517bd 100644
if (!l)
{
RegDeleteTreeW(enumKey, device->instanceId);
@@ -2042,8 +2133,7 @@ static void SETUPDI_EnumerateMatchingInterfaces(HDEVINFO DeviceInfoSet,
@@ -2004,8 +2095,7 @@ static void SETUPDI_EnumerateMatchingInterfaces(HDEVINFO DeviceInfoSet,
TRACE("%s\n", debugstr_w(enumstr));
@@ -150,7 +150,7 @@ index 771fc70..d9517bd 100644
for (i = 0; !l; i++)
{
len = ARRAY_SIZE(subKeyName);
@@ -2269,8 +2359,7 @@ static void SETUPDI_EnumerateDevices(HDEVINFO DeviceInfoSet, const GUID *class,
@@ -2231,8 +2321,7 @@ static void SETUPDI_EnumerateDevices(HDEVINFO DeviceInfoSet, const GUID *class,
TRACE("%p, %s, %s, %08x\n", DeviceInfoSet, debugstr_guid(class),
debugstr_w(enumstr), flags);
@@ -160,7 +160,7 @@ index 771fc70..d9517bd 100644
if (enumKey != INVALID_HANDLE_VALUE)
{
if (enumstr)
@@ -3606,8 +3695,7 @@ static HKEY SETUPDI_OpenDevKey(struct device *device, REGSAM samDesired)
@@ -3378,8 +3467,7 @@ static HKEY SETUPDI_OpenDevKey(struct device *device, REGSAM samDesired)
HKEY enumKey, key = INVALID_HANDLE_VALUE;
LONG l;
@@ -170,7 +170,7 @@ index 771fc70..d9517bd 100644
if (!l)
{
RegOpenKeyExW(enumKey, device->instanceId, 0, samDesired, &key);
@@ -3723,8 +3811,7 @@ static BOOL SETUPDI_DeleteDevKey(struct device *device)
@@ -3471,8 +3559,7 @@ static BOOL SETUPDI_DeleteDevKey(struct device *device)
BOOL ret = FALSE;
LONG l;
@@ -181,7 +181,7 @@ index 771fc70..d9517bd 100644
{
ret = RegDeleteTreeW(enumKey, device->instanceId);
diff --git a/loader/wine.inf.in b/loader/wine.inf.in
index 5767b29..07d4c5f 100644
index 5a3f8c46..51e17453 100644
--- a/loader/wine.inf.in
+++ b/loader/wine.inf.in
@@ -465,6 +465,8 @@ HKLM,System\CurrentControlSet\Control\ContentIndex\Language\Neutral,"Locale",0x1
@@ -194,5 +194,5 @@ index 5767b29..07d4c5f 100644
HKLM,System\CurrentControlSet\Control\Class\{4d36e978-e325-11ce-bfc1-08002be10318},"Class",,"Ports"
HKLM,System\CurrentControlSet\Control\Class\{6bdd1fc6-810f-11d0-bec7-08002be2092f},,,"Imaging devices"
--
2.7.4
2.19.1

View File

@@ -1,4 +1,4 @@
From b1218833ac88f9706094427eefa09ee91aa97667 Mon Sep 17 00:00:00 2001
From 8dd3d1b76f5b90d0adaf7905f91fdc11e7389f86 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Thu, 11 Feb 2016 03:20:33 +0100
Subject: [PATCH] setupapi: Handle the case that a full driver path is passed
@@ -10,10 +10,10 @@ Subject: [PATCH] setupapi: Handle the case that a full driver path is passed
2 files changed, 47 insertions(+), 2 deletions(-)
diff --git a/dlls/setupapi/devinst.c b/dlls/setupapi/devinst.c
index d9517bdcab..fa04816242 100644
index 0452d7a5..8b9aae85 100644
--- a/dlls/setupapi/devinst.c
+++ b/dlls/setupapi/devinst.c
@@ -2370,8 +2370,30 @@ static void SETUPDI_EnumerateDevices(HDEVINFO DeviceInfoSet, const GUID *class,
@@ -2332,8 +2332,30 @@ static void SETUPDI_EnumerateDevices(HDEVINFO DeviceInfoSet, const GUID *class,
&enumStrKey);
if (!l)
{
@@ -47,10 +47,10 @@ index d9517bdcab..fa04816242 100644
}
}
diff --git a/dlls/setupapi/tests/devinst.c b/dlls/setupapi/tests/devinst.c
index c58e35f482..c9f0583825 100644
index 0e6a1c0a..fce81ea0 100644
--- a/dlls/setupapi/tests/devinst.c
+++ b/dlls/setupapi/tests/devinst.c
@@ -1407,6 +1407,28 @@ static void test_device_interface_key(void)
@@ -1331,6 +1331,28 @@ static void test_device_interface_key(void)
SetupDiDestroyDeviceInfoList(set);
}
@@ -79,14 +79,14 @@ index c58e35f482..c9f0583825 100644
START_TEST(devinst)
{
HKEY hkey;
@@ -1441,6 +1463,7 @@ START_TEST(devinst)
@@ -1355,6 +1377,7 @@ START_TEST(devinst)
test_registry_property_a();
test_registry_property_w();
testSetupDiGetINFClassA();
test_get_inf_class();
+ testSetupDiGetClassDevsA();
test_devnode();
test_device_interface_key();
}
--
2.14.1
2.19.1