WNetGetResourceParentA 函数 (winnetwk.h)

WNetGetResourceParent 函数返回网络浏览层次结构中的网络资源的父级。 浏览从指定网络资源的位置开始。

调用 WNetGetResourceInformationWNetGetResourceParent 函数上移网络层次结构。 调用 WNetOpenEnum 函数向下移动层次结构。

语法

DWORD WNetGetResourceParentA(
  [in]      LPNETRESOURCEA lpNetResource,
  [out]     LPVOID         lpBuffer,
  [in, out] LPDWORD        lpcbBuffer
);

参数

[in] lpNetResource

指向 NETRESOURCE 结构的指针,该结构指定需要父名称的网络资源。

指定输入 NETRESOURCE 结构的成员,如下所示。 调用方通常知道在先前调用 WNetGetResourceInformationWNetGetResourceParent后为 lpProviderdwType 成员提供的值。

成员 意义
dwType
如果已知,应填写此成员;否则,应将其设置为 NULL
lpRemoteName
此成员应指定需要其父级的网络资源的远程名称。
lpProvider
此成员应指定拥有资源的网络提供程序。 此成员是必需的;否则,该函数可能会生成不正确的结果。
 

将忽略 NETRESOURCE 结构中的所有其他成员。

[out] lpBuffer

指向缓冲区的指针,用于接收表示父资源的单个 NETRESOURCE 结构。 该函数返回 lpRemoteNamelpProviderdwTypedwDisplayType,以及 dwUsage 结构成员;所有其他成员都设置为 NULL

lpRemoteName 成员指向父资源的远程名称。 此名称使用的语法与 WNetEnumResource 函数从枚举返回的语法相同。 调用方可以执行字符串比较,以确定 WNetGetResourceParent 资源是否与 WNetEnumResource返回的资源相同。 如果输入资源在任何网络上没有父级,则 lpRemoteName 成员将作为 NULL 返回。

dwUsage 成员中存在RESOURCEUSAGE_CONNECTABLE位表示可以连接到父资源,但前提是它在网络上可用。

[in, out] lpcbBuffer

指向在条目中指定 lpBuffer 缓冲区的大小(以字节为单位)的位置的指针。 如果缓冲区太小而无法保存结果,则此位置将接收所需的缓冲区大小,并且该函数返回ERROR_MORE_DATA。

返回值

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

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

返回代码 描述
ERROR_ACCESS_DENIED
调用方无权访问网络资源。
ERROR_BAD_NET_NAME
输入 lpRemoteName 成员不是任何网络的现有网络资源。
ERROR_BAD_PROVIDER
输入 lpProvider 成员与任何已安装的网络提供程序都不匹配。
ERROR_MORE_DATA
lpBuffer 参数指向的缓冲区太小。
ERROR_NOT_AUTHENTICATED
调用方没有获取父级名称所需的权限。

言论

WNetGetResourceParent 函数通常与 WNetGetResourceInformation 函数结合使用,以分析和解释用户键入的网络路径。

WNetGetResourceInformation 函数不同,如果资源在其语法中包含父级,则 WNetGetResourceParent 函数返回父级,无论资源是否实际存在。 WNetGetResourceParent 通常只能由以分层方式向用户显示网络资源的应用程序使用。 Windows 资源管理器和 文件打开 对话框是此类应用程序的两个已知示例。 请注意,不应对将返回的资源类型做出任何假设。

可以调用 WNetEnumResourceWNetGetResourceInformation,或 WNetGetResourceParent 函数从 NETRESOURCE 结构返回信息。 还可以使用 NETRESOURCE 结构的成员构造网络资源信息。

使用 WNetGetResourceParent 的一个示例是确定指定服务器所属的域的名称。 该函数可能会为某些网络返回正确的域名,其中域直接显示在浏览层次结构中的服务器上方。 该函数将返回其他网络的错误结果。

注意

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

要求

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

另请参阅

WNetGetNetworkInformation

WNetGetProviderName

WNetGetResourceInformation

WNetGetUniversalName

Windows 网络(WNet)概述

Windows 网络函数