В том и проблема что читал. #GP прерывание защиты. И оно помимо переключения задачи вызывается по другим ошибкам. Теперь вопрос как узнать что оно произошло из-зи переключения задачи, ведь там нет кода ошибки.?
abcd008 Смотреть, где произошло, и разбираться. Если оно должно происходить "по штату", то можно, конечно, зашить адрес, где оно происходит, сравнивать в обработчике исключения, и если адрес именно этот самый, предпринимать необходимые действия, ну а если в другом месте, тогда уже обрабатывать как настоящую ошибку.
abcd008 у #GP есть код ошибки - селектор дескриптора, использование которого вызвало ошибку, его вытянуть из стека и смотреть какой тип у дескриптора. если TSS значит ошибка общей защиты по переключению задачи, наверно так.
на счет селектора ты прав, стоит проверить. а в x64 он 64 битный или как раньше 32. скинте формат если есть.
abcd008 селектор вообще-то 16-бит, если имелся ввиду дескриптор то в x64 он 64 битный. код ошибки 32-битный или 64 в х64, формат можно глянуть в интел мануалах, том 3-А раздел 5-13.