Commit graph

80239 commits

Author SHA1 Message Date
Joachim Henze ae2ad29ad5 [RAPPS] Kill 2x EOL white-space in loaddlg.cpp
Both were introduced during 0.4.15-dev'ing
and were not in any earlier rls branches.
They were the only 2 in here btw.
2021-07-03 13:49:48 +02:00
Timo Kreuzer adc86c2442 [NETAPI32] Zero out lpNameBuffer in NetGetJoinInformation
This is needed, because for some reason, otherwise RPCRT4 will assume that whatever value is in there is already the buffer and copy the string there.
Fixes exception in Chrome 48.
2021-07-03 12:56:48 +02:00
Timo Kreuzer d24700f82e [RTL/x64] Properly handle UNW_FLAG_CHAININFO 2021-07-03 12:56:48 +02:00
Timo Kreuzer 6a9a739185 [ROSAUTOTEST] Run tests with current dir set to the test dir 2021-07-03 12:54:50 +02:00
Doug Lyons 847b037fe9
[WIN32K] Revert NtGdiStretchDIBitsInternal to Previous Logic (#3774)
Fixes gdi32:dib / gdi32:bitmap tests and SIMS graphics.
JIRA issue: CORE-16236
2021-07-03 00:34:43 +02:00
Katayama Hirofumi MZ 650cd77234
[IMM32] ImmDisableIME calls NtUserDisableThreadIme (#3776)
- Just call NtUserDisableThreadIme in ImmDisableIME directly. CORE-11700
2021-07-01 18:03:42 +09:00
Katayama Hirofumi MZ 561fa8d29b
[SHELL32] Implement PathResolveA function (#3771)
- Follow-up of #3762.
- Add PathResolveA implementation by ANSI/Unicode string conversion.
CORE-12665
2021-07-01 08:42:29 +09:00
Jérôme Gardou 0ffbbab5a2 [CRT] Revert unwanted part of f30136bc79 2021-06-29 12:48:25 +02:00
Jérôme Gardou 37d0a9c3f4 [NTOS:KE] Unconditionally check IRQL when acquiring & releasing spinlock at DISPATCH_LEVEL 2021-06-29 11:49:20 +02:00
Jérôme Gardou f30136bc79 [NTOS:KE] Test spinlock ownership on both UP & MP build
There is no reason not to, and this avoids introducing bugs stupidly.
2021-06-29 11:49:20 +02:00
Jérôme Gardou 835c30232e [NTOS:KD][NTOS:KD64][NTOS:KDBG] Fix IRQL & spinlock use
KD64: Raise to HIGH_LEVEL when entering trap
KDBG: lower to DISPATCH_LEVEL when applying IRQL hack & use a worker thread to load symbols
KD&KDBG: Actually unload symbols when required
2021-06-29 11:49:20 +02:00
Jérôme Gardou 54ecf703f2 [CMAKE:GCC] Produce RosSym data even when building with separate debug symbols 2021-06-29 11:49:20 +02:00
Jérôme Gardou 79c2972035 [NTOS:KD] Release lock before calling KdpPrint
Avoiding resursive spinlock acquisition
2021-06-29 11:49:20 +02:00
Jérôme Gardou 608032bd08 [NTOS:KD64][NTOS:KDBG] Fix spinlocks use
Raise IRQL before entering debugger, so that KeAcquireSpinLockAtDpcLevel works as expected.
 - HIGH_LEVEL since we don't know where we are coming from.

Do not try to read debug symbol from files in KDBG.
 - There is no reason that this works if Mm didn't map it in the first place.
2021-06-29 11:49:20 +02:00
Jérôme Gardou 5c332f6d36 [CMAKE] Get rid of freeldr_pe_dbg target
objcopy bug is now solved and I can't remember how this used to work anyway.
Use strip instead.
If you need to debug freeldr
 - set SEPARATE_DBG cmake var to TRUE
 - use qemu GDB stub
 - In GDB : add-symbol-file <build_dir>/symbols/freeldr_pe.exe
2021-06-29 11:49:20 +02:00
Jérôme Gardou 66dea86d68 [NTOS:KDBG] Use internal KdpDPrintf instead of DbgPrint
DbgPrint is implemented through a breakpoint, and then KD tries to recursively
lock its own spinlock. Call a lower level routine instead.
2021-06-29 11:49:20 +02:00
Jérôme Gardou 813d9cd2cc [WIN32K:NTUSER] Do not pass NULL keyboard layout to IntToUnicodeEx
There's an ASSERT on that
2021-06-29 11:49:20 +02:00
Jérôme Gardou 8d665f8959 [KMTESTS] Fix tests for uniprocessor checked build 2021-06-29 11:49:20 +02:00
Jérôme Gardou e312a40ae2 [NTOS:KE] Implement KeAcquireInStackQueuedSpinLockForDpc & KeReleaseInStackQueuedSpinLockForDpc 2021-06-29 11:49:20 +02:00
Jérôme Gardou 56d0bc31ce [HAL] Hack KeTryToAcquireQueuedSpinlock & KeTryToAcquireQueuedSpinLockRaiseToSynch into a somewhat working implementation 2021-06-29 11:49:20 +02:00
Jérôme Gardou 91587a432b [NTOS:MM] Fix another instance of reentrant spinlock acquisition 2021-06-29 11:49:20 +02:00
Hermès Bélusca-Maïto 31322f5df9
[CONUTILS:PAGER][MORE] Implement text line caching + fix some bugs.
- Implement caching of individual (newline-separated) text lines; this
  behaviour can be enabled with a flag (enabled by MORE):
  CON_PAGER_CACHE_INCOMPLETE_LINE.
  This feature is necessary when reading a text file, whose text lines
  may span across two or more successive temporary read buffers, and is
  required for correctly determining whether the lines being read are
  blank and may be squeezed.

- When squeezing blank lines, the blank-line check must be done for each
  line segment corresponding to the screen line (and following) that
  need to be displayed. This matches the behaviour of MS MORE.COM.

- Fix the IsBlankLine() check to not consider FORM-FEEDs as being blank
  characters: This is necessary for correctly handling FORM-FEED
  expansion. Also note that MS MORE.COM only checks for spaces and TABs,
  so we are slightly overdoing these checks (considering other types of
  whitespace).

- Get rid of ConCallPagerLine() and the intermediate CON_PAGER_DONT_OUTPUT
  state flag that were used repeatedly for each and every small line
  chunks. Instead, call directly the user-specified 'PagerLine' callback
  when we are about to start treating the next line segment to be
  displayed (see comment above).

- Fix the exit return condition of ConPagerWorker(): it should return
  TRUE whenever we displayed all the required lines, and FALSE otherwise.
  Otherwise, the previous (buggy) condition on the data being read from
  the text file, may lead to the prompt not showing when a screenful of
  text has been displayed, if it happened that the current text buffer
  becomes empty at the same time (even if, overall, the text file hasn't
  been fully displayed).

- In MorePagerLine(), when we encounter for the first time a blank line
  that will be squeezed with other successive ones, display a single
  blank line. But for that, just display one space and a newline: this
  single space is especially needed in order to force line wrapping when
  the ENABLE_VIRTUAL_TERMINAL_PROCESSING or DISABLE_NEWLINE_AUTO_RETURN
  console modes are enabled. Otherwise the cursor remains at the
  previous line (without wrapping), and just outputting one newline will
  not make it move past 2 lines as one would naively expect.
2021-06-28 21:26:32 +02:00
Hermès Bélusca-Maïto aff90f530c
[CONUTILS:PAGER] Extract the character-specific handling out of the character-loop.
This also allows to factor out the ConCallPagerLine() call for outputting the pending text.
2021-06-28 21:26:32 +02:00
Hermès Bélusca-Maïto ff445ca184
[CONUTILS:PAGER][MORE] Fix the default paging region.
- The column extent should cover the whole width of the console screenbuffer.
  On the contrary, the line extent covers only the number of lines that
  cover the current displayed console window.

- Since the console can be resized while the pager is prompting, we need
  to actually recalculate in the prompt routine the default number of
  lines for a screen.

- Reset s_nNextLineNo when paging a new file.
2021-06-28 21:26:31 +02:00
Hermès Bélusca-Maïto f74a3f6e29
[CONUTILS:PAGER][MORE] Code style/formatting.
- Shorten the names of the flags: CON_PAGER_FLAG_*** --> CON_PAGER_***.
- Reorder few members in the CON_PAGER pager structure where they make sense.
- ScreenColumns, ScreenRows --> PageColumns, PageRows: keeping the open
  possibility for having a pager controlling a region of different size
  than the screen.
- Add doxygen documentation for ConWritePaging().
2021-06-28 21:26:30 +02:00
Victor Perevertkin 1c7f3476a0
[CMAKE] Use BUILD_MP CMake option correctly 2021-06-28 17:54:09 +03:00
Jérôme Gardou ada609bdbc [PSDK] Alias _Check_return_ annotation to warn_unused_result attribute 2021-06-28 10:20:57 +02:00
Jérôme Gardou e10892e4f4 [CRT] Put __MINGW_EXTENSION (whatever that means) in front of function declarations
Needed for next commit
2021-06-28 10:20:57 +02:00
Jérôme Gardou d1f5c31820 [SDK] Add GCC overrides for SAL annotations
GCC has some functions, variables & type attributes which can be used as aliases
for some of the SAL annotations. Although it's not as rich & precise, it's still useful
since we actually enable -Werror on GCC builds whereas we don't use such an option
on MSVC builds.

For now, _Must_inspect_result_ is aliased to warn_result_unused attribute.
2021-06-28 10:20:57 +02:00
Jérôme Gardou a28a34f108 [NDK][XDK] Remove _Must_inspect_result_ from RtlTimeFieldsToTime & RtlTimeToSecondsSince1970
WDK doesn't have it and it causes more mess than anything.
CORE-17637
2021-06-28 10:20:57 +02:00
Jérôme Gardou 28c5f7538a [DDK] Do not put _Must_inspect_result_ on function returning void & without _Out_ parameters 2021-06-28 10:20:57 +02:00
Jérôme Gardou 46af941c4c [NTOS:FSRTL] Check return status of FsRtl locking functions
CORE-17637
2021-06-28 10:20:57 +02:00
Jérôme Gardou e55eeb2d9c [WDF] Synchronize function attributes between declaration & definition
Addendum to 1f377076d7
2021-06-28 10:20:57 +02:00
Jérôme Gardou d924cb8271 [NTOS:CONFIG] Do not ignore Rtl*String functions return value
CORE-17637
2021-06-28 10:20:57 +02:00
Jérôme Gardou 3ad38f29b5 [NTOS:OB] Use RtlInitUnicodeString for constant string
CORE-17637
2021-06-28 10:20:57 +02:00
Jérôme Gardou 8178996559 [NTOS:SE] Do not ignore SepAccessCheckAndAuditAlarmWorker return value
CORE-17637
2021-06-28 10:20:57 +02:00
Jérôme Gardou 07d38cd4c5 [NTOS:PO] Do not ignore IoRegisterPlugPlayNotification return value
CORE-17637
2021-06-28 10:20:57 +02:00
Jérôme Gardou 230e6b9492 [NTOS:INBV] Do not ignore RtlUnicodeStringToOemString return value
CORE-17637
2021-06-28 10:20:57 +02:00
Jérôme Gardou 838abc475c [NTOS:IO] Do not ignore RtlDuplicateUnicodeString return value
CORE-17637
2021-06-28 10:20:57 +02:00
Jérôme Gardou cf1a95a588 [NTOS:EX] Do not ignore PsCreateSystemThread return value
CORE-17637
2021-06-28 10:20:57 +02:00
Jérôme Gardou 93c0d324e0 [NTOS:EX] Do not ignore RtlAnsiStringToUnicodeString return value
CORE-17637
2021-06-28 10:20:57 +02:00
Jérôme Gardou 376fbc5242 [NTOS:MM] Check result of RtlCreateUnicodeString in MmGetFileNameForAddress
CORE-17637
2021-06-28 10:20:57 +02:00
Jérôme Gardou 3f16c8615c [NTOS:IO] Check RtlCreateUnicodeString return value when initializing PnP services
CORE-17637
2021-06-28 10:20:57 +02:00
Jérôme Gardou 24a4e12a76 [NTOS:IO] Check RtlAnsiStringToUnicodeString return value when initializing Arc names
CORE-17637
2021-06-28 10:20:57 +02:00
Jérôme Gardou 293f823053 [NTOS:IO] Check RtlAnsiStringToUnicodeString return value when initializing ramdisk
CORE-17637
2021-06-28 10:20:57 +02:00
Jérôme Gardou e961958823 [NSLOOKUP] Check WSAStartup return value
CORE-17637
2021-06-28 10:20:57 +02:00
Jérôme Gardou 6bf64780e4 [NET] Properly check return value of EnumServicesStatusW on first call 2021-06-28 10:20:57 +02:00
Jérôme Gardou 5aafeb473f [FLTMC] Do not ignore failures of some functions
Also reduce use of magic values.

CORE-17637
2021-06-28 10:20:57 +02:00
Jérôme Gardou 46394ab80d [RTL] In RtlReleasePrivilege, raise exception if restoring old privileges fails
CORE-17637
2021-06-28 10:20:57 +02:00
Jérôme Gardou fb9ebe17bf [RTL] When taking system volume ownership, assert that we succeeded to restore privileges
CORE-17637
2021-06-28 10:20:57 +02:00