NetDfsGetInfo (netapi32)
Last changed: Stoyan Sabev-132.183.4.6

.
Summary
TODO - a short description

C# Signature:

[DllImport("Netapi32.dll", CharSet=CharSet.Unicode, SetLastError=true)]

public static extern int NetDfsGetInfo(

    [MarshalAs(UnmanagedType.LPWStr)] string DfsEntryPath,    // DFS entry path for the volume
    [MarshalAs(UnmanagedType.LPWStr)] string ServerName,    // This parameter is currently ignored and should be NULL
    [MarshalAs(UnmanagedType.LPWStr)] string ShareName,    // This parameter is currently ignored and should be NULL.
    int Level,                        // Level of information requested
    out IntPtr Buffer                    // API allocates and returns buffer with requested info
    );

VB Signature:

Declare Function NetDfsGetInfo Lib "netapi32.dll" (TODO) As TODO

User-Defined Types:

None.

Notes:

None.

Tips & Tricks:

Remember to free buffer, see NetApiBufferFree

Sample Code:

static void Main(string[] args)

        {
            IntPtr buf;
            if (args[0] != "")
            {
                int res=NetDfsGetInfo(args[0], null, null, 4, out buf);      
                if (res == 0)
                {
                    try
                    {
                        DFS_INFO_4 info = (DFS_INFO_4)Marshal.PtrToStructure(buf, typeof(DFS_INFO_4));
                        Console.WriteLine("{0}, {1}, {2} ", info.EntryPath, info.Comment, info.NumberOfStorages);

                        for (int i = 0; i < info.NumberOfStorages; i++)
                        {
                            IntPtr pStorage = new IntPtr(info.Storage.ToInt64() + i * Marshal.SizeOf(typeof(DFS_STORAGE_INFO)));
                            DFS_STORAGE_INFO storage = (DFS_STORAGE_INFO)Marshal.PtrToStructure(pStorage, typeof(DFS_STORAGE_INFO));
                            Console.WriteLine("  {0}, {1}, {2} ", storage.ServerName, storage.ShareName, storage.State);
                        }
                    }
                    finally
                    {
                        NetApiBufferFree(buf);
                    }
                }
            }
        }

Alternative Managed API:

Do you know one? Please contribute it!

Documentation