- Protect ARRAY access with macro's / helper functions.
- Do not store objects in the ARRAY data, but store pointers to the objects.
- Rewrite import hooking to use an ARRAY instead of single linked lists.
svn path=/trunk/; revision=75455
Implement RxPrepareToReparseSymbolicLink().
This allows symbolic links to work on a NFS share, we can now follow links that would have been exported by the server.
Safe to merge.
CORE-8204
CORE-11327
CORE-13615
svn path=/trunk/; revision=75451
In case NFS session expires while reading/writing to a file, renew the session instead of just failing.
This avoids not being able to transfer any file with slow connection, and not being able to transfer big files with normal connection.
CORE-8204
CORE-13484
svn path=/trunk/; revision=75444
In case of synchronous read, it's legit for the FSD to notify EOF by returning success & zero read length.
It fixes never ending reads when copying a file from NFS to local disk.
CORE-8204
CORE-11327
CORE-13484
svn path=/trunk/; revision=75443
Don't forget to set RX_CONTEXT_FLAG_FROM_POOL flag when allocating a new RX_CONTEXT structure from pool.
This avoids leaking it afterwards and exhausting NP pool when using NFS.
CORE-8204
CORE-11327
CORE-13484
CORE-13604
svn path=/trunk/; revision=75442
- Implement RxAcquireFcbForLazyWrite(), RxAcquireFcbForReadAhead(), RxReleaseFcbFromLazyWrite(), RxReleaseFcbFromReadAhead()
This makes RXCE better at dealing with Cc (and the other way round ;-)). This notably avoids infinite acquire loops from Cc when writing on a NFS share.
CORE-8204
CORE-11327
svn path=/trunk/; revision=75441
- Move debug heap functionality to a separate file
- Clean includes
- Remove msvcrt dependency
- Clean up string usage
- Remove some higher level functions in favor of their ntdll counterparts (wip).
svn path=/trunk/; revision=75432
Import commits by Kaho Ng <ngkaho1234@gmail.com> from upstream:
- b7657e5 Ext3Fsd: Introduce VCB_RO_COMPAT_READ_ONLY flag for struct VCB
- e7c1142 Ext3Fsd: EXT4_FEATURE_INCOMPAT_64BIT is not supported
- 785943f Ext3Fsd: fix issue #6
Refuse mounting filesystems with incompatible flags. This avoids corrupting 64bits filesystems.
Patch by Lubomir Rintel
CORE-13589
svn path=/trunk/; revision=75422
- Misc fixes with DPRINTS
[RXCE]
- In RxFinalizeSrvOpen, always dereference the FCB, it's always referenced on SRV_OPEN creation
- Misc fixes with DPRINTS
With that revision and r75419, I'm now able to mount a NFS share, browse it, read a file from it, and unmount it.
We're OK regarding references counting!
CORE-8204
CORE-11327
CORE-13581
svn path=/trunk/; revision=75420
Revert r75348.
Because of r75349, this revision was made useless, and even worse, it was leaking a handle to the directory where the FSD doesn't support notifications.
Also made some debug traces more useful
svn path=/trunk/; revision=75419
Huge "hack" for ReactOS.
In case we're asked to unmount a NFS share, and there are still active FCBs, browse the prefix table for active NET_ROOT, and then, dump their associated FCBs (prefix + refcount).
It seems we only leak the root FCB.
CORE-8204
CORE-11327
CORE-13581
svn path=/trunk/; revision=75415
- Implement RxFastIoWrite()
- Finish implementation of RxFastIoCheckIfPossible()
[COPYSUP]
- Implement FsRtlCopyWrite2()
This brings (in link with r75398 fast IO writes to RDBSS, and thus NFS!
CORE-8204
CORE-11327
svn path=/trunk/; revision=75409
- Broadcast the appropriate messages to notify a change in display parameters and color. This should fix rollback issues from setting display modes. See CORE-12571 and CORE-13212.
svn path=/trunk/; revision=75407
[BOOTMGR]
Disabled x86-specific code when building ARM.
[LIBSUPP]
Use a hack to replace inline asm which is not supported by MSVC ARM.
[DBGHELP]
Fix ARM register access from context struct.
[MSVCRT]
Fix typo in spec file.
[NTOSKRNL]
[WIN32SS]
Add asm dependency to *sys modules.
[CPPRT]
Add one of the missing constructor aliases. There's more, but my brain is fried at this point.
[BTRFS]
Define-away an include for x86-specific intrinsics.
This is the first batch of fixes for building reactos using the MSVC ARM toolchain. A lot more work is needed to get a full build including rostests and rosapps.
svn path=/trunk/; revision=75403
Fix pointer math ('unsigned long' will truncate the pointer).
[MKISOFS/SCHILY TOOLS]
Fix the invalid assumption that a 'long' variable can hold pointers. Will be sent upstream.
With this the whole of reactos and rostests builds on x64. Rosapps still has issues.
svn path=/trunk/; revision=75399
- 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
[RXCE]
- 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
CORE-8204
CORE-11327
CORE-13581
svn path=/trunk/; revision=75398
MSVCRT_CRT_APITEST: Remove getmainargs tests from X64 build.
DELAYIMP: Fix callback prototype.
CComHeapPtr: Fix implementation of IMallocSpy to match the actual interface.
[WINETESTS]
ntdll: Disable 'generated' tests when not i386 platform, since they were generated for x86 and not x64 or ARM.
Fixes x64 compilation for tests.
svn path=/trunk/; revision=75397
Stub out some arch-specific functions (fixes x64 build).
[USBPORT]
Actually fix x64 build. The old code was not working at all, but the bootlib errors cancelled the build earlier than I thought.
The X64 compilation now succeeds, but cabman crashes trying to generate the bootcd.
svn path=/trunk/; revision=75396