[PATCH 1/3] setupapi/devinst: Factor out get_device().
Zebediah Figura
z.figura12 at gmail.com
Sun Nov 25 17:31:46 CST 2018
Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
---
dlls/setupapi/devinst.c | 385 ++++++++++++------------------------------------
1 file changed, 95 insertions(+), 290 deletions(-)
diff --git a/dlls/setupapi/devinst.c b/dlls/setupapi/devinst.c
index 771fc70395..630d3e9587 100644
--- a/dlls/setupapi/devinst.c
+++ b/dlls/setupapi/devinst.c
@@ -129,6 +129,34 @@ struct device_iface
struct list entry;
};
+static struct device *get_device(HDEVINFO devinfo, const SP_DEVINFO_DATA *data)
+{
+ struct DeviceInfoSet *set = devinfo;
+ struct device *device;
+
+ if (!devinfo || devinfo == INVALID_HANDLE_VALUE || set->magic != SETUP_DEVICE_INFO_SET_MAGIC)
+ {
+ SetLastError(ERROR_INVALID_HANDLE);
+ return NULL;
+ }
+
+ if (!data || data->cbSize != sizeof(*data) || !data->Reserved)
+ {
+ SetLastError(ERROR_INVALID_PARAMETER);
+ return NULL;
+ }
+
+ device = (struct device *)data->Reserved;
+
+ if (device->set != set)
+ {
+ SetLastError(ERROR_INVALID_PARAMETER);
+ return NULL;
+ }
+
+ return device;
+}
+
static inline void copy_device_data(SP_DEVINFO_DATA *data, const struct device *device)
{
data->ClassGuid = device->class;
@@ -1233,44 +1261,18 @@ HKEY WINAPI SetupDiCreateDevRegKeyA(
/***********************************************************************
* SetupDiCreateDevRegKeyW (SETUPAPI.@)
*/
-HKEY WINAPI SetupDiCreateDevRegKeyW(
- HDEVINFO DeviceInfoSet,
- PSP_DEVINFO_DATA DeviceInfoData,
- DWORD Scope,
- DWORD HwProfile,
- DWORD KeyType,
- HINF InfHandle,
- PCWSTR InfSectionName)
+HKEY WINAPI SetupDiCreateDevRegKeyW(HDEVINFO devinfo, SP_DEVINFO_DATA *device_data, DWORD Scope,
+ DWORD HwProfile, DWORD KeyType, HINF InfHandle, const WCHAR *InfSectionName)
{
- struct DeviceInfoSet *set = DeviceInfoSet;
struct device *device;
HKEY key = INVALID_HANDLE_VALUE;
- TRACE("%p %p %d %d %d %p %s\n", DeviceInfoSet, DeviceInfoData, Scope,
- HwProfile, KeyType, InfHandle, debugstr_w(InfSectionName));
+ TRACE("devinfo %p, device_data %p, scope %d, profile %d, type %d, inf_handle %p, inf_section %s.\n",
+ devinfo, device_data, Scope, HwProfile, KeyType, InfHandle, debugstr_w(InfSectionName));
- if (!DeviceInfoSet || DeviceInfoSet == INVALID_HANDLE_VALUE)
- {
- SetLastError(ERROR_INVALID_HANDLE);
+ if (!(device = get_device(devinfo, device_data)))
return INVALID_HANDLE_VALUE;
- }
- if (set->magic != SETUP_DEVICE_INFO_SET_MAGIC)
- {
- SetLastError(ERROR_INVALID_HANDLE);
- return INVALID_HANDLE_VALUE;
- }
- if (!DeviceInfoData || DeviceInfoData->cbSize != sizeof(SP_DEVINFO_DATA)
- || !DeviceInfoData->Reserved)
- {
- SetLastError(ERROR_INVALID_PARAMETER);
- return INVALID_HANDLE_VALUE;
- }
- device = (struct device *)DeviceInfoData->Reserved;
- if (device->set != set)
- {
- SetLastError(ERROR_INVALID_PARAMETER);
- return INVALID_HANDLE_VALUE;
- }
+
if (Scope != DICS_FLAG_GLOBAL && Scope != DICS_FLAG_CONFIGSPECIFIC)
{
SetLastError(ERROR_INVALID_FLAGS);
@@ -1301,8 +1303,7 @@ HKEY WINAPI SetupDiCreateDevRegKeyW(
}
if (InfHandle)
SetupInstallFromInfSectionW(NULL, InfHandle, InfSectionName, SPINST_ALL,
- NULL, NULL, SP_COPY_NEWER_ONLY, NULL, NULL, DeviceInfoSet,
- DeviceInfoData);
+ NULL, NULL, SP_COPY_NEWER_ONLY, NULL, NULL, devinfo, device_data);
return key;
}
@@ -1497,42 +1498,17 @@ BOOL WINAPI SetupDiCreateDeviceInfoW(HDEVINFO DeviceInfoSet, PCWSTR DeviceName,
/***********************************************************************
* SetupDiRegisterDeviceInfo (SETUPAPI.@)
*/
-BOOL WINAPI SetupDiRegisterDeviceInfo(
- HDEVINFO DeviceInfoSet,
- PSP_DEVINFO_DATA DeviceInfoData,
- DWORD Flags,
- PSP_DETSIG_CMPPROC CompareProc,
- PVOID CompareContext,
- PSP_DEVINFO_DATA DupDeviceInfoData)
+BOOL WINAPI SetupDiRegisterDeviceInfo(HDEVINFO devinfo, SP_DEVINFO_DATA *device_data, DWORD flags,
+ PSP_DETSIG_CMPPROC compare_proc, void *context, SP_DEVINFO_DATA *duplicate_data)
{
- struct DeviceInfoSet *set = DeviceInfoSet;
struct device *device;
- TRACE("%p %p %08x %p %p %p\n", DeviceInfoSet, DeviceInfoData, Flags,
- CompareProc, CompareContext, DupDeviceInfoData);
+ TRACE("devinfo %p, data %p, flags %#x, compare_proc %p, context %p, duplicate_data %p.\n",
+ devinfo, device_data, flags, compare_proc, context, duplicate_data);
- if (!DeviceInfoSet || DeviceInfoSet == INVALID_HANDLE_VALUE)
- {
- SetLastError(ERROR_INVALID_HANDLE);
+ if (!(device = get_device(devinfo, device_data)))
return FALSE;
- }
- if (set->magic != SETUP_DEVICE_INFO_SET_MAGIC)
- {
- SetLastError(ERROR_INVALID_HANDLE);
- return FALSE;
- }
- if (!DeviceInfoData || DeviceInfoData->cbSize != sizeof(SP_DEVINFO_DATA)
- || !DeviceInfoData->Reserved)
- {
- SetLastError(ERROR_INVALID_PARAMETER);
- return FALSE;
- }
- device = (struct device *)DeviceInfoData->Reserved;
- if (device->set != set)
- {
- SetLastError(ERROR_INVALID_PARAMETER);
- return FALSE;
- }
+
if (device->phantom)
{
device->phantom = FALSE;
@@ -1675,41 +1651,17 @@ BOOL WINAPI SetupDiGetDeviceInstanceIdA(
/***********************************************************************
* SetupDiGetDeviceInstanceIdW (SETUPAPI.@)
*/
-BOOL WINAPI SetupDiGetDeviceInstanceIdW(
- HDEVINFO DeviceInfoSet,
- PSP_DEVINFO_DATA DeviceInfoData,
- PWSTR DeviceInstanceId,
- DWORD DeviceInstanceIdSize,
- PDWORD RequiredSize)
+BOOL WINAPI SetupDiGetDeviceInstanceIdW(HDEVINFO devinfo, SP_DEVINFO_DATA *device_data,
+ WCHAR *DeviceInstanceId, DWORD DeviceInstanceIdSize, DWORD *RequiredSize)
{
- struct DeviceInfoSet *set = DeviceInfoSet;
struct device *device;
- TRACE("%p %p %p %d %p\n", DeviceInfoSet, DeviceInfoData, DeviceInstanceId,
- DeviceInstanceIdSize, RequiredSize);
+ TRACE("devinfo %p, device_data %p, DeviceInstanceId %p, DeviceInstanceIdSize %d, RequiredSize %p.\n",
+ devinfo, device_data, DeviceInstanceId, DeviceInstanceIdSize, RequiredSize);
- if (!DeviceInfoSet || DeviceInfoSet == INVALID_HANDLE_VALUE)
- {
- SetLastError(ERROR_INVALID_HANDLE);
- return FALSE;
- }
- if (set->magic != SETUP_DEVICE_INFO_SET_MAGIC)
- {
- SetLastError(ERROR_INVALID_HANDLE);
- return FALSE;
- }
- if (!DeviceInfoData || DeviceInfoData->cbSize != sizeof(SP_DEVINFO_DATA)
- || !DeviceInfoData->Reserved)
- {
- SetLastError(ERROR_INVALID_PARAMETER);
+ if (!(device = get_device(devinfo, device_data)))
return FALSE;
- }
- device = (struct device *)DeviceInfoData->Reserved;
- if (device->set != set)
- {
- SetLastError(ERROR_INVALID_PARAMETER);
- return FALSE;
- }
+
TRACE("instance ID: %s\n", debugstr_w(device->instanceId));
if (DeviceInstanceIdSize < strlenW(device->instanceId) + 1)
{
@@ -2466,51 +2418,25 @@ BOOL WINAPI SetupDiCreateDeviceInterfaceA(
/***********************************************************************
* SetupDiCreateDeviceInterfaceW (SETUPAPI.@)
*/
-BOOL WINAPI SetupDiCreateDeviceInterfaceW(
- HDEVINFO DeviceInfoSet,
- PSP_DEVINFO_DATA DeviceInfoData,
- const GUID *InterfaceClassGuid,
- PCWSTR ReferenceString,
- DWORD CreationFlags,
- SP_DEVICE_INTERFACE_DATA *iface_data)
+BOOL WINAPI SetupDiCreateDeviceInterfaceW(HDEVINFO devinfo, SP_DEVINFO_DATA *device_data,
+ const GUID *class, const WCHAR *refstr, DWORD flags, SP_DEVICE_INTERFACE_DATA *iface_data)
{
- struct DeviceInfoSet *set = DeviceInfoSet;
struct device *device;
struct device_iface *iface;
- TRACE("%p %p %s %s %08x %p\n", DeviceInfoSet, DeviceInfoData,
- debugstr_guid(InterfaceClassGuid), debugstr_w(ReferenceString),
- CreationFlags, iface_data);
+ TRACE("devinfo %p, device_data %p, class %s, refstr %s, flags %#x, iface_data %p.\n",
+ devinfo, device_data, debugstr_guid(class), debugstr_w(refstr), flags, iface_data);
- if (!DeviceInfoSet || DeviceInfoSet == INVALID_HANDLE_VALUE)
- {
- SetLastError(ERROR_INVALID_HANDLE);
- return FALSE;
- }
- if (set->magic != SETUP_DEVICE_INFO_SET_MAGIC)
- {
- SetLastError(ERROR_INVALID_HANDLE);
- return FALSE;
- }
- if (!DeviceInfoData || DeviceInfoData->cbSize != sizeof(SP_DEVINFO_DATA)
- || !DeviceInfoData->Reserved)
- {
- SetLastError(ERROR_INVALID_PARAMETER);
- return FALSE;
- }
- device = (struct device *)DeviceInfoData->Reserved;
- if (device->set != set)
- {
- SetLastError(ERROR_INVALID_PARAMETER);
+ if (!(device = get_device(devinfo, device_data)))
return FALSE;
- }
- if (!InterfaceClassGuid)
+
+ if (!class)
{
SetLastError(ERROR_INVALID_USER_BUFFER);
return FALSE;
}
- if (!(iface = SETUPDI_CreateDeviceInterface(device, InterfaceClassGuid,
- ReferenceString)))
+
+ if (!(iface = SETUPDI_CreateDeviceInterface(device, class, refstr)))
return FALSE;
if (iface_data)
@@ -2960,45 +2886,25 @@ BOOL WINAPI SetupDiGetDeviceInterfaceDetailW(
/***********************************************************************
* SetupDiGetDeviceRegistryPropertyA (SETUPAPI.@)
*/
-BOOL WINAPI SetupDiGetDeviceRegistryPropertyA(
- HDEVINFO DeviceInfoSet,
- PSP_DEVINFO_DATA DeviceInfoData,
- DWORD Property,
- PDWORD PropertyRegDataType,
- PBYTE PropertyBuffer,
- DWORD PropertyBufferSize,
- PDWORD RequiredSize)
+BOOL WINAPI SetupDiGetDeviceRegistryPropertyA(HDEVINFO devinfo,
+ SP_DEVINFO_DATA *device_data, DWORD Property, DWORD *PropertyRegDataType,
+ BYTE *PropertyBuffer, DWORD PropertyBufferSize, DWORD *RequiredSize)
{
BOOL ret = FALSE;
- struct DeviceInfoSet *set = DeviceInfoSet;
struct device *device;
- TRACE("%p %p %d %p %p %d %p\n", DeviceInfoSet, DeviceInfoData,
- Property, PropertyRegDataType, PropertyBuffer, PropertyBufferSize,
- RequiredSize);
+ TRACE("devinfo %p, device_data %p, property %d, type %p, buffer %p, size %d, required %p\n",
+ devinfo, device_data, Property, PropertyRegDataType, PropertyBuffer, PropertyBufferSize, RequiredSize);
- if (!DeviceInfoSet || DeviceInfoSet == INVALID_HANDLE_VALUE)
- {
- SetLastError(ERROR_INVALID_HANDLE);
- return FALSE;
- }
- if (set->magic != SETUP_DEVICE_INFO_SET_MAGIC)
- {
- SetLastError(ERROR_INVALID_HANDLE);
- return FALSE;
- }
- if (!DeviceInfoData || DeviceInfoData->cbSize != sizeof(SP_DEVINFO_DATA)
- || !DeviceInfoData->Reserved)
- {
- SetLastError(ERROR_INVALID_PARAMETER);
+ if (!(device = get_device(devinfo, device_data)))
return FALSE;
- }
+
if (PropertyBufferSize && PropertyBuffer == NULL)
{
SetLastError(ERROR_INVALID_DATA);
return FALSE;
}
- device = (struct device *)DeviceInfoData->Reserved;
+
if (Property < ARRAY_SIZE(PropertyMap) && PropertyMap[Property].nameA)
{
DWORD size = PropertyBufferSize;
@@ -3022,45 +2928,25 @@ BOOL WINAPI SetupDiGetDeviceRegistryPropertyA(
/***********************************************************************
* SetupDiGetDeviceRegistryPropertyW (SETUPAPI.@)
*/
-BOOL WINAPI SetupDiGetDeviceRegistryPropertyW(
- HDEVINFO DeviceInfoSet,
- PSP_DEVINFO_DATA DeviceInfoData,
- DWORD Property,
- PDWORD PropertyRegDataType,
- PBYTE PropertyBuffer,
- DWORD PropertyBufferSize,
- PDWORD RequiredSize)
+BOOL WINAPI SetupDiGetDeviceRegistryPropertyW(HDEVINFO devinfo,
+ SP_DEVINFO_DATA *device_data, DWORD Property, DWORD *PropertyRegDataType,
+ BYTE *PropertyBuffer, DWORD PropertyBufferSize, DWORD *RequiredSize)
{
BOOL ret = FALSE;
- struct DeviceInfoSet *set = DeviceInfoSet;
struct device *device;
- TRACE("%p %p %d %p %p %d %p\n", DeviceInfoSet, DeviceInfoData,
- Property, PropertyRegDataType, PropertyBuffer, PropertyBufferSize,
- RequiredSize);
+ TRACE("devinfo %p, device_data %p, prop %d, type %p, buffer %p, size %d, required %p\n",
+ devinfo, device_data, Property, PropertyRegDataType, PropertyBuffer, PropertyBufferSize, RequiredSize);
- if (!DeviceInfoSet || DeviceInfoSet == INVALID_HANDLE_VALUE)
- {
- SetLastError(ERROR_INVALID_HANDLE);
+ if (!(device = get_device(devinfo, device_data)))
return FALSE;
- }
- if (set->magic != SETUP_DEVICE_INFO_SET_MAGIC)
- {
- SetLastError(ERROR_INVALID_HANDLE);
- return FALSE;
- }
- if (!DeviceInfoData || DeviceInfoData->cbSize != sizeof(SP_DEVINFO_DATA)
- || !DeviceInfoData->Reserved)
- {
- SetLastError(ERROR_INVALID_PARAMETER);
- return FALSE;
- }
+
if (PropertyBufferSize && PropertyBuffer == NULL)
{
SetLastError(ERROR_INVALID_DATA);
return FALSE;
}
- device = (struct device *)DeviceInfoData->Reserved;
+
if (Property < ARRAY_SIZE(PropertyMap) && PropertyMap[Property].nameW)
{
DWORD size = PropertyBufferSize;
@@ -3084,37 +2970,18 @@ BOOL WINAPI SetupDiGetDeviceRegistryPropertyW(
/***********************************************************************
* SetupDiSetDeviceRegistryPropertyA (SETUPAPI.@)
*/
-BOOL WINAPI SetupDiSetDeviceRegistryPropertyA(
- HDEVINFO DeviceInfoSet,
- PSP_DEVINFO_DATA DeviceInfoData,
- DWORD Property,
- const BYTE *PropertyBuffer,
- DWORD PropertyBufferSize)
+BOOL WINAPI SetupDiSetDeviceRegistryPropertyA(HDEVINFO devinfo, SP_DEVINFO_DATA *device_data,
+ DWORD Property, const BYTE *PropertyBuffer, DWORD PropertyBufferSize)
{
BOOL ret = FALSE;
- struct DeviceInfoSet *set = DeviceInfoSet;
struct device *device;
- TRACE("%p %p %d %p %d\n", DeviceInfoSet, DeviceInfoData, Property,
- PropertyBuffer, PropertyBufferSize);
+ TRACE("devinfo %p, device_data %p, prop %d, buffer %p, size %d.\n",
+ devinfo, device_data, Property, PropertyBuffer, PropertyBufferSize);
- if (!DeviceInfoSet || DeviceInfoSet == INVALID_HANDLE_VALUE)
- {
- SetLastError(ERROR_INVALID_HANDLE);
- return FALSE;
- }
- if (set->magic != SETUP_DEVICE_INFO_SET_MAGIC)
- {
- SetLastError(ERROR_INVALID_HANDLE);
+ if (!(device = get_device(devinfo, device_data)))
return FALSE;
- }
- if (!DeviceInfoData || DeviceInfoData->cbSize != sizeof(SP_DEVINFO_DATA)
- || !DeviceInfoData->Reserved)
- {
- SetLastError(ERROR_INVALID_PARAMETER);
- return FALSE;
- }
- device = (struct device *)DeviceInfoData->Reserved;
+
if (Property < ARRAY_SIZE(PropertyMap) && PropertyMap[Property].nameA)
{
LONG l = RegSetValueExA(device->key, PropertyMap[Property].nameA, 0,
@@ -3134,29 +3001,14 @@ BOOL WINAPI SetupDiSetDeviceRegistryPropertyA(
BOOL WINAPI SetupDiSetDeviceRegistryPropertyW(HDEVINFO devinfo,
SP_DEVINFO_DATA *device_data, DWORD prop, const BYTE *buffer, DWORD size)
{
- struct DeviceInfoSet *set = devinfo;
struct device *device;
- TRACE("%p %p %d %p %d\n", devinfo, device_data, prop, buffer, size);
+ TRACE("devinfo %p, device_data %p, prop %d, buffer %p, size %d.\n",
+ devinfo, device_data, prop, buffer, size);
- if (!devinfo || devinfo == INVALID_HANDLE_VALUE)
- {
- SetLastError(ERROR_INVALID_HANDLE);
- return FALSE;
- }
- if (set->magic != SETUP_DEVICE_INFO_SET_MAGIC)
- {
- SetLastError(ERROR_INVALID_HANDLE);
+ if (!(device = get_device(devinfo, device_data)))
return FALSE;
- }
- if (!device_data || device_data->cbSize != sizeof(SP_DEVINFO_DATA)
- || !device_data->Reserved)
- {
- SetLastError(ERROR_INVALID_PARAMETER);
- return FALSE;
- }
- device = (struct device *)device_data->Reserved;
return SETUPDI_SetDeviceRegistryPropertyW(device, prop, buffer, size);
}
@@ -3649,37 +3501,18 @@ static HKEY SETUPDI_OpenDrvKey(struct device *device, REGSAM samDesired)
/***********************************************************************
* SetupDiOpenDevRegKey (SETUPAPI.@)
*/
-HKEY WINAPI SetupDiOpenDevRegKey(
- HDEVINFO DeviceInfoSet,
- PSP_DEVINFO_DATA DeviceInfoData,
- DWORD Scope,
- DWORD HwProfile,
- DWORD KeyType,
- REGSAM samDesired)
+HKEY WINAPI SetupDiOpenDevRegKey(HDEVINFO devinfo, SP_DEVINFO_DATA *device_data,
+ DWORD Scope, DWORD HwProfile, DWORD KeyType, REGSAM samDesired)
{
- struct DeviceInfoSet *set = DeviceInfoSet;
struct device *device;
HKEY key = INVALID_HANDLE_VALUE;
- TRACE("%p %p %d %d %d %x\n", DeviceInfoSet, DeviceInfoData,
- Scope, HwProfile, KeyType, samDesired);
+ TRACE("devinfo %p, device_data %p, scope %d, profile %d, type %d, access %#x.\n",
+ devinfo, device_data, Scope, HwProfile, KeyType, samDesired);
- if (!DeviceInfoSet || DeviceInfoSet == INVALID_HANDLE_VALUE)
- {
- SetLastError(ERROR_INVALID_HANDLE);
- return INVALID_HANDLE_VALUE;
- }
- if (set->magic != SETUP_DEVICE_INFO_SET_MAGIC)
- {
- SetLastError(ERROR_INVALID_HANDLE);
+ if (!(device = get_device(devinfo, device_data)))
return INVALID_HANDLE_VALUE;
- }
- if (!DeviceInfoData || DeviceInfoData->cbSize != sizeof(SP_DEVINFO_DATA)
- || !DeviceInfoData->Reserved)
- {
- SetLastError(ERROR_INVALID_PARAMETER);
- return INVALID_HANDLE_VALUE;
- }
+
if (Scope != DICS_FLAG_GLOBAL && Scope != DICS_FLAG_CONFIGSPECIFIC)
{
SetLastError(ERROR_INVALID_FLAGS);
@@ -3690,12 +3523,7 @@ HKEY WINAPI SetupDiOpenDevRegKey(
SetLastError(ERROR_INVALID_FLAGS);
return INVALID_HANDLE_VALUE;
}
- device = (struct device *)DeviceInfoData->Reserved;
- if (device->set != set)
- {
- SetLastError(ERROR_INVALID_PARAMETER);
- return INVALID_HANDLE_VALUE;
- }
+
if (device->phantom)
{
SetLastError(ERROR_DEVINFO_NOT_REGISTERED);
@@ -3766,36 +3594,18 @@ static BOOL SETUPDI_DeleteDrvKey(struct device *device)
/***********************************************************************
* SetupDiDeleteDevRegKey (SETUPAPI.@)
*/
-BOOL WINAPI SetupDiDeleteDevRegKey(
- HDEVINFO DeviceInfoSet,
- PSP_DEVINFO_DATA DeviceInfoData,
- DWORD Scope,
- DWORD HwProfile,
- DWORD KeyType)
+BOOL WINAPI SetupDiDeleteDevRegKey(HDEVINFO devinfo, SP_DEVINFO_DATA *device_data,
+ DWORD Scope, DWORD HwProfile, DWORD KeyType)
{
- struct DeviceInfoSet *set = DeviceInfoSet;
struct device *device;
BOOL ret = FALSE;
- TRACE("%p %p %d %d %d\n", DeviceInfoSet, DeviceInfoData, Scope, HwProfile,
- KeyType);
+ TRACE("devinfo %p, device_data %p, scope %d, profile %d, type %d.\n",
+ devinfo, device_data, Scope, HwProfile, KeyType);
- if (!DeviceInfoSet || DeviceInfoSet == INVALID_HANDLE_VALUE)
- {
- SetLastError(ERROR_INVALID_HANDLE);
+ if (!(device = get_device(devinfo, device_data)))
return FALSE;
- }
- if (set->magic != SETUP_DEVICE_INFO_SET_MAGIC)
- {
- SetLastError(ERROR_INVALID_HANDLE);
- return FALSE;
- }
- if (!DeviceInfoData || DeviceInfoData->cbSize != sizeof(SP_DEVINFO_DATA)
- || !DeviceInfoData->Reserved)
- {
- SetLastError(ERROR_INVALID_PARAMETER);
- return FALSE;
- }
+
if (Scope != DICS_FLAG_GLOBAL && Scope != DICS_FLAG_CONFIGSPECIFIC)
{
SetLastError(ERROR_INVALID_FLAGS);
@@ -3806,12 +3616,7 @@ BOOL WINAPI SetupDiDeleteDevRegKey(
SetLastError(ERROR_INVALID_FLAGS);
return FALSE;
}
- device = (struct device *)DeviceInfoData->Reserved;
- if (device->set != set)
- {
- SetLastError(ERROR_INVALID_PARAMETER);
- return FALSE;
- }
+
if (device->phantom)
{
SetLastError(ERROR_DEVINFO_NOT_REGISTERED);
--
2.14.1
More information about the wine-devel
mailing list