Commit graph

83355 commits

Author SHA1 Message Date
Hervé Poussineau 29d80cb14f [WIN32SS:USER] Fall back to base video (ie VGA) if main display driver failed 2023-05-06 23:43:53 +02:00
Hervé Poussineau 6904b3f5ac [WIN32SS:USER] Remove assignation of gpPrimaryGraphicsDevice (already done in EngpUpdateGraphicsDeviceList) 2023-04-17 07:55:07 +02:00
Mark Jansen d3feae5139
[ATL_APITEST] Add test for OBJECT_ENTRY_AUTO
CORE-18936
2023-04-22 21:24:04 +02:00
Mark Jansen d12880829f
[ATL] Add OBJECT_ENTRY_AUTO for simpler com object registration
Of course gcc needs a nasty hack to include the symbol.
CORE-18936
2023-04-22 21:23:55 +02:00
Mark Jansen bf29d98a54
[PSDK] Add some more argument names 2023-04-22 18:31:49 +02:00
George Bișoc 8e7b22a631
[NTOS:OB] Fix the SAL2 annotation of ObQueryTypeInfo
The data has to be written into ObjectTypeInfo based on the return length,
not only what is provided by the input buffer length. Fix suggested by
Hermès.
2023-04-22 17:18:57 +02:00
George Bișoc 00c69bcd15
[NTOS:OB] Properly calculate the return length in ObQueryTypeInfo
On a x86 system aligning the return length pointer to a 4-byte boundary
works best since pointers in general are 4-byte aligned for x86 systems.

However, what happens on a AMD64 system is that we still align this pointer
to 4-byte, ObjectTypeInfo is a 8-byte pointer and we might write into
the return length past the 4-byte boundary.

If one were to allocate a pool of memory with that length and query all
the object types info and free the said pool of memory thereafter, the
system will crash with BAD_POOL_HEADER because ObQueryTypeInfo overwrote
the return length past the 4-byte boundary length therefore leading up with
corrupted memory blocks in the pool header.

This symptom of BAD_POOL_HEADER happens exactly the same in Windows Server
2003 x64 Edition. Newer versions of Windows like 10 aren't affected.

But, Windows has another bug where they are using MaximumLength for the
calculation of the needed length to be returned to caller. MaximumLength
does not guarantee you that it includes the NULL-terminator in the length
and that potentially leads to a buffer overrun.

Also annotate the ObQueryTypeInfo function with SAL2.

https://processhacker.sourceforge.io/doc/object_8c_source.html (read the
comment in KphObjectTypeInformation).
2023-04-21 12:45:31 +02:00
Atharva Kulkarni 6eee9f9daf
[SCSIPORT] Flush and Free Map Registers (#5190)
- Flush Map registers once the DMA completes
- Free Map registers once the DMA completes
- Add support for SGL allocated from NonPagedPool

Test:
Force Allocations of SGL from Non Paged Pool and ensure OS boots and functions properly

Test Logs:
SpiAdapterControlFORCING ALLOCATION FROM SGPOOL
SpiAdapterControlFORCING ALLOCATION FROM SGPOOL
SpiAdapterControlFORCING ALLOCATION FROM SGPOOL
SpiAdapterControlFORCING ALLOCATION FROM SGPOOL
SpiAdapterControlFORCING ALLOCATION FROM SGPOOL
SpiAdapterControlFORCING ALLOCATION FROM SGPOOL
DHCPCSVC: Adapter Name: [{7cd69ac0-dabb-410a-b927-cb3961d174da}] (dynamic)
SpiAdapterControlFORCING ALLOCATION FROM SGPOOL
WARNING:  HalCalculateScatterGatherListSize at hal\halx86\generic\dma.c:1168 is UNIMPLEMENTED!
SpiAdapterControlFORCING ALLOCATION FROM SGPOOL
SpiAdapterControlFORCING ALLOCATION FROM SGPOO
2023-04-21 12:44:31 +02:00
Adam Słaboń 6eb8fe4f82
[NTOS:MM] MmCanFileBeTruncated: Check whether second (optional) parameter was passed (#5248)
Second parameter is optional, so mark it as such and check whether it was passed. Fixes a sporadic 0x24 bugcheck caused by access violation when running ReactOS on NTFS volume with WinXP ntfs.sys.
2023-04-19 23:12:11 +02:00
Vincent Franchomme 058726a2c1
[I8042PRT] Add Dell Latitude D410 to the hack list (#5246) 2023-04-18 10:03:16 +02:00
Mark Jansen 6e35c75035
[GITHUB] Add Labeler rule for ATL 2023-04-17 18:12:27 +02:00
Mark Jansen 09afeeccf5
[GITHUB] Add Labeler rule for shell stuff 2023-04-17 18:12:26 +02:00
Mark Jansen 9c8580a1e0
[ATL] Add CString::AppendFormat 2023-04-17 18:09:34 +02:00
Timo Kreuzer 28a305e26a [USER32_APITEST] Comment out a test for GetMessageTime that randomly fails on Windows 2023-04-17 00:41:31 +03:00
Timo Kreuzer b292036347 [JSCRIPT_WINETEST] Disable a test that fails on Windows 2003 2023-04-17 00:41:31 +03:00
Timo Kreuzer 81d58bcf06 [NTDLL_APITEST] Fix a test for NtMapViewOfSection 2023-04-17 00:41:31 +03:00
Timo Kreuzer 7d4833cb34 [NTDLL_APITEST] Try to fix test for NtMapViewOfSection
Remove a 0 sized test.dll, which overwrites an already present proper test.dll
2023-04-17 00:41:31 +03:00
Timo Kreuzer 893f880b60 [WIN32KNT_APITEST] Disable test for NtGdiDdQueryDirectDrawObject 2023-04-17 00:41:31 +03:00
Timo Kreuzer 69de8de402 [STATIC_CRT_APITEST] Add todo to tests that fail on Windows 2023-04-17 00:41:31 +03:00
Timo Kreuzer 53d481993d [SHELL32_APITEST] Disable CUserNotification test
The test doesn't work on Windows 2003, because the balloon window does not close itself.
2023-04-17 00:41:31 +03:00
Timo Kreuzer 0181560848 [KERNEL32_APITEST] Make tests pass on Windows 2003 2023-04-17 00:41:31 +03:00
Timo Kreuzer e536256e0a [USER32_APITEST] Remove "ugly ros hack"
This hack corrupts memory and causes test failures on Windows.
2023-04-17 00:41:31 +03:00
Timo Kreuzer 8a455da532 [IPHLPAPI_APITEST] Fix tests so they pass on Windows 2003 and Windows 10 2023-04-17 00:41:31 +03:00
Timo Kreuzer 78a31ce423 [GDIPLUS_WINETEST] Make tests pass on Windows 2003 2023-04-17 00:41:31 +03:00
Hervé Poussineau 49246541de [WIN32SS:ENG] Do not free LDEV if unloading a driver failed
Currently, LDEVOBJ_bUnloadImage always returns FALSE due to missing functionality in ntoskrnl.
LDEVOBJ_vFreeLDEV contains an assert that driver is correctly unloaded before freeing it.
Prevent this assert by calling LDEVOBJ_vFreeLDEV only if LDEVOBJ_bUnloadImage succeed.

This can be easily triggered if DrvEnableDriver function (called in LDEVOBJ_bEnableDriver) fails.
2023-04-16 19:37:05 +02:00
Adam Słaboń 7d71456144 [MKISOFS] Fix MSVC build on ARM hosts
Check also for MSVC target machine macros on ARM
2023-04-16 18:53:54 +02:00
Thamatip Chitpong 42ef03381f [HHCTRL.OCX] Reduce ROS diff 2023-04-16 18:53:19 +02:00
Timo Kreuzer 93dface84e [PSEH] Change return type of filter function prototype to avoid broken return from inside it. 2023-04-14 11:56:08 +03:00
Timo Kreuzer cb74d9e24e [NTOS/CC] Fix broken usage of _SEH2_FINALLY
Finally handlers are - unlike except blocks - not part of the function they are in, but separate functions, which are called during unwind. PSEH implements them on GCC using nested functions. While "return" from a finally handler is allowed with native SEH, it's handled by the compiler through an extra unwinding operation using _local_unwind, WHICH IS NOT SUPPORTED BY PSEH! With PSEH, returning from a finally handler does not return from the function, instead it will only return from the finally handler and the function will continue below the finally handler as if there was no return at all. To fix this, the return is removed and an additional success check is added.
Also use _SEH_VOLATILE to make sure the variable assignment is not optimized away by the compiler and add zero out the result parameters on error.
2023-04-14 11:56:08 +03:00
Timo Kreuzer b2fcd27aaa [NTOS/CC] Fix calls to CcRosEnsureVacbResident
The function returns BOOLEAN, not NTSTATUS! Also wrap it in SEH, because it can throw an exception on failure.
2023-04-14 11:56:08 +03:00
Timo Kreuzer 178285c275 [USER32_WINETEST] Change module type to win32cui to be able to see test results 2023-04-14 11:47:29 +03:00
Mark Jansen 89f58017c0
[CODEOWNERS] Add Giannis and myself as reviewer for shell related stuff 2023-04-13 19:09:55 +02:00
Thamatip Chitpong 77d4653164
[NTUSER] co_UserDestroyWindow: Validate window before destroying it (#5054)
Prevent the window from being destroyed twice
fixes BSOD 0x1E CORE-18821
2023-04-12 22:20:46 +02:00
Thamatip Chitpong 15c755e5f9
[MMSYS] Improve sound test button (#4879)
- Make sound test button able to stop the sound (like WinXP's mmsys.cpl)
- Change stop icon
- Add documentation for GetSoundDuration
2023-04-12 22:00:37 +02:00
Hermès Bélusca-Maïto 99b0e4b9a9
[NTOS:KDBG] Only use the direct KdbPrintf instead of KdbpPrint (pager) inside the exception handler (outside the debugger main loop). 2023-04-12 19:30:57 +02:00
Hermès Bélusca-Maïto 9808d32f4a
[NTOS:KDBG] Use local KdbPrintf function for DPRINT1 instead of DbgPrint...
... that would otherwise cause a debugger re-entry.

Also use KdbPuts/Printf instead of KdpDprintf that won't be available
once KDBG is moved out of it.
2023-04-12 19:30:56 +02:00
Hermès Bélusca-Maïto f620ce7705
[NTOS:KDBG] Introduce local versions of KdpPrintString, KdpDprintf and KdpPromptString...
... since the original ones are internal to the kernel and won't be
available once KDBG is moved out of it.

Use these functions in the pager/prompt support.
2023-04-12 19:30:54 +02:00
Hermès Bélusca-Maïto fdf4814ebb
[NTOS:KDBG] Correctly balance KeStackAttachProcess with KeUnstackDetachProcess, instead of KeDetachProcess. 2023-04-11 00:44:11 +02:00
Hermès Bélusca-Maïto 579eab8a31
[NTOS] Include kdbg/kdb.h only in the files that really need it. 2023-04-11 00:44:10 +02:00
Katayama Hirofumi MZ 8f2c2c1def [COMCTL32][USER32] EDIT: Fix caret position for IME
CORE-11700
2023-04-10 08:27:50 +09:00
Katayama Hirofumi MZ 5ff0ef403e
[NTUSER] IntImmActivateLayout: Set CI_IMMACTIVATE if not pImeWnd (#5231)
In IntImmActivateLayout function, if pImeWnd was NULL and pti->spDefaultImc was non-NULL, then set CI_IMMACTIVATE flag. CORE-11700
2023-04-09 15:19:47 +09:00
Katayama Hirofumi MZ 66c8ded454
[COMCTL32][USER32] EDIT: CompForm and CandForm (#5226)
The changes of this PR are on EDIT controls.
- Delete composition_len and composition_start members.
- Add EDIT_ImmSetCompositionWindow helper function.
- At EDIT_SetCaretPos, set the position of the composition window.
- We don't use internal composition string. Rely on the composition window.
- Improve WM_IME_STARTCOMPOSITION, WM_IME_COMPOSITION and WM_IME_ENDCOMPOSITION message handling.
CORE-11700
2023-04-09 15:19:19 +09:00
Katayama Hirofumi MZ a9284b5664 [MSPAINT] Fix handle leaks about memory bitmap
This fixes CORE-18919. CORE-18867
2023-04-09 11:17:17 +09:00
Doug Lyons bfc6a119c5
[ADVAPI32] Do not fail on creating a registry key if the security attributes have an invalid length. (#5230)
Provide graceful handling of RegCreateKeyExW when lpSecurityAttributes->nLength is zero.
This reverts commit cc0716b65 (SVN r24491).
JIRA issue: CORE-15471
2023-04-09 04:04:04 +02:00
Katayama Hirofumi MZ 96c7fe4ccd [MSPAINT] Fix Copy and Paste
Call GetSelectionContents in SelectionModel::GetBitmap.
CORE-18920, CORE-18867
2023-04-09 09:14:32 +09:00
Katayama Hirofumi MZ 639739a7cd [MSPAINT] Fix SelectionModel::InsertFromHBITMAP bug
CORE-18867, CORE-18920
2023-04-09 09:01:14 +09:00
Katayama Hirofumi MZ f45d80adc9 [MSPAINT] Canvas: Don't draw new frame if HIT_NONE
CORE-18867
2023-04-09 08:49:18 +09:00
Katayama Hirofumi MZ 132f482de2 [MSPAINT] imageSaved = FALSE after image size change
...and redraw canvas after image resizing is canceled.
CORE-18867
2023-04-09 08:23:44 +09:00
Katayama Hirofumi MZ fc5311aaf2
[RAPPS] Calculate download listview position (#5232)
Correctly display Download ListView at right position in any languages. CORE-18706
2023-04-09 05:51:23 +09:00
Katayama Hirofumi MZ efe7368c46
[MSPAINT] Make imageArea window-less (#5215)
- Move imageArea code into canvasWindow.
- Delete imgarea.cpp, imgarea.h, and imageArea.
- Add CCanvasWindow::ImageToCanvas and CCanvasWindow::CanvasToImage to convert the coordinates.
- Realize drawing of resizing image area.
CORE-18867
2023-04-08 22:25:27 +09:00