为何 RasEnumConnections 函数总是返回错误 ERROR_INVALID_SIZE

fangqing0827 2010-10-15 05:21:55
以下代码来自于msdn :



#include "windows.h"
#include "Ras.h"
#include "raserror.h"
#pragma comment(lib,"Rasapi32.lib")
void main()
{
DWORD dwCb = sizeof(RASCONN);
DWORD dwErr = ERROR_SUCCESS;
DWORD dwRetries = 5;
DWORD dwConnections = 0;
RASCONN* lpRasConn = NULL;

while (dwRetries--)
{
if (NULL != lpRasConn)
{
HeapFree(GetProcessHeap(), 0, lpRasConn);
lpRasConn = NULL;
}

lpRasConn =(RASCONN*) HeapAlloc(GetProcessHeap(), 0, dwCb);
if (NULL == lpRasConn)
{
dwErr = ERROR_NOT_ENOUGH_MEMORY;
break;
}

lpRasConn->dwSize = sizeof(RASCONN);

dwErr = RasEnumConnections(
lpRasConn,
&dwCb,
&dwConnections);
if (ERROR_BUFFER_TOO_SMALL != dwErr)
{
//在这里下断点,RasEnumConnections 总是返回 ERROR_INVALID_SIZE,不解
break;
}
}

if (ERROR_SUCCESS == dwErr)
{
DWORD i;

printf("The following RAS connections are currently active\n\n");
for (i = 0; i < dwConnections; i++)
{
printf("%s\n", lpRasConn[i].szEntryName);
}
}
else
{
printf("RasEnumConnections failed: Error = %d\n", dwErr);
}

if (NULL != lpRasConn)
{
HeapFree(GetProcessHeap(), 0, lpRasConn);
lpRasConn = NULL;
}
}
...全文
98 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧