Newbie Spellweaver
- Joined
- Jul 31, 2024
- Messages
- 35
- Reaction score
- 7
I encounter this error don`t have the db crash.exe cause it not showing.. any idea what is the cause
m_hIOCPGuild = CreateIoCompletionPort( INVALID_HANDLE_VALUE, NULL, 0, 0 ); // 길드용
m_hThreadGuild = chBEGINTHREADEX( NULL, 0, _GuildThread, (LPVOID)this, 0, &dwThreadId );
bReturnValue = GetQueuedCompletionStatus(m_hIOCPGuild, &dwBytesTransferred, &dwCompletionKey, (LPOVERLAPPED*)&lpDbOverlappedPlus, INFINITE);
if (FALSE == bReturnValue)
{
Error("GetQueuedCompletionStatus return FALSE. Error:[%d]", ::GetLastError());
SAFE_DELETE_FREEREQUEST(lpDbOverlappedPlus);
continue;
}
void CDPTrans::OnQueryGuildBank(CAr& ar, DPID dpid, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize)
{
LPDB_OVERLAPPED_PLUS lpDbOverlappedPlus = g_DbManager.AllocRequest();
g_DbManager.MakeRequest(lpDbOverlappedPlus, lpBuf, uBufSize);
lpDbOverlappedPlus->dpid = dpid;
lpDbOverlappedPlus->dpidCache = dpidCache;
lpDbOverlappedPlus->dpidUser = dpidUser;
lpDbOverlappedPlus->nQueryMode = GUILD_BANK_QUERY;
PostQueuedCompletionStatus(g_DbManager.m_hIOCPGuild, 1, NULL, &lpDbOverlappedPlus->Overlapped);
}
DB_OVERLAPPED_PLUS* CDbManager::AllocRequest( void )
{
#ifdef __TRANS_0413
DB_OVERLAPPED_PLUS* ptr = new DB_OVERLAPPED_PLUS;
memset( ptr, 0, sizeof(DB_OVERLAPPED_PLUS) );
return ptr;
#else // __TRANS_0413
// return m_pDbIOData->Alloc();
DB_OVERLAPPED_PLUS* ptr = m_pDbIOData->Alloc();
memset( ptr, 0, sizeof(DB_OVERLAPPED_PLUS) );
return ptr;
#endif // __TRANS_0413
}
void CDbManager::MakeRequest( DB_OVERLAPPED_PLUS* pOverlappedPlus, LPBYTE lpBuf, u_long uBufSize )
{
// mulcom BEGIN100415
if( uBufSize < 0 || uBufSize >= (1024*1024) )
{
Error( _T( "MakeRequest uBufSize Error. [%d]" ), uBufSize );
uBufSize = 0;
}
// mulcom END100415
#ifdef __TRANS_0413
pOverlappedPlus->lpBuf = new BYTE[uBufSize];
#else
pOverlappedPlus->lpBuf = new BYTE[uBufSize];
::memset( pOverlappedPlus->lpBuf, 0, uBufSize );
#endif // __TRANS_0413
memcpy( pOverlappedPlus->lpBuf, lpBuf, uBufSize );
pOverlappedPlus->uBufSize = uBufSize;
return;
}