WNetGetResourceParentW 函数 (winnetwk.h)

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

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

语法

DWORD WNetGetResourceParentW(
  [in]      LPNETRESOURCEW lpNetResource,
  [out]     LPVOID         lpBuffer,
  [in, out] LPDWORD        lpcbBuffer
);

参数

[in] lpNetResource

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

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

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

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

[out] lpBuffer

指向缓冲区的指针,用于接收表示父资源的单个 NETRESOURCE 结构。 函数返回 结构的 lpRemoteNamelpProviderdwTypedwDisplayTypedwUsage 成员;所有其他成员都设置为 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 资源管理器和“ 文件打开 ”对话框是此类应用程序的两个已知示例。 请注意,不应对将返回的资源类型做出假设。

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

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

注意

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

要求

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

另请参阅

WNetGetNetworkInformation

WNetGetProviderName

WNetGetResourceInformation

WNetGetUniversalName

Windows 网络 (WNet) 概述

Windows 网络函数