123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265 |
- /*
- Unix SMB/Netbios implementation.
- Version 1.9.
- SMB transaction2 handling
- Copyright (C) Jeremy Allison 1994-1998
- Extensively modified by Andrew Tridgell, 1995
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
- #ifndef _TRANS2_H_
- #define _TRANS2_H_
- /* Define the structures needed for the trans2 calls. */
- /*******************************************************
- For DosFindFirst/DosFindNext - level 1
- MAXFILENAMELEN = 255;
- FDATE == uint16
- FTIME == uint16
- ULONG == uint32
- USHORT == uint16
- typedef struct _FILEFINDBUF {
- Byte offset Type name description
- -------------+-------+-------------------+--------------
- 0 FDATE fdateCreation;
- 2 FTIME ftimeCreation;
- 4 FDATE fdateLastAccess;
- 6 FTIME ftimeLastAccess;
- 8 FDATE fdateLastWrite;
- 10 FTIME ftimeLastWrite;
- 12 ULONG cbFile file length in bytes
- 16 ULONG cbFileAlloc size of file allocation unit
- 20 USHORT attrFile
- 22 UCHAR cchName length of name to follow (not including zero)
- 23 UCHAR achName[MAXFILENAMELEN]; Null terminated name
- } FILEFINDBUF;
- *********************************************************/
- #define l1_fdateCreation 0
- #define l1_fdateLastAccess 4
- #define l1_fdateLastWrite 8
- #define l1_cbFile 12
- #define l1_cbFileAlloc 16
- #define l1_attrFile 20
- #define l1_cchName 22
- #define l1_achName 23
- /**********************************************************
- For DosFindFirst/DosFindNext - level 2
- typedef struct _FILEFINDBUF2 {
- Byte offset Type name description
- -------------+-------+-------------------+--------------
- 0 FDATE fdateCreation;
- 2 FTIME ftimeCreation;
- 4 FDATE fdateLastAccess;
- 6 FTIME ftimeLastAccess;
- 8 FDATE fdateLastWrite;
- 10 FTIME ftimeLastWrite;
- 12 ULONG cbFile file length in bytes
- 16 ULONG cbFileAlloc size of file allocation unit
- 20 USHORT attrFile
- 22 ULONG cbList Extended attribute list (always 0)
- 26 UCHAR cchName length of name to follow (not including zero)
- 27 UCHAR achName[MAXFILENAMELEN]; Null terminated name
- } FILEFINDBUF2;
- *************************************************************/
- #define l2_fdateCreation 0
- #define l2_fdateLastAccess 4
- #define l2_fdateLastWrite 8
- #define l2_cbFile 12
- #define l2_cbFileAlloc 16
- #define l2_attrFile 20
- #define l2_cbList 22
- #define l2_cchName 26
- #define l2_achName 27
- /**********************************************************
- For DosFindFirst/DosFindNext - level 260
- typedef struct _FILEFINDBUF260 {
- Byte offset Type name description
- -------------+-------+-------------------+--------------
- 0 ULONG NextEntryOffset;
- 4 ULONG FileIndex;
- 8 LARGE_INTEGER CreationTime;
- 16 LARGE_INTEGER LastAccessTime;
- 24 LARGE_INTEGER LastWriteTime;
- 32 LARGE_INTEGER ChangeTime;
- 40 LARGE_INTEGER EndOfFile;
- 48 LARGE_INTEGER AllocationSize;
- 56 ULONG FileAttributes;
- 60 ULONG FileNameLength;
- 64 ULONG EaSize;
- 68 CHAR ShortNameLength;
- 70 UNICODE ShortName[12];
- 94 UNICODE FileName[];
- *************************************************************/
- #define l260_achName 94
- /**********************************************************
- For DosQueryPathInfo/DosQueryFileInfo/DosSetPathInfo/
- DosSetFileInfo - level 1
- typedef struct _FILESTATUS {
- Byte offset Type name description
- -------------+-------+-------------------+--------------
- 0 FDATE fdateCreation;
- 2 FTIME ftimeCreation;
- 4 FDATE fdateLastAccess;
- 6 FTIME ftimeLastAccess;
- 8 FDATE fdateLastWrite;
- 10 FTIME ftimeLastWrite;
- 12 ULONG cbFile file length in bytes
- 16 ULONG cbFileAlloc size of file allocation unit
- 20 USHORT attrFile
- } FILESTATUS;
- *************************************************************/
- /* Use the l1_ defines from DosFindFirst */
- /**********************************************************
- For DosQueryPathInfo/DosQueryFileInfo/DosSetPathInfo/
- DosSetFileInfo - level 2
- typedef struct _FILESTATUS2 {
- Byte offset Type name description
- -------------+-------+-------------------+--------------
- 0 FDATE fdateCreation;
- 2 FTIME ftimeCreation;
- 4 FDATE fdateLastAccess;
- 6 FTIME ftimeLastAccess;
- 8 FDATE fdateLastWrite;
- 10 FTIME ftimeLastWrite;
- 12 ULONG cbFile file length in bytes
- 16 ULONG cbFileAlloc size of file allocation unit
- 20 USHORT attrFile
- 22 ULONG cbList Length of EA's (0)
- } FILESTATUS2;
- *************************************************************/
- /* Use the l2_ #defines from DosFindFirst */
- /**********************************************************
- For DosQFSInfo/DosSetFSInfo - level 1
- typedef struct _FSALLOCATE {
- Byte offset Type name description
- -------------+-------+-------------------+--------------
- 0 ULONG idFileSystem id of file system
- 4 ULONG cSectorUnit number of sectors per allocation unit
- 8 ULONG cUnit number of allocation units
- 12 ULONG cUnitAvail Available allocation units
- 16 USHORT cbSector bytes per sector
- } FSALLOCATE;
- *************************************************************/
- #define l1_idFileSystem 0
- #define l1_cSectorUnit 4
- #define l1_cUnit 8
- #define l1_cUnitAvail 12
- #define l1_cbSector 16
- /**********************************************************
- For DosQFSInfo/DosSetFSInfo - level 2
- typedef struct _FSINFO {
- Byte offset Type name description
- -------------+-------+-------------------+--------------
- 0 FDATE vol_fdateCreation
- 2 FTIME vol_ftimeCreation
- 4 UCHAR vol_cch length of volume name (excluding NULL)
- 5 UCHAR vol_szVolLabel[12] volume name
- } FSINFO;
- *************************************************************/
- #define SMB_INFO_STANDARD 1
- #define SMB_INFO_QUERY_EA_SIZE 2
- #define SMB_INFO_QUERY_EAS_FROM_LIST 3
- #define SMB_INFO_QUERY_ALL_EAS 4
- #define SMB_INFO_IS_NAME_VALID 6
- #define SMB_QUERY_FS_LABEL_INFO 0x101
- #define SMB_QUERY_FS_VOLUME_INFO 0x102
- #define SMB_QUERY_FS_SIZE_INFO 0x103
- #define SMB_QUERY_FS_DEVICE_INFO 0x104
- #define SMB_QUERY_FS_ATTRIBUTE_INFO 0x105
- #define l2_vol_fdateCreation 0
- #define l2_vol_cch 4
- #define l2_vol_szVolLabel 5
- #define SMB_QUERY_FILE_BASIC_INFO 0x101
- #define SMB_QUERY_FILE_STANDARD_INFO 0x102
- #define SMB_QUERY_FILE_EA_INFO 0x103
- #define SMB_QUERY_FILE_NAME_INFO 0x104
- #define SMB_QUERY_FILE_ALLOCATION_INFO 0x105
- #define SMB_QUERY_FILE_END_OF_FILEINFO 0x106
- #define SMB_QUERY_FILE_ALL_INFO 0x107
- #define SMB_QUERY_FILE_ALT_NAME_INFO 0x108
- #define SMB_QUERY_FILE_STREAM_INFO 0x109
- #define SMB_FIND_FILE_DIRECTORY_INFO 0x101
- #define SMB_FIND_FILE_FULL_DIRECTORY_INFO 0x102
- #define SMB_FIND_FILE_NAMES_INFO 0x103
- #define SMB_FIND_FILE_BOTH_DIRECTORY_INFO 0x104
- #define SMB_SET_FILE_BASIC_INFO 0x101
- #define SMB_SET_FILE_DISPOSITION_INFO 0x102
- #define SMB_SET_FILE_ALLOCATION_INFO 0x103
- #define SMB_SET_FILE_END_OF_FILE_INFO 0x104
- /*
- * Thursby MAC extensions....
- */
- #define SMB_MAC_QUERY_FS_INFO 0x301
- #define DIRLEN_GUESS (45+MAX(l1_achName,l2_achName))
- /*
- * DeviceType and Characteristics returned in a
- * SMB_QUERY_FS_DEVICE_INFO call.
- */
- #define DEVICETYPE_CD_ROM 0x2
- #define DEVICETYPE_CD_ROM_FILE_SYSTEM 0x3
- #define DEVICETYPE_DISK 0x7
- #define DEVICETYPE_DISK_FILE_SYSTEM 0x8
- #define DEVICETYPE_FILE_SYSTEM 0x9
- /* Characteristics. */
- #define TYPE_REMOVABLE_MEDIA 0x1
- #define TYPE_READ_ONLY_DEVICE 0x2
- #define TYPE_FLOPPY 0x4
- #define TYPE_WORM 0x8
- #define TYPE_REMOTE 0x10
- #define TYPE_MOUNTED 0x20
- #define TYPE_VIRTUAL 0x40
- #endif
|