NetQueryDisplayInformation函数返回用户,计算机或全局组帐户信息。使用此函数快速枚举用户界面中显示的帐户信息。
安全要求
成功执行NetQueryDisplayInformation不需要特殊的组成员资格。
NET_API_STATUS NetQueryDisplayInformation(
LPWSTR 【ServerName】, | |
DWORD 【水平】, | |
DWORD 【指数】, | |
DWORD 【EntriesRequested】, | |
DWORD 【PreferredMaximumLength】, | |
LPDWORD 【ReturnedEntryCount】, | |
PVOID 【*SortedBuffer】 | |
); |
参数
【ServerName】
指向一个以null结尾的Unicode字符串,其中包含要执行该函数的远程服务器的名称。NULL指针或字符串指定本地计算机。
【水平】
指定以下值之一来返回提供的信息级别。
值 | 含义 |
1 | 返回所有本地和全球(普通)用户帐户。返回的缓冲区指向NET_DISPLAY_USER结构的数组。 |
2 | 返回所有工作站和服务器(BDC)用户帐户。返回的缓冲区指向NET_DISPLAY_MACHINE结构的数组。 |
3 | 返回所有全局组。返回的缓冲区指向NET_DISPLAY_GROUP结构的数组。 |
【指数】
指定要检索信息的第一个条目的索引。指定零以从第一个显示信息条目开始检索帐户信息。如果调用NetQueryDisplayInformation返回ERROR_MORE_DATA,则可以将【指数】设置为【SortedBuffer】中最后一个条目next_index成员返回的值,以获取其他条目的数据。要检索以指定前缀开头的条目的信息,请将【指数】设置为调用NetGetDisplayInformationIndex函数返回的索引。
【EntriesRequested】
指定获取信息的最大条目数。
【PreferredMaximumLength】
指定【SortedBuffer】参数中返回的系统分配缓冲区的首选最大大小(以8位字节为单位)。
【ReturnedEntryCount】
指向接收【SortedBuffer】参数中返回的缓冲区中条目数的32位变量的指针。零表示没有指定索引的条目的大小。当函数的返回值为NERR_Success或ERROR_MORE_DATA时,可能会返回条目。
【SortedBuffer】
指向接收指向系统分配缓冲区的指针的变量,该缓冲区包含所请求信息的排序列表。该缓冲区包含NET_DISPLAY_USER,NET_DISPLAY_MACHINE或NET_DISPLAY_GROUP结构的数组。使用NetApiBufferFree取消分配缓冲区。
返回值
如果函数返回帐户信息,则返回值为以下值之一。
值 | 含义 |
NERR_Success | 没有更多的条目被返回。 |
ERROR_MORE_DATA | 更多条目可用。也就是说,【SortedBuffer】参数中返回的最后一个条目不是最后一个条目。要获取更多条目的信息,请NetQueryDisplayInformation再次NetQueryDisplayInformation参数设置为【SortedBuffer】中最后一个条目next_index成员返回的值。 |
如果函数失败,则返回值为以下错误代码之一。
值 | 含义 |
ERROR_ACCESS_DENIED | 用户无权访问所请求的信息。 |
ERROR_INVALID_LEVEL | 【水平】参数指定无效值。 |
备注
NetQueryDisplayInformation和NetGetDisplayInformationIndex功能为枚举用户和全局组帐户提供了非常有效的机制。尽可能使用这些功能,而不是NetUserEnum和NetGroupEnum功能。
也可以看看
NET_DISPLAY_USER,NetApiBufferFree, NetGetDisplayInformationIndex, NetGroupEnum, NetUserEnum