Windows для профессионалов


Функция GetExceptionCode - часть 4


/p>

Таблица 24-1, Поля кода ошибки

На сегодняшний день определены такие коды подсистемы.

Код подсистемы

Значение

Код подсистемы

Значение

FACILITY_NULL

0

FACILITY_CONTROL

10

FACILITY_RPC

1

FACILITY_CERT

11

FACILITY_DISPATCH

2

FACILITY_INTERNET

12

FACILITY_STORAGE

3

FACILITY_MEDIASERVER

13

FACILITY_ITF

4

FACILITY_MSMQ

11

FACILITY_WIN32

7

FACILITY_SETUPAPI

15

FACILITY_WINDOWS

8

FACILITY_SCARD

16

FACILITY_SECURITY

9

FACILITY_COMPLUS

17

Разберем на части, например, код исключения EXCEPTION_ACCESS_VIOLATlON. Если Вы посмотрите его значение в файле WinBase.h, то увидите, что оно равно 0xC0000005:

С 0 0 0 0 0 0 5 (в шестнадцатеричном виде) 1100 0000 0000 0000 0000 0000 0000 0101 (в двоичном виде)

Биты 30 и 31 установлены в 1, указывая, что нарушение доступа является ошиб кой (поток не может продолжить выполнение) Бит 29 равен 0, а это значит, что дан ный код определен Microsoft. Бит 28 равен 0, так как зарезервирован на будущее. Биты 16-27 равны 0, сообщая код подсистемы FACILITY_NULL (нарушение доступа может произойти в любой подсистеме операционной системы, а нс в какой-то одной). Биты 0-15 дают значение 5, которое означает лишь то, что Microsoft присвоила исключе нию, связанному с нарушением доступа, код 5.




Начало  Назад  Вперед