root/src/vfs/smbfs/helpers/include/trans2.h

/* [previous][next][first][last][top][bottom][index][help]  */

INCLUDED FROM


   1 /*
   2    Unix SMB/Netbios implementation.
   3    Version 1.9.
   4    SMB transaction2 handling
   5  */
   6 
   7 #ifndef _TRANS2_H_
   8 #define _TRANS2_H_
   9 
  10 /* Define the structures needed for the trans2 calls. */
  11 
  12 /*******************************************************
  13  For DosFindFirst/DosFindNext - level 1
  14 
  15 MAXFILENAMELEN = 255;
  16 FDATE == uint16
  17 FTIME == uint16
  18 ULONG == uint32
  19 USHORT == uint16
  20 
  21 typedef struct _FILEFINDBUF {
  22 Byte offset   Type     name                description
  23 -------------+-------+-------------------+--------------
  24 0             FDATE    fdateCreation;
  25 2             FTIME    ftimeCreation;
  26 4             FDATE    fdateLastAccess;
  27 6             FTIME    ftimeLastAccess;
  28 8             FDATE    fdateLastWrite;
  29 10            FTIME    ftimeLastWrite;
  30 12            ULONG    cbFile               file length in bytes
  31 16            ULONG    cbFileAlloc          size of file allocation unit
  32 20            USHORT   attrFile
  33 22            UCHAR    cchName              length of name to follow (not including zero)
  34 23            UCHAR    achName[MAXFILENAMELEN]; Null terminated name
  35 } FILEFINDBUF;
  36 *********************************************************/
  37 
  38 #define l1_fdateCreation 0
  39 #define l1_fdateLastAccess 4
  40 #define l1_fdateLastWrite 8
  41 #define l1_cbFile 12
  42 #define l1_cbFileAlloc 16
  43 #define l1_attrFile 20
  44 #define l1_cchName 22
  45 #define l1_achName 23
  46 
  47 /**********************************************************
  48 For DosFindFirst/DosFindNext - level 2
  49 
  50 typedef struct _FILEFINDBUF2 {
  51 Byte offset   Type     name                description
  52 -------------+-------+-------------------+--------------
  53 0             FDATE    fdateCreation;
  54 2             FTIME    ftimeCreation;
  55 4             FDATE    fdateLastAccess;
  56 6             FTIME    ftimeLastAccess;
  57 8             FDATE    fdateLastWrite;
  58 10            FTIME    ftimeLastWrite;
  59 12            ULONG    cbFile               file length in bytes
  60 16            ULONG    cbFileAlloc          size of file allocation unit
  61 20            USHORT   attrFile
  62 22            ULONG    cbList               Extended attribute list (always 0)
  63 26            UCHAR    cchName              length of name to follow (not including zero)
  64 27            UCHAR    achName[MAXFILENAMELEN]; Null terminated name
  65 } FILEFINDBUF2;
  66 *************************************************************/
  67 
  68 #define l2_fdateCreation 0
  69 #define l2_fdateLastAccess 4
  70 #define l2_fdateLastWrite 8
  71 #define l2_cbFile 12
  72 #define l2_cbFileAlloc 16
  73 #define l2_attrFile 20
  74 #define l2_cbList 22
  75 #define l2_cchName 26
  76 #define l2_achName 27
  77 
  78 
  79 /**********************************************************
  80 For DosFindFirst/DosFindNext - level 260
  81 
  82 typedef struct _FILEFINDBUF260 {
  83 Byte offset   Type     name                description
  84 -------------+-------+-------------------+--------------
  85 0              ULONG  NextEntryOffset;
  86 4              ULONG  FileIndex;
  87 8              LARGE_INTEGER CreationTime;
  88 16             LARGE_INTEGER LastAccessTime;
  89 24             LARGE_INTEGER LastWriteTime;
  90 32             LARGE_INTEGER ChangeTime;
  91 40             LARGE_INTEGER EndOfFile;
  92 48             LARGE_INTEGER AllocationSize;
  93 56             ULONG FileAttributes;
  94 60             ULONG FileNameLength;
  95 64             ULONG EaSize;
  96 68             CHAR ShortNameLength;
  97 70             UNICODE ShortName[12];
  98 94             UNICODE FileName[];
  99 *************************************************************/
 100 
 101 #define l260_achName 94
 102 
 103 
 104 /**********************************************************
 105 For DosQueryPathInfo/DosQueryFileInfo/DosSetPathInfo/
 106 DosSetFileInfo - level 1
 107 
 108 typedef struct _FILESTATUS {
 109 Byte offset   Type     name                description
 110 -------------+-------+-------------------+--------------
 111 0             FDATE    fdateCreation;
 112 2             FTIME    ftimeCreation;
 113 4             FDATE    fdateLastAccess;
 114 6             FTIME    ftimeLastAccess;
 115 8             FDATE    fdateLastWrite;
 116 10            FTIME    ftimeLastWrite;
 117 12            ULONG    cbFile               file length in bytes
 118 16            ULONG    cbFileAlloc          size of file allocation unit
 119 20            USHORT   attrFile
 120 } FILESTATUS;
 121 *************************************************************/
 122 
 123 /* Use the l1_ defines from DosFindFirst */
 124 
 125 /**********************************************************
 126 For DosQueryPathInfo/DosQueryFileInfo/DosSetPathInfo/
 127 DosSetFileInfo - level 2
 128 
 129 typedef struct _FILESTATUS2 {
 130 Byte offset   Type     name                description
 131 -------------+-------+-------------------+--------------
 132 0             FDATE    fdateCreation;
 133 2             FTIME    ftimeCreation;
 134 4             FDATE    fdateLastAccess;
 135 6             FTIME    ftimeLastAccess;
 136 8             FDATE    fdateLastWrite;
 137 10            FTIME    ftimeLastWrite;
 138 12            ULONG    cbFile               file length in bytes
 139 16            ULONG    cbFileAlloc          size of file allocation unit
 140 20            USHORT   attrFile
 141 22            ULONG    cbList               Length of EA's (0)
 142 } FILESTATUS2;
 143 *************************************************************/
 144 
 145 /* Use the l2_ #defines from DosFindFirst */
 146 
 147 /**********************************************************
 148 For DosQFSInfo/DosSetFSInfo - level 1
 149 
 150 typedef struct _FSALLOCATE {
 151 Byte offset   Type     name                description
 152 -------------+-------+-------------------+--------------
 153 0             ULONG    idFileSystem       id of file system
 154 4             ULONG    cSectorUnit        number of sectors per allocation unit
 155 8             ULONG    cUnit              number of allocation units
 156 12            ULONG    cUnitAvail         Available allocation units
 157 16            USHORT   cbSector           bytes per sector
 158 } FSALLOCATE;
 159 *************************************************************/
 160 
 161 #define l1_idFileSystem 0
 162 #define l1_cSectorUnit 4
 163 #define l1_cUnit 8
 164 #define l1_cUnitAvail 12
 165 #define l1_cbSector 16
 166 
 167 /**********************************************************
 168 For DosQFSInfo/DosSetFSInfo - level 2
 169 
 170 typedef struct _FSINFO {
 171 Byte offset   Type     name                description
 172 -------------+-------+-------------------+--------------
 173 0             FDATE   vol_fdateCreation
 174 2             FTIME   vol_ftimeCreation
 175 4             UCHAR   vol_cch             length of volume name (excluding NULL)
 176 5             UCHAR   vol_szVolLabel[12]  volume name
 177 } FSINFO;
 178 *************************************************************/
 179 
 180 #define SMB_INFO_STANDARD               1
 181 #define SMB_INFO_QUERY_EA_SIZE          2
 182 #define SMB_INFO_QUERY_EAS_FROM_LIST    3
 183 #define SMB_INFO_QUERY_ALL_EAS          4
 184 #define SMB_INFO_IS_NAME_VALID          6
 185 #define SMB_QUERY_FS_LABEL_INFO                 0x101
 186 #define SMB_QUERY_FS_VOLUME_INFO                0x102
 187 #define SMB_QUERY_FS_SIZE_INFO                  0x103
 188 #define SMB_QUERY_FS_DEVICE_INFO                0x104
 189 #define SMB_QUERY_FS_ATTRIBUTE_INFO             0x105
 190 
 191 
 192 #define l2_vol_fdateCreation 0
 193 #define l2_vol_cch 4
 194 #define l2_vol_szVolLabel 5
 195 
 196 
 197 #define SMB_QUERY_FILE_BASIC_INFO       0x101
 198 #define SMB_QUERY_FILE_STANDARD_INFO    0x102
 199 #define SMB_QUERY_FILE_EA_INFO          0x103
 200 #define SMB_QUERY_FILE_NAME_INFO        0x104
 201 #define SMB_QUERY_FILE_ALLOCATION_INFO  0x105
 202 #define SMB_QUERY_FILE_END_OF_FILEINFO  0x106
 203 #define SMB_QUERY_FILE_ALL_INFO         0x107
 204 #define SMB_QUERY_FILE_ALT_NAME_INFO    0x108
 205 #define SMB_QUERY_FILE_STREAM_INFO      0x109
 206 
 207 #define SMB_FIND_FILE_DIRECTORY_INFO            0x101
 208 #define SMB_FIND_FILE_FULL_DIRECTORY_INFO       0x102
 209 #define SMB_FIND_FILE_NAMES_INFO                0x103
 210 #define SMB_FIND_FILE_BOTH_DIRECTORY_INFO       0x104
 211 
 212 #define SMB_SET_FILE_BASIC_INFO         0x101
 213 #define SMB_SET_FILE_DISPOSITION_INFO   0x102
 214 #define SMB_SET_FILE_ALLOCATION_INFO    0x103
 215 #define SMB_SET_FILE_END_OF_FILE_INFO   0x104
 216 
 217 /*
 218  * Thursby MAC extensions....
 219  */
 220 
 221 #define SMB_MAC_QUERY_FS_INFO           0x301
 222 
 223 #define DIRLEN_GUESS (45+MAX(l1_achName,l2_achName))
 224 
 225 /*
 226  * DeviceType and Characteristics returned in a
 227  * SMB_QUERY_FS_DEVICE_INFO call.
 228  */
 229 
 230 #define DEVICETYPE_CD_ROM               0x2
 231 #define DEVICETYPE_CD_ROM_FILE_SYSTEM   0x3
 232 #define DEVICETYPE_DISK                 0x7
 233 #define DEVICETYPE_DISK_FILE_SYSTEM     0x8
 234 #define DEVICETYPE_FILE_SYSTEM          0x9
 235 
 236 /* Characteristics. */
 237 #define TYPE_REMOVABLE_MEDIA            0x1
 238 #define TYPE_READ_ONLY_DEVICE           0x2
 239 #define TYPE_FLOPPY                     0x4
 240 #define TYPE_WORM                       0x8
 241 #define TYPE_REMOTE                     0x10
 242 #define TYPE_MOUNTED                    0x20
 243 #define TYPE_VIRTUAL                    0x40
 244 
 245 #endif

/* [previous][next][first][last][top][bottom][index][help]  */