IN AFSVolumeCB *VolumeCB,
IN AFSDirectoryCB *ParentDirCB,
IN AFSDirectoryCB *DirectoryCB,
+ IN BOOLEAN bOpenedReparsePoint,
OUT AFSFcb **Fcb,
OUT AFSCcb **Ccb);
AFSInitFcb( IN AFSDirectoryCB *DirEntry);
NTSTATUS
-AFSInitVolume( IN GUID *AuthGroup,
- IN AFSFileID *RootFid,
- IN LONG VolumeReferenceReason,
- OUT AFSVolumeCB **VolumeCB);
-
-NTSTATUS
-AFSRemoveVolume( IN AFSVolumeCB *VolumeCB);
-
-LONG
-AFSVolumeIncrement( IN AFSVolumeCB *VolumeCB,
- IN LONG Reason);
-
-LONG
-AFSVolumeDecrement( IN AFSVolumeCB *VolumeCB,
- IN LONG Reason);
-
-NTSTATUS
AFSInitRootFcb( IN ULONGLONG ProcessID,
IN AFSVolumeCB *VolumeCB);
OUT LONG *OutVolumeReferenceReason,
OUT AFSDirectoryCB **OutParentDirectoryCB,
OUT AFSDirectoryCB **OutDirectoryCB,
- OUT PUNICODE_STRING ComponentName);
+ OUT PUNICODE_STRING ComponentName,
+ OUT PUNICODE_STRING TargetName);
NTSTATUS
AFSCreateDirEntry( IN GUID *AuthGroup,
void
AFSDeleteDirEntry( IN AFSObjectInfoCB *ParentObjectInfo,
- IN AFSDirectoryCB *DirEntry);
+ IN AFSDirectoryCB **ppDirEntry);
NTSTATUS
AFSRemoveDirNodeFromParent( IN AFSObjectInfoCB *ParentObjectInfo,
NTSTATUS
AFSProcessDFSLink( IN AFSDirectoryCB *DirEntry,
IN PFILE_OBJECT FileObject,
- IN UNICODE_STRING *RemainingPath,
- IN GUID *AuthGroup);
+ IN PUNICODE_STRING RemainingPath,
+ IN GUID *AuthGroup,
+ OUT PUNICODE_STRING TargetName);
+
+NTSTATUS
+AFSGetFullFileName( IN AFSFcb *Fcb,
+ IN AFSCcb *Ccb,
+ OUT ULONG *FileNameLength,
+ OUT WCHAR *FileName,
+ IN OUT LONG *RemainingLength);
//
// AFSNetworkProviderSupport.cpp
IN OUT PLONG Length);
NTSTATUS
-AFSQueryAccess( IN PIRP Irp,
- IN AFSFcb *Fcb,
- IN OUT PFILE_ACCESS_INFORMATION Buffer,
- IN OUT PLONG Length);
-
-NTSTATUS
-AFSQueryMode( IN PIRP Irp,
- IN AFSFcb *Fcb,
- IN OUT PFILE_MODE_INFORMATION Buffer,
- IN OUT PLONG Length);
-
-NTSTATUS
-AFSQueryAlignment( IN PIRP Irp,
- IN AFSFcb *Fcb,
- IN OUT PFILE_ALIGNMENT_INFORMATION Buffer,
- IN OUT PLONG Length);
-
-NTSTATUS
AFSQueryAttribTagInfo( IN PIRP Irp,
IN AFSDirectoryCB *DirectoryCB,
IN OUT FILE_ATTRIBUTE_TAG_INFORMATION *Buffer,
NTSTATUS
AFSSetBasicInfo( IN PIRP Irp,
- IN AFSDirectoryCB *DirectoryCB);
+ IN AFSDirectoryCB *DirectoryCB,
+ OUT BOOLEAN *bUpdateFileInfo);
NTSTATUS
AFSSetDispositionInfo( IN PIRP Irp,
IN PIRP Irp);
//
+// AFSVolume.cpp Prototypes
+//
+
+NTSTATUS
+AFSInitVolume( IN GUID *AuthGroup,
+ IN AFSFileID *RootFid,
+ IN LONG VolumeReferenceReason,
+ OUT AFSVolumeCB **VolumeCB);
+
+NTSTATUS
+AFSRemoveVolume( IN AFSVolumeCB *VolumeCB);
+
+LONG
+AFSVolumeIncrement( IN AFSVolumeCB *VolumeCB,
+ IN LONG Reason);
+
+LONG
+AFSVolumeDecrement( IN AFSVolumeCB *VolumeCB,
+ IN LONG Reason);
+
+//
// AFSVolumeInfo.cpp Prototypes
//
NTSTATUS
AFSQueryFsVolumeInfo( IN AFSVolumeInfoCB *VolumeInfo,
IN PFILE_FS_VOLUME_INFORMATION Buffer,
+ IN BOOLEAN bDosDevice,
IN OUT PULONG Length);
NTSTATUS
NTSTATUS
AFSVerifyEntry( IN GUID *AuthGroup,
- IN AFSDirectoryCB *DirectoryCB);
+ IN AFSDirectoryCB *DirectoryCB,
+ IN BOOLEAN bFollowMountPoint);
NTSTATUS
AFSSetVolumeState( IN AFSVolumeStatusCB *VolumeStatus);
AFSObjectInfoCB *
AFSFindObjectInfo( IN AFSVolumeCB * VolumeCB,
- IN AFSFileID * FileID);
+ IN AFSFileID * FileID,
+ IN BOOLEAN bUpdateLastUse);
void
AFSReleaseObjectInfo( IN OUT AFSObjectInfoCB **ppObjectInfo);
IN SIZE_T NumberOfBytes,
IN ULONG Tag);
+#define AFSLibExFreePool(x) ExFreePool(x)
+
+#define AFSLibExFreePoolWithTag(x,y) ExFreePoolWithTag(x,y)
+
BOOLEAN
AFSValidNameFormat( IN UNICODE_STRING *FileName);
AFSPerformObjectInvalidate( IN AFSObjectInfoCB *ObjectInfo,
IN ULONG InvalidateReason);
+BOOLEAN
+AFSIgnoreReparsePointToFile( void);
+
+NTSTATUS
+AFSRetrieveTargetFileInfo( IN PUNICODE_STRING TargetName,
+ OUT AFSFileInfoCB *FileInfo);
+
+BOOLEAN
+AFSIsShareName( IN UNICODE_STRING *FileName);
+
//
// AFSNameArray.cpp Prototypes
//