WNetGetResourceInformationA 函数 (winnetwk.h)

与网络资源的远程路径一起提供时,WNetGetResourceInformation 函数标识拥有资源的网络提供程序,并获取有关资源类型的信息。 该函数通常与 WNetGetResourceParent 函数结合使用,以分析和解释用户键入的网络路径。

语法

DWORD WNetGetResourceInformationA(
  [in]      LPNETRESOURCEA lpNetResource,
  [out]     LPVOID         lpBuffer,
  [in, out] LPDWORD        lpcbBuffer,
  [out]     LPSTR          *lplpSystem
);

参数

[in] lpNetResource

指向 NETRESOURCE 结构的指针,该结构指定需要其信息的网络资源。

lpRemoteName 结构的成员应指定资源的远程路径名称,通常由用户键入。 如果已知,还应填充 lpProviderdwType 成员,因为此操作可能会占用大量内存,尤其是在未指定 dwType 成员时。 如果不知道这些成员的值,则应将其设置为 NULL。 将忽略 NETRESOURCE 结构中的所有其他成员。

[out] lpBuffer

指向要接收结果的缓冲区的指针。 成功返回时,缓冲区的第一部分是 NETRESOURCE 结构,表示通过 WNet 函数访问的输入资源路径的该部分,而不是通过特定于输入资源类型的系统函数。 (缓冲区的其余部分包含 NETRESOURCE 的成员 结构点的可变长度字符串。

例如,如果输入远程资源路径为 \server\share\dir1\dir2,则输出 NETRESOURCE 结构包含有关资源 \server\share 的信息。 路径的 \dir1\dir2 部分通过 文件管理功能访问。 返回 lpRemoteNamelpProviderdwTypedwDisplayTypedwUsage NETRESOURCE 的成员,所有其他 成员设置为 NULL

lpRemoteName 成员的语法与 WNetEnumResource 函数从枚举返回的语法相同。 这样,调用方就可以执行字符串比较来确定传递给 WNetGetResourceInformation 的资源是否与单独调用 WNetEnumResource返回的资源相同。

[in, out] lpcbBuffer

指向在条目中指定 lpBuffer 缓冲区的大小(以字节为单位)的位置的指针。 分配的缓冲区必须足够大,才能容纳 NETRESOURCE 结构,以及其成员指向的字符串。 如果缓冲区对于结果来说太小,则此位置会收到所需的缓冲区大小,并且该函数返回ERROR_MORE_DATA。

[out] lplpSystem

如果函数成功返回,此参数指向输出缓冲区中的字符串,该字符串指定通过系统函数访问的资源部分。 (这仅适用于特定于资源类型而不是 WNet 函数的函数。

例如,如果输入远程资源名称为 \server\share\dir1\dir2,则输出的 lpRemoteName 成员 NETRESOURCE 结构指向 \server\share。 此外,lplpSystem 参数指向 \dir1\dir2。 这两个字符串都存储在由 lpBuffer 参数指向的缓冲区中。

返回值

如果函数成功,则返回值NO_ERROR。

如果函数失败,则返回值为 系统错误代码,例如以下值之一。

返回代码 描述
ERROR_BAD_NET_NAME
输入 lpRemoteName 成员不是任何网络的现有网络资源。
ERROR_BAD_DEV_TYPE
输入 dwType 成员与 lpRemoteName 成员指定的资源类型不匹配。
ERROR_EXTENDED_ERROR
发生了特定于网络的错误。 调用 WNetGetLastError 以获取错误的说明。
ERROR_MORE_DATA
lpBuffer 参数指向的缓冲区太小。
ERROR_NO_NETWORK
网络不可用。

言论

注意

winnetwk.h 标头将 WNetGetResourceInformation 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。

要求

要求 价值
最低支持的客户端 Windows 2000 Professional [仅限桌面应用]
支持的最低服务器 Windows 2000 Server [仅限桌面应用]
目标平台 窗户
标头 winnetwk.h
Mpr.lib
DLL Mpr.dll

另请参阅

WNetGetNetworkInformation

WNetGetProviderName

WNetGetResourceParent

WNetGetUniversalName

Windows 网络(WNet)概述

Windows 网络函数