是否有方法确定用于windows上挂载网络驱动器的协议名称(SMB/CIFS、NFS)和版本?( C#)
编辑
使用从生锈回答的信息,我从网络上的一台windows 7计算机上得到以下信息。
NETRESOURCE res = WinApiWNETwrapper.GetResourceInfo("\\Test-PC");
res.dwDisplayType = SERVER
res.dwScope = 0
res.dwType = ANY
res.dwUsage = CONTAINER
res.lpComment = ""
res.lpLocalName = null
res.lpProvider = "Microsoft Windows Network"
res.lpLocalName = "\\Test-PC"
NETINFOSTRUCT netinfo = WinApiWNETwrapper.GetNetworkInfo("\\Test-PC");
netinfo.cbStructureSize = 32
netinfo.dwCharacteristics = 0
netinfo.dwDrives = -1
netinfo.dwHandle = 1880621056
netinfo.dwPrinters = -1
netinfo.dwProviderVersion = 1024
netinfo.dwStatus = Running
netinfo.wNetType = LANMAN
SERVER_TRANSPORT_INFO_1[] transports = WinApiNETwrapper.ServerTransportEnum_1("\\Test-PC");
transports[0].svti1_domain = "WORKGROUP"
transports[0].svti1_networkaddress = "TEST-PC"
transports[0].svti1_numberofvcs = 0
transports[0].svti1_transportaddress = 73107336
transports[0].svti1_transportaddresslength = ...
transports[0].TransportAddress = "TEST-PC"
transports[0].svti1_transportname = "\\Device\\NetbiosSmb"
transports[1].svti1_transportname = "\\Device\\NetBT_Tcpip_{F4C75115-...}"
transports[2].svti1_transportname = "\\Device\\NetBT_Tcpip_{70BD9048-...}"重要的部分似乎是:
transports[0].svti1_transportname = "\\Device\\NetbiosSmb"但是我在任何地方都找不到SMB协议的版本号。有什么想法吗?
发布于 2012-05-29 15:06:44
我想您需要Windows网络(WNet) API,这是NetType字段中由WNetGetNetworkInformation函数返回的网状结构字段中的值。
这里是C#中的开源项目,检查WnetApi文件夹中的文件,以便为Wnet包装.NET。
要获取映射驱动器的UNC路径,请使用来自PathToUNC项目的这方法。
https://stackoverflow.com/questions/10800616
复制相似问题