SAFE_ - то же самое что и EXTENDED_, однако перед вызовом (на время вызова) GetDefaultFunc() восстанавливаются
// значения регистров процессора EAX, ECX (если не FASTCALL_ и не THISCALL_),
// EDX (если не FASTCALL_), EBX, ESI, EDI, бывшие на момент вызова замещенной функции
Мне в корне не ясен смысл SAFE/NOT SAFE. Неужели мост по умолчанию портит регистры? В Эре перед вызовом оригинальной функции контекст восстанавливается полностью, вплоть до флагов (POPAD, POPFD)..