Commit graph

143 commits

Author SHA1 Message Date
Katayama Hirofumi MZ a63678c9a9
[KERNEL32] Fix MultiByteToWideChar(CP_UTF8, ...) (#2007)
CP_UTF8 validation was not strict. 5- or 6-byte length sequences are invalid in RFC 3629 UTF-8. CORE-16468

- Fix MultiByteToWideChar(CP_UTF8, ...) by making check strict.
2019-11-02 14:16:26 +09: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
Katayama Hirofumi MZ 083d6be31e [KERNEL32] Implement InvalidateNLSCache 2019-04-16 21:41:58 +09:00
Katayama Hirofumi MZ a004233bd3 [KERNEL32] Fix handle leak and caching (follow-up of 7e38267) 2019-04-16 20:57:02 +09:00
Katayama Hirofumi MZ 7e3826786e [KERNEL32] Era first year is GANNEN 2019-04-16 11:10:00 +09:00
Katayama Hirofumi MZ 15537c3bbe
[KERNEL32] Support Japanese calendar (#1482)
Implement the Japanese calendar in kernel32. Locale info and date formatting. CORE-15920
2019-04-07 20:20:23 +09:00
Jérôme Gardou 23373acbb9 [CMAKE] Use modules instead of shared libraries
There is no need to compile our DLLs as shared libraries since we are
managing symbols exports and imports through spec files.

On my system, this reduces the configure-time by a factor of two.
2019-04-06 17:43:38 +02:00
Katayama Hirofumi MZ c7bebe40cb
[KERNEL32] Improve MultiByteToWideChar (#1477)
Reduce MultiByteToWideChar failures. CORE-13349
2019-04-06 20:11:07 +09:00
Julien Schueller 23d0aead53 [KERNEL32] Fix typo in kernel32.spec (#1453) 2019-04-02 15:48:41 +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
Pierre Schweitzer db3f3921b6
[KERNEL32] Stub SetThreadErrorMode()
Now, Steam crashes because of the stub of GetSystemTimePreciseAsFileTime

CORE-14966
2019-02-16 14:12:55 +01:00
Eric Kohl 38160b207d [KERNEL32] GetComputerNameExW: Fix crash in kernel32_winetest environ test 2019-01-07 22:45:33 +01:00
Denis Malikov 655d24d9eb [KERNEL32] make some NLS and Format functions work. Wine-sync with latest version 2019-01-05 19:01:30 +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
Adam Słaboń b8044d6783 [TRANSLATION] Polish translation update (#1029)
Translated missing strings and improved existing translations.
2018-11-11 17:55:01 +01:00
Mark Jansen 824e5dba51
[KERNEL32] Directly use UnhandledExceptionFilter in BaseProcessStartup 2018-10-28 13:01:38 +01:00
Mark Jansen 40549483f6
[KERNEL32] Use the default UnhandledExceptionFilter in BaseThreadStartup.
This should allow unhandled exceptions in a thread to trigger our crash reporter,
instead of killing the process directly.
2018-10-28 13:01:38 +01:00
Mark Jansen 71993fd8c9
[KERNEL32] Fix some stubs for 0x600+ 2018-10-12 19:30:24 +02:00
Mark Jansen 12654d2852
[KERNEL32] Ensure the PebLock is always released in FlsFree 2018-09-15 17:56:03 +02:00
Mark Jansen 06eb99edef
[NTDLL][KERNEL32] Implement FLS callbacks. 2018-09-15 17:56:03 +02:00
Katayama Hirofumi MZ 31019e8c0c [TRANSLATION] Update Romanian translation (#851)
Translation from Stefan Fulea.
CORE-15023
2018-09-14 11:04:36 +02:00
Mark Jansen 8642654a00
[KERNEL32] Do not embed binary data inside a string resource.
CORE-14948
2018-09-12 21:31:55 +02:00
Denis Malikov 69a040d275 [KERNEL32] fix spec file for -version=0x600+
CORE-12596
2018-09-01 17:21:21 +02:00
Pierre Schweitzer 2bd33d58d8
[KERNEL32] Shhhh! 2018-09-01 15:46:44 +02:00
Stanislav Motylkov 844483504b [KERNEL32] Implement system firmware functions properly 2018-08-19 20:27:59 +02:00
Timo Kreuzer 094a90ad4e [NTOS:PS] Fix an issue with PROCESS_DEVICEMAP_INFORMATION size on 64 bit builds
The PROCESS_DEVICEMAP_INFORMATION  union has 2 fields, one is a handle, the other one is a structure of 36 bytes (independent of architecture). The handle forces 64 bit alignment on 64 bit builds, making the structure 4 bytes bigger than on 32 bit builds. The site is checked in NtQueryInformationProcess (case ProcessDeviceMap). The expected size on x64 is the size of the Query structure without alignment. autocheck correctly passes the site of the Query union member, while smss passes the full size of PROCESS_DEVICEMAP_INFORMATION. Packing the structure is not an option, since it is defined in public headers without packing. Using the original headers sizeof(PROCESS_DEVICEMAP_INFORMATION) is 0x28, sizeof(PROCESS_DEVICEMAP_INFORMATION::Query) is 0x24.
2018-08-17 22:08:37 +02:00
Mark Jansen 9b6fb9f2f8
[RTL][KERNEL32] Add a comment indicating we need SEH in RtlImageNtHeaderEx
CORE-14532
CORE-14857
2018-08-13 13:24:12 +02:00
Timo Kreuzer 0f8439aa71 [DLLS] Fix 64 bit issues 2018-08-04 19:19:34 +02:00
Timo Kreuzer 4f0a158a2f [KERNEL32] Fix 64 bit issues 2018-08-04 19:19:34 +02:00
Stanislav Motylkov d956eafda8
[KERNEL32] Implement System Firmware functions
- Implement EnumSystemFirmwareTables
- Implement GetSystemFirmwareTable

These functions currently using registry workaround and can be improved later.

CORE-12105
2018-08-02 21:15:28 +02:00
Hermès Bélusca-Maïto 2158f31b71
[KERNEL32] Use RtlStringCbCopyNW() to correctly fill the WIN32_FIND_DATA.cFileName and cAlternateFileName members without any overflow and with a terminating NULL character. 2018-07-22 21:32:38 +02:00
Hermès Bélusca-Maïto c7022c1b0c
[KERNEL32] Use NULL for pointers. 2018-07-07 18:58:03 +02:00
Eric Kohl bd2f3d39a9 [KERNEL32] Get/SetTimeZoneInformation: Convert the Milliseconds value between TIME_FIELDS and SYSTEMTIME too
CORE-14658
2018-06-01 12:49:26 +02:00
Eric Kohl 4911382913 [NDK] Replace the SYSTEMTIME fields StandardDate and DaylightDate in RTL_TIME_ZONE_INFORMATION by TIME_FIELDs and fix resulting errors
Patch will be sent upstream.

CORE-14658
2018-05-31 17:48:29 +02:00
Timo Kreuzer 01ae49857a [KERNEL32] Add Vista exports 2018-04-21 18:31:27 +02:00
Timo Kreuzer 87d3f1005b [KERNEL32] Go back to auto-numbering of export ordinals
Using static numbers was a bad idea in the first place, since we already deal with x64, which has different ordinals. Also @ will automatically do the same thing! It does not mean "no ordinal", it only means automatically apply incrementing numbers.
2018-04-21 18:31:27 +02:00
Serge Gautherie a8f1bea4b1 [KERNEL32] FlsAlloc(): Add a missing '\n' to a DPRINT1() 2018-04-14 16:07:29 +02:00
Amine Khaldi dabc7c9e92 [KERNEL32/STRING] Sync sortkey.c with Wine Staging 3.3. CORE-14434 2018-04-11 12:49:52 +01:00
Amine Khaldi cf14b6b2f5 [KERNEL32/STRING] Sync lcformat.c with Wine Staging 3.3. CORE-14434 2018-04-11 12:48:50 +01:00
Amine Khaldi eaa9d0d12c [KERNEL32/STRING] Sync format_msg.c with Wine Staging 3.3. CORE-14434 2018-04-11 12:47:12 +01:00
Amine Khaldi 7f3e00c573 [KERNEL32/STRING] Sync fold.c with Wine Staging 3.3. CORE-14434 2018-04-11 12:45:42 +01:00
Amine Khaldi d5064a6894 [KERNEL32] Missed this file. Fixes build. 2018-04-11 12:44:23 +01:00
Amine Khaldi efc8966665 [KERNEL32/STRING] Import digitmap.c from, and sync casemap.c with, Wine Staging 3.3. CORE-14434 2018-04-11 12:39:39 +01:00
Amine Khaldi 6d262f1ee4 [KERNEL32/WINE] Sync res.c with Wine Staging 3.3. CORE-14434 2018-04-11 12:36:44 +01:00
Amine Khaldi 8d2519218f [KERNEL32/WINE] Sync profile.c with Wine Staging 3.3. CORE-14434 2018-04-11 12:32:54 +01:00
Amine Khaldi 2f1d080ce5 [KERNEL32/WINE] Sync lzexpand.c with Wine Staging 3.3. CORE-14434 2018-04-11 12:30:53 +01:00
Mark Jansen ac620c2e8e
[KERNEL32] Implement FlsAlloc/FlsFree based on Wine's implementation. 2018-04-08 17:27:24 +02:00
Mark Jansen ee7f479c57
[RTL][XDK][KERNERL32_WINETEST] Import wine actctx changes from 3.2-37c98396
This adds support for reading the trustInfo (requestedExecutionLevel),
and the compatibility (supportedOs) sections.
2018-02-19 22:23:39 +01:00
Mark Jansen 4a2ad113e5 [KERNEL32] Add version info to VerifyVersionInfo mismatch print. 2018-01-15 19:47:58 +01:00
Colin Finck 63a3a2cbb8
[KERNEL32] Accept all images for NT 3.1 and higher instead of bailing out at image versions > 5.01 (#273)
Print a debug message whenever an application newer than ReactOS' internal NT version is started.
This gets a simple "Hello World" compiled by VS' 2017 regular "v141" toolchain to run under ReactOS.

Please retry NT6+ applications!
2018-01-10 09:24:22 +01:00
Erdem Ersoy ba3f074320 [TRANSLATIONS] Update the email address and add a note in the Turkish translation document (#271) 2018-01-07 22:09:42 +01:00
Timo Kreuzer a2f7de7ee8
Amd64/misc 64bit fixes (#236)
[REACTOS] Misc 64 bit fixes

* [NTOS:MM] Allow MEM_DOS_LIM in NtMapViewOfSection on x64 as well
* [NTOS:MM] Implement x64 version of MmIsDisabledPage
* [HAL] Remove obsolete code
* [NTOS:KE] Fix amd64 version of KeContextToTrapFrame and KeTrapFrameToContext
* [XDK] Fix CONTEXT_XSTATE definition
* [PCNET] Convert physical address types from pointers to PHYSICAL_ADDRESS
2018-01-01 12:07:50 +01:00
Ivan Labutin d6792047f3 [NTOS][NDK][RTL] A bunch of 'wrong size' fixes 2017-12-20 06:56:09 +01:00
Hermès Bélusca-Maïto eea43394bf
[KERNEL32] Improve the definition of EXENAME_LENGTH. 2017-12-16 21:07:23 +01:00
Hermès Bélusca-Maïto 197ec4c5b8
[KERNEL32] Update some console API prototypes. 2017-12-10 17:04:29 +01:00
Pierre Schweitzer 4fcaf92ec3
[KERNEL32] Silent a noisy DPRINT1 2017-12-09 11:54:18 +01:00
Pierre Schweitzer ebe9735835
[KERNEL32] Fix a FIXME in WaitNamedPipeW(): allow waiting on a remote pipe 2017-10-29 20:34:49 +01:00
Pierre Schweitzer a80f5f53e7 [KERNEL32] In GetLogicalDrives(), if NtQueryInformationProcess() call succeed, but return drive map is empty, make sure returned error is success.
Patch by Alex Ionescu
2017-10-29 14:49:59 +01:00
Pierre Schweitzer 0add5d0a79 [KERNEL32] Fix MSVC build 2017-10-23 17:25:19 +02:00
Pierre Schweitzer 34c39a1336 [KERNEL32] Implement NpGetUserNamep() 2017-10-23 17:09:21 +02:00
Pierre Schweitzer 19cef7806c [KERNEL32] Fix a FIXME in GetNamedPipeHandleStateW and stub a private function for a left unimplemented function 2017-10-23 14:36:18 +02:00
Pierre Schweitzer 3832f83a32 [KERNEL32] Check Basep8BitStringToDynamicUnicodeString() return and only call -W in case of success
CID 1419330
2017-10-23 13:39:44 +02:00
Pierre Schweitzer 19f1cd78c1 [KERNEL32] Check NtQueryInformationFile succeed before using its return. Also fix coding style
CID 512966
2017-10-23 12:36:43 +02:00
Pierre Schweitzer 5bfc68cc14 [KERNEL32] Fix buffer size for allocation in GetVolumeInformationW(). This fixes function failing with big enough buffer. 2017-10-15 10:43:49 +02:00
Pierre Schweitzer dc8bfeabcf [KERNEL32] Use proper size for allocating buffer in GetVolumeInformationA(). This was leading to allocate a too small buffer under certain conditions and to overrun it.
This fixes JRE7 setup.
This regression was brought in by r75969.

CORE-13888
2017-10-14 23:19:12 +02:00
Hermès Bélusca-Maïto d260385023 [KERNEL32]: Add a .gitattributes file for the winnls resource files.
The .nls files in winnls are actual resource text files for kernel32 and not binary NLS files.
Therefore treat them as such.
2017-10-08 15:48:07 +02:00
Colin Finck 950c86fb4c Fix remaining text file line endings in the tree. (#18)
Based on https://stackoverflow.com/a/1511273

Also enforce CRLF for all *.xml files in our tree, because they are distributed with ReactOS.
2017-10-06 15:00:36 +02:00
Pierre Schweitzer d7ee95b28b [KERNEL32]: w2k3ify GetDriveTypeA() 2017-10-05 23:43:10 +02:00
Pierre Schweitzer cb17d5dba4 [KERNEL32]: Reimplement GetDriveTypeW(). This allows providing a quick path for DOS drives and fixes a few detection cases. It allows brings in support for mount points. 2017-10-05 23:41:26 +02:00
Pierre Schweitzer 676bd0cf37 [KERNEL32]: Finally get rid of no longer used function InternalOpenDirW() 2017-10-05 22:14:44 +02:00
Pierre Schweitzer 8b6518139d [KERNEL32]: Reimplement GetDiskFreeSpaceExA() to make it w2k3 compliant 2017-10-05 22:14:44 +02:00
Pierre Schweitzer 1e2424ee98 [KERNEL32]: Refactor a bit GetDiskFreeSpaceExW(), no ground breaking changes 2017-10-05 22:14:44 +02:00
Pierre Schweitzer 87448f3d8b [KERNEL32]: Reimplement GetDiskFreeSpaceA() to make it w2k3 compliant 2017-10-05 22:14:44 +02:00
Pierre Schweitzer 5bee374c82 [KERNEL32]: Reimplement GetDiskFreeSpaceW() to fix various issues in it. It also brings support for appcompat 2017-10-05 22:14:44 +02:00
Colin Finck c2c66aff7d Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00