Поделиться через


Средство проверки приложений — коды остановки — основы

Следующие коды остановки содержатся в наборе базовых тестов.

Сведения об остановке исключений

Попытайтесь выполнить код в неисполнимой памяти (первый шанс).

Вероятное причину

Эта остановка создается, если приложение пытается запустить код из адреса, отличного от исполняемого или свободного. Для отладки этой остановки: $ u parameter2 — чтобы отменить удаление кода виновника $ exr parameter3 — для отображения сведений об исключении; $cxr parameter4, за которым следует kb , чтобы отобразить сведения о контексте исключения и трассировку стека за время возникновения исключения.

Сведения, отображаемые средство проверки приложений
  • Доступ к параметру 1-Address  .
  • Параметр 2-Code  , выполняющий недопустимый доступ.
  • Запись 3-исключения  параметров . Используйте exr для отображения.
  • Запись 4-Контекста   параметра. Используйте CXR для отображения.

Дополнительная информация
  • Тестовый уровень: исключения
  • Stop ID: FIRST_CHANCE_ACCESS_VIOLATION_CODE
  • Остановить код: 650NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Обработка сведений об остановке

Недопустимое исключение дескриптора для текущей трассировки стека.

Вероятное причину

Эта остановка создается, если функция в верхней части стека передает недопустимый дескриптор системным подпрограммам. Обычно простая команда kb показывает, что является значением переданного дескриптора (должно быть одним из параметров , как правило, первым). Если значение равно NULL, то это явно неправильно. Если значение выглядит нормально, необходимо использовать расширение отладчика !htrace, чтобы получить журнал операций, относящихся к этому значению дескриптора. В большинстве случаев значение дескриптора используется после закрытия.

Сведения, отображаемые средство проверки приложений
  • Код исключения 1 . 
  • Запись 2-исключения  параметров . Используйте exr для отображения.
  • Запись 3-Контекста   параметра. Используйте CXR для отображения.
  • Параметр 4-Not   used.

Дополнительная информация
  • Тестовый слой: дескриптор
  • Stop ID: INVALID_HANDLE
  • Остановить код: 300NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Недопустимый индекс TLS, используемый для текущей трассировки стека.

Вероятное причину

Эта остановка создается, если функция в верхней части стека передала недопустимый индекс TLS в системные подпрограммы TLS. Обычно простая команда kb показывает, что не так. Типичная ошибка заключается в том, чтобы предположить определенное значение для индекса TLS вместо вызова TlsAlloc. Это может произойти, думая, что всегда получается значение N, поэтому нет необходимости вызывать TlsAlloc или чаще из-за неинициализированной переменной.

Сведения, отображаемые средство проверки приложений
  • Недопустимый  индекс TLS 1. 
  • Параметр 2-Ожидаемый   нижний элемент индекса.
  • Параметр 3-Not   used.
  • Параметр 4-Not   used.

Дополнительная информация
  • Тестовый слой: дескриптор
  • Stop ID: INVALID_TLS_VALUE
  • Остановить код: 300NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Недопустимые параметры вызова WaitForMultipleObjects.

Вероятное причину

Эта остановка создается, если функция в верхней части стека под названием WaitForMultipleObjects с значением NULL в качестве адреса массива дескрипторов, ожидающих или с нулевым числом дескрипторов. Простая команда kb покажет функцию, вызываемую этим API неправильно.

Сведения, отображаемые средство проверки приложений
  • Параметр 1-Адрес   объекта обрабатывает вектор.
  • Параметр 2-Число   дескрипторов.
  • Параметр 3-Not   used.
  • Параметр 4-Not   used.

Дополнительная информация
  • Тестовый слой: дескриптор
  • Stop ID: INCORRECT_WAIT_CALL
  • Остановить код: 300NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Дескриптор NULL, переданный в качестве параметра. Необходимо использовать допустимый дескриптор.

Вероятное причину

Эта остановка создается, если функция в верхней части стека передала дескриптор NULL системным подпрограммам.

Сведения, отображаемые средство проверки приложений
  • Параметр 1-Not   used.
  • Параметр 2-Not   used.
  • Параметр 3-Not   used.
  • Параметр 4-Not   used.

Дополнительная информация
  • Тестовый слой: дескриптор
  • Stop ID: NULL_HANDLE
  • Остановить код: 300NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Ожидание дескриптора потока в DllMain.

Вероятное причину

Эта остановка создается, если текущий поток в настоящее время выполняет код внутри функции DllMain одного из библиотек DLL, загруженных в текущем процессе, и он вызывает WaitForSingleObject или WaitForMultipleObjects, чтобы ждать дескриптора потока в том же процессе. Это, скорее всего, приведет к взаимоблокировке, так как дескриптор потока не будет сигнализировать, если только второй поток не завершается. Когда второй поток вызовет ExitThread, он попытается получить блокировку загрузчика DLL, а затем вызвать DllMain (DLL_THREAD_DETACH) для всех БИБЛИОТЕК DLL в текущем процессе. Но блокировка загрузчика принадлежит первому потоку (тому, который ожидается в дескрипторе потока), поэтому два потока будут взаимоблокировкой.

Сведения, отображаемые средство проверки приложений
  • Дескриптор 1-Thread  .
  • Параметр 2-Not   used.
  • Параметр 3-Not   used.
  • Параметр 4-Not   used.

Дополнительная информация
  • Тестовый слой: дескриптор
  • Stop ID: WAIT_IN_DLLMAIN
  • Остановить код: 300NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Неправильный тип объекта для дескриптора.

Вероятное причину

Эта остановка создается, если текущий поток вызывает API с дескриптором к объекту с неправильным типом объекта. Например, вызов SetEvent с дескриптором семафора в качестве параметра создаст эту остановку. Для отладки этой остановки: $ kb — для отображения текущей трассировки стека. Виновник, вероятно, является библиотекой DLL, которая вызывается в verifier.dll; $ du parameter2 — для отображения фактического типа дескриптора. Значение дескриптора — parameter1. В приведенном выше примере будет отображаться семафор. $ du parameter3 — для отображения типа объекта, ожидаемого API. В приведенном выше примере это имя будет: Событие. $ !htrace parameter1 может оказаться полезным, так как он будет отображать трассировку стека для последних операций открытия или закрытия этого дескриптора.

Сведения, отображаемые средство проверки приложений
  • Значение 1-Handle  .
  • Имя типа 2-объекта  . Использование du для отображения
  • Имя типа объекта 3-Ожидаемый   параметр. Использование du для отображения
  • Параметр 4-Not   used.

Дополнительная информация
  • Тестовый слой: дескриптор
  • Stop ID: INCORRECT_OBJECT_TYPE
  • Остановить код: 300NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Сведения об остановке кучи

Неизвестную погрешность.

Вероятное причину

Это сообщение может произойти, если обнаруженная ошибка не может быть классифицирована каким-либо другим способом. Сейчас не используется.

Сведения, отображаемые средство проверки приложений
  • Параметр 1-Not   used
  • Параметр 2-Not   used
  • Параметр 3-Not   used
  • Параметр 4-Not   used

Дополнительная информация
  • Тестовый слой: кучи
  • Код остановки: UNKNOWN_ERROR
  • Остановка кода: 0NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Исключение нарушения доступа.

Вероятное причину

Это наиболее распространенная остановка средства проверки приложений. Обычно это вызвано ошибкой переполнения буфера. Средство проверки кучи помещает недоступную страницу в конце выделения кучи и переполнение буфера приведет к исключению, коснувшись этой страницы. Чтобы отладить эту остановку, определите адрес доступа, который вызвал исключение, а затем используйте следующую команду отладчика: !heap -p -a -a ACCESS_ADDRESS Эта команда предоставит сведения о характере ошибки и о том, какой блок кучи перезапущен. Он также даст трассировку стека для выделения блоков. Существует несколько других причин для этой остановки. Например, доступ к блоку кучи после освобождения. Та же команда отладчика будет полезна для этого случая.

Сведения, отображаемые средство проверки приложений
  • Недопустимый адрес параметра 1 ,  вызывающий исключение
  • Параметр 2-Код  , выполняющий недопустимый доступ
  • Запись 3-исключения  параметров 
  • Запись 4-Контекста   параметра

Дополнительная информация
  • Тестовый слой: кучи
  • Stop ID: ACCESS_VIOLATION
  • Остановка кода: 0NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Многопоточный доступ в куче, созданной с помощью флага HEAP_NO_SERIALIZE.

Вероятное причину

Куча, созданная с помощью флага HEAP_NO_SERIALIZE, не должна быть получена одновременно из двух потоков. Если такая ситуация обнаружена, вы получите это сообщение. Типичный способ того, как эта ситуация ползут в программу, заключается в связывании с однопоточной версией среды выполнения C. Visual C++ может статически связать такую библиотеку при использовании соответствующих флагов. Затем люди забывают об этом подробно и используют несколько потоков. Ошибку очень трудно отлаживать в реальной жизни, так как она будет отображаться как таинственные повреждения данных.

Сведения, отображаемые средство проверки приложений
  • Параметр 1-Куча  , в которой происходит операция.
  • Параметр 2-Thread   ID для текущего владельца кучи критически важный раздел.
  • Параметр 3-Thread   ID текущего потока, пытающийся ввести кучу.
  • Параметр 4-Not   used

Дополнительная информация
  • Тестовый слой: кучи
  • Stop ID: UNSYNCHRONIZED_ACCESS
  • Остановка кода: 0NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Запрос крайнего размера.

Вероятное причину

Это сообщение будет создано, если в операции HeapAlloc() или HeapReAlloc() размер блока превышает любое разумное значение. Обычно это значение 0x80000000 на 32-разрядных платформах и значительно больше на 64-разрядных платформах.

Сведения, отображаемые средство проверки приложений
  • Параметр 1-Куча  , в которой происходит операция.
  • Запрошенный параметр 2-размер  
  • Параметр 3-Not   used
  • Параметр 4-Not   used

Дополнительная информация
  • Тестовый слой: кучи
  • Stop ID: EXTREME_SIZE_REQUEST
  • Остановка кода: 0NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Дескриптор кучи с неправильной подписью.

Вероятное причину

Структуры кучи помечены волшебным значением. Если дескриптор кучи, используемый в вызове интерфейса кучи, не имеет этого шаблона, то будет создана эта остановка. Эта ошибка может произойти, если в какой-то мере внутренняя структура кучы повреждена (случайное повреждение) или просто нефиксное значение используется в качестве дескриптора кучи. Чтобы получить список допустимых значений дескриптора кучи, используйте следующие команды отладчика: !heap -p Обратите внимание, что если просто переключить допустимый дескриптор кучи с другой допустимой в операции кучи, вы не получите эту остановку (дескриптор выглядит допустимым после всех). Однако средство проверки кучи обнаруживает эту ситуацию и сообщает об этом с помощью SWITCHED_HEAP_HANDLE остановки.

Сведения, отображаемые средство проверки приложений
  • Дескриптор 1-Кучи  , используемый в вызове интерфейса кучи
  • Параметр 2-Not   used
  • Параметр 3-Not   used
  • Параметр 4-Not   used

Дополнительная информация
  • Тестовый слой: кучи
  • Stop ID: BAD_HEAP_HANDLE
  • Остановка кода: 0NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Поврежденный указатель кучи или использование неправильной кучи.

Вероятное причину

Обычно это происходит, если блок выделяется в одной куче и освобождается в другой. Используйте команду !heap -p, чтобы получить список всех допустимых значений дескриптора кучи. Наиболее распространенным примером является выделение msvcrt с помощью malloc() в паре с размещением сделки kernel32 с помощью HeapFree().

Сведения, отображаемые средство проверки приложений
  • Дескриптор 1-Кучи  , используемый в вызове.
  • Блок 2-Кучи 2 ,  участвующий в операции.
  • Параметр 3-Размер   блока кучи.
  • Параметр 4-Куча  , где блок был первоначально выделен.

Дополнительная информация
  • Тестовый слой: кучи
  • Stop ID: SWITCHED_HEAP_HANDLE
  • Остановка кода: 0NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Кучи блок уже освобожден.

Вероятное причину

Эта ситуация происходит, если блок освобождается дважды. Освобожденные блоки помечаются специальным образом и хранятся в течение некоторого времени в отложенной бесплатной очереди. Если программа ошибки пытается освободить блок снова, это будет поймано, если блок не был удален из отложенной бесплатной очереди и ее памяти, используемой повторно для других выделений. Глубина свободной очереди задержки находится в порядке тысяч блоков, поэтому есть хорошие шансы, что большинство двойных освобождений будут пойманы.

Сведения, отображаемые средство проверки приложений
  • Дескриптор 1-Кучи   для кучи, принадлежащей блоку.
  • Параметр 2-Кучи   снова освобождается.
  • Параметр 3-Размер   блока кучи.
  • Параметр 4-Not   used

Дополнительная информация
  • Тестовый слой: кучи
  • Stop ID: DOUBLE_FREE
  • Остановка кода: 0NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Поврежденный блок кучы.

Вероятное причину

Это универсальная ошибка, выданная, если повреждение в блоке кучи не может быть помещено в более конкретную категорию.

Сведения, отображаемые средство проверки приложений
  • Дескриптор 1-Кучи  , используемый в вызове.
  • Блок 2-Кучи 2 ,  участвующий в операции.
  • Параметр 3-Размер   блока кучи.
  • Параметр 4-зарезервированный  

Дополнительная информация
  • Тестовый слой: кучи
  • Stop ID: CORRUPTED_HEAP_BLOCK
  • Остановка кода: 0NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Попытка уничтожить кучу процесса.

Вероятное причину

Это ошибка, чтобы попытаться уничтожить кучу процесса по умолчанию (тот, который возвращается интерфейсом GetProcessHeap().

Сведения, отображаемые средство проверки приложений
  • Дескриптор 1-Кучи  , используемый с HeapDesk.
  • Параметр 2-Not   used
  • Параметр 3-Not   used
  • Параметр 4-Not   used

Дополнительная информация
  • Тестовый слой: кучи
  • Stop ID: DESTROY_PROCESS_HEAP
  • Остановка кода: 0NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Неожиданное исключение, возникающее при выполнении кода управления кучей.

Вероятное причину

Эта остановка создается, если при выполнении кода диспетчера кучи нарушение доступа возникает в нелегитимных ситуациях. Существует очень мало ситуаций, когда это нормально, например при вызове HeapValidate() или HeapSize(). Сведения о записи исключений (третий параметр) можно использовать для поиска точного контекста исключения. Для этого используйте следующие команды отладчика: $ .exr STOP-PARAMETER-2 $ Cxr STOP-PARAMETER-3 Обычно это может произойти, если в внутренних структурах кучи возникает случайное повреждение.

Сведения, отображаемые средство проверки приложений
  • Параметр 1-Куча  , участвующий в операции.
  • Запись 2-исключения  параметров .
  • Запись 3-Контекста   параметра.
  • Код исключения 4-го   параметра (C0000005 - нарушение доступа)

Дополнительная информация
  • Тестовый слой: кучи
  • Stop ID: UNEXPECTED_EXCEPTION
  • Остановка кода: 0NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Исключение, возникающее при проверке заголовка блока кучы.

Вероятное причину

Эта ситуация происходит, если мы действительно не можем определить какой-либо конкретный тип повреждения для блока. Скорее всего, эта остановка произойдет, когда адрес блока кучи, переданный в кучу свободных точек в область памяти без доступа (поврежденный указатель, неинициализированный указатель и т. д.).

Сведения, отображаемые средство проверки приложений
  • Дескриптор 1-Кучи   для кучи, принадлежащей блоку.
  • Блок 2-кучи  2 , поврежденный.
  • Параметр 3-Размер   блока или ноль, если невозможно определить размер.
  • Параметр 4-Not   used.

Дополнительная информация
  • Тестовый слой: кучи
  • Stop ID: CORRUPTED_HEAP_BLOCK_EXCEPTION_RAISED_FOR_HEADER
  • Остановка кода: 0NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Исключение, возникающее при проверке блока кучи.

Вероятное причину

Эта ситуация происходит, если мы действительно не можем определить какой-либо конкретный тип повреждения для блока. Например, вы получите это, если во время операции с кучей вы передаете адрес, указывающий на недоступную область памяти. Это также может произойти для двойных бесплатных ситуаций, если мы не находим блоки полной кучи страницы, и мы пробуем его как легкий блок кучи страницы.

Сведения, отображаемые средство проверки приложений
  • Дескриптор 1-Кучи  , используемый в вызове.
  • Блок 2-Кучи 2 ,  участвующий в операции.
  • Параметр 3-Размер   блока кучи.
  • Параметр 4-Зарезервированный  .

Дополнительная информация
  • Тестовый слой: кучи
  • Stop ID: CORRUPTED_HEAP_BLOCK_EXCEPTION_RAISED_FOR_PROBING
  • Остановка кода: 0NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Кучи блок поврежден после освобождения.

Вероятное причину

Эта ситуация возникает, если блок памяти записывается после освобождения.

Сведения, отображаемые средство проверки приложений
  • Дескриптор 1-Кучи   для кучи, принадлежащей блоку.
  • Блок 2-кучи  2 , поврежденный.
  • Параметр 3-Размер   блока или ноль, если невозможно определить размер.
  • Параметр 4-Not   used.

Дополнительная информация
  • Тестовый слой: кучи
  • Stop ID: CORRUPTED_HEAP_BLOCK_HEADER
  • Остановка кода: 0NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Поврежденный шаблон infix для свободного блока кучи.

Вероятное причину

Освобожденные блоки иногда помечены как недоступные, и программа, касающаяся их, будет нарушать (другая остановка проверки). В других случаях (светлая куча страницы) блок помечается волшебным шаблоном и будет храниться в течение некоторого времени. В конечном итоге в FIFO моде блоки получают действительно освобождены. На данный момент шаблон infix проверка, и если он был изменен, вы получите этот разрыв. Стек в момент останова не имеет значения. Необходимо выяснить природу блока и кода проверить код, который может быть неправильным.

Сведения, отображаемые средство проверки приложений
  • Дескриптор 1-Кучи   для кучи, принадлежащей блоку.
  • Параметр 2-Кучи   освобождается.
  • Параметр 3-Размер   блока кучи.
  • Параметр 4-Зарезервированный  .

Дополнительная информация
  • Тестовый слой: кучи
  • Stop ID: CORRUPTED_FREED_HEAP_BLOCK
  • Остановка кода: 0NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Поврежденный шаблон суффикса для блока кучи.

Вероятное причину

Чаще всего это происходит для ошибок переполнения буфера. Иногда средство проверки приложений помещает недоступные страницы в конце выделения и переполнения буфера приведет к нарушению доступа, а иногда блок кучи следует волшебным шаблоном. Если этот шаблон изменяется при освобождении блока, вы получите этот разрыв. Эти разрывы могут быть довольно трудными для отладки, так как у вас нет фактического момента, когда произошла коррупция. У вас просто есть доступ к свободному моменту (остановка произошла здесь) и трассировка стека выделения (!куча -p -HEAP_ADDRESS)

Сведения, отображаемые средство проверки приложений
  • Дескриптор 1-Кучи  , используемый в вызове.
  • Блок 2-Кучи 2 ,  участвующий в операции.
  • Параметр 3-Размер   блока кучи.
  • Параметр 4-Зарезервированный  .

Дополнительная информация
  • Тестовый слой: кучи
  • Stop ID: CORRUPTED_HEAP_BLOCK_SUFFIX
  • Остановка кода: 0NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Поврежденная метка запуска блока кучи.

Вероятное причину

Это происходит для подзапуска буфера.

Сведения, отображаемые средство проверки приложений
  • Дескриптор 1-Кучи  , используемый в вызове.
  • Блок 2-Кучи 2 ,  участвующий в операции.
  • Параметр 3-Размер   блока кучи.
  • Значение метки 4-поврежденного   параметра.

Дополнительная информация
  • Тестовый слой: кучи
  • Stop ID: CORRUPTED_HEAP_BLOCK_START_STAMP
  • Остановка кода: 0NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Поврежденная метка конца для блока кучи.

Вероятное причину

Это происходит для подзапуска буфера.

Сведения, отображаемые средство проверки приложений
  • Дескриптор 1-Кучи  , используемый в вызове.
  • Блок 2-Кучи 2 ,  участвующий в операции.
  • Параметр 3-Размер   блока кучи.
  • Значение метки 4-поврежденного   параметра.

Дополнительная информация
  • Тестовый слой: кучи
  • Stop ID: CORRUPTED_HEAP_BLOCK_END_STAMP
  • Остановка кода: 0NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Поврежденный шаблон префикса для блока кучи.

Вероятное причину

Это происходит для подзапуска буфера.

Сведения, отображаемые средство проверки приложений
  • Дескриптор 1-Кучи  , используемый в вызове.
  • Блок 2-Кучи 2 ,  участвующий в операции.
  • Параметр 3-Размер   блока кучи.
  • Параметр 4-Зарезервированный  .

Дополнительная информация
  • Тестовый слой: кучи
  • Stop ID: CORRUPTED_HEAP_BLOCK_PREFIX
  • Остановка кода: 0NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Первое нарушение доступа для текущей трассировки стека.

Вероятное причину

Это наиболее распространенная остановка средства проверки приложений. Обычно это вызвано ошибкой переполнения буфера. Средство проверки кучи помещает недоступную страницу в конце выделения кучи и переполнение буфера приведет к исключению, коснувшись этой страницы. Чтобы отладить эту остановку, определите адрес доступа, который вызвал исключение, а затем используйте следующую команду отладчика: !heap -p -a -a ACCESS_ADDRESS Эта команда предоставит сведения о характере ошибки и о том, какой блок кучи перезапущен. Он также даст трассировку стека для выделения блоков. Существует несколько других причин для этой остановки. Например, доступ к блоку кучи после освобождения. Та же команда отладчика будет полезна для этого случая.

Сведения, отображаемые средство проверки приложений
  • Недопустимый адрес параметра 1  , вызывающий исключение.
  • Параметр 2-Код  , выполняющий недопустимый доступ.
  • Запись 3-исключения  параметров .
  • Запись 4-Контекста   параметра.

Дополнительная информация
  • Тестовый слой: кучи
  • Stop ID: FIRST_CHANCE_ACCESS_VIOLATION
  • Остановка кода: 0NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Недопустимое число списков кучи процессов.

Вероятное причину

Это сообщение может произойти, если при вызове GetProcessHeaps диспетчер кучи страницы обнаруживает некоторые внутренние несоответствия. Это может быть вызвано некоторым случайным повреждением в пространстве процесса.

Сведения, отображаемые средство проверки приложений
  • Параметр 1-Фактическая   куча.
  • Число кучи 2-страницы  .
  • Параметр 3-Not   used
  • Параметр 4-Not   used

Дополнительная информация
  • Тестовый слой: кучи
  • Stop ID: CORRUPTED_HEAP_LIST
  • Остановка кода: 0NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Сведения об остановке утечки

Утечка выделения кучи.

Вероятное причину

Эта остановка создается, если владелец библиотеки dll выделения был динамически выгружен во время владения ресурсами.

Сведения, отображаемые средство проверки приложений
  • Параметр 1-Адрес   утечки выделения. Запустите !heap -p-адрес<>, чтобы получить дополнительные сведения о выделении.
  • Параметр 2-Address   для трассировки стека выделения. Запустите адрес> dps <для просмотра стека выделения.
  • Параметр 3-Адрес   имени библиотеки DLL владельца. Запустите du <address> , чтобы прочитать имя библиотеки DLL.
  • Параметр 4-Base   для библиотеки dll владельца. Запустите reload <dll_name> = <адрес> для перезагрузки библиотеки DLL владельца. Используйте lm, чтобы получить дополнительные сведения о загруженных и выгрузочных модулях.

Дополнительная информация
  • Тестовый слой: утечка
  • Stop ID: ALLOCATION
  • Остановить код: 900NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

ДЕСКРИПтор был утечкой.

Вероятное причину

Эта остановка создается, если владелец библиотеки DLL дескриптора был динамически выгружен во время владения ресурсами. Чтобы выполнить отладку этой остановки, выполните команду !htrace parameter1, чтобы получить дополнительные сведения об дескрипторе.

Сведения, отображаемые средство проверки приложений
  • Параметр 1-Значение   утечки дескриптора. Запустите дескриптор !htrace <, чтобы получить дополнительные сведения об дескрипторе> , если включена трассировка дескриптора.
  • Параметр 2-Address   для трассировки стека выделения. Запустите адрес> dps <для просмотра стека выделения.
  • Параметр 3-Адрес   имени библиотеки DLL владельца. Запустите du <address> , чтобы прочитать имя библиотеки DLL.
  • Параметр 4-Base   для библиотеки dll владельца. Запустите reload <dll_name> = <адрес> для перезагрузки библиотеки DLL владельца. Используйте lm, чтобы получить дополнительные сведения о загруженных и выгрузочных модулях.

Дополнительная информация
  • Тестовый слой: утечка
  • Stop ID: HANDLE
  • Остановить код: 900NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

HKEY был утечкой.

Вероятное причину

Эта остановка создается, если владелец библиотеки dll раздела реестра динамически выгружается во время владения ресурсами.

Сведения, отображаемые средство проверки приложений
  • Параметр 1-Значение   утечки HKEY.
  • Параметр 2-Address   для трассировки стека выделения. Запустите адрес> dps <для просмотра стека выделения.
  • Параметр 3-Адрес   имени библиотеки DLL владельца. Запустите du <address> , чтобы прочитать имя библиотеки DLL.
  • Параметр 4-Base   для библиотеки dll владельца. Запустите reload <dll_name> = <адрес> для перезагрузки библиотеки DLL владельца. Используйте lm, чтобы получить дополнительные сведения о загруженных и выгрузочных модулях.

Дополнительная информация
  • Тестовый слой: утечка
  • Остановка идентификатора: REGISTRY
  • Остановить код: 900NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Произошла утечка виртуального резервирования.

Вероятное причину

Эта остановка создается, если владелец библиотеки DLL виртуального резервирования был динамически выгружен во время владения ресурсами.

Сведения, отображаемые средство проверки приложений
  • Адрес резервирования с утечкой 1  .
  • Параметр 2-Address   для трассировки стека выделения. Запустите адрес> dps <для просмотра стека выделения.
  • Параметр 3-Адрес   имени библиотеки DLL владельца. Запустите du <address> , чтобы прочитать имя библиотеки DLL.
  • Параметр 4-Base   для библиотеки dll владельца. Запустите reload <dll_name> = <адрес> для перезагрузки библиотеки DLL владельца. Используйте lm, чтобы получить дополнительные сведения о загруженных и выгрузочных модулях.

Дополнительная информация
  • Тестовый слой: утечка
  • Stop ID: VIRTUAL_RESERVATION
  • Остановить код: 900NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

BSTR был утечкой.

Вероятное причину

Эта остановка создается, если владелец библиотеки DLL sysString был динамически выгружен во время владения ресурсами.

Сведения, отображаемые средство проверки приложений
  • Параметр 1-Адрес   утечки BSTR. Запустите !heap -p-адрес<>, чтобы получить дополнительные сведения о выделении.
  • Параметр 2-Address   для трассировки стека выделения. Запустите адрес> dps <для просмотра стека выделения.
  • Параметр 3-Адрес   имени библиотеки DLL владельца. Запустите du <address> , чтобы прочитать имя библиотеки DLL.
  • Параметр 4-Base   для библиотеки dll владельца. Запустите reload <dll_name> = <адрес> для перезагрузки библиотеки DLL владельца. Используйте lm, чтобы получить дополнительные сведения о загруженных и выгрузочных модулях.

Дополнительная информация
  • Тестовый слой: утечка
  • Stop ID: SYSSTRING
  • Остановить код: 900NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Уведомление о power не было отменено.

Вероятное причину

Эта остановка создается, если библиотека DLL зарегистрирована для уведомления о power и была динамически выгружена без отмены регистрации.

Сведения, отображаемые средство проверки приложений
  • Параметр 1-Адрес   регистрации уведомлений питания.
  • Параметр 2-Address   для трассировки стека регистрации. Запустите адрес> dps <для просмотра стека выделения.
  • Параметр 3-Адрес   имени библиотеки DLL владельца. Запустите du <address> , чтобы прочитать имя библиотеки DLL.
  • Параметр 4-Base   для библиотеки dll владельца. Запустите reload <dll_name> = <адрес> для перезагрузки библиотеки DLL владельца. Используйте lm, чтобы получить дополнительные сведения о загруженных и выгрузочных модулях.

Дополнительная информация
  • Тестовый слой: утечка
  • Stop ID: POWER_NOTIFICATION
  • Остановить код: 900NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Сведения об остановке блокировки

Поток не может иметь критически важный раздел.

Вероятное причину

Эта остановка создается, если поток (идентификатор потока имеет параметр1) завершается, приостанавливается или находится в состоянии (рабочий поток завершен рабочий элемент), в котором он не может содержать критически важный раздел. Текущий поток является виновным. Чтобы отладить эту остановку, используйте следующие команды отладчика: $ kb — для получения текущей трассировки стека. Если текущий поток является владельцем критического раздела, вероятно, вызывает ExitThread. Текущий поток должен освободить критически важный раздел перед выходом. Если текущий поток вызывает TerminateThread или SuspendThread, он не должен делать это для потока, держащего критически важный раздел. $ !cs -s parameter2 — сведения о дампах этого критического раздела. $ ln parameter2 — отображение символов вблизи адреса критического раздела. Это должно помочь определить утечку критических разделов. Параметр $ dps4 — для дампа трассировки стека для инициализации этого критического раздела.

Сведения, отображаемые средство проверки приложений
  • Параметр 1-Thread   ID.
  • Адрес раздела 2-критического   параметра.
  • Адрес сведений об отладке раздела 3-критического   параметра.
  • Трассировка стека стека инициализации раздела 4-критического   параметра.

Дополнительная информация
  • Тестовый уровень: блокировки
  • Stop ID: EXIT_THREAD_OWNS_LOCK
  • Остановить код: 200NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Выгрузка DLL, содержащая активный критический раздел.

Вероятное причину

Эта остановка создается, если библиотека DLL имеет глобальную переменную, содержащую критически важный раздел, и библиотека DLL выгрузится, но критически важный раздел не был удален. Чтобы отладить эту остановку, используйте следующие команды отладчика: $ du parameter3 — для дампа имени библиотеки DLL-файла. $ reload dllname или .reload dllname = parameter4 — для перезагрузки символов для этой библиотеки DLL. $ !cs -s parameter1 — сведения о дампах этого критического раздела. $ ln parameter1 — для отображения символов рядом с адресом критического раздела. Это должно помочь определить утечку критических разделов. $ dps parameter2 — для дампа трассировки стека для инициализации этого критического раздела.

Сведения, отображаемые средство проверки приложений
  • Адрес раздела "Параметр 1 -  Критический".
  • Трассировка стека стека инициализации раздела 2.2  .
  • Адрес имени 3-DLL   параметра.
  • Базовый адрес 4-DLL  .

Дополнительная информация
  • Тестовый уровень: блокировки
  • Stop ID: LOCK_IN_UNLOADED_DLL
  • Остановить код: 200NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Освобождение блока кучи, содержащего активный критический раздел.

Вероятное причину

Эта остановка создается, если выделение кучи содержит критически важный раздел, выделение освобождается и критически важный раздел не был удален. Чтобы отладить эту остановку, используйте следующие команды отладчика: $ !cs -s parameter1 — сведения о дампах этого критического раздела. $ ln parameter1 — для отображения символов рядом с адресом критического раздела. Это должно помочь определить утечку критических разделов. $ dps parameter2 — для дампа трассировки стека для инициализации этого критического раздела. $ parameter3 и parameter4 могут помочь понять, где был выделен этот блок кучи (размер выделения, вероятно, значительный).

Сведения, отображаемые средство проверки приложений
  • Адрес раздела "Параметр 1 -  Критический".
  • Трассировка стека стека инициализации раздела 2.2  .
  • Адрес блока 3-Кучи  .
  • Размер блока 4-Кучи  .

Дополнительная информация
  • Тестовый уровень: блокировки
  • Stop ID: LOCK_IN_FREED_HEAP
  • Остановить код: 200NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Двойной инициализированный или поврежденный критический раздел.

Вероятное причину

Обычно эта остановка создается, если критически важный раздел инициализирован более одного раза. В этом случае параметр3 и параметр4 — это адреса трассировки стека для двух из этих инициализаций. В некоторых других случаях можно остановить эту остановку, если критически важный раздел или ее отладочная информационная структура повреждена. В этом втором случае возможно, что параметр3 и параметр4 являются недопустимыми и бесполезными. Для отладки этой остановки: $ !cs -s -d parameter2 — сведения об этом критическом разделе. $ ln parameter1 — для отображения символов рядом с адресом критического раздела. Это может помочь определить критически важный раздел, если это глобальная переменная. $ dps parameter3 и dps parameter4 — чтобы определить два пути кода для инициализации этого критического раздела.

Сведения, отображаемые средство проверки приложений
  • Адрес раздела "Параметр 1 -  Критический".
  • Параметр 2-Адрес   отладочной информационной структуры, найденной в активном списке.
  • Трассировка стека инициализации 3-First  .
  • Трассировка стека инициализации параметра 4-секунды  .

Дополнительная информация
  • Тестовый уровень: блокировки
  • Stop ID: LOCK_DOUBLE_INITIALIZE
  • Остановить код: 200NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Свободная память, содержащая активный критический раздел.

Вероятное причину

Эта остановка создается, если память, содержащая критически важный раздел, была освобождена, но критически важный раздел не был удален с помощью DeleteCriticalSection. Чтобы отладить эту остановку, используйте следующие команды отладчика: $ !cs -s -d parameter2 — сведения об этом критическом разделе. $ dps parameter3 — чтобы определить путь кода для инициализации этого критического раздела. В большинстве случаев средство проверки блокировки обнаруживает немедленно утечку критически важных разделов, содержащихся в выделении кучи, диапазон библиотек DLL, выделение виртуальной памяти или сопоставленный диапазон памяти MapViewOfFile и проблемы с различными остановками в этих случаях. Поэтому для этой остановки проверяющего средства осталось очень мало случаев. Блокировка должна находиться в диапазоне памяти, освобожденном кодом в режиме ядра или освобожденным перекрестным процессом API, такими как VirtualFreeEx. Как правило, эта остановка будет обнаружена, если предыдущая остановка (например, LOCK_IN_FREED_HEAP или LOCK_IN_UNLOADED_DLL) продолжалась путем нажатия "g" в консоли отладчика.

Сведения, отображаемые средство проверки приложений
  • Адрес раздела "Параметр 1 -  Критический".
  • Адрес сведений об отладке раздела 2 . 
  • Трассировка стека стека инициализации раздела 3.3  .
  • Параметр 4-Not   used.

Дополнительная информация
  • Тестовый уровень: блокировки
  • Stop ID: LOCK_IN_FREED_MEMORY
  • Остановить код: 200NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Поврежденный критический раздел.

Вероятное причину

Эта остановка создается, если поле DebugInfo критического раздела указывает на освобожденную память. Обычно другая допустимая структура DebugInfo находится в списке активных критически важных разделов. Без повреждения два указателя должны быть идентичными. Чтобы отладить эту остановку, используйте следующие команды отладчика: $ !cs -s -d parameter3 — сведения о дампах этого критического раздела на основе текущего содержимого отладочной информационной структуры, найденной в активном списке (эта структура редко повреждена, поэтому обычно эта информация является надежной). $ !cs -s parameter1 — сведения о дампах этого критического раздела на основе текущего содержимого критической структуры раздела (структура повреждена уже так иногда эта информация не является надежной). $ dps parameter4 — чтобы определить путь кода для инициализации этого критического раздела. Дампа критического раздела в параметре address1 и найдите шаблон повреждения. С хорошими символами для ntdll.dl можно использовать следующие команды: $ dt ntdll!_RTL_CRITICAL_SECTION LOCK_ADDRESS $ dt ntdll!_RTL_CRITICAL_SECTION_DEBUG DEBUG_ADDRESS

Сведения, отображаемые средство проверки приложений
  • Адрес раздела "Параметр 1 -  Критический".
  • Параметр 2 -  Недопустимый адрес сведений об отладке этого критического раздела.
  • Параметр 3-Адрес   сведений отладки, найденных в активном списке.
  • Трассировка стека стека инициализации параметра 4  .

Дополнительная информация
  • Тестовый уровень: блокировки
  • Stop ID: LOCK_CORRUPTED
  • Остановить код: 200NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Недопустимый поток владельца критического раздела.

Вероятное причину

Эта остановка создается, если идентификатор потока владельца недопустим в текущем контексте. Для отладки этой остановки: $ !cs -s parameter1 — сведения о дампах этого критического раздела. $ ln parameter1 — для отображения символов рядом с адресом критического раздела. Это поможет определить критически важный раздел.

Сведения, отображаемые средство проверки приложений
  • Адрес раздела "Параметр 1 -  Критический".
  • Поток 2-владения   параметром.
  • Параметр 3-Ожидаемый   поток владения.
  • Адрес сведений об отладке раздела 4-критического   параметра.

Дополнительная информация
  • Тестовый уровень: блокировки
  • Stop ID: LOCK_INVALID_OWNER
  • Остановить код: 200NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Недопустимое число рекурсий критических разделов.

Вероятное причину

Эта остановка создается, если поле счетчика рекурсии структуры критического раздела недопустимо в текущем контексте. Для отладки этой остановки: $ !cs -s parameter1 — сведения о дампах этого критического раздела. $ ln parameter1 — для отображения символов рядом с адресом критического раздела. Это поможет определить критически важный раздел.

Сведения, отображаемые средство проверки приложений
  • Адрес раздела "Параметр 1 -  Критический".
  • Число рекурсий параметра 2  .
  • Число рекурсий 3-ожидаемого   параметра.
  • Адрес сведений об отладке раздела 4-критического   параметра.

Дополнительная информация
  • Тестовый уровень: блокировки
  • Stop ID: LOCK_INVALID_RECURSION_COUNT
  • Остановить код: 200NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Удаление критического раздела с недопустимым числом блокировок.

Вероятное причину

Эта остановка создается, если критически важный раздел принадлежит потоку, если он удаляется или если критически важный раздел неинициализирован. Для отладки этой остановки: $ !cs -s parameter1 — сведения о дампах этого критического раздела. Если поток владения равен 0, критически важный раздел не инициализирован. $ ln parameter1 — для отображения символов рядом с адресом критического раздела. Это поможет определить критически важный раздел.

Сведения, отображаемые средство проверки приложений
  • Адрес раздела "Параметр 1 -  Критический".
  • Число блокировок 2.2  .
  • Число блокировок 3-ожидаемого   параметра.
  • Поток 4-владения   параметром.

Дополнительная информация
  • Тестовый уровень: блокировки
  • Stop ID: LOCK_INVALID_LOCK_COUNT
  • Остановить код: 200NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Критически важный раздел превышен или поврежден.

Вероятное причину

Эта остановка создается, если критически важный раздел освобождается больше раз, чем текущий поток получил его. Для отладки этой остановки: $ !cs -s parameter1 — сведения о дампах этого критического раздела. $ !cs -s -d parameter4 — сведения о дампах этого критического раздела. $ ln parameter1 — для отображения символов рядом с адресом критического раздела. Это поможет определить критически важный раздел.

Сведения, отображаемые средство проверки приложений
  • Адрес раздела "Параметр 1 -  Критический".
  • Число блокировок 2.2  .
  • Число блокировок 3-ожидаемого   параметра.
  • Адрес сведений об отладке раздела 4-критического   параметра.

Дополнительная информация
  • Тестовый уровень: блокировки
  • Stop ID: LOCK_OVER_RELEASED
  • Остановить код: 200NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Критический раздел не инициализирован.

Вероятное причину

Эта остановка создается, если критически важный раздел используется без инициализации или после удаления. Для отладки этой остановки: $ ln parameter1 — чтобы отобразить символы рядом с адресом критического раздела. Это поможет определить критически важный раздел.

Сведения, отображаемые средство проверки приложений
  • Адрес раздела "Параметр 1 -  Критический".
  • Адрес сведений об отладке раздела 2-критического   параметра.
  • Параметр 3-Not   used.
  • Параметр 4-Not   used.

Дополнительная информация
  • Тестовый уровень: блокировки
  • Stop ID: LOCK_NOT_INITIALIZED
  • Остановить код: 200NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Критический раздел уже инициализирован.

Вероятное причину

Эта остановка создается, если критически важный раздел повторно инициализирован текущим потоком. Для отладки этой остановки: $ !cs -s parameter1 или !cs -s -d parameter2 — сведения об этом критическом разделе. $ ln parameter1 — для отображения символов рядом с адресом критического раздела. Это может помочь определить критически важный раздел, если это глобальная переменная. $ dps parameter3 — чтобы определить путь кода для первой инициализации этого критического раздела. $ kb — для отображения текущей трассировки стека, которая повторно инициализирует этот критически важный раздел.

Сведения, отображаемые средство проверки приложений
  • Адрес раздела "Параметр 1 -  Критический".
  • Адрес сведений об отладке раздела 2-критического   параметра.
  • Трассировка стека инициализации 3-First  . Используйте dps для дампа, если значение NULL не равно NULL
  • Параметр 4-Not   used.

Дополнительная информация
  • Тестовый уровень: блокировки
  • Stop ID: LOCK_ALREADY_INITIALIZED
  • Остановить код: 200NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Освобождение виртуальной памяти, содержащей активный критический раздел.

Вероятное причину

Эта остановка создается, если текущий поток вызывает VirtualFree в блоке памяти, который содержит активный критически важный раздел. Приложение должно вызвать DeleteCriticalSection в этом критическом разделе, прежде чем освободить эту память. $ kb — для отображения текущей трассировки стека, которая вызывает VirtualFree. Вероятной причиной является библиотека DLL, которая вызывает VirtualFree. $ !cs -s parameter1 — сведения о дампах этого критического раздела. $ dps parameter2 — чтобы определить путь кода для инициализации этого критического раздела.

Сведения, отображаемые средство проверки приложений
  • Адрес раздела "Параметр 1 -  Критический".
  • Трассировка стека стека инициализации раздела 2.2  .
  • Адрес блока 3-памяти  3 .
  • Размер блока 4-памяти  .

Дополнительная информация
  • Тестовый уровень: блокировки
  • Stop ID: LOCK_IN_FREED_VMEM
  • Остановить код: 200NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Распакуйте область памяти, содержащую активный критический раздел.

Вероятное причину

Эта остановка создается, если текущий поток вызывает UnmapViewOfFile в блоке памяти, который содержит активный критический раздел. Приложение должно вызвать DeleteCriticalSection в этом критическом разделе, прежде чем при отмене сопоставления этой памяти. $ kb — для отображения текущей трассировки стека, которая вызывает UnmapViewOfFile. Вероятной причиной является библиотека DLL, которая вызывает UnmapViewOfFile. $ !cs -s parameter1 — сведения о дампах этого критического раздела. $ dps parameter2 — чтобы определить путь кода для инициализации этого критического раздела.

Сведения, отображаемые средство проверки приложений
  • Адрес раздела "Параметр 1 -  Критический".
  • Трассировка стека стека инициализации раздела 2.2  .
  • Адрес блока 3-памяти  3 .
  • Размер блока 4-памяти  .

Дополнительная информация
  • Тестовый уровень: блокировки
  • Stop ID: LOCK_IN_UNMAPPED_MEM
  • Остановить код: 200NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Текущий поток не имеет критически важных разделов.

Вероятное причину

Эта остановка создается, если текущий поток вызывает LeaveCriticalSection, но, в соответствии с внутренней книгой проверяющего, он не имеет никакого критического раздела. Если параметр2 равен нулю, вероятно, это ошибка в текущем потоке. Он либо пытается оставить критически важный раздел, который он не ввел, либо, возможно, вызывает LeaveCriticalSection больше раз, чем он называется EnterCriticalSection для одного и того же критического раздела. Если параметр2 не равен нулю (отрицательное целочисленное число), внутренние структуры данных проверяющего, вероятно, повреждены.

Сведения, отображаемые средство проверки приложений
  • Адрес раздела "Параметр 1 -  Критический".
  • Параметр 2-Число   критических разделов, принадлежащих текущему потоку.
  • Параметр 3-Not   used
  • Параметр 4-Not   used

Дополнительная информация
  • Тестовый уровень: блокировки
  • Stop ID: THREAD_NOT_LOCK_OWNER
  • Остановить код: 200NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Использование критического раздела, закрытого для другой библиотеки DLL.

Вероятное причину

Эта остановка создается, если текущий поток пытается использовать частную блокировку, которая находится внутри другой библиотеки DLL. Например, a.dll пытается ввести критически важный раздел, определенный внутри ntdll.dll. Частные блокировки нельзя использовать в библиотеках DLL.

Сведения, отображаемые средство проверки приложений
  • Адрес раздела "Параметр 1 -  Критический".
  • Параметр 2-Not   used.
  • Параметр 3-Not   used
  • Параметр 4-Not   used

Дополнительная информация
  • Тестовый уровень: блокировки
  • Stop ID: LOCK_PRIVATE
  • Остановить код: 200NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Сведения об остановке SRWLock

Блокировка SRW не инициализирована.

Вероятное причину

Эта остановка создается, если поток пытается использовать блокировку SRW (Param1), которая не инициализирована. $ kb — для получения текущей трассировки стека. Здесь используется блокировка SRW. Блокировка SRW должна быть инициализирована с помощью InitializeSRWLock, прежде чем ее можно будет использовать.

Сведения, отображаемые средство проверки приложений
  • Блокировка 1-SRW  1 
  • Параметр 2-Not   used
  • Параметр 3-Not   used
  • Параметр 4-Not   used

Дополнительная информация
  • Тестовый уровень: SRWLock
  • Stop ID: NOT_INITIALIZED
  • Остановить код: 250NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Блокировка SRW уже инициализирована.

Вероятное причину

Эта остановка создается при повторной инициализации блокировки SRW (Param1). Если блокировка SRW активно используется другими потоками, повторная инициализация блокировки приведет к непредсказуемому поведению приложения, включая зависания и сбои. Трассировка стека инициализации может показать получение, если блокировка SRW была статично инициализирована. $ kb — для получения текущей трассировки стека. Здесь блокировка SRW инициализируется повторно. $ dps Param3 — чтобы получить трассировку стека инициализации блокировки SRW. Эта трассировка стека может показать получение, если блокировка была статично инициализирована.

Сведения, отображаемые средство проверки приложений
  • Блокировка 1-SRW  1 
  • Параметр 2-ThreadId   потока, который инициализировал блокировку SRW.
  • Параметр 3-Адрес   трассировки стека инициализации. Используйте адрес> dps<, чтобы узнать, где была инициализирована блокировка SRW.
  • Параметр 4-Not   used

Дополнительная информация
  • Тестовый уровень: SRWLock
  • Stop ID: ALREADY_INITIALIZED
  • Остановить код: 250NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Несоответствие при приобретении и выпуске в блоке SRW.

Вероятное причину

Эта остановка создается, если блокировка SRW (Param1) освобождается с неправильным API выпуска. Если блокировка SRW была приобретена для общего доступа и освобождается с помощью API эксклюзивных выпусков или блокировки SRW была приобретена для эксклюзивного доступа и освобождается с помощью API общего выпуска. Это может привести к непредсказуемому поведению приложения, включая зависание и сбои. $ kb — для получения текущей трассировки стека. В этом случае блокировка SRW освобождается с помощью неправильного API. $ dps Param3 — чтобы получить трассировку стека блокировки SRW.

Сведения, отображаемые средство проверки приложений
  • Блокировка 1-SRW  1 
  • Параметр 2-ThreadId   потока, который приобрел блокировку SRW.
  • Параметр 3-Адрес   трассировки стека получения. Используйте адрес> dps<, чтобы узнать, где была приобретена блокировка SRW.
  • Параметр 4-Not   used

Дополнительная информация
  • Тестовый уровень: SRWLock
  • Stop ID: MISMATCHED_ACQUIRE_RELEASE
  • Остановить код: 250NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Блокировка SRW рекурсивно приобретается тем же потоком.

Вероятное причину

Эта остановка создается, если блокировка SRW (Param1) приобретается рекурсивно тем же потоком. Это приведет к взаимоблокировке, и поток будет блокироваться на неопределенный срок. Рекурсивное приобретение блокировки SRW в эксклюзивном режиме приведет к взаимоблокировке. Рекурсивное приобретение блокировки SRW в общем режиме приведет к взаимоблокировке, когда поток ожидает монопольного доступа. Рассмотрим приведенный ниже пример. Поток A получает блокировку SRW в общем режиме. Поток B пытается получить блокировку SRW в монопольном режиме и ожидает. Поток A пытается получить блокировку SRW в общем режиме рекурсивно. Это будет успешно до тех пор, пока нет эксклюзивного официанта (в данном случае B). Так как блокировки SRW не имеют нехватки записи, поток A ожидается за потоком B. Теперь thread B ожидает Thread A, который в свою очередь ожидает thread B, вызывая циклическое ожидание и, следовательно, взаимоблокировку. $ kb — для получения текущей трассировки стека. Это место, где блокировка SRW приобретается рекурсивно. $ dps Param2 — чтобы получить трассировку стека для первого приобретения.

Сведения, отображаемые средство проверки приложений
  • Блокировка 1-SRW  1 
  • Параметр 2-Адрес   первой трассировки стека получения. Используйте адрес> dps<, чтобы узнать, где была приобретена блокировка SRW.
  • Параметр 3-Not   used
  • Параметр 4-Not   used

Дополнительная информация
  • Тестовый уровень: SRWLock
  • Stop ID: RECURSIVE_ACQUIRE
  • Остановить код: 250NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Поток, который завершается или завершается, владеет блокировкой SRW.

Вероятное причину

Эта остановка создается, если поток (Param2), которому принадлежит блокировка SRW (Param1), завершается или завершается. Это приведет к потере блокировки SRW, и потоки, пытающиеся получить эту блокировку, будут блокироваться на неопределенный срок. $ kb — для получения текущей трассировки стека. В этом случае поток завершается или завершается. $ dps Param3 — чтобы получить трассировку стека блокировки SRW.

Сведения, отображаемые средство проверки приложений
  • Блокировка 1-SRW  1 
  • Параметр 2-ThreadId   потока, который завершается или завершается.
  • Параметр 3-Адрес   трассировки стека получения. Используйте адрес> dps<, чтобы узнать, где была приобретена блокировка SRW.
  • Параметр 4-Not   used

Дополнительная информация
  • Тестовый уровень: SRWLock
  • Stop ID: EXIT_THREAD_OWNS_LOCK
  • Остановить код: 250NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Освобожденная блокировка SRW не была получена этим потоком.

Вероятное причину

Эта остановка создается, если блокировка SRW (Param1) освобождается потоком (Param2), который не получил блокировку. Это представляет плохую практику программирования, которая трудно получить право и может привести к непредсказуемому поведению приложения. $ kb — для получения текущей трассировки стека. В этом случае поток освобождает блокировку SRW, которую она не приобрела. $ dps Param4 - чтобы получить блокировку SRW, получить трассировку стека.

Сведения, отображаемые средство проверки приложений
  • Блокировка 1-SRW  1 
  • Параметр 2-Current   ThreadId.
  • Параметр 3-ThreadId   потока, который приобрел блокировку SRW.
  • Параметр 4-Адрес   трассировки стека получения. Используйте адрес> dps<, чтобы узнать, где была приобретена блокировка SRW.

Дополнительная информация
  • Тестовый уровень: SRWLock
  • Stop ID: INVALID_OWNER
  • Остановить код: 250NAN
  • Серьезность : предупреждение.
  • Одноразовая ошибка: 
  • Отчет об ошибке: None
  • Вход в файл: yes
  • Создание обратного снимка: да

Освобожденная память содержит активную блокировку SRW.

Вероятное причину

Эта остановка создается, если освобожденный адрес памяти (Param1) содержит активную блокировку SRW, которая по-прежнему используется. Это может привести к непредсказуемому поведению приложения, включая сбои и зависания. $ kb — для получения текущей трассировки стека. Это место, где память освобождается, которая содержит активную блокировку SRW. $ dps Param4 - чтобы получить блокировку SRW, получить трассировку стека.

Сведения, отображаемые средство проверки приложений
  • Блокировка 1-SRW  1 
  • Параметр 2-Адрес   освобождаемой памяти.
  • Параметр 3-ThreadId   потока, который приобрел блокировку SRW.
  • Параметр 4-Адрес   трассировки стека получения. Используйте адрес> dps<, чтобы узнать, где была приобретена блокировка SRW.

Дополнительная информация
  • Тестовый уровень: SRWLock
  • Stop ID: IN_FREED_MEMORY
  • Остановить код: 250NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Библиотека DLL, выгружаемая, содержит активную блокировку SRW.

Вероятное причину

Эта остановка создается, если библиотека DLL, выгружаемая (Param2), содержит активную блокировку SRW (Param1), которая по-прежнему используется. Это может привести к непредсказуемому поведению приложения, включая сбои и зависания. $ kb — для получения текущей трассировки стека. Здесь выгрузится библиотека DLL, содержащая активную блокировку SRW. $ du Param2 — чтобы найти имя библиотеки DLL, которая выгружается. $ dps Param4 - чтобы получить блокировку SRW, получить трассировку стека.

Сведения, отображаемые средство проверки приложений
  • Блокировка 1-SRW  1 
  • Параметр 2-Адрес   имени выгружаемой библиотеки DLL. Используйте du <address> для просмотра имени.
  • Параметр 3-ThreadId   потока, который приобрел блокировку SRW.
  • Параметр 4-Адрес   трассировки стека получения. Используйте адрес> dps<, чтобы узнать, где была приобретена блокировка SRW.

Дополнительная информация
  • Тестовый уровень: SRWLock
  • Stop ID: IN_UNLOADED_DLL
  • Остановить код: 250NAN
  • Серьезность : предупреждение.
  • Одноразовая ошибка: 
  • Отчет об ошибке: None
  • Вход в файл: yes
  • Создание обратного снимка: да

Сведения об остановке памяти

Освобождение блока виртуальной памяти с недопустимым размером или начальным адресом.

Вероятное причину

Эта остановка создается, если средство проверки приложений обнаруживает выгрузку VirtualFree или DLL с недопустимым адресом начала или размером выделения памяти. В случае выгрузки библиотеки DLL это, вероятно, означает повреждение памяти в загруженном списке DLL. Чтобы отладить эту остановку, просмотрите текущую трассировку стека и адрес памяти и размер, который будет освобожден, и попробуйте определить, почему они недопустимы.

Сведения, отображаемые средство проверки приложений
  • Базовый адрес распределения 1  .
  • Размер региона 2-памяти  .
  • Параметр 3-Not   used.
  • Параметр 4-Not   used.

Дополнительная информация
  • Тестовый уровень: память
  • Stop ID: INVALID_FREEMEM
  • Остановить код: 600NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Неправильный вызов виртуального выделения.

Вероятное причину

Эта остановка создается, если средство проверки приложений обнаруживает вызов VirtualAlloc с недопустимым адресом запуска или размером выделения памяти. Чтобы отладить эту остановку, просмотрите текущую трассировку стека (кб) и адрес памяти и размер, который будет выделен, и попробуйте определить, почему они недопустимы.

Сведения, отображаемые средство проверки приложений
  • Параметр 1-Указатель   на базовый адрес выделения.
  • Параметр 2-указатель   на размер области памяти.
  • Параметр 3-Not   used
  • Параметр 4-Not   used

Дополнительная информация
  • Тестовый уровень: память
  • Stop ID: INVALID_ALLOCMEM
  • Остановить код: 600NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Неправильный вызов представления карты.

Вероятное причину

Эта остановка создается, если средство проверки приложения обнаруживает вызов MapViewOfFile с недопустимым базовым адресом или размером сопоставления. Чтобы отладить эту остановку, просмотрите текущую трассировку стека (кб) и адрес памяти и размер, который будет сопоставлен, и попробуйте определить, почему они недопустимы.

Сведения, отображаемые средство проверки приложений
  • Параметр 1-Указатель   на базовый адрес.
  • Параметр 2-указатель   для просмотра размера.
  • Параметр 3-Not   used.
  • Параметр 4-Not   used.

Дополнительная информация
  • Тестовый уровень: память
  • Stop ID: INVALID_MAPVIEW
  • Остановить код: 600NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Проверка недопустимого адреса.

Вероятное причину

Эта остановка создается, если средство проверки приложений обнаруживает вызов IsBadXXXPtr с недопустимым адресом (например, адресом в режиме ядра, а не обычным адресом пользовательского режима) для проверки буфера памяти. Чтобы выполнить отладку этой остановки, просмотрите текущую трассировку стека (кб) и попытайтесь определить, почему вызывающий функцию IsBadXXXPtr оказался недопустимым адресом. Во многих случаях адрес является обычным фиктивным, например неинициализированным указателем. Библиотека MSDN содержит несколько причин, по которым приложения не должны использовать API IsBadXXXPtr: в предварительной многозадачной среде можно изменить доступ процесса к тестируемой памяти. Деreferencing потенциально недопустимые указатели могут отключить расширение стека в других потоках. Поток, исчерпающий его стек, при отключении расширения стека приводит к немедленному завершению родительского процесса без всплывающего окна ошибки или диагностических сведений. Потоки в процессе, как ожидается, будут сотрудничать таким образом, чтобы один не освобождал память, что другие потребности. Использование этой функции не отменяет необходимость этого. Если это не сделано, приложение может завершиться непредсказуемым образом. Из-за всех этих причин мы рекомендуем никогда не использовать эти API.

Сведения, отображаемые средство проверки приложений
  • Параметр 1-Начальный   адрес.
  • Размер блока 2-памяти  .
  • Недопустимый  адрес параметра 3. 
  • Параметр 4-Not   used.

Дополнительная информация
  • Тестовый уровень: память
  • Stop ID: PROBE_INVALID_ADDRESS
  • Остановить код: 600NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Пробуя бесплатную память.

Вероятное причину

Эта остановка создается, если средство проверки приложений обнаруживает вызов IsBadXXXXPtr для свободного выделения памяти. Это очень плохо, потому что в некоторых других случаях эта память уже была повторно использована для некоторых других выделений. Так как текущий путь кода (kb) не владеет этой памятью, это может привести к повреждению памяти другого человека с катастрофическими последствиями. Чтобы отладить эту остановку, просмотрите текущую трассировку стека (kb) и попробуйте определить, почему вызывающий функцию IsBadXXXPtr в итоге проверит бесплатную память. Адрес может быть простым нефиксным (например, неинициализированным указателем) или, возможно, уже освобожденной памятью. Если память уже освобождена одним из API VirtualFree или UnmapViewOfFile, "!avrf -vs -a -a parameter3" будет искать журнал трассировок стека путей кода, выделенных или освобожденных из этого адреса, и отобразить эти трассировки стека, если они доступны. Это может показать трассировку стека, которая освобождает эту память. Чаще память — это уже освобожденное выделение кучи. Чтобы проверка для этой возможности, "!avrf -hp -a parameter3" будет искать журнал трассировок стека путей кода, выделенных/освобожденных адресом из кучи, и отображать эти трассировки стека, если они доступны. Библиотека MSDN содержит несколько причин, по которым приложения не должны использовать API IsBadXXXPtr: в предварительной многозадачной среде можно изменить доступ процесса к тестируемой памяти. Деreferencing потенциально недопустимые указатели могут отключить расширение стека в других потоках. Поток, исчерпающий его стек, при отключении расширения стека приводит к немедленному завершению родительского процесса без всплывающего окна ошибки или диагностических сведений. Потоки в процессе, как ожидается, будут сотрудничать таким образом, чтобы один не освобождал память, что другие потребности. Использование этой функции не отменяет необходимость этого. Если это не сделано, приложение может завершиться непредсказуемым образом. Из-за всех этих причин мы рекомендуем никогда не использовать эти API.

Сведения, отображаемые средство проверки приложений
  • Параметр 1-Начальный   адрес.
  • Размер блока 2-памяти  .
  • Параметр 3-Адрес   страницы свободной памяти.
  • Параметр 4-Not   used.

Дополнительная информация
  • Тестовый уровень: память
  • Stop ID: PROBE_FREE_MEM
  • Остановить код: 600NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Проверка страницы охранника.

Вероятное причину

Эта остановка создается, если средство проверки приложений обнаруживает вызов IsBadXXXXPtr для выделения памяти, содержащего по крайней мере одну GUARD_PAGE. Это очень плохо, потому что это очень возможно, что этот GUARD_PAGE является окончанием текущего стека потока. Как описано в библиотеке MSDN: деreferencing потенциально недопустимые указатели могут отключить расширение стека в других потоках. Поток, исчерпающий его стек, при отключении расширения стека приводит к немедленному завершению родительского процесса без всплывающего окна ошибки или диагностических сведений. Чтобы отладить эту остановку, просмотрите текущую трассировку стека (кб) и попробуйте определить, почему вызывающий функцию IsBadXXXPtr в итоге проверит GUARD_PAGE. Библиотека MSDN содержит несколько причин, по которым приложения не должны использовать API IsBadXXXPtr: в предварительной многозадачной среде можно изменить доступ процесса к тестируемой памяти. Деreferencing потенциально недопустимые указатели могут отключить расширение стека в других потоках. Поток, исчерпающий его стек, при отключении расширения стека приводит к немедленному завершению родительского процесса без всплывающего окна ошибки или диагностических сведений. Потоки в процессе, как ожидается, будут сотрудничать таким образом, чтобы один не освобождал память, что другие потребности. Использование этой функции не отменяет необходимость этого. Если это не сделано, приложение может завершиться непредсказуемым образом. Из-за всех этих причин мы рекомендуем никогда не использовать эти API.

Сведения, отображаемые средство проверки приложений
  • Параметр 1-Начальный   адрес.
  • Размер блока 2-памяти  .
  • Параметр 3-Адрес   страницы охранника.
  • Параметр 4-Not   used.

Дополнительная информация
  • Тестовый уровень: память
  • Stop ID: PROBE_GUARD_PAGE
  • Остановить код: 600NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Проверка NULL-адреса.

Вероятное причину

Эта остановка создается, если средство проверки приложений обнаруживает вызов IsBadXXXXPtr с помощью NULL-адреса. Чтобы выполнить отладку этой остановки, просмотрите текущую трассировку стека (кб) и попробуйте определить, почему вызывающий функцию IsBadXXXPtr в итоге получил значение NULL-адреса. Обычно это признак того, кто-то не проверка возвращаемое значение одной из функций выделения памяти. Например, приведенный ниже код является неверным: int main (void) { PVOID p; p = malloc (1024); Использование (p); возврат 0; } void Use (PVOID p) { if (IsBadReadPtr (p)) { return; } // // p безопасно использовать здесь. } Этот код должен быть перезаписан следующим образом: int main (void) { PVOID p; p = malloc (1024); if (NULL == p)) { return -1; } Использование (p); возврат 0; } void Use (PVOID p) { // // p безопасно использовать здесь. Библиотека MSDN содержит несколько причин, по которым приложения не должны использовать API IsBadXXXPtr: в предварительной многозадачной среде можно изменить доступ процесса к тестируемой памяти. Деreferencing потенциально недопустимые указатели могут отключить расширение стека в других потоках. Поток, исчерпающий его стек, при отключении расширения стека приводит к немедленному завершению родительского процесса без всплывающего окна ошибки или диагностических сведений. Потоки в процессе, как ожидается, будут сотрудничать таким образом, чтобы один не освобождал память, что другие потребности. Использование этой функции не отменяет необходимость этого. Если это не сделано, приложение может завершиться непредсказуемым образом. Из-за всех этих причин мы рекомендуем никогда не использовать эти API.

Сведения, отображаемые средство проверки приложений
  • Параметр 1-Not   used.
  • Параметр 2-Not   used.
  • Параметр 3-Not   used.
  • Параметр 4-Not   used.

Дополнительная информация
  • Тестовый уровень: память
  • Stop ID: PROBE_NULL
  • Остановить код: 600NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Проверка блока памяти с недопустимым начальным адресом или размером.

Вероятное причину

Эта остановка создается, если средство проверки приложений обнаруживает вызов IsBadXXXPtr с недопустимым адресом начала (например, адресом режима ядра, а не обычным адресом пользовательского режима) или недопустимым размером буфера памяти для проверки. Чтобы выполнить отладку этой остановки, просмотрите текущую трассировку стека (кб) и попробуйте определить, почему вызывающий функцию IsBadXXXPtr в итоге получил недопустимый адрес или размер. Во многих случаях адрес или размер являются обычными фиктивными, например неинициализированными переменными. Библиотека MSDN содержит несколько причин, по которым приложения не должны использовать API IsBadXXXPtr: в предварительной многозадачной среде можно изменить доступ процесса к тестируемой памяти. Деreferencing потенциально недопустимые указатели могут отключить расширение стека в других потоках. Поток, исчерпающий его стек, при отключении расширения стека приводит к немедленному завершению родительского процесса без всплывающего окна ошибки или диагностических сведений. Потоки в процессе, как ожидается, будут сотрудничать таким образом, чтобы один не освобождал память, что другие потребности. Использование этой функции не отменяет необходимость этого. Если это не сделано, приложение может завершиться непредсказуемым образом. Из-за всех этих причин мы рекомендуем никогда не использовать эти API.

Сведения, отображаемые средство проверки приложений
  • Параметр 1-Начальный   адрес.
  • Размер блока 2-памяти  .
  • Параметр 3-Not   used.
  • Параметр 4-Not   used.

Дополнительная информация
  • Тестовый уровень: память
  • Stop ID: PROBE_INVALID_START_OR_SIZE
  • Остановить код: 600NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Выгрузка библиотеки DLL с недопустимым размером или начальным адресом.

Вероятное причину

Эта остановка создается, если средство проверки приложений обнаруживает выгрузку библиотеки DLL с недопустимым адресом начала или размером диапазона памяти DLL. Это, вероятно, означает повреждение памяти внутри внутреннего ntdll.dll загруженного списка БИБЛИОТЕК DLL.

Сведения, отображаемые средство проверки приложений
  • Базовый адрес памяти 1-DLL  .
  • Размер диапазона памяти 2-DLL  .
  • Адрес имени 3-DLL   параметра. Используйте du, чтобы дампать его.
  • Параметр 4-Not   used.

Дополнительная информация
  • Тестовый уровень: память
  • Stop ID: INVALID_DLL_RANGE
  • Остановить код: 600NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Освобождение блока памяти в диапазоне адресов стека текущего потока.

Вероятное причину

Эта остановка создается, если средство проверки приложений обнаруживает virtualFree для блока памяти, который фактически является частью стека текущего потока (!). Чтобы отладить эту остановку, просмотрите текущую трассировку стека (кб) и попытайтесь понять, почему функция, которая называется VirtualFree, думала, что блок памяти был динамически выделен или сопоставлен, но это фактически память, выделенная из стека.

Сведения, отображаемые средство проверки приложений
  • Базовый адрес распределения 1  .
  • Размер региона 2-памяти  .
  • Адрес 3-Stack   с низким ограничением.
  • Адрес с высоким ограничением параметра 4-Stack  .

Дополнительная информация
  • Тестовый уровень: память
  • Stop ID: FREE_THREAD_STACK_MEMORY
  • Остановить код: 600NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Неверный параметр FreeType для операции VirtualFree.

Вероятное причину

Эта остановка создается, если средство проверки приложений обнаруживает VirtualFree с неправильным значением параметра FreeType. Единственными допустимыми значениями этого параметра являются MEM_DECOMMIT и MEM_RELEASE. Если VirtualFree вызывается с любым другим значением, кроме этих двух, VirtualFree не сможет освободить память. Чтобы отладить эту остановку, просмотрите текущую трассировку стека (кб): вызывающий объект VirtualFree, вероятно, является виновным.

Сведения, отображаемые средство проверки приложений
  • Неверное значение параметра 1 ,  используемое приложением.
  • Значение 2-ожидаемое   правильное значение 1.
  • Значение 3-ожидаемое   правильное значение 2.
  • Параметр 4-Not   used.

Дополнительная информация
  • Тестовый уровень: память
  • Stop ID: INVALID_FREE_TYPE
  • Остановить код: 600NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Попытка освободить блок виртуальной памяти, который уже свободен.

Вероятное причину

Эта остановка создается, если средство проверки приложений обнаруживает VirtualFree для адреса, который уже свободен. Чтобы отладить эту остановку, просмотрите текущую трассировку стека (kb) и попробуйте определить, почему память уже свободна, но приложение пытается снова освободить его. "!avrf -vs -a parameter1" будет искать журнал трассировок стека путей кода, выделенных/освобожденных этим адресом, и отображать эти трассировки стека, если они доступны. Это может показать трассировку стека, которая освобождает эту память.

Сведения, отображаемые средство проверки приложений
  • Адрес блока 1-памяти  1 .
  • Параметр 2-Not   used.
  • Параметр 3-Not   used.
  • Параметр 4-Not   used.

Дополнительная информация
  • Тестовый уровень: память
  • Stop ID: MEM_ALREADY_FREE
  • Остановить код: 600NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Неверный параметр size для операции VirtualFree (MEM_RELEASE).

Вероятное причину

Эта остановка создается, если средство проверки приложений обнаруживает VirtualFree (MEM_RELEASE) с ненулевым значением для параметра dwSize. При использовании MEM_RELEASE допустимое значение для этого параметра равно 0. Если VirtualFree вызывается с любым другим значением, кроме 0, VirtualFree не сможет освободить память. Чтобы отладить эту остановку, просмотрите текущую трассировку стека (кб): вызывающий объект VirtualFree, вероятно, является виновным.

Сведения, отображаемые средство проверки приложений
  • Неправильный размер параметра 1 ,  используемый приложением.
  • Допустимый размер параметра 2   (0).
  • Параметр 3-Not   used.
  • Параметр 4-Not   used.

Дополнительная информация
  • Тестовый уровень: память
  • Stop ID: INVALID_FREE_SIZE
  • Остановить код: 600NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Неожиданное исключение, вызываемое в подпрограмме точки входа DLL.

Вероятное причину

Эта остановка создается, если функция точки входа DLL (DllMain) вызывает исключение. Один из примеров, почему это плохо: если dllMain(DLL_PROCESS_ATTACH) вызывает исключение, загрузчик DLL Windows: — перехват и скрытие исключения; — выгрузить библиотеку DLL без вызова библиотеки DLLMain(DLL_PROCESS_DETACH). Поэтому во многих случаях библиотека DLL уже выделила некоторые ресурсы, а затем вызвала исключение, и у нее не будет возможности освободить эти ресурсы в DllMain (DLL_PROCESS_DETACH). Для отладки этой остановки: $ du parameter1 — для отображения имени библиотеки DLL; $ .exr parameter2 — для отображения сведений об исключении; $cxr parameter3, за которым следует kb , чтобы отобразить сведения о контексте исключения и трассировку стека на время возникновения исключения; $ parameter4 — это адрес внутренней структуры проверяющего средства и не имеет никакой важности для большинства пользователей проверяющего объекта.

Сведения, отображаемые средство проверки приложений
  • Имя 1-DLL   параметра (используйте du для дампа).
  • Запись 2-исключения  параметров . Используйте exr для отображения.
  • Запись 3-Контекста   параметра. Используйте CXR для отображения.
  • Дескриптор dll 4-Verifier  

Дополнительная информация
  • Тестовый уровень: память
  • Stop ID: DLL_UNEXPECTED_EXCEPTION
  • Остановить код: 600NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Неожиданное исключение, возниканое в функции потока.

Вероятное причину

Эта остановка создается, если функция потока вызывает исключение. Это плохо, потому что весь процесс будет убит. Для отладки этой остановки: $ parameter1 может быть значительным для типа исключения. Например, код исключения C0000005 означает нарушение доступа; $ .exr parameter2 — для отображения сведений об исключении; $cxr parameter3, за которым следует kb , чтобы отобразить сведения о контексте исключения;

Сведения, отображаемые средство проверки приложений
  • Код исключения 1 . 
  • Запись 2-исключения  параметров . Используйте exr для отображения.
  • Запись 3-Контекста   параметра. Используйте CXR для отображения.
  • Параметр 4-Not   used.

Дополнительная информация
  • Тестовый уровень: память
  • Stop ID: THREAD_UNEXPECTED_EXCEPTION
  • Остановить код: 600NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Непредвиденное исключение, возникающее во время проверки памяти.

Вероятное причину

Эта остановка создается, если во время вызова IsBadXXXPtr возникает исключение. Это означает, что буфер памяти, который мы проверим, фактически не имеет защиты, предполагаемой вызывающим объектом, или что память была освобождена уже и т. д. Дополнительные примеры использования API IsBadXXXPtr не рекомендуется в описании выше в описании других примеров кода остановки (PROBE_INVALID_ADDRESS, PROBE_FREE_MEM, PROBE_GUARD_PAGE, PROBE_NULL, PROBE_INVALID_START_OR_SIZE). Для отладки этой остановки: $parameter1 обычно будет C0000005, и это означает нарушение доступа; $ .exr parameter2 — для отображения сведений об исключении; $cxr parameter3, за которым следует kb , чтобы отобразить сведения о контексте исключения и трассировку стека во время возникновения исключения;

Сведения, отображаемые средство проверки приложений
  • Код исключения 1 . 
  • Запись 2-исключения  параметров . Используйте exr для отображения.
  • Запись 3-Контекста   параметра. Используйте CXR для отображения.
  • Параметр 4-Not   used

Дополнительная информация
  • Тестовый уровень: память
  • Stop ID: PROBE_UNEXPECTED_EXCEPTION
  • Остановить код: 600NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Попытка сброса NULL-адреса.

Вероятное причину

Эта остановка создается, если средство проверки приложений обнаруживает вызов VirtualFree (MEM_RESET) с первым параметром NULL. MEM_RESET следует использовать только для уже выделенной памяти, поэтому ЗНАЧЕНИЕ NULL не является допустимым первым параметром в данном случае.

Сведения, отображаемые средство проверки приложений
  • Параметр 1-Not   used.
  • Параметр 2-Not   used.
  • Параметр 3-Not   used.
  • Параметр 4-Not   used.

Дополнительная информация
  • Тестовый уровень: память
  • Stop ID: INVALID_MEM_RESET
  • Остановить код: 600NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Освобождение блока памяти кучи внутри диапазона адресов стека текущего потока.

Вероятное причину

Эта остановка создается, если средство проверки приложения обнаруживает heapFree для блока памяти, который фактически является частью стека текущего потока (!). Чтобы отладить эту остановку, просмотрите текущую трассировку стека (kb) и попытайтесь понять, почему функция, которая называется HeapFree, думала, что блок памяти был динамически выделен или сопоставлен, но это фактически память, выделенная из стека.

Сведения, отображаемые средство проверки приложений
  • Базовый адрес распределения 1  .
  • Размер региона 2-памяти  .
  • Адрес 3-Stack   с низким ограничением.
  • Адрес с высоким ограничением параметра 4-Stack  .

Дополнительная информация
  • Тестовый уровень: память
  • Stop ID: FREE_THREAD_STACK_MEMORY_AS_HEAP
  • Остановить код: 600NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Распаковка области памяти в диапазоне адресов стека текущего потока.

Вероятное причину

Эта остановка создается, если средство проверки приложения обнаруживает unmapViewOfFile для блока памяти, который фактически является частью стека текущего потока (!). Чтобы отладить эту остановку, просмотрите текущую трассировку стека (kb) и попытайтесь понять, почему функция, которая называется UnmapViewOfFile, думала, что блок памяти был динамически выделен или сопоставлен, но это была фактически память, выделенная из стека.

Сведения, отображаемые средство проверки приложений
  • Базовый адрес распределения 1  .
  • Размер региона 2-памяти  .
  • Адрес 3-Stack   с низким ограничением.
  • Адрес с высоким ограничением параметра 4-Stack  .

Дополнительная информация
  • Тестовый уровень: память
  • Stop ID: FREE_THREAD_STACK_MEMORY_AS_MAP
  • Остановить код: 600NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Неверный адрес RTL_RESOURCE.

Вероятное причину

Эта остановка создается, если приложение пытается использовать NULL или другой неправильный адрес (например, адрес режима ядра) в качестве адреса допустимого объекта. RtlInitializeResource (NULL) является неправильным вызовом API, который активирует этот тип остановки проверяющего средства. param1 — это неверный адрес, используемый, и виновник находится в трассировке стека (отображается с помощью базы знаний).

Сведения, отображаемые средство проверки приложений
  • Параметр 1-Address  .
  • Параметр 2-Not   used.
  • Параметр 3-Not   used.
  • Параметр 4-Not   used.

Дополнительная информация
  • Тестовый уровень: память
  • Stop ID: INVALID_RESOURCE_ADDRESS
  • Остановить код: 600NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Недопустимый адрес критического раздела.

Вероятное причину

Эта остановка создается, если приложение пытается использовать NULL или другой неправильный адрес (например, адрес режима ядра) в качестве адреса допустимого объекта. EnterCriticalSection(NULL) — это неправильный вызов API, который активирует этот тип остановки проверяющего средства. param1 — это неверный адрес, используемый, и виновник находится в трассировке стека (отображается с помощью базы знаний).

Сведения, отображаемые средство проверки приложений
  • Параметр 1-Address  .
  • Параметр 2-Not   used.
  • Параметр 3-Not   used.
  • Параметр 4-Not   used.

Дополнительная информация
  • Тестовый уровень: память
  • Stop ID: INVALID_CRITSECT_ADDRESS
  • Остановить код: 600NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Попытайтесь выполнить код в неисполнимой памяти.

Вероятное причину

Эта остановка создается, если приложение пытается запустить код из адреса, отличного от исполняемого или свободного. Для отладки этой остановки: $ u parameter2 — чтобы отменить удаление кода виновника $ exr parameter3 — для отображения сведений об исключении; $cxr parameter4, за которым следует kb , чтобы отобразить сведения о контексте исключения и трассировку стека за время возникновения исключения.

Сведения, отображаемые средство проверки приложений
  • Доступ к параметру 1-Address  .
  • Параметр 2-Code  , выполняющий недопустимый доступ.
  • Запись 3-исключения  параметров . Используйте exr для отображения.
  • Запись 4-Контекста   параметра. Используйте CXR для отображения.

Дополнительная информация
  • Тестовый уровень: память
  • Stop ID: THREAD_UNEXPECTED_EXCEPTION_CODE
  • Остановить код: 600NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

При инициализации выходного буфера возникает непредвиденное исключение.

Вероятное причину

Эта остановка создается, если при инициализации буфера, указанного в качестве выходного параметра для API Win32 или CRT. Обычно это означает, что указанный размер выходного буфера неверный. Для отладки этой остановки: $ EXR parameter3 — для отображения сведений об исключении; $cxr parameter4, за которым следует kb , чтобы отобразить сведения о контексте исключения и трассировку стека во время возникновения исключения.

Сведения, отображаемые средство проверки приложений
  • Адрес запуска 1-буфера  .
  • Размер буфера 2 . 
  • Запись 3-исключения  параметров . Используйте exr для отображения.
  • Запись 4-Контекста   параметра. Используйте CXR для отображения.

Дополнительная информация
  • Тестовый уровень: память
  • Stop ID: OU ТБ UFF_UNEXPECTED_EXCEPTION
  • Остановить код: 600NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Непредвиденное исключение при попытке найти размер блока кучи.

Вероятное причину

Эта остановка создается, если при вызове HeapSize для блока кучи, который освобождается. Обычно это означает, что указанный адрес блока кучи неверный или куча повреждена. Для отладки этой остановки: $ EXR parameter3 — для отображения записи исключений; $cxr parameter4, за которым следует kb , чтобы отобразить сведения о контексте исключения и трассировку стека во время возникновения исключения.

Сведения, отображаемые средство проверки приложений
  • Параметр 1-Адрес   блока кучи, освобождаемый.
  • Дескриптор 2-Кучи  .
  • Запись 3-исключения  параметров . Используйте exr для отображения.
  • Запись 4-Контекста   параметра. Используйте CXR для отображения.

Дополнительная информация
  • Тестовый уровень: память
  • Stop ID: SIZE_HEAP_UNEXPECTED_EXCEPTION
  • Остановить код: 600NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Освобождение блока памяти с недопустимым адресом начала.

Вероятное причину

Эта остановка создается, если программа вызывает VirtualFree (MEM_RELEASE) с параметром lpAddress, который не является базовым адресом, возвращаемым функцией VirtualAlloc или VirtualAllocEx, когда регион страниц был зарезервирован; Для отладки этой остановки: $ kb — для отображения текущей трассировки стека, которая вызывает VirtualFree. Вероятной причиной является библиотека DLL, которая вызывает VirtualFree.

Сведения, отображаемые средство проверки приложений
  • Параметр 1-Адрес   свободного блока памяти.
  • Параметр 2 .  Ожидаемый правильный адрес блока памяти.
  • Параметр 3-Not   used.
  • Параметр 4-Not   used.

Дополнительная информация
  • Тестовый уровень: память
  • Stop ID: INVALID_FREEMEM_START_ADDRESS
  • Остановить код: 600NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Распакуйте блок памяти с недопустимым адресом начала.

Вероятное причину

Эта остановка создается, если программа вызывает UnmapViewOfFile с параметром lpBaseAddress, который не идентичен значению, возвращаемого предыдущим вызовом функции MapViewOfFile или MapViewOfFileEx. Для отладки этой остановки: $ kb — для отображения текущей трассировки стека, вызывающего UnmapViewOfFile. Вероятной причиной является библиотека DLL, которая вызывает UnmapViewOfFile.

Сведения, отображаемые средство проверки приложений
  • Параметр 1-Адрес   блока памяти, который не сопоставляется.
  • Параметр 2 .  Ожидаемый правильный адрес блока памяти.
  • Параметр 3-Not   used.
  • Параметр 4-Not   used.

Дополнительная информация
  • Тестовый уровень: память
  • Stop ID: INVALID_UNMAPVIEW_START_ADDRESS
  • Остановить код: 600NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

неожиданное исключение, возникное в функции обратного вызова threadpool.

Вероятное причину

Эта остановка создается, если функция обратного вызова в потоке threadpool вызывает исключение. Для отладки этой остановки: $ parameter1 может быть значительным для типа исключения. Например, код исключения C0000005 означает нарушение доступа. $ .exr parameter2 — для отображения сведений об исключении. $cxr parameter3, за которым следует kb , чтобы отобразить сведения о контексте исключения.

Сведения, отображаемые средство проверки приложений
  • Код исключения 1   параметра
  • Запись 2-исключения  параметров . Используйте exr для отображения
  • Запись 3-Контекста   параметра. Используйте CXR для отображения
  • Параметр 4-Not   used

Дополнительная информация
  • Тестовый уровень: память
  • Stop ID: THREADPOOL_UNEXPECTED_EXCEPTION
  • Остановить код: 600NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

код в неисполнимой памяти

Вероятное причину

Эта остановка создается, если приложение пытается запустить код из адреса, отличного от исполняемого или свободного. Чтобы отладить эту остановку: $ u parameter2 — чтобы отменить удаление кода виновника $ EXR parameter3 , чтобы отобразить сведения об исключении $ Cxr параметр4, за которым следует kb , чтобы отобразить сведения о контексте исключения и трассировку стека на время возникновения исключения.

Сведения, отображаемые средство проверки приложений
  • Доступ к доступу к параметру 1-Address  
  • Параметр 2-Code  , выполняющий недопустимый доступ
  • Запись 3-исключения  параметров . Используйте exr для отображения.
  • Запись 4-Контекста   параметра. Используйте CXR для отображения.

Дополнительная информация
  • Тестовый уровень: память
  • Stop ID: THREADPOOL_UNEXPECTED_EXCEPTION_CODE
  • Остановить код: 600NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Создание исполняемой кучи.

Вероятное причину

Эта остановка создается, если приложение создает исполняемую кучу. Это может быть риск безопасности.

Сведения, отображаемые средство проверки приложений
  • Параметр 1-Not   used.
  • Параметр 2-Not   used.
  • Параметр 3-Not   used.
  • Параметр 4-Not   used.

Дополнительная информация
  • Тестовый уровень: память
  • Stop ID: EXECUTABLE_HEAP
  • Остановить код: 600NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Выделение исполняемой памяти.

Вероятное причину

Эта остановка создается, если приложение выделяет исполняемую память. Это может быть риск безопасности.

Сведения, отображаемые средство проверки приложений
  • Параметр 1-Page   protection, указанный вызывающим элементом.
  • Параметр 2-Not   used.
  • Параметр 3-Not   used.
  • Параметр 4-Not   used.

Дополнительная информация
  • Тестовый уровень: память
  • Stop ID: EXECUTABLE_MEMORY
  • Остановить код: 600NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Сведения о остановке TLS

Выгрузка библиотеки DLL, которая выделила индекс TLS, который не был освобожден.

Вероятное причину

Эта остановка создается, если библиотека DLL, выделенная индексом TLS, выгрузится перед освобождением этого индекса TLS. Для отладки этой остановки: $ du parameter3 — отображается имя библиотеки DLL-библиотеки виновника; $ .reload xxx.dll=parameter4 — перезагрузить символы для библиотеки DLL-файла виновника (при необходимости). xxx.dll — это имя библиотеки DLL, отображаемой на предыдущем шаге; $ u parameter2 — разобрать код, выделенный TLS. Это должно указывать на функцию, которая выделила TLS, но забыла освободить ее до выгрузки библиотеки DLL.

Сведения, отображаемые средство проверки приложений
  • Индекс 1-TLS   параметра
  • Параметр 2-Адрес   кода, который выделил этот индекс TLS.
  • Адрес имени 3-DLL   параметра. Используйте du, чтобы дампать его.
  • Базовый адрес 4-DLL  .

Дополнительная информация
  • Тестовый уровень: TLS
  • Stop ID: TLS_LEAK
  • Остановить код: 350NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Поврежденная структура TLS проверяющего средства.

Вероятное причину

Эта остановка создается, если внутренние структуры проверяющего средства, используемые для хранения состояния слотов TLS для потока, повреждены. Скорее всего, это связано с какой-то случайной коррупцией в процессе.

Сведения, отображаемые средство проверки приложений
  • Адрес 1-TEB  .
  • Ожидаемый  адрес TEB параметра 2. 
  • Параметр 3-Thread   ID.
  • Идентификатор потока 4-ожидаемый   параметр.

Дополнительная информация
  • Тестовый уровень: TLS
  • Stop ID: CORRUPTED_TLS
  • Остановить код: 350NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Использование недопустимого индекса TLS.

Вероятное причину

Эта остановка создается, если используется недопустимый индекс TLS. В большинстве случаев код по-прежнему использует этот индекс при вызове TlsFree. Ниже приведен пример для потока threadpool. T1: загрузка библиотеки DLL и tlsAlloc T1: обратный вызов очереди T1: пропущенный или отмененный обратный вызов T1: TlsFree T2: обратный вызов выполняется и вызывает TlsSetValue T1: выгрузки dll

Сведения, отображаемые средство проверки приложений
  • Индекс 1-TLS   параметра
  • Параметр 2 -  не используется.
  • Параметр 3 -  не используется.
  • Параметр 4 -  не используется.

Дополнительная информация
  • Тестовый уровень: TLS
  • Stop ID: INVALID_TLS_INDEX
  • Остановить код: 350NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Сведения об остановке Threadpool

Приоритет этого потока threadpool был изменен.

Вероятное причину

Эта остановка создается, если приоритет потока изменяется при возвращении в threadpool.

Сведения, отображаемые средство проверки приложений
  • Формат: -  поток threadpool (%x), выполняющий обратный вызов (%p), имеет измененный приоритет потока (%i -> %i)
  • Функция обратного вызова 1 . 
  • Параметр 2-Context  .
  • Параметр 3-Threadpool   Object Stack trace, используйте dps для дампа.
  • Параметр 4-Текущий   приоритет.

Дополнительная информация
  • Тестовый уровень: Threadpool
  • Stop ID: INCONSISTENT_PRIORITY
  • Остановить код: 700NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Сходство этого потока threadpool было изменено.

Вероятное причину

Эта остановка создается, если сопоставление потоков изменяется при возвращении в threadpool.

Сведения, отображаемые средство проверки приложений
  • Формат: - threadpool thread (%x), выполняющий обратный вызов (%p), имеет измененную маску сходства потоков (%p -> %p)
  • Функция обратного вызова 1 . 
  • Параметр 2-Context  .
  • Параметр 3-Threadpool   Object Stack trace, используйте dps для дампа.
  • Параметр 4-Current   affinity.

Дополнительная информация
  • Тестовый уровень: Threadpool
  • Stop ID: INCONSISTENT_AFFINITY_MASK
  • Остановить код: 700NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Необработанные msg в пуле msg текущего потока.

Вероятное причину

Эта остановка создается, если любое сообщение осталось без обработки, когда поток threadpool возвращается в пул. Это опасно, так как он будет обработан в совершенно другом контексте. Используйте !avrf -tp <Param4> , чтобы просмотреть сообщения, опубликованные в этом потоке.

Сведения, отображаемые средство проверки приложений
  • Формат: - threadpool thread (%x), выполнив обратный вызов (%p), имеет выдающееся сообщение окна (%x: %x)
  • Функция обратного вызова 1 . 
  • Параметр 2-Context  .
  • Параметр 3-Threadpool   Object Stack trace, используйте dps для дампа.
  • Параметр 4-Threadpool   thread id. Используйте поток> !avrf -tp<, чтобы просмотреть сообщения, опубликованные в этом потоке.

Дополнительная информация
  • Тестовый уровень: Threadpool
  • Stop ID: ORPHANED_THREAD_MESSAGE
  • Остановить код: 700NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Незакрытое окно принадлежало текущему потоку.

Вероятное причину

Эта остановка создается, если любое окно сохраняется в живых, когда этот поток threadpool возвращается в пул.

Сведения, отображаемые средство проверки приложений
  • Формат: -  поток threadpool (%x), выполняющий обратный вызов (%p), имеет допустимый hwnd (%x: %s), который может получать сообщения
  • Функция обратного вызова 1 . 
  • Параметр 2-Context  .
  • Параметр 3-Threadpool   Object Stack trace, используйте dps для дампа.
  • Параметр 4-Threadpool   thread id.

Дополнительная информация
  • Тестовый уровень: Threadpool
  • Stop ID: ORPHANED_THREAD_WINDOW
  • Остановить код: 700NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

ExitThread() в потоке threadpool.

Вероятное причину

Эта остановка создается, если ExitThread вызывается в потоке threadpool. Это запрещено, так как это сделает систему нестабильной. Это приведет к утечке ресурсов, замораживанию или AV.

Сведения, отображаемые средство проверки приложений
  • Функция обратного вызова 1 . 
  • Параметр 2-Context  .
  • Параметр 3-Threadpool   Object Stack trace, используйте dps для дампа.
  • Параметр 4 -  не используется.

Дополнительная информация
  • Тестовый уровень: Threadpool
  • Stop ID: ILLEGAL_THREAD_EXIT
  • Остановить код: 700NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Поток находится в состоянии олицетворения, когда он возвращается в поток threadpool.

Вероятное причину

Эта остановка создается, если функция обратного вызова изменяет маркер потока, чтобы олицетворить другого пользователя и забыл сбросить его, прежде чем вернуть его обратно в threadpool.

Сведения, отображаемые средство проверки приложений
  • Функция обратного вызова 1 . 
  • Параметр 2-Context  .
  • Параметр 3-Threadpool   Object Stack trace, используйте dps для дампа.
  • Параметр 4 -  не используется.

Дополнительная информация
  • Тестовый уровень: Threadpool
  • Stop ID: THREAD_IN_IMPERSONATION
  • Остановить код: 700NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Функция, требующая постоянного потока, вызывается.

Вероятное причину

Некоторые API Microsoft Windows должны вызываться в выделенном или постоянном потоке. В threadpool, как правило, не следует использовать локальное хранилище потоков и асинхронные вызовы, требующие постоянного потока, например функцию RegNotifyChangeKeyValue. Однако такие функции можно поместить в очередь в постоянный рабочий поток с помощью QueueUserWorkItem с параметром WT_EXECUTEINPERSISTENTTHREAD. База знаний в отладчике отобразит вызывающий объект.

Сведения, отображаемые средство проверки приложений
  • Функция обратного вызова 1 . 
  • Параметр 2-Context  .
  • Параметр 3-Threadpool   Object Stack trace, используйте dps для дампа.
  • Параметр 4 -  не используется.

Дополнительная информация
  • Тестовый уровень: Threadpool
  • Stop ID: PERSISTED_THREAD_NEEDED
  • Остановить код: 700NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Поток находится в состоянии грязное транзакции.

Вероятное причину

Эта остановка создается, если функция обратного вызова забыла закрыть или сбросить текущий дескриптор транзакции.

Сведения, отображаемые средство проверки приложений
  • Функция обратного вызова 1 . 
  • Параметр 2-Context  .
  • Параметр 3-Threadpool   Object Stack trace, используйте dps для дампа.
  • Дескриптор 4-транзакций  параметров .

Дополнительная информация
  • Тестовый уровень: Threadpool
  • Stop ID: DIRTY_TRANSACTION_CONTEXT
  • Остановить код: 700NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Это состояние threadpool имеет несбалансированные вызовы CoInit и CoUnInit.

Вероятное причину

Эта остановка создается, если функция обратного вызова вызывает CoInit и CoUnInit unbalanced.

Сведения, отображаемые средство проверки приложений
  • Функция обратного вызова 1 . 
  • Параметр 2-Context  .
  • Параметр 3-Threadpool   Object Stack trace, используйте dps для дампа.
  • Счетчики вызовов с балансировкой баланса 4  .

Дополнительная информация
  • Тестовый уровень: Threadpool
  • Stop ID: DIRTY_COM_STATE
  • Остановить код: 700NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Параметры для объекта таймера несогласованы. Значение 0, если при создании таймера WT_EXECUTEONLYONCE указывается

Вероятное причину

Эта остановка создается, если период для сигнала таймера не равен нулю, когда таймер будет сигнализировать только один раз с флагом WT_EXECUTEONLYONCE

Сведения, отображаемые средство проверки приложений
  • Указанный параметр 1-период  .
  • Указан параметр 2-Flags  .
  • Параметр 3 -  не используется.
  • Параметр 4 -  не используется.

Дополнительная информация
  • Тестовый уровень: Threadpool
  • Stop ID: INCONSISTENT_TIMER_PARAMS
  • Остановить код: 700NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Блокировка загрузчика удерживается потоком threadpool в обратном вызове.

Вероятное причину

Эта остановка создается, если блокировка загрузчика хранится в обратном вызове и не освобождается, когда поток возвращается в threadpool.

Сведения, отображаемые средство проверки приложений
  • Функция обратного вызова 1 . 
  • Параметр 2-Context  .
  • Параметр 3-Threadpool   Object Stack trace, используйте dps для дампа.
  • Параметр 4 -  не используется.

Дополнительная информация
  • Тестовый уровень: Threadpool
  • Stop ID: LOADER_LOCK_HELD
  • Остановить код: 700NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Предпочтительный язык задается потоком threadpool в обратном вызове.

Вероятное причину

Эта остановка создается, если предпочтительный язык задан в обратном вызове и не очищается при возврате потока в threadpool.

Сведения, отображаемые средство проверки приложений
  • Функция обратного вызова 1 . 
  • Параметр 2-Context  .
  • Параметр 3-Threadpool   Object Stack trace, используйте dps для дампа.
  • Параметр 4 -  не используется.

Дополнительная информация
  • Тестовый уровень: Threadpool
  • Stop ID: PREFERRED_LANGUAGES_SET
  • Остановить код: 700NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

Фоновый приоритет задается потоком threadpool в обратном вызове.

Вероятное причину

Эта остановка создается, если фоновый приоритет задан в обратном вызове и не отключается, когда поток возвращается в threadpool.

Сведения, отображаемые средство проверки приложений
  • Функция обратного вызова 1 . 
  • Параметр 2-Context  .
  • Параметр 3-Threadpool   Object Stack trace, используйте dps для дампа.
  • Параметр 4 -  не используется.

Дополнительная информация
  • Тестовый уровень: Threadpool
  • Stop ID: BACKGROUND_PRIORITY_SET
  • Остановить код: 700NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

TerminateThread() в потоке threadpool.

Вероятное причину

Эта остановка создается, если метод TerminateThread вызывается в потоке threadpool. Это запрещено, так как это сделает систему нестабильной. Это приведет к утечке ресурсов, замораживанию или AV.

Сведения, отображаемые средство проверки приложений
  • Параметр 1 — не используется.
  • Параметр 2 -  не используется.
  • Параметр 3 -  не используется.
  • Параметр 4 -  не используется.

Дополнительная информация
  • Тестовый уровень: Threadpool
  • Stop ID: ILLEGAL_THREAD_TERMINATION
  • Остановить код: 700NAN
  • Серьезность: ошибка
  • Одноразовая ошибка: 
  • Отчет об ошибке: Break
  • Вход в файл: yes
  • Создание обратного снимка: да

См. также

Средство проверки приложений — остановки кодов и определений

Средство проверки приложений — обзор

Средство проверки приложений — функции

Средство проверки приложений — тестирование приложений

Средство проверки приложений — тесты в средство проверки приложений

Средство проверки приложений— останавливается средство проверки приложений отладки

Средство проверки приложений — часто задаваемые вопросы