Commit Graph

2842 Commits

Author SHA1 Message Date
Serge Gautherie
0c568c0c90
[XDK] kefuncs.h: Unduplicate 2 function definitions (#6057) 2023-12-04 13:49:57 +01:00
Hermès Bélusca-Maïto
48456d9108
[NDK] ldrfuncs.h: Add RtlDllShutdownInProgress; make the header C++-compatible (#6071)
The function is added here, because it is loader-related
and thus making sense there, instead of in rtlfuncs.h.
2023-12-04 13:47:33 +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
Katayama Hirofumi MZ
75cf6920bc
[IMM32][SDK][NTUSER] Implement ImmProcessKey for Cicero (#6106)
Complete CTF IMM.
- Add CtfImeProcessCicHotkey and CtfImeSetActiveContextAlways
  to access CTF IMEs.
- Check whether Cicero is started in the current thread in ImmProcessKey.
- Call CtfImeProcessCicHotkey if necessary in ImmProcessKey.
- Modify <CtfImeTable.h>.
- Add CI_CICERO_STARTED flag to "ntuser.h".
- Fix Imm32JCloseOpen.
CORE-19268
2023-12-03 17:33:22 +09:00
Katayama Hirofumi MZ
d795021a75
[IMM32][SDK] Implement GetKeyboardLayoutCP (#6068)
- Add IMM32!GetKeyboardLayoutCP function.
- Add it to <imm32_undoc.h>.
- Delete ImmDisableLegacyIME and
  ImmSendMessageToActiveDefImeWndW functions
  (2k3/xp IMM32 doesn't have such functions).
- Modify imm32.spec.
- Refer ntdll!RtlDllShutdownInProgress function (that is WinXP+).
CORE-19268
2023-12-03 07:46:35 +09:00
Timo Kreuzer
40b6b1dab3 [HAL] Implement IPI support functions 2023-12-03 00:07:53 +02:00
Katayama Hirofumi MZ
4bccb6e6c9
[SHELL32][SDK][SHELL32_APITEST] Add PathIsTemporaryA/W (#6067)
- Implement PathIsTemporaryA and
  PathIsTemporaryW functions.
- Add them to <undocshell.h>.
- Add PathIsTemporary testcase.
CORE-19278
2023-12-02 23:07:28 +09:00
Katayama Hirofumi MZ
931224fbe1
[IMM32][SDK][NTUSER] Implement CtfImmTIMActivate (#6041)
- Add Imm32InitTLS, Imm32AllocateTLS, Imm32GetTLS,
  Imm32GetCoInitCountSkip, Imm32IncCoInitCountSkip, and
  Imm32DecCoInitCountSkip helper functions to
  control the TLS data.
- Introduce "CoInitialize Spy" (ISPY) to manage COM
  initialization status.
- Implement CtfImmCoInitialize and CtfImmCoUninitialize.
- Implement CtfImmEnterCoInitCountSkipMode and
  CtfImmLeaveCoInitCountSkipMode.
- Implement CtfImmLastEnabledWndDestroy,
  ImmDisableTextFrameService, and CtfImmTIMActivate.
CORE-19268
2023-11-30 17:22:50 +09:00
Katayama Hirofumi MZ
2aeda3dc15
[SHELL32][SHELL32_APITEST][SDK] Implement PathIsEqualOrSubFolder (#5714)
Implement PathIsEqualOrSubFolder function.
- Add it to <undocshell.h>.
- Add PathIsEqualOrSubFolder testcase.
- Add SHGetPathCchFromIDListW as an
  extension of SHGetPathFromIDListW.
CORE-19278
2023-11-29 22:50:01 +09:00
Hermès Bélusca-Maïto
d0e1d36009
[SDK:LIB] Import PathCch* functions from Wine (#5842)
CORE-12686

Isolate PathCch* functions from Wine implementation in kernelbase
(which are mixed with a ton of unrelated stuff).

These functions are compiled into a pathcch.lib library, similarly
to the one in the official MS PSDK. Excepting that here, their actual
implementation is in the library. This contrasts with the one in the
MS PSDK, which is an import library to an apiset DLL.

The pathcch.h header is an original one, that contains SAL annotations
and descriptive parameter names, based on the MinGW and MS PSDK headers.
Wine's header was not used as it is poor and incomplete.

Co-authored-by: Katayama Hirofumi MZ <katayama.hirofumi.mz@gmail.com>
2023-11-26 13:43:15 +01:00
Katayama Hirofumi MZ
9d0b6f3185 [IMM32][SDK] Implement CtfImmSetCiceroStartInThread
- Add CtfImmSetCiceroStartInThread function.
- Add its prototype to <imm32_undoc.h>
- Modify imm32.spec.

CORE-19268
2023-11-26 08:58:59 +09:00
Katayama Hirofumi MZ
3b2fdc56bd
[IMM32][SDK][NTUSER][IMM32_WINETEST] Add CtfImmGenerateMessage (#6037)
Implementing advanced text service...

- Add CtfImmGenerateMessage function.
- Modify imm32.spec.
- Move TRANSMSG, TRANSMSGLIST etc. in
  win32ss/include/ntuser.h to <immdev.h>.
- Move win32ss/include/imetable.h to
  sdk/include/reactos/imetable.h.
- Move dll/win32/imm32/CtfImeTable.h to
  sdk/include/reactos/CtfImeTable.h.
- Fix build failure of imm32_winetest due
  to TRANSMSG redefinition.

CORE-19268
2023-11-25 22:46:00 +09:00
Katayama Hirofumi MZ
bd06299059
[IMM32][SDK] Implement IME Soft Keyboard Type T1 (#6021)
- Rename version.rc as imm32.rc.
- Add resource.h and t1keys.h.
- Add some resource bitmaps.
- Modify <immdev.h>.

Test:
Press Ctrl+Alt+comma on FreeCJ2004.

NOTE: There's a visual bug in PatBlt with negative values.
CORE-19268
2023-11-24 23:02:19 +09:00
Hermès Bélusca-Maïto
c77a5ff99b
Revert my last commits that break build.
Revert "[PSDK][AFD][VGADDI] Further build and MS PSDK compatibility fixes."
This reverts commit 99efc2ae50.

Revert "[PSDK] Sync winresrc.h with wine-8.20"
This reverts commit 3e83562aa7.

Revert "[OSK][PROGMAN] Fix resource file build."
This reverts commit 84e4ad0a82.

Revert "[PSDK] Use the new .rh files in winresrc.h"
This reverts commit f6fb7c48c9.
2023-11-23 17:20:47 +01:00
Hermès Bélusca-Maïto
99efc2ae50
[PSDK][AFD][VGADDI] Further build and MS PSDK compatibility fixes.
- windows.h:
  * should define _WINDOWS_ and _INC_WINDOWS instead of _WINDOWS_H
  * include winresrc.h if RC_INVOKED and not NOWINRES (Wine also agrees
    with that)
  * also, some .h included from there should _not_ be included if their
    respective NO*** flags are defined.

- batclass.h: Use correct _WINDOWS_ guard.

- winsnmp.h:
  * should define _INC_WINSNMP instead of _WINSNMP_H
  * use _INC_WINDOWS instead of _WINDOWS_H

- afd.h, vgaddi.h: Use the correct guards.

- winnt.rh: Define the (SUB)LANG_* exactly as they are in the winnt.h,
  otherwise we get macro redefinition compile errors.

NOTE: Ideally these .rh files should be auto-generated from their
corresponding .h files.

- afxres.h: Do not include the whole windows.h, but instead, only
  the winres.h file, and only if RC_INVOKED is defined.

NOTE: Both afxres.h and winres.h do not really belong to the PSDK,
but belong instead to MFC. The reason why we have them here is twofold:

1. Wine used to have also winres.h (from where we got ours). This is
   because the .rc resource files of some non-MFC modules were generated
   with Visual Studio, which always includes afxres.h for these, and the
   solution was to use a slightly less MFC-specific header: winres.h
   (Wine commit cb08c82244673f26842e7a0766de90f091b5a493).
   However, this winres.h has been since removed from Wine tree
   (Wine commit 197f4059ab2af5f13f9c56faa26e3b4af902f869).

2. Few of our modules either use afxres.h or winres.h in their resource
   files, and we still want to be able to compile them.
2023-11-23 16:26:30 +01:00
Hermès Bélusca-Maïto
3e83562aa7
[PSDK] Sync winresrc.h with wine-8.20
It is also compatible with MS PSDK file.

NOTE: I have observed that at least one .rh file (commctrl.rh) we have
from Wine, is not yet fully compatible with its MS PSDK counterpart
(for example it misses the TBSTYLE_* defines).
2023-11-23 16:25:35 +01:00
Hermès Bélusca-Maïto
f6fb7c48c9
[PSDK] Use the new .rh files in winresrc.h 2023-11-23 13:04:32 +01:00
Hermès Bélusca-Maïto
9384e742eb
[PSDK] Import commctrl.rh, dde.rh, winnt.rh from wine-8.20 2023-11-23 12:45:55 +01:00
Hermès Bélusca-Maïto
1a3c479b62
[PSDK] Make winuser.rh more compatible with the one from MS PSDK
Note that this file is already in sync with wine-8.20

NOWINMESSAGES, NOWINSTYLES, NOCLIPBOARD, NOMENUS, NOSYSCOMMANDS,
OEMRESOURCE and NOICONS #ifndef guards should not be present in the
.rh file, contrary to the .h file.

However, #ifndef NONCMESSAGES guard should be present.

Finally, remove the useless SC_SIZE redefinition
("At least HP-UX defines it in /usr/include/sys/signal.h" -- like,
what the hell, we are developing ReactOS...)
2023-11-23 12:44:50 +01:00
Hermès Bélusca-Maïto
072965eb0a
[PSDK] winuser.h: Enclose the OBM/OCR/OIC defines in OEMRESOURCE guard (see also winuser.rh) 2023-11-22 15:46:19 +01:00
Hermès Bélusca-Maïto
0e88f0485c
[PSDK][WIN32SS] Fix WINNT in ddraw.h; remove NT_BUILD_ENVIRONMENT usage
Keep compatibility with MS PSDK ddraw.h file by using WINNT instead of
_WINNT_ in the preprocessor conditional test.
Incidentally this allows also removing those #define NT_BUILD_ENVIRONMENT
in the win32ss modules.

See commit 5fcfaf2e1 (r42346).
2023-11-22 15:46:06 +01:00
Hermès Bélusca-Maïto
9578bae858
[PSDK] Minor cleanup and fixes in headers
- Remove nonsensical XFree86 stuff;
- Add missing #ifndef NORESOURCE around RT_* defines.
2023-11-21 22:23:55 +01:00
Serge Gautherie
5a0cd3743e
[WIDL] CMakeLists.txt: Remove an obsolete comment (#6016)
Addendum to 8184186 (r55855).
2023-11-20 16:07:46 +01:00
Justin Miller
516ccad340
[NTOS:KE][HALX86] Implement AP startup code (#5879)
Co-authored-by: Victor Perevertkin <victor.perevertkin@reactos.org>

Introduce the initial changes needed to get other processors up and into kernel mode. 
This only supports x86 as of now but is the first real step towards using other system processors.
2023-11-19 15:51:33 -08:00
George Bișoc
f3141fb29e
[NTOS:CM] Implement support for alternate registry hives
Sometimes repairing a broken hive with a hive log does not always guarantee the hive
in question has fully recovered. In worst cases it could happen the LOG itself is even
corrupt too and that would certainly lead to a total unbootable system. This is most likely
if the victim hive is the SYSTEM hive.

This can be anyhow solved by the help of a mirror hive, or also called an "alternate hive".
Alternate hives serve the purpose as backup hives for primary hives of which there is still
a risk that is not worth taking. For now only the SYSTEM hive is granted the right to have
a backup alternate hive.

=== NOTE ===

Currently the SYSTEM hive can only base upon the alternate SYSTEM.ALT hive, which means the
corresponding LOG file never gets updated. When time comes the existing code must be adapted
to allow the possibility to use .ALT and .LOG hives simultaneously.
2023-11-19 20:44:29 +01:00
George Bișoc
279f8f8864
[CMLIB] Fix the bin during hive initialization from memory if it's corrupt
As we iterate over the chunk hive data pointer for hive bins that we are going
to enlist, we might encounter one or several bins that would get corrupted
during a premature abortion of a registry writing operation such as due to
a power outage of the system, hardware malfunction, etc.

Corruption at the level of hive bins is nasty because they contain actual cell
data of registry information such as keys, values etc. Assuming a bin is corrupt
in part we can fix it by recovering some of the bin properties that, theoretically,
could be fixed -- namely the signature, size and offset.

For size and offset we are more or less safe because a bin typically has a size
of a block, and the offset is the coordinate index of where a hive bin should lay at.
2023-11-19 20:44:29 +01:00
George Bișoc
fa80176a62
[FREELDR][HACK] Temporarily disable registry recovery code for AMD64
The newly implemented code for registry recovery makes the FreeLdr binary to grow
in size, to the point that it would BSOD because the PE image is too big.

For now we have to temporarily disable any of the newly added code, until
either FreeLdr is split into a basic PE bootloader image itself and a
"FreeLdrlib" that is used by the PE image to access various bootloader APIs
or another proper solution is found.
2023-11-19 20:44:28 +01:00
George Bișoc
4db1b0fb62
[SDK][CMLIB] Purge volatile data of registry in a proper way with CmCheckRegistry
Thanks to CmCheckRegistry, the function can perform volatile data purging upon boot which this removes old hacky CmPrepareHive code. This also slightly refactors HvInitialize making it more proper.
2023-11-19 20:44:28 +01:00
George Bișoc
cc63d8f4a2
[SDK][CMLIB] Implement log transaction writes & Resuscitation
=== DOCUMENTATION REMARKS ===

This implements (also enables some parts of code been decayed for years) the transacted writing of the registry. Transacted writing (or writing into registry in a transactional way) is an operation that ensures the successfulness can be achieved by monitoring two main points.
In CMLIB, such points are what we internally call them the primary and secondary sequences. A sequence is a numeric field that is incremented each time a writing operation (namely done with the FileWrite function and such) has successfully completed.

The primary sequence is incremented to suggest that the initial work of syncing the registry is in progress. During this phase, the base block header is written into the primary hive file and registry data is being written to said file in form of blocks. Afterwards the seconady sequence
is increment to report completion of the transactional writing of the registry. This operation occurs in HvpWriteHive function (invoked by HvSyncHive for syncing). If the transactional writing fails or if the lazy flushing of the registry fails, LOG files come into play.

Like HvpWriteHive, LOGs are updated by the HvpWriteLog which writes dirty data (base block header included) to the LOG themselves. These files serve for recovery and emergency purposes in case the primary machine hive has been damaged due to previous forced interruption of writing stuff into
the registry hive. With specific recovery algorithms, the data that's been gathered from a LOG will be applied to the primary hive, salvaging it. But if a LOG file is corrupt as well, then the system will perform resuscitation techniques by reconstructing the base block header to reasonable values,
reset the registry signature and whatnot.

This work is an inspiration from PR #3932 by mrmks04 (aka Max Korostil). I have continued his work by doing some more tweaks and whatnot. In addition to that, the whole transaction writing code is documented.

=== IMPORTANT NOTES ===

HvpWriteLog -- Currently this function lacks the ability to grow the log file size since we pretty much lack the necessary code that deals with hive shrinking and log shrinking/growing as well. This part is not super critical for us so this shall be left as a TODO for future.

HvLoadHive -- Currently there's a hack that prevents us from refactoring this function in a proper way. That is, we should not be reading the whole and prepare the hive storage using HvpInitializeMemoryHive which is strictly used for HINIT_MEMORY but rather we must read the hive file block by block
and deconstruct the read buffer from the file so that we can get the bins that we read from the file. With the hive bins we got the hive storage will be prepared based on such bins. If one of the bins is corrupt, self healing is applied in such scenario.

For this matter, if in any case the hive we'll be reading is corrupt we could potentially read corrupt data and lead the system into failure. So we have to perform header and data recovery as well before reading the whole hive.
2023-11-19 20:44:27 +01:00
George Bișoc
f33da480af
[SDK][CMLIB] Implement CmCheckRegistry and validation private helpers
CmCheckRegistry is a function that provides the necessary validation checks for a registry hive. This function usually comes into action when logs have been replayed for example, or when a registry hive internals have changed such as when saving a key, loading a key, etc.

This commit implements the whole Check Registry infrastructure (cmcheck.c) in CMLIB library for ease of usage and wide accessibility across parts of the OS. In addition, two more functions for registry checks are also implemented -- HvValidateHive and HvValidateBin.

Instead of having the CmCheckRegistry implementation in the kernel, it's better to have it in the Configuration Manager library instead (aka CMLIB). The benefits of having it in the library are the following:

- CmCheckRegistry can be used in FreeLdr to fix the SYSTEM hive
- It can be used on-demand in the kernel
- It can be used for offline registry repair tools
- It makes the underlying CmCheckRegistry implementation code debug-able in user mode

CORE-9195
CORE-6762
2023-11-19 20:44:27 +01:00
George Bișoc
54c552392f
[SDK][CMLIB] Implement self-heal registry helpers
This implements cmheal.c file which provides the basic registry self-heal infrastructure needed by the public CmCheckRegistry function. The infrastructure provides a range of various self-heal helpers for the hive, such as subkey, class, values and node healing functions.
2023-11-19 20:44:27 +01:00
George Bișoc
586bea138e
[CMLIB] Add STATUS_INVALID_PARAMETER and STATUS_REGISTRY_IO_FAILED status codes
Add these NTSTATUS codes in the CMLIB library. STATUS_INVALID_PARAMETER will be used mostly for HvInitialize function, STATUS_REGISTRY_IO_FAILED for whatever routines that deal with reading or writing into a hive file.
2023-11-19 20:44:26 +01:00
George Bișoc
99fab7b905
[SDK][CMLIB] Declare some BootType and BootRecover identifiers & Miscellaneous Stuff
=== DOCUMENTATION REMARKS ===

HBOOT_TYPE_REGULAR and HBOOT_TYPE_SELF_HEAL are boot type values set up by the CMLIB library (for the BootType field respectively). HBOOT_TYPE_REGULAR indicates a normal system boot whereas HBOOT_TYPE_SELF_HEAL indicates the system boot is assisted within self healing mode.

Whether the former or the latter value is set it's governed by both the kernel and the bootloader. The bootloader and the kernel negotiate together to determine if any of the registry properties (the hive, the base block, the registry base, etc) are so severed from corruption or not. In extreme cases where
registry healing is possible, the specific base block of the damaged hive will have its flags marked with HBOOT_TYPE_SELF_HEAL. At this point the boot phase procedure is orchestrated since the boot phase no longer goes on the default path but it's assisted, as I have already said above.

HBOOT_NO_BOOT_RECOVER, HBOOT_BOOT_RECOVERED_BY_HIVE_LOG and HBOOT_BOOT_RECOVERED_BY_ALTERNATE_HIVE on the other hand are identifiers for the BootRecover field of the BASE_BLOCK header structure. These are used exclusively by FreeLdr to tell the kernel if the bootloader recovered the SYSTEM hive or not. In case where the bootloader did recover the SYSTEM hive,
the kernel will perform a flush request on the dirty data down to disk. The (almost) worse case FreeLdr could not repair the main hive by applying log data, it will load the alternate mirror version of the hive.

In addition to that, declare other miscellaneous CMLIB identifiers for log transaction writes purposes.
2023-11-19 20:44:23 +01:00
Serge Gautherie
d27ec14822
[PSDK][SHELLBTRFS] Get rid of FILE_INFO_BY_HANDLE_CLASS.MaximumFileInfoByHandlesClass (#6003)
Follow-up to commit 455f330 (see PR #5802).
'MaximumFileInfoByHandlesClass' was our typo.
2023-11-19 19:42:18 +01:00
Timo Kreuzer
e3f204e228 [CMAKE] Remove "/Gy" option from ML
Reason: VS solution builds pass the compiler options to the assembler. These are usually ignored and result in a warning only, but ML of the latest VS supports /Gy (function level linking), but that requires all functions to be declared with "PROC" and otherwise results in an error.
2023-11-19 09:19:33 +02:00
Timo Kreuzer
455f330775 [KERNEL32_VISTA] Sync GetFileInformationByHandleEx with wine head 2023-11-18 17:53:42 +02: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
Hermès Bélusca-Maïto
161eb5d375
[CRT] dbgrpt.cpp: Fix buffer sizes in the *nprintf functions (#5678)
Sizes are in number of chars; use _countof() instead of hardcoding
them in the functions.
2023-11-14 12:24:00 +01:00
Hermès Bélusca-Maïto
f49e213943
[CRT][MSVCRT] Implement _CrtDbgReport(W)V and redefine _CrtDbgReport(W) around those (#5678)
Also add the internal _VCrtDbgReportA and _VCrtDbgReportW functions listed in
https://learn.microsoft.com/en-us/cpp/c-runtime-library/internal-crt-globals-and-functions?view=msvc-170

CORE-11835, CORE-15517
2023-11-14 12:23:51 +01:00
Whindmar Saksit
7fb91d98f9
[SHELL32] Add support for more registry verb flags and CMF flags (#5785)
- Adds support for registry controlled menu separators and the documented
  values to turn off verbs.
- Adds support for CMF_OPTIMIZEFORINVOKE, CMF_NODEFAULT, CMF_DONOTPICKDEFAULT,
  CMF_EXPLORE and CMF_DISABLEDVERBS.

Bugs fixed:

- A verb with "Extended" set in the registry could cause the menu to invoke
  the incorrect command! This happened because skipping InsertMenuItemW
  caused InvokeCommand to use the wrong index with m_StaticEntries.
- Uses IS_INTRESOURCE instead of HIWORD to check if something is a string
  (only matters on 64-bit).
- TryToBrowse leaking a PIDL when calling ILCombine.

Notes:

- This PR introduces the RosGetProcessEffectiveVersion() helper function
  discussed in chat.
- Relaxed FAILED_UNEXPECTEDLY to FAILED in two places because IContextMenu
  cannot assume that it has a site that leads to IShellBrowser.
2023-11-13 16:21:13 +01:00
Whindmar Saksit
c6ec8d924e
[ATL] Added CComPtr.CoCreateInstance helper methods (#5905) 2023-11-13 11:03:05 +01:00
Hermès Bélusca-Maïto
ee11747527
[CRT] Fix "wcsat_s" typo... 2023-11-11 21:30:09 +01:00
Timo Kreuzer
6ca8eb5c1e [CMAKE] Update baseaddress cmake files 2023-11-10 19:20:24 +02:00
Timo Kreuzer
7377f14339 [GEN_BASEADDRESS] Add handling of 64 bit builds 2023-11-10 19:20:24 +02:00
Timo Kreuzer
9cc4d8994b [CMAKE] Use baseaddress64.cmake for all 64 bit builds
- Rename baseaddress_msvc_x64.cmake to baseaddress64.cmake
- Include it for all compilers and 64 bit architectures
2023-11-10 19:20:24 +02:00
Timo Kreuzer
2b7246fd3c [CMAKE] Add support for "IMAGEBASE default" and use it for test/sample dlls 2023-11-10 19:20:24 +02:00
Timo Kreuzer
58f1201eae [FUSION] Provide baseaddress for fusion_1_1 and fusion_2_0
These DLLs are also named fusion.dll. Give them the same baseaddress as fusion.dll
2023-11-10 19:20:24 +02:00
Timo Kreuzer
2245dd78f5 [ASMPP] Improve handling of rip relative addressing 2023-11-10 19:20:24 +02:00
Timo Kreuzer
a34f1ed03c [CRT] Make ML based asm code GAS compatible
Our transpiler asmpp cannot handle rip relative addressing for "[symbol]".
2023-11-10 19:20:24 +02:00
Timo Kreuzer
d4993c67cd [CRT] Fix parameter check for _memicmp on NT 6+
Fixes a crash in msvcrt_winetest:string
2023-11-10 19:19:22 +02:00
Timo Kreuzer
840dfdc3a1 [CRT] Add parameter check to _mbscmp
Fixes crash in msvcrt_winetest::string
2023-11-10 19:19:22 +02:00
Timo Kreuzer
86f98baaf8 [CRT][MSVCRT] Import _gcvt and _gcvt_s from wine and export _gcvt_s on Vista+
Fixes a crash in msvcrt_winetest string
2023-11-10 19:19:22 +02:00
Timo Kreuzer
51b5d846e9 [CRT] Define _NTSYSTEM_ in 2 files to force using import-stubs
This prevents the code from linking to __imp_*, which would pull in the symbol from the import library (e.g. kernel32), which creates problems with the GNU linker, which doesn't like to have the import and a static definition at the same time.
2023-11-10 19:00:41 +02:00
Andrei Miloiu
d7b7d36721
[NETEVENT][MC] Update neteventmsg.mc (#5928) 2023-11-08 11:16:58 +00:00
Andrei Miloiu
46f67b1970
Update net_msg.mc (#5926) 2023-11-08 11:13:17 +00:00
Timo Kreuzer
dfcf07b825 [NTOS:KE/x64] Remove GCC vs ML hack 2023-11-07 23:16:50 +02:00
Katayama Hirofumi MZ
0ae6a509b0
[SHLWAPI][SDK] Implement IContextMenu_Invoke (#5856)
- Modify shlwapi.spec.
- Add dll/win32/shlwapi/utils.cpp.
- Implement IContextMenu_Invoke function.
- Add it to <shlwapi_undoc.h>.
CORE-19278
2023-11-05 21:45:08 +09:00
Joachim Henze
7f80d5ee79 [CMLIB] Revert previous commit to avoid future merges of other devs
because George is having an open Draft PR since July 2022,
which might also touch this file on master in some years.
And it ofc is easier for me to revert my work now, then for him to
go through the great lengths of merging his work then.
2023-11-05 09:55:03 +01:00
Joachim Henze
f6de3881ca
[CMLIB] UNIMPLEMENTED_ONCE less hand-knitted (#5889)
allows to get rid of static var PrintCount, at least visually in the code
2023-11-05 09:12:49 +01:00
Katayama Hirofumi MZ
4aa1bcb72b
[IMM32][SDK] Implement software keyboard, Part 1 (#5865)
- Add dll/win32/imm32/softkbd.c source file.
- Half-implement ImmCreateSoftKeyboard function.
- Move ImmShowSoftKeyboard, and ImmDestroySoftKeyboard functions.
- Modify ImmCreateSoftKeyboard prototype.
CORE-19268
2023-11-04 05:58:17 +09:00
Katayama Hirofumi MZ
eb4d13c823
[IMM32][SDK] Implement CtfImm(Hide,Restore)ToolbarWnd (#5863)
- Add Imm32GetFn helper function.
- Implement CtfImmHideToolbarWnd and
  CtfImmRestoreToolbarWnd functions.
- Add them to <imm32_undoc.h>.
CORE-19268
2023-11-03 22:45:51 +09:00
Katayama Hirofumi MZ
dabb3f4d61
[IMM32][SDK] Add CtfAImmIsIME, CtfImmSetAppCompatFlags etc. (#5862)
- Add CtfAImmIsIME, CtfImmIsCiceroStartedInThread and CtfImmSetAppCompatFlags functions.
- Implement CtfImmDispatchDefImeMessage function.
- Modify imm32.spec.
- Add the prototypes of ImmGetAppCompatFlags, CtfAImmIsIME, CtfImmIsCiceroStartedInThread,
  CtfImmSetAppCompatFlags, and CtfImmDispatchDefImeMessage into <imm32_undoc.h>.
CORE-19268
2023-11-02 08:16:12 +09:00
Katayama Hirofumi MZ
b3194e320c
[IMM32][SDK] Add CtfAImmActivate/Deactivate functions (#5835)
- Add dll/win32/imm32/CtfImeTable.h for CTF
  IME functions.
- Implementing Imm32CheckAndApplyAppCompat,
  Imm32LoadCtfIme, and
  Imm32EnumCreateCtfICProc helper functions.
- Add CtfAImmActivate and CtfAImmDeactivate
  functions.
- s/CI_TFSDISABLED/CI_TSFDISABLED/
CORE-19268
2023-10-31 22:45:28 +09:00
Katayama Hirofumi MZ
8a049d0b68
[SHELL32][SDK] Implement CopyStreamUI (#5848)
- Modify shell32.spec.
- Add CopyStreamUI prototype to <undocshell.h>.
CORE-19278
2023-10-31 22:32:02 +09:00
Serge Gautherie
60b0afc3af
[BDASUP][KMIXER][MMIXER][STREAM] Replace meaningless YDEBUG (#5818)
bdasup: Addendum to 40c15ec (r46632).
kmixer: Addendum to 3e489bf (r42143).
mmixer: Addendum to c42d9f2 (r44872).
stream: Addendum to 4a0debf (r41662).
Serge plans a follow up that will remove all other remaining YDEBUG in the source tree.
The ones covered here he considered to be the most trivial ones.
2023-10-31 12:04:24 +00:00
Katayama Hirofumi MZ
128e7f5aea
[SHELL32][SDK] Implement SHStartNetConnectionDialogA (#5847)
and add SHStartNetConnectionDialog prototype to <shlobj.h>.
2023-10-28 22:29:05 +09:00
Katayama Hirofumi MZ
a52c713755 [SHELL32][SDK] Follow-up of #5840 (ad5df2d)
Fix the parameters of Activate_RunDLL.
2023-10-28 21:31:11 +09:00
Katayama Hirofumi MZ
ad5df2d199
[SHELL32][SDK] Implement Activate_RunDLL (#5840)
- Add Activate_RunDLL function implementation.
- Add Activate_RunDLL prototype to <undocshell.h>.
2023-10-28 14:56:27 +09:00
Katayama Hirofumi MZ
2ccdd87809
[SHELL32][SDK] Implement ShortSizeFormatW (#5829)
- Implement ShortSizeFormatW.
- Add ShortSizeFormatW prototype into <undocshell.h>.
- Modify shell32.spec.
2023-10-28 14:55:25 +09:00
Katayama Hirofumi MZ
81e936486e
[SHELL32] Implement ExtractIconResInfoA (#5846)
- Add ExtractIconResInfoA implementation.
- Add ExtractIconResInfo prototype to <undocshell.h>.
2023-10-28 11:38:29 +09:00
Katayama Hirofumi MZ
9dfb3e8e05
[SHELL32][SDK] Implement PathIsSlowA and SHSetFolderPathA (#5841)
- Implement PathIsSlowA and SHSetFolderPathA functions.
- Add PathIsSlow and SHSetFolderPath prototypes to <shlobj.h>.
- Fix some <shlobj.h>'s bugs.
- Improve SHOpenPropSheetA function.
2023-10-28 09:59:12 +09:00
Katayama Hirofumi MZ
dcc9a2d8f3
[SHELL32][SDK] Implement SHOpenPropSheetA (#5830)
- Add SHOpenPropSheetA and
  SHOpenPropSheetW prototypes to <shlobj.h>.
- Implement SHOpenPropSheetA function.
2023-10-27 19:34:02 +09:00
Katayama Hirofumi MZ
995f56d1d3
[SHELL32][SDK] Implement IsSuspendAllowed (#5831)
- Add IsShutdownAllowed helper function.
- Add IsSuspendAllowed prototype to
  <undocshell.h>.
- Implement IsSuspendAllowed function.
2023-10-26 23:27:45 +09:00
Timo Kreuzer
d9cb169920 [XDK] Fix / improve some definitions 2023-10-17 13:02:30 +03:00
Timo Kreuzer
7b38f80119 [STLPORT] Make stl thread-safe
Define _STLP_THREADS to make stl thread safe.
Also remove defined(__BUILDING_STLPORT) from the preprocessor conditions for which STLPInterlockedExchangePointer is defined, because that function is used in _threads.h, which can get included by apps using the stl through stl headers.
2023-10-17 13:01:24 +03:00
Timo Kreuzer
40d444919e [SDK] Move definition of MyInt128 into stubs.h 2023-10-17 09:41:18 +03:00
Timo Kreuzer
a27b8009e0 [SDK] Do not include windef.h into stubs.h
This prevents pulling in function declarations that are incompatible with the generated stubs.
2023-10-17 09:41:18 +03:00
Timo Kreuzer
3b7c7d8e68 [CMAKE] Don't use precompiled headers for autogenerated stub files 2023-10-17 09:41:18 +03:00
Katayama Hirofumi MZ
8669679499
[ATL][ATL_APITEST] Add some missing CRect methods (#5800)
- Strengthen "atltest.h".
- Strengthen atl_apitest:atltypes testcase.
- Implement some missing CRect methods.
2023-10-16 21:57:57 +09:00
Katayama Hirofumi MZ
d955b9321b
[ATL] s/throw()/noexcept/ (#5799)
Mechanically replace throw() with noexcept.
2023-10-16 15:40:17 +09:00
Hermès Bélusca-Maïto
9021a14f4a
[NDK] Fix weird "ntstatus.s" statement (#5771)
Spotted by Serge Gautherie.
2023-10-08 17:11:25 +02:00
Ratin Gao
be5c889cdf [NTDLL:LDR] SAL improvements and fixes
- Convert some notations to SAL2
- "Name" parameter in LdrGetProcedureAddress/LdrpGetProcedureAddress should be optional
- "DllCharacteristics" parameter in LdrGetDllHandle should be optional
2023-10-04 12:26:18 +03:00
Timo Kreuzer
410b1030c0 [NTOS:KE/x64] Implement detection of more KF_* feature flags
- Detect KF_SSSE3, KF_SSE4_1, KF_SSE4_2, KF_RDRAND, KF_BRANCH, KF_SLAT, KF_GENUINE_INTEL, KF_AUTHENTICAMD, KF_ACNT2, KF_SMEP, KF_SMAP, KF_RDWRFSGSBASE, KF_XSAVEOPT, KF_XSAVES, KF_HUGEPAGE, KF_RDTSCP
2023-10-03 19:45:44 +03:00
Timo Kreuzer
6048ebeff9 [SDK] Add CPUID and MSR definitions for x86/x64
- Import definitions from edk2 (see https://github.com/tianocore/edk2/tree/master/MdePkg/Include/Register)
- Add additional unions as well as AMD SVM CPUID
2023-10-03 19:45:44 +03:00
Timo Kreuzer
70f6ed8ee3 [NTOS:KE/x64] Improve CPU feature detection
- Use 64 bit feature flags (with a hack in the PRCB)
- Improve setting up SharedUserData->ProcessorFeatures
2023-10-03 19:45:44 +03:00
Timo Kreuzer
47c1dcd023 [NDK] Update kernel feature bits constants
- Move them into architecture specific headers.
- Add missing constants based on https://www.geoffchappell.com/studies/windows/km/ntoskrnl/structs/kprcb/featurebits.htm
- Yes, they are 64 bits
2023-10-03 19:45:44 +03:00
Timo Kreuzer
b66441d581 [XDK] Add missing PF_* processor feature definitions 2023-10-03 19:45:44 +03:00
Timo Kreuzer
6133cc016d [CRT/x64] Fix a bug in __C_specific_handler
Fixes crash of compiler_apitest pseh
2023-09-26 18:02:21 +03:00
Timo Kreuzer
df053d4e43 [RTL] Improve usage of absolte vs self-relative security descriptors
- RtlpQuerySecurityDescriptor: Change argument type of first parameter from PISECURITY_DESCRIPTOR to PSECURITY_DESCRIPTOR, since it handles both absolute and self-relative SDs.
- RtlMakeSelfRelativeSD: rename first parameter from AbsoluteSD to SecurityDescriptor, since it handles both absolute and self-relative SDs.
- SepGetGroupFromDescriptor/SepGetOwnerFromDescriptor/SepGetDaclFromDescriptor/SepGetSaclFromDescriptor: Change parameter type from PVOID to PSECURITY_DESCRIPTOR for clarity.
2023-09-26 18:01:45 +03:00
Katayama Hirofumi MZ
d1e9fe13de
[SHELL32][SDK] Implement SHTestTokenPrivilegeW (#5725)
and modify shell32.spec.
2023-09-26 07:36:07 +09:00
Katayama Hirofumi MZ
cc6e444ceb
[SHELL32][SDK] Implement SHInvokePrivilegedFunctionW (#5718)
Add it to <undocshell.h>. Modify shell32.spec.
2023-09-24 07:11:38 +09:00
Katayama Hirofumi MZ
4407e0aefa
[SHELL32][SDK] Implement SHOpenEffectiveToken and SHGetUserSessionId (#5713)
- Implement SHOpenEffectiveToken and
  SHGetUserSessionId functions.
- Add them to <undocshell.h>.
2023-09-21 22:44:20 +09:00
Hermès Bélusca-Maïto
56417bfb93
[RTL] Satisfy the RtlpTimeoutDisable condition when waiting for critical sections (#4089) 2023-09-21 13:33:28 +02:00
Hermès Bélusca-Maïto
dff55c9d33
[NTDLL][RTL] Move RtlpTimeoutDisable definition to the RTL (#4089) 2023-09-21 13:33:27 +02:00
Hermès Bélusca-Maïto
903a3dc622
[NTDLL][RTL] Fix english typo in (internal) function name. 2023-09-21 13:33:18 +02:00
Katayama Hirofumi MZ
29e1a41d07
[SHELL32][SDK] Implement SHGetShellStyleHInstance (#5707)
Co-authored-by: Oleg Dubinskiy <oleg.dubinskij30@gmail.com>
This PR supersedes PR #3851.
- Implement SHGetShellStyleHInstance function.
- Add SHGetShellStyleHInstance prototype to <shlobj.h>.
CORE-17707
2023-09-21 09:22:33 +09:00
Katayama Hirofumi MZ
6c55a3aa2a
[SHELL32][SHELL32_APITEST][SDK] Implement Int64ToString (#5706)
- Implement Int64ToString and LargeIntegerToString functions.
- Add Int64ToString and LargeIntegerToString prototypes to <shellundoc.h>.
- Add Int64ToString testcase.
- I found a bug in GetNumberFormat.LeadingZero.

http://undoc.airesoft.co.uk/shell32.dll/Int64ToString.php
http://undoc.airesoft.co.uk/shell32.dll/LargeIntegerToString.php
2023-09-21 09:14:40 +09:00
Jose Carlos Jesus
02883d1c16
[SDK:RTL] RtlpCallQueryRegistryRoutine(): Correctly set SpareData and SpareLength (#5466)
SpareData and SpareLength need to be calculated correctly, as they are used
later in that function as well.
This allows to not overwrite Source UString when writing to Destination UString.

Fixes the problem described in the following JIRA issue, where services could
not start when installing ReactOS in a very-long-named directory.

CORE-18988
2023-09-20 18:06:06 +02:00
Katayama Hirofumi MZ
ebfec38cd1
[ATL][ATL_APITEST] Independent ReactOS ATL (RATL) support (#5657)
This is an attempt to make ReactOS ATL (RATL) independent.
https://github.com/katahiromz/RATL
CORE-19153
2023-09-20 12:02:33 +09:00
Johannes Thoma
490fbfb2c5
[DDK] wsk header: Add WSKAPI to exported functions. (#5687)
Names need decoration (stdcall) in order to be linked.

When using the wsk.h header functions exported therein should
be WSKAPI (which enforces the stdcall calling convention). Linking
would later fail because stdcall functions are named differently in
the object code.
2023-09-19 18:28:19 +03:00
Katayama Hirofumi MZ
8d74bc4b46 [ATL] CImage: Follow-up to #5702 (5da3ed6)
Fix the return value of CImage::Detach. CORE-19008
2023-09-20 00:04:45 +09:00
Katayama Hirofumi MZ
5da3ed638b
[ATL] Fix CImage members (#5702)
- Delete m_ds and m_bm members from CImage.
- Add m_nWidth, m_nHeight, m_nPitch, m_nBPP,
  and m_pBits members.
CORE-19008
2023-09-19 22:19:03 +09:00
Katayama Hirofumi MZ
3fa90b539e
[ATL] Default value of dwInitParam is zero instead of NULL (#5703)
Fix warnings when dwInitParam was omitted at CDialogImpl::Create and/or CDialogImpl::DoModal.
2023-09-19 17:28:33 +09:00
Justin Miller
6bbf09b6a5
[WINESYNC][SDK][DWMAPI] Import DWMAPI from WINE 8-14 (#5594) 2023-09-18 07:30:44 -07:00
Katayama Hirofumi MZ
fd626dc163
[SHDOCVW] Implement MRU List for Shell Bag, Part 5 (#5691)
Follow-up to #5686. 
Implement CSafeMutex and CMruPidlList classes.
CORE-9283
2023-09-17 19:52:50 +09:00
Timo Kreuzer
d41a4030bc [CRT] Import parameter check for fclose from wine
Fixes advpack_apitest:DelNode crash.
2023-09-17 10:19:15 +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
Katayama Hirofumi MZ
ea5d2c5f7a
[MSPAINT][SDK] Add <ui/CWaitCursor.h> (#5680)
CORE-19094
2023-09-12 05:39:08 +09:00
Katayama Hirofumi MZ
85377ee3db
[SDK][CRT][MSVCRT] Implement _CrtSetReportMode and _CrtSetReportFile (#5662)
- Implement reporting to file.
CORE-11835, CORE-15517, ROSTESTS-386
2023-09-11 04:37:27 +09:00
Serge Gautherie
a1ee35bdb2 [NDK] mmtypes.h: Fix a copypasta in a comment 2023-09-10 13:30:11 +03:00
Katayama Hirofumi MZ
6b69202016
[ATL] CImage: Simplify GetBits/GetPixelAddress (#5671)
CORE-19008
2023-09-09 20:20:22 +09:00
Katayama Hirofumi MZ
97b64c45c6
[ATL][ATL_APITEST] CImage testcase should cover all formats (#5653)
Strengthen CImage testcase and improve CImage class.
ROSTESTS-387, CORE-19008
2023-09-09 08:42:55 +09:00
Hermès Bélusca-Maïto
fdeb169a27
[PSDK] Add missing PNP_VETO_TYPE PNP_VetoInsufficientRights enumerator. 2023-09-07 20:28:03 +02:00
Timo Kreuzer
8f6aaa8af6 [RTL][NTDLL] Implement and export RtlInitializeCriticalSectionEx 2023-09-07 08:36:48 +03:00
Timo Kreuzer
1d59cf43af [NTDLL_APITEST] Add tests for critical sections 2023-09-07 08:36:48 +03:00
Ratin Gao
f491d7cc99
[KERNEL32][RTL] Implement One-Time initialization API and improve RTL support (#5046)
* [KERNEL32][RTL] Implement One-Time initialization API and improve RTL support
2023-09-06 15:40:53 -07:00
Katayama Hirofumi MZ
eb6561bbc7 [ATL] atlimage.h: Replace throw() with noexcept
throw() is deprecated in C++17. CORE-19008
2023-09-05 09:12:01 +09:00
Katayama Hirofumi MZ
b68a3f329c
[ATL][ATL_APITEST] Implement CImageDC class (#5643)
- Use reference count for CImage::GetDC / CImage::ReleaseDC.
- Add CImageDC class.
- Delete modules/rostests/apitests/atl/CImage_WIP.txt.
CORE-19008
2023-09-05 09:03:32 +09:00
Katayama Hirofumi MZ
4814dfea01
[BROWSEUI][SDK] Half-implement CShellBrowser::GetPropertyBag (#5635)
- Implement CShellBrowser::GetPropertyBag
  a little by using SHGetViewStatePropertyBag.
- Add SHGetPathFromIDListWrapW prototype to
<shlwapi_undoc.h>.
CORE-9283
2023-09-03 12:09:55 +09:00
Katayama Hirofumi MZ
8dbb800358
[SHDOCVW][SDK] Implement MRU List for Shell Bag, Part 2 (#5634)
Follow-up to #5626.
- Implement CMruBase class.
- Add delay import of shell32.
- Add RegCreateKeyExWrapW prototype to <shlobj_undoc.h>.
CORE-9283
2023-09-03 09:42:10 +09:00
Katayama Hirofumi MZ
a93352fdaf [ATL] atlimage.h: Rename some members
Based on Doxygen analysis.
- s/m_hbmOld/m_hOldBitmap/
- s/m_hbm/m_hBitmap/
- s/m_bHasAlphaCh/m_bHasAlphaChannel/
- s/m_bIsDIBSec/m_bIsDIBSection/
- s/m_rgbTransColor/m_clrTransparentColor/
CORE-19008
2023-09-02 13:22:32 +09:00
Katayama Hirofumi MZ
58770200e7
[SHDOCVW][SDK][COM_APITEST] Implement MRU List for Shell Bag, Part 1 (#5626)
- Add mrulist.cpp source file.
- Add CMruBase, CMruLongList, CMruNode,
  and CMruPidlList classes with stub functions.
- Add CLSID_MruPidlList and CLSID_MruLongList.
- Add IMruDataList interface into <shlobj_undoc.h>.
- Add IID_IMruDataList and CLSID_MruLongList
  definitions into <shlguid_undoc.h>.
CORE-9283
2023-08-31 09:35:00 +09:00
Katayama Hirofumi MZ
29fbe60abe
[SHLWAPI][SDK] Implement SHGetViewStatePropertyBag Part 3 (#5615)
Follow-up to #5610.
- Add _EnsureWriteBag, _PruneMRUTree, _GetMRUSize and
  _GetMRUSlots helper functions.
- Add code into _GetMRUSlot, _FindNearestInheritBag, and Write.
- Add CLSID_MruPidlList and IID_IMruPidlList definitions into
  <shlguid_undoc.h>.
- Add IMruPidlList interface into <shlobj_undoc.h>.
CORE-9283
2023-08-28 07:16:11 +09:00
Katayama Hirofumi MZ
32669f6caa
[SHLWAPI][SHLWAPI_APITEST][SDK] Implement SHGetPerScreenResName (#5616)
CORE-9283
2023-08-26 16:46:51 +09:00
George Bișoc
33e6490532
[ADVAPI32] Implement AccessCheckByType and AccessCheckByTypeResultList 2023-08-25 14:09:14 +02:00
Timo Kreuzer
ce848e5c11 [CPPRT][CRT][MSVCRT] Move __CxxFrameHandler3 to crt and export it on NT6
Previously it was in cpprt, which is a support library for C++, containing functions that are not exported by msvcrt. But since Vista __CxxFrameHandler3 is exported by msvcrt. Therefore move it to crt, and to satisfy pre-Vista configurations, also add it to msvcrtex.
2023-08-23 20:43:53 +03:00
William Kent
4e3bf252d8
[MKISOFS] Silence prototype warnings (#5603)
mkisofs and its components uses K&R-style function definitions
to support very old compilers. Modern compilers consider K&R syntax
to be deprecated. Clang therefore emits a large number of warnings
over this.
2023-08-23 14:37:15 +02:00
Katayama Hirofumi MZ
21925d935c
[SHLWAPI][SDK] Implement SHGetViewStatePropertyBag Part 1 (#5605)
Follow-up to #5590.
- Add CViewStatePropertyBag class.
- Add SHGetViewStatePropertyBag definition.
- Add FreeViewStatePropertyBagCache function and
  use it in DllMain to free the cache.
CORE-9283
2023-08-23 15:00:07 +09:00
George Bișoc
cad780e17c
[SDK:RTL] Fix the ACE revision check in RtlpAddKnownObjectAce
Object ACEs are supported starting from Revision 4, the current code checks
if the revision is above Revision 4. An Object ACE has to be strictly set on that revision,
whereas Object ACLs can be of any revision starting from ACL_REVISION4.
2023-08-22 17:54:18 +02:00
George Bișoc
c175c4f47d
[SDK:RTL] Implement object type ACE validation checks
Write the necessary ACL validation code for ACEs whose types are ACCESS_ALLOWED_OBJECT_ACE_TYPE
or ACCESS_DENIED_OBJECT_ACE_TYPE. This ensures each created object type ACL has valid ACE
contents.
2023-08-22 17:54:18 +02:00
George Bișoc
8289de6ef7
[NTOS:SE] Cast the ACE to known ACE type variants on SepGetSidFromAce
ACCESS_DENIED_ACE_TYPE, ACCESS_ALLOWED_ACE_TYPE, SYSTEM_AUDIT_ACE_TYPE and
SYSTEM_ALARM_ACE_TYPE belong to the same commonly internal ACE type, aka KNOWN_ACE,
as each of these ACEs have the same structure field offsets.

The only difference are ACCESS_DENIED_OBJECT_ACE_TYPE and ACCESS_ALLOWED_OBJECT_ACE_TYPE
as they have their own internal ACE type variant, the KNOWN_OBJECT_ACE structure.

The general guideline is that public ACE structure variants have to be used elsehwere
such as in UM whilst the kernel has to use the internal known ACE type variants when possible.
2023-08-22 17:54:18 +02:00
George Bișoc
edcf3f5363
[NTOS:SE] Update the NT access check syscalls SAL2 annotations
The newly updated SAL2 annotations reflect those from Process Hacker.
Also these syscalls must have their function's status code checked, as
most of other Native syscalls have them checked.
2023-08-22 17:53:45 +02:00
Andriy Shevchenko
2ea03b5b22
[REACTOS] Fix typos in comments (#5591)
Fixing typos in code comments enhances code readability and comprehension for developers and collaborators.
2023-08-22 16:20:29 +03:00
Katayama Hirofumi MZ
a2d8e464c8
[SHLWAPI][SDK][SHELL32_APITEST][SHLWAPI_WINETEST] Property Bag on Desktop Upgrade (#5590)
- Add CDesktopUpgradePropertyBag class.
- Implement SHGetDesktopUpgradePropertyBag
  function.
CORE-9283
2023-08-22 12:01:20 +09:00
Timo Kreuzer
3a0b53386c [KERNEL32] Add CompareStringOrdinal from wine-3.21 2023-08-20 15:17:41 +03:00
Timo Kreuzer
d00d883a21 [RTL][NTDLL] Implement and export RtlCompareUnicodeStrings 2023-08-19 23:52:21 +03:00
Timo Kreuzer
c332b917dc [CRT] Reduce diff to wine-5.0 2023-08-19 23:50:52 +03:00
Timo Kreuzer
e04b796534 [WINESYNC]: crt is now in sync with wine-staging wine-5.0 2023-08-19 23:50:52 +03:00
winesync
1f8eda7853 [WINESYNC] msvcrt: Fix handling tryblocks inside current catch block on nested exception.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48335
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 6babdb5508bd2f1b659218483f5df76859898712 by Piotr Caban <piotr@codeweavers.com>
2023-08-19 23:50:52 +03:00
winesync
4df4baa391 [WINESYNC] msvcrt: Pass catch_func_nested_frame struct to call_catch_block.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 48a447c5eb238d673ce5db4eeacf3ba4c1a9da90 by Piotr Caban <piotr@codeweavers.com>
2023-08-19 23:50:52 +03:00
winesync
6c7dc46702 [WINESYNC] msvcrt: Pass catch_func_nested_frame struct to cxx_frame_handler.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id ea20974cdd7457715bf4d758818d03bff664f62b by Piotr Caban <piotr@codeweavers.com>
2023-08-19 23:50:52 +03:00
Timo Kreuzer
4b5a555161 [WINESYNC] Allow directories to be None 2023-08-19 23:50:52 +03:00
Katayama Hirofumi MZ
56d95154ee
[SHLWAPI][SHLWAPI_APITEST][SDK] INI file property bag (#5546)
- Add SHGetIniStringUTF7W and SHSetIniStringUTF7W functions.
- Add CIniPropertyBag class.
- Implement SHCreatePropertyBagOnProfileSection function.
CORE-9283
2023-08-19 11:22:55 +09:00
Katayama Hirofumi MZ
80153fc686
[ATL_APITEST][SDK] Fix failures of CImage testcase (#5567)
- Improve compatibility of CImage.
- Improve CImage testcase of atl_apitest.
- Improve CImage::BuildCodecFilterString.
CORE-19008
2023-08-18 20:34:33 +09:00
Katayama Hirofumi MZ
cf55034cdf
[SHLWAPI][SDK] Rewrite SHGet/SHSetIniStringW in C++ (#5561)
- Follow-up to #5547. Move SHGetIniStringW / SHSetIniStringW into propbag.cpp.
- Rewrite them in C++.
CORE-9283
2023-08-16 07:13:14 +09:00
Katayama Hirofumi MZ
485c03ad03
[ATL] Make CImage thread-safe (#5553)
- Add CInitGDIPlus subclass in CImage.
- Lock the CInitGDIPlus data by using a critical section.
- Add CImage::InitGDIPlus and use it.
CORE-19008
2023-08-14 20:45:37 +09:00
Timo Kreuzer
994d5e0ad1 [CRT] Make _controlfp_s portable 2023-08-11 19:00:42 +03:00
Timo Kreuzer
49da1cdbeb [NTDLL] Fix some vista exports
Make sure RtlRemovePrivileges gets compiled, when DLL_EXPORT_VERSION is 0x600+
Enable all existing functions from rtl_vista.
Hack CsrNewThread export to exist on later versions, too
2023-08-11 19:00:42 +03:00
Timo Kreuzer
55e0cab597 [SPEC2DEF] Add missing "--version" to help output 2023-08-11 19:00:42 +03:00
Timo Kreuzer
f229726da9 [SDK] Define _NTSYSTEM_ in stubs.h
We don't want to import RtlRaiseException, when building stubs for NTDLL.
2023-08-11 19:00:42 +03:00