reactos.git
6 years ago[NTFS] - Fix some more issues, including remaining issues marked as "unresolved"...
Trevor Thompson [Tue, 18 Jul 2017 19:59:36 +0000 (19:59 +0000)]
[NTFS] - Fix some more issues, including remaining issues marked as "unresolved" from CR-123:
-Add define for indexed flag for resident attributes, RA_INDEXED.
-CreateBTreeFromIndex() - Don't try to read index entries beyond attribute length.
-Move NtfsAddFileNameToDirectory() from dirctl.c to mft.c (no changes to function).
-SetResidentAttributeDataLength() - Don't try to free AttribData if it hasn't been allocated. Cast IndexRecord to PUCHAR for WriteAttribute(), and cast BitmapData to PCHAR for ReadAttribute() (make gcc happy).
-Replace magic number 16 with a define, NTFS_FILE_FIRST_USER_FILE.

svn path=/branches/GSoC_2016/NTFS/; revision=75371

6 years ago[NTFS] - Fix some formatting / style issues, per CR-123.
Trevor Thompson [Wed, 5 Jul 2017 22:10:22 +0000 (22:10 +0000)]
[NTFS] - Fix some formatting / style issues, per CR-123.

svn path=/branches/GSoC_2016/NTFS/; revision=75290

6 years ago[NTFS] - Add a few fixes and improvements, most from CR-123:
Trevor Thompson [Wed, 5 Jul 2017 16:29:16 +0000 (16:29 +0000)]
[NTFS] - Add a few fixes and improvements, most from CR-123:
-Add ATTR_RECORD_ALIGNMENT define to replace magic value of 8 when we need to adjust an attribute's beginning or length.
-Don't use int's.
-GetPackedByteCount() - Remove unused "bytes" variable.

svn path=/branches/GSoC_2016/NTFS/; revision=75288

6 years ago[NTFS] - Add some fixes and improvements to mft.c from CR-123:
Trevor Thompson [Wed, 5 Jul 2017 05:09:51 +0000 (05:09 +0000)]
[NTFS] - Add some fixes and improvements to mft.c from CR-123:
FindAttribute() - Use * sizeof(WCHAR) in place bit-shifting wizardry.
IncreaseMftSize() - Remove two useless casts. Return error code if WriteAttribute() fails.
SetNonResidentAttributeDataLength() - Assert that AttrContext parameter describes a NonResident attribute. When migrating a resident attribute to non-resident, don't leak memory if FsRtlInitializeLargeMcb() throws an exception, and don't mark the attribute as non-resident until after the Mcb is initialized.
InternalSetResidentAttributeLength() and SetResidentAttributeLength() - Assert that AttrContext parameter describes a resident attribute.
AddNewMftEntry() - Simplify math of backing up and restoring reserved bits by changing BitmapData to PUCHAR type. Don't attempt to modify a volume with more than 2^32 clusters.
AddFixupArray() - Use ULONG in place of int.

svn path=/branches/GSoC_2016/NTFS/; revision=75284

6 years ago[NTFS] - Add some fixes and improvements to finfo.c from CR-123:
Trevor Thompson [Wed, 5 Jul 2017 03:11:13 +0000 (03:11 +0000)]
[NTFS] - Add some fixes and improvements to finfo.c from CR-123:
NtfsSetEndOfFile() - Make fileNameAttribute and filename variables uppercase. Don't leak FileRecord if we can't truncate the file. Don't leak memory if there's no FileName attribute.

svn path=/branches/GSoC_2016/NTFS/; revision=75283

6 years ago[NTFS] - Add some fixes and improvements to create.c, dirctl.c and fcb.c from CR...
Trevor Thompson [Tue, 4 Jul 2017 22:34:17 +0000 (22:34 +0000)]
[NTFS] - Add some fixes and improvements to create.c, dirctl.c and fcb.c from CR-123:
-NtfsOpenFile() - Replace an ExFreePool() with ExFreePoolWithTag().
-NtfsCreateFile() - Fix broken cast with BooleanFlagOn() macro.
-NtfsAddFilenameToDirectory() - Remove an extra cast. Return an error if we fail to allocate I30IndexRoot.
-NtfsGetNextPathElement(), NtfsWSubString(), NtfsGetFCBForFile() - Use PCWSTR in place of const PWCHAR or PWCHAR  where it makes sense.

svn path=/branches/GSoC_2016/NTFS/; revision=75281

6 years ago[NTFS] - Add some fixes and improvements to btree.c from CR-123:
Trevor Thompson [Tue, 4 Jul 2017 21:47:43 +0000 (21:47 +0000)]
[NTFS] - Add some fixes and improvements to btree.c from CR-123:
-CompareTreeKeys() - Assert that the first key isn't the dummy key.
-CreateIndexRootFromBTree() - Assert that CurrentKey->IndexEntry->Length isn't 0.
-DumpBTreeKey() - Use sizeof(WCHAR) in place of magic 2.
-NtfsInsertKey() - Check for allocation failure of NewKey.

svn path=/branches/GSoC_2016/NTFS/; revision=75280

6 years ago[NTFS] - Add some fixes and improvements to attribute.c from CR-123:
Trevor Thompson [Tue, 4 Jul 2017 21:40:02 +0000 (21:40 +0000)]
[NTFS] - Add some fixes and improvements to attribute.c from CR-123:
-AddFileName() - Don't use dedicated buffer for FileNameNoPath, just point into FileObject->FileName's buffer. Don't use RtlCopyUnicodeString(), just update pointers.
-AddRun() - Fix an SEH2_YIELD with missing return statement.
-FreeClusters() - Use ULONG_MAX in place of 0xffffffff.
-NtfsDumpIndexRootAttribute() - Use consistent UpperCase naming convention. Use BooleanFlagOn() macro where appropriate. Replace magic 8 with sizeof(ULONGLONG).
-GetFileNameAttributeLength() - Add documentation.

svn path=/branches/GSoC_2016/NTFS/; revision=75279

6 years ago[NTFS] - Fix UpdateFileNameRecord() when the file being updated resides in $INDEX_ROO...
Trevor Thompson [Tue, 4 Jul 2017 21:16:46 +0000 (21:16 +0000)]
[NTFS] - Fix UpdateFileNameRecord() when the file being updated resides in $INDEX_ROOT. Also, don't attempt to read beyond size of index root attribute, and check return value after reading.

svn path=/branches/GSoC_2016/NTFS/; revision=75278

6 years ago[NTFS] - Fix AddFileName() when the file path is two or more directories deep.
Trevor Thompson [Tue, 4 Jul 2017 20:47:06 +0000 (20:47 +0000)]
[NTFS] - Fix AddFileName() when the file path is two or more directories deep.

svn path=/branches/GSoC_2016/NTFS/; revision=75277

6 years ago[NTFS] - Fix gcc build. Fix CompareTreeKeys(): Don't consider Key1 a possible dummy...
Trevor Thompson [Thu, 29 Jun 2017 02:36:00 +0000 (02:36 +0000)]
[NTFS] - Fix gcc build. Fix CompareTreeKeys(): Don't consider Key1 a possible dummy key. Don't assume filenames are the same length.

svn path=/branches/GSoC_2016/NTFS/; revision=75228

6 years ago[NTFS] - Fix a couple of issues spotted by Thomas: Maintain alphabetical ordering...
Trevor Thompson [Wed, 28 Jun 2017 18:22:42 +0000 (18:22 +0000)]
[NTFS] - Fix a couple of issues spotted by Thomas: Maintain alphabetical ordering of CMakeLists.txt, fix casts to BOOLEAN with BooleanFlagOn macro.

svn path=/branches/GSoC_2016/NTFS/; revision=75224

6 years ago[NTFS] - Begin to implement B-Trees. Allow for creating several new files in a directory.
Trevor Thompson [Wed, 28 Jun 2017 03:45:52 +0000 (03:45 +0000)]
[NTFS] - Begin to implement B-Trees. Allow for creating several new files in a directory.
NtfsAddFilenameToDirectory() - Add CaseSensitive parameter. Update to use new B-Tree code: First, the index is read and converted to a B-Tree in memory. Next, a key for the new file is inserted into the tree. Finally, the tree is converted back to an index root attribute which is written to disk.
+btree.c - Includes functions related to B-Trees (AKA B*Trees).
ntfs.h - Added several structures for representing B-Trees in memory.
Known limitations: For simplicity, only trees with a depth of one are currently supported (i.e. an ordered list of filenames). Directories that have or will require an index allocation to store all their filenames are still TODO. As a consequence, the user will only be able to create about 6 files in a directory.

svn path=/branches/GSoC_2016/NTFS/; revision=75223

6 years ago[NTFS] - Add some minor fixes and improvements:
Trevor Thompson [Mon, 26 Jun 2017 05:17:08 +0000 (05:17 +0000)]
[NTFS] - Add some minor fixes and improvements:
Improve, add, or fix some DPRINTs. In particular, ULONG's should use %lu, not %u. Also, don't be silent about filesystem corruption.
NtfsFindMftRecord() - move CaseSensitive parameter before output parameter in parameter list.

svn path=/branches/GSoC_2016/NTFS/; revision=75199

6 years ago[NTFS] - Fix creation of files with long filenames.
Trevor Thompson [Sun, 25 Jun 2017 04:29:04 +0000 (04:29 +0000)]
[NTFS] - Fix creation of files with long filenames.

svn path=/branches/GSoC_2016/NTFS/; revision=75193

6 years ago[NTFS] - In the NtfsAddFilenameToDirectory() function, rename DirectoryContext parame...
Trevor Thompson [Sun, 25 Jun 2017 02:56:40 +0000 (02:56 +0000)]
[NTFS] - In the NtfsAddFilenameToDirectory() function, rename DirectoryContext parameter to the more descriptive, and accurate, IndexRootContext (to simplify the next commit).

svn path=/branches/GSoC_2016/NTFS/; revision=75192

6 years ago[NTFS] - Fix a mistake with AddFileName() from my last commit. Also, move CaseSensiti...
Trevor Thompson [Sun, 25 Jun 2017 02:38:15 +0000 (02:38 +0000)]
[NTFS] - Fix a mistake with AddFileName() from my last commit. Also, move CaseSensitive parameter before output parameters in the parameter list of several functions.

svn path=/branches/GSoC_2016/NTFS/; revision=75191

6 years ago[NTFS] - Fix POSIX rules. Fix accessing long filenames created in Windows when 8dot3...
Trevor Thompson [Sat, 24 Jun 2017 04:36:28 +0000 (04:36 +0000)]
[NTFS] - Fix POSIX rules. Fix accessing long filenames created in Windows when 8dot3 name creation is disabled.
Whether or not a filename should be interpreted as case-sensitive is dependent on a flag passed to the driver when a file is created (opened); it's separate from the namespace associated with the file being accessed.

svn path=/branches/GSoC_2016/NTFS/; revision=75178

6 years ago[NTFS] - Fix IncreaseMftSize(); check IrpContext to see if waiting for exclusive...
Trevor Thompson [Fri, 23 Jun 2017 17:30:13 +0000 (17:30 +0000)]
[NTFS] - Fix IncreaseMftSize(); check IrpContext to see if waiting for exclusive access to the MFT is allowed. As pointed out by Pierre.

svn path=/branches/GSoC_2016/NTFS/; revision=75170

6 years ago[NTFS] - Add support for expanding the master file table. Fix a bug with BrowseIndexE...
Trevor Thompson [Fri, 16 Jun 2017 06:00:09 +0000 (06:00 +0000)]
[NTFS] - Add support for expanding the master file table. Fix a bug with BrowseIndexEntries(). Improve diagnostic output.
-AddNewMftEntry() - Increase size of MFT as needed. Fix math for bitmap length. Don't assign file records to MFT indices 0x10 - 0x17; In Windows, these records aren't used unless they have to be, even though they are marked as unused in the bitmap.
+IncreaseMftSize() - Adds room for additional file records in the master file table.
-BrowseIndexEntries() - allow for the rare situation when a non-system file has an MFT index of 0x10.

svn path=/branches/GSoC_2016/NTFS/; revision=75056

6 years ago[NTFS] - Restructure some code in preparation for the next commit:
Trevor Thompson [Fri, 16 Jun 2017 05:43:52 +0000 (05:43 +0000)]
[NTFS] - Restructure some code in preparation for the next commit:
-SetAttributeDataLength() has been split into two functions, SetNonResidentAttributeDataLength() and SetResidentAttributeDataLength(). This should improve code readibility and allows for resizing an attribute when there's no FileObject associated with it.
-Added "MftDataOffset" member to DEVICE_EXTENSION, which stores the offset of the Mft's $DATA attribute. (I'm starting to think it's better to add a member for offset to NTFS_ATTR_CONTEXT directly, but I'll save that level of restructuring for a future commit.)

svn path=/branches/GSoC_2016/NTFS/; revision=75055

6 years ago[NTFS] - Add some improvements to the previous commit, as suggested by Thomas.
Trevor Thompson [Fri, 16 Jun 2017 05:42:01 +0000 (05:42 +0000)]
[NTFS] - Add some improvements to the previous commit, as suggested by Thomas.

svn path=/branches/GSoC_2016/NTFS/; revision=75054

6 years ago[NTFS] - Add the most basic support for file creation. Expand diagnostic output,...
Trevor Thompson [Fri, 9 Jun 2017 03:14:30 +0000 (03:14 +0000)]
[NTFS] - Add the most basic support for file creation. Expand diagnostic output, especially in NtfsDumpIndexRootAttribute(). Replace an ExFreePool() with ExFreePoolWithTag().
AddFileName() - Add a parameter to receive the Mft index of the parent directory. Fix so the name of the file will be stored in the attribute, not the name of the directory.
NtfsCreateFile() - Open a file that was successfully created, instead of assuming failure.
NtfsCreateFileRecord() - Add the filename attribute of the created file to the parent directory's index.
+NtfsAddFilenameToDirectory() - Adds a $FILE_NAME attribute to a given directory index. Presently, a file can be created in an empty directory only.
AddNewMftEntry() - Add a parameter to receive the mft index where the new entry was stored.

svn path=/branches/GSoC_2016/NTFS/; revision=74970

6 years ago[NTFS] - Decrease debug spam
Trevor Thompson [Sun, 28 May 2017 20:51:31 +0000 (20:51 +0000)]
[NTFS] - Decrease debug spam

svn path=/branches/GSoC_2016/NTFS/; revision=74694

6 years ago[NTFS] - Disable write support by default. Enable it via the registry.
Trevor Thompson [Sat, 27 May 2017 19:32:43 +0000 (19:32 +0000)]
[NTFS] - Disable write support by default. Enable it via the registry.
[BOOTDATA] - Add a commented-out section to hivesys.inf which can add the required key to enable NTFS write support.

svn path=/branches/GSoC_2016/NTFS/; revision=74685

6 years ago[NTFS] - Add support for changing a file's size via SetEndOfFile():
Trevor Thompson [Sat, 27 May 2017 03:20:31 +0000 (03:20 +0000)]
[NTFS] - Add support for changing a file's size via SetEndOfFile():
-Handle IRP_MJ_SET_INFORMATION IRP requests.
+NtfsSetEndOfFile() - Sets the end of file (file size) for a given file.
+NtfsSetInformation() - Sets the specified file information. At this point, only FileEndOfFileInformation is fully implemented. FileAllocationInformation is handled the same way and not truly implemented, but this works well enough for SetEndOfFile().
Overwriting a file in NTFS should now work in the majority of use cases.

svn path=/branches/GSoC_2016/NTFS/; revision=74675

6 years ago[NTFS] - Fix a bug with last commit, as spotted by Pierre.
Trevor Thompson [Sat, 13 May 2017 09:17:06 +0000 (09:17 +0000)]
[NTFS] - Fix a bug with last commit, as spotted by Pierre.

svn path=/branches/GSoC_2016/NTFS/; revision=74525

6 years ago[NTFS] - Expand support for resizing resident attributes and fix NtfsAllocateClusters().
Trevor Thompson [Sat, 13 May 2017 08:56:54 +0000 (08:56 +0000)]
[NTFS] - Expand support for resizing resident attributes and fix NtfsAllocateClusters().
-Modify SetAttributeDataLength() to allow a resident attribute to migrate to non-resident if the attribute grows too large to remain resident.
-Fix values returned by NtfsAllocateClusters() in case of error; return error codes, not 0.

svn path=/branches/GSoC_2016/NTFS/; revision=74524

6 years ago[NTFS] - Commit early results of a small restructuring effort:
Trevor Thompson [Fri, 12 May 2017 22:16:20 +0000 (22:16 +0000)]
[NTFS] - Commit early results of a small restructuring effort:
-Add a new member to the NTFS_ATTR_CONTEXT struct, a LARGE_MCB. This allows an attribute context to describe the cluster mapping of a non-resident file while allowing that mapping to change dynamically, without the context itself needing to be resized. This fixes problems which sometimes arose from resizing files.
-Remove hacky code from NtfsWriteFile() for dealing with "stale" contexts. This fixes that issue.
-Update SetDataAttributeLength(), PrepareAttributeContext(), ReleaseAttributeContext(), FreeClusters(), and AddRun() for the new member.
-Update ReadAttribute() and WriteAttribute() to work with the changed structure. A very-soon-to-come commit will overhaul these functions so they'll operate directly on the LARGE_MCB, instead of converting to and from a packed list of data runs. (Sparse files are broken until then.)
-Rename "RunBufferOffset" to "RunBufferSize" in several places where appropriate.
-Fix, improve, and add some comments.

svn path=/branches/GSoC_2016/NTFS/; revision=74523

6 years ago[NTFS] Add support for creating new MFT entries:
Trevor Thompson [Sun, 16 Apr 2017 00:17:07 +0000 (00:17 +0000)]
[NTFS] Add support for creating new MFT entries:
+AddStandardInformation(), +AddData(), +AddFileName() - Add attributes to a file record
+NtfsCreateFileRecord() - Creates a new file record and saves it to the MFT.
+AddNewMftEntry() - Adds a file record to the MFT.
NtfsCreateFile() - Modified to create a file record on a file-creation request (file creation is still unsupported; the created file needs to be added to the parent's directory index).
+SetFileRecordEnd() - Establishes a new file record size
UpdateFileRecord() - Improved documentation
InternalSetResidentAttributeLength() - Updated to use SetFileRecordEnd().

svn path=/branches/GSoC_2016/NTFS/; revision=74321

6 years ago[NTFS]
Trevor Thompson [Mon, 22 Aug 2016 11:08:22 +0000 (11:08 +0000)]
[NTFS]
+NtfsDumpFileRecord() - Provides diagnostic information about a file record.

svn path=/branches/GSoC_2016/NTFS/; revision=72424

6 years ago[NTFS]
Trevor Thompson [Mon, 22 Aug 2016 08:27:35 +0000 (08:27 +0000)]
[NTFS]
*UpdateFileRecord() - Fix a DPRINT

svn path=/branches/GSoC_2016/NTFS/; revision=72423

6 years ago[NTFS]
Trevor Thompson [Mon, 22 Aug 2016 08:11:12 +0000 (08:11 +0000)]
[NTFS]
Add some fixes to attrib.c, as suggested by Pierre Schweitzer:
*ConvertLargeMCBToDataRuns() - Use MS portable type, ULONG, for variable i.
*FreeClusters(), AddRun() - Check for invalid parameter before allocating memory, and confirm the memory is allocated.
*ConvertDataRunsToLargeMCB(), AddRun() - Avoid code duplication by using ExRaiseStatus() in try block, and return accurate status via _SEH2_GetExceptionCode().

svn path=/branches/GSoC_2016/NTFS/; revision=72422

6 years ago[NTFS]
Trevor Thompson [Tue, 19 Jul 2016 15:31:22 +0000 (15:31 +0000)]
[NTFS]
+FreeClusters(). Fix a DPRINT.

svn path=/branches/GSoC_2016/NTFS/; revision=71968

6 years ago[NTFS]
Trevor Thompson [Sun, 17 Jul 2016 14:04:01 +0000 (14:04 +0000)]
[NTFS]
Address some minor issues with attrib.c: Fix gcc build. Fix formatting.

svn path=/branches/GSoC_2016/NTFS/; revision=71957

6 years ago[NTFS]
Trevor Thompson [Fri, 15 Jul 2016 15:27:04 +0000 (15:27 +0000)]
[NTFS]
*AddRun() - Don't leak RunBuffer when encountering errors.
Handle exception from FsRtlAddLargeMcbEntry().

svn path=/branches/GSoC_2016/NTFS/; revision=71945

6 years ago[NTFS]
Trevor Thompson [Thu, 14 Jul 2016 15:20:48 +0000 (15:20 +0000)]
[NTFS]
Implement AddRun(). Add support functions and documentation.
+ConvertDataRunsToLargeMCB()
+ConvertLargeMCBToDataRuns()
*SetAttributeDataLength(), *NtfsWriteFile() - Update for AddRun() implementation. Add hack to SetAttributeDataLength() to allow notepad.exe to save files until freeing clusters is implemented.

svn path=/branches/GSoC_2016/NTFS/; revision=71942

6 years ago[NTFS]
Trevor Thompson [Wed, 13 Jul 2016 14:49:46 +0000 (14:49 +0000)]
[NTFS]
Various minor changes to fix GCC build.

svn path=/branches/GSoC_2016/NTFS/; revision=71922

6 years ago[NTFS]
Trevor Thompson [Wed, 13 Jul 2016 11:51:16 +0000 (11:51 +0000)]
[NTFS]
Add support functions, fix warning from previous commit.
+NtfsDumpDataRuns(), +NtfsDumpDataRunData() - Provide diagnostic output.
+GetPackedByteCount() - Used to encode data runs.

svn path=/branches/GSoC_2016/NTFS/; revision=71921

6 years ago[NTFS]
Trevor Thompson [Wed, 13 Jul 2016 09:26:04 +0000 (09:26 +0000)]
[NTFS]
UpdateFileRecord() - Remove fixup array before returning.

svn path=/branches/GSoC_2016/NTFS/; revision=71920

6 years ago[NTFS]
Trevor Thompson [Tue, 12 Jul 2016 09:57:16 +0000 (09:57 +0000)]
[NTFS]
Add error-checking to InternalGetNextAttribute(); don't crash if CurrAttr->Length is invalid.

svn path=/branches/GSoC_2016/NTFS/; revision=71897

6 years ago[NTFS]
Trevor Thompson [Fri, 8 Jul 2016 12:05:19 +0000 (12:05 +0000)]
[NTFS]
Fix broken check for free disk space in NtfsAllocateClusters().

svn path=/branches/GSoC_2016/NTFS/; revision=71858

6 years ago[NTFS]
Trevor Thompson [Fri, 8 Jul 2016 11:59:25 +0000 (11:59 +0000)]
[NTFS]
Simplify GetLastClusterInDataRun() and clean up NtfsAllocateClusters(). No functional changes.

svn path=/branches/GSoC_2016/NTFS/; revision=71857

6 years ago[NTFS]
Trevor Thompson [Thu, 7 Jul 2016 08:17:07 +0000 (08:17 +0000)]
[NTFS]
Simplify and optimize InternalSetResidentAttributeLength(), as suggested by Pierre.

svn path=/branches/GSoC_2016/NTFS/; revision=71837

6 years ago[NTFS]
Trevor Thompson [Wed, 6 Jul 2016 07:57:57 +0000 (07:57 +0000)]
[NTFS]
Fix copy-paste error in SetAttributeDataLength()

svn path=/branches/GSoC_2016/NTFS/; revision=71832

6 years ago[NTFS]
Trevor Thompson [Tue, 5 Jul 2016 07:00:43 +0000 (07:00 +0000)]
[NTFS]
Add ability to write to resident attributes.
SetAttributeDataLength() - Check if the file is memory mapped before truncating
+InternalSetResidentAttributeLength() - Used by SetAttributeDataLength()

svn path=/branches/GSoC_2016/NTFS/; revision=71820

6 years ago[NTFS]
Trevor Thompson [Wed, 29 Jun 2016 17:49:36 +0000 (17:49 +0000)]
[NTFS]
Fix typo in NtfsAllocateClusters(), spotted by ThFabba.

svn path=/branches/GSoC_2016/NTFS/; revision=71697

6 years ago[NTFS]
Trevor Thompson [Wed, 29 Jun 2016 16:35:36 +0000 (16:35 +0000)]
[NTFS]
Lay some groundwork for extending allocation size.
+AddRun() - Unimplemented
+GetLastClusterInDataRun()
+NtfsAllocateClusters()

svn path=/branches/GSoC_2016/NTFS/; revision=71696

6 years ago[NTFS]
Trevor Thompson [Sun, 26 Jun 2016 21:06:02 +0000 (21:06 +0000)]
[NTFS]
Allow for an existing file to be opened with FILE_OVERWRITE, FILE_OVERWRITE_IF, or FILE_SUPERSEDE dispositions, and truncate that file. This allows for a file to be opened and saved in Notepad.exe [provided that file is non-resident and its allocation size doesn't need to change].

svn path=/branches/GSoC_2016/NTFS/; revision=71680

6 years ago[NTFS]
Trevor Thompson [Sun, 26 Jun 2016 17:03:31 +0000 (17:03 +0000)]
[NTFS]
Remove unused parameter from SetAttributeDataLength.

svn path=/branches/GSoC_2016/NTFS/; revision=71677

6 years ago[NTFS]
Trevor Thompson [Thu, 23 Jun 2016 18:02:03 +0000 (18:02 +0000)]
[NTFS]
Update a file's size in the relevant $FILE_NAME attribute of the index entry in the parent directory.
+UpdateFileNameRecord() - Searches a parent directory for the proper index entry, then updates the file sizes in that entry.
+UpdateIndexEntryFileNameSize() - Recursively searches directory index and applies the size update.

svn path=/branches/GSoC_2016/NTFS/; revision=71664

6 years ago[NTFS]
Trevor Thompson [Thu, 23 Jun 2016 15:37:19 +0000 (15:37 +0000)]
[NTFS]
Fix Up AddFixupArray - It needs to accept a PNTFS_RECORD_HEADER for parameter 2, not a PFILE_RECORD_HEADER.

svn path=/branches/GSoC_2016/NTFS/; revision=71662

6 years ago[NTFS]
Trevor Thompson [Wed, 22 Jun 2016 21:20:50 +0000 (21:20 +0000)]
[NTFS]
When writing to a file, increase the file size if trying to write past the end.
*FindAttribute() has been given an optional pointer to a ULONG that will receive the offset of the found attribute from the beginning of the record. This is to allow for found attributes to be written back into their file records.
+SetAttributeDataLength()
+UpdateFileRecord() - Updates a file record in the master file table at a given index.
+AddFixupArray() - Prepares a file record or directory index for writing to the disk.

svn path=/branches/GSoC_2016/NTFS/; revision=71660

6 years ago[NTFS]
Trevor Thompson [Sun, 12 Jun 2016 04:02:52 +0000 (04:02 +0000)]
[NTFS]
Add fixes to WriteAttribute():
-Remove erroneous check for end of run (before writing to the last run returned)
-Properly dereference RealLengthWritten pointer, as reported in CR-90

svn path=/branches/GSoC_2016/NTFS/; revision=71616

6 years ago[NTFS]
Trevor Thompson [Sun, 1 May 2016 16:21:53 +0000 (16:21 +0000)]
[NTFS]
Added minimal write support from CORE-10998 along with updates as suggested by CR-90.

svn path=/branches/GSoC_2016/NTFS/; revision=71224

6 years ago[USETUP] LanguageList => MUILanguageList. #179
Amine Khaldi [Sat, 9 Dec 2017 22:33:02 +0000 (23:33 +0100)]
[USETUP] LanguageList => MUILanguageList. #179

6 years ago[ITSS] Get the stubs file out of the source files list. #179
Amine Khaldi [Sat, 9 Dec 2017 22:21:04 +0000 (23:21 +0100)]
[ITSS] Get the stubs file out of the source files list. #179

6 years ago[FASTFAT] Fix FastFAT not returning short name for FAT volumes in FileBothDirectoryIn...
Pierre Schweitzer [Sat, 9 Dec 2017 20:22:55 +0000 (21:22 +0100)]
[FASTFAT] Fix FastFAT not returning short name for FAT volumes in FileBothDirectoryInformation case
This is likely due to a copy paste error where long name was copied twice and short never.
Fun fact: this was not affecting FATX volumes
Fun fact2: this was defeating a buffer overflow check and thus was allowing buffer overflow!

CORE-14088

6 years ago[CHKDSK] Don't continue repair if volume is in use
Pierre Schweitzer [Sat, 9 Dec 2017 20:10:32 +0000 (21:10 +0100)]
[CHKDSK] Don't continue repair if volume is in use
This makes use of previous commit vfatlib improvements that allow
caller to stop chkdsk if locking fail, which will happen if volume is in use.
That way, ReactOS users won't be able any longer to f*** up their C:\ volume
by attempting to chkdsk -f it!

CORE-14087

6 years ago[VFATLIB] Make Chkdsk handle volume opening locking failures.
Pierre Schweitzer [Sat, 9 Dec 2017 20:07:09 +0000 (21:07 +0100)]
[VFATLIB] Make Chkdsk handle volume opening locking failures.
For instance, when repair is required, we can ask the caller whether we should
continue or not in case locking failed.
Also, introduced a hack for 1st stage where IopParseDevice() hack is in usage
so that broken NTSTATUS is diverted to appropriate status.
That way, usetup will properly continue even if locking failed (due to its
callback stub!)

CORE-14087

6 years ago[SMDLL] Use precomp.h in dllmain.c.
Amine Khaldi [Sat, 9 Dec 2017 19:47:27 +0000 (20:47 +0100)]
[SMDLL] Use precomp.h in dllmain.c.

6 years ago[BROWSEUI/SHELLBARS] Add a PCH.
Amine Khaldi [Sat, 9 Dec 2017 19:46:40 +0000 (20:46 +0100)]
[BROWSEUI/SHELLBARS] Add a PCH.

6 years ago[GDI32_APITEST] Properly add CreateDIBPatternBrush.c to the source files list instead...
Amine Khaldi [Sat, 9 Dec 2017 19:03:08 +0000 (20:03 +0100)]
[GDI32_APITEST] Properly add CreateDIBPatternBrush.c to the source files list instead of relying on CMake to do so.

6 years ago[ACLEDIT][ATL][ATL80][FLTMGR] Get the def files out of the source files lists. #179
Amine Khaldi [Sat, 9 Dec 2017 18:58:43 +0000 (19:58 +0100)]
[ACLEDIT][ATL][ATL80][FLTMGR] Get the def files out of the source files lists. #179

6 years ago[FASTFAT] Finally drop the FileNameInformation class for directories.
Pierre Schweitzer [Sat, 9 Dec 2017 13:35:22 +0000 (14:35 +0100)]
[FASTFAT] Finally drop the FileNameInformation class for directories.
It makes no sense for them and shouldn't be implemented.
It's an addendum to 9f3c801.

6 years ago[FREELDR] The work done in r70692 overlooked the need to update the PCH lists of...
Amine Khaldi [Sat, 9 Dec 2017 13:18:25 +0000 (14:18 +0100)]
[FREELDR] The work done in r70692 overlooked the need to update the PCH lists of source files as well.

- We use this as a chance to also update the CMake file in terms of consistency.
- The clang-cl build applies the /Os flag on all the source files that are now using the PCH too.

6 years ago[WINSPOOL] Provide stubs with tracing and reasonable failure codes for even more...
Colin Finck [Sat, 9 Dec 2017 12:35:42 +0000 (13:35 +0100)]
[WINSPOOL] Provide stubs with tracing and reasonable failure codes for even more popular Spooler APIs.

This may get more applications to work which previously called into the WINE-generated stubs (that throw an exception).
It also improves debug logs when the "winspool" debug channel is enabled. With such detailed debug logs, we may get an idea which winspool APIs need to be implemented sooner than others.

6 years ago[WINSPOOL] Add tracing to all exported APIs.
Colin Finck [Sat, 9 Dec 2017 11:00:09 +0000 (12:00 +0100)]
[WINSPOOL] Add tracing to all exported APIs.

6 years ago[WINSPOOL] Convert the returned Unicode string back to ANSI in GetDefaultPrinterA.
Colin Finck [Sat, 9 Dec 2017 09:59:40 +0000 (10:59 +0100)]
[WINSPOOL] Convert the returned Unicode string back to ANSI in GetDefaultPrinterA.

Thanks to Mark for the hint in CORE-14072!

6 years ago[USER32_WINETEST] Add a PCH.
Amine Khaldi [Sat, 9 Dec 2017 12:58:55 +0000 (13:58 +0100)]
[USER32_WINETEST] Add a PCH.

6 years ago[ACPPAGE] Make use of the PCH.
Amine Khaldi [Sat, 9 Dec 2017 12:40:23 +0000 (13:40 +0100)]
[ACPPAGE] Make use of the PCH.

6 years ago[MSPAINT] Add some header guards.
Amine Khaldi [Sat, 9 Dec 2017 12:36:45 +0000 (13:36 +0100)]
[MSPAINT] Add some header guards.

6 years ago[LSASRV] Deduplicate SAMPR_ULONG_ARRAY.
Amine Khaldi [Sat, 9 Dec 2017 12:29:58 +0000 (13:29 +0100)]
[LSASRV] Deduplicate SAMPR_ULONG_ARRAY.

6 years ago[MSAFD] Move the default debug channel to msafd.h.
Amine Khaldi [Sat, 9 Dec 2017 12:24:35 +0000 (13:24 +0100)]
[MSAFD] Move the default debug channel to msafd.h.

6 years ago[HAL] Add some header guards.
Amine Khaldi [Sat, 9 Dec 2017 12:20:22 +0000 (13:20 +0100)]
[HAL] Add some header guards.

6 years ago[VGA] Correct VgaInterpretCmdStream() declaration.
Amine Khaldi [Sat, 9 Dec 2017 12:11:45 +0000 (13:11 +0100)]
[VGA] Correct VgaInterpretCmdStream() declaration.

6 years ago[UUID] Add a PCH.
Amine Khaldi [Sat, 9 Dec 2017 12:04:23 +0000 (13:04 +0100)]
[UUID] Add a PCH.

6 years ago[FASTFAT] Fix size checking in VfatGetFileNameInformation()
Pierre Schweitzer [Sat, 9 Dec 2017 11:45:16 +0000 (12:45 +0100)]
[FASTFAT] Fix size checking in VfatGetFileNameInformation()

6 years ago[FASTFAT] Don't mix FileNameInformation and FileNamesInformation (and support the...
Pierre Schweitzer [Sat, 9 Dec 2017 11:33:29 +0000 (12:33 +0100)]
[FASTFAT] Don't mix FileNameInformation and FileNamesInformation (and support the later).
This commit fixes weird behavior in our FastFAT implementation. It was mixing two classes:
FileNameInformation and FileNamesInformation. It was handling FileNameInformation like
FileNamesInformation and was filling buffer with FILE_NAMES_INFORMATION structure instead
of FILE_NAME_INFORMATION structure (how many things did that break?!).
Also, it wasn't implementing the FileNamesInformation class at all. This is required by
ntdll_winetest:directory which doesn't expect it to fail and thus, attempts to read
never filled in memory.

This commit fixes the winetest crash, and may fix other weird FS behavior.

CORE-13367

6 years ago[SAMLIB] Use precomp.h in dllmain.c.
Amine Khaldi [Sat, 9 Dec 2017 11:32:18 +0000 (12:32 +0100)]
[SAMLIB] Use precomp.h in dllmain.c.

6 years ago[SHELL32_APITEST] Add test for SHCreateFileExtractIconW
Mark Jansen [Fri, 8 Dec 2017 23:51:56 +0000 (00:51 +0100)]
[SHELL32_APITEST] Add test for SHCreateFileExtractIconW
CORE-14082

6 years ago[KERNEL32] Silent a noisy DPRINT1
Pierre Schweitzer [Sat, 9 Dec 2017 10:53:54 +0000 (11:53 +0100)]
[KERNEL32] Silent a noisy DPRINT1

6 years ago[WIN32K] Fix NtGdiGetTextFaceW to report face name correctly (#173)
Katayama Hirofumi MZ [Sat, 9 Dec 2017 10:06:51 +0000 (19:06 +0900)]
[WIN32K] Fix NtGdiGetTextFaceW to report face name correctly (#173)

Initialize TEXTOBJ.FaceName member in TextIntRealizeFont and use it in NtGdiGetTextFaceW
CORE-14071

6 years ago[FASTFAT] Calculate more accurately buffer length in VfatGetAllInformation().
Pierre Schweitzer [Sat, 9 Dec 2017 09:59:37 +0000 (10:59 +0100)]
[FASTFAT] Calculate more accurately buffer length in VfatGetAllInformation().

6 years ago[FASTFAT] Allow partial returns on directory info query for first entry.
Pierre Schweitzer [Sat, 9 Dec 2017 09:58:19 +0000 (10:58 +0100)]
[FASTFAT] Allow partial returns on directory info query for first entry.
This mimics what MS FastFAT does and fixes (a bit) ntdll_winetest:directory.
It still crashes, but go farther.

CORE-13367

6 years ago[STOBJECT] Improve the existing PCH and make use of it. good
Amine Khaldi [Fri, 8 Dec 2017 22:15:31 +0000 (23:15 +0100)]
[STOBJECT] Improve the existing PCH and make use of it.

6 years ago[CONSRV] Deduplicate GetScreenBufferSizeUnits(), SmallRectToRect() and ConsoleInput...
Amine Khaldi [Fri, 8 Dec 2017 22:04:48 +0000 (23:04 +0100)]
[CONSRV] Deduplicate GetScreenBufferSizeUnits(), SmallRectToRect() and ConsoleInput. Rename ConsoleList and InsertConsole(). #179

6 years ago[SERVICES] Fix querying the status of a registered but not started driver.
Pierre Schweitzer [Fri, 8 Dec 2017 21:45:04 +0000 (22:45 +0100)]
[SERVICES] Fix querying the status of a registered but not started driver.
The current implementation was broken and some dead code was never called; always failing before.
This fix revives this dead code!
Extra fix: avoid derefencing potential null-ptr.
And also, as bonus, comment the function so that logic can be easily understood.

CORE-14062

6 years ago[NTOS:MM] Implement and use MiAcquirePfnLockAtDpcLevel/MiReleasePfnLockFromDpcLevel. 154/head
Thomas Faber [Tue, 21 Nov 2017 22:36:34 +0000 (23:36 +0100)]
[NTOS:MM] Implement and use MiAcquirePfnLockAtDpcLevel/MiReleasePfnLockFromDpcLevel.

6 years ago[NTOS:MM] Use inline functions to acquire/release the PFN lock.
Thomas Faber [Tue, 21 Nov 2017 22:33:42 +0000 (23:33 +0100)]
[NTOS:MM] Use inline functions to acquire/release the PFN lock.

6 years ago[NTDLL_APITEST] Create Test_NtFreeVirtualMemory_Parameters(). CORE-13126 150/head
Serge Gautherie [Sun, 26 Nov 2017 23:51:18 +0000 (00:51 +0100)]
[NTDLL_APITEST] Create Test_NtFreeVirtualMemory_Parameters(). CORE-13126

- Test 4th parameter ("ULONG FreeType") invalid values.

6 years ago[NTDLL_APITEST] Add license header for NtFreeVirtualMemory.c
Thomas Faber [Thu, 7 Dec 2017 11:25:01 +0000 (12:25 +0100)]
[NTDLL_APITEST] Add license header for NtFreeVirtualMemory.c

6 years ago[User32|IMM32] Fix a recursion crash in IMM. See CORE-14041. 177/head
James Tabor [Fri, 8 Dec 2017 03:14:21 +0000 (21:14 -0600)]
[User32|IMM32] Fix a recursion crash in IMM. See CORE-14041.

Required a sync port from wine. This is a hack fix with Win32SS until
proper IMM support is added to Win32SS.

6 years ago[ADVAPI32_APITEST][NTDLL_APITEST][WINDOWSCODECS] Comment out some unused functions...
Amine Khaldi [Thu, 7 Dec 2017 23:22:05 +0000 (00:22 +0100)]
[ADVAPI32_APITEST][NTDLL_APITEST][WINDOWSCODECS] Comment out some unused functions and types. Silences some clang-cl warnings.

6 years ago[COMCTL32][FLTLIB][NETAPI32][SNDVOL32][STOBJECT][WBEMPROX] Remove unused debug channe...
Amine Khaldi [Thu, 7 Dec 2017 23:06:13 +0000 (00:06 +0100)]
[COMCTL32][FLTLIB][NETAPI32][SNDVOL32][STOBJECT][WBEMPROX] Remove unused debug channels and comment out unused variables. Silences some clang-cl warnings.

6 years ago[SHELL32] Remove unused debug channels and comment out unused variables. Silences...
Amine Khaldi [Thu, 7 Dec 2017 22:54:22 +0000 (23:54 +0100)]
[SHELL32] Remove unused debug channels and comment out unused variables. Silences some clang-cl warnings.

6 years ago[ADVAPI32] Remove unused debug channels and comment out unused variables. Silences...
Amine Khaldi [Thu, 7 Dec 2017 22:34:28 +0000 (23:34 +0100)]
[ADVAPI32] Remove unused debug channels and comment out unused variables. Silences some clang-cl warnings.

6 years ago[FREETYPE][PORTCLS][RPCSS][SPOOLSV][STLPORT][USETUP][WLANSVC] Silence some clang...
Amine Khaldi [Thu, 7 Dec 2017 22:26:59 +0000 (23:26 +0100)]
[FREETYPE][PORTCLS][RPCSS][SPOOLSV][STLPORT][USETUP][WLANSVC] Silence some clang-cl warnings.

6 years ago[CMAKE/CLANG-CL] Don't pass /TP twice when we're dealing with a clang-cl c++ PCH...
Amine Khaldi [Thu, 7 Dec 2017 22:22:27 +0000 (23:22 +0100)]
[CMAKE/CLANG-CL] Don't pass /TP twice when we're dealing with a clang-cl c++ PCH. Pass -nostdinc instead of /X on clang-cl builds.

6 years ago[TRANSLATION] Update Simplified Chinese translations. (#170)
CNAmira [Thu, 7 Dec 2017 21:53:48 +0000 (05:53 +0800)]
[TRANSLATION] Update Simplified Chinese translations. (#170)

- Add Simplified Chinese translation for EVENTCREATE.
- Update translations for 'dxdiag', 'fontview', 'magnify', 'mmc', 'rapps' and 'wordpad'.
Patch by Li Keqing.