Commit graph

90 commits

Author SHA1 Message Date
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
Oleg Dubinskiy c6b64448ce [KERNEL32] Stub GetSystemTimePreciseAsFileTime 2019-11-29 09:03:09 +01:00
William Kent 192926ee02 Stub GetCurrentPackageId() (#1942)
* [KERNEL32] Add stub implementation for GetCurrentPackageId() function

This Windows 8+ function is called by WiX bundles (EXE-based installers) upon exit, if the export is present. If it is a stub in the spec, they will crash, even if they are coded to be compatible with Windows XP/ReactOS.
Also add GetCurrentPackageId() forwarder to apiset.
2019-11-29 08:56:02 +01:00
Joachim Henze 93220e26d0 [KERNEL32] The DPRINT again - Nevermind
Tribute to DepositePirate.

This reverts commit 4ed0c1acef.
2019-11-03 23:41:34 +01:00
Joachim Henze 4ed0c1acef [KERNEL32] Fix typo in DPRINT
I checked: this is no Wine synced code.
2019-11-03 22:30:35 +01:00
Pierre Schweitzer 0ce3941b41
[KERNEL32] Fix FIXME by calling appropriate function in GetNativeSystemInfo() 2019-10-02 10:52:00 +02:00
Denis Malikov 18a9993d69 [KERNEL32] implement CreateSemaphoreExW/A and adjust macroses for it 2019-08-15 15:50:59 +02:00
Serge Gautherie 40ab30d6a0 [KERNEL32] Partially fix dll/win32/kernel32/client/vista.c compilation as NT6
CORE-12596
2019-08-15 15:42:34 +02:00
Hermès Bélusca-Maïto 44cddadba8
[KERNEL32] Minor enhancements for CreateRemoteThread(). (#804)
- Add some cleanup code in failure code paths, instead of asserting.
- Move BasepNotifyCsrOfThread() helper to the only file where it is used.
- Don't use ERROR_DBGBREAK in failure paths but just DPRINT the error
  message: we handle the failures properly.
- When creating the remote thread, sync its service tag with the parent
  thread's one.
2019-08-01 19:12:49 +02:00
Hermès Bélusca-Maïto effdb6f232
[KERNEL32][RTL] Diverse fixes/improvements for thread stack creation code. (#802)
- kernel32!BaseCreateStack() is compatible with ntdll!RtlpCreateUserStack().
- When checking whether a stack guard page can be added, its size has to
  be accounted for in the checking logic.
- We have to satisfy the PEB::MinimumStackCommit constraint.
- We cannot use PEB::GuaranteedStackBytes in BaseCreateStack() since it is
  nowhere initialized (default is 0). It gets initialized to a non-zero
  value when the user manually calls SetThreadStackGuarantee().
  https://www.installsetupconfig.com/win32programming/windowsthreadsprocessapis7_6.html

- RtlpCreateUserStack(): Fix memory leak in failure case.
- RtlpFreeUserStack() doesn't need to return anything.

See also commit 1bc59379 (r59868).

CORE-11319
2019-08-01 19:04:13 +02:00
Timo Kreuzer 1b70ddd834 [KERNEL32] Improve path name handling
Fixes GCC 8 warning:
dll/win32/kernel32/client/loader.c: In function 'LoadLibraryA':
dll/win32/kernel32/client/loader.c:129:17: error: 'strncat' specified bound 13 equals source length [-Werror=stringop-overflow=]
                 strncat(PathBuffer, "\\twain_32.dll", 13);
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2019-07-20 13:56:18 +02:00
Katayama Hirofumi MZ 2db0e159a4
[KERNEL32] Fix SetComputerNameExW (#1583)
Based on @Doug-Lyons's patch. CORE-16058
2019-05-27 16:18:38 +09:00
Pierre Schweitzer ea7aca8bdd
[KERNEL32] Drop unused line breaks 2019-05-08 18:34:28 +02:00
Pierre Schweitzer 204bfa8574
[KERNEL32] Misc. fixes to DefineDosDeviceW
- Add support for LUIDDeviceMapsEnabled;
- Broadcast proper message in case of device removal;
- Use less memory for strings management;
- Make code a bit cleaner.
2019-05-05 18:33:15 +02:00
Pierre Schweitzer 5d20d512be
[KERNEL32] Rewrite QueryDosDeviceW to handle global and local MS-DOS namespaces
It also comes with a small performance boost: instead of performing object
queries one after another, we query them all at once.
2019-05-05 14:18:09 +02:00
Pierre Schweitzer 8d128aa441
[KERNEL32] Reduce QueryDosDeviceA memory footprint
by using TEB static unicode string (which is already
preallocated).
Also, properly handle RtlUnicodeStringToAnsiString failures.
Finally, make sure output buffer is properly 0 terminated.
2019-05-05 10:17:16 +02:00
Pierre Schweitzer 1ed7f27466
[KERNEL32] Reduce DefineDosDeviceA memory footprint
by using TEB static unicode string (which is already
preallocated).
2019-05-05 10:17:16 +02:00
Hermès Bélusca-Maïto 77d234b049
[KERNEL32] Addendum to 0e3a0435 (PR #803): always return TRUE in the stub-plemented SetThreadStackGuarantee() to continue satisfying programs that use it. CORE-15989 2019-04-29 22:51:35 +02:00
Hermès Bélusca-Maïto 0e3a043526
[KERNEL32] Add an (incomplete) pre-implementation for SetThreadStackGuarantee(). (#803)
This should remove some of the "SetThreadStackGuarantee(): stub" messages in some simple cases.
2019-04-27 18:41:50 +02:00
Eric Kohl afca8367ea [KERNEL32] GetSystemPowerStatus(): Set the BATTERY_FLAG_CRITICAL flag if the battery life gets lower than 5 percent. 2019-04-19 22:30:46 +02:00
Eric Kohl 333eb16f30 [KERNEL32] GetSystemPowerStatus(): Fix coding style. No code changes! 2019-04-19 22:28:11 +02:00
Mark Jansen 5c05a29d3d
[APPHELP] Implement ShimDumpCache and ShimFlushCache
These functions simply call into the Base* functions,
having a prototype that is compatible with rundll32
CORE-11301
2019-02-25 20:00:34 +01:00
Eric Kohl 38160b207d [KERNEL32] GetComputerNameExW: Fix crash in kernel32_winetest environ test 2019-01-07 22:45:33 +01:00
Timo Kreuzer cfd1647914
[REACTOS] Fix misc 64 bit issues (#783)
* [WIN32K] Fix handle calculation in DbgGdiHTIntegrityCheck
* [NOTEPAD] Fix MSVC warnings
* [PSDK] Simplify *PROC definitions in windef.h
* [VIDEOPRT] Don't try to use NtVdmControl on x64
* [FREELDR] Fix some macros
* [CRT] Make qsort 64 bit compatible
* [NTOS] Use #ifndef _WIN64 instead of #ifdef _M_IX86 around C_ASSERTs
* [FAST486] Fix 64 bit warnings and change DWORD to ULONG, so it can be used in kernel mode
* [APPHELP_APITEST] Fix 64 bit issue
2019-01-05 10:50:11 +01:00
Eric Kohl b2819c353c [KERNEL32] Store the current computer name in the volatile ActiveComputerName key on first query in order to ensure that the visible computer name does not change until the next reboot. 2018-12-16 10:28:26 +01:00
Mark Jansen faddd38b36
[KERNEL32] Revert d897e27, which would re-initialized a list.
Spotted by Andrew Boyarshin.
2018-12-03 20:48:14 +01:00
Denis Malikov d897e271a2
[KERNEL32] FlsAlloc - fiber local storage list was not initialized before using 2018-11-21 19:18:01 +01:00