Windows: Move Authenticated field to CommResultCB
[openafs.git] / src / WINNT / afsrdr / common / AFSUserStructs.h
index 7aa09a8..658fbae 100644 (file)
@@ -59,7 +59,7 @@ typedef struct _AFS_FILE_ID
 typedef struct _AFS_COMM_REQUEST_BLOCK
 {
 
-    AFSFileID       FileId;             /* Initialize unused elements to 0 */
+    AFSFileID       FileId;          /* Initialize unused elements to 0 */
 
     ULONG           RequestType;
 
@@ -67,17 +67,17 @@ typedef struct _AFS_COMM_REQUEST_BLOCK
 
     ULONG           RequestFlags;    /* AFS_REQUEST_FLAG_xxxx */
 
-    ULONG           NameLength;      // Length of the name in bytes
+    ULONG           NameLength;      /* Length of the name in bytes */
 
-    ULONG           DataOffset;       // This offset is from the end of the structure, including the name
+    ULONG           DataOffset;      /* This offset is from the end of the structure, including the name */
 
     ULONG           DataLength;
 
-    GUID            AuthGroup;      // Length: sizeof(GUID) */
+    GUID            AuthGroup;       /* Length: sizeof(GUID) */
 
     ULONG           ResultBufferLength;    /* Do not exceed this length in response */
 
-    LONG            QueueCount;     // Current outstanding requests in the queue
+    LONG            QueueCount;      /* Current outstanding requests in the queue */
 
     WCHAR           Name[ 1];
 
@@ -95,9 +95,9 @@ typedef struct _AFS_COMM_RESULT_BLOCK
 
     ULONG           ResultStatus;        /* NTSTATUS_xxx */
 
-    ULONG           ResultBufferLength;    /* Not to exceed AFSCommRequest ResultBufferLength */
+    ULONG           ResultBufferLength;  /* Not to exceed AFSCommRequest ResultBufferLength */
 
-    ULONG           Reserved;           /* To ease Quad Alignment */
+    ULONG           Authenticated;       /* Tokens or No? */
 
     char            ResultData[ 1];
 
@@ -108,8 +108,8 @@ typedef struct _AFS_COMM_RESULT_BLOCK
 //
 
 #define AFS_REDIR_INIT_FLAG_HIDE_DOT_FILES          0x00000001
-
 #define AFS_REDIR_INIT_NO_PAGING_FILE               0x00000002
+#define AFS_REDIR_INIT_FLAG_DISABLE_SHORTNAMES     0x00000004
 
 typedef struct _AFS_REDIR_INIT_INFO_CB
 {
@@ -214,6 +214,8 @@ typedef struct _AFS_DIR_ENUM_ENTRY
 
     WCHAR           ShortName[12];
 
+    ULONG           NTStatus;           /* Error code during enumeration */
+
     /* Long Filename and Target (Symlink and MountPoint only) to follow without NULs */
 
 } AFSDirEnumEntry;
@@ -224,6 +226,10 @@ typedef struct _AFS_DIR_ENUM_RESP
 
     ULONG_PTR       EnumHandle;
 
+    LARGE_INTEGER   SnapshotDataVersion; /* DV at time Name/FID list was generated */
+
+    LARGE_INTEGER   CurrentDataVersion;   /* DV at time this header was constructed */
+
     AFSDirEnumEntry Entry[ 1];     /* Each entry is Quad aligned */
 
 } AFSDirEnumResp;
@@ -235,9 +241,9 @@ typedef struct _AFS_DIR_ENUM_RESP
 typedef struct _AFS_VOLUME_INFORMATION
 {
 
-    LARGE_INTEGER   TotalAllocationUnits;       /* Partition Max Blocks */
+    LARGE_INTEGER   TotalAllocationUnits;       /* Volume Max Blocks (Partition or Quota) */
 
-    LARGE_INTEGER   AvailableAllocationUnits;   /* Partition Blocks Avail */
+    LARGE_INTEGER   AvailableAllocationUnits;   /* Volume Blocks Avail (Partition or Quota) */
 
     LARGE_INTEGER   VolumeCreationTime;         /* AFS Last Update - Not Creation */
 
@@ -258,10 +264,33 @@ typedef struct _AFS_VOLUME_INFORMATION
 
     ULONG           VolumeLabelLength;
 
-    WCHAR           VolumeLabel[20];            /* Volume:Cell */
+    WCHAR           VolumeLabel[128];           /* Volume */
+
+    ULONG           CellLength;
+
+    WCHAR           Cell[128];                  /* Cell */
 
 } AFSVolumeInfoCB;
 
+
+//
+// Volume size information CB passed used to satisfy
+// FileFsFullSizeInformation and FileFsSizeInformation
+//
+
+typedef struct _AFS_VOLUME_SIZE_INFORMATION
+{
+
+    LARGE_INTEGER   TotalAllocationUnits;       /* Max Blocks (Quota or Partition) */
+
+    LARGE_INTEGER   AvailableAllocationUnits;   /* Blocks Avail (Quota or Partition) */
+
+    ULONG           SectorsPerAllocationUnit;   /* = 1 */
+
+    ULONG           BytesPerSector;             /* = 1024 */
+
+} AFSVolumeSizeInfoCB;
+
 //
 // File create CB
 //
@@ -518,6 +547,8 @@ typedef struct _AFS_FILE_UPDATE_CB
 typedef struct _AFS_FILE_UPDATE_RESULT_CB
 {
 
+    LARGE_INTEGER   ParentDataVersion;
+
     AFSDirEnumEntry DirEnum;
 
 } AFSFileUpdateResultCB;
@@ -576,6 +607,39 @@ typedef struct _AFS_FILE_RENAME_RESULT_CB
 
 
 //
+// File Hard Link CB
+//
+
+typedef struct _AFS_FILE_HARDLINK_CB
+{
+
+    AFSFileID       SourceParentId;        /* Must be directory */
+
+    AFSFileID       TargetParentId;        /* Must be directory */
+
+    BOOLEAN         bReplaceIfExists;
+
+                                           /* Source Name and FileID in Common Request Block */
+
+    USHORT          TargetNameLength;
+
+    WCHAR           TargetName[ 1];
+
+} AFSFileHardLinkCB;
+
+typedef struct _AFS_FILE_HARDLINK_RESULT_CB
+{
+
+    LARGE_INTEGER   SourceParentDataVersion;
+
+    LARGE_INTEGER   TargetParentDataVersion;
+
+    AFSDirEnumEntry DirEnum;
+
+} AFSFileHardLinkResultCB;
+
+
+//
 // Control structures for AFS_REQUEST_TYPE_EVAL_TARGET_BY_ID
 // and AFS_REQUEST_TYPE_EVAL_TARGET_BY_NAME
 //
@@ -590,6 +654,16 @@ typedef struct _AFS_FILE_EVAL_TARGET_CB
 } AFSEvalTargetCB;
 
 
+typedef struct _AFS_FILE_EVAL_RESULT_CB
+{
+
+    LARGE_INTEGER   ParentDataVersion;
+
+    AFSDirEnumEntry DirEnum;
+
+} AFSFileEvalResultCB;
+
+
 //
 // Control structure for read and write requests through the PIOCtl interface
 //