diff options
author | Andrew Tridgell <tridge@samba.org> | 2003-09-02 04:37:33 +0000 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2003-09-02 04:37:33 +0000 |
commit | 0becf4d68329ca599f3e34ee97ca3f72d0e9425f (patch) | |
tree | 14a66389e715d34a43e65d590650fc356113c796 /source4/include | |
parent | 11c5869a450d5f78a9395889ec03f77732cc8be5 (diff) | |
download | samba-0becf4d68329ca599f3e34ee97ca3f72d0e9425f.tar.gz samba-0becf4d68329ca599f3e34ee97ca3f72d0e9425f.tar.bz2 samba-0becf4d68329ca599f3e34ee97ca3f72d0e9425f.zip |
thanks to ntfsd and some google searches I worked out what the unknown
fields in level 261 and level 262 of directory search are, plus the
names of the levels
the unknown fields are a 64bit unique file id, and match the 64 bit
number from the internal_information qfileinfo level
(This used to be commit b69f54eb028a24144a2e813f059b08644118ab09)
Diffstat (limited to 'source4/include')
-rw-r--r-- | source4/include/smb_interfaces.h | 24 | ||||
-rw-r--r-- | source4/include/trans2.h | 4 |
2 files changed, 12 insertions, 16 deletions
diff --git a/source4/include/smb_interfaces.h b/source4/include/smb_interfaces.h index d087d2642e..9ac9f418ea 100644 --- a/source4/include/smb_interfaces.h +++ b/source4/include/smb_interfaces.h @@ -383,8 +383,7 @@ union smb_fileinfo { uint8 unit_shift; uint8 chunk_shift; uint8 cluster_shift; - uint32 device; - uint32 inode; + large_t file_id; uint32 access_flags; /* seen 0x001f01ff from w2k3 */ large_t position; uint32 mode; @@ -621,10 +620,7 @@ union smb_fileinfo { union smb_fileinfo_in in; struct { - /* REWRITE: these are very uncertain - we need - * to look at this interface */ - uint32 device; - uint32 inode; + large_t file_id; } out; } internal_information; @@ -1685,8 +1681,8 @@ enum search_level {RAW_SEARCH_GENERIC = 0xF000, RAW_SEARCH_FULL_DIRECTORY_INFO = SMB_FIND_FULL_DIRECTORY_INFO, RAW_SEARCH_NAME_INFO = SMB_FIND_NAME_INFO, RAW_SEARCH_BOTH_DIRECTORY_INFO = SMB_FIND_BOTH_DIRECTORY_INFO, - RAW_SEARCH_261 = SMB_FIND_261, - RAW_SEARCH_262 = SMB_FIND_262, + RAW_SEARCH_ID_FULL_DIRECTORY_INFO = SMB_FIND_ID_FULL_DIRECTORY_INFO, + RAW_SEARCH_ID_BOTH_DIRECTORY_INFO = SMB_FIND_ID_BOTH_DIRECTORY_INFO, RAW_SEARCH_UNIX_INFO = SMB_FIND_UNIX_INFO}; @@ -1851,7 +1847,7 @@ union smb_search_data { WIRE_STRING name; } both_directory_info; - /* RAW_SEARCH_261 interface */ + /* RAW_SEARCH_ID_FULL_DIRECTORY_INFO interface */ struct { uint32 file_index; NTTIME create_time; @@ -1862,11 +1858,11 @@ union smb_search_data { large_t alloc_size; uint32 attrib; uint32 ea_size; - uint32 unknown[3]; + large_t file_id; WIRE_STRING name; - } level_261; + } id_full_directory_info; - /* RAW_SEARCH_262 interface */ + /* RAW_SEARCH_ID_BOTH_DIRECTORY_INFO interface */ struct { uint32 file_index; NTTIME create_time; @@ -1877,10 +1873,10 @@ union smb_search_data { large_t alloc_size; uint32 attrib; uint32 ea_size; - uint32 unknown[2]; + large_t file_id; WIRE_STRING short_name; WIRE_STRING name; - } level_262; + } id_both_directory_info; /* RAW_SEARCH_UNIX_INFO interface */ struct { diff --git a/source4/include/trans2.h b/source4/include/trans2.h index 6a629f8989..5c9848f40c 100644 --- a/source4/include/trans2.h +++ b/source4/include/trans2.h @@ -256,8 +256,8 @@ Found 0 aliased levels #define SMB_FIND_FULL_DIRECTORY_INFO 0x102 #define SMB_FIND_NAME_INFO 0x103 #define SMB_FIND_BOTH_DIRECTORY_INFO 0x104 -#define SMB_FIND_261 0x105 -#define SMB_FIND_262 0x106 +#define SMB_FIND_ID_FULL_DIRECTORY_INFO 0x105 +#define SMB_FIND_ID_BOTH_DIRECTORY_INFO 0x106 #define SMB_FIND_UNIX_INFO 0x200 /* flags on trans2 findfirst/findnext that control search */ |