Commit graph

770 commits

Author SHA1 Message Date
Hermès Bélusca-Maïto 8d3e80e437
[FSLIB][FMIFS][AUTOCHK][SETUPLIB] Use more Windows-compatible (but not fully compatible yet) Format() and Chkdsk() ULIB functions.
[AUTOCHK] Add also support for scanning FATX volumes.

The Format(), FormatEx(), Chkdsk(), ChkdskEx() functions exposed by the
U*.DLL user-mode FS library dlls are different (and have different
prototypes) than the similarly-named functions exported by FMIFS.DLL .

In particular, what we used to call "xxxChkdskEx()" and "xxxFormatEx()"
in our U*.DLL libraries actually correspond more, from their arguments,
to the "Chkdsk()" and "Format()" functions in Windows' U*.DLL . Their
*Ex() counterparts instead take most of the parameters through a
structure passed by pointer.

On FMIFS.DLL side, while FMIFS!Chkdsk() calls U*.DLL!Chkdsk() and
FMIFS!ChkdskEx() calls U*.DLL!ChkdskEx() (and we do not implement these
*Ex() functions at the moment), both FMIFS!Format() and FMIFS!FormatEx()
call U*.DLL!Format() instead, while FMIFS!FormatEx2() calls
U*.DLL!FormatEx() (that we do not implement yet either) !!

To improve that, refactor the calls to these U*.DLL functions so as to
respect the more compatible prototypes: They contain the correct number
of parameters in a compatible order. However, some of the parameters do
not have the same types yet: the strings are kept here in PUNICODE_STRINGS,
while on Windows they are passed via an undocumented DSTRING struct, and
the FMIFS callback is instead a MESSAGE struct/class on Windows.
Finally, the MEDIA_TYPE parameter in U*.DLL!Format() is equivalent, yet
not fully 100% in 1-to-1 correspondence, with the FMIFS_MEDIA_FLAG used
in the corresponding FMIFS.DLL functions.

One thing to notice is that the U*.DLL!Format() (and the Ex) functions
support a BOOLEAN (a flag resp.) for telling that a backwards-compatible
FS version should be used instead of the (default) latest FS version.
This is used e.g. by the FAT FS, where by default FAT32 is selected
(depending also on other constraints like, the disk and the partition
sizes), unless that bit is set in which case, FAT16 (or 12) is used.
2020-11-22 21:57:07 +01:00
Hermès Bélusca-Maïto 65758cc3b4
[FMIFS] Whitespaces formatting only. 2020-11-22 21:34:04 +01:00
Jérôme Gardou 02f4c755b8 [SDK] Use FORCEINLINE instead of inline 2020-11-16 16:58:10 +01:00
Jérôme Gardou 3936c3f19e [CRT] Fix __forceinline definition for clang 2020-11-16 16:58:10 +01:00
Jérôme Gardou f96e47db43 [CRT] Fix intrinsics definition with clang 2020-11-16 16:58:10 +01:00
Victor Perevertkin 901c457b63
[PSDK] Add more 32 and 64-bit definitions to ntddscsi.h 2020-11-13 03:15:31 +03:00
Hermès Bélusca-Maïto be01e6d76f
[XDK] Update the definition of DEBUG_DEVICE_DESCRIPTOR and related structures with Vista,7,8,10 additions.
CORE-17360

Information from:
- https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/ntddk/ns-ntddk-debug_device_descriptor
- https://www.vergiliusproject.com
- https://codemachine.com
2020-11-09 22:33:02 +01:00
Timo Kreuzer 743c378ed1 [CMAKE] Add architecture to our build string
This introduces a new CMake variable WINARCH, which what Windows usually uses ("x86" instead of "i386") e.g. in sxs names.
2020-11-07 18:40:45 +01:00
Victor Perevertkin 545df81502
[KMDF] Make KMDF headers compatible with our SDK and compilers 2020-11-03 00:06:25 +03:00
Victor Perevertkin 40462c924e
[KMDF] Add Kernel-Mode Driver Framework headers v1.17
Taken from Microsoft GitHub repo:
d9c6040fe9

Licensed under MIT
2020-11-02 22:07:15 +03:00
Victor Perevertkin 5c7ce4475e
[REACTOS] Cleanup INIT and some PAGE section allocations
- Change INIT_FUNCTION and INIT_SECTION to CODE_SEG("INIT") and DATA_SEG("INIT") respectively
- Remove INIT_FUNCTION from function prototypes
- Remove alloc_text pragma calls as they are not needed anymore
2020-11-02 21:45:31 +03:00
Victor Perevertkin 658f742c2d
[NDK][CMAKE] Introduce DATA_SEG and CODE_SEG macro
These are for putting code and data to non-default sections
At the same time, move INIT section attributes declaration to cmake files
2020-11-02 21:27:06 +03:00
Timo Kreuzer 2a8c680dbe [NTOS:KE:X64][NTDLL:X64] Implement KiUserExceptionDispatcher and fix KiDispatchExceptionToUser 2020-10-31 14:23:16 +01:00
Timo Kreuzer a016ccd117 [NTOS:KE:X64][ASM:X64] Fix delivery of APCs
- Deliver pending APCs on trap exit
- Pass the trapframe of KiApcInterrupt to KiDeliverApcs, not NULL.
- Fix parameter passing from KiSwapContext to KiSwapContextInternal and KiSwapContextResume, so that the ApcBypass parameter is not uninitialized
- Fix return value of KiSwapContextResume to correctly indicate whether we want to have APCs directly delivered or not (when there are non, or when delivery is suppressed)
2020-10-31 14:23:16 +01:00
Timo Kreuzer 7e6dce6aa1 [ASM:X64] Save GS base MSR in trap frame 2020-10-31 14:23:16 +01:00
Timo Kreuzer 8ec888487a [ASM:X64] ASSERT that interrupts are enabled, when returning to user mode 2020-10-31 14:23:16 +01:00
Timo Kreuzer ce5aa24c50 [ASM:X64] Add initial version of kxamd64.inc, macamd64.inc 2020-10-31 14:23:16 +01:00
Timo Kreuzer fe36f081c7
[COMPILER_APITEST] Add SEH tests from MS (#2435)
* [COMPILER_APITEST] Import MS EH/SEH tests

Taken from https://github.com/microsoft/compiler-tests

* [CRT] Add missing declaration of _longjmpex

* [COMPILER_APITEST] Add cmake build files for MS SEH test

It is built as a static library

* [COMPILER_APITEST] Fix GCC build of MS SEH tests

There are a number of hacks in there now. Also the volatile hacks should be separated and sent upstream.

* [COMPILER_APITEST] Fix x64 build of MS SEH tests

* [COMPILER_APITEST] Fix clang build of MS SEH tests

* [COMPILER_APITEST] Include MS SEH tests
2020-10-31 11:08:27 +01:00
Timo Kreuzer 0e5a4d5afe [PSDK] Import some SAL headers from MS
Taken from https://github.com/microsoft/ChakraCore/tree/master/pal/inc/rt

* Move _Check_return_opt_ and _Check_return_wat_ to crtdefs.h
* Update sal.h from https://github.com/microsoft/ChakraCore/blob/master/pal/inc/rt/sal.h
* Import no_sal2.h from MS and remove the one in NDK
* Import specstrings.h from MS
* Import specstrings_strict.h from MS
* Add specstrings_undef.h (based on defines in specstrings_strict.h)
* Remove __REACTOS__ hacks from cdfs
2020-10-29 06:51:28 +01:00
Katayama Hirofumi MZ 89bd2d12da [INCLUDE] Use HeapAlloc/HeapFree in layout.h
CORE-17341
2020-10-22 08:07:32 +09:00
Katayama Hirofumi MZ de8d156e2c
[SHELL32] Resizable for SHBrowseForFolder (#3299)
Make the dialog box of SHBrowseForFolder function resizable. CORE-17341
2020-10-21 22:25:16 +09:00
Jérôme Gardou 15dd31377a Revert "[NTOS/MM] Initialize process Working set and start implementing adding entries to it"
This reverts commit 5abc016401.
Not ready for prime time
2020-10-20 15:56:53 +02:00
Jérôme Gardou 5abc016401 [NTOS/MM] Initialize process Working set and start implementing adding entries to it 2020-10-20 15:20:59 +02:00
Mark Jansen a7c1f9a014
[PSDK] Add some argument names 2020-10-11 17:00:59 +02:00
Serge Gautherie 05347f7168
[PSDK] dsrole.h: Define DSROLE_PRIMARY_DS_READONLY (#3288) 2020-10-10 22:27:07 +02:00
Katayama Hirofumi MZ f496a5fc4f
[SHLWAPI] 1/3-implement SHAutoComplete (#3230)
Retrial of #3214. Try to implment shlwapi!SHAutoComplete function. Unfinished. CORE-9281
2020-09-27 15:27:18 +09:00
Adam Słaboń 50ff453434
[TRANSLATION] Polish translation update (#3233) 2020-09-26 21:42:36 +03:00
Victor Perevertkin bb94e711ef
[NTOSKRNL_VISTA] Add stubs for functions needed in KMDF 2020-09-25 01:28:55 +03:00
Victor Perevertkin d01518da7c
[XDK] Add definitions required for newer storage class drivers (cdrom)
That introduced some warnings in the current code which were corrected as well

CORE-17129
2020-09-24 22:30:52 +03:00
Victor Perevertkin be276dde28
[XDK][NTOSKRNL_VISTA] Put NTKRNLVISTAAPI to XDK headers
for vista+ APIs implemented in ntoskrnl_vista.
Now if you statically link ntoskrnl_vista into a driver,
NTKERNELAPI will automatically be removed from an API definition
2020-09-24 21:51:57 +03:00
Victor Perevertkin 7af229f5b5
[PSDK] Fix order and formatting of IOCTL definitions in ntddcdrm.h 2020-09-24 17:44:18 +03:00
Victor Perevertkin 99489553fc
[PSDK] Add definitions required for newer storage class drivers (cdrom)
CORE-17129
2020-09-24 17:31:15 +03:00
Victor Perevertkin d7d716a64c
[DDK] Add definitions required for newer storage class drivers (cdrom)
CORE-17129
2020-09-24 05:47:48 +03:00
Victor Perevertkin f7c58468f1
[XDK] Move UNREACHABLE macro definition to ntbasedef.h 2020-09-24 05:35:43 +03:00
Victor Perevertkin 87a5311116
[SDK] Fix __forceinline definition for C++ 2020-09-24 05:33:35 +03:00
Timo Kreuzer 38be76187a [ASM] Fix KUMS_CONTEXT_HEADER offsets in ksamd64.template.h 2020-09-20 23:08:17 +02:00
William Kent 427ea67b9c
[RTL] Add code to SxS manifest parser to parse XML namespaces (#2512)
* [XDK] Typo fix
* [XDK] Add missing ACTIVATION_CONTEXT_SECTION values
* [RTL] Merge changes from Wine
* [ROSTESTS] Fix typo
* [NTDLL] Typo fix
* Add test for new functionality
* [ROSTESTS] Fix path
* [ROSTESTS] Add test to testlist.c
2020-09-20 22:56:42 +02:00
Kyle Katarn da36f799c7
[SHELL32] Minimal SHRunControlPanel implementation (#3095)
CORE-9215
Co-authored-by: Stanislav Motylkov <x86corez@gmail.com>
2020-09-19 16:23:44 +02:00
Katayama Hirofumi MZ 3ad5ae6389 [SDK][INCLUDE] Add ANSI/Unicode mappings for SHAboutInfo and SHGetValueGoodBoot 2020-09-18 17:30:16 +09:00
Katayama Hirofumi MZ efde1f4268 [SDK][INCLUDE] Add SHGetValueGoodBootA/W prototypes 2020-09-18 17:22:16 +09:00
Katayama Hirofumi MZ 733d6cebed [SDK][INCLUDE] Add SHAnsiToUnicodeCP and SHUnicodeToAnsiCP prototypes 2020-09-18 17:09:29 +09:00
winesync 63c0d5e35a [WINESYNC] dbghelp: Get rid of no longer needed HAVE_ZLIB checks.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 6b1bc0beac510aa48a848b8182b9310f92609dd0 by Jacek Caban <jacek@codeweavers.com>
2020-09-16 10:35:58 +02:00
winesync 6c0765a0ec [WINESYNC] dbghelp: Use local elf_header declaration.
Based on glibc.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 78845911da06fc75c6d74237f816a1547c24b20b by Jacek Caban <jacek@codeweavers.com>
2020-09-16 10:35:52 +02:00
winesync 006ce9607c [WINESYNC] dbghelp: SymSet/GetExtendedOption support a WINE only option.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id fa5e5df71db231f6fca9c7a40792c17e9bbe5027 by Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
2020-09-16 10:35:41 +02:00
winesync 1a20474d99 [WINESYNC] dbghelp: Add SymGetExtendedOption/SymSetExtendedOption stubs.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 3fed8787251882c70eeadefb230cd2ff4b251ac2 by Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
2020-09-16 10:35:41 +02:00
winesync f9bc55610e [WINESYNC] dbghelp: Support S_HEAPALLOCSITE entry.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 48a74277f5f9e0c87d8c01457236a89d94cb71d3 by Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
2020-09-16 10:35:41 +02:00
winesync 8de32aeab5 [WINESYNC] include: Add missing SYMOPT_* defines.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 620da60f7f7939261192680d10012e31426ba5b3 by Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
2020-09-16 10:35:41 +02:00
winesync 34d40a5f3d [WINESYNC] dbghelp: Support full memory dumps.
Add support of flag MinidumpWithFullMemory in function
MinidumpWriteDump. A Memory64ListStream is added to the minidump
streams and all memory regions of the process with MEM_COMMIT state
are written to the last part of the minidump file.

Signed-off-by: Eric Bissonnette <ebisso.dev@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id b90bbcbe750f6af0ce13f2577984f4818e05a013 by Eric Bissonnette <ebisso.dev@gmail.com>
2020-09-16 10:35:40 +02:00
winesync 94e2d456db [WINESYNC] dbghelp: Add SYMFLAG_- and SYMTYPE_-defines.
Signed-off-by: Andreas Maier <staubim@quantentunnel.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 3b01149d8677fa86addfb67414d793684779c5ce by Andreas Maier <staubim@quantentunnel.de>
2020-09-16 10:35:39 +02:00
winesync 616fb16a52 [WINESYNC] dbghelp: Use correct record in codeview_snarf_public.
Use public_vx iststead of data_vx for public symbols.

Signed-off-by: Andreas Maier <staubim@quantentunnel.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id dbcf9728fa13ade68cc9d380002a5f6ae50fc0c0 by Andreas Maier <staubim@quantentunnel.de>
2020-09-16 10:35:38 +02:00