- 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
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
- Add FdoQueryBusRelations to enumerate the 'attached' raw port.
- Create the PDO for the raw port (\Device\ParallelX) and let the symbolic link (\DosDevices\LPTX) point to it.
- Move the open, close and write code from the FDO to the PDO.
svn path=/trunk/; revision=67936
- 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
- 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
- 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
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
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
Fix a fixme in VfatGetUserBuffer():
Only request high priority page when in the paging path. Otherwise, request normal priority
svn path=/trunk/; revision=67808
- Add coprocessor constants
[NTOSKRNL]
- Handle process in NtFlushInstructionCache and validate parameters
- Use _MoveToCoprocessor instead of GCC inline assembly for ARM
svn path=/trunk/; revision=67770