Robert Naumann [Tue, 21 Aug 2018 08:05:50 +0000 (10:05 +0200)]
[BROWSEUI] Show Tooltip text for 'Go' Button
-Patch by Barret Karish CORE-11058
Pierre Schweitzer [Tue, 21 Aug 2018 10:41:50 +0000 (12:41 +0200)]
Pierre Schweitzer [Tue, 21 Aug 2018 10:32:15 +0000 (12:32 +0200)]
[CDFS_NEW] -> [CDFS] No old driver, thus no new driver
Pierre Schweitzer [Tue, 21 Aug 2018 10:27:35 +0000 (12:27 +0200)]
[CDFS] Delete the old CDFS driver.
You served us well!
Andreas Bjerkeholt [Tue, 21 Aug 2018 09:14:14 +0000 (11:14 +0200)]
[ZIPFLDR] Enable / disable the correct wizard buttons
Timo Kreuzer [Tue, 21 Aug 2018 09:25:22 +0000 (11:25 +0200)]
[NTOS:Mm] Fix a 64 bit issue in MmMapViewOfArm3Section (#778)
Fixes a Clang-Cl warning
CORE-14306
Timo Kreuzer [Tue, 21 Aug 2018 08:35:57 +0000 (10:35 +0200)]
[NTOS] Fix MiFindInitializationCode (#751)
Short: The code was suffering from an off-by-one bug (inconsistency between inclusive end exclusive end address), which could lead to freeing one page above the initialization code. This led to freeing part of the kernel import section on x64. Now it is consistently using the aligned/exclusive end address.
Long:
* Initialization sections are freed both for the boot loaded images as well as for drivers that are loaded later. Obviously the second mechanism needs to be able to run at any time, so it is not initialization code itself. For some reason someone decided though, it would be a smart idea to implement the code twice, once for the boot loaded images, once for drivers and concluding that the former was initialization code itself and had to be freed.
* Since freeing the code that frees the initialization sections, while it is doing that is not possible, it uses a "smart trick", initially skipping that range, returning its start and end to the caller and have the caller free it afterwards.
* The code was using the end address in an inconsistent way, partly aligning it to the start of the following section, sometimes pointing to the last byte that should be freed. The function that freed each chunk was assuming the latter (i.e. that the end was included in the range) and thus freed the page that contained the end address. The end address for the range that was returned to the caller was aligned to the start of the next section, and the caller used it to free the range including the following page. On x64 this was the start of the import section of ntoskrnl. How that worked on x86 I don't even want to know.
Pierre Schweitzer [Tue, 21 Aug 2018 06:50:29 +0000 (08:50 +0200)]
[FASTFAT] Drop an useless #ifdef, we have this cast in all other FSDs
Pierre Schweitzer [Tue, 21 Aug 2018 06:36:51 +0000 (08:36 +0200)]
[FASTFAT] Finally drop the TAG_VFAT allocation tag
Mark Jansen [Tue, 21 Aug 2018 05:05:40 +0000 (07:05 +0200)]
[BTRFS] Fix booting with runtime checks
Timo Kreuzer [Mon, 20 Aug 2018 21:52:42 +0000 (23:52 +0200)]
[NTOS:MM] Fix ASSERT when expanding paged pool
The page directory is double mapped on x86 in the system process, so writing to it will already write to the PDE.
Timo Kreuzer [Sat, 17 Mar 2018 13:23:34 +0000 (14:23 +0100)]
[SYSSETUP] Fix handling of the status message window
This fixes a race condition, where the message thread was still running when InstallReactOS returned and syssetup.dll was unloaded by the caller (setup.exe).
Pierre Schweitzer [Mon, 20 Aug 2018 18:26:16 +0000 (20:26 +0200)]
Add a quick statement about BtrFS :-)
Pierre Schweitzer [Mon, 20 Aug 2018 17:43:43 +0000 (19:43 +0200)]
[FASTFAT] Disable delayed close
It brings too many regressions for too little gain.
CORE-14938
CORE-14917
CORE-14826
Serge Gautherie [Wed, 18 Jul 2018 14:07:57 +0000 (16:07 +0200)]
[MSHTML] Fix an MSVC warning about HTMLInputElementImpl_fire_event()
"...\htmlinput.c(1303) : warning C4028: formal parameter 2 different from declaration"
Temporary fix, until WINESYNC replaces this function.
CORE-7538
Timo Kreuzer [Sun, 4 Feb 2018 18:20:56 +0000 (19:20 +0100)]
[NTOS:MM] Fix paged pool expansion
Adam Słaboń [Mon, 20 Aug 2018 15:00:33 +0000 (17:00 +0200)]
[TRANSLATION] Polish translation update (#781)
In addition: fix the encoding of the comdlg32 and ntvdm polish resource files.
Katayama Hirofumi MZ [Mon, 20 Aug 2018 14:31:32 +0000 (23:31 +0900)]
[GDI32][APITESTS] Add GetGlyphOutline testcase (#776)
CORE-14928
Katayama Hirofumi MZ [Mon, 20 Aug 2018 14:14:18 +0000 (23:14 +0900)]
[BOOTDATA] Improve 'Open With' registry information (#586)
* use ""%1""
* double-quoted %1
* remove doubled quotes with rundll32
Jake Collins [Sun, 22 Jul 2018 17:24:27 +0000 (18:24 +0100)]
[MODERN.MSSTYLES] Add the initial version of the modern theme.
CORE-13020
Victor Perevertkin [Tue, 14 Aug 2018 14:51:03 +0000 (17:51 +0300)]
[BTRFSTOOLS] Added python scripts for inspecting BTRFS filesystem
internals
Victor Perevertkin [Sun, 12 Aug 2018 16:31:15 +0000 (19:31 +0300)]
[BTRFS] Applied upstream pull-requests before they are merged
Victor Perevertkin [Tue, 19 Jun 2018 01:00:52 +0000 (04:00 +0300)]
[FREELDR][BTRFS] Implemented BTRFS support in Free Loader. Now it supports case-insensitive path lookup, symlink folowing and reading uncompressed files.
Volume boot record is also implemented, it supports reading BTRFS tree structures with upto 64k node size.
This support required to change all path in Free Loader to lowercase for better performance.
CORE-13769
Victor Perevertkin [Wed, 13 Jun 2018 23:30:06 +0000 (02:30 +0300)]
[USETUP][SETUPLIB] Added support for formatting partition in BTRFS and installing ReactOS on it.
Removed code related to EXT2 boot sector for now.
CORE-13769
Eric Kohl [Sun, 19 Aug 2018 22:55:03 +0000 (00:55 +0200)]
[UMPNPMGR] Simplify PNP_GetDeviceRegProp
Eric Kohl [Sun, 19 Aug 2018 22:15:26 +0000 (00:15 +0200)]
[SETUPAPI] SetupDiGetDeviceRegistryPropertyW call CM_Get_DevNode_Registry_Property_ExW for properties that can not be retrieved from the registry
Katayama Hirofumi MZ [Sun, 19 Aug 2018 21:08:38 +0000 (06:08 +0900)]
[FONT][WIN32SS] Refactor the loop (1 of 5)
Katayama Hirofumi MZ [Sun, 19 Aug 2018 04:36:31 +0000 (13:36 +0900)]
[FONT][WIN32SS] Refactor the loop (2 of 5)
Katayama Hirofumi MZ [Sun, 19 Aug 2018 04:38:06 +0000 (13:38 +0900)]
[FONT][WIN32SS] Refactor the loop (4 of 5)
Katayama Hirofumi MZ [Sun, 19 Aug 2018 04:39:02 +0000 (13:39 +0900)]
[FONT][WIN32SS] Refactor the loop (5 of 5)
Katayama Hirofumi MZ [Sun, 19 Aug 2018 04:37:18 +0000 (13:37 +0900)]
[FONT][WIN32SS] Refactor the loop (3 of 5)
Timo Kreuzer [Sun, 19 Aug 2018 20:46:51 +0000 (22:46 +0200)]
[TRANSLATION] Polish translation of errcodes.mc (0-499) (#777)
Serge Gautherie [Sun, 19 Aug 2018 20:33:56 +0000 (22:33 +0200)]
[GDI32_APITEST] Remove broken EngDeleteSemaphore.c (#655)
- Checks are actually uses-after-free, "by design" :-<
- Actual test code duplicates EngCreateSemaphore.c, EngAcquireSemaphore.c and EngReleaseSemaphore.c.
Hermès Bélusca-Maïto [Sun, 22 Jul 2018 23:17:14 +0000 (01:17 +0200)]
[WIN32K:NTUSER] In UserSetProcessWindowStation(), use a duplicated window station handle to be set in the EPROCESS:Win32WindowStation cache.
Fixes most of the user32:desktop window station handle reference count tests.
Hermès Bélusca-Maïto [Sun, 22 Jul 2018 22:15:23 +0000 (00:15 +0200)]
[WIN32K:NTUSER] For processes that start without any window station and no desktops but manage these (e.g. winlogon.exe), assign their startup desktop when they assign a desktop to one of their threads.
Hermès Bélusca-Maïto [Sun, 22 Jul 2018 21:11:00 +0000 (23:11 +0200)]
[WIN32K:NTUSER] Add a temporary winsta/desktop-connection hack for CSRSS/USERSRV (connection to WinSta0).
Normally CSRSS must not be connected to any winsta or desktop by default. It should manually connect
to a winsta/desktop only when it has to do some GUI operations, and then disconnect afterwards.
[USERSRV] Temporarily hackfix the harderror dialog display to the current input desktop.
Hermès Bélusca-Maïto [Sun, 22 Jul 2018 18:45:16 +0000 (20:45 +0200)]
[INCLUDE][WINLOGON] Rename the STARTF_SCRNSAVER flag to STARTF_SCREENSAVER,
as documented in "Advanced Windows NT" by Jeffrey M. Richter (Microsoft Press),
and in https://is.muni.cz/el/1433/jaro2010/PB167/um/cv5/undocumented_CreateProcess.pdf .
[INCLUDE][SERVICES][WIN32K:NTUSER] Add an undocumented STARTF_INHERITDESKTOP flag
for the STARTUPINFO::dwFlags structure member, whose purpose is to tell Win32k
that the created handles to the window station and desktop to which the
process is connecting to, can be inherited by its child processes.
It is used when starting interactive services.
Observed via API monitoring on Windows 2003.
Hermès Bélusca-Maïto [Sun, 22 Jul 2018 18:38:46 +0000 (20:38 +0200)]
[WIN32K:NTUSER] NtUserCloseDesktop(): Use ObCloseHandle instead.
Hermès Bélusca-Maïto [Sun, 22 Jul 2018 18:38:26 +0000 (20:38 +0200)]
[WIN32K:NTUSER] Make NtUserResolveDesktop() and IntResolveDesktop() work in a more Win2k3-compatible manner.
CORE-11933 and PR #621.
Since this API is also called from WINSRV when calling the AllocConsole() API,
it can be tested more-or-less easily. The internal helper IntResolveDesktop()
is also tested during process connection to a window station, when such process
first calls a USER32 or GDI32 function.
This is also the functionality tested by the user32:desktop apitest.
- Adjust how IntResolveDesktop() is called.
Hermès Bélusca-Maïto [Sun, 22 Jul 2018 18:32:12 +0000 (20:32 +0200)]
[WIN32K:NTUSER] Code style fixes only.
Hermès Bélusca-Maïto [Sun, 22 Jul 2018 18:30:05 +0000 (20:30 +0200)]
[WIN32K:NTUSER] Rename some variables with more natural names.
Hermès Bélusca-Maïto [Sun, 22 Jul 2018 18:27:33 +0000 (20:27 +0200)]
[WIN32K:NTUSER] Split NtUserCreateDesktop() into the part that captures the user-mode data and the internal worker IntCreateDesktop() function, which will also be used later.
Hermès Bélusca-Maïto [Sun, 22 Jul 2018 18:22:49 +0000 (20:22 +0200)]
[WIN32K:NTUSER] Fixes for NtUserCreateWindowStation(), IntCreateWindowStation() and NtUserOpenWindowStation().
CORE-11933 and PR #621.
We are potentially going to modify the window station name to be
created or opened, by one with the format "Service-0x<luidhigh>-<luidlow>$",
in case the user provides an empty name.
Since we want to use the user-mode ObjectAttributes structure pointer so
that the Object manager can correctly perform the access checks and the
capture, we actually need to construct the new window station name in the
user memory space! This allows us then to fetch the new name in the
ObjectAttributes structure so that Ob can use it.
All of this is performed under SEH.
For NtUserOpenWindowStation(), we also need to be Windows-compatible and
detect whether user-mode gave instead the special "Service-0x00000000-
00000000$"
name (observed via API monitoring) that is used when one tries to open a
window station with empty name.
Hermès Bélusca-Maïto [Mon, 16 Jul 2018 23:47:59 +0000 (01:47 +0200)]
[WIN32K:NTUSER] Similarly to what was done in USERSRV for harderrors, introduce the _scwprintf() helper function based on the imported _vscwprintf().
Hermès Bélusca-Maïto [Sun, 17 Jun 2018 17:40:32 +0000 (19:40 +0200)]
[WIN32K:NTUSER] Get rid of the cached window station Name member, and instead just use the name stored in the NT Object's header.
CORE-11933 and PR #621.
- Remove the related hack-FIXMEs;
- Adjust NtUserGetObjectInformation() in accordance.
- Retrieve the window-station/desktop object type string in NtUserGetObjectInformation()
also from the NT Object's header.
Also simplify the UOI_FLAGS case of NtUserGetObjectInformation() by reading
the handle inheritance information directly from the OBJECT_HANDLE_INFORMATION
structure returned by ObReferenceObjectByHandle().
Hermès Bélusca-Maïto [Sat, 16 Jun 2018 17:45:20 +0000 (19:45 +0200)]
[WIN32K:NTUSER] Detect when the NtUserCreateWindowStation() caller has provided an empty window station name, and if so, generate a name in the format: "Service-0x<luidhigh>-<luidlow>$" .
CORE-11933 and PR #621.
Hermès Bélusca-Maïto [Sat, 16 Jun 2018 17:45:07 +0000 (19:45 +0200)]
[WIN32K:NTUSER] Split NtUserCreateWindowStation() into the part that captures the user-mode data and the internal worker IntCreateWindowStation() function, which will also be used later.
Add a FIXME note about how we currently handle the window station name.
Hermès Bélusca-Maïto [Sat, 16 Jun 2018 17:44:56 +0000 (19:44 +0200)]
[WIN32K:NTUSER] In UserCreateWinstaDirectory(), use a string-safe printf, and use OBJ_KERNEL_HANDLE as well as a suitable desired access value in a ZwCreateDirectoryObject() call.
Hermès Bélusca-Maïto [Sat, 16 Jun 2018 17:44:27 +0000 (19:44 +0200)]
[WIN32K:NTUSER] Add an extra optional "Process" parameter to the GetProcessLuid() function to be used alternatively in place of "Thread" to retrieve the LUID.
Hermès Bélusca-Maïto [Sat, 16 Jun 2018 17:44:15 +0000 (19:44 +0200)]
[WIN32K:NTUSER] Move the GetProcessLuid() function to the miscellaneous module.
Hermès Bélusca-Maïto [Sat, 16 Jun 2018 17:43:59 +0000 (19:43 +0200)]
[USER32] Implement the special case in CreateWindowStationW() that, when no window station name is provided (either NULL or empty string), does not open any WindowStation directory handle to be passed to the Win32k function.
Observed via API monitoring.
This corresponds to the case where Win32k creates a window station whose name is based on the logon session identifier for the calling process.
Add also a note about the fact that we need to use a per-session-based WindowStation directory name, as done already in Win32k.
CORE-11933 and PR #621.
Andrew Cook [Sun, 19 Aug 2018 20:01:31 +0000 (06:01 +1000)]
CORE-14513 [CMAKE] Remove modules that are shipped with cmake (#575)
* Remove unused cmake modules - Both are unedited versions of modules provided by cmake itself
* Remove Compiler/GNU.cmake - Only chang was various _INIT flags, which are handled
via CMAKE_USER_MAKE_RULES_OVERRIDE instead
* Remove Platform/Windows.cmake - There's no clear explination for this file being in reactos
and is simply an old version of the one in cmake
* Remove Platform/Windows-MSVC.cmake - _INIT variable changes moved to overrides-msvc.cmake
Remove /implib from link commands
* Remove CMakeDetermineASMCompiler.cmake - Only change from 3.2 is the addition of a compiler list for the generic ASM dialect, but toolchain files explicitly set a compiler so the list is never used
Bișoc George [Sun, 19 Aug 2018 19:42:57 +0000 (21:42 +0200)]
[OSK] Some enhancements for locales IT and RO (#416)
* Window element improvements for Italian and Romanian
Petr Akhlamov [Sun, 19 Aug 2018 19:40:58 +0000 (22:40 +0300)]
[OSK] Rearrange window elements for ru-RU and en-US locales (#412)
* Resize osk window at RU and EN(US) languages
Pierre Schweitzer [Sun, 19 Aug 2018 18:50:55 +0000 (20:50 +0200)]
[NETSHELL] Update French translation to reflect
0725098
Stanislav Motylkov [Sun, 5 Aug 2018 13:39:51 +0000 (16:39 +0300)]
[NTOS:EX] Implement SystemFirmwareTableInformation class
Stanislav Motylkov [Sun, 5 Aug 2018 08:48:25 +0000 (11:48 +0300)]
[KERNEL32] Implement system firmware functions properly
Stanislav Motylkov [Sun, 5 Aug 2018 08:38:20 +0000 (11:38 +0300)]
[KERNEL32_APITEST] Add SystemFirmwareTableInformation tests
Thanks goes to Mark Jansen for help!
Serge Gautherie [Thu, 24 May 2018 20:00:01 +0000 (22:00 +0200)]
[APPVEYOR] Add 'BuildType: vssolution'
Disabled by default, though ready to be enabled.
Denis Malikov [Fri, 2 Feb 2018 22:03:17 +0000 (05:03 +0700)]
[UPDATES] New stubs for Automatic Updates service and WUSA.exe. Presence of this modules required for installation by some NT6+ applications.
Paweł Cholewa [Sun, 19 Aug 2018 17:47:26 +0000 (19:47 +0200)]
[SDK][Translation] Polish translation update (#495)
* Polish translation update in neteventmsg.mc
Serge Gautherie [Sat, 23 Jun 2018 22:57:57 +0000 (00:57 +0200)]
[LOG2LINES] Enforce "Iso" type when unpacking the Iso file
Work around some "7z" dealing with files not named "*.iso" as "Cab" type.
Issue at least with "7-Zip [64] 9.20" on "Ubuntu 16.04".
CORE-14734
Mark Jansen [Sun, 5 Aug 2018 09:50:02 +0000 (11:50 +0200)]
[ATL_APITEST] Add test for CComQIPtr (or rather, our gcc hack that slightly looks like it)
Mark Jansen [Sun, 5 Aug 2018 09:48:31 +0000 (11:48 +0200)]
[ATL] Improve the order of operations in CComPtr and CComQIIDPtr
EUPHORIA-IT\m.jansen [Sun, 19 Aug 2018 14:13:55 +0000 (16:13 +0200)]
[WSHOM.OCX] Zero-initialize timeout and type if they are not set.
This should fix buildbot timeouts
Eric Kohl [Sun, 19 Aug 2018 12:31:43 +0000 (14:31 +0200)]
[SYSSETUP] SetupStartService: Remove the wait loop
CORE-14909
Manuel Bachmann [Thu, 2 Nov 2017 01:06:50 +0000 (02:06 +0100)]
[NTDLL][NTUSER] Fix unselected text after WM_CBLOSTTEXTFOCUS
When we unselect text after the WM_CBLOSTTEXTFOCUS message,
make sure we also forget we have been focused at all;
otherwise the edit may become focused again, but with an
empty text selection.
CORE-10266
Thomas Faber [Sun, 19 Aug 2018 11:28:06 +0000 (13:28 +0200)]
[WINED3D] Yield CPU to the scheduler in wined3d_pause. CORE-14637 CORE-14534
Much like the previous commit, this is a workaround for our buggy Win32k.
Thomas Faber [Sun, 19 Aug 2018 11:27:04 +0000 (13:27 +0200)]
[WINED3D] Avoid spinning in wined3d_cs_run. CORE-14534
Spinning here is supposed to improve performance by avoiding scheduling
overhead, but because ReactOS's Win32 subsystem does not deal with this well,
it causes the system to freeze on ROS.
As a workaround, we disable spinning and jump directly to the wait.
It should become obvious when this starts actually causing performance issues
again and it's time to undo.
Thomas Faber [Sun, 19 Aug 2018 10:02:17 +0000 (12:02 +0200)]
[USER32] Log the text of message boxes to help figure out some test bot timeouts.
Pierre Schweitzer [Sun, 19 Aug 2018 09:11:21 +0000 (11:11 +0200)]
[CDROM] Set proper status on disk verify
This avoids an assert under certain conditions in CDFS.
Check cdrom_new for reference.
CORE-14873
Pierre Schweitzer [Sun, 19 Aug 2018 07:55:38 +0000 (09:55 +0200)]
[FASTFAT] Don't delay any other close once shutdown has started
Pierre Schweitzer [Sun, 19 Aug 2018 07:55:03 +0000 (09:55 +0200)]
[FASTFAT] Magic values--
Eric Kohl [Sat, 18 Aug 2018 20:23:22 +0000 (22:23 +0200)]
[SCHEDSVC] Add stubs for the wlnotify control codes
Eric Kohl [Sat, 18 Aug 2018 20:19:14 +0000 (22:19 +0200)]
[WLNOTIFY] Use the wine debug method, add wlnotify to the build and fix some typos
Pierre Schweitzer [Sat, 18 Aug 2018 17:03:03 +0000 (19:03 +0200)]
[FASTFAT] Don't leak statistics on dismount
Pierre Schweitzer [Sat, 18 Aug 2018 17:00:42 +0000 (19:00 +0200)]
[FASTFAT] Reduce the usage of the generic allocation tag
And use tag compatible with MS FastFAT, to use debug with WinDBG
Pierre Schweitzer [Sat, 18 Aug 2018 15:04:02 +0000 (17:04 +0200)]
[FASTFAT] Implement delayed close
When we're about to close a file (ie, forget everything about it
and release any associated structure), actually delay it.
This allows keep data fresh in memory for faster reuse in case
it would be required. The effective closing will only happen after some time.
For specific operations, this will produce a real speed up in ReactOS.
For instance, with that patch, Winamp starts within seconds, instead of dozen
of minutes.
In most cases, it will bring ReactOS to performances it had before fixing
the huge leak in FastFAT (commit
94ead99) without leaking the whole FS.
For now, due to regressions, this is only activated for files and not
for directories. Once it gets fixed, it will be enabled for both.
CORE-14826
CORE-14917
Katayama Hirofumi MZ [Sat, 18 Aug 2018 16:36:47 +0000 (01:36 +0900)]
[CLIPBRD] Clipbrd program should accept the quoted file path (#638)
Mark Jansen [Sat, 18 Aug 2018 08:29:01 +0000 (10:29 +0200)]
[GDIPLUS] Add sxs registration for 1.0 version.
Needed by by some applications with MSVCR90.dll
CORE-14695
Timo Kreuzer [Sat, 18 Aug 2018 14:41:30 +0000 (16:41 +0200)]
[FREELDR] Don't insert a driver into the BootDriver list twice (#755)
This happened for the livecd, where the cdfs driver was inserted twice - once since it is the driver for the boot device, and the 2nd time, because it was specified in the registry - which was then initialized twice by the kernel, leading to a name conflict when trying to create another device object, which resulted in the newly created device object to be dereferenced again and the driver unloaded. This can be seen from the debug message "(ntoskrnl\mm\ARM3\sysldr.c:955) Leaking driver: cdfs.sys"
Eric Kohl [Sat, 18 Aug 2018 14:14:09 +0000 (16:14 +0200)]
[WLNOTIFY] Add SCard, Termsrv and Wlballon notifications and remove the test notifications
Katayama Hirofumi MZ [Sat, 18 Aug 2018 02:11:31 +0000 (11:11 +0900)]
[NETSHELL] Fix the too long texts
Timo Kreuzer [Sat, 18 Aug 2018 10:16:33 +0000 (12:16 +0200)]
[FREELDR] Fix calculation of page lookup table (#761)
On x64 we only map 1GB of pages, so adjust MM_MAX_PAGE accordingly and also respect that value when searching for the best location of the page lookup table.
CORE-11048 #resolve
Timo Kreuzer [Fri, 17 Aug 2018 12:50:22 +0000 (14:50 +0200)]
[USER32] Fix copying from WNDCLASS to WNDCLASSEX
This must be done field by field, since the alignment of the structures is different on _WIN64
Timo Kreuzer [Sat, 10 Feb 2018 22:57:27 +0000 (23:57 +0100)]
[NTOS:PS] Fix an issue with PROCESS_DEVICEMAP_INFORMATION size on 64 bit builds
The PROCESS_DEVICEMAP_INFORMATION union has 2 fields, one is a handle, the other one is a structure of 36 bytes (independent of architecture). The handle forces 64 bit alignment on 64 bit builds, making the structure 4 bytes bigger than on 32 bit builds. The site is checked in NtQueryInformationProcess (case ProcessDeviceMap). The expected size on x64 is the size of the Query structure without alignment. autocheck correctly passes the site of the Query union member, while smss passes the full size of PROCESS_DEVICEMAP_INFORMATION. Packing the structure is not an option, since it is defined in public headers without packing. Using the original headers sizeof(PROCESS_DEVICEMAP_INFORMATION) is 0x28, sizeof(PROCESS_DEVICEMAP_INFORMATION::Query) is 0x24.
Hermès Bélusca-Maïto [Fri, 17 Aug 2018 19:49:16 +0000 (21:49 +0200)]
[USER32] Implement support for the MB_SERVICE_NOTIFICATION flag in the MessageBox*() APIs.
Hermès Bélusca-Maïto [Fri, 17 Aug 2018 19:46:50 +0000 (21:46 +0200)]
[ROSTESTS] Add a test for the MB_SERVICE_NOTIFICATION flag of the MessageBox*() APIs.
Hermès Bélusca-Maïto [Fri, 17 Aug 2018 19:44:44 +0000 (21:44 +0200)]
[ROSTESTS] Rename the "softmodalmsgbox" test to "messagebox".
Timo Kreuzer [Tue, 13 Feb 2018 20:33:04 +0000 (21:33 +0100)]
[NTOS:OB] Rename object types to their official names to satisfy WinDbg
- Rename ObDirectoryType to ObpDirectoryObjectType and remove it from NDK (this is not exported!)
- Rename ObSymbolicLinkType to ObpSymbolicLinkObjectType
- Remove duplicated ObpTypeObjectType from ob.h
Pierre Schweitzer [Fri, 17 Aug 2018 17:12:30 +0000 (19:12 +0200)]
[NTOSKRNL] Properly initialize the IO_STATUS_BLOCK
Joachim Henze [Fri, 17 Aug 2018 16:07:35 +0000 (18:07 +0200)]
[SHELL32] Translation de-DE CORE-14916
fix control overlapping in IDD_FOLDER_OPTIONS_FILETYPES
(broke in 0.4.10-dev-24-
ed1c6bb0060d06f4c0167d9c2d732f4dc2b4cce4)
and translate IDD_NEWEXTENSION, IDD_EDITTYPE, IDD_ACTION, IDD_FOLDER_CUSTOMIZE
Hermès Bélusca-Maïto [Thu, 16 Aug 2018 20:08:08 +0000 (22:08 +0200)]
[USER32] Update file description.
Hermès Bélusca-Maïto [Thu, 16 Aug 2018 20:04:48 +0000 (22:04 +0200)]
[USER32] Implement SoftModalMessageBox() based on the original MessageBoxTimeoutIndirectW().
Additional changes:
- Adapt the message-box dialog procedure to correctly take into account
the presence or absence of a CANCEL button and take appropriate actions.
- Cache the strings retrieved by MB_GetString() (add FIXME notices too).
Hermès Bélusca-Maïto [Thu, 16 Aug 2018 20:01:52 +0000 (22:01 +0200)]
[ROSTESTS] Add an interactive test for the user32.dll API SoftModalMessageBox().
Hermès Bélusca-Maïto [Sun, 12 Aug 2018 16:16:29 +0000 (18:16 +0200)]
[USER32] Code refactoring for MessageBoxTimeoutIndirectW(), in preparation for SoftModalMessageBox() implementation.
- Remove usage of ButtonLen and ibtn-pointer arrays, to make the code
more generic and less dependent on the (maximal) number of buttons
in the message boxes.
- Move around the code that computes the positions and sizes of the
window controls.
Hermès Bélusca-Maïto [Fri, 10 Aug 2018 19:38:09 +0000 (21:38 +0200)]
[USER32] Get rid of the old MSGBOXINFO structure and use the new internal MSGBOXDATA structure instead.
Hermès Bélusca-Maïto [Fri, 10 Aug 2018 19:29:45 +0000 (21:29 +0200)]
[USER32] Code formatting only.
Hermès Bélusca-Maïto [Fri, 10 Aug 2018 16:20:53 +0000 (18:20 +0200)]
[USER32] Specify the font to be used for the message-box in its dialog template, using DS_SETFONT and a font point size of 0x7FFF, instead of passing a font handle and setting the font of each control manually.
Also improve the flags used in the DrawTextW() call for calculating
the size to be taken by the message-box text.
Hermès Bélusca-Maïto [Tue, 20 Feb 2018 22:07:11 +0000 (23:07 +0100)]
[SDK][UNDOCUSER] Add undocumented user32.dll SoftModalMessageBox() definition and its structure MSGBOXDATA.
Documented on http://www.vbforums.com/showthread.php?840593-Message-Box-with-Four-Buttons
and augmented from my own testings.
In addition, add also MessageBoxTimeoutA/W() and MB_GetString().