WNetOpenEnumA 函数 (winnetwk.h)
WNetOpenEnum 函数启动网络资源或现有连接的枚举。 可以通过调用 WNetEnumResource 函数来继续枚举。
语法
DWORD WNetOpenEnumA(
[in] DWORD dwScope,
[in] DWORD dwType,
[in] DWORD dwUsage,
[in] LPNETRESOURCEA lpNetResource,
[out] LPHANDLE lphEnum
);
参数
[in] dwScope
枚举的范围。 此参数可以是下列值之一。
[in] dwType
要枚举的资源类型。 此参数可以是以下值的组合。
价值 | 意义 |
---|---|
|
所有资源。 此值不能与RESOURCETYPE_DISK或RESOURCETYPE_PRINT组合。 |
|
所有磁盘资源。 |
|
所有打印资源。 |
如果网络提供程序无法区分打印资源和磁盘资源,则可以枚举所有资源。
[in] dwUsage
要枚举的资源使用类型。 此参数可以是以下值的组合。
除非 dwScope 参数等于RESOURCE_GLOBALNET,否则忽略此参数。 有关详细信息,请参阅以下“备注”部分。
[in] lpNetResource
指向 NETRESOURCE 结构的指针,该结构指定要枚举的容器。 如果未RESOURCE_GLOBALNET dwScope 参数,则必须将此参数 NULL。
如果此参数 NULL,则假定网络根。 (系统将网络组织为层次结构;根是网络中最顶层的容器。
如果此参数未 NULL,则必须指向 NETRESOURCE 结构。 此结构可由应用程序填充,也可以通过调用 WNetEnumResource 函数返回该结构。 NETRESOURCE 结构必须指定容器资源;也就是说,必须在 dwUsage 参数中指定RESOURCEUSAGE_CONTAINER值。
若要枚举所有网络资源,应用程序可以通过调用 WNetOpenEnum,并将 lpNetResource 参数设置为 NULL,然后使用返回的句柄调用 WNetEnumResource 来枚举资源。 如果 WNetEnumResource 函数返回的 NETRESOURCE 数组中的某个资源是容器资源,则可以调用 WNetOpenEnum 打开资源进行进一步枚举。
[out] lphEnum
指向枚举句柄的指针,该句柄可用于后续调用 WNetEnumResource。
返回值
如果函数成功,则返回值NO_ERROR。
如果函数失败,则返回值为 系统错误代码,例如以下值之一。
返回代码 | 描述 |
---|---|
|
lpNetResource 参数不指向容器。 |
|
dwScope 或 dwType 参数无效,或者参数组合无效。 |
|
网络不可用。 |
|
发生了特定于网络的错误。 若要获取错误的说明,请调用 WNetGetLastError 函数。 |
|
NETRESOURCE 中提供的远程网络资源名称 结构解析为无效的网络地址。 |
言论
如果 dwScope 参数等于 RESOURCE_CONNECTED,则当在调用 WNetOpenEnum 函数的应用程序运行连接时,将从枚举中省略使用 Microsoft LAN Manager 网络的网络连接。 这是因为使用 Microsoft LAN 管理器建立的连接仅对与建立连接的应用程序在同一登录会话中运行的应用程序可见。 (若要在枚举中包含连接,应用程序在创建连接的用户帐户中运行是不够的。
dwScope 参数中RESOURCE_CONTEXT的确切解释取决于计算机上安装的网络。
WNetOpenEnum 函数用于开始枚举单个容器中的资源。 以下示例显示了 Microsoft LAN Manager 网络的分层结构以及 Novell NetWare 网络并确定容器。
LanMan (container, in this case the provider)
ACCOUNTING (container, in this case the domain)
\\ACCTSPAY (container, in this case the server)
PAYFILES (disk)
LASERJET (print)
NetWare (container, in this case the provider)
MARKETING (container, in this case the server)
SYS (disk, first one on any NetWare server)
ANOTHERVOLUME (disk)
LASERJET (print)
例子
有关演示枚举网络上所有资源的应用程序定义函数的代码示例,请参阅 枚举网络资源。
注意
winnetwk.h 标头将 WNetOpenEnum 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
支持的最低服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | 窗户 |
标头 | winnetwk.h |
库 | Mpr.lib |
DLL | Mpr.dll |