HOOKFN_PROLOG должен быть специфицирован сразу
// HOOKFN_PROLOG должен быть специфицирован сразу же после
// локальных переменных.
HOOKFN_PROLOG ();
// Включена ли регистрация типа функции?
if ( TRUE == DoLogging ( DDOPT_EVENT))
{
// Используйте макрос FILL_EVENTINFO, чтобы заполнить переменную
// stEvtlnfo, которая объявлена в макросе HOOKFN_PROLOG. Все
// функции подключения автоматически имеют некоторые локальные
// переменные, помогающие стандартизировать их код.
FILL_EVENTINFO ( eOpenEventA);
// НЕОБХОДИМО вызвать макрос REAL_FUNC_PRE_CALL перед вызовом
// реальной функции, или если регистры ESI и EDI не будут
// сохраняться во время вызова.
REAL_FUNC_PRE_CALL ();
// Вызвать реальную функцию. Возвращаемое значение, сохраняемое
//в ЕАХ, сохраняется как часть обработки REAL_FUNC_POST_CALL.
OpenEventA ( dwDesiredAccess, blnheritHandle , IpName );
//Вы должны назвать макрос REAL_FUNC_POST_CALL после вызова
// реальной функции. Значения регистров и последней ошибки
// сохраняются как часть REAL_FUNC_POST_CALL.
REAL_FUNC_POST_CALL ();
// Вызвать код регистрации для регистрации события.
ProcessEvent ( sstEvtlnfo);
}
else
{
// См. комментарии выше. Предложение else обрабатывает случай,
// когда функция не зарегистрирована.
REAL_FUNC_PRE_CALL ();
OpenEventA ( dwDesiredAccess, blnheritHandle , IpName );
REAL_FUNC_POST_CALL ();
}
// HOOKFN_EPILOG — последний макрос в функции. Его параметр — это
// число параметров функции, так что стек будет очищен правильно.
// Макрос HOOKFN_EPILOG заботится также об установке во всех
// регистрах тех же значений, которые возвратила реальная
// функция.
HOOKFN_EPILOG ( 3) ;
}
//////////////////////////////////////////////////////////////////*/
/*//////////////////////////////////////////////////////////////
Структура состояния регистра. Я использую эту структуру, чтобы гарантировать, что ВСЕ регистры возвращаются точно в том состоянии, в каком они прибыли из реальной функции.
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий