GetQueuedCompletionStatus가 ERROR_INVALID_NETNAME으로 실패합니다. 이것은 무엇을 의미 하는가? 나는 MSDN에서 보았습니다.GetQueuedCompletionStatus가 반환 된 후 오류가 발생합니다. 오류 번호는 ERROR_INVALID_NETNAME입니다.
첫 단계 : ConnectEx을 사용하여 서버에 연결하십시오. ConnectEx 오류 코드 997 (ERROR_IO_PENDING)와 함께 성공하십시오 ConnectEx 호출 완료 후
DWORD bytes = 0;
sockaddr_in addr = {0};
iocp_data_t * iocp = (iocp_data_t *)module->data;
addr.sin_addr.s_addr = ip;
addr.sin_family = AF_INET;
addr.sin_port = htons(port);
if(!iocp->tcp_connectex(event->fd, (const sockaddr*)&addr, sizeof(sockaddr_in),
NULL, 0, NULL, &event->connect.overlap))
{
if(!ERR_RW_RETRIABLE(socket_geterror(event->fd)))
{
return false;
}
}
return true;
GetQueuedCompletionStatus 반환하지만 오류 코드 1214 (ERROR_INVALID_NETNAME)로 :
fd_event_t * fd_event;
iocp_data_t * iocp = (iocp_data_t *)module->data;
rc = GetQueuedCompletionStatus(iocp->iocp, &bytes, (PULONG_PTR)&fd_event,
(LPOVERLAPPED *) &event, (u_long) 1);
if(event == NULL)
{
return;
}
DWORD err = GetLastError(); // err = 1214
event = containing_record(event,event_t,overlap);
if(event->in_used)
{
if(event->event_handler != NULL)
{
event->event_handler(module,fd_event,event->type,event->user);
}
iocp_add_event(module,fd_event,event->type,event->event_handler,event->user);
}
AFAIK'ERROR_INVALID_NETNAME'은 (는) GetQueuedCompletionStatus()가보고 할 수있는 오류 코드가 아닙니다. 실제 사례를 보여주십시오. –