Commit graph

146 commits

Author SHA1 Message Date
winesync 73d461f229
****** Heavily adapted for ReactOS -- TODO: Investigate: Code around copy_device_iface_data may be simplified?
[WINESYNC] 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>

wine commit id 86d26dded5560d6d8adb195372f0676d1f7229b0 by Zebediah Figura <z.figura12@gmail.com>

SYNC NOTE: Only changes applicable to ReactOS have been added:
namely, the copy_device_iface_data() inline helper.

Co-authored-by: Hermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
2024-02-20 16:46:46 +01:00
winesync 5f6c0bfb23
****** FIXME: INSPECT: necessary for the interface thing
[WINESYNC] 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>

wine commit id ad9e1883ef558886607037592f48e6c5d216d4e1 by Zebediah Figura <z.figura12@gmail.com>
2024-02-20 16:46:45 +01:00
winesync 9529377905
****** Heavily adapted for ReactOS
[WINESYNC] 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>

wine commit id 11d09c299e5df47cadda7473d03a49244c846634 by Zebediah Figura <z.figura12@gmail.com>

SYNC NOTE: Only changes applicable to ReactOS have been added:
namely, the copy_device_data() inline helper.

Co-authored-by: Hermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
2024-02-20 16:46:44 +01:00
winesync 3bcb3c2839
***** This commit does not apply for ReactOS
[WINESYNC] 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>

wine commit id 5d7b123d094ba2de40237f310ec43f4b06b560a3 by Zebediah Figura <z.figura12@gmail.com>
2024-02-20 16:46:43 +01:00
winesync 2648a8d999
****** Commit useless for ROS
[WINESYNC] 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>

wine commit id b5b09649e6be0154154174b2641bca23a7216f96 by Zebediah Figura <z.figura12@gmail.com>
2024-02-20 16:46:42 +01:00
winesync 5ae438b51b
[WINESYNC] 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>

wine commit id f840bcc6f7dfdfda507e4fc89d9ed2fdc6ca3a94 by Zebediah Figura <z.figura12@gmail.com>
2024-02-20 16:46:41 +01:00
winesync 5db2aea2a2
[WINESYNC] setupapi: Remove a pointless cast.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id a3cedc1f3a2ca66c9ed15fe054413fb9566326c6 by Zebediah Figura <z.figura12@gmail.com>
2024-02-20 16:46:40 +01:00
winesync 6b52ad537e
[WINESYNC] 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>

wine commit id d45e6814d67c1f1a2eb6023f0fb5574d560fd9b8 by Austin English <austinenglish@gmail.com>
2024-02-20 16:46:39 +01:00
winesync 2721dd6bec
[WINESYNC] 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>

wine commit id 074345edd6147a44b1311780c073f13d8114b726 by Tim Wanders <timwanders241@gmail.com>
2024-02-20 16:46:38 +01:00
winesync 0498aefcc0
[WINESYNC] 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>

wine commit id c9308b8d6b1e2f4dd39b19a6890423cd42fd4620 by Hugh McMaster <hugh.mcmaster@outlook.com>
2024-02-20 16:46:37 +01:00
winesync 4aaaa0687d
******* TODO: Check whether I want to remove this switch (lerror) thing and use code more similar to Wine's...
[WINESYNC] setupapi: Fix SetupDiGetDeviceRegistryProperty if property does not exist.

Signed-off-by: Andrew Wesie <awesie@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id e4645d60d72a9fbfbd745e275d4f90110bdceb4d by Andrew Wesie <awesie@gmail.com>

SYNC NOTE: Adapted for ReactOS code.

Co-authored-by: Hermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
2024-02-20 16:46:36 +01:00
winesync 3c8b1d2e0b
[WINESYNC] setupapi: Add SetupDiEnumDriverInfoA/W stubs.
Signed-off-by: Austin English <austinenglish@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 852cd999f3de5b95444b99a1912ed6900a64a37b by Austin English <austinenglish@gmail.com>
2024-02-20 16:46:35 +01:00
winesync d2a1c13b49
[WINESYNC] 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>

wine commit id 01080e6750abcad22ac30df0e4efe669b458f8ab by Nikolay Sivov <nsivov@codeweavers.com>
2024-02-20 16:46:34 +01:00
winesync 90985f90f3
[WINESYNC] setupapi: Add CM_Get_Sibling_Ex stub.
Signed-off-by: Andrey Gusev <andrey.goosev@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 1ce40299941f03fb14ca73e771c1d6ea0090165a by Andrey Gusev <andrey.goosev@gmail.com>
2024-02-20 16:46:33 +01:00
winesync a14c04ead8
[WINESYNC] setupapi: Add CM_Get_Child_Ex stub.
Signed-off-by: Andrey Gusev <andrey.goosev@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id afa920a73fbcea3fd9459b1b53976ab1b6e99735 by Andrey Gusev <andrey.goosev@gmail.com>
2024-02-20 16:46:32 +01:00
winesync f30e36c4f4
[WINESYNC] 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>

wine commit id 6b055830059bfd7afeb4e63e44f32eb28afc6c98 by Christoph Brill <egore911@gmail.com>
2024-02-20 16:46:31 +01:00
winesync a30a992340
[WINESYNC] setupapi: Add a stub implementation of SetupDiRemoveDeviceInterface.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id cdb72f3997174afeb9bc6a8ecafc5de7b5d25afa by Hans Leidekker <hans@codeweavers.com>

SYNC NOTE: Move our already-existing stub to the correct file.
See commit 25b44b332 (r75031)

Co-authored-by: Hermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
2024-02-20 16:46:30 +01:00
winesync c3161ba3df
[WINESYNC] setupapi: Add SetupDiGetDevicePropertyW stub.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id b32a0eaab9971af4045d6def9c4b2ebaa336636a by Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
2024-02-20 16:46:29 +01:00
winesync 3a7551e779
[WINESYNC] setupapi: Added CM_Get_Version().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id af533d1eebd382d7ee72eaaef1cf7461356da9e5 by Nikolay Sivov <nsivov@codeweavers.com>
2024-02-20 16:46:28 +01:00
winesync 0824862ce9
[WINESYNC] 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>

wine commit id 10058e7c4efb472a372b09705c16d312d62d6b0c by Rob Walker <bob.mt.wya@gmail.com>
2024-02-20 16:46:27 +01:00
winesync a812357122
[WINESYNC] setupapi: Fix a typo in comment.
Signed-off-by: Andrey Gusev <andrey.goosev@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id bf9d01edd6b96ebeaeaa092e62d4b666045d0d9e by Andrey Gusev <andrey.goosev@gmail.com>
2024-02-20 16:46:26 +01:00
winesync 0a3ecfaca5
[WINESYNC] setupapi: Add SetupDiSetDeviceInstallParamsW stub.
Signed-off-by: Austin English <austinenglish@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id f820c0942854c14fcd063c83225af03e73286334 by Austin English <austinenglish@gmail.com>
2024-02-20 16:46:25 +01:00
winesync 06ece874e4
[WINESYNC] setupapi: Add SetupDiSelectBestCompatDrv stubs.
Signed-off-by: Austin English <austinenglish@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 9ad0bc63725bc32176b5bb75b58c7341c7bdebcb by Austin English <austinenglish@gmail.com>
2024-02-20 16:46:24 +01:00
winesync 11d3aafd1a
[WINESYNC] setupapi: SetupDiCreateDeviceInfoListEx returns INVALID_HANDLE_VALUE on error.
wine commit id ab92627e19f10d7ad23abb101b21ec7bd122628c by Dmitry Timoshkov <dmitry@baikal.ru>
2024-02-20 16:46:23 +01:00
winesync afef92797e
[WINESYNC] setupapi: SetupDiGetClassDevsEx returns INVALID_HANDLE_VALUE on error.
wine commit id afa912b4f2bd31b2ba58a607f310ab3b761b58e9 by Dmitry Timoshkov <dmitry@baikal.ru>
2024-02-20 16:46:22 +01:00
winesync 7f653d99da
[WINESYNC] setupapi: Avoid shadowing devInst variable.
wine commit id 14650b939cf4ccae964337a3e0ff07945fb4f84f by Dmitry Timoshkov <dmitry@baikal.ru>
2024-02-20 16:46:21 +01:00
winesync c930c4aa92
**** Investigate this more, but I don't think we need this commit in ROS
[WINESYNC] setupapi: Restore close brace before using guid string as reg key.

wine commit id a3487ad3169f5d323ffec2ded6754c3357640161 by Aric Stewart <aric@codeweavers.com>
2024-02-20 16:46:20 +01:00
winesync 17b1828dc8
[WINESYNC] setupapi: Implement SetupLogErrorA(), SetupLogErrorW().
wine commit id a851aaa4248b9f38c0c6e3b1c04e54f95de163b3 by Pierre Schweitzer <pierre@reactos.org>
2024-02-20 16:46:19 +01:00
winesync ca222b438f
[WINESYNC] setupapi: Implement SetupOpenLog(), SetupCloseLog().
wine commit id 799dfa6ada18ee9bf748d5c55e1a4118396b05ba by Pierre Schweitzer <pierre@reactos.org>
2024-02-20 16:46:18 +01:00
winesync 2b566ee2e3
[WINESYNC] setupapi: Add stubs for CM_Get_Device_Interface_List_SizeA/W.
wine commit id f272c126072dc96da2c1fce1118b09e9126c3013 by André Hentschel <nerv@dawncrow.de>
2024-02-20 16:46:17 +01:00
winesync eb0bf1660a
[WINESYNC] setupapi: Add a stub for SetupDiSetClassInstallParamsW.
wine commit id 3013b6c6da9f02fa7afc3b49a036d063d4c4837a by Austin English <austinenglish@gmail.com>
2024-02-20 16:46:17 +01:00
winesync 9cfa2b94cc
[WINESYNC] setupapi: Add CM_Get_DevNode_Registry_Property wrapper around CM_Get_DevNode_Registry_Property_Ex.
wine commit id cfb81f2c606c17ff005fce87a2e79e1d27b8224a by Mark Harmstone <hellas@burntcomma.com>
2024-02-20 16:46:16 +01:00
winesync 9cd60c5288
[WINESYNC] setupapi: Fix buffer overflow in SetupGetFileCompressionInfoW.
wine commit id b8c42020a98e3a5f486cbd03ef80302d6d605871 by Thomas Faber <thomas.faber@reactos.org>

SYNC NOTE: Already in ReactOS but reformatted following Wine.
See commit dcb9fa585 (r58019)

Co-authored-by: Hermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
2024-02-20 16:46:15 +01:00
winesync d8efd058a8
[WINESYNC] setupapi: Make sure DeviceInterfaceData->cbSize is initialized in SetupDiEnumDeviceInterfaces.
wine commit id 8d854a4830776aaacb70161709db315d54eb77f0 by Austin English <austinenglish@gmail.com>
2024-02-20 16:46:14 +01:00
winesync ca81cc071b
[WINESYNC] setupapi: Use BOOL type where appropriate.
wine commit id 9c76ccfda124ca471b3de4d8a04aed1e15a6b9f2 by Frédéric Delanoy <frederic.delanoy@gmail.com>
2024-02-20 16:46:13 +01:00
winesync d671a6c70e
[WINESYNC] setupapi: Stub SetupDiDestroyDriverInfoList.
wine commit id bdadd760a3b0685d828a3cfa09ed8a82df72e48c by Vincent Povirk <vincent@codeweavers.com>

SYNC NOTE: Fixed 1st parameter type in .spec file.

Co-authored-by: Hermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
2024-02-20 16:46:12 +01:00
winesync 5cb388a0df
[WINESYNC] setupapi: Constify a character string.
wine commit id 7102459c60be38e9aaf7501d0eca4134f48420d3 by Frédéric Delanoy <frederic.delanoy@gmail.com>
2024-02-20 16:46:11 +01:00
winesync 2d55e7dc08
[WINESYNC] setupapi: Support signature $Windows NT$ in SetupDiGetINFClassA/W too.
wine commit id 6aace3014d355d355e802299d62a34e8865951ba by Stefan Leichter <Stefan.Leichter@camline.com>
2024-02-20 16:46:10 +01:00
winesync 04c9e75649
[WINESYNC] setupapi: Use BOOL type where appropriate.
wine commit id cef6b07372bb29cb491721f64d2c1017f960b45b by Frédéric Delanoy <frederic.delanoy@gmail.com>
2024-02-20 16:46:09 +01:00
winesync 22eb5aa6a5
[WINESYNC] setupapi: Avoid using CONST.
wine commit id 09524be58380b612d0a9d2ba023ac25791e3fe03 by Michael Stefaniuc <mstefani@redhat.de>

SYNC NOTE: Minus the uglier parameters formatting.

Co-authored-by: Hermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
2024-02-20 16:46:08 +01:00
winesync 5b63ed40d5
[WINESYNC] setupapi: Add a stub for SetupDiSetDeviceInstallParamsA.
wine commit id a829c2b3ad5ac82ad658a22722f169a7d19dea75 by Stefan Leichter <Stefan.Leichter@camline.com>
2024-02-20 16:46:07 +01:00
winesync d5d9f88581
[WINESYNC] setupapi: Add stub keyword to some FIXMEs.
wine commit id f8c77fbd628a62221f985755baf7de675d4f31f0 by André Hentschel <nerv@dawncrow.de>
2024-02-20 16:46:06 +01:00
winesync f241c96e0b
[WINESYNC] setupapi: Add stubs for CM_Reenumerate_DevNode and CM_Reenumerate_DevNode_Ex.
wine commit id f79fa294c9f7c15286e575c6a38aa2827ff06d1e by André Hentschel <nerv@dawncrow.de>
2024-02-20 16:46:05 +01:00
winesync 7a7ed5a50e
[WINESYNC] setupapi: Add CM_Get_Device_ID_ExA stub.
wine commit id 32fb489f1c603b112e62e0e103ae23d390b9cc1a by André Hentschel <nerv@dawncrow.de>
2024-02-20 16:46:04 +01:00
winesync 75274d785e
[WINESYNC] setupapi: Add stub for SetupAddToSourceListW.
wine commit id 8a0442124462ac37273b94b22c35b6ccb8dc6145 by Sylvain Petreolle <spetreolle@yahoo.fr>
2024-02-20 16:46:03 +01:00
winesync 13195280e3
[WINESYNC] setupapi: Fix total size when appending multi-string values.
wine commit id 4b7085fdd499ca39a7e0ae47bd27323876103df0 by Alexandre Julliard <julliard@winehq.org>
2024-02-20 16:46:02 +01:00
winesync 7df436ff9f
****** FIXME: This commit also touches SetupGetInfFileListW
[WINESYNC] setupapi: Avoid memory leaks (coverity).

wine commit id 4d796458d0ed517d45adc57a1aedaf1c3bdde232 by André Hentschel <nerv@dawncrow.de>
2024-02-20 16:46:01 +01:00
winesync f180d22b75
[WINESYNC] setupapi: Add a stub for SetupDiGetDeviceInstallParamsW.
wine commit id 7b32809890a148346648d7dd06084ada83479850 by André Hentschel <nerv@dawncrow.de>
2024-02-20 16:46:00 +01:00
winesync aae4fd6710
****** FIXME: INSPECT: The ROS-equivalent SetupInstallServicesFromInfSectionExW does not support DelService section yet!
[WINESYNC] setupapi: SetupInstallServicesFromInfSection doesn't fail if there are no AddService or DelService directives in the section.

wine commit id da922769c5536932185d7bfce604ee1b7885b75d by Hans Leidekker <hans@codeweavers.com>
2024-02-20 16:46:00 +01:00
winesync 464b490a2c
[WINESYNC] setupapi: Add stub for SetupAddToSourceListA.
wine commit id b3b78b337ea6ba0cf96ddc37161fe71844440851 by Stefan Leichter <Stefan.Leichter@camline.com>
2024-02-20 16:45:59 +01:00