コード例 #1
0
        // Token: 0x06002336 RID: 9014 RVA: 0x000A50A0 File Offset: 0x000A32A0
        private static uint DeleteShareOnNetworkTransport(string networkAddress, string shareName, out uint sharesDeletedOnThisTransport)
        {
            SHARE_INFO_503[] array = null;
            sharesDeletedOnThisTransport = 0U;
            ExTraceGlobals.NetShareTracer.TraceDebug <string, string>(0L, "DeleteShareOnNetworkTransport( addr={0}, shareName={1}, ... ) called.", networkAddress, shareName);
            uint num = NetShare.EnumScopedShares(networkAddress, out array);

            if (num != 0U)
            {
                ExTraceGlobals.NetShareTracer.TraceError <uint, string>(0L, "EnumScopedShares() error status: {0} for {1}", num, networkAddress);
                throw new Win32Exception((int)num);
            }
            foreach (SHARE_INFO_503 share_INFO_ in array)
            {
                if (Cluster.StringIEquals(share_INFO_.Netname, shareName) && Cluster.StringIEquals(share_INFO_.Servername, networkAddress))
                {
                    num = NetShare.NetShareDel(networkAddress, shareName, 0);
                    if (num == 0U)
                    {
                        sharesDeletedOnThisTransport += 1U;
                    }
                }
            }
            ExTraceGlobals.NetShareTracer.TraceDebug <string, string, uint>(0L, "DeleteShareOnNetworkTransport( addr={0}, shareName={1}, ... ) deleted {2} shares.", networkAddress, shareName, sharesDeletedOnThisTransport);
            return(num);
        }
コード例 #2
0
        // Token: 0x06002334 RID: 9012 RVA: 0x000A4E90 File Offset: 0x000A3090
        internal static SHARE_INFO_503[] GetScopedShareInfo(string serverName, string shareName)
        {
            NetShare.SERVER_TRANSPORT_INFO2[] serverTransports = NetShare.GetServerTransports(serverName);
            if (serverTransports != null)
            {
                Dictionary <string, SHARE_INFO_503> dictionary = new Dictionary <string, SHARE_INFO_503>(3);
                foreach (NetShare.SERVER_TRANSPORT_INFO2 server_TRANSPORT_INFO in serverTransports)
                {
                    if ((server_TRANSPORT_INFO.Flags & 4U) != 0U)
                    {
                        SHARE_INFO_503[] array2;
                        uint             num = NetShare.EnumScopedShares(server_TRANSPORT_INFO.Networkaddress, out array2);
                        if (num != 0U)
                        {
                            ExTraceGlobals.NetShareTracer.TraceError <uint, string>(0L, "EnumScopedShares() error status: {0} for {1}", num, server_TRANSPORT_INFO.Networkaddress);
                            throw new Win32Exception((int)num);
                        }
                        foreach (SHARE_INFO_503 value in array2)
                        {
                            if (Cluster.StringIEquals(value.Netname, shareName))
                            {
                                dictionary[value.Servername] = value;
                            }
                        }
                    }
                }
                if (dictionary.Count != 0)
                {
                    Dictionary <string, SHARE_INFO_503> .ValueCollection values = dictionary.Values;
                    SHARE_INFO_503[] array4 = new SHARE_INFO_503[values.Count];
                    values.CopyTo(array4, 0);
                    return(array4);
                }
            }
            string path;
            string remark;
            uint   type;
            int    permissions;
            int    max_uses;

            NetShare.GetShareInfo(serverName, shareName, out path, out remark, out type, out permissions, out max_uses);
            return(new SHARE_INFO_503[]
            {
                new SHARE_INFO_503
                {
                    Netname = shareName,
                    Type = type,
                    Remark = remark,
                    Permissions = permissions,
                    Max_uses = max_uses,
                    Current_uses = 0,
                    Path = path,
                    Passwd = null,
                    Servername = "*",
                    Reserved = 0,
                    Security_descriptor = IntPtr.Zero
                }
            });
        }