Windows: !overwrite IOMgr populated FileInfo data
[openafs.git] / src / WINNT / afsrdr / kernel / lib / Include / AFSCommon.h
index 50aee25..55735e2 100644 (file)
@@ -326,6 +326,7 @@ AFSProcessOpen( IN PIRP Irp,
                 IN AFSVolumeCB *VolumeCB,
                 IN AFSDirectoryCB *ParentDirCB,
                 IN AFSDirectoryCB *DirectoryCB,
+               IN BOOLEAN bOpenedReparsePoint,
                 OUT AFSFcb **Fcb,
                 OUT AFSCcb **Ccb);
 
@@ -573,7 +574,8 @@ AFSLocateNameEntry( IN GUID *AuthGroup,
                     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,
@@ -631,8 +633,9 @@ AFSBuildRootVolume( IN GUID *AuthGroup,
 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);
 
 //
 // AFSNetworkProviderSupport.cpp
@@ -795,24 +798,6 @@ AFSQueryStreamInfo( IN PIRP Irp,
                     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,
@@ -836,7 +821,8 @@ AFSSetFileInfo( IN PDEVICE_OBJECT DeviceObject,
 
 NTSTATUS
 AFSSetBasicInfo( IN PIRP Irp,
-                 IN AFSDirectoryCB *DirectoryCB);
+                IN AFSDirectoryCB *DirectoryCB,
+                OUT BOOLEAN *bUpdateFileInfo);
 
 NTSTATUS
 AFSSetDispositionInfo( IN PIRP Irp,
@@ -932,6 +918,7 @@ AFSSetVolumeInfo( IN PDEVICE_OBJECT DeviceObject,
 NTSTATUS
 AFSQueryFsVolumeInfo( IN AFSVolumeInfoCB *VolumeInfo,
                       IN PFILE_FS_VOLUME_INFORMATION Buffer,
+                      IN BOOLEAN bDosDevice,
                       IN OUT PULONG Length);
 
 NTSTATUS
@@ -1232,7 +1219,8 @@ AFSInvalidateAllVolumes( VOID);
 
 NTSTATUS
 AFSVerifyEntry( IN GUID *AuthGroup,
-                IN AFSDirectoryCB *DirectoryCB);
+               IN AFSDirectoryCB *DirectoryCB,
+               IN BOOLEAN bFollowMountPoint);
 
 NTSTATUS
 AFSSetVolumeState( IN AFSVolumeStatusCB *VolumeStatus);
@@ -1339,7 +1327,8 @@ AFSDeleteObjectInfo( IN AFSObjectInfoCB **ppObjectInfo);
 
 AFSObjectInfoCB *
 AFSFindObjectInfo( IN AFSVolumeCB * VolumeCB,
-                   IN AFSFileID   * FileID);
+                   IN AFSFileID   * FileID,
+                   IN BOOLEAN       bUpdateLastUse);
 
 void
 AFSReleaseObjectInfo( IN OUT AFSObjectInfoCB **ppObjectInfo);
@@ -1424,6 +1413,10 @@ AFSLibExAllocatePoolWithTag( IN POOL_TYPE  PoolType,
                              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);
 
@@ -1444,6 +1437,13 @@ NTSTATUS
 AFSPerformObjectInvalidate( IN AFSObjectInfoCB *ObjectInfo,
                             IN ULONG InvalidateReason);
 
+BOOLEAN
+AFSIgnoreReparsePointToFile( void);
+
+NTSTATUS
+AFSRetrieveTargetFileInfo( IN PUNICODE_STRING TargetName,
+                          OUT AFSFileInfoCB *FileInfo);
+
 //
 // AFSNameArray.cpp Prototypes
 //