可以通过以下示例代码中的方法解决此问题:
DWORD dwEntriesRead = 0;
DWORD dwTotalEntries = 0;
DWORD dwResumeHandle = 0;
LPFILE_INFO_3 lpFileInfo;
DWORD dwSize = sizeof(FILE_INFO_3);
NET_API_STATUS nStatus;
do
{
nStatus = NetFileEnum(NULL, // Local server
NULL, // No share name
NULL, // No file name
3, // Info level
(LPBYTE*)&lpFileInfo, // Pointer to buffer
MAX_PREFERRED_LENGTH, // Preferred maximum length
&dwEntriesRead, // Number of entries returned
&dwTotalEntries, // Total number of entries
&dwResumeHandle); // Resume handle
// Your code here
NetApiBufferFree(lpFileInfo);
} while (nStatus == ERROR_MORE_DATA);
if (nStatus != NERR_Success)
{
// Handle error condition
}
其中,在循环中使用了NetFileEnum函数,该函数接收指向存有文件信息结构体的缓冲区的指针,并在成功时更新其值。另外,需要遍历缓冲区中的每个结构体并对每个结构体进行相应的操作。如果返回值为ERROR_MORE_DATA,则表示缓冲区不足,需要用更大的缓冲区重新调用函数。在循环结束时,还需要使用NetApiBufferFree函数释放分配给缓冲区的内存。
上一篇:API中的路由器创建,SP响应