|
| БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО! |
|
|
SetErrorMode
The SetErrorMode function controls how the operating system handles several types of serious errors. You can specify that the operating system will handle these errors or that the application will receive and handle them.
UINT SetErrorMode(
UINT uMode // set of bit flags that specify error-handling properties );
Parameters
uMode
A set of bit flags that specify system error-handling properties. The following error mode bit flag constants are defined; you can set any combination of them:
Value Action SEM_FAILCRITICALERRORS If this flag is set, the operating system does not display the critical-error-handler message box when such an error occurs. Instead, the operating system sends the error to the calling process. SEM_NOALIGNMENTFAULTEXCEPT If this flag is set, the operating system automatically fixes memory alignment faults and makes them invisible to the application. It does this for the calling process and any descendant processes. This flag always affects MIPS processors. It has no effect on x86 processors.If the registry value \CurrentControlSet\Control\Session Manager:EnableAlignmentFaultExceptions is set to REG_DWORD 0x0, this key has no effect on ALPHA processors. That is the system default. If the registry key is set to REG_DWORD 0x1, the SEM_NOALIGNMENTFAULTEXCEPT flag does affect ALPHA processors. SEM_NOGPFAULTERRORBOX If this flag is set, the operating system does not display the general-protection-fault message box when such an error occurs. This flag should only be set by debugging applications that handle general protection (GP) faults themselves via an appropriate exception handler. SEM_NOOPENFILEERRORBOX If this flag is set, the operating system does not display a message box when it fails to find a a file. Instead, the error is returned to the calling process.
Return Values
The return value is the previous state of the error-mode bit flags.
Remarks
A child process inherits the error mode of its parent process. The default state for the error mode properties set by this function is OFF. On some non-x86 processors misaligned memory references cause an alignment fault exception. The SEM_NOALIGNMENTFAULTEXCEPT flag lets you control whether the operating system automatically fixes such alignment faults, or makes them visible to an application. The SEM_NOALIGNMENTFAULTEXCEPT flag always affects MIPS processors. It never affects x86 processors. It affects ALPHA processors only if the registry key \CurrentControlSet\Control\Session Manager:EnableAlignmentFaultExceptions is set to REG_DWORD 0x1. The default setting for that registry key is REG_DWORD 0x0.
On an x86 platform, an application doesn't need to do anything to have the operating system automatically fix misaligned memory references. The operating system does not make alignment faults visible to an application. On a MIPS platform, an application must explicitly call SetErrorMode, setting the SEM_NOALIGNMENTFAULTEXCEPT flag, to have the operating system automatically fix alignment faults. The default setting is for the operating system to make alignment faults visible to an application.
On an ALPHA platform, the operating system automatically fixes alignment faults, unless the aforementioned registry key is set to REG_DWORD 0x1. When that registry key is set to REG_DWORD 0x1, the operating system makes alignment faults visible to an application, and an application must then call SetErrorMode to have the operating system automatically fix alignment faults. Specifying the SEM_NOALIGNMENTFAULTEXCEPT flag on x86 systems is not an error, but implementations of Windows NT are free to silently ignore and not properly preserve the flag. This means that code sequences such as the following are not always valid on x86 systems:
SetErrorMode(SEM_NOALIGNMENTFAULTEXCEPT); fuOldErrorMode = SetErrorMode(0);
ASSERT(fuOldErrorMode == SEM_NOALIGNMENTFAULTEXCEPT);
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
SetErrorMode
Функция SetErrorMode регулирует как операционная система оперирует несколько типов серьезных ошибок. Вы можете определить, что операционная система прооперирует эти ошибки или, что приложение получит и оперирует им.
UINT SetErrorMode(
UINT uMode // УСТАНОВЛЕННОЕ битовых флагов, что определять ошибку-обработку свойств );
Параметры
uMode
Набор бита сигнализирует, что определяет системную ошибку-обработку свойств. Следующий способ битового флага констант ошибки определен; Вы можете установить любую комбинацию их:
Действие Величины SEM_FAILCRITICALERRORS Если этот флаг установлен, операционная система не отображает критическую-ошибку-вручителя ящика сообщения когда такая ошибка происходит. Взамен, операционная система посылает ошибку в разговор процесса. SEM_NOALIGNMENTFAULTEXCEPT Если этот флаг установлен, операционная система автоматически устанавливает дефекты выравнивания памяти и делает их невидимым в приложение. Это делает это для разговора процесса и любых процессов потомка. Этот флаг всегда влияет на процессоры MIPS. У него нет эффекта в x86 процессорах.Если величина регистрации \CurrentControlSet\Control\Session Менеджера:EnableAlignmentFaultExceptions установлен на REG_DWORD 0x0, этот ключ не имеет эффект в процессорах АЛЬФЫ. Это - системное невыполнение. Если ключ регистрации установлен на REG_DWORD 0x1, флаг SEM_NOALIGNMENTFAULTEXCEPT влияет на процессоры АЛЬФЫ. SEM_NOGPFAULTERRORBOX Если этот флаг установлен, операционная система не отображает общий-защита-дефектный ящик сообщения когда такая ошибка происходит. Этот флаг должен только установлен отлаживая приложения, которые оперируют саму общую защиту (GP) дефекты через подходящего исключительного вручителя. SEM_NOOPENFILEERRORBOX Если этот флаг установлен, операционная система не отображает ящик сообщения когда это не находит файл. Взамен, ошибка возвращана в разговор процесса.
Обратные Величины
Обратная величина является предшествующим состоянием ошибки-способа битовых флагов.
Замечания
Процесс ребенка наследует способ ошибки своего родительского процесса. Встроенное состояние для свойств способа ошибки установленных этой функцией. В некоторых non-x86 процессорах misaligned причина ссылок памяти дефектное исключение выравнивания. Флаг SEM_NOALIGNMENTFAULTEXCEPT позволяет Вам управлять автоматически устанавливает операционная система такие дефекты выравнивания или делает их видимым в приложение. Флаг SEM_NOALIGNMENTFAULTEXCEPT всегда влияет на процессоры MIPS. Это никогда не влияет на x86 процессоры. Это влияет на процессоры АЛЬФЫ только если регистрация ключевого Менеджера \CurrentControlSet\Control\Session:EnableAlignmentFaultExceptions установлен в 0x1 REG_DWORD. Встроенная установка для этого ключа регистрации - 0x0 REG_DWORD.
На x86 платформе, приложение не нужно делать что-нибудь, чтобы иметь автоматически исправление операционной системы misaligned ссылки памяти. Операционная система не делает дефектами выравнивания видимыми в приложение. На платформе MIPS, приложение должно явно вызвать SetErrorMode, устанавливающее флаг SEM_NOALIGNMENTFAULTEXCEPT, чтобы иметь дефекты выравнивания автоматически исправления операционной системы. Встроенная установка - для операционной системы делать дефектами выравнивания видимыми в приложение.
На платформе АЛЬФЫ, операционная система автоматически устанавливает дефекты выравнивания, если вышеупомянутый ключ регистрации не установлен в 0x1 REG_DWORD. Когда этот ключ регистрации установлен на REG_DWORD 0x1, операционная система делает дефектами выравнивания видимыми в приложение, и приложение должно затем вызывать SetErrorMode, чтобы иметь дефекты выравнивания автоматически исправления операционной системы. Определение флага SEM_NOALIGNMENTFAULTEXCEPT в x86 системах - не ошибка, но реализации Windows NT свободны, чтобы молча игнорировать и не правильно сохранять флаг. Это означает, что кодовые последовательности как например, следующее не всегда правильное в x86 системах:
SetErrorMode(SEM_NOALIGNMENTFAULTEXCEPT); fuOldErrorMode = SetErrorMode(0);
УТВЕРДИТЕ(fuOldErrorMode == SEM_NOALIGNMENTFAULTEXCEPT);
|
|
|
|
| |