summaryrefslogtreecommitdiff
path: root/source4/include
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2003-09-02 04:37:33 +0000
committerAndrew Tridgell <tridge@samba.org>2003-09-02 04:37:33 +0000
commit0becf4d68329ca599f3e34ee97ca3f72d0e9425f (patch)
tree14a66389e715d34a43e65d590650fc356113c796 /source4/include
parent11c5869a450d5f78a9395889ec03f77732cc8be5 (diff)
downloadsamba-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.h24
-rw-r--r--source4/include/trans2.h4
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 */