Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys.
[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
[NTFS] Properly set StreamNameLength (with the length of extra data we append). This fixes truncated output from FindFirstStreamW/FindNextStreamW svn path=/trunk/; revision=68822
[NTFS] Fix returned status code, spotted by Thomas svn path=/trunk/; revision=68810
[NTFS] Return properly formatted stream names, according to: https://msdn.microsoft.com/en-us/library/cc232090.aspx svn path=/trunk/; revision=68809
[NTFS] Implement FileStreamInformation class for IRP_MJ_QUERY_INFORMATION. It allows enumerating streams for a given file svn path=/trunk/; revision=68808
[ARF] Fix build(tm) svn path=/trunk/; revision=68350
[NTFS] Return correct size in FileNetworkOpenInformation operation svn path=/trunk/; revision=68349
[FASTFAT] [NTFS] Remove useless cast and use appropriate macro. Spotted by Thomas svn path=/trunk/; revision=67911
[NTFS] Acquire FCB resource (shared) before trying to attempt its data svn path=/trunk/; revision=67910
[NTFS] Don't force the run-time priority boost in NtfsFsdDispatch(). Some dispatched MJ functions might want to adjust it (MJ_READ/MJ_WRITE/MJ_CREATE). The same should be actually done in FastFAT. I believe that would help avoiding several code duplications... svn path=/trunk/; revision=67624
[NTFS] Addendum to r67540: don't complete the IRP twice (NtfsQueryInformation() + NtfsFsdDispatch()). This fixes regression svn path=/trunk/; revision=67617
[NTFS] Handle the file query information IRP major with the dispatch routine svn path=/trunk/; revision=67540
[NTFS] - Store the link count in FCB and return it in FileStandardInformation query - Return the MFT index in NtfsGetInternalInformation query svn path=/trunk/; revision=65679
[NTFS] Make the NTFS driver more verbose in file information requests svn path=/trunk/; revision=65650
[NTFS] - Implement NtfsGetPositionInformation(), NtfsGetBasicInformation() - Add a fixme in NtfsGetStandardInformation() regarding the number of links svn path=/trunk/; revision=65468
[NTFS] Implement IRP_MJ_QUERY_INFORMATION/FileNetworkOpenInformation: We are now able to execute some binaries on a NTFS partition. svn path=/trunk/; revision=65204
[NTFS] Fix IRP_MJ_QUERY_INFORMATION/FileNameInformation, which should handle buffers not big enough svn path=/trunk/; revision=65203
[NTFS] Update headers svn path=/trunk/; revision=65202
[NTFS] * Remove one time inclusions from the main header and put them back where they belong. CORE-7716 svn path=/trunk/; revision=61869