typedef struct _AFS_COMM_REQUEST_BLOCK
{
- AFSFileID FileId; /* Initialize unused elements to 0 */
+ AFSFileID FileId; /* Initialize unused elements to 0 */
ULONG RequestType;
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];
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];
//
#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
{
ULONG VolumeLabelLength;
- WCHAR VolumeLabel[128]; /* Volume:Cell */
+ WCHAR VolumeLabel[128]; /* Volume */
+
+ ULONG CellLength;
+
+ WCHAR Cell[128]; /* Cell */
} AFSVolumeInfoCB;
//
+// 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
//