Commit graph

85139 commits

Author SHA1 Message Date
winesync be1f985164
[WINESYNC] setupapi: Fix return behaviour when the device key doesn't exist.
wine commit id 309914f315ff95b8b5af36e0cb76a5513bedbc73 by Christian Inci <chris.pcguy.inci@gmail.com>
2024-02-20 16:45:39 +01:00
winesync 8ff4632229
****** ROS-specific code sync too
[WINESYNC] setupapi: Make sure machine name is non-empty before failing.

wine commit id 4fe8cc61642c462883e748b566f93f984e3b4f2a by Juan Lang <juan.lang@gmail.com>

SYNC NOTE: Applied to ReactOS-specific code, with adaptations.

Co-authored-by: Hermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
2024-02-20 16:45:38 +01:00
winesync bdc6db4056
[WINESYNC] setupapi: Add stubs for CM_Get_Device_ID_List_SizeA/W.
wine commit id c6e38bfee65cf16009cff1fbeb1a39b52c119390 by André Hentschel <nerv@dawncrow.de>
2024-02-20 16:45:38 +01:00
winesync 52d2567f80
[WINESYNC] setupapi: Always initialize output parameter to avoid crash in buggy applications.
wine commit id 53b287530961beaaae89bd063bc0d63ef41036ff by Juan Lang <juan.lang@gmail.com>
2024-02-20 16:45:37 +01:00
winesync 29456f347f
[WINESYNC] setupapi: Avoid shadowing a parameter.
wine commit id a326c9ee67d5a66b9634ae8e0850a99ba5fec26c by Austin English <austinenglish@gmail.com>
2024-02-20 16:45:36 +01:00
winesync c7d7d4ab32
[WINESYNC] setupapi: Fix some memory leaks in SetupDiGetINFClassA.
Spotted with Valgrind.

wine commit id c66d27c55588b0ab3406ce4729348beec3aab536 by Andrew Nguyen <anguyen@codeweavers.com>
2024-02-20 16:45:35 +01:00
winesync 1423695d37
[WINESYNC] setupapi: Add stub for SetupDiSetSelectedDevice.
wine commit id 8fffb22f1e3e81dd5f745020f6fb235a9794697b by Stefan Leichter <Stefan.Leichter@camline.com>
2024-02-20 16:45:34 +01:00
winesync 306dbf472d
[WINESYNC] setupapi: Implement SetupDiGetINFClassA on top of SetupDiGetINFClassW.
wine commit id 05a1416c9324dfee9fb0ff8854718fda46d9a0bb by Stefan Leichter <Stefan.Leichter@camline.com>
2024-02-20 16:45:33 +01:00
winesync ed310ea7fa
[WINESYNC] setupapi: Add partial implementation of SetupDiGetINFClassW.
wine commit id 803b81c1b7e299692c18f73d6125f3737f159dc3 by Stefan Leichter <Stefan.Leichter@camline.com>
2024-02-20 16:45:32 +01:00
winesync 20df76d176
[WINESYNC] setupapi: Added tests for SetupDiGetINFClassA.
wine commit id 7e8ab4c8b4642f9952c687c04c1cf259b2bf9192 by Stefan Leichter <Stefan.Leichter@camline.com>
2024-02-20 16:45:31 +01:00
winesync c6ea951cc2
[WINESYNC] setupapi: Add stubs SetupQueryDrivesInDiskSpaceList{A,W}.
wine commit id 53aef28e36078f0eb28d925c01a9f81e9aeb94ad by Julius Schwartzenberg <julius.schwartzenberg@gmail.com>
2024-02-20 16:45:30 +01:00
winesync d34d4a61f5
[WINESYNC] setupapi: Add a stub for SetupDiLoadClassIcon.
wine commit id aaf4ce8ac6d70f19b6bce495d1b580acb61c1c69 by Paul Vriens <Paul.Vriens.Wine@gmail.com>
2024-02-20 16:45:29 +01:00
winesync d831b7c34b
[WINESYNC] setupapi: Add stubs for SetupDiBuildDriverInfoList and SetupDiDeleteDeviceInfo:.
wine commit id dab1bbef29c84d11d07b80f5262d70689c216366 by Austin English <austinenglish@gmail.com>
2024-02-20 16:45:28 +01:00
winesync ab69e27031
[WINESYNC] setupapi: Add a few traces for SetupDecompressOrCopyFileW.
wine commit id 6456e14055584db1d67238a5e70c3bc42c881695 by Andrew Nguyen <anguyen@codeweavers.com>
2024-02-20 16:45:27 +01:00
winesync 5ebd05ac40
[WINESYNC] setupapi: Only extract the first MSZIP cabinet file in SetupDecompressOrExtractFile.
wine commit id a44506b563af5a1f852c3c26478adb75ffe01b38 by Andrew Nguyen <anguyen@codeweavers.com>
2024-02-20 16:45:26 +01:00
Hermès Bélusca-Maïto 1080113889
[SETUPAPI] Prepare for wine sync 2024-02-20 16:45:25 +01:00
winesync 8e0b3205e1
[WINESYNC] setupapi: Add stub implementations of SetupGetNonInteractiveMode and SetupSetNonInteractiveMode.
wine commit id bb36e75a403170aba995a094cd20bed9d484bdf9 by Hans Leidekker <hans@codeweavers.com>
2024-02-20 16:45:24 +01:00
winesync 7baa4efea4
[WINESYNC] setupapi: Implement SetupGetInfFileListA.
wine commit id 05a308a80ba8acef2f25732d652a5ffd5361479b by Stefan Leichter <Stefan.Leichter@camline.com>
2024-02-20 16:45:23 +01:00
winesync ed312cfd56
[WINESYNC] setupapi: Only cleanup fake dlls once the whole section has been executed.
wine commit id 6836990e0b1143cad40d6f9cf54d85483e353cf5 by Alexandre Julliard <julliard@winehq.org>
2024-02-20 16:45:23 +01:00
winesync ef55a9703d
[WINESYNC] setupapi: Stub out SetupDiRemoveDevice.
wine commit id bf18e7e71f27035c4c9dbc6d447f57a907b9f752 by Damjan Jovanovic <damjan.jov@gmail.com>
2024-02-20 16:45:22 +01:00
Hermès Bélusca-Maïto 055142badb
[SETUPAPI] Prepare for wine sync -- FIXME: Move at the bottom position 2024-02-20 16:45:21 +01:00
winesync e669113b13
[WINESYNC] setupapi: Add support for creating registry symlinks from a .inf file.
wine commit id f6b3dba7a08a718f633804da508e4586ae72e6f5 by Alexandre Julliard <julliard@winehq.org>

SYNC NOTE: This is Wine-specific functionality, placed in __WINESRC__
REG_LINK is _NOT_ supported by (official) Windows INF AddReg section.
See the WDK ChkInf.pm tool (from Win2003 up to Win10), for example at:
https://github.com/skycipher/CNGProvider/blob/master/Windows%20Kits/10/Tools/x86/ChkInf/chkinf.pm#L3870
2024-02-20 16:45:20 +01:00
Hermès Bélusca-Maïto 082862f673
[SETUPAPI] registry_callback: Surround ReactOS-specific code in __REACTOS__
This code was added in commit 3dce4b048 (r24493).
2024-02-20 16:45:19 +01:00
winesync 3438acb6ab
[WINESYNC] setupapi: Add stub for SetupLogFile{A,W}.
wine commit id c7d4b0c69fb8de9a2344c7d9d4bcda6e3feef094 by Vitaly Perov <vitperov@etersoft.ru>
2024-02-20 16:45:18 +01:00
winesync 5e218bbb70
[WINESYNC] setupapi: Implement SetupDiOpenDeviceInfoA/W as stubs.
wine commit id 3eea5a8ae9192cdd524e7beb7261a67807897582 by Andrew Nguyen <arethusa26@gmail.com>
2024-02-20 16:45:17 +01:00
winesync ed0f085f0d
[WINESYNC] setupapi: Fix a comment typo.
wine commit id eba0657bf7f646fb85dc24dd000200e4bcf8c3ed by Juan Lang <juan.lang@gmail.com>
2024-02-20 16:45:16 +01:00
winesync 66c2bc7549
[WINESYNC] setupapi: Add stub for CM_Get_Device_ID_ExW.
wine commit id 6f2ec37b60235bca17460e35fe89c6612fbdb54f by Vladimir Pankratov <scriptkid@mail.ru>
2024-02-20 16:45:15 +01:00
winesync 4bb7173db1
**** TODO: ReactOS Investigate *****
Was added in commit f4c48b73b (r66964) as part of Wine Staging 1.7.37
but then was reverted in commit a3e6e54cb (r66970).

```
[WINESYNC] setupapi: Implement SetupGetInfFileListW.

wine commit id 9db754fe10469ee558e32598a43c01589f1199c2 by Stefan Leichter <Stefan.Leichter@camline.com>
```
2024-02-20 16:45:14 +01:00
winesync bbb4808e01
[WINESYNC] setupapi: Add stub and some tests for SetupGetInfFileListW.
wine commit id 381221de66bb013a87cf19451009469c5a0091ed by Stefan Leichter <Stefan.Leichter@camline.com>
2024-02-20 16:45:13 +01:00
winesync 41039c3daf
[WINESYNC] setupapi: Create fake dlls before performing dll registration.
wine commit id 4ae262df8efbcf4cd2e213a1899801c09d6b5047 by Alexandre Julliard <julliard@winehq.org>
2024-02-20 16:45:12 +01:00
winesync 076b4ec9ad
[WINESYNC] setupapi: Use a global buffer to read fake dll files and free it only once we are done with all the fake dlls.
wine commit id 11d66a87887d6155850c1f5f0c889bfefe6add87 by Alexandre Julliard <julliard@winehq.org>
2024-02-20 16:45:11 +01:00
winesync beb0c4a591
*** Empty winesyncs ***
[WINESYNC] setupapi: Don't use 'interface' as variable name, since it can be defined to a keyword.

wine commit id 72fdb74326ae458180f29cd711577e4f3e14d469 by Alexandre Julliard <julliard@winehq.org>

[WINESYNC] setupapi: Implement SetupPromptForDiskW with only Cancel button active.

wine commit id ecc8e526bf1302cc80127c1f658f42af0850a66f by Ricardo Filipe <ricardo_barbano@hotmail.com>

[WINESYNC] setupapi: Implement SetupPromptForDiskA by wrapping around W version.

wine commit id 24a10fc9aca34984a6372e21fdbcb3b83c36a812 by Ricardo Filipe <ricardo_barbano@hotmail.com>

[WINESYNC] setupapi: Add stubs for CM_Locate_DevNode_ExA/W.

wine commit id 6ba3cc1c2eaf66a121dd8d03ee37314ba4bde382 by Ricardo Filipe <ricardo_barbano@hotmail.com>

[WINESYNC] setupapi: Add stub implementations of SetupUninstallOEMInfA/W.

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

[WINESYNC] setupapi: Add stub implementations of CM_Get_Device_Interface_List_Size_ExA/W.

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

[WINESYNC] setupapi: Fix passing a NULL parameter (Coverity).

wine commit id 77fa32a8327b09a33080f78e2ce69123bbd3083c by Paul Vriens <Paul.Vriens.Wine@gmail.com>

***** This commit is utterly wrong and must be removed from the sync list.

[WINESYNC] setupapi: Move IsUserAdmin to shell32.IsUserAnAdmin.

wine commit id ed1b527dd94d3fd26f2ad81e451c59df42d89a41 by Detlef Riekenberg <wine.dev@web.de>

[WINESYNC] setupapi: Add stub implementations of CM_Get_Device_ID_ListW and CM_Enumerate_Classes.

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

[WINESYNC] setupapi: Fix a structure size check for 64-bit.

wine commit id aaf908ab323126f2dac09ddfdd053267591e5c9e by Alexandre Julliard <julliard@winehq.org>

[WINESYNC] setupapi: Add stub for SetupDiGetClassImageIndex.

wine commit id e94d30ed6edfe9e06546f278434d8d2bf49ac6ff by Vladimir Pankratov <scriptkid@mail.ru>

[WINESYNC] setupapi: Use FAILED instead of !SUCCEEDED.

wine commit id 8b3f3ef82192c14752c6169341be96d13ed0f7fe by Michael Stefaniuc <mstefani@redhat.de>

[WINESYNC] setupapi: Make setupx.dll into a stand-alone 16-bit module.

wine commit id 66f6b786591e0d187967a26e9c9a1a8543ca91f1 by Alexandre Julliard <julliard@winehq.org>
2024-02-20 16:45:10 +01:00
Hermès Bélusca-Maïto a5db8c36c8
[SETUPAPI] SetupCopyOEMInfW: Simplify by directly calling pSetupInstallCatalog. 2024-02-20 16:45:09 +01:00
Hermès Bélusca-Maïto 33a90b5a09
[SETUPAPI] pSetupInstallCatalog: Ensure the last error is reset, before relying on it as return value. 2024-02-20 16:45:08 +01:00
Hermès Bélusca-Maïto f6879cd3e1
[SETUPAPI] pSetupInstallCatalog: Call CryptCATAdminAcquireContext with DRIVER_ACTION_VERIFY GUID.
For compatibility with Windows' setupapi.
https://learn.microsoft.com/en-us/windows/win32/api/mscat/nf-mscat-cryptcatadminacquirecontext
> A pointer to the GUID that identifies the subsystem. DRIVER_ACTION_VERIFY
> represents the subsystem for operating system components and third party
> drivers. This is the subsystem used by most implementations.

This is also what SetupCopyOEMInfW uses too.
2024-02-20 16:45:07 +01:00
winesync 6edf5f1c29
[WINESYNC] setupapi: Implement pSetupInstallCatalog.
wine commit id 7392162ed1611e552fc6e40ab36cfd2d75c030c8 by Aric Stewart <aric@codeweavers.com>
2024-02-20 16:45:06 +01:00
winesync e58a7ca526
****** ROS-specific code sync too
[WINESYNC] setupapi: Remove superfluous pointer casts.

wine commit id ffae0123ac46ba6dfac74d7c84422073fd53b580 by Michael Stefaniuc <mstefani@redhat.de>

SYNC NOTE: Applied to ReactOS-specific code.

Co-authored-by: Hermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
2024-02-20 16:45:05 +01:00
winesync 7c3bfe4dad
*** Empty winesyncs ***
[WINESYNC] setupapi: Add stubs for CM_Locate_DevNodeA/W.

wine commit id ae8a07d93453abd2ff3ff0ea816a382100762d3c by Ricardo Filipe <ricardo_barbano@hotmail.com>

[WINESYNC] cfgmgr32: Forward and stub CM_Connect_MachineA.

wine commit id 3dcac86e5341849f85c3ba22b0786a994fb9f388 by Andrew Nguyen <arethusa26@gmail.com>

[WINESYNC] setupapi: Stub the SetupDiDestroyClassImageList function.

wine commit id 33197eaa8de50139b35c265c456352b156b7401e by Andrew Nguyen <arethusa26@gmail.com>

[WINESYNC] cfgmgr32: Forward and stub CM_Create_DevNodeA/W.

wine commit id d46ffb4b6fb2b16e2a2acd152c9d7eb5736f70b5 by Andrew Nguyen <arethusa26@gmail.com>

[WINESYNC] setupapi: Add stubs for pSetupInstallCatalog and pSetupVerifyCatalogFile.

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

[WINESYNC] setupapi: Add stub for SetupDiGetClassImageList.

wine commit id 4efd105fb3d5c19a43d57abe7bde1b6b0b736b2d by Ricardo Filipe <ricardo_barbano@hotmail.com>
2024-02-20 16:45:04 +01:00
winesync 01211c2016
[WINESYNC] setupapi: Remove some superfluous casts.
wine commit id 02d1154bab37c1cc6915c0a657189bf4153acd22 by Michael Stefaniuc <mstefani@redhat.de>
2024-02-20 16:45:03 +01:00
winesync 749f5fb3c5
[WINESYNC] setupapi: Add stubs for SetupPromptForDiskA/W.
wine commit id 7e60ab10c1036f60e59bdf5b699d44ad8823a507 by Ricardo Filipe <ricardo_barbano@hotmail.com>
2024-02-20 16:45:02 +01:00
winesync 639c5badc2
****** TODO: This commit is partly (but not completely??) implemented in ReactOS-specific "Implement ProfileItems support in .inf files" commit 50660226e (r29639)
[WINESYNC] setupapi: Implement FLG_PROFITEM_GROUP.

wine commit id b7fe5e0aa587f450e6d70f2994be92ecf85fc809 by Vincent Povirk <vincent@codeweavers.com>
2024-02-20 16:45:01 +01:00
winesync 29da75098f
**** NOTE: A lstrlenW -> strlenW change done in SetupDiGetDeviceInstanceIdW
[WINESYNC] setupapi: Sign-compare warnings fix.

wine commit id 1c64c934db07bf9e6431ee43c6e9a53e58c78120 by Andrew Talbot <andrew.talbot@talbotville.com>
2024-02-20 16:45:00 +01:00
winesync 14c7d90b7a
[WINESYNC] setupapi: Add a matching CoUninitialize call.
Spotted by Rob Shearman.

wine commit id 23f54c939b7ab2a9f405b12b920a76ab9c542a86 by Vincent Povirk <vincent@codeweavers.com>
2024-02-20 16:44:59 +01:00
winesync cb89e94f13
****** This commit is superseded by ReactOS-specific "Implement ProfileItems support in .inf files" commit 50660226e (r29639)
CORE-2505

[WINESYNC] setupapi: Implement ProfileItems directive.

wine commit id 6c380468d955d74dd24e9d35e9b38fdf29d685db by Vincent Povirk <vincent@codeweavers.com>
2024-02-20 16:44:58 +01:00
winesync f659a4edb8
[WINESYNC] setupapi: Implement installing catalog files.
wine commit id c19b967cd8561357ee7a519a937454e703a10bd8 by Maarten Lankhorst <maarten@codeweavers.com>
2024-02-20 16:44:57 +01:00
winesync f3ca28edff
[WINESYNC] setupapi: Constify a variable.
wine commit id 581a0e091cc87e027e48b835011b024a34506854 by Andrew Talbot <andrew.talbot@talbotville.com>
2024-02-20 16:44:56 +01:00
winesync ca813bee08
*** Empty winesyncs ***
[WINESYNC] setupapi: SetupDiGetDeviceRegistryProperty should return ERROR_INSUFFICIENT_BUFFER when buffer size is insufficient.

wine commit id 85861a4999e724bdb24ffa8a7262d329fb8fe035 by Alexander Morozov <amorozov@etersoft.ru>

[WINESYNC] setupapi: SetupDiGetDeviceRegistryProperty should return ERROR_INVALID_DATA when buffer size is not 0 but buffer is NULL.

wine commit id af5e168f169a6024c5d618a5696f47faf27a4505 by Alexander Morozov <amorozov@etersoft.ru>

[WINESYNC] Spelling fixes.

wine commit id aab8fae59a208efb23db5affcae6778713dcc8be by Austin English <austinenglish@gmail.com>
2024-02-20 16:44:55 +01:00
winesync a3a815aca7
****** ROS-specific code sync too
[WINESYNC] setupapi: Install services in InstallHinfSection.

wine commit id c7e661b8e5a0c339ef09e89cc759dc6620e14541 by Alexandre Julliard <julliard@winehq.org>

SYNC NOTE: Adapted to ReactOS-specific code.

Co-authored-by: Hermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
2024-02-20 16:44:54 +01:00
winesync ca354ef614
****** FIXME: INSPECT: The ROS-equivalent of SetupInstallServicesFromInfSection(Ex)W is missing the DelService case! Not implemented
[WINESYNC] setupapi: Implemented SetupInstallServicesFromInfSectionW.

wine commit id cf78e6c38c6815cc9ef805b791414bd67acbb992 by Alexandre Julliard <julliard@winehq.org>
2024-02-20 16:44:53 +01:00
winesync db02c6d4fc
*** Empty winesyncs ***
[WINESYNC] setupapi: Forward SetupInstallServicesFromInfSectionA to W-function.

wine commit id f14eecded81cb576d2242e7405d338bcf88e8701 by Paul Vriens <paul.vriens.wine@gmail.com>

[WINESYNC] setupapi: Fix buffer size in SetupDiGetDeviceInterfaceDetailW.

wine commit id 6bc8e9a11693f52d1f75dab0ac8df53a0d212adc by Christopher Berner <raccoonone@procyongames.com>

[WINESYNC] setupapi: Add a check of "#" for interface subkey names.

wine commit id bae4ebb7d72aeeeea4dd69a24cb4551814bbc6be by Alexander Morozov <amorozov@etersoft.ru>

[WINESYNC] setupapi: Creating SymbolicLink value in registry as in Windows XP.

wine commit id b622101ef252071f6797368f0b4c0911ade2bd5a by Alexander Morozov <amorozov@etersoft.ru>

[WINESYNC] setupapi: Create device interface keys in registry as in Windows XP.

wine commit id 6a5c1ca25bd77fde9e825e31dca4d4cc0d1fea8a by Alexander Morozov <amorozov@etersoft.ru>

[WINESYNC] setupapi: Create DeviceInstance value in registry, delete todo_wine from test.

wine commit id 997bea9b896fa748d6ec185c5462f11e0326904d by Alexander Morozov <amorozov@etersoft.ru>

[WINESYNC] setupapi: Prevent of reallocating memory for _SP_DEVINFO_DATA structures.

wine commit id 62520da8d398c9b822428189dc0811ce9b1c7716 by Alexander Morozov <amorozov@etersoft.ru>
2024-02-20 16:44:52 +01:00