首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >确定网络驱动器的协议

确定网络驱动器的协议
EN

Stack Overflow用户
提问于 2012-05-29 13:54:56
回答 1查看 2.1K关注 0票数 3

是否有方法确定用于windows上挂载网络驱动器的协议名称(SMB/CIFS、NFS)和版本?( C#)

编辑

使用从生锈回答的信息,我从网络上的一台windows 7计算机上得到以下信息。

代码语言:javascript
复制
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-...}"

重要的部分似乎是:

代码语言:javascript
复制
transports[0].svti1_transportname          = "\\Device\\NetbiosSmb"

但是我在任何地方都找不到SMB协议的版本号。有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-29 15:06:44

我想您需要Windows网络(WNet) API,这是NetType字段中由WNetGetNetworkInformation函数返回的网状结构字段中的值。

这里是C#中的开源项目,检查WnetApi文件夹中的文件,以便为Wnet包装.NET。

要获取映射驱动器的UNC路径,请使用来自PathToUNC项目的方法。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10800616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档