On Mon, Sep 20, 2021 at 11:08 AM Tom Talpey <tom@xxxxxxxxxx> wrote: > > On 9/20/2021 12:47 AM, Steve French wrote: > > On Sat, Sep 18, 2021 at 9:06 PM Tom Talpey <tom@xxxxxxxxxx> wrote: > >> > >> This doesn't appear to be what's documented in MS-FSA section 2.1.5.11.29. > >> There, it appears to call for returning an empty stream list, > >> and STATUS_SUCCESS, when no streams are present. > > > > I tried a quick test to Windows and it does appear to return $DATA > > stream by default: > > > > # ./smbinfo filestreaminfo /mnt/junk > > Name: ::$DATA > > Size: 179765 bytes > > Allocation size: 196608 bytes > > Ok, so the implication is that the default stream is indeed always > present, if the filesystem supports streams. The language in MS-FSA > would therefore be correct, but a bit vague. I agree that returning > a ::$DATA for ordinary files is appropriate. > > > when I tried the same thing to a directory on a share mounted to Windows 10 > > (NTFS), I get no streams returned. > > > > So it does look like default stream ($DATA) is only returned for files > > > My concern here is, what's so special about directories? A special file > or fifo, a symlink or reparse/junction, etc. Is it appropriate to cons > up a ::$DATA for these? What should the size values be, if so? Here are examples (share exported Windows 10 NTFS) of files vs. directories with or without streams, note that directories do not show the "default stream" $DATA but files do, but both support adding streams, and reparse points at least in the case of hardlinks to files show the target's streams. It is a bit confusing because the Windows "dir /R" command filters out the ($DATA) stream returned on files even though it is returned across the network. # smbinfo filestreaminfo /mnt/dir-without-stream/ # smbinfo filestreaminfo /mnt/dir-with-stream/ Name: test_stream Size: 19 bytes Allocation size: 24 bytes # smbinfo filestreaminfo /mnt/file-without-stream Name: ::$DATA Size: 24 bytes Allocation size: 24 bytes # smbinfo filestreaminfo /mnt/file-with-stream Name: ::$DATA Size: 17 bytes Allocation size: 24 bytes Name: test_stream Size: 19 bytes Allocation size: 24 bytes # smbinfo filestreaminfo /mnt/link-file-with-stream Name: ::$DATA Size: 17 bytes Allocation size: 24 bytes Name: test_stream Size: 19 bytes Allocation size: 24 bytes # smbinfo filestreaminfo /mnt/link-file-without-stream Name: ::$DATA Size: 24 bytes Allocation size: 24 bytes Note that locally on Windows "DIR /R" filters out the $DATA (default) stream C:\shares\scratch>dir /R \shares\scratch Volume in drive C is OSDisk Volume Serial Number is 0AF4-9CC1 Directory of C:\shares\scratch 09/20/2021 11:32 AM <DIR> . 09/20/2021 11:32 AM <DIR> .. 09/20/2021 11:16 AM <DIR> dir-with-stream 19 dir-with-stream:test_stream:$DATA 09/20/2021 11:15 AM <DIR> dir-without-stream 09/20/2021 11:14 AM 17 file-with-stream 19 file-with-stream:test_stream:$DATA 09/20/2021 11:14 AM 24 file-without-stream 09/20/2021 11:14 AM 17 link-file-with-stream 19 link-file-with-stream:test_stream:$DATA 09/20/2021 11:14 AM 24 link-file-without-stream -- Thanks, Steve