https://git.reactos.org/?p=reactos.git;a=commitdiff;h=9ee30c57fdcda9788fc83…
commit 9ee30c57fdcda9788fc83f4193c6755282524e41
Author: Doug Lyons <douglyons(a)douglyons.com>
AuthorDate: Sat Aug 10 16:00:44 2024 -0500
Commit: GitHub <noreply(a)github.com>
CommitDate: Sat Aug 10 16:00:44 2024 -0500
[NTUSER] Fix popup menu placement when part way off right edge of screen (#7220)
* Move the popup menu to the right edge of the screen when it is past the screen edge on the right.
CORE-19706
---
win32ss/user/ntuser/menu.c | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/win32ss/user/ntuser/menu.c b/win32ss/user/ntuser/menu.c
index 47cd4fc42b7..6c454ae4d87 100644
--- a/win32ss/user/ntuser/menu.c
+++ b/win32ss/user/ntuser/menu.c
@@ -2992,16 +2992,14 @@ static BOOL FASTCALL MENU_ShowPopup(PWND pwndOwner, PMENU menu, UINT id, UINT fl
/* We are off the right side of the screen */
if (x + width > monitor->rcMonitor.right)
{
- if ((x - width) < monitor->rcMonitor.left || x >= monitor->rcMonitor.right)
- x = monitor->rcMonitor.right - width;
- else
- x -= width;
+ /* Position menu at right edge of the screen */
+ x = monitor->rcMonitor.right - width;
}
/* We are off the left side of the screen */
if (x < monitor->rcMonitor.left)
{
- /* Position menu at left edge of screen */
+ /* Position menu at left edge of the screen */
x = 0;
if (x < monitor->rcMonitor.left || x >= monitor->rcMonitor.right || bIsPopup)
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=73bed3136351bf4995b6f…
commit 73bed3136351bf4995b6f200c1d775b1072a625c
Author: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org>
AuthorDate: Mon Aug 5 15:38:54 2024 +0200
Commit: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org>
CommitDate: Fri Aug 9 22:42:50 2024 +0200
[SYSDM] Fix for Italian (it-IT) translation (#7216)
Addendum to commit 04b2d35f5b (PR #4844),
translation proposed by Carlo Bramini.
Co-authored-by: Carlo Bramini <carlo.bramix(a)libero.it>
---
dll/cpl/sysdm/lang/it-IT.rc | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/dll/cpl/sysdm/lang/it-IT.rc b/dll/cpl/sysdm/lang/it-IT.rc
index 4cfcf099f12..af6fcf7796f 100644
--- a/dll/cpl/sysdm/lang/it-IT.rc
+++ b/dll/cpl/sysdm/lang/it-IT.rc
@@ -356,8 +356,8 @@ BEGIN
IDS_MESSAGEBOXTITLE "Applet di sistema del pannello di controllo"
IDS_WARNINITIALSIZE "Immettere la dimensione iniziale del file di paging."
IDS_WARNMAXIMUMSIZE "Immettere la dimensione massima del file di paging."
- IDS_WARNINITIALRANGE "The initial paging file size must be between 2 MB and %lu MB on the selected drive."
- IDS_WARNMAXIMUMRANGE "The maximum paging file size must be larger than or equal to its initial size, and less than %lu MB on the selected drive."
+ IDS_WARNINITIALRANGE "La dimensione iniziale del file di paging deve essere compresa tra 2 MB e %lu MB nell'unità selezionata."
+ IDS_WARNMAXIMUMRANGE "La dimensione massima del file di paging deve essere superiore a quella iniziale e minore di %lu MB nell'unità selezionata."
IDS_PAGEFILE_MB "%lu MB"
IDS_PAGEFILE_NONE "None"
IDS_PAGEFILE_SYSTEM "System Managed"
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=5d96ba9217416e955641b…
commit 5d96ba9217416e955641b7282acc62a0ed9ca277
Author: Oleg Dubinskiy <oleg.dubinskij30(a)gmail.com>
AuthorDate: Thu Aug 8 21:02:35 2024 +0200
Commit: GitHub <noreply(a)github.com>
CommitDate: Thu Aug 8 21:02:35 2024 +0200
[NTOS:MM] Implement MmProbeAndLockProcessPages (#7221)
Implement undocumented MmProbeAndLockProcessPages routine. Based on mm-implement-mappingaddress.patch by Thomas Faber from CORE-10147, with some improvements from me.
It's badly required by FltMgr.sys driver from Windows XP/Server 2003 and closely used by a lot of apps those are depending on this driver (e. g., Avast Free Antivirus several versions, Avira Antivir Personal 8.2 etc. etc.).
Fixes several asserts from MDL support routines when the 3rd-party minifilter drivers are loading FltMgr.
CORE-14157
---
ntoskrnl/mm/ARM3/mdlsup.c | 56 ++++++++++++++++++++++++++++++++++++++++-------
1 file changed, 48 insertions(+), 8 deletions(-)
diff --git a/ntoskrnl/mm/ARM3/mdlsup.c b/ntoskrnl/mm/ARM3/mdlsup.c
index cc6d2ffb4ec..76b06f0c72e 100644
--- a/ntoskrnl/mm/ARM3/mdlsup.c
+++ b/ntoskrnl/mm/ARM3/mdlsup.c
@@ -1671,19 +1671,59 @@ MmProtectMdlSystemAddress(IN PMDL MemoryDescriptorList,
return STATUS_NOT_IMPLEMENTED;
}
-/*
- * @unimplemented
+/**
+ * @brief
+ * Probes and locks virtual pages in memory for the specified process.
+ *
+ * @param[in,out] MemoryDescriptorList
+ * Memory Descriptor List (MDL) containing the buffer to be probed and locked.
+ *
+ * @param[in] Process
+ * The process for which the buffer should be probed and locked.
+ *
+ * @param[in] AccessMode
+ * Access mode for probing the pages. Can be KernelMode or UserMode.
+ *
+ * @param[in] LockOperation
+ * The type of the probing and locking operation. Can be IoReadAccess, IoWriteAccess or IoModifyAccess.
+ *
+ * @return
+ * Nothing.
+ *
+ * @see MmProbeAndLockPages
+ *
+ * @remarks Must be called at IRQL <= APC_LEVEL
*/
+_IRQL_requires_max_(APC_LEVEL)
VOID
NTAPI
-MmProbeAndLockProcessPages(IN OUT PMDL MemoryDescriptorList,
- IN PEPROCESS Process,
- IN KPROCESSOR_MODE AccessMode,
- IN LOCK_OPERATION Operation)
+MmProbeAndLockProcessPages(
+ _Inout_ PMDL MemoryDescriptorList,
+ _In_ PEPROCESS Process,
+ _In_ KPROCESSOR_MODE AccessMode,
+ _In_ LOCK_OPERATION Operation)
{
- UNIMPLEMENTED;
-}
+ KAPC_STATE ApcState;
+ BOOLEAN IsAttached = FALSE;
+
+ if (Process != PsGetCurrentProcess())
+ {
+ KeStackAttachProcess(&Process->Pcb, &ApcState);
+ IsAttached = TRUE;
+ }
+ /* Protect in try/finally to ensure we detach even if MmProbeAndLockPages() throws an exception */
+ _SEH2_TRY
+ {
+ MmProbeAndLockPages(MemoryDescriptorList, AccessMode, Operation);
+ }
+ _SEH2_FINALLY
+ {
+ if (IsAttached)
+ KeUnstackDetachProcess(&ApcState);
+ }
+ _SEH2_END;
+}
/*
* @unimplemented