• last updated 15 hours ago
Constraints: committers
Constraints: files
Constraints: dates

- Implement __RxWriteReleaseResources(), RxCommonWrite(), RxCompleteMdl(), RxGetTopIrpIfRdbssIrp(), RxLowIoWriteShell(), RxLowIoWriteShellCompletion()

- Finish implementation of RxCommonCleanup() so that it handles setting EOF on a file

- Finish implementation of RxCommonCreate() so that it handles sharing violations and attempts to scavenge open files


- Implement RxpScavengeFobxs(), RxpTrackDereference(), RxpTrackReference(), RxPurgeFobx(), RxPurgeRelatedFobxs(), RxReinitializeContext(), RxSetFileSizeWithLock(), RxScavengeFobxsForNetRoot()

- Fix a bug in RxPrefixTableLookupName() where it was badly handling nodes in scavenger

This commits brings several improvments to the NFS driver.

First of all, now, the driver handles creating, extending and writing to files!

It also handles purging dormant opened files when a file opening fails because of a sharing violation

Finally, it also brings something to look at our references issues in RDBSS to help finding out why our FCB are never (or nearly) dereferenced




  1. … 6 more files in changeset.

Implement RxNotifyChangeDirectory(), RxLowIoNotifyChangeDirectoryCompletion(), RxCancelNotifyChangeDirectoryRequestsForVNetRoot()

This means the first parts of the directory watch are here. Though, NFS driver doesn't support these, but at least, it reduces the UNIMPLEMENTED spam!


  1. … 1 more file in changeset.

- Define RxShouldPostCompletion() and use it

- Define RxIsResourceOwnershipStateExclusive() and use it

- Define some magic values


- Implement CheckForLoudOperations(), RxAdjustFileTimesAndSize(), RxIsOkToPurgeFcb()

- Continue implementation of RxCommonCleanup()

- Fix bugs in the RxCommonCleanup() implementation and make it more explicit when in the delete on close path

- Stub RxCleanupPipeQueues(), RxLowIoLockControlShell()

- Silent a few DPRINTs



  1. … 5 more files in changeset.



Add an initial implementation of the RXCE and RDBSS libraries that are used to implement mini-redirectors

The associated headers are also added to DDK

The implementation is partial (really!) and is only working for read-only operations.

It leaks memory as hell (no refcounting implemented) and thus, objects freeing is not implemented.

It was tested with NFS41 driver. With such RDBSS, it's possible for the driver to mount a remote share, to list

files, to query their properties, to query volume properties, and finally to read files (with some corruption under

specific conditions).

Please refrain from committing in this (especially for modifying whitespaces or fixing comments...), this is still WIP

and under development, it would mess with my local changes!

In itself, it doesn't bring anything to ReactOS yet, as no mini redirector is available in ReactOS source tree.

This may come later on with NFS41.

More to follow...


  1. … 29 more files in changeset.