Commit graph

853 commits

Author SHA1 Message Date
Pierre Schweitzer bff1ce32bc [NTFS]
Don't bother comparing names if they have null length

svn path=/trunk/; revision=69001
2015-09-04 15:52:19 +00:00
Pierre Schweitzer 02a238acf4 [NTFS]
Don't attempt to dereference a null pointer
CID 1321987

svn path=/trunk/; revision=69000
2015-09-04 15:37:15 +00:00
Pierre Schweitzer cf68c63f61 [MUP]
Fix uninitialized address freeing in case of error in MupGetProviderInformation(), InitializeProvider()
CID 1322227
CID 1322240

svn path=/trunk/; revision=68990
2015-09-04 13:58:44 +00:00
Thomas Faber 2231e344a2 [FASTFAT]
- Don't try to free an uninitialized pointer in VfatSetRenameInformation. CID 1250303
- Actually use the dynamically calculated HashTableSize. CID 1237119/1237120/1237121

svn path=/trunk/; revision=68986
2015-09-04 08:37:01 +00:00
Pierre Schweitzer ae490fe18e [MUP]
Fix an hypthetic uninit var usage in MupCreate().
Dedicated to Chris.

CID 1322239

svn path=/trunk/; revision=68967
2015-09-03 21:19:05 +00:00
Pierre Schweitzer f3b5c2fe1e [CDFS]
[FASTFAT]
[MUP]
[NTFS]
Mark DriverEntry() and associated functions as INIT

svn path=/trunk/; revision=68965
2015-09-03 20:34:47 +00:00
Pierre Schweitzer 00bc01249e [NTFS]
Remove deadcode CID 1321946

svn path=/trunk/; revision=68934
2015-09-03 12:57:04 +00:00
Pierre Schweitzer 5fed17ea9a [NTFS]
With the newly introduced mechanism (in r68829), on attributes list loop, there shouldn't be any AttributeList attribute anymore.
So, don't attempt to dump them.

svn path=/trunk/; revision=68933
2015-09-03 12:49:36 +00:00
Pierre Schweitzer 78128d23f0 [NTFS]
Return proper status

svn path=/trunk/; revision=68836
2015-08-27 21:02:52 +00:00
Pierre Schweitzer b3ec3aeb5a [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
2015-08-27 20:56:08 +00:00
Pierre Schweitzer 81ce5cdc50 [NTFS]
Fix two memory leaks

svn path=/trunk/; revision=68830
2015-08-26 18:55:53 +00:00
Pierre Schweitzer 74ed7ffd30 [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
2015-08-26 18:20:04 +00:00
Pierre Schweitzer b72e356c87 [NTFS]
Properly set StreamNameLength (with the length of extra data we append).
This fixes truncated output from FindFirstStreamW/FindNextStreamW

svn path=/trunk/; revision=68822
2015-08-25 20:11:53 +00:00
Pierre Schweitzer 50f5e804a9 [NTFS]
Remove leftover code

svn path=/trunk/; revision=68814
2015-08-24 20:40:54 +00:00
Pierre Schweitzer 8b651ad6d9 [NTFS]
Support full data stream name on open (i.e., stream name finished with :$DATA)

svn path=/trunk/; revision=68811
2015-08-24 09:52:30 +00:00
Pierre Schweitzer 5f9af4a19f [NTFS]
Fix returned status code, spotted by Thomas 

svn path=/trunk/; revision=68810
2015-08-24 08:45:28 +00:00
Pierre Schweitzer e9ae3cdf25 [NTFS]
Return properly formatted stream names, according to: https://msdn.microsoft.com/en-us/library/cc232090.aspx

svn path=/trunk/; revision=68809
2015-08-24 08:43:26 +00:00
Pierre Schweitzer 6f4dfe4e09 [NTFS]
Implement FileStreamInformation class for IRP_MJ_QUERY_INFORMATION.
It allows enumerating streams for a given file

svn path=/trunk/; revision=68808
2015-08-24 08:36:58 +00:00
Pierre Schweitzer e816df8cd0 [MUP]
Now we know MUP is working, reduce a bit its verbosity

svn path=/trunk/; revision=68789
2015-08-21 20:44:30 +00:00
Pierre Schweitzer 5bc6e68872 [MUP]
Implement the MUP driver for ReactOS. It only supports Multiple UNC Providers so far
Stub support for DFS


svn path=/trunk/; revision=68757
2015-08-18 20:17:22 +00:00
Pierre Schweitzer 740d16b122 [FASTFAT]
- Remove some magic values
- Fix DPRINTs

svn path=/trunk/; revision=68704
2015-08-12 16:47:18 +00:00
Pierre Schweitzer 3fb66e8a73 [NTFS]
Notify when we're done mounting a volume 

svn path=/trunk/; revision=68703
2015-08-12 12:13:28 +00:00
Aleksandar Andrejevic d1c5a86965 [FASTFAT]
VfatWrite (but not VfatRead) is supposed to return STATUS_INVALID_USER_BUFFER
if an error occurred while locking the buffer.
[KERNEL32]
Reading 0 bytes using ReadFile doesn't always succeed on Windows.


svn path=/trunk/; revision=68620
2015-08-07 23:48:54 +00:00
Aleksandar Andrejevic b6956aa369 [NTOS:CC]
In CcCopyData, Buffer can be NULL during read/write operations.
[FASTFAT]
Use SEH to catch exceptions thrown by MmProbeAndLockPages.
Lock the user buffer before changing the file allocation size.


svn path=/trunk/; revision=68619
2015-08-07 19:17:40 +00:00
Aleksandar Andrejevic 08d0aae07e [FASTFAT]
Irp->UserBuffer being NULL doesn't indicate any error. It could be that the
caller really wants the result stored at address NULL (which can be valid,
and is valid by default for programs like NTVDM).


svn path=/trunk/; revision=68607
2015-08-07 03:30:05 +00:00
Pierre Schweitzer 927b1841a1 [CDFS]
Remove broken check. Broken cases are already handled by upper if case.
This fixes the regression that leaded some valid ISOs not to be read anymore by ReactOS

CORE-9254

svn path=/trunk/; revision=68595
2015-08-02 12:29:59 +00:00
Pierre Schweitzer fb0aea8099 [NTFS]
Properly return allocation size on directory enum

svn path=/trunk/; revision=68353
2015-07-05 20:31:54 +00:00
Pierre Schweitzer 29d31f9aed [ARF]
Fix build(tm)

svn path=/trunk/; revision=68350
2015-07-05 19:09:20 +00:00
Pierre Schweitzer c0146f1340 [NTFS]
Return correct size in FileNetworkOpenInformation operation

svn path=/trunk/; revision=68349
2015-07-05 19:08:08 +00:00
Pierre Schweitzer 53bbe9ea86 [NTFS]
Continue streams integration:
- NtfsGetFileSize() will now return the file size depending on the open data stream
- NtfsGetFileSize() will also optionally return allocated size
- In NtfsMakeFCBFromDirEntry(), when initializing FSRTL_COMMON_FCB_HEADER entry, use data stream sizes

svn path=/trunk/; revision=68348
2015-07-05 19:04:05 +00:00
Pierre Schweitzer 451f37cfc3 [NTFS]
Ignore DOS name only entries when browsing index.

CORE-9086

svn path=/trunk/; revision=68345
2015-07-05 09:04:24 +00:00
Pierre Schweitzer f871bb9384 [NTFS]
Complete BrowseIndexEntries() implementation and simplify NtfsFindMftRecord() implementation

svn path=/trunk/; revision=68341
2015-07-04 19:52:31 +00:00
Pierre Schweitzer 5c8a9ffd29 [NTFS]
Kill a magic value.
Dedicated to Hervé :-)

svn path=/trunk/; revision=68333
2015-07-02 20:11:11 +00:00
Pierre Schweitzer edae2b9bfb [NTFS]
Fix user buffer handling for FSCTL_GET_NTFS_VOLUME_DATA. It fixes NTFSInfo.
We're just lacking a few information in the output data now

CORE-8725

svn path=/trunk/; revision=68327
2015-06-30 21:24:03 +00:00
Pierre Schweitzer 7b665169ed [NTFS]
Simplify the implementation of NtfsGetFileSize()

svn path=/trunk/; revision=68310
2015-06-28 21:26:19 +00:00
Pierre Schweitzer a45dcb0d07 [NTFS]
Validate the stream we're trying to open properly exists.
This check might have to be moved later on when the driver switches to RW

svn path=/trunk/; revision=68309
2015-06-28 21:16:03 +00:00
Pierre Schweitzer 296712e3fa [NTFS]
Always gather the size of the unnamed stream for directory display.
This fixes file size display when there are several data streams available

svn path=/trunk/; revision=68308
2015-06-28 20:55:29 +00:00
Pierre Schweitzer fbff7e0e47 [NTFS]
Implement support for NTFS $DATA streams:
- The driver is now able to read various streams for a same file, using the same syntax as Windows.
- This fixes to read (in general) files with multiple streams where reading unnamed stream was leading to read beyond file end
- Also fix reading small files which are smaller than a sector

For demo, see: http://www.heisspiter.net/~Pierre/rostests/NTFS_Streams.png

svn path=/trunk/; revision=68302
2015-06-28 13:14:07 +00:00
Pierre Schweitzer 9c3630ca79 [NTFS]
When dumping attributes, also dump attributes from the $ATTRIBUTE_LIST if present

svn path=/trunk/; revision=68291
2015-06-27 15:06:25 +00:00
Pierre Schweitzer c1f1ff059c [NTFS]
While handling IRP_MN_QUERY_DIRECTORY, in case there is no $FILE_NAME attribute, dump file attributes & MFT ID.
This fixes ASSERT failure when browsing some Win7 volumes

svn path=/trunk/; revision=68290
2015-06-27 13:40:05 +00:00
Pierre Schweitzer fc363d1f59 [NTFS]
Dump available streams (if any!) in case unnamed stream isn't available when trying to read a file

svn path=/trunk/; revision=68286
2015-06-27 09:04:39 +00:00
Pierre Schweitzer 950f284f09 [NTFS]
Don't attempt to open the unnamed stream from $DATA attribute on file lookup. It was unused & leaking.

It fixes opening files that don't have unnamed stream (even though we cannot read there contents yet as we only support unnamed stream)

svn path=/trunk/; revision=68285
2015-06-27 08:55:34 +00:00
Pierre Schweitzer 7420a2aff7 [NTFS]
In NtfsFindFileAt() directly print first entry value instead of its address

svn path=/trunk/; revision=68269
2015-06-25 20:51:30 +00:00
Pierre Schweitzer de1f1fca9f [NTFS]
Don't attempt to read the unnamed stream of the $DATA attribute of each file matching:
- We don't need such attribute later on
- In case there's no such unammed stream, finding the file fails, whereas the file really exist

This fixes (at least here) browsing Win7 NTFS system drives, where our driver was always failing on pagefile.sys

svn path=/trunk/; revision=68268
2015-06-25 20:49:40 +00:00
Pierre Schweitzer 81d3bf2654 [NTFS]
- Bail out if no subnode is available
- It's unimplemented if subnodes are available

svn path=/trunk/; revision=68254
2015-06-24 19:21:04 +00:00
Pierre Schweitzer f710a888d6 [CDFS]
In case of directory enumeration, validate the record earlier to really prevent any potentiel buffer overflow

CORE-9254

svn path=/trunk/; revision=68244
2015-06-23 06:54:44 +00:00
Pierre Schweitzer 1b62b46a8f [CDFS]
Prevent code duplication by making CdfsGetEntryName() call CdfsGetDirEntryName() which is now available driver-wide

svn path=/trunk/; revision=68242
2015-06-22 18:42:56 +00:00
Pierre Schweitzer 8329f09d38 [CDFS]
Revamp r68233:
- Don't duplicate code, implement checks in a helper function
- When checking name content, do it earlier for better performances
- Add extra checks to prevent a potential buffer overflow in case of Joliet names with illformed entries

CORE-9254

svn path=/trunk/; revision=68239
2015-06-22 17:27:47 +00:00
Pierre Schweitzer adb3662527 [CDFS]
Add a few sanity checks to our handling of ISO 9660 / Joliet:
- Null name entries are forbidden
- Degenerated entries (mistmaching sizes) reveal broken layout

In both cases, the lookup for a file is aborted and the CD considered as corrupted by the FSD.
explorer displays empty CDs then.

CORE-9254 #resolve #comment Fixed with r68233

svn path=/trunk/; revision=68233
2015-06-21 16:47:23 +00:00
Pierre Schweitzer 8faad3f2aa [CDFS]
Remove redundant code now we have IRP context dispatch

svn path=/trunk/; revision=68231
2015-06-21 14:02:35 +00:00
Pierre Schweitzer bdc699aac8 [NTFS]
CcInitializeCacheMap can raise exceptions, wrap it into a SEH block

svn path=/trunk/; revision=68228
2015-06-21 09:26:15 +00:00
Pierre Schweitzer a29eac1548 [CDFS]
Don't attempt to complete an IRP that was took over by FsRtl.

CORE-9777 #resolve #comment Fixed in r68179

svn path=/trunk/; revision=68179
2015-06-17 20:33:08 +00:00
Amine Khaldi 928bb9e412 [CDFS] Update the file paths in the header blocks. NFC
svn path=/trunk/; revision=68178
2015-06-17 20:27:52 +00:00
Thomas Faber 2abff2a105 [FASTFAT]
- Set the correct length in FsdGetFsVolumeInformation/FsdGetFsAttributeInformation, and write back partial data when returning STATUS_BUFFER_OVERFLOW
- Replace unnecessary checks with ASSERTs
CORE-9820 #resolve

svn path=/trunk/; revision=68175
2015-06-17 19:19:39 +00:00
Amine Khaldi 67137377fb [UDFS] Remove definitions that exist in platform headers and use those instead.
svn path=/trunk/; revision=68157
2015-06-15 21:19:04 +00:00
Daniel Reimer ad9dc105b0 [UDFS]
Use the same fix for the PIMAGE_NT_HEADERS32 redefinition which is bein used in uniata. Spotted by Thomas Faber

svn path=/trunk/; revision=68146
2015-06-15 11:59:49 +00:00
Daniel Reimer 1b5231d4ed [UDFS]
Fix compilation for AMD64 and ARM.
- It's no good idea to use the x86 ASM optimizations on any architecture. Luckily Alter made plain C++ ones for that case, too. Thus modify the #ifdefs a bit to use em.
- Fix a few directly used functions instead of the defined architecture fixed ones of em.
- After some discussion with Thomas Faber the ULONG vs UINT32 problems were resolved by using the same platform defines for all three architectures.
BUILDS? yes WORKS? Trololololo ^^

svn path=/trunk/; revision=68144
2015-06-15 11:35:30 +00:00
Daniel Reimer 6d2d280649 [UDFS]
VC makefiles and their deps are not needed for us.

svn path=/trunk/; revision=68143
2015-06-15 01:35:25 +00:00
Pierre Schweitzer ad577755ca [NTFS]
- Use a lookaside list for FCB allocation
- Properly delete FCB in NtfsMountVolume()

svn path=/trunk/; revision=68106
2015-06-11 20:54:01 +00:00
Amine Khaldi 07d842f6c6 [UDFS] Fix all GCC warnings! By V. with one little change by me to keep MSVC build working :)
svn path=/trunk/; revision=68087
2015-06-09 10:40:26 +00:00
Eric Kohl 5e2fe69e38 [UDFS]
Remove license, evaluation and demo features. They makes no sense in an open source driver.

svn path=/trunk/; revision=68081
2015-06-08 19:54:46 +00:00
Amine Khaldi 0f20f1f0b7 [UDFS] Add a PCH.
svn path=/trunk/; revision=68076
2015-06-08 14:27:09 +00:00
Amine Khaldi c5c93fc98b [UDFS] Explicitly mention the license (GPLv2).
svn path=/trunk/; revision=68075
2015-06-08 14:24:47 +00:00
Amine Khaldi a38569842b [UDFS] Remove some unneeded headers, we have our own. CORE-9774
svn path=/trunk/; revision=68046
2015-06-06 15:23:00 +00:00
Amine Khaldi 390609a4f4 [UDFS] Enable the GCC build now. CORE-9774
svn path=/trunk/; revision=68041
2015-06-06 14:05:59 +00:00
Amine Khaldi 889b50cfdf [UDFS] Fix includes. CORE-9774
svn path=/trunk/; revision=68040
2015-06-06 13:48:19 +00:00
Amine Khaldi 24a6ef1789 [UDFS] Fix an include. CORE-9774
svn path=/trunk/; revision=68038
2015-06-06 13:07:21 +00:00
Amine Khaldi 9a67ed6926 [UDFS] Svn add some missing files. CORE-9774
svn path=/trunk/; revision=68037
2015-06-06 12:57:53 +00:00
Amine Khaldi 7504b2b969 [UDFS] Import a UDF File System Driver created by Alexander Telyatnikov (Alter) and co. Many thanks to Alexander Rechitskiy (jeditobe), the negotiator for opening the source of the whole software package (DVD Write Now) under the GPLv2 license and to the authors for kindly accepting to do so. I introduced many changes to the original code (made it use our PSEH3 for SEH, got it to compile from within ReactOS in both MSVC and Windows GCC builds...etc) and it's still WIP. We'll hopefully have an excellent collaboration to improve it and maintain its sync.. Stay tuned ;) CORE-9774
svn path=/trunk/; revision=68036
2015-06-06 12:52:13 +00:00
Eric Kohl 132e058f65 [CDFS]
Initialize an uninitialized variable.

svn path=/trunk/; revision=68000
2015-06-02 13:14:33 +00:00
Eric Kohl 9e959dc0a3 [CDFS]
Add IRP_MJ_QUERY_VOLUME_INFORMATION.FileFsFullSizeInformation to CDFS too.

svn path=/trunk/; revision=67999
2015-06-02 12:37:37 +00:00
Eric Kohl ec3eb2d675 [FASTFAT]
Add IRP_MJ_QUERY_VOLUME_INFORMATION.FileFsFullSizeInformation. This fixes a number of ntdll winetests.

svn path=/trunk/; revision=67998
2015-06-02 09:08:33 +00:00
Eric Kohl 102fea8ac8 [CDFS]
Finally queue IRP_MJ_CREATE IRPs too.

svn path=/trunk/; revision=67997
2015-06-01 19:22:42 +00:00
Eric Kohl 51086174d5 [CDFS]
Queue IRP_MJ_READ, IRP_MJ_WRITE, IRP_MJ_CLOSE and IRP_MJ_CLEANUP IRPs.

svn path=/trunk/; revision=67994
2015-06-01 17:15:11 +00:00
Eric Kohl 378407a5c8 [CDFS]
Queue IRP_MJ_DIRECTORY_CONTROL IRPs.

svn path=/trunk/; revision=67991
2015-06-01 15:04:50 +00:00
Eric Kohl ef692c9c85 [CDFS]
Fix indentation and coding style. No code changes!

svn path=/trunk/; revision=67990
2015-06-01 15:00:51 +00:00
Eric Kohl d284e715f4 [CDFS]
Do not complete an IRP that will be passed down to a lower driver.

svn path=/trunk/; revision=67989
2015-06-01 14:26:58 +00:00
Eric Kohl 2ae749ea34 [CDFS]
- Move the fastio code to a separate file.
- Add Pierres IRP-Queue code and use it for IRP_MJ_QUERY_VOLUME_INFORMATION, IRP_MJ_SET_VOLUME_INFORMATION, IRP_MJ_QUERY_INFORMATION, IRP_MJ_SET_INFORMATION, IRP_MJ_DEVICE_CONTROL and IRP_MJ_FILE_SYSTEM_CONTROL requests.

svn path=/trunk/; revision=67988
2015-06-01 13:13:18 +00:00
Pierre Schweitzer 4512ae4da4 [NTFS]
So faar our driver is read-only

svn path=/trunk/; revision=67984
2015-05-31 21:31:14 +00:00
Pierre Schweitzer 4a632280f0 [NTFS]
Directly implement NtfsOpenFileById() for special files from the MFT where we cannot moonwalk there path.
It concerns any file with ID < 0x10.
This function can only cope with file which ID is < 0xc. Windows Internals reports that 0xc - 0xf entries are unused.

It would be interesting to double check returrned status in case of error, and also what Windows returns when attempting weird opening of suchs entries (overwrite, create for unused, etc).

svn path=/trunk/; revision=67983
2015-05-31 21:28:52 +00:00
Pierre Schweitzer 488b5f9d64 [NTFS]
- Don't attempt to moon walk path name for reserved MFT entries.
- Don't attempt to dereference file name if it doesn't exist

svn path=/trunk/; revision=67918
2015-05-26 07:10:45 +00:00
Pierre Schweitzer 3e2082bafa [FASTFAT]
[NTFS]
Addendum to r67911

svn path=/trunk/; revision=67914
2015-05-25 17:54:27 +00:00
Pierre Schweitzer 23eb05714f [NTFS]
Call NtfsGetUserBuffer() when required, don't reimplement the wheel everytime

svn path=/trunk/; revision=67913
2015-05-25 17:45:04 +00:00
Pierre Schweitzer 3deb2b256e [NTFS]
Fix MmGetSystemAddressForMdlSafe() call, as it was done in r67808

svn path=/trunk/; revision=67912
2015-05-25 17:43:04 +00:00
Pierre Schweitzer 37a429b0be [FASTFAT]
[NTFS]
Remove useless cast and use appropriate macro.
Spotted by Thomas

svn path=/trunk/; revision=67911
2015-05-25 17:30:01 +00:00
Pierre Schweitzer 94d99f3fe3 [NTFS]
Acquire FCB resource (shared) before trying to attempt its data

svn path=/trunk/; revision=67910
2015-05-25 17:06:00 +00:00
Pierre Schweitzer c28fc5a816 [NTFS]
If IRP can't wait, queue it

svn path=/trunk/; revision=67909
2015-05-25 16:52:15 +00:00
Pierre Schweitzer 8034fab3df [NTFS]
Implement NtfsMarkIrpContextForQueue() which allows marking an IRP to queue it

svn path=/trunk/; revision=67908
2015-05-25 16:52:02 +00:00
Pierre Schweitzer 8f4f1ce119 [NTFS]
Handle IRP_MJ_FILE_SYSTEM_CONTROL with the dispatch routine

svn path=/trunk/; revision=67905
2015-05-25 12:55:51 +00:00
Pierre Schweitzer 4eabc351c6 [NTFS]
Handle IRP_MJ_CREATTE with the dispatch routine

svn path=/trunk/; revision=67903
2015-05-25 11:58:23 +00:00
Pierre Schweitzer 1dd645fcbd [NTFS]
Handle IRP_MJ_CLOSE with the dispatch routine

svn path=/trunk/; revision=67892
2015-05-24 21:29:34 +00:00
Pierre Schweitzer 4c9b6600ea [NTFS]
Use non-paged lookaside list for IRP context allocation

svn path=/trunk/; revision=67883
2015-05-24 15:26:15 +00:00
Pierre Schweitzer 63560ef203 [FASTFAT]
- Add a debugging assert that will save your lot of time if you attempt to manually queue a wrong IRP. You cannot queue an IRP which is set to be later queued again. This is a broken behavior.
- Remove a bit of code duplication

svn path=/trunk/; revision=67880
2015-05-24 12:39:10 +00:00
Pierre Schweitzer d4a0828949 [NTFS]
Implement request qeueing (based on FastFAT work)

svn path=/trunk/; revision=67878
2015-05-24 12:28:51 +00:00
Pierre Schweitzer d71894a0ad [NTFS]
- Only free the IRP context in case the request is not to be queued
- Stubplement request queueing support in NtfsDispatch()

svn path=/trunk/; revision=67877
2015-05-24 12:20:51 +00:00
Pierre Schweitzer 6277edf7d8 [NTFS]
Handle IRP_MJ_WRITE with the dispatch routine

svn path=/trunk/; revision=67876
2015-05-24 12:17:43 +00:00
Pierre Schweitzer ab8558bafd [NTFS]
Split NtfsFsdDispatch() in two.
Now, NtfsFsdDispatch() will only take care of allocating the IRP context and complete the IRP in case it failed (that fixes a null-pointer dereference, just for the record).
NtfsDispatch() will really dispatch the IRP to the internal functions. So that it can be called either directly from NtfsFsdDispatch() or by a queued IRP (to be implemented).

svn path=/trunk/; revision=67875
2015-05-24 10:48:15 +00:00
Pierre Schweitzer 4f7de22ae4 [FASTFAT]
Implement support for FastIO for:
- FastIoQueryBasicInfo
- FastIoQueryStandardInfo

Now, with this commit and the two previous, ReactOS won't attempt to issue an IRP for these query, but will directly go with the FastIO path.
The performance improvement is really visible in 1st stage (at least, here with VBox).

svn path=/trunk/; revision=67824
2015-05-18 19:51:14 +00:00
Pierre Schweitzer 89eca90722 [FASTFAT]
Fix a fixme in VfatGetUserBuffer():
Only request high priority page when in the paging path. Otherwise, request normal priority

svn path=/trunk/; revision=67808
2015-05-17 12:22:28 +00:00
Pierre Schweitzer 279c4411fa [NTFS]
Fix memory leaks

svn path=/trunk/; revision=67764
2015-05-16 10:23:55 +00:00