将通过 WNet API 访问的网络资源部分与通过特定于资源类型的 API 所访问的部分区分开来。
Syntax
DWORD NPGetResourceInformation(
[in] LPNETRESOURCEW lpNetResource,
[out] LPVOID lpBuffer,
[in, out] LPDWORD lpBufferSize,
[out] LPWSTR *lplpSystem
);
参数
[in] lpNetResource
指定需要其信息的网络资源。 lpRemoteName 字段指定资源的远程名称。 如果调用程序知道这些值,则调用程序应填写 lpProvider 和 dwType 字段的值;否则,应将这些字段设置为 NULL。 NETRESOURCE 中的所有其他字段将被忽略,并且不会初始化。
如果 lpRemoteName 字符串包含通过 WNet API 访问的部分,以及通过特定于资源类型的其他系统 API 访问的部分,该函数应仅返回有关资源网络部分的信息(本主题后面的 lplpSystem 除外)。
例如,如果资源为“\server\share\dir1\dir2”,其中“\server\share”是通过 WNet API 访问的,而“\dir1\dir2”是通过文件系统 API 访问的,则提供程序应验证它是否为“\server\share”的正确提供程序,但不需要检查“\dir1\dir2”是否实际存在。
[out] lpBuffer
指向要接收结果的缓冲区的指针。 结果中的第一个字段是单个 NETRESOURCE 结构和关联的字符串,表示通过 WNet API 访问的输入资源部分,而不是特定于资源类型的系统 API。 例如,如果输入远程资源名称为“\server\share\dir1\dir2”,则输出 NETRESOURCE 包含有关资源“\server\share”的信息。 将返回 lpRemoteName、lpProvider、dwType、dwDisplayType 和 dwUsage 字段,其中包含值,所有其他字段都设置为 NULL。
应以与 NPEnumResource 函数从枚举返回的格式相同的格式返回 lpRemoteName 字段,以便调用方可以执行区分大小写的字符串比较。 这需要确定输出网络资源是否与 NPEnumResource 返回的资源相同。
提供程序不应纯粹执行语法检查,以确定它是否拥有资源。 当客户端上运行两个网络并首先调用执行语法检查的提供程序时,这可能会导致错误结果。
[in, out] lpBufferSize
指向指定 lpBuffer 指向的缓冲区的大小(以字节为单位)的位置的指针。 如果缓冲区对于结果来说太小,该函数会将所需的缓冲区大小置于此位置,并返回错误WN_MORE_DATA。
[out] lplpSystem
成功返回时,指向输出缓冲区中 以 null 结尾的字符串的指针,指定通过特定于资源类型的系统 API(而不是 WNet API)访问的资源的一部分。 如果没有此类部分, lplpSystem 将设置为 NULL。 例如,如果输入远程资源名称为“\server\share\dir”, 则返回 lpRemoteName 指向“\server\share”, lplpSystem 指向“\dir”,这两个字符串都存储在 lpBuffer 指向的缓冲区中。
返回值
如果函数成功,它应返回WN_SUCCESS。 否则,它应返回错误代码,这可能是以下代码之一。
| 返回代码 | Description |
|---|---|
|
输入缓冲区太小。 |
|
此提供程序无法识别资源。 |
|
dwUsage 或 dwType 无效。 |
|
传入的非零 dwType 的调用方与网络资源的实际类型不匹配。 |
|
调用方尚未向网络进行身份验证。 |
|
调用方已向网络进行身份验证,但没有足够的权限。 |
注解
可以使用 NPOpenEnum 及其相关函数从命名网络资源向下导航枚举树。 若要从命名资源向上导航,可以调用 NPGetResourceInformation 函数以获取有关资源的信息,后跟 NPGetResourceParent 函数以获取父资源的名称和类型。
NPGetResourceInformation 确定指定的提供程序是否是响应指定网络资源请求的正确提供程序。 然后返回有关资源类型的信息。
要求
| Requirement | 价值 |
|---|---|
| 最低支持的客户端 | Windows XP [仅限桌面应用] |
| 支持的最低服务器 | Windows Server 2003 [仅限桌面应用] |
| 目标平台 | Windows操作系统 |
| Header | npapi.h |
| Library | davclnt.lib |