c# - 确定网络驱动器的协议(protocol)

标签 c# windows network-protocols

有没有办法确定用于 Windows 上安装的网络驱动器的协议(protocol)名称(SMB/CIFS、NFS)和版本? (在 C# 中)

编辑

使用 Rusted 的回答中的信息,我从网络上的 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 协议(protocol)的版本号。有什么想法吗?

最佳答案

我想你需要 Windows Networking (WNet) API ,来自 NETINFOSTRUCT 中 NetType 字段的值由 WNetGetNetworkInformation 返回功能。

Here是C#的开源项目,查看WnetApi中的文件Wnet API 的 .NET 包装器的文件夹。

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

关于c# - 确定网络驱动器的协议(protocol),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10800616/

相关文章:

c - GetProcessMemoryInfo PROCESS_MEMORY_COUNTERS_EX.PrivateUsage 始终为 0

c++ - 只想为一个应用程序实现 VPN

c# - WP7 相当于 EmptyDataTemplate?

c - 如何将ListView复选框与选择同步?(WIN32)

windows - 文件重定向中出现杂散换行符

security - 当页面通过 https 传递安全和非安全项目时,安全项目是否会受到损害?

perl - 选择在关闭的 SCTP 套接字上返回 0

c# - Entity Framework /ASP.NET MVC 5 日期时间异常

c# - 将文件上传到多个服务器

c# - Visual Studio 2015 - NuGet 包删除所有项目引用