NetFileEnum 函数 (lmshare.h)
根据指定的参数,返回有关服务器上部分或所有打开的文件的信息。
语法
NET_API_STATUS NET_API_FUNCTION NetFileEnum(
[in] LMSTR servername,
[in] LMSTR basepath,
[in] LMSTR username,
[in] DWORD level,
[out] LPBYTE *bufptr,
[in] DWORD prefmaxlen,
[out] LPDWORD entriesread,
[out] LPDWORD totalentries,
[in, out] PDWORD_PTR resume_handle
);
参数
[in] servername
指向字符串的指针,该字符串指定要在其中执行函数的远程服务器的 DNS 或 NetBIOS 名称。 如果此参数为 NULL,则使用本地计算机。
如果定义了 _WIN32_WINNT 或 FORCE_UNICODE ,则此字符串为 Unicode。
[in] basepath
指向指定返回信息的限定符的字符串的指针。 如果此参数为 NULL,则枚举所有打开的资源。 如果此参数不为 NULL,则该函数仅枚举将 basepath 参数的值作为前缀的资源。 (前缀是位于反斜杠之前的路径部分 )
如果定义了 _WIN32_WINNT 或 FORCE_UNICODE ,则此字符串为 Unicode。
[in] username
指向指定用户名或连接名称的字符串的指针。 如果字符串以两个反斜杠开头 (“\”) ,则表示连接的名称,例如“\127.0.0.1”或“\ClientName”。 反斜杠后面的连接名称部分与 NetSessionEnum 函数返回的会话信息结构中的客户端名称相同。 如果字符串不以两个反斜杠开头,则表示用户的名称。 如果此参数不为 NULL,则其值将用作枚举的限定符。 返回的文件仅限于具有与限定符匹配的用户名或连接名称的文件。 如果此参数为 NULL,则不使用用户名限定符。
Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP: 此参数是指向指定用户名的字符串的指针。 如果此参数不为 NULL,则其值将用作枚举的限定符。 返回的文件仅限于具有与限定符匹配的用户名的文件。 如果此参数为 NULL,则不使用用户名限定符。
如果定义了 _WIN32_WINNT 或 FORCE_UNICODE ,则此字符串为 Unicode。
[in] level
指定数据的信息级别。 此参数的取值可为下列值之一:
值 | 含义 |
---|---|
|
返回文件标识号。 bufptr 参数指向FILE_INFO_2结构的数组。 |
|
返回有关文件的信息。 bufptr 参数指向FILE_INFO_3结构的数组。 |
[out] bufptr
指向接收信息的缓冲区地址的指针。 此数据的格式取决于 级别 参数的值。
此缓冲区由系统分配,必须使用 NetApiBufferFree 函数释放。 请注意,即使函数因 ERROR_MORE_DATA而失败,也必须释放缓冲区。
[in] prefmaxlen
指定返回数据的首选最大长度(以字节为单位)。 如果指定 MAX_PREFERRED_LENGTH,则函数将分配数据所需的内存量。 如果在此参数中指定另一个值,它可以限制函数返回的字节数。 如果缓冲区大小不足以容纳所有条目,则函数将返回 ERROR_MORE_DATA。 有关详细信息,请参阅 网络管理功能缓冲区 和 网络管理功能缓冲区长度。
[out] entriesread
指向接收实际枚举的元素计数的值的指针。
[out] totalentries
指向一个值的指针,该值接收可能从当前恢复位置枚举的条目总数。 请注意,应用程序应仅将此值视为提示。
[in, out] resume_handle
指向包含用于继续现有文件搜索的恢复句柄的值的指针。 第一次调用时,句柄应为零,后续调用应保持不变。 如果此参数为 NULL,则不存储任何恢复句柄。
返回值
如果函数成功,则返回值 NERR_Success。
如果函数失败,则返回值可能是以下错误代码之一。
返回代码 | 说明 |
---|---|
|
用户无权访问请求的信息。 |
|
为 级别 参数指定的值无效。 |
|
有更多条目可用。 指定一个足够大的缓冲区来接收所有条目。 |
|
可用内存不足。 |
|
提供的缓冲区太小。 |
注解
只有管理员或服务器操作员本地组的成员才能成功执行 NetFileEnum 函数。
可以调用 NetFileGetInfo 函数来检索有关服务器资源的特定打开的信息。
如果要对 Active Directory 进行编程,则可以调用某些 Active Directory 服务接口 (ADSI) 方法,以实现通过调用 NetFileEnum 实现的相同功能。 有关详细信息,请参阅 IADsResource 和 IADsFileServiceOperations。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | lmshare.h (包括 Lm.h) |
Library | Netapi32.lib |
DLL | Netapi32.dll |