GetQueuedCompletionStatus返回值是FALSE,GetLastError = 1450(系统资源不足,无法完成请求的服务。 ),请问是什么问题?

freebird_top 2007-10-24 09:40:19
UINT __stdcall CNetLayer::WorkThread(PVOID lpVoid)
{
CNetLayer* pNetlayer = (CNetLayer*) lpVoid;
IClient* pClient = NULL;
CIoData* pIoData =NULL;
DWORD dwByteNums = 0;

while (1)
{
try
{
BOOL flag = ::GetQueuedCompletionStatus(pNetlayer->m_hIocp, &dwByteNums,
(LPDWORD)&pClient, (LPOVERLAPPED*)&pIoData, INFINITE);

              //process exit thread.
if (dwByteNums ==0 && pClient == NULL && (DWORD)pIoData == -1)
break;
if (!flag || !pIoData)
{
DWORD dwErr = GetLastError();
//请问怎么在一个用户的计算机(win2kServer)老是出现1450错误.而且是客户端连接上,后发现数据是就会出现这个问题.
SDG_WriteLog("GetQueuedCompletionStatus:error:%d,bytenum:%d\r\n", dwErr, dwByteNums);

if (pIoData != NULL && dwErr == 64 && dwByteNums == 0)
pNetlayer->OnClose(pIoData, 0);

continue ;
}

if (dwByteNums == 0)
{
pNetlayer->OnClose(pIoData, 0);
continue ;
}

pIoData->pClient = pClient;
switch(pIoData->event)
{
case EVENT_RECV:
pNetlayer->OnRecv(pIoData, dwByteNums);
break;
case EVENT_SEND:
pNetlayer->OnSend(pIoData, dwByteNums);
break;
default:
OutputDebugString("package cmd have error!\n");
break;
}
}
catch (...) { SDG_WriteLog("WorkThread have error.\r\n"); }
}
OutputDebugString("exit work thread\n");
return 0;
}
...全文
663 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
DentistryDoctor 2007-11-08
  • 打赏
  • 举报
回复
投递了太多未决的IO请求?
ostrich2fly 2007-11-07
  • 打赏
  • 举报
回复
mark
我也遇到同样的问题 郁闷
WinEggDrop 2007-10-25
  • 打赏
  • 举报
回复
非分页内存被用光了?在其它系统测试下
BeRoy 2007-10-24
  • 打赏
  • 举报
回复
请问怎么在一个用户的计算机(win2kServer)老是出现1450错误.而且是客户端连接上,后发现数据是就会出现这个问题.

晕,你这句话什么意思呢,是在其他操作系统上就OK吗?

18,356

社区成员

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

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