Commit Graph

855 Commits

Author SHA1 Message Date
Zebediah Figura 9ccf51e3c1 setupapi: Only delete unregistered device interfaces when deleting a device.
Fixes a regression introduced by 86d26dded5.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-20 09:08:46 +02:00
Zebediah Figura 3fa12ba3a5 setupapi: Implement DIGCF_PRESENT.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-17 16:53:42 +02:00
Zebediah Figura f48e726e51 setupapi: Implement SPINT_LINKED.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-17 16:53:40 +02:00
Zebediah Figura 9b767ad6bb setupapi: Correctly implement SetupDiDeleteDeviceInterfaceRegKey().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-16 13:11:01 +02:00
Zebediah Figura 1d17352ce2 setupapi: Correctly implement SetupDiCreateDeviceInterfaceRegKey().
This family of functions manipulates the "Device Parameters" subkey, not its
parent.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-16 13:10:58 +02:00
Zebediah Figura 86d26dded5 setupapi: Merge the InterfaceInfo and InterfaceInstances structs.
It seems the original motivation for separating these was to facilitate easy
enumeration of specific classes using SetupDiEnumDeviceInterfaces(), but it
makes other things unnecessarily complex [including an eventual
implementation of SetupDiRemoveDeviceInterface()] and the implementation
provided here seems quite simple enough.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-16 13:10:55 +02:00
Zebediah Figura ad9e1883ef setupapi: Add helper functions to get the path of the device instance keys.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-16 13:10:52 +02:00
Zebediah Figura 11d09c299e setupapi: Don't use SP_DEVINFO_DATA in internal structs.
And especially don't use a pointer to one, since there's no guarantee it'll
remain stable.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-16 13:10:49 +02:00
Zebediah Figura 5d7b123d09 setupapi: Merge the DeviceInstance and DeviceInfo structs.
These are two different representations of the same underlying object;
there's no reason to keep them separate.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-16 13:10:46 +02:00
Zebediah Figura b5b09649e6 setupapi: Add an internal helper for SetupDiSetDeviceRegistryProperty().
This essentially follows the model used in MSI. The next patch makes use of
this helper.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-16 13:10:43 +02:00
Zebediah Figura f840bcc6f7 setupapi: Use a handle table to allocate device nodes.
The size of DEVINST is DWORD, so using the pointer directly won't work on
64-bit.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-16 13:10:38 +02:00
Zebediah Figura a3cedc1f3a setupapi: Remove a pointless cast.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-16 13:10:35 +02:00
Gijs Vermeulen 87acb93586 setupapi/tests: Add SetupInstallFromInfSectionA test.
Signed-off-by: Gijs Vermeulen <gijsvrm@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-15 10:49:07 +02:00
Austin English d45e6814d6 setupapi: Set LastError on success in SetupInstallFromInfSectionW.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45167
Signed-off-by: Gijs Vermeulen <gijsvrm@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-15 10:49:07 +02:00
Michael Stefaniuc 94d8ba78b8 setupapi/tests: Use the available ARRAY_SIZE() macro.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-15 12:56:48 +02:00
Tim Wanders 074345edd6 setupapi: Return CR_NO_SUCH_DEVNODE from CM_Get_Parent stub.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-02 20:47:11 +02:00
Alex Henrie 02acc6514a setupapi/tests: Drop install test workarounds for Windows <= 2000.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-16 19:19:44 +01:00
Alexandre Julliard 35719665d7 setupapi: Use correct architecture for fake dlls on ARM and ARM64.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-11-01 23:16:07 +01:00
Hugh McMaster c9308b8d6b setupapi: Recursively remove any subkeys before calling NtDeleteKey().
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-12 10:24:47 +02:00
Andrew Wesie e4645d60d7 setupapi: Fix SetupDiGetDeviceRegistryProperty if property does not exist.
Signed-off-by: Andrew Wesie <awesie@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-02 11:18:36 +02:00
Austin English 852cd999f3 setupapi: Add SetupDiEnumDriverInfoA/W stubs.
Signed-off-by: Austin English <austinenglish@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-17 18:53:30 +01:00
André Hentschel a0ec931a1b setupapi: Fix some more spec file entries.
Signed-off-by: André Hentschel <nerv@dawncrow.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-23 13:15:44 +01:00
Nikolay Sivov 01080e6750 setupapi: Use sizeof() instead of numerical constants for buffer sizes.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-08 16:00:49 +01:00
Andrey Gusev 1ce4029994 setupapi: Add CM_Get_Sibling_Ex stub.
Signed-off-by: Andrey Gusev <andrey.goosev@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-30 13:07:35 +01:00
Andrey Gusev afa920a73f setupapi: Add CM_Get_Child_Ex stub.
Signed-off-by: Andrey Gusev <andrey.goosev@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-30 13:06:33 +01:00
André Hentschel 122aea9405 setupapi: Fix some spec file entries.
Signed-off-by: André Hentschel <nerv@dawncrow.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-27 16:31:43 +01:00
Christoph Brill 6b05583005 setupapi: Stub CM_Open_DevNode_Key and CM_Get_Child.
Signed-off-by: Christoph Brill <egore911@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-25 17:15:27 +01:00
Hans Leidekker 53b7a36319 setupapi/tests: Skip InstallHinfSection tests if the user doesn't have admin rights.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-12-20 13:02:36 +01:00
Hans Leidekker 0e3a0e13ef setupapi/tests: Skip SetupGetInfInformation tests if the user doesn't have admin rights.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-12-20 13:02:34 +01:00
Hans Leidekker 162a40e145 setupapi/tests: Skip devinst tests if the user doesn't have admin rights.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-12-19 12:13:59 +01:00
Hans Leidekker 0922deda93 setupapi/tests: Skip SetupCopyOEMInfA tests if the user doesn't have admin rights.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-12-19 12:13:54 +01:00
Hans Leidekker c84080fb59 setupapi/tests: Clean up properly after each device test.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-12-07 11:57:46 +01:00
Hans Leidekker cdb72f3997 setupapi: Add a stub implementation of SetupDiRemoveDeviceInterface.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-12-07 11:57:44 +01:00
Alistair Leslie-Hughes b32a0eaab9 setupapi: Add SetupDiGetDevicePropertyW stub.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-11-08 19:27:02 +01:00
André Hentschel 55efd7cfe4 setupapi/tests: Try to delete pre-existing key.
Signed-off-by: André Hentschel <nerv@dawncrow.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-13 12:52:15 +09:00
André Hentschel cfcffd9799 setupapi/tests: Also check for ERROR_CALL_NOT_IMPLEMENTED at the second call to SetupDiCreateDeviceInfoListExW.
Signed-off-by: André Hentschel <nerv@dawncrow.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-07 22:19:40 +09:00
Nikolay Sivov af533d1eeb setupapi: Added CM_Get_Version().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-11 12:11:12 +09:00
Andrey Gusev 3e8d4e3103 setupapi/tests: Fix a typo in comment.
Signed-off-by: Andrey Gusev <andrey.goosev@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-23 22:50:00 +09:00
Rob Walker 10058e7c4e setupapi: Add stub for setupapi.dll.CM_Get_DevNode_Status.
Signed-off-by: Rob Walker <bob.mt.wya@gmail.com>
Signed-off-by: André Hentschel <nerv@dawncrow.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-03 22:26:07 +09:00
Andrey Gusev bf9d01edd6 setupapi: Fix a typo in comment.
Signed-off-by: Andrey Gusev <andrey.goosev@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-02 12:26:08 +09:00
Austin English f820c09428 setupapi: Add SetupDiSetDeviceInstallParamsW stub.
Signed-off-by: Austin English <austinenglish@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-31 22:10:54 +09:00
Sebastian Lackner e8aa851fe4 setupapi: Fix parsing of inf files containing garbage at the beginning of the file.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-16 21:59:42 +09:00
Frédéric Delanoy 5c2cff30aa setupapi/tests: Use todo_wine_if() in tests.
Signed-off-by: Frédéric Delanoy <frederic.delanoy@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-22 17:37:10 +09:00
Austin English 9ad0bc6372 setupapi: Add SetupDiSelectBestCompatDrv stubs.
Signed-off-by: Austin English <austinenglish@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-12-24 12:05:08 +01:00
André Hentschel 9edfb14c6b setupapi: Remove dead code (Clang).
Signed-off-by: André Hentschel <nerv@dawncrow.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-12-24 12:00:11 +01:00
Vincent Povirk 295346f81d setupapi: Add a manifest to indicate the tests don't need elevation.
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-16 17:14:31 +09:00
Huw Davies 45c987d962 setupapi/tests: Use RegQueryValueEx so that tests run on Win XP.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-15 01:08:52 +09:00
Vincent Povirk f0009e17e4 setupapi/tests: Add tests for dirid values.
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
2015-10-01 16:28:49 +09:00
Dmitry Timoshkov ab92627e19 setupapi: SetupDiCreateDeviceInfoListEx returns INVALID_HANDLE_VALUE on error. 2015-07-29 21:44:04 +02:00
Dmitry Timoshkov afa912b4f2 setupapi: SetupDiGetClassDevsEx returns INVALID_HANDLE_VALUE on error. 2015-07-29 21:44:04 +02:00