функция будет ждать, пока не
sizeof ( CDebugBaseUser *)));
ASSERT' ( FALSE == IsBadWritePtr ( IpDebugSyncEvents,
sizeof ( HANDLE) *
NUM_DEBUGEVENTS));
// Обычные проверки параметров.
if ( ( TRUE == IsBadStringPtr ( szDebuggee, MAX_PATH) ) ||
( TRUE •== IsBadStringPtr ( szCmdLine, MAX_PATH) ) ||
( TRUE — IsBadWritePtr ( IpPID, sizeof ( DWORD) )) ||
( TRUE == IsBadReadPtr ( pUserClass,
sizeof ( CDebugBaseUser *))) ||
( TRUE == IsBadWritePtr ( IpDebugSyncEvents,
sizeof ( HANDLE) *
NUM_DEBUGEVENTS) ) )
{
SetLastError ( ERROR_INVALID_PARAMETER);
return ( INVALID_HANDLE_VALUE);
}
// Обработка начального уведомления о том, что данная
// функция будет ждать, пока не начнет выполняться отладочный поток HANDLE hStartAck;
// Строка, используемая для начального уведомления TCHAR szStartAck [ МАХ_РАТН ];
// Загрузить строку начального уведомления,
if ( 0 == LoadString ( GetDllHandle () ,
IDS_DBGEVENTINIT ,
szStartAck ,
sizeof ( szStartAck) ))
{
ASSERT ( !"LoadString IDS_DBGEVENTINIT failed!");
return ( INVALID_HANDLE_VALUE);
}
// Создать событие начального уведомления.
hStartAck = CreateEvent ( NULL , // Безопасность по умолчанию
TRUE , // Событие ручной переустановки FALSE ,
// Сигнал Initial state = Not szStartAck);
// Имя события ASSERT ( FALSE != hStartAck);
if ( FALSE == hStartAck)
{
TRACE ( "StartDebugging : Unable to create Start Ack event\n");
return ( INVALID_HANDLE_VALUE);
}
// Связать параметры.
THREADPARAMS StParams;
stParams.lpPID = IpPID;
stParams.pUserClass = pUserClass;
stParams.szDebuggee = szDebuggee;
stParams.szCmdLine = szCmdLine ;
// Дескриптор для потока отладки HANDLE hDbgThread;
// Попытка создать поток.
hDbgThread = (HANDLE)_beginthread ( DebugThread, 0, sstParams);
ASSERT ( NULL != hDbgThread);
if ( NULL == hDbgThread)
{
TRACE ( "StartDebugging : _beginthread failed\n");
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий