reactos.git
8 years ago[NTOSKRNL]
Pierre Schweitzer [Tue, 1 Sep 2015 22:32:55 +0000 (22:32 +0000)]
[NTOSKRNL]
Fix KdpPrompt():
- Don't attempt to return in the middle of the loop. It leads to keep the mouse disabled instead of reenabling it.
- Also, return a string length that actually matches what was written to the output buffer.

This fixes invalid behavior on RtlAssert when used with #if 0 moved to #if 1, or when Windows NTDLL is used in ReactOS.

CORE-10082 #resolve #comment Fixed with r68905
CORE-10083 #resolve #comment Fixed with r68905

svn path=/trunk/; revision=68905

8 years ago[Win32SS|UxTheme]
James Tabor [Tue, 1 Sep 2015 22:10:13 +0000 (22:10 +0000)]
[Win32SS|UxTheme]
- Move Menu to server side. See CORE-7797 and CORE-8299.
- This was for speed while moving windows about the desktop and fixed test results too.

svn path=/trunk/; revision=68904

8 years ago- Move misplaced RtlPrefetchMemoryNonTemporal from rtl into kernel where it belongs...
Stefan Ginsberg [Tue, 1 Sep 2015 19:51:52 +0000 (19:51 +0000)]
- Move misplaced RtlPrefetchMemoryNonTemporal from rtl into kernel where it belongs (it only exists as an export for use by drivers to safely try to use prefetchnta even if it may not be available). Use existing global KePrefetchNTAGranularity that is set to the correct value via cpuid instead of hardcoded "Ke386CacheAlignment".

svn path=/trunk/; revision=68903

8 years ago[NTOS:KE]
Thomas Faber [Tue, 1 Sep 2015 18:26:29 +0000 (18:26 +0000)]
[NTOS:KE]
- Enable DPC timeout check on debug builds. Suggested by Stefan

svn path=/trunk/; revision=68902

8 years ago[NTOS:EX]
Thomas Faber [Tue, 1 Sep 2015 17:52:09 +0000 (17:52 +0000)]
[NTOS:EX]
- Remove the timer's list entry instead of the list head in NtSetTimer and NtCancelTimer. Fixes list entry corruption on VMware Hybrid builder
CORE-10081 #resolve

svn path=/trunk/; revision=68901

8 years ago[NTOSKRNL]
Pierre Schweitzer [Tue, 1 Sep 2015 17:32:34 +0000 (17:32 +0000)]
[NTOSKRNL]
Fix MSVC build?

svn path=/trunk/; revision=68900

8 years ago[NTOSKRNL]
Pierre Schweitzer [Tue, 1 Sep 2015 17:23:56 +0000 (17:23 +0000)]
[NTOSKRNL]
Probe buffers in case they come from user-mode in KdpPrint() and KdpPrompt().
This fixes two fixme.

svn path=/trunk/; revision=68899

8 years ago[CRT]
Thomas Faber [Tue, 1 Sep 2015 14:57:30 +0000 (14:57 +0000)]
[CRT]
- Rewrite _fpreset based on Wine. Fixes the last kernel32:thread test failure

svn path=/trunk/; revision=68898

8 years ago[NETAPI32]
Thomas Faber [Tue, 1 Sep 2015 14:09:51 +0000 (14:09 +0000)]
[NETAPI32]
- Correctly reallocate buffer in NetWkstaUserGetInfo. Fixes one of the many exceptions when running netapi32 tests with DPH.

svn path=/trunk/; revision=68897

8 years ago[PSDK]
Thomas Faber [Tue, 1 Sep 2015 14:07:06 +0000 (14:07 +0000)]
[PSDK]
- Sync access.idl and msinkaut.idl with Wine. Fixes MIDL warnings.

svn path=/trunk/; revision=68896

8 years ago[STOBJECT] only change the volume icon when the state changed
Christoph von Wittich [Tue, 1 Sep 2015 13:55:34 +0000 (13:55 +0000)]
[STOBJECT] only change the volume icon when the state changed

svn path=/trunk/; revision=68895

8 years ago- Fix what should hopefully be the last bug in the floating point state save/load...
Stefan Ginsberg [Tue, 1 Sep 2015 13:20:50 +0000 (13:20 +0000)]
- Fix what should hopefully be the last bug in the floating point state save/load code -- in KiNpxHandler check if the state is loaded before unloading it instead of checking if it is *unloaded* before... unloading it. Also clear up some comments.
- Thomas is da man.

svn path=/trunk/; revision=68894

8 years ago[EXPLORER]
David Quintana [Tue, 1 Sep 2015 12:32:05 +0000 (12:32 +0000)]
[EXPLORER]
* Remove old icons from the tray imagelist.

svn path=/trunk/; revision=68893

8 years ago[SHELL32]
Giannis Adamopoulos [Tue, 1 Sep 2015 10:18:40 +0000 (10:18 +0000)]
[SHELL32]
- Fix a hack that broke copying files after recent fixes.

svn path=/trunk/; revision=68892

8 years ago- You know what, NT_ASSERT is awesome.
Stefan Ginsberg [Tue, 1 Sep 2015 09:25:18 +0000 (09:25 +0000)]
- You know what, NT_ASSERT is awesome.

svn path=/trunk/; revision=68891

8 years ago- Missed these. Goodbye NT_ASSERT.
Stefan Ginsberg [Tue, 1 Sep 2015 08:41:39 +0000 (08:41 +0000)]
- Missed these. Goodbye NT_ASSERT.

svn path=/trunk/; revision=68890

8 years ago[Win32k]
James Tabor [Tue, 1 Sep 2015 01:48:37 +0000 (01:48 +0000)]
[Win32k]
- Fix more ATI issues, pass more related tests. See CORE-6551.

svn path=/trunk/; revision=68889

8 years ago- Remove all NT_ASSERT from the kernel and replace with good old ASSERT, for ease...
Stefan Ginsberg [Tue, 1 Sep 2015 01:45:59 +0000 (01:45 +0000)]
- Remove all NT_ASSERT from the kernel and replace with good old ASSERT, for ease of debugging, especially for tests run on the build servers. There is no need to use NT_ASSERT in the kernel.
- The fish is long gone.

svn path=/trunk/; revision=68888

8 years ago- Fix link fix build.
Stefan Ginsberg [Tue, 1 Sep 2015 00:38:40 +0000 (00:38 +0000)]
- Fix link fix build.

svn path=/trunk/; revision=68887

8 years ago- Small patch to fix (delayed) loading of floating point state. Enables the special...
Stefan Ginsberg [Tue, 1 Sep 2015 00:20:57 +0000 (00:20 +0000)]
- Small patch to fix (delayed) loading of floating point state. Enables the special handling of fpu exceptions caused by frstor when used by the kernel, by implementing its use in assembly so the trap handler gets the instruction address it needs (for ALl compilers!). May or may not fix the fact that floating point state is not properly saved between threads.

See CORE-10005.

svn path=/trunk/; revision=68886

8 years ago[SHELL32]
Giannis Adamopoulos [Mon, 31 Aug 2015 23:44:02 +0000 (23:44 +0000)]
[SHELL32]
- Rename SHELL32_BindToChild to SHELL32_BindToFS. Do not let it be used for guid items any more. Split SHELL32_GetCLSIDForDirectoryout of it and call it only when needed.
- Fix callers to use SHELL32_BindToGuidItem for guid items.
- Fix a bug in CFSFolder which marked folder items as files when a binding context was used.

svn path=/trunk/; revision=68885

8 years ago[SHELL32]
Giannis Adamopoulos [Mon, 31 Aug 2015 23:12:03 +0000 (23:12 +0000)]
[SHELL32]
- All shell folders must have the IPersistFolder. Hence their Initialize method is supposed to succeed for them to actually work.

svn path=/trunk/; revision=68884

8 years ago[VSSAPI] Import from Wine Staging 1.7.47. Thanks to Thomas Faber for his help. [PSDK...
Amine Khaldi [Mon, 31 Aug 2015 19:34:37 +0000 (19:34 +0000)]
[VSSAPI] Import from Wine Staging 1.7.47. Thanks to Thomas Faber for his help. [PSDK] Import vss.idl and vswriter.h from Wine Staging 1.7.47. CORE-9924 CORE-9965

svn path=/trunk/; revision=68883

8 years ago[SETUPAPI] Sync setupcab.c with Wine Staging 1.7.47. CORE-9924
Amine Khaldi [Mon, 31 Aug 2015 17:52:48 +0000 (17:52 +0000)]
[SETUPAPI] Sync setupcab.c with Wine Staging 1.7.47. CORE-9924

svn path=/trunk/; revision=68882

8 years ago[NTOS:EX]
Thomas Faber [Mon, 31 Aug 2015 13:53:14 +0000 (13:53 +0000)]
[NTOS:EX]
- Don't leak process reference in NtFlushInstructionCache. Spotted by Stefan

svn path=/trunk/; revision=68881

8 years ago[LSASRV]
Thomas Faber [Mon, 31 Aug 2015 13:46:38 +0000 (13:46 +0000)]
[LSASRV]
- Correctly call LsarClose in DsRolepGetBasicInfo

svn path=/trunk/; revision=68880

8 years ago[NETAPI32]
Thomas Faber [Mon, 31 Aug 2015 13:44:57 +0000 (13:44 +0000)]
[NETAPI32]
- Don't try to close the deleted user handle in NetUserDel

svn path=/trunk/; revision=68879

8 years agoFix build.
Giannis Adamopoulos [Mon, 31 Aug 2015 11:35:26 +0000 (11:35 +0000)]
Fix build.

svn path=/trunk/; revision=68878

8 years ago[SHELL32]
Giannis Adamopoulos [Mon, 31 Aug 2015 11:28:24 +0000 (11:28 +0000)]
[SHELL32]
- Make SHELL32_GetDisplayNameOfChild return the result via a STRRET. Fix all callers accordingly.
- Avoid any heap allocations if a shell folder needs to forward the GetDisplayNameOf call to a child.

svn path=/trunk/; revision=68877

8 years ago[NtGdi]
James Tabor [Sun, 30 Aug 2015 23:15:55 +0000 (23:15 +0000)]
[NtGdi]
- Fix color setting.

svn path=/trunk/; revision=68876

8 years ago[FREETYPE] Revert the 2.6.0 sync until we figure out what's causing the second stage...
Amine Khaldi [Sun, 30 Aug 2015 17:16:36 +0000 (17:16 +0000)]
[FREETYPE] Revert the 2.6.0 sync until we figure out what's causing the second stage bugcheck. CORE-10072

svn path=/trunk/; revision=68875

8 years ago[FREETYPE] Sync up to 2.6.0. CORE-10072
Amine Khaldi [Sun, 30 Aug 2015 15:54:09 +0000 (15:54 +0000)]
[FREETYPE] Sync up to 2.6.0. CORE-10072

svn path=/trunk/; revision=68874

8 years ago[SHELL32]
Giannis Adamopoulos [Sun, 30 Aug 2015 14:28:07 +0000 (14:28 +0000)]
[SHELL32]
- Remove SHELL32_GetItemAttributes for good. It is never a good idea to have one function that handles many types of pidls.

svn path=/trunk/; revision=68873

8 years ago[NTFS]
Pierre Schweitzer [Sun, 30 Aug 2015 13:05:20 +0000 (13:05 +0000)]
[NTFS]
No reason to keep NTFS disabled. Make it manually started (ie, by FsRec)

svn path=/trunk/; revision=68872

8 years ago[SERVICES]
Thomas Faber [Sun, 30 Aug 2015 09:52:57 +0000 (09:52 +0000)]
[SERVICES]
- Correctly copy group dependencies in ScmWriteDependencies (DPH)

svn path=/trunk/; revision=68871

8 years ago[TCPIP_DRVTEST]
Thomas Faber [Sun, 30 Aug 2015 09:31:23 +0000 (09:31 +0000)]
[TCPIP_DRVTEST]
- Handle errors to avoid uninitialized variable usage

svn path=/trunk/; revision=68870

8 years ago[LIBPNG] Sync up to 1.6.18. CORE-10071
Amine Khaldi [Sun, 30 Aug 2015 09:23:53 +0000 (09:23 +0000)]
[LIBPNG] Sync up to 1.6.18. CORE-10071

svn path=/trunk/; revision=68869

8 years ago[SHELL32]
Giannis Adamopoulos [Sun, 30 Aug 2015 08:51:18 +0000 (08:51 +0000)]
[SHELL32]
- Fix copy paste mistake in CDesktopFolder

svn path=/trunk/; revision=68868

8 years ago[ADVAPI32_APITEST]
Thomas Faber [Sun, 30 Aug 2015 08:37:13 +0000 (08:37 +0000)]
[ADVAPI32_APITEST]
- Do not call RtlInitUnicodeString on an unterminated string (DPH)

svn path=/trunk/; revision=68867

8 years ago[RTL]
Thomas Faber [Sun, 30 Aug 2015 07:26:26 +0000 (07:26 +0000)]
[RTL]
- Use the correct busy node pointer in RtlpPageHeapDestroy
CORE-9735 #resolve

svn path=/trunk/; revision=68866

8 years ago[SHELL32]
Giannis Adamopoulos [Sat, 29 Aug 2015 21:09:29 +0000 (21:09 +0000)]
[SHELL32]
- When binding to a drive item try to initialize the new CFSFolder using IPersistFolder3. That allows us to get the path of the drive right from the pidl instead of getting a new reference to the CDrivesFolder and using GetDisplayNameOf for the pidl.

svn path=/trunk/; revision=68865

8 years ago[NTOS:KD]: Disable to dprints.
Hermès Bélusca-Maïto [Sat, 29 Aug 2015 16:56:09 +0000 (16:56 +0000)]
[NTOS:KD]: Disable to dprints.

svn path=/trunk/; revision=68864

8 years ago[HAL]
Thomas Faber [Sat, 29 Aug 2015 16:45:00 +0000 (16:45 +0000)]
[HAL]
- Implement HalStartProfileInterrupt, HalSetProfileInterval, and HalpProfileInterruptHandler
Now kernrate works!
CORE-10066 #resolve

svn path=/trunk/; revision=68863

8 years ago[WINLOGON]
Eric Kohl [Sat, 29 Aug 2015 15:50:02 +0000 (15:50 +0000)]
[WINLOGON]
- Read notification DLL parameters.
- Use the Enabled value.

svn path=/trunk/; revision=68862

8 years ago[NDK][NTOS]
Thomas Faber [Sat, 29 Aug 2015 15:04:01 +0000 (15:04 +0000)]
[NDK][NTOS]
- Move KeProfileInterrupt[WithSource] declarations to NDK since they're exported
- NtCreateProfile's fourth parameter is SIZE_T
- Add NtCreateProfileEx prototype
CORE-10066

svn path=/trunk/; revision=68861

8 years ago[NTOS]
Thomas Faber [Sat, 29 Aug 2015 14:35:02 +0000 (14:35 +0000)]
[NTOS]
- Fix GCC build

svn path=/trunk/; revision=68860

8 years ago[NTOS:KE]
Thomas Faber [Sat, 29 Aug 2015 14:30:29 +0000 (14:30 +0000)]
[NTOS:KE]
- Fix swapped parameters of KeSetIntervalProfile
- Calculate the correct bucket pointer in KiParseProfileList, and actually increment the counter
CORE-10066

svn path=/trunk/; revision=68859

8 years ago[NTOS:EX]
Thomas Faber [Sat, 29 Aug 2015 14:14:43 +0000 (14:14 +0000)]
[NTOS:EX]
- Fix MDL leak in NtStopProfile
CORE-10066

svn path=/trunk/; revision=68858

8 years ago[HAL]: Addendum for r68856
Hermès Bélusca-Maïto [Sat, 29 Aug 2015 14:09:57 +0000 (14:09 +0000)]
[HAL]: Addendum for r68856

svn path=/trunk/; revision=68857

8 years ago[HAL]
Thomas Faber [Sat, 29 Aug 2015 14:04:57 +0000 (14:04 +0000)]
[HAL]
- IRQ 8 belongs to the slave PIC, so send EOI appropriately
CORE-10066

svn path=/trunk/; revision=68856

8 years ago[i8042prt]
Hermès Bélusca-Maïto [Sat, 29 Aug 2015 13:53:55 +0000 (13:53 +0000)]
[i8042prt]
Improve debugging experience when pressing Tab+k, at least with WinDBG, by breaking with a suitable control code (adopt the SysRq one even if we don't use SysRq key for breaking, but instead, Tab+k).

svn path=/trunk/; revision=68855

8 years ago[NTOS]
Hermès Bélusca-Maïto [Sat, 29 Aug 2015 12:53:08 +0000 (12:53 +0000)]
[NTOS]
Addendum to r68851:
- Reset the state of the worker thread *after* having captured the data, not before.
- Fix the explanations given in comments.

svn path=/trunk/; revision=68854

8 years ago[FUSION]
Thomas Faber [Sat, 29 Aug 2015 07:41:52 +0000 (07:41 +0000)]
[FUSION]
- Add missing psdk dependency to fusion_common

svn path=/trunk/; revision=68853

8 years ago[NTOS:EX]
Thomas Faber [Sat, 29 Aug 2015 07:35:59 +0000 (07:35 +0000)]
[NTOS:EX]
- Remove superfluous dereference in NtCreateProfile
- Allocate the right size for KPROFILE object
- Don't leak the KPROFILE when deleting an EPROFILE
- Avoid some casts
CORE-10066

svn path=/trunk/; revision=68852

8 years ago[NTOS]
Hermès Bélusca-Maïto [Sat, 29 Aug 2015 02:03:56 +0000 (02:03 +0000)]
[NTOS]
Implement the WinDBG Debugger Worker Thread, which is created inside a target process whenever one uses the ".process /i <addr>" (invasive debugging) command using WinDBG in kernel-mode debugging.
See https://www.microsoftpressstore.com/articles/article.aspx?p=2201303&seqNum=2 section "Switching the Current Process Context" (from the book "Inside Windows Debugging" by Tarik Soulami, pp.101-102) for more details.
The names of the variables must be kept as they are, because WinDBG (more exactly, dbgeng.dll) searches for them within the kernel symbols and retrieves their addresses (since those variables are not publicly exported).

svn path=/trunk/; revision=68851

8 years ago[NTDLL]
Hermès Bélusca-Maïto [Sat, 29 Aug 2015 01:56:11 +0000 (01:56 +0000)]
[NTDLL]
Make its version information compatible with the one of NTOSKRNL (and accessorily its resource file). Addendum to r25937.

svn path=/trunk/; revision=68850

8 years ago[SHELL32]
Giannis Adamopoulos [Fri, 28 Aug 2015 15:08:19 +0000 (15:08 +0000)]
[SHELL32]
- Only return the flags that the caller asked for in SHELL32_GetFSItemAttributes. Allows us to get rid of a hell lot of calls to CFSFolder::BindToChild which lead to many calls to FindFirstFile.

svn path=/trunk/; revision=68849

8 years ago[NTOS]
Hermès Bélusca-Maïto [Fri, 28 Aug 2015 14:01:58 +0000 (14:01 +0000)]
[NTOS]
Fix x64 compilation:
- Some KDBG symbols for win32k debugging are defined only in x86 platform when _WINKD_ is disabled.
- KdSetOwedBreakpoints is defined only if _WINKD_ is enabled, addendum for x64 to r68842.

svn path=/trunk/; revision=68848

8 years ago[CMD]
Thomas Faber [Fri, 28 Aug 2015 11:39:45 +0000 (11:39 +0000)]
[CMD]
- Avoid statically importing FindFirstStreamW/FindNextStreamW so that our cmd.exe can work on WinXP.
- Accept lowercase /r switch

svn path=/trunk/; revision=68847

8 years ago[CMD]
Thomas Faber [Fri, 28 Aug 2015 10:51:10 +0000 (10:51 +0000)]
[CMD]
- In DirList, initialize stInfo.ptrHead of the dummy node to avoid invalid memory access. Fixes regression in cmd:batch

svn path=/trunk/; revision=68846

8 years ago[SHELL32]
Giannis Adamopoulos [Fri, 28 Aug 2015 10:36:35 +0000 (10:36 +0000)]
[SHELL32]
- Sync control.c from wine and disable a large part of it that is not needed. Also update the definition of CPlApplet to match wine.
- Make CControlPanel use the new definition of CPlApplet which lets us simplify loading the applets.
- Make CControlPanel to only use unicode and use the new helper functions.
- Simplify the code for the context menu of cpl items.

svn path=/trunk/; revision=68845

8 years ago[SHELLUTILS]
Giannis Adamopoulos [Fri, 28 Aug 2015 10:32:02 +0000 (10:32 +0000)]
[SHELLUTILS]
- Add a helper function SHSetStrRet that will simplify setting the contents of a STRRET.

svn path=/trunk/; revision=68844

8 years ago[CMAKE] Fix broken PCH handling since r67483.
Amine Khaldi [Fri, 28 Aug 2015 09:24:39 +0000 (09:24 +0000)]
[CMAKE] Fix broken PCH handling since r67483.

svn path=/trunk/; revision=68843

8 years ago[NTOSKRNL]
Pierre Schweitzer [Fri, 28 Aug 2015 06:19:31 +0000 (06:19 +0000)]
[NTOSKRNL]
Fix build

svn path=/trunk/; revision=68842

8 years ago[NTOS:KD]
Hermès Bélusca-Maïto [Fri, 28 Aug 2015 03:03:26 +0000 (03:03 +0000)]
[NTOS:KD]
- Fix the condition check when setting twice (or more) the same breakpoint.
- Implement support for deferred breakpoints. For more information, see: http://www.osronline.com/article.cfm?article=541 (which also exposes an interesting problem about them).

svn path=/trunk/; revision=68841

8 years ago[CMAKE] Introduce a way to use auto generation using bison and flex. Dedicated to...
Amine Khaldi [Thu, 27 Aug 2015 23:00:49 +0000 (23:00 +0000)]
[CMAKE] Introduce a way to use auto generation using bison and flex. Dedicated to Eric Kohl. CORE-10055

svn path=/trunk/; revision=68840

8 years ago[CMAKE] Add and use baseaddress_msvc.cmake.
Amine Khaldi [Thu, 27 Aug 2015 22:35:06 +0000 (22:35 +0000)]
[CMAKE] Add and use baseaddress_msvc.cmake.

svn path=/trunk/; revision=68839

8 years ago[CMAKE] Update baseaddress.cmake.
Amine Khaldi [Thu, 27 Aug 2015 22:33:07 +0000 (22:33 +0000)]
[CMAKE] Update baseaddress.cmake.

svn path=/trunk/; revision=68838

8 years ago[NTFS]
Pierre Schweitzer [Thu, 27 Aug 2015 21:02:52 +0000 (21:02 +0000)]
[NTFS]
Return proper status

svn path=/trunk/; revision=68836

8 years ago[NTFS]
Pierre Schweitzer [Thu, 27 Aug 2015 20:56:08 +0000 (20:56 +0000)]
[NTFS]
It seems that our disk.sys returns "unknown" media type when performing IOCTL_DISK_GET_DRIVE_GEOMETRY on an extended partition.
Not sure how Windows handles this (if any volunteer for a test :-)), in the meantime, forcibly sector size to 512B to allow NTFS driver opening volumes on extended partitions

svn path=/trunk/; revision=68835

8 years ago[SHELL32]
David Quintana [Thu, 27 Aug 2015 16:37:13 +0000 (16:37 +0000)]
[SHELL32]
The desktop.ini file is only meant to be read if the folder has the R (read-only) or S (system) attributes.
If this causes your favorite folder to stop showing the icon, use "attrib +r <foldername>" or edit it from the properties dialog.
When we add the desktop.ini files, we will also need to add the R attribute to their respective folders.
Followup to CORE-9002

svn path=/trunk/; revision=68834

8 years ago[NTOBJSHEX]
David Quintana [Wed, 26 Aug 2015 23:35:38 +0000 (23:35 +0000)]
[NTOBJSHEX]
* Fix comment headers.

svn path=/trunk/; revision=68833

8 years ago[NTOBJSHEX]
David Quintana [Wed, 26 Aug 2015 23:30:47 +0000 (23:30 +0000)]
[NTOBJSHEX]
* Now that we use lazy enumeration instead of keeping a full list of all items, I was able to simplify a few things.

svn path=/trunk/; revision=68832

8 years ago[DISKPART]
Hermès Bélusca-Maïto [Wed, 26 Aug 2015 22:53:20 +0000 (22:53 +0000)]
[DISKPART]
- Russian translation update by tower.
- Fixup the other translations.

svn path=/trunk/; revision=68831

8 years ago[NTFS]
Pierre Schweitzer [Wed, 26 Aug 2015 18:55:53 +0000 (18:55 +0000)]
[NTFS]
Fix two memory leaks

svn path=/trunk/; revision=68830

8 years ago[NTFS]
Pierre Schweitzer [Wed, 26 Aug 2015 18:20:04 +0000 (18:20 +0000)]
[NTFS]
Totally rewrite the way MFT records attributes are handled.
Up to now, we were having really similar loops, only looking at the resident part of the attribute list, not really caring about how the loop was going.

This was leading to some issues:
- In case the attribute we were looking for was stored in the non-resident part of the attribute list, we would miss it (excepted in the case of FindAttribute() which was properly browsing the whole attribute list).
- In the specific case of FindAttribute(), one would have been able to setup a broken MFT record with the resident attribute list pointing on the non resident attribute list which itself would point to the resident attribute list. In such case, the driver would loop forever caught on the loop, allocating tones of memory. It was possible to trigger this by user space, from a non-privileged user, just by browsing the right directory entry.
- In the case of the other loops (non FindAttribute()), another issue (other than missing attributes) was present, one would have been able to setup a broken MFT record with an attribute of null-length. This would have caused the driver to loop forever on the attribute list. This could be triggered from usermode too. And could be triggered by a non-privileged user.

This commit introduces a new set of functions for attributes browsing: FindFirstAttribute(), FindNextAttribute(), FindCloseAttribute(). It allows safely browsing attributes and handles broken cases. It also performs reading of the attribute list when present and makes sure there's only one read. This method should be the only one to use to browse the attributes.
The whole NTFS code base has been converted to use this newly set of functions. This really simplifies the implementation of FindAttribute(), and prevent unsafe code duplication.

CORE-10037 #resolve #comment Fixed with r68829

svn path=/trunk/; revision=68829

8 years ago[SHELL32]
David Quintana [Wed, 26 Aug 2015 17:31:42 +0000 (17:31 +0000)]
[SHELL32]
* Fix loading icon info from dekstop.ini. Also took the chance to remove some unnecessary convolution. The old code tried to load the info, but didn't actually make use of the returned string at all.
CORE-9002 #resolve #comment Icon loading should work now. Adding the default desktop.ini files in the right folders will be a followup issue.

svn path=/trunk/; revision=68828

8 years ago[NTVDM]
Hermès Bélusca-Maïto [Wed, 26 Aug 2015 01:26:33 +0000 (01:26 +0000)]
[NTVDM]
- Towards a complete fix of VGA console attach/detach: a lot of progress is made but few little things need to be checked/adjusted.
- Fix text scroll (at least in text modes) by doing guest-to-guest moves, using the EmulatorCopyMemory function introduced in r68826.
- Fix the computation of the screen rows/columns values stored in the BDA, in graphics modes (in addition to the change of r68090), by dividing the graphics resolution by the character heights & widths. Correct values are indeed needed by some programs, eg. QBasic (I also add a CharacterWidth; normally it should be computable using the CRTC registers, and is always == 8 or 9, but still...).

svn path=/trunk/; revision=68827

8 years ago[NTVDM]
Hermès Bélusca-Maïto [Wed, 26 Aug 2015 00:37:50 +0000 (00:37 +0000)]
[NTVDM]
Introduce a function for doing guest-to-guest memory copies (given here in a temporary implementation until a proper one is developed). It will be used in my next commit.

svn path=/trunk/; revision=68826

8 years ago[CMD]
Daniel Reimer [Tue, 25 Aug 2015 21:19:30 +0000 (21:19 +0000)]
[CMD]
Update German translation by ... ME

svn path=/trunk/; revision=68825

8 years ago[CMD]
Pierre Schweitzer [Tue, 25 Aug 2015 20:39:53 +0000 (20:39 +0000)]
[CMD]
Remove an useless if

svn path=/trunk/; revision=68824

8 years ago[CMD]
Pierre Schweitzer [Tue, 25 Aug 2015 20:35:51 +0000 (20:35 +0000)]
[CMD]
Implement switch /R for dir command.
It allows enumerating alternate data streams of files

Commit dedicated to Ged

svn path=/trunk/; revision=68823

8 years ago[NTFS]
Pierre Schweitzer [Tue, 25 Aug 2015 20:11:53 +0000 (20:11 +0000)]
[NTFS]
Properly set StreamNameLength (with the length of extra data we append).
This fixes truncated output from FindFirstStreamW/FindNextStreamW

svn path=/trunk/; revision=68822

8 years agoSome fixes to the scf file registry entry; added some missing entries (patch by gonzoMD)
Benedikt Freisen [Tue, 25 Aug 2015 14:24:41 +0000 (14:24 +0000)]
Some fixes to the scf file registry entry; added some missing entries (patch by gonzoMD)

svn path=/trunk/; revision=68821

8 years ago[PSDK] Add methods to Gdiplus::Color
Benedikt Freisen [Tue, 25 Aug 2015 14:13:19 +0000 (14:13 +0000)]
[PSDK] Add methods to Gdiplus::Color

svn path=/trunk/; revision=68820

8 years ago[NTVDM]: Initialize the correct buffer! (aka. fix confusion between ConsoleFramebuffe...
Hermès Bélusca-Maïto [Tue, 25 Aug 2015 12:46:40 +0000 (12:46 +0000)]
[NTVDM]: Initialize the correct buffer! (aka. fix confusion between ConsoleFramebuffer and Graphics Framebuffer; fixes text -> graphic transitions). Addendum for r68812

svn path=/trunk/; revision=68819

8 years ago[SHELL32]: Add the trailing '...' after the "Run as" command in order to indicate...
Hermès Bélusca-Maïto [Tue, 25 Aug 2015 12:18:32 +0000 (12:18 +0000)]
[SHELL32]: Add the trailing '...' after the "Run as" command in order to indicate more information is needed before performing the action.
CORE-10039 #comment '...' added in r68818.

svn path=/trunk/; revision=68818

8 years ago[FREELDR]: Fix typo in comment, spotted by "middings". CORE-10040 #resolve
Hermès Bélusca-Maïto [Tue, 25 Aug 2015 11:55:36 +0000 (11:55 +0000)]
[FREELDR]: Fix typo in comment, spotted by "middings". CORE-10040 #resolve

svn path=/trunk/; revision=68817

8 years ago[NTVDM]: Correctly set last (and returned) errors when we fail at reallocating a...
Hermès Bélusca-Maïto [Tue, 25 Aug 2015 01:48:17 +0000 (01:48 +0000)]
[NTVDM]: Correctly set last (and returned) errors when we fail at reallocating a memory block (in case this is the last block), or if the block is invalid. Do the same stuff also for few other memory functions.

svn path=/trunk/; revision=68816

8 years ago[FAST486]
Aleksandar Andrejevic [Mon, 24 Aug 2015 20:55:09 +0000 (20:55 +0000)]
[FAST486]
If FAST486_PREFIX_SEG is set, we're supposed to use the override segment
instead of DS, and not the other way around.

svn path=/trunk/; revision=68815

8 years ago[NTFS]
Pierre Schweitzer [Mon, 24 Aug 2015 20:40:54 +0000 (20:40 +0000)]
[NTFS]
Remove leftover code

svn path=/trunk/; revision=68814

8 years agoReplace LPVOID by PVOID everywhere!
Hermès Bélusca-Maïto [Mon, 24 Aug 2015 19:02:07 +0000 (19:02 +0000)]
Replace LPVOID by PVOID everywhere!

svn path=/trunk/; revision=68813

8 years ago[NTVDM]
Hermès Bélusca-Maïto [Mon, 24 Aug 2015 19:00:27 +0000 (19:00 +0000)]
[NTVDM]
- Correctly sync ConsoleFramebuffer when we attach/detach VGA from the console (fix memory corruptions introduced by r68720).
- Fix few comments in the process.

svn path=/trunk/; revision=68812

8 years ago[NTFS]
Pierre Schweitzer [Mon, 24 Aug 2015 09:52:30 +0000 (09:52 +0000)]
[NTFS]
Support full data stream name on open (i.e., stream name finished with :$DATA)

svn path=/trunk/; revision=68811

8 years ago[NTFS]
Pierre Schweitzer [Mon, 24 Aug 2015 08:45:28 +0000 (08:45 +0000)]
[NTFS]
Fix returned status code, spotted by Thomas

svn path=/trunk/; revision=68810

8 years ago[NTFS]
Pierre Schweitzer [Mon, 24 Aug 2015 08:43:26 +0000 (08:43 +0000)]
[NTFS]
Return properly formatted stream names, according to: https://msdn.microsoft.com/en-us/library/cc232090.aspx

svn path=/trunk/; revision=68809

8 years ago[NTFS]
Pierre Schweitzer [Mon, 24 Aug 2015 08:36:58 +0000 (08:36 +0000)]
[NTFS]
Implement FileStreamInformation class for IRP_MJ_QUERY_INFORMATION.
It allows enumerating streams for a given file

svn path=/trunk/; revision=68808

8 years agoFix few comments, no code changes.
Hermès Bélusca-Maïto [Mon, 24 Aug 2015 01:42:52 +0000 (01:42 +0000)]
Fix few comments, no code changes.

svn path=/trunk/; revision=68807

8 years ago[KERNEL32]
Hermès Bélusca-Maïto [Mon, 24 Aug 2015 01:32:00 +0000 (01:32 +0000)]
[KERNEL32]
- Move some #defines where they belong; use ARRAYSIZE(...) macro where appropriate.
- Use enumeration for the environment name types.
- Fix BaseCreateVDMEnvironment so that we only convert the paths of TEMP/TMP, PATH, WINDIR and SYSTEMROOT env values to their short form, as done on Windows. To that purpose use the BaseGetEnvNameType_U helper.
- Fix the loop that computed the needed new environment size.
Needed for CORE-9773.

svn path=/trunk/; revision=68806

8 years ago[HACKSSIGN]
Pierre Schweitzer [Sun, 23 Aug 2015 17:33:15 +0000 (17:33 +0000)]
[HACKSSIGN]
Fix typo, spotted by "Michele MZ Ji"

CORE-10033

svn path=/trunk/; revision=68805