From 0becf4d68329ca599f3e34ee97ca3f72d0e9425f Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Tue, 2 Sep 2003 04:37:33 +0000 Subject: 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) --- source4/include/smb_interfaces.h | 24 ++++++++++-------------- source4/include/trans2.h | 4 ++-- 2 files changed, 12 insertions(+), 16 deletions(-) (limited to 'source4/include') 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 */ -- cgit