98 Commits
Author SHA1 Message Date
Justin Miller 5cef1f68e3 [SDK] kernelbase SDK changes 2026-06-24 15:27:43 -07:00
Timo Kreuzer a723ff5600 [WIN32_REGISTRY] Add win32_registry static library
To be used by NT6 apis in kernel32

This is not great. It works, but it puts stuff into the lib that shouldn't be in there. We need it, because the includes need the generated files.
Maybe a dependency could solve that.
2026-06-24 15:27:43 -07:00
Mikhail Tyukin dff8ac8270 [ADVAPI32] Sync crypt components to wine-10.0 2026-05-25 17:00:18 -04:00
Mikhail Tyukin d323c57da7 Revert "[ADVAPI32] Add SEH handling to some crypt functions"
This reverts commit 9844effa41. Newer versions of wine added a pointer_from_handle function which does the same checks and includes try/catch.
2026-05-25 17:00:18 -04:00
Timo Kreuzer 1cf31524d5 [REACTOS] Stop using non-conforming swprintf / vswprintf
Use the underscored versions instead.
2026-05-07 06:27:58 +00:00
Carl J. Bialorucki 9844effa41 [ADVAPI32] Add SEH handling to some crypt functions
This fixes several crashes when running the advapi32 winetest from wine-10.0
2026-03-03 22:07:59 -06:00
Carl J. Bialorucki 4013a064b0 [ADVAPI32] Add NT6+ stubs for RegLoadAppKey and RegRenameKey 2026-03-03 22:07:59 -06:00
Hermès Bélusca-Maïto 8f3ac7ef58 [ADVAPI32][RPCRT4][UMPNPMGR][WINLOGON] Fix buffer size retrieval for MakeSelfRelativeSD() (#8395)
Based on Timo's observation in PR #8387.

And improve debug ERR strings for last-error values.
2025-10-08 15:45:36 +02:00
Eric Kohl 7015c76c63 [ADVAPI32] Do not call the classic service handler function with an event control code 2025-05-27 23:37:19 +02:00
Eric Kohl 16e620d647 [ADVAPI32] Pass PnP data to services on SERVICE_CONTROL_DEVICEEVENT
Services can now receive PnP events.
2025-05-25 14:34:25 +02:00
Eric Kohl d32fd58722 [UMPNPMGR][ADVAPI32][SERVICES] Pass PNP events to the service manager
- umpnpmgr.dll: Call I_ScSendPnPMessage to report pnp events to the service manager.
- adavpi32.dll: Implement I_ScSendPnPMessage which calls the service managers RI_ScSendPnPMessage function.
- services.exe: Add a debug message to RI_ScSendPnPMessage.
2025-05-11 14:25:15 +02:00
Timo Kreuzer 30952992e1 [ADVAPI32] Add some missing Vista+ exports 2024-10-17 18:39:37 +03:00
Timo Kreuzer b27429b126 [ADVAPI32][ETWTRACE] Add etwtrace library and link advapi32 to it on NT6+ 2024-10-17 18:39:37 +03:00
Ratin Gao f61e14f554 [NTDLL][ADVAPI32][ADVAPI32_APITEST][CRYPTLIB] Add hash API exports for NT6+ and apitests with small fixes
- For NT6.0+, NTDLL exports those hash APIs that ADVAPI32 thunks forward to
- Fix undocumented context structure layout and content
- Add apitests to verify both of hash result and structure content
2024-04-13 12:41:36 +02:00
Whindmar Saksit 2449ed5d85 [ADVAPI32] Handle HKCR in RegDeleteValueA+W and RegDeleteKeyValueW (#6033)
- HKCR delete handling; delete the value in HKCU if it exists there, otherwise delete it in HKLM.
- Changed RegDeleteKeyValueW to just use the regular Reg functions to get HKCR handling for free.
2024-03-24 18:28:26 +01:00
Eric Kohl f5346cbc1b [ADVAPI32][IDL][SERVICES] Implement I_ScValidatePnPService
This is actually a Vista+ function, but we need it enable umpnpmgr.dll to notify services of device events. Up until WinXP it was possible to make direct calls to the service manager by umpnpmgr.dll because umpnpmgr.dll was loaded into the service manager process. From Vista onwards umpnpmgr.dll is run as a separate service host process. And since ReactOS always ran umpnpmgr.dll as a separate process, we have to use the Vista RPC functions to notify services.
2023-12-31 15:33:19 +01:00
Timo Kreuzer eef22cc036 [ADVAPI32] Unify source for vista registry functions
- In advapi32_vista compile the code from advapi32/reg/reg.c
- Export RegCopyTreeW from advapi32_vista
2023-12-18 23:14:14 +02:00
Timo Kreuzer d28bbf458a [ADVAPI32] Fix bugs in RegpCopyTree 2023-12-18 23:14:14 +02:00
Timo Kreuzer aff1666356 [ADVAPI32] Improve handling of unaligned key name in RegOpenKeyExW
Check for unaligned buffer before calling NtOpenKey instead of checking the result for STATUS_DATATYPE_MISALIGNMENT.
2023-11-19 15:32:39 +02:00
Whindmar Saksit 8025785730 [ADVAPI32] RegEnumKeyExW on HKCR keys must work with just KEY_ENUMERATE_SUB_KEYS access (#5872)
This fixes Windows RegEdit when the same HKCR key exists in HKCU and HKLM.
2023-11-15 11:07:28 +01:00
Whindmar Saksit 413b5a0827 [ADVAPI32] Handle HKEY_CLASSES_ROOT in RegQueryInfoKeyW (#5870)
CORE-8582 , CORE-14676

This fixes the bug where Regedit is unable to show all the keys in HKCR when a key exists in both HKCU and HKLM.
2023-11-13 18:02:41 +01:00
Joachim Henze 561ad3c1d6 [ADVAPI32] Mute frequent taskmgr logspam CORE-18521 (#5888)
George explained that this is supposed to fail like that,
aka "works as designed". So let's at least mute this now,
as it is spammed with every taskmgr refresh cycle
and allows me to reduce logfile-sizes from ~50MB back to ~2MB
when building ros on ros.

err:(dll/win32/advapi32/wine/security.c:309) NtOpenProcessToken failed! Status c0000022.

Fixes CORE-18521

Also strip some EOL-whitespace in the file, and slightly improve the header.
2023-11-05 18:32:13 +01:00
George Bișoc 33e6490532 [ADVAPI32] Implement AccessCheckByType and AccessCheckByTypeResultList 2023-08-25 14:09:14 +02:00
Timo Kreuzer a17dd3a7a9 [ADVAPI32] Fix some vista exports
ETW trace exports only exist on NT 0x502 ntdll, so limit the forwarders accordingly.
Exports do exist on advapi32 Vista+, so for now these are stubs.
2023-08-11 19:00:42 +03:00
David L Bean dcaf5686ce [ADVAPI32] Don't treat a structure pointer as a string pointer (#5478)
Add a string pointer local variable, assign it and operate on it.
This should eliminate an exception and make LsapIsLocalComputer()
function operate correctly.

CORE-18996
2023-07-27 01:58:44 +03:00
Joachim Henze 7b473c1fac [ADVAPI32] Fix ordinals regression CORE-19039 (#5448)
All ordinals > 128 regressed by
0.4.15-dev-305-g dd7fb63cd1
and were off-by-one compared to 2k3sp2 and the ros-before-state.

Now all 684 ordinals seem to be fine again.
Adding the stub might cost a few bytes unfortunately.
2023-07-16 23:27:22 +02:00
Hermès Bélusca-Maïto d3101db2c7 [ADVAPI32] "Minimally" improve the SaferComputeTokenFromLevel() stub. (#5435)
CORE-14015, CORE-6942

This makes Windows 2003 CMD.EXE to start batch files again.
Addendum to commit 17d42ae2a (r58868).

Replaces PR #3084 by freely importing and adapting Wine patch
https://github.com/wine-mirror/wine/commit/17110a0a890d2bacb5b348bd9bb3cef10d144e19
```
advapi32: Improve the SaferComputeTokenFromLevel stub.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47274
Signed-off-by: Hans Leidekker <[email protected]>
Signed-off-by: Alexandre Julliard <[email protected]>
```
2023-07-15 20:50:16 +02:00
Eric Kohl c3db5e9c8e [ADVAPI32][SECLOGON] CreateProcessWithLogonW: Pass the environment to the callee 2023-06-10 14:10:14 +02:00
Doug Lyons bfc6a119c5 [ADVAPI32] Do not fail on creating a registry key if the security attributes have an invalid length. (#5230)
Provide graceful handling of RegCreateKeyExW when lpSecurityAttributes->nLength is zero.
This reverts commit cc0716b65 (SVN r24491).
JIRA issue: CORE-15471
2023-04-09 04:04:04 +02:00
Timo Kreuzer c5158963a3 [ADVAPI32] Fix a buffer overflow in RegQueryValueExA
The code was trying to check whether the output string was already NULL terminated by RtlUnicodeToMultiByteN before NULL terminating it by checking DataStr[*count - 1] for a NULL terminator. But since RtlUnicodeToMultiByteSize always returns the size without the NULL terminator, DataStr[*count - 1] would always be the last actual character, never an optional NULL terminator.
For 0 sized strings this would actually lead to accessing the output buffer at position -1 (on 32 bit)  or 0xFFFFFFFF (on 64 bit).
Fix this by removing the check. This fixes a crash in advapi32_winetest:registry on x64.
2023-01-04 10:32:28 +01:00
Eric Kohl 23ecbb3ed5 [SECLOGON][ADVAPI] CreateProcessWithLogonW: Return process information to the caller 2022-07-24 01:08:13 +02:00
George Bișoc d862fa6fc8 [ADVAPI32] Implement security descriptor management in CreateProcessAsUserCommon internal function
Currently CreateProcessAsUserCommon doesn't set a default descriptor for the newly duplicated token object for the new process nor it sets any security information for both the process and thread. This is wrong, because when the process is created on behalf of the user's security context,
it still uses the previous security information of the creator that initially gave birth to the process. CreateDefaultProcessSecurityCommon function will serve as a placeholder until CreatePrivateObjectSecurity is implemented.
2022-05-06 10:09:50 +02:00
George Bișoc e90e918039 [ADVAPI32] Soft rewrite of CreateProcessAsUserCommon
Refactor the function in such a way that it can jump to a single exit but most importantly, implement a "rinse and repeat" mechanism where we assign a primary token to process by disabling impersonation first and retry with impersonation later.

More info can be found in the documention within the code.
2022-05-06 10:09:50 +02:00
Serge Gautherie 03422451b3 [REACTOS] Add '\n' to debug logs
on TRACE, WARN, FIXME and ERR calls.

Plus a few nit picks.
2022-05-04 03:28:38 +03:00
Eric Kohl 7a42954cb7 [ADVAPI32] Remove buggy declaration of SystemFunction034
Addendum to f4982e54.
2022-02-21 17:34:23 +01:00
Eric Kohl f4982e547d [ADVAPI32][SECLOGON] Start the implementation of CreateProcessWithLogonW 2022-02-21 16:38:29 +01:00
George Bișoc 39003dd408 [ADVAPI32] Properly implement CreateRestrictedToken
Instead of duplicating the token and masquerade it as if the token was filtered (which is a big hack), properly implement CreateRestrictedToken function by calling NtFilterToken which it'll create a restricted token for us.
2021-11-07 14:22:20 +01:00
Eric Kohl 1ade494a70 [ADVAPI32] Fix several corner cases in RegOpenKey* functions
This fixes the remaining RegOpenKey* tests.
2021-10-21 14:45:56 +02:00
Hermès Bélusca-Maïto 9393fc320e [FORMATTING] Remove trailing whitespace. Addendum to 34593d93.
Excluded: 3rd-party code (incl. wine) and most of the win32ss.
2021-09-13 03:52:22 +02:00
Timo Kreuzer 5d8e834897 [REACTOS] Fix a number of MSVC warnings 2021-07-23 22:03:48 +02:00
Eric Kohl 4cae349811 [ADVAPI32][SERVICES] Use the context handle to encrypt and decrypt service passwords 2021-07-17 16:26:16 +02:00
Jérôme Gardou e470b58376 [REACTOS] Explicitly link against pseh & include pseh headers in a few places 2021-04-28 13:10:23 +02:00
Jérôme Gardou 42b94e728a [ADVAPI32] In RegSetValueExW, do not fail if we fault when checking for ending NUL character 2021-03-02 15:42:21 +01:00
Serge Gautherie 889b077b23 [REACTOS] *.spec: Fix some function/parameter types (#3154) 2020-09-20 19:21:11 +02:00
Amine Khaldi 139a3d6661 [CMAKE] Implement PCH builds with target_precompile_headers. CORE-16905 2020-06-06 21:58:41 +03:00
Timo Kreuzer dd7fb63cd1 [ADVAPI32] Convert ordinals to @ in spec file 2020-05-24 08:22:24 +02:00
Serge Gautherie 9634a31589 [ADVAPI32] Remove now-redundant comment (#2735)
Addendum to 5dfe345.
2020-05-05 11:37:09 +03:00
Kyle Katarn 5dfe3455db [ADVAPI32] Fix undue debug print in nominal case (#2734)
In current implementation, when regedit opens HKCR root key, an error is logged
err:(dll/win32/advapi32/reg/hkcr.c:964) Returning 259.
This is not correct as the code 259 is ERROR_NO_MORE_ITEMS which is the nominal return value when end of enumeration is reached.
2020-05-04 23:30:36 +03:00
Serge Gautherie 5542dd50d6 [ADVAPI32] wine/crypt.*: Misc fixes
Import
https://source.winehq.org/git/wine.git/commit/62df03af96822bda36aef398d00bf5998f490e90
https://source.winehq.org/git/wine.git/commit/8b9e3dae4fb875d6a445bd5182bb6ae32f5680c7
https://source.winehq.org/git/wine.git/commit/2df16753f0008099e119f39469badd10e7450bad

And use explicit '#ifndef __REACTOS__'.
2020-03-28 20:43:04 +01:00
Serge Gautherie 8ae8083378 [ADVAPI32][PSDK] CryptReleaseContext(): dwFlags parameter is DWORD, only
Import
https://source.winehq.org/git/wine.git/commit/9cc8b501eea8dc3bd589ab3e5df3b750e43699d9
2020-03-28 20:43:03 +01:00