Commit graph

86965 commits

Author SHA1 Message Date
Timo Kreuzer
2b8dee6e68 debug 2025-03-28 15:18:08 +02:00
Timo Kreuzer
3cae2d21ff HACK [BOOTDATA] Make setup boot with MP 2025-03-28 12:32:59 +02:00
Hermès Bélusca-Maïto
2ab3d47840 [TASKMGR] Cherry pick Hermes fixes
** WIP ** [TASKMGR] Get rid of thread-oriented updates. Just do it synchronously on WM_TIMER.

** WIP ** Merge RefreshPerformancePage() and PerformancePageRefreshThread(), now that we removed the separate performance page refreshing thread.

- Use _ui64tow() instead of _ultow() for converting ULONGLONGs into
  a string representation.

- Isolate the update of the status bar.

- Isolate the actual graphs redrawing. The idea for later is to not
  trigger any redrawings (and run unnecessary code) if the page is deactivated.

[TASKMGR] No need to get and save global handles for all the controls in the performance page.

... and especially for controls that are used only in one place.
Only handles to the graph controls are sufficient. For the others,
we can manage by using dialog control IDs.

- Rename AdjustFrameSize() 'pos' parameter to be more explicit.

** WIP ** Group trios of Memory performance getters together, as they are always used in succession.

- Group PerfDataGetCommitCharge[Total|Limit|Peak]K() together into
  PerfDataGetCommitChargeK().

- Group PerfDataGetKernelMemory[Total|Paged|NonPaged]K() together
  into PerfDataGetKernelMemoryK().

- Group PerfDataGetPhysicalMemory[Total|Available|SystemCache]K()
  together into PerfDataGetPhysicalMemoryK().

- Use these new Mem performance getters.

[TASKMGR] Use owner-drawn performance graphs.

- Use owner-drawn buttons to implement correct graph painting while
  maintaining the 3D appearance. As done on Windows (TM)

  Why using buttons (that should be disabled btw.)?
  Because we want, if the graphs fail to be created (due to e.g.
  lack of resources), to show a descriptive label of what's missing.

  This also allow the graphs to be drawn **properly** inside a 3D-border window.

- Redraw graphs on WM_DRAWITEM.

- Don't need to subclass button controls.

- Use DeferWindowPos() to avoid controls blinking on resize.

- Fix the problem of the buttons resizing as "1/x": this was due to
  the fact, using GetClientRect + Mapping, did't take the border into
  account. Instead, use GetWindowRect + a different coord mapping to
  fix all that.

- Remove some dead code.

- Rename the remaining ridiculously long variable names.

** WIP ** CPU/Mem meters: keep a separate copy of the CPU/Mem perf values.

+ Use structure for keeping state.

** WIP ** Add support for multiple-CPU stats. (In progress, needs code cleanup.)

In particular, use SystemProcessorTimeInfo to calculate the idle time
as done in ROSAPPS' ctm.exe, see commit c0873723.

See also https://ladydebug.com/blog/codes/cpuusage_win.htm

+ Fix the problem of NtQuerySystemInformation(SystemPerformanceInformation)
  that shows up when running a 32-bit build under Windows 7 x64.

** WIP ** Investigating showing physical memory in the MEM gauge.
2025-03-28 12:32:59 +02:00
Timo Kreuzer
030c1fe576 HACK HACK HACK: disable an ASSERT
We need proper IPIs to flush the TLB
2025-03-28 12:32:58 +02:00
Timo Kreuzer
e5c880df25 WIP [NTOS:KE/x64] Handle NewThread == OldThread in KiIdleLoop 2025-03-28 12:32:58 +02:00
Timo Kreuzer
6009f9c82a WIP KiIdleLoop PrcbLock 2025-03-28 12:32:58 +02:00
Timo Kreuzer
62ca4f1319 WIP add a bunch of ASSERTs 2025-03-28 12:32:58 +02:00
Timo Kreuzer
500236d65d [NTOS:KE] Handle SwapBusy in x64 KiIdleLoop 2025-03-28 12:32:58 +02:00
Timo Kreuzer
bfd661c1ce WIP [NTOS:KE/x64] Properly handle KiIdleSummary
TODO: Remove the chunk from KiSystemStartupBootStack? Shouldn't be needed.
What about other instances of KiIdleSummary?
2025-03-28 12:32:58 +02:00
Timo Kreuzer
c0e554b873 [NTOS:KE/x64] Lower IRQL to passive while running idle function 2025-03-28 12:32:57 +02:00
Timo Kreuzer
ef1d8ee72e [NTOS:KE/x64] Ignore DPCs from the idle loop
This is handled in the idle loop itself. The idle loop must not be preempted from a DPC.
2025-03-28 12:32:57 +02:00
Timo Kreuzer
fe4f962bc6 [NTOS:IO] Fix affinity of PsInitialSystemProcess
Add a hack to work around SMP-incompatible drivers
2025-03-28 12:32:57 +02:00
Timo Kreuzer
a623529215 [HALx86] Mask profiling interrupt on init 2025-03-28 12:32:57 +02:00
Timo Kreuzer
a29fcc3565 [NTOS:KE/x64] Move initialization of KeActiveProcessors 2025-03-28 12:32:57 +02:00
Timo Kreuzer
2d01fb8194 [HAL][NTOS] Implement x64 SMP startup code
TODO: fix lgdt macro to work with GAAS and ML
Works with PIIX3 and cdrom on AHCI or SCSI controller
When cdrom is on IDE controller it doesn't seem to work
2025-03-28 12:32:57 +02:00
Timo Kreuzer
b5c7624d34 [HAL] Use physical addressing in HalEnableSystemInterrupt 2025-03-28 12:32:57 +02:00
Timo Kreuzer
ad2a8b6253 [NTDLL] check for NULL buffer in LdrpLoadDll
This happens in advapi32_apitest in Test_CreateOpenKey.
2025-03-28 12:32:53 +02:00
Timo Kreuzer
e76246c8a3 [RPCRT4] Add SEH to avoid leaking locks / memory 2025-03-28 12:32:53 +02:00
Justin Miller
177cbd81af Revert "[FREELDR] Pass the correct ACPI table for Windows (#7486)"
Sorry this is something I had to do, I should have investigated deeper
before approving it and that's on me so ill take this over and get this
done. and credit you once again. Thank you @ILauncherDev
This reverts commit 185225a5fc.
2025-03-28 07:20:45 +01:00
Whindmar Saksit
b6562a664b
[SHELL32] DefView statusbar item file size fix in recycler and UNC (#7732)
- Display item sizes inside \\ UNC paths.
- Don't display anything in the location pane inside the Recycle Bin (CORE-20005).
- Don't display the size and location panes in My Computer
- Don't update the location pane on simple item selection changes.

CORE-20005
2025-03-27 18:29:44 +01:00
Timo Kreuzer
c7eba0c5c7 [SDK] Improve definition of (RTL_)CRITICAL_SECTION_DEBUG 2025-03-27 12:50:40 +00:00
Whindmar Saksit
a444572c3e
[SHIMGVW] Display error message on delete failure (#7776)
CORE-20019
2025-03-27 13:43:58 +01:00
Mark Jansen
70422cda51 [SHELL32] Fix starting disk cleanup from drive properties
CORE-12314
2025-03-27 10:55:41 +01:00
Nguyen Trung Khanh
97e7efc020
[TASKKILL] Implement /t (tree) parameter (#2403)
CORE-15998
2025-03-26 17:04:49 +01:00
Mark Jansen
49c40a2941 [PROGMAN][MSPORTS][VFDLIB][CONSRV] Update resource encoding to be utf8 2025-03-26 16:39:43 +01:00
Mark Jansen
2e8f4e2c24 [SHELL32] Implement Recycle bin cleanup handler
CORE-18942
2025-03-26 13:58:40 +01:00
Mark Jansen
f9bedd5ca5 [CLEANMGR] Add basic cleanmgr implementation
CORE-18941
2025-03-26 13:58:40 +01:00
Mark Jansen
0cd7e2cfb0 [PSDK] Add missing parameter names 2025-03-26 13:58:40 +01:00
Mark Jansen
db9768f25d [PSDK] Add EmptyVC.idl 2025-03-26 13:58:40 +01:00
Serge Gautherie
c302dbcc96 [FORMAT] wmain(): Call GetLastError() immediately
and adapt STRING_ERROR_DRIVE_TYPE strings.
2025-03-26 13:37:53 +01:00
Serge Gautherie
421dd31d49 [FORMAT] wmain(): Clean GetDiskFreeSpaceExW() calls up 2025-03-26 13:37:53 +01:00
Serge Gautherie
982cf2be5e [FORMAT] wmain(): Clean GetVolumeInformationW() calls up
and immediately print file system out
2025-03-26 13:37:53 +01:00
Katayama Hirofumi MZ
d69a80fad7
[SHDOCVW] Follow-up of #7804: Improve AddUrlToFavorites (#7820)
JIRA issue: CORE-19824
JIRA issue: CORE-19867
JIRA issue: CORE-14172
- Use <strsafe.h>.
- Don't use CSIDL_COMMON_FAVORITES.
2025-03-26 20:13:36 +09:00
Katayama Hirofumi MZ
457642cc4a
[FONTEXT] Refactor (#7821)
Improve code flexibility.
JIRA issue: CORE-12861
- Delete excessive virtual keywords
  and add overload keywords.
- Add InstallFontFiles helper function.
- Add strMsg parameter to
  DoInstallFontFile function.
- Move DoInstallFontFile and
  DoGetFontTitle functions outside
  the class.
- Delete needless fontext.h.
2025-03-26 18:58:12 +09:00
Marcin Jabłoński
be7d79768e
[COMCTL32] Fix a heap corruption in EDIT_EM_ReplaceSel (#7598)
https://jira.reactos.org/browse/CORE-19743
2025-03-26 10:32:17 +01:00
Serge Gautherie
35ca454cab
[NTOSKRNL] Add missing \n to DPRINT() calls (#6012)
Improve debug logs.
- Add missing \n to DPRINT() calls
- And demote/promote some DPRINT()/DPRINT1().
2025-03-26 10:23:15 +01:00
Whindmar Saksit
c1b8c4f96f
[SHELL32] Correctly implement common desktop items PIDL (#7730)
The current implementation is broken, if a file/folder exists in both places, you always get the user item.

CORE-19861
2025-03-25 21:26:55 +01:00
Katayama Hirofumi MZ
151ba9ee8f
[BROWSEUI][SHDOCVW][SDK] Fix 'Add Favorite' command (#7804)
JIRA issue: CORE-19824
JIRA issue: CORE-19867
- Add shdocvw import to browseui.
- Half-implement shdocvw!
  AddUrlToFavorites function.
- Add AddUrlToFavorites prototype
  to <shdocvw_undoc.h>.
- Fix browseui!CShellBrowser::
  OnAddToFavorites and
  shdocvw!CNSCBand::_AddFavorite
  by using AddUrlToFavorites.
2025-03-26 04:35:22 +09:00
Doug Lyons
0c6423da8d
[RICHED20] txthost.c: Partial Wine Sync of RichEditWndProc_common (#7817)
Add extra parameters to 'struct host' to handle 'defer_release' and 'notify_level' and use these.
Fixes crash when using 'Enter' key in DevCpp installer license edit box.

Update and retrial of #7733. CORE-19991
Cherry pick of wine commit: 8138159f20
2025-03-25 13:15:59 -05:00
Hermès Bélusca-Maïto
48beb0433e
[SETUPAPI] Add missing NULL parameter checks in SetupOpenInfFileW and SetupDiGetINFClassW (#7573)
Based on PR #5673, ROSTESTS-388

Co-authored-by: Katayama Hirofumi MZ <katayama.hirofumi.mz@gmail.com>
2025-03-25 17:41:23 +01:00
Mark Jansen
5ec739bf2e [RTL] Change comment to indicate a hack 2025-03-25 16:23:39 +01:00
Mark Jansen
6ab81dcc31 [VERIFIER] Clarify logging 2025-03-25 16:23:39 +01:00
Mark Jansen
0b8acaac31 [AVRF] Suppress notifications for providers 2025-03-25 16:23:39 +01:00
Mark Jansen
08d575adf9 [RTL] Notify verifier when freeing the process page heap 2025-03-25 16:23:39 +01:00
Mark Jansen
5821136dfa [AVRF] Hook up debug functions, add noisy stub for AVrfpGetStackTraceAddress 2025-03-25 16:23:39 +01:00
Mark Jansen
a7a504a466 [SDK] Add avrf stop codes and VERIFIER_STOP macro 2025-03-25 16:23:39 +01:00
Katayama Hirofumi MZ
367e4877f1
[BROWSEUI][SDK] Implement IAddressEditBox::SetCurrentDir (#7814)
JIRA issue: CORE-19704
- Rename and retype pidlLastParsed
  as CComHeapPtr
  <ITEMIDLIST_ABSOLUTE>
  m_pidlLastParsed.
- Implement
  CAddressEditBox::SetCurrentDir
  method.
- Simplify
  CAddressEditBox::ParseNow
  method.
- Modify IAddressEditBox interface.
2025-03-25 20:32:26 +09:00
Timo Kreuzer
776c660542 [NTDLL] Export RTL locale functions
The exports are NT6, but the table is initialized unconditionally, because the functions will be used later internally.
2025-03-25 09:55:17 +00:00
Timo Kreuzer
e01c32f3bd [RTL] Implement locale functions/tables
The locale table is currently hardcoded in rtl. On Vista+ (and Wine) this table is part of locale.nls, but we don't have that yet.
2025-03-25 09:55:17 +00:00
Timo Kreuzer
762a9f00bb [NTDLL_APITEST] Add test for Rtl locale functions 2025-03-25 09:55:17 +00:00