WNetGetResourceInformationA 函数 (winnetwk.h)
当提供网络资源的远程路径时, WNetGetResourceInformation 函数标识拥有该资源的网络提供程序,并获取有关资源类型的信息。 函数通常与 WNetGetResourceParent 函数结合使用,以分析和解释用户键入的网络路径。
语法
DWORD WNetGetResourceInformationA(
[in] LPNETRESOURCEA lpNetResource,
[out] LPVOID lpBuffer,
[in, out] LPDWORD lpcbBuffer,
[out] LPSTR *lplpSystem
);
参数
[in] lpNetResource
指向 NETRESOURCE 结构的指针,该结构指定需要其信息的网络资源。
结构的 lpRemoteName 成员应指定资源的远程路径名称,通常由用户键入。 如果已知,还应填充 lpProvider 和 dwType 成员,因为此操作可能占用大量内存,尤其是在未指定 dwType 成员的情况下。 如果不知道这些成员的值,应将其设置为 NULL。 将忽略 NETRESOURCE 结构的所有其他成员。
[out] lpBuffer
指向用于接收结果的缓冲区的指针。 成功返回后,缓冲区的第一部分是 NETRESOURCE 结构,它表示通过 WNet 函数而不是特定于输入资源类型的系统函数访问的输入资源路径的这一部分。 (缓冲区的其余部分包含 NETRESOURCE 结构成员指向的可变长度字符串。)
例如,如果输入远程资源路径为 \server\share\dir1\dir2,则输出 NETRESOURCE 结构包含有关资源 \server\share 的信息。 路径的 \dir1\dir2 部分通过 文件管理功能进行访问。 返回 NETRESOURCE 的 lpRemoteName、lpProvider、dwType、dwDisplayType 和 dwUsage 成员,并将所有其他成员设置为 NULL。
lpRemoteName 成员的返回语法与 WNetEnumResource 函数从枚举返回的语法相同。 这允许调用方执行字符串比较,以确定传递给 WNetGetResourceInformation 的资源是否与单独调用 WNetEnumResource 返回的资源相同。
[in, out] lpcbBuffer
指向位置的指针,该位置在输入时指定 lpBuffer 缓冲区的大小(以字节为单位)。 分配的缓冲区必须足够大,以便保存 NETRESOURCE 结构,以及其成员指向的字符串。 如果缓冲区对于结果来说太小,则此位置将接收所需的缓冲区大小,并且函数返回ERROR_MORE_DATA。
[out] lplpSystem
如果函数成功返回,则此参数指向输出缓冲区中的字符串,该字符串指定通过系统函数访问的资源部分。 (这仅适用于特定于资源类型的函数,而不是 WNet functions。)
例如,如果输入远程资源名称为 \server\share\dir1\dir2,则输出 NETRESOURCE 结构的 lpRemoteName 成员指向 \server\share。 此外, lplpSystem 参数指向 \dir1\dir2。 这两个字符串都存储在 lpBuffer 参数指向的缓冲区中。
返回值
如果函数成功,则返回值NO_ERROR。
如果函数失败,则返回值为 系统错误代码,例如以下值之一。
返回代码 | 说明 |
---|---|
|
输入 lpRemoteName 成员不是任何网络的现有网络资源。 |
|
输入 dwType 成员与 lpRemoteName 成员指定的资源类型不匹配。 |
|
发生特定于网络的错误。 调用 WNetGetLastError 以获取错误说明。 |
|
lpBuffer 参数指向的缓冲区太小。 |
|
网络不可用。 |
注解
注意
winnetwk.h 标头将 WNetGetResourceInformation 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | winnetwk.h |
Library | Mpr.lib |
DLL | Mpr.dll |