Commit graph

116 commits

Author SHA1 Message Date
Muhammad Faathin Abdurrahman 5391eaadff
[KERNEL32] OpenFile(): Use InitializeObjectAttributes (#6323)
Use InitializeObjectAttributes macro instead of initializing the members manually.
2024-01-11 12:31:12 +01:00
Katayama Hirofumi MZ 6e449d47e8
[IMM32][KERNEL32][SDK] Half-implement BaseCheckAppcompatCache (#6069)
- And add it to <compat_undoc.h>.
- Use <compat_undoc.h> in IMM32.
- Modify kernel32.spec.
CORE-19268
2023-12-03 23:40:49 +09:00
Timo Kreuzer 642c795531 [KERNEL32] Fix 64-bit bug in SetProcessAffinityMask 2023-11-30 13:01:14 +02:00
Katayama Hirofumi MZ af7defb556 [KERNEL32] Implement SetComPlusPackageInstallStatus 2023-11-26 21:30:00 +09:00
Ratin Gao bd0a5498b0
[NTDLL:LDR] Little fixes about SAL annotation and behavior (#5793)
- Uniform function declarations in .c and .h with fixes and SAL2 improvements.
- Use LDR_[UN]LOCK_LOADER_LOCK_FLAG_XXX correctly.
- Fix incorrect UsedSize calculation in LdrQueryProcessModuleInformationEx (caught by ThFabba).
- Whatever the callback request stop the enumeration or not in LdrEnumerateLoadedModules, the following operations should be the same.
- Fix 2 incorrect DPRINT1 that printed incorrect parameter.
- Return error if RtlAllocateHeap failed in LdrpGetProcedureAddress, and add comments about NT6.2 new changes.
2023-11-15 20:59:32 +01:00
Timo Kreuzer 41c99aa60a [KERNEL32] Fix RaiseException to correctly copy the passed in parameters as ULONG_PTR
Fixes C++ exception handling on x64.
2023-09-21 21:33:47 +03:00
Ratin Gao 4c8a2a8815
[KERNEL32][KERNEL32_APITEST] Implement user-mode UEFI / Firmware API (#5149)
- Implement firmware environment variable read/write APIs
- Add, fix and improve related definitions and declarations
- Add kernel32:UEFIFirmware apitest

CORE-11954
2023-09-14 22:14:07 +03:00
Ratin Gao 657f728767
[KERNEL32] Little fixes for FindFirstFileExW() behavior (#5592)
- Don't forget to release RTL_RELATIVE_NAME_U before return
- Ignore lpSearchFilter correctly as on Windows

Fixes 6 failures in kernel32:FindFiles test in LiveCD.
2023-08-27 02:20:08 +03:00
Serge Gautherie 8888311452 [KERNEL32] CreateProcessInternalW(): Always use Peb variable
Trivial consistency/optimization.

Addendum to d81cd01 (r59637).
2023-08-17 02:51:09 +02:00
Timo Kreuzer 5645f7cf8f [KERNEL32] Fix startup context of initial thread
When creating a new process the monster function CreateProcessInternalW calls BaseInitializeContext to set up the context for the initial thread. One of the parameters is the PEB pointer. Instead of passing the pointer to the newly created process' PEB, the function was passing it's own PEB address, leading to test failures. How this is not an issue otherwise is a mystery to be resolved by someone else.
Also remove ros_skip_flaky marks in kernel32_winetest:process (yes, flaky, because sometimes the PEB addresses actually match)
2023-08-16 22:03:05 +03:00
Hermès Bélusca-Maïto cbae866df3
[KERNEL32] CreateProcessInternalW: Initialize uninitialized ClientId.
This situation happens when either of the two "goto VdmShortCircuit;"
code paths are taken when starting a DOS or WoW16 app.
2023-05-17 16:17:42 +02:00
Hermès Bélusca-Maïto 1cbcc4ac5c
[KERNEL32] Minor comments improvements in CreateProcessInternalW. 2023-05-17 16:17:38 +02:00
Katayama Hirofumi MZ 8b948ff062
[KERNEL32][SDK] RegisterConsoleIME and UnregisterConsoleIME (#5270)
The conime.exe program exists in WinXP/Win2k3 and it realizes Console IME. conime.exe calls kernel32!RegisterConsoleIME and kernel32!UnregisterConsoleIME. To realize Console IME, these two functions are required. CORE-11700
2023-05-07 22:55:46 +09:00
Ratin Gao d09072626b [KERNEL32] GlobalMemoryStatusEx should handle error and return FALSE when failed 2023-03-23 09:42:58 +01:00
Ratin Gao df7ab5d8f7
[KERNEL32] Remove a pointless SEH in VirtualAllocEx (#5117)
Win2K3 just wraps in SEH only this syscall, which appears pointless
and was removed since NT6.0. We remove it too as an experiment.
Revert the change that added SEH here from commit 6d97180 (r52899).
2023-03-09 17:08:08 +01:00
Jose Carlos Jesus f691efefc2
[SHLWAPI] No need extension to execute '.bat' files CORE-17612 (#4932)
When no extension is provided, add default extension with correct precedence using PathFileExistsDefExtW.
- Use PathFindOnPathExW when searching in current directory and PATH environment variable.
- Fix Width String terminator to UNICODE_NULL.
- Fix all failed tests on PathFindPathExW KVM test.
CORE-17612
2023-02-11 00:05:11 +09:00
Hermès Bélusca-Maïto 1b25fe161c
[KERNEL32][NTOS:PS][RTL] Cleanup some DbgPrompt() calls. 2023-01-06 14:44:49 +01:00
Timo Kreuzer 437f2b1b0e [KERNEL32] Silence 2 annoying DPRINTs 2023-01-04 10:32:28 +01:00
Timo Kreuzer eb502bbc10 [KERNEL32] Fix a bug in GetVolumeNameForRoot 2022-12-01 20:17:40 +02:00
Hermès Bélusca-Maïto 9f938ea3bb
[KERNEL32] Reformat K32CreateDBMonMutex(). 2022-11-03 02:50:20 +01:00
Hermès Bélusca-Maïto 5bf0c00ddc
[KERNEL32] Minor code style changes + add documentation for BasepMoveFileDelayed().
+ cut the too long lines; don't hardcode types in sizeofs; correctly specify COPY_FILE_FAIL_IF_EXISTS flag.
2022-11-01 02:29:24 +01:00
Mark Jansen f10d40f912
[KERNEL32] Fix BaseDefaultPath containing extra '.' 2022-09-06 21:09:38 +02:00
Timo Kreuzer 39f11249ff [NTOS][RTL] Initialize MxCsr where missing 2022-08-22 11:22:08 +02:00
Andrew Boyarshin c15a9c1d09
[KERNEL32] lpNumberOfCharsWritten is optional for WriteConsole (#1079)
Some applications (and libraries, like replxx) rely on this undocumented behavior.
2022-08-12 01:58:18 +02:00
Timo Kreuzer f96bee30ed [KERNEL32] Fix printing exception address 2022-08-04 16:15:24 +02:00
Mark Jansen 8ea46b53e3
[KERNEL32] Fix reading SafeDllSearchMode 2022-05-25 22:43:47 +02:00
Hermès Bélusca-Maïto 75e2fb4566
[KERNEL32] Improve annotation of BaseProcess/ThreadStartup(); remove useless cast; fix PPROCESS_START_ROUTINE return type. 2022-04-18 02:40:32 +02:00
Oleg Dubinskiy 5d81de7d5b
[REACTOS] Update email in all my copyrights (#4415)
Change it to Gmail, because Yandex disabled ua domain, which was used in my previous email.
2022-03-31 01:53:30 +02:00
Hermès Bélusca-Maïto a94436b519
[KERNEL32] SetThreadUILanguage(): Validate the parameter. Use LANGIDFROMLCID() macro. (#4301)
Both ReactOS and Win2k3 only support '0' for the parameter.
2022-02-08 15:58:04 +01:00
Hermès Bélusca-Maïto 3e44a5d71c
[KERNEL32][CONSRV] Retrieve the best-suited language ID corresponding to the active console output code page. (#4301)
CORE-17601, CORE-17803
Replaces PR #4281.

Implement SrvGetConsoleLangId() (server-side) and set the new current
thread's locale after connecting to a console, or changing its output
code page.

Based on API tracing on Windows 2003, as well as on comments and code
gathered from: https://github.com/microsoft/terminal

Tests results are listed in PR #4301.
2022-02-08 15:58:02 +01:00
Serge Gautherie 1944d7b71b [KERNEL32] HeapCreateTagsW(): Sync' types and add annotations
See RtlCreateTagHeap().
2022-02-03 20:21:40 +01:00
Eric Kohl cf8380100e [KERNEL32] SetComputerNameExW: Truncate the computer name
This fixes the SetComputerNameExW api test.
2021-12-12 17:40:52 +01:00
Hermès Bélusca-Maïto d6d30f9e05
[KERNEL32] Don't hardcode some types in sizeofs, and some flag values. 2021-11-28 00:26:42 +01:00
Oleg Dubinskiy 334ab0f2a5 [KERNEL32] Implement SetFileCompletionNotificationModes
Call native Nt* function to do the actual work, similarly to as it done in Wine: 530c183960:/dlls/kernel32/file.c#l258.
Also add/fix some declarations in internal kernel32/public ndk neaders, to fix compilation.
CORE-17821
2021-10-23 16:19:22 +02:00
Victor Perevertkin 655ddfa8e2
[KERNEL32] FindFirstFileExW: fix syscall buffer alignment
NtQueryDirectoryFile required the FileInformation buffer to be
ULONG-aligned. Declare the aligned buffer explicitly.
2021-09-14 17:58:22 +03: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
Mark Jansen b58c3d73ca
[RTL][KERNEL32] Move the STUB printing code to a place where it's actually called 2021-05-22 16:33:19 +02:00
Colin Finck fd8080b094
[KERNEL32] Align the PROCESS_PRIORITY_CLASS variable in GetPriorityClass on a 4-byte boundary.
Fixes CORE-16757.
This is required for NtQueryInformationProcess as proven by my test application in the bug report.
2021-02-20 17:13:38 +01:00
Victor Perevertkin 46ca069e42
[XDK] Remove UNREFERENCE_LOCAL_VARIABLE macro
Change UNREFERENCED_PARAMETER to (VOID)P to support const parameters
2021-01-19 00:15:02 +03:00
Timo Kreuzer 8df1bd612a [KERNEL32] Fix register initialization in BaseInitializeContext
Get rid of BaseThreadStartupThunk and BaseProcessStartThunk asm wrappers and go to the C functions directly (home space is allocated on the stack by the kernel)
2020-11-07 18:33:02 +01:00
Timo Kreuzer d8b5c00c33 [KERNEL32_VISTA] Move vista.c from kernel32 to kernel32_vista
- Remove duplicated functions
- Use AreFileApisANSI() instead of global variable bIsFileApiAnsi in shared kernel32_shared
2020-09-25 09:45:54 +02:00
Timo Kreuzer fcd83242d4 [KERNEL32] Move some functions into a static library to be shared between kernel32 and kernel32_vista 2020-09-25 09:45:54 +02:00
Katayama Hirofumi MZ 378b26ce27
[KERNEL32] Improve SetComputerNameExW (#3171)
Reduce failures of kernel32_apitest SetComputerNameExW testcase and improve SetComputerNameExW.
2020-09-17 23:51:47 +09:00
Serge Gautherie 4aeb45ce0c
[KERNEL32] GetPriorityClass(): Return explicit 0, not FALSE (match return type) (#3170) 2020-09-12 21:38:06 +02:00
Serge Gautherie 8140203940
[KERNEL32] FatalAppExitW: Add an 'UNREFERENCED_LOCAL_VARIABLE(Status)' (#2883)
Addendum to 21d2accad3 (r71793).
2020-06-04 23:35:54 +03:00
Mark Jansen 177ae91bf6
[RTL] Introduce RtlpImageNtHeader,
which implements the required functionality.
ntdll and ntoskrnl now have a wrapper for this, with SEH.
This protects the function against malformed / bad images,
whilst still being able to use the code in freeldr et al.
Idea from Thomas.
CORE-14857
2020-03-29 21:27:38 +02:00
Hermès Bélusca-Maïto 98b58df2bf
[KERNEL32:CONSOLE] Explicitly use _WIN32_WINNT_VISTA. 2020-03-02 01:08:36 +01:00
Hermès Bélusca-Maïto 570eba2a52
[KERNEL32][CONSRV] Use more often the internal ConioRectHeight/Width() and ConioIsRectEmpty() macros. 2020-02-22 21:15:58 +01:00
Eric Kohl c645660384 [KERNEL32] Improvements to Get/SetComputerNameExW
- The ComputerNamePhysicalDnsDomain name type gets or sets the 'NV Domain' registry value.
- The ComputerNamePhysicalDnsHostname name type gets or sets the 'NV Hostname' registry value.
- IsValidComputerName: Enforce name length restrictions according to the name type.
2020-01-19 13:34:31 +01:00