OUT AFSFileID *UpdatedFID);
NTSTATUS
+AFSNotifyHardLink( IN AFSObjectInfoCB *ObjectInfo,
+ IN GUID *AuthGroup,
+ IN AFSObjectInfoCB *ParentObjectInfo,
+ IN AFSObjectInfoCB *TargetParentObjectInfo,
+ IN AFSDirectoryCB *SourceDirectoryCB,
+ IN UNICODE_STRING *TargetName,
+ IN BOOLEAN bReplaceIfExists,
+ OUT AFSDirectoryCB **TargetDirectoryCB);
+
+NTSTATUS
AFSEvaluateTargetByID( IN AFSObjectInfoCB *ObjectInfo,
IN GUID *AuthGroup,
IN BOOLEAN FastCall,
NTSTATUS
AFSReleaseExtentsWithFlush( IN AFSFcb *Fcb,
- IN GUID *AuthGroup);
+ IN GUID *AuthGroup,
+ IN BOOLEAN bReleaseAll);
NTSTATUS
AFSReleaseCleanExtents( IN AFSFcb *Fcb,
AFSTearDownFcbExtents( IN AFSFcb *Fcb,
IN GUID *AuthGroup);
+VOID
+AFSDeleteFcbExtents( IN AFSFcb *Fcb);
+
void
AFSTrimExtents( IN AFSFcb *Fcb,
IN PLARGE_INTEGER FileSize);
AFSExtent *
ExtentFor( PLIST_ENTRY le, ULONG SkipList );
+AFSExtent *
+NextExtent( AFSExtent *Extent, ULONG SkipList );
+
ULONG
AFSConstructCleanByteRangeList( AFSFcb * pFcb,
AFSByteRange ** pByteRangeList);
// AFSClose.cpp Prototypes
//
+
NTSTATUS
AFSClose( IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp);
void
AFSRemoveFcb( IN AFSFcb **Fcb);
-NTSTATUS
+void
AFSRemoveCcb( IN AFSFcb *Fcb,
IN AFSCcb *Ccb);
AFSSetRenameInfo( IN PIRP Irp);
NTSTATUS
+AFSSetFileLinkInfo( IN PIRP Irp);
+
+NTSTATUS
AFSSetPositionInfo( IN PIRP Irp,
IN AFSDirectoryCB *DirectoryCB);
void *
AFSLockUserBuffer( IN void *UserBuffer,
IN ULONG BufferLength,
- OUT MDL ** Mdl);
+ OUT MDL ** Mdl);
void *
AFSMapToService( IN PIRP Irp,
NTSTATUS
AFSValidateEntry( IN AFSDirectoryCB *DirEntry,
IN GUID *AuthGroup,
- IN BOOLEAN FastCall);
+ IN BOOLEAN FastCall,
+ IN BOOLEAN SafeToPurge);
AFSDirectoryCB *
AFSGetSpecialShareNameEntry( IN UNICODE_STRING *ShareName,
BOOLEAN
AFSIsRelativeName( IN UNICODE_STRING *Name);
+BOOLEAN
+AFSIsAbsoluteAFSName( IN UNICODE_STRING *Name);
+
void
AFSUpdateName( IN UNICODE_STRING *Name);
AFSAllocateObjectInfo( IN AFSObjectInfoCB *ParentObjectInfo,
IN ULONGLONG HashIndex);
+LONG
+AFSObjectInfoIncrement( IN AFSObjectInfoCB *ObjectInfo);
+
+LONG
+AFSObjectInfoDecrement( IN AFSObjectInfoCB *ObjectInfo);
+
void
AFSDeleteObjectInfo( IN AFSObjectInfoCB *ObjectInfo);
void
AFSPrimaryVolumeWorkerThread( IN PVOID Context);
-void
-AFSVolumeWorkerThread( IN PVOID Context);
-
NTSTATUS
AFSInsertWorkitem( IN AFSWorkItem *WorkItem);