Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом наборе тестов содержатся следующие коды остановки.
Опасный вызов TerminateThread.
Вероятное причинуЭта остановка создается, если поток (идентификатор потока является параметром 1) завершается явным образом с помощью TerminateThread.Эта функция очень опасна, так как она представляет повреждение данных и взаимоблокировку (как и для MSDN).
Сведения, отображаемые средство проверки приложений- Параметр 1 - Thread ID для вызывающего объекта Terminatethread.
- Параметр 2 - Не используется.
- Параметр 3 - Не используется.
- Параметр 4 - Не используется.
- Тестовый уровень: Опасный
- Идентификатор остановки: TERMINATE_THREAD_CALL
- Остановить код: 0x100
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Потенциальный переполнение стека в условиях низкой памяти.
Вероятное причинуЭта остановка создается, если начальный размер фиксации стека потока заключается в том, что переполнение стека может быть увеличено в условиях низкой памяти, если стек не может быть расширен.
Сведения, отображаемые средство проверки приложений- Параметр 1 - Не используется.
- Параметр 2 - Не используется.
- Параметр 3 - Не используется.
- Параметр 4 - Не используется.
- Тестовый уровень: Опасный
- Идентификатор остановки: STACK_OVERFLOW
- Остановить код: 0x101
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
ExitProcess вызывается во время выполнения нескольких потоков.
Вероятное причинуЭта остановка создается, если поток вызывает ExitProcess во время выполнения нескольких потоков. В таком случае для каждого потока будет вызываться внутренний вызов TerminateThread, и это может создать взаимоблокировки или повреждения данных.
Сведения, отображаемые средство проверки приложений- Параметр 1 - Число выполняемых потоков.
- Параметр 2 - Не используется.
- Параметр 3 - Не используется.
- Параметр 4 - Не используется.
- Тестовый уровень: Опасный
- Идентификатор остановки: INVALID_EXIT_PROCESS_CALL
- Остановить код: 0x102
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
LoadLibrary вызывается во время DllMain.
Вероятное причинуЭта остановка создается, если код внутри DllMain вызывает LoadLibrary или FreeLibary. Это поведение, запрещенное MSDN.
Сведения, отображаемые средство проверки приложений- Параметр 1 - Dll Name (use du to dump).
- Параметр 2 - Dll базовый адрес.
- Параметр 3 - Не используется.
- Параметр 4 - Не используется.
- Тестовый уровень: Опасный
- Идентификатор остановки: INVALID_LOAD_LIBRARY_CALL
- Остановить код: 0x103
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
FreeLibrary вызывается во время DllMain.
Вероятное причинуЭта остановка создается, если код внутри DllMain вызывает LoadLibrary или FreeLibary. Это поведение, запрещенное MSDN.
Сведения, отображаемые средство проверки приложений- Параметр 1 - Dll Name (use du to dump).
- Параметр 2 - Dll базовый адрес.
- Параметр 3 - Не используется.
- Параметр 4 - Не используется.
- Тестовый уровень: Опасный
- Идентификатор остановки: INVALID_FREE_LIBRARY_CALL
- Остановить код: 0x104
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
SetProcessWorkingSetSize вызывается с помощью MinimumWorkingSetSize = 0xFFFFFFFF.
Вероятное причинуИспользуйте MinimumWorkingSetSize = (SIZE_T) -1.
Сведения, отображаемые средство проверки приложений- Параметр 1 - Не используется.
- Параметр 2 - Не используется.
- Параметр 3 - Не используется.
- Параметр 4 - Не используется.
- Тестовый уровень: Опасный
- Идентификатор остановки: INVALID_MINIMUM_PROCESS_WORKING_SIZE
- Остановить код: 0x105
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
SetProcessWorkingSetSize вызывается с помощью MaximumWorkingSetSize = 0xFFFFFFFF.
Вероятное причинуИспользуйте MaximumWorkingSetSize = (SIZE_T) -1.
Сведения, отображаемые средство проверки приложений- Параметр 1 - Не используется.
- Параметр 2 - Не используется.
- Параметр 3 - Не используется.
- Параметр 4 - Не используется.
- Тестовый уровень: Опасный
- Идентификатор остановки: INVALID_MAXIMUM_PROCESS_WORKING_SIZE
- Остановить код: 0x106
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
SetProcessWorkingSetSizeEx вызывается с помощью MinimumWorkingSetSize = 0xFFFFFFFF.
Вероятное причинуИспользуйте MinimumWorkingSetSize = (SIZE_T) -1.
Сведения, отображаемые средство проверки приложений- Параметр 1 - Не используется.
- Параметр 2 - Не используется.
- Параметр 3 - Не используется.
- Параметр 4 - Не используется.
- Тестовый уровень: Опасный
- Идентификатор остановки: INVALID_MINIMUM_PROCESS_WORKING_SIZE_EX
- Остановить код: 0x107
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
SetProcessWorkingSetSizeEx вызывается с помощью MaximumWorkingSetSize = 0xFFFFFFFF.
Вероятное причинуИспользуйте MaximumWorkingSetSize = (SIZE_T) -1.
Сведения, отображаемые средство проверки приложений- Параметр 1 - Не используется.
- Параметр 2 - Не используется.
- Параметр 3 - Не используется.
- Параметр 4 - Не используется.
- Тестовый уровень: Опасный
- Идентификатор остановки: INVALID_MAXIMUM_PROCESS_WORKING_SIZE_EX
- Остановить код: 0x108
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Поток не может иметь критически важный раздел.
Вероятное причинуЭта остановка создается, если поток (идентификатор потока имеет параметр1) завершается, приостанавливается или находится в состоянии (рабочий поток завершен рабочий элемент), в котором он не может содержать критически важный раздел. Текущий поток является виновным. Чтобы выполнить отладку этой остановки, используйте следующие команды отладчика:
- kb — для получения текущей трассировки стека. Если текущий поток является владельцем критического раздела, вероятно, вызывает ExitThread. Текущий поток должен освободить критически важный раздел перед выходом. Если текущий поток вызывает TerminateThread или SuspendThread, он не должен делать это для потока, держащего критически важный раздел.
- Параметр !cs -s <> — сведения о дампах этого критического раздела.
- ln <parameter2> — отображение символов рядом с адресом критического раздела. Это должно помочь определить утечку критических разделов.
- dps <parameter4> — для дампа трассировки стека для инициализации этого критического раздела.
- Параметр 1 - Thread ID.
- Параметр 2 - Критически важный адрес раздела.
- Параметр 3 - Критически важный адрес сведений об отладке раздела.
- Параметр 4 Трассировка стека инициализации критически важных разделов.
- Тестовый уровень: Замки
- Идентификатор остановки: EXIT_THREAD_OWNS_LOCK
- Остановить код: 0x200
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Выгрузка DLL, содержащая активный критический раздел.
Вероятное причинуЭта остановка создается, если библиотека DLL имеет глобальную переменную, содержащую критически важный раздел, и библиотека DLL выгрузится, но критически важный раздел не был удален. Чтобы выполнить отладку этой остановки, используйте следующие команды отладчика:
- du <parameter3> — для дампа имени библиотеки DLL-файла виновника.
- .reload dllname или . reload dllname = <parameter4> — для перезагрузки символов для этой библиотеки DLL.
- !cs -s <parameter1> — сведения о дампах этого критического раздела.
- ln <parameter1> — отображение символов рядом с адресом критического раздела. Это должно помочь определить утечку критических разделов.
- dps <parameter2> — для дампа трассировки стека для инициализации этого критического раздела.
- Параметр 1 - Критически важный адрес раздела.
- Параметр 2 Трассировка стека инициализации критически важных разделов.
- Параметр 3 - DLL-name address.
- Параметр 4 - DLL базовый адрес.
- Тестовый уровень: Замки
- Идентификатор остановки: LOCK_IN_UNLOADED_DLL
- Остановить код: 0x201
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Освобождение блока кучи, содержащего активный критический раздел.
Вероятное причинуЭта остановка создается, если выделение кучи содержит критически важный раздел, выделение освобождается и критически важный раздел не был удален. Чтобы выполнить отладку этой остановки, используйте следующие команды отладчика:
- !cs -s <parameter1> — сведения о дампах этого критического раздела.
- ln <parameter1> — отображение символов рядом с адресом критического раздела. Это должно помочь определить утечку критических разделов.
- dps <parameter2> — для дампа трассировки стека для инициализации этого критического раздела.
- < параметр3> и <параметр4> могут помочь понять, где был выделен этот блок кучи (размер выделения, вероятно, значительный).
- Параметр 1 - Критически важный адрес раздела.
- Параметр 2 Трассировка стека инициализации критически важных разделов.
- Параметр 3 - Кучи блок-адрес.
- Параметр 4 - Кучи размер блока.
- Тестовый уровень: Замки
- Идентификатор остановки: LOCK_IN_FREED_HEAP
- Остановить код: 0x202
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Двойной инициализированный или поврежденный критический раздел.
Вероятное причинуОбычно эта остановка создается, если критически важный раздел инициализирован более одного раза. В этом случае параметр3 и параметр4 — это адреса трассировки стека для двух из этих инициализаций. В некоторых других случаях можно остановить эту остановку, если критически важный раздел или ее отладочная информационная структура повреждена. В этом втором случае возможно, что параметр3 и параметр4 являются недопустимыми и бесполезными. Чтобы выполнить отладку этой остановки, выполните указанные ниже действия.
- !cs -s -d <parameter2> — сведения о дампах этого критического раздела.
- ln <parameter1> — отображение символов рядом с адресом критического раздела. Это может помочь определить критически важный раздел, если это глобальная переменная.
- dps parameter3> и dps <<parameter4> — чтобы определить два пути кода для инициализации этого критического раздела.
- Параметр 1 - Критически важный адрес раздела.
- Параметр 2 - Адрес отладочной информационной структуры, найденной в активном списке.
- Параметр 3 - Первая трассировка стека инициализации.
- Параметр 4 - Вторая трассировка стека инициализации.
- Тестовый уровень: Замки
- Идентификатор остановки: LOCK_DOUBLE_INITIALIZE
- Остановить код: 0x203
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Свободная память, содержащая активный критический раздел.
Вероятное причинуЭта остановка создается, если память, содержащая критически важный раздел, была освобождена, но критически важный раздел не был удален с помощью DeleteCriticalSection. Чтобы выполнить отладку этой остановки, используйте следующие команды отладчика:
- !cs -s -d <parameter2> — сведения о дампах этого критического раздела.
- dps <parameter3> — чтобы определить путь кода для инициализации этого критического раздела.
В большинстве случаев средство проверки блокировки обнаруживает немедленно утечку критически важных разделов, содержащихся в выделении кучи, диапазон библиотек DLL, выделение виртуальной памяти или сопоставленный диапазон памяти MapViewOfFile и проблемы с различными остановками в этих случаях. Поэтому для этой остановки проверяющего средства осталось очень мало случаев. Блокировка должна находиться в диапазоне памяти, освобожденном кодом в режиме ядра или освобожденным перекрестным процессом API, такими как VirtualFreeEx. Как правило, эта остановка будет обнаружена, если предыдущая остановка (например, LOCK_IN_FREED_HEAP или LOCK_IN_UNLOADED_DLL) продолжалась путем нажатия "g" в консоли отладчика.
Сведения, отображаемые средство проверки приложений- Параметр 1 - Критически важный адрес раздела.
- Параметр 2 - Критически важный адрес сведений об отладке раздела.
- Параметр 3 Трассировка стека инициализации критически важных разделов.
- Параметр 4 - Не используется.
- Тестовый уровень: Замки
- Идентификатор остановки: LOCK_IN_FREED_MEMORY
- Остановить код: 0x204
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Поврежденный критический раздел.
Вероятное причинуЭта остановка создается, если поле DebugInfo критического раздела указывает на освобожденную память. Обычно другая допустимая структура DebugInfo находится в списке активных критически важных разделов. Без повреждения два указателя должны быть идентичными. Чтобы выполнить отладку этой остановки, используйте следующие команды отладчика:
- !cs -s -d <параметр3> — сведения о дампах этого критического раздела на основе текущего содержимого структуры сведений отладки, найденной в активном списке (эта структура редко повреждена, поэтому обычно эта информация является надежной).
- !cs -s <параметр1> — сведения о дампах этого критического раздела на основе текущего содержимого структуры критического раздела (структура уже повреждена, поэтому иногда эта информация не является надежной).
- dps <parameter4> — чтобы определить путь кода для инициализации этого критического раздела. Дампа критического раздела в параметре address1 и найдите шаблон повреждения. С хорошими символами для ntdll.dl можно использовать следующие команды:
- dt ntdll!_RTL_CRITICAL_SECTION LOCK_ADDRESS
- dt ntdll!_RTL_CRITICAL_SECTION_DEBUG DEBUG_ADDRESS
- Параметр 1 - Критически важный адрес раздела.
- Параметр 2 - Недопустимый адрес сведений об отладке этого критического раздела.
- Параметр 3 - Адрес сведений отладки, найденных в активном списке.
- Параметр 4 Трассировка стека инициализации .
- Тестовый уровень: Замки
- Идентификатор остановки: LOCK_CORRUPTED
- Остановить код: 0x205
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Недопустимый поток владельца критического раздела.
Вероятное причинуЭта остановка создается, если идентификатор потока владельца недопустим в текущем контексте. Чтобы выполнить отладку этой остановки, выполните указанные ниже действия.
- !cs -s <parameter1> — сведения о дампах этого критического раздела.
- ln <parameter1> — отображение символов рядом с адресом критического раздела. Это поможет определить критически важный раздел.
- Параметр 1 - Критически важный адрес раздела.
- Параметр 2 - Владение потоком.
- Параметр 3 - Ожидаемое владение потоком.
- Параметр 4 - Критически важный адрес сведений об отладке раздела.
- Тестовый уровень: Замки
- Идентификатор остановки: LOCK_INVALID_OWNER
- Остановить код: 0x206
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Недопустимое число рекурсий критических разделов.
Вероятное причинуЭта остановка создается, если поле счетчика рекурсии структуры критического раздела недопустимо в текущем контексте. Чтобы выполнить отладку этой остановки, выполните указанные ниже действия.
- !cs -s <parameter1> — сведения о дампах этого критического раздела.
- ln <parameter1> — отображение символов рядом с адресом критического раздела. Это поможет определить критически важный раздел.
- Параметр 1 - Критически важный адрес раздела.
- Параметр 2 - Recursion count.
- Параметр 3 - Ожидаемое число рекурсий.
- Параметр 4 - Критически важный адрес сведений об отладке раздела.
- Тестовый уровень: Замки
- Идентификатор остановки: LOCK_INVALID_RECURSION_COUNT
- Остановить код: 0x207
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Удаление критического раздела с недопустимым числом блокировок.
Вероятное причинуЭта остановка создается, если критически важный раздел принадлежит потоку, если он удаляется или если критически важный раздел неинициализирован. Чтобы выполнить отладку этой остановки, выполните указанные ниже действия.
- !cs -s <parameter1> — сведения о дампах этого критического раздела. Если поток владения равен 0, критически важный раздел не инициализирован.
- ln <parameter1> — отображение символов рядом с адресом критического раздела. Это поможет определить критически важный раздел.
- Параметр 1 - Критически важный адрес раздела.
- Параметр 2 - Lock count.
- Параметр 3 - Ожидаемое число блокировок.
- Параметр 4 - Владение потоком.
- Тестовый уровень: Замки
- Идентификатор остановки: LOCK_INVALID_LOCK_COUNT
- Остановить код: 0x208
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Критически важный раздел превышен или поврежден.
Вероятное причинуЭта остановка создается, если критически важный раздел освобождается больше раз, чем текущий поток получил его. Чтобы выполнить отладку этой остановки, выполните указанные ниже действия.
- !cs -s <parameter1> — сведения о дампах этого критического раздела.
- !cs -s -d <parameter4> — сведения о дампах этого критического раздела.
- ln <parameter1> — отображение символов рядом с адресом критического раздела. Это поможет определить критически важный раздел.
- Параметр 1 - Критически важный адрес раздела.
- Параметр 2 - Lock count.
- Параметр 3 - Ожидаемое число блокировок.
- Параметр 4 - Критически важный адрес сведений об отладке раздела.
- Тестовый уровень: Замки
- Идентификатор остановки: LOCK_OVER_RELEASED
- Остановить код: 0x209
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Критический раздел не инициализирован.
Вероятное причинуЭта остановка создается, если критически важный раздел используется без инициализации или после удаления. Чтобы выполнить отладку этой остановки, выполните указанные ниже действия.
- ln <parameter1> — отображение символов рядом с адресом критического раздела. Это поможет определить критически важный раздел.
- Параметр 1 - Критически важный адрес раздела.
- Параметр 2 - Критически важный адрес сведений об отладке раздела.
- Параметр 3 - Не используется.
- Параметр 4 - Не используется.
- Тестовый уровень: Замки
- Идентификатор остановки: LOCK_NOT_INITIALIZED
- Остановить код: 0x210
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Критический раздел уже инициализирован.
Вероятное причинуЭта остановка создается, если критически важный раздел повторно инициализирован текущим потоком. Чтобы выполнить отладку этой остановки, выполните указанные ниже действия.
- !cs -s parameter1> или !cs -s -d < parameter2 — сведения о дампах этого критического раздела.
- ln <parameter1> — отображение символов рядом с адресом критического раздела. Это может помочь определить критически важный раздел, если это глобальная переменная.
- dps <parameter3> — чтобы определить путь кода для первой инициализации этого критического раздела.
- kb — для отображения текущей трассировки стека, которая повторно инициализирует этот критически важный раздел.
- Параметр 1 - Критически важный адрес раздела.
- Параметр 2 - Критически важный адрес сведений об отладке раздела.
- Параметр 3 - Первая трассировка стека инициализации. Используйте dps для дампа, если значение NULL не равно NULL
- Параметр 4 - Не используется.
- Тестовый уровень: Замки
- Идентификатор остановки: LOCK_ALREADY_INITIALIZED
- Остановить код: 0x211
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Освобождение виртуальной памяти, содержащей активный критический раздел.
Вероятное причинуЭта остановка создается, если текущий поток вызывает VirtualFree в блоке памяти, который содержит активный критически важный раздел. Приложение должно вызвать DeleteCriticalSection в этом критическом разделе, прежде чем освободить эту память.
- kb — для отображения текущей трассировки стека, вызывающей VirtualFree. Вероятной причиной является библиотека DLL, которая вызывает VirtualFree.
- !cs -s <parameter1> — сведения о дампах этого критического раздела.
- dps <parameter2> — чтобы определить путь кода для инициализации этого критического раздела.
- Параметр 1 - Критически важный адрес раздела.
- Параметр 2 Трассировка стека инициализации критически важных разделов.
- Параметр 3 - Адрес блока памяти.
- Параметр 4 - Размер блока памяти.
- Тестовый уровень: Замки
- Идентификатор остановки: LOCK_IN_FREED_VMEM
- Остановить код: 0x212
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Распакуйте область памяти, содержащую активный критический раздел.
Вероятное причинуЭта остановка создается, если текущий поток вызывает UnmapViewOfFile в блоке памяти, который содержит активный критический раздел. Приложение должно вызвать DeleteCriticalSection в этом критическом разделе, прежде чем при отмене сопоставления этой памяти.
- kb — для отображения текущей трассировки стека, вызывающей UnmapViewOfFile. Вероятной причиной является библиотека DLL, которая вызывает UnmapViewOfFile.
- !cs -s <parameter1> — сведения о дампах этого критического раздела.
- dps <parameter2> — чтобы определить путь кода для инициализации этого критического раздела.
- Параметр 1 - Критически важный адрес раздела.
- Параметр 2 Трассировка стека инициализации критически важных разделов.
- Параметр 3 - Адрес блока памяти.
- Параметр 4 - Размер блока памяти.
- Тестовый уровень: Замки
- Идентификатор остановки: LOCK_IN_UNMAPPED_MEM
- Остановить код: 0x213
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Текущий поток не имеет критически важных разделов.
Вероятное причинуЭта остановка создается, если текущий поток вызывает LeaveCriticalSection, но, в соответствии с внутренней книгой проверяющего, он не имеет никакого критического раздела. Если параметр2 равен нулю, вероятно, это ошибка в текущем потоке. Он либо пытается оставить критически важный раздел, который он не ввел, либо, возможно, вызывает LeaveCriticalSection больше раз, чем он называется EnterCriticalSection для одного и того же критического раздела. Если параметр2 не равен нулю (отрицательное целочисленное число), внутренние структуры данных проверяющего, вероятно, повреждены.
Сведения, отображаемые средство проверки приложений- Параметр 1 - Критически важный адрес раздела.
- Параметр 2 - Число критических разделов, принадлежащих текущему потоку.
- Параметр 3 - Не используется
- Параметр 4 - Не используется
- Тестовый уровень: Замки
- Идентификатор остановки: THREAD_NOT_LOCK_OWNER
- Остановить код: 0x214
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Использование критического раздела, закрытого для другой библиотеки DLL.
Вероятное причинуЭта остановка создается, если текущий поток пытается использовать частную блокировку, которая находится внутри другой библиотеки DLL. Например, a.dll пытается ввести критически важный раздел, определенный внутри ntdll.dll. Частные блокировки нельзя использовать в библиотеках DLL.
Сведения, отображаемые средство проверки приложений- Параметр 1 - Критически важный адрес раздела.
- Параметр 2 - Не используется.
- Параметр 3 - Не используется
- Параметр 4 - Не используется
- Тестовый уровень: Замки
- Идентификатор остановки: LOCK_PRIVATE
- Остановить код: 0x215
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Блокировка SRW не инициализирована.
Вероятное причинуЭта остановка создается, если поток пытается использовать блокировку SRW (Param1), которая не инициализирована. Чтобы выполнить отладку, используйте kb, чтобы получить текущую трассировку стека. Здесь используется блокировка SRW. Блокировка SRW должна быть инициализирована с помощью InitializeSRWLock, прежде чем ее можно будет использовать.
Сведения, отображаемые средство проверки приложений- Параметр 1 - SRW Lock
- Параметр 2 - Не используется
- Параметр 3 - Не используется
- Параметр 4 - Не используется
- Тестовый уровень: SRWLock
- Идентификатор остановки: NOT_INITIALIZED
- Остановить код: 0x250
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Блокировка SRW уже инициализирована.
Вероятное причинуЭта остановка создается при повторной инициализации блокировки SRW (Param1). Если блокировка SRW активно используется другими потоками, повторная инициализация блокировки приведет к непредсказуемому поведению приложения, включая зависания и сбои. Трассировка стека инициализации может показать получение, если блокировка SRW была статично инициализирована.
- kb — для получения текущей трассировки стека. Здесь блокировка SRW инициализируется повторно.
- dps <parameter3> — для получения трассировки стека инициализации блокировки SRW. Эта трассировка стека может показать получение, если блокировка была статично инициализирована.
- Параметр 1 - SRW Lock
- Параметр 2 - ThreadId потока, который инициализировал блокировку SRW.
- Параметр 3 - Адрес трассировки стека инициализации. Используйте адрес> dps<, чтобы узнать, где была инициализирована блокировка SRW.
- Параметр 4 - Не используется
- Тестовый уровень: SRWLock
- Идентификатор остановки: ALREADY_INITIALIZED
- Остановить код: 0x251
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Несоответствие Acquire-Release блокировки SRW.
Вероятное причинуЭта остановка создается, если блокировка SRW (Param1) освобождается с неправильным API выпуска. Если блокировка SRW была приобретена для общего доступа и освобождается с помощью API эксклюзивных выпусков или блокировки SRW была приобретена для эксклюзивного доступа и освобождается с помощью API общего выпуска. Это может привести к непредсказуемому поведению приложения, включая зависание и сбои.
- kb — для получения текущей трассировки стека. В этом случае блокировка SRW освобождается с помощью неправильного API.
- dps <parameter3> — чтобы получить трассировку стека блокировки SRW.
- Параметр 1 - SRW Lock
- Параметр 2 - ThreadId потока, который приобрел блокировку SRW.
- Параметр 3 - Адрес трассировки стека получения. Используйте адрес> dps<, чтобы узнать, где была приобретена блокировка SRW.
- Параметр 4 - Не используется
- Тестовый уровень: SRWLock
- Идентификатор остановки: MISMATCHED_ACQUIRE_RELEASE
- Остановить код: 0x252
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Блокировка SRW рекурсивно приобретается тем же потоком.
Вероятное причинуЭта остановка создается, если блокировка SRW (Param1) приобретается рекурсивно тем же потоком. Это приведет к взаимоблокировке, и поток будет блокироваться на неопределенный срок. Рекурсивное приобретение блокировки SRW в эксклюзивном режиме приведет к взаимоблокировке. Рекурсивное приобретение блокировки SRW в общем режиме приведет к взаимоблокировке, когда поток ожидает монопольного доступа. Рассмотрим приведенный ниже пример. Поток A получает блокировку SRW в общем режиме. Поток B пытается acruire блокировку SRW в монопольном режиме и ожидает. Поток A пытается получить блокировку SRW в общем режиме рекурсивно. Это будет успешно до тех пор, пока нет эксклюзивного официанта (в данном случае B). Так как блокировки SRW не имеют нехватки записи, поток A ожидается за потоком B. Теперь Thread B ожидает потока A, который не пытается ожидать thread B, вызывая циклическое ожидание и, следовательно, взаимоблокировку.
- kb — для получения текущей трассировки стека. Это место, где блокировка SRW приобретается рекурсивно.
- dps <parameter2> — чтобы получить трассировку стека для первого получения.
- Параметр 1 - SRW Lock
- Параметр 2 - Адрес первой трассировки стека получения. Используйте адрес> dps<, чтобы узнать, где была приобретена блокировка SRW.
- Параметр 3 - Не используется
- Параметр 4 - Не используется
- Тестовый уровень: SRWLock
- Идентификатор остановки: RECURSIVE_ACQUIRE
- Остановить код: 0x253
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Поток, который завершается или завершается, владеет блокировкой SRW.
Вероятное причинуЭта остановка создается, если поток (Param2), которому принадлежит блокировка SRW (Param1), завершается или завершается. Это приведет к потере блокировки SRW, и потоки, пытающиеся получить эту блокировку, будут блокироваться на неопределенный срок.
- kb — для получения текущей трассировки стека. В этом случае поток завершается или завершается.
- dps <parameter3> — чтобы получить трассировку стека блокировки SRW.
- Параметр 1 - SRW Lock
- Параметр 2 - ThreadId потока, который завершается или завершается.
- Параметр 3 - Адрес трассировки стека получения. Используйте адрес> dps<, чтобы узнать, где была приобретена блокировка SRW.
- Параметр 4 - Не используется
- Тестовый уровень: SRWLock
- Идентификатор остановки: EXIT_THREAD_OWNS_LOCK
- Остановить код: 0x254
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Освобожденная блокировка SRW не была получена этим потоком.
Вероятное причинуЭта остановка создается, если блокировка SRW (Param1) освобождается потоком (Param2), который не получил блокировку. Это представляет плохую практику программирования, которая трудно получить право и может привести к непредсказуемому поведению приложения.
- kb — для получения текущей трассировки стека. В этом случае поток освобождает блокировку SRW, которую она не приобрела.
- dps <parameter4> — чтобы получить трассировку стека блокировки SRW.
- Параметр 1 - SRW Lock
- Параметр 2 - Current ThreadId.
- Параметр 3 - ThreadId потока, который приобрел блокировку SRW.
- Параметр 4 - Адрес трассировки стека получения. Используйте адрес> dps<, чтобы узнать, где была приобретена блокировка SRW.
- Тестовый уровень: SRWLock
- Идентификатор остановки: INVALID_OWNER
- Остановить код: 0x255
- Суровость: Предупреждение
- Одноразовая ошибка:
- Отчет об ошибке: Никакой
- Войдите в файл: да
- Создайте обратную сторону: да
Освобожденная память содержит активную блокировку SRW.
Вероятное причинуЭта остановка создается, если освобожденный адрес памяти (Param1) содержит активную блокировку SRW, которая по-прежнему используется. Это может привести к непредсказуемому поведению приложения, включая сбои и зависания.
- kb — для получения текущей трассировки стека. Это место, где память освобождается, которая содержит активную блокировку SRW.
- dps <parameter4> — чтобы получить трассировку стека блокировки SRW.
- Параметр 1 - SRW Lock
- Параметр 2 - Адрес освобожденной памяти.
- Параметр 3 - ThreadId потока, который приобрел блокировку SRW.
- Параметр 4 - Адрес трассировки стека получения. Используйте адрес> dps<, чтобы узнать, где была приобретена блокировка SRW.
- Тестовый уровень: SRWLock
- Идентификатор остановки: IN_FREED_MEMORY
- Остановить код: 0x256
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Библиотека DLL, выгружаемая, содержит активную блокировку SRW.
Вероятное причинуЭта остановка создается, если библиотека DLL, выгружаемая (Param2), содержит активную блокировку SRW (Param1), которая по-прежнему используется. Это может привести к непредсказуемому поведению приложения, включая сбои и зависания.
- kb — для получения текущей трассировки стека. Здесь выгрузится библиотека DLL, содержащая активную блокировку SRW.
- du <parameter2> — чтобы найти имя выгруженной библиотеки DLL.
- dps <parameter4> — чтобы получить трассировку стека блокировки SRW.
- Параметр 1 - SRW Lock
- Параметр 2 - Адрес имени выгружаемой библиотеки DLL. Используйте du <address> для просмотра имени.
- Параметр 3 - ThreadId потока, который приобрел блокировку SRW.
- Параметр 4 - Адрес трассировки стека получения. Используйте адрес> dps<, чтобы узнать, где была приобретена блокировка SRW.
- Тестовый уровень: SRWLock
- Идентификатор остановки: IN_UNLOADED_DLL
- Остановить код: 0x257
- Суровость: Предупреждение
- Одноразовая ошибка:
- Отчет об ошибке: Никакой
- Войдите в файл: да
- Создайте обратную сторону: да
Блокировка SRW приобретается по пути завершения работы, что может привести к зависаю.
Вероятное причинуЭта остановка создается, если блокировка SRW (Param1) приобретается по пути завершения работы. Блокировки SRW не знают о завершении работы. Попытка получить блокировку SRW, которая была потеряна (из-за завершения процесса или другой причины) приведет к зависаю. Вызов ConditionVariableSRW в пути завершения работы также может привести к остановке проверяющего средства, так как блокировка освобождается и приобретается во время этого вызова. Чтобы выполнить отладку этой остановки, выполните указанные ниже действия.
- kb — для получения текущей трассировки стека. Это место, где блокировка SRW приобретается по пути завершения работы.
- Параметр 1 - SRW Lock
- Параметр 2 - Не используется
- Параметр 3 - Не используется
- Параметр 4 - Не используется
- Тестовый уровень: SRWLock
- Идентификатор остановки: ACQUIRE_ON_SHUTDOWN_PATH
- Остановить код: 0x258
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Недопустимое исключение дескриптора для текущей трассировки стека.
Вероятное причинуЭта остановка создается, если функция в верхней части стека передает недопустимый дескриптор системным подпрограммам. Обычно простая команда kb показывает, что является значением переданного дескриптора (должно быть одним из параметров , как правило, первым). Если значение равно NULL, то это явно неправильно. Если значение выглядит нормально, необходимо использовать расширение отладчика !htrace, чтобы получить журнал операций, относящихся к этому значению дескриптора. В большинстве случаев значение дескриптора используется после закрытия.
Сведения, отображаемые средство проверки приложений- Параметр 1 - Код исключения.
- Параметр 2 - Запись исключения. Используйте exr для отображения.
- Параметр 3 - Контекстная запись. Используйте CXR для отображения.
- Параметр 4 - Не используется.
- Тестовый уровень: Ручки
- Идентификатор остановки: INVALID_HANDLE
- Остановить код: 0x300
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Недопустимый индекс TLS, используемый для текущей трассировки стека.
Вероятное причинуЭта остановка создается, если функция в верхней части стека передала недопустимый индекс TLS в системные подпрограммы TLS. Обычно простая команда kb показывает, что не так. Типичная ошибка заключается в том, чтобы предположить определенное значение для индекса TLS вместо вызова TlsAlloc. Это может произойти, думая, что всегда получается значение N, поэтому нет необходимости вызывать TlsAlloc или чаще из-за неинициализированной переменной.
Сведения, отображаемые средство проверки приложений- Параметр 1 - Недопустимый индекс TLS.
- Параметр 2 - Ожидается нижняя часть индекса.
- Параметр 3 - Не используется.
- Параметр 4 - Не используется.
- Тестовый уровень: Ручки
- Идентификатор остановки: INVALID_TLS_VALUE
- Остановить код: 0x301
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Недопустимые параметры вызова WaitForMultipleObjects.
Вероятное причинуЭта остановка создается, если функция в верхней части стека под названием WaitForMultipleObjects с значением NULL в качестве адреса массива дескрипторов, ожидающих или с нулевым числом дескрипторов. Простая команда kb покажет функцию, вызываемую этим API неправильно.
Сведения, отображаемые средство проверки приложений- Параметр 1 - Address of object handles vectors.
- Параметр 2 - Число дескрипторов.
- Параметр 3 - Не используется.
- Параметр 4 - Не используется.
- Тестовый уровень: Ручки
- Идентификатор остановки: INCORRECT_WAIT_CALL
- Остановить код: 0x302
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Дескриптор NULL, переданный в качестве параметра. Необходимо использовать допустимый дескриптор.
Вероятное причинуЭта остановка создается, если функция в верхней части стека передала дескриптор NULL системным подпрограммам.
Сведения, отображаемые средство проверки приложений- Параметр 1 - Не используется.
- Параметр 2 - Не используется.
- Параметр 3 - Не используется.
- Параметр 4 - Не используется.
- Тестовый уровень: Ручки
- Идентификатор остановки: NULL_HANDLE
- Остановить код: 0x303
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Ожидание дескриптора потока в DllMain.
Вероятное причинуЭта остановка создается, если текущий поток в настоящее время выполняет код внутри функции DllMain одного из библиотек DLL, загруженных в текущем процессе, и он вызывает WaitForSingleObject или WaitForMultipleObjects, чтобы ждать дескриптора потока в том же процессе. Это, скорее всего, приведет к взаимоблокировке, так как дескриптор потока не будет сигнализировать, если только второй поток не завершается. Когда второй поток вызовет ExitThread, он попытается получить блокировку загрузчика DLL, а затем вызвать DllMain (DLL_THREAD_DETACH) для всех БИБЛИОТЕК DLL в текущем процессе. Но блокировка загрузчика принадлежит первому потоку (тому, который ожидается в дескрипторе потока), поэтому два потока будут взаимоблокировкой.
Сведения, отображаемые средство проверки приложений- Параметр 1 - Дескриптор потока.
- Параметр 2 - Не используется.
- Параметр 3 - Не используется.
- Параметр 4 - Не используется.
- Тестовый уровень: Ручки
- Идентификатор остановки: WAIT_IN_DLLMAIN
- Остановить код: 0x304
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Неправильный тип объекта для дескриптора.
Вероятное причинуЭта остановка создается, если текущий поток вызывает API с дескриптором к объекту с неправильным типом объекта. Например, вызов SetEvent с дескриптором семафора в качестве параметра создаст эту остановку. Чтобы выполнить отладку этой остановки, выполните указанные ниже действия.
- kb — для отображения текущей трассировки стека. Виновник, вероятно, является библиотекой DLL, которая вызывается в verifier.dll;
- du <parameter2> — для отображения фактического типа дескриптора. Значение дескриптора — parameter1. В приведенном выше примере отобразится сообщение "Семафор".
- du <parameter3> — для отображения типа объекта, ожидаемого API. В приведенном выше примере это имя будет следующим: Event.
- !htrace <parameter1> может оказаться полезным, так как он будет отображать трассировку стека для последних операций открытия и закрытия этого дескриптора.
- Параметр 1 - Handle value.
- Параметр 2 - Имя типа объекта. Использование du для отображения
- Параметр 3 - Ожидаемое имя типа объекта. Использование du для отображения
- Параметр 4 - Не используется.
- Тестовый уровень: Ручки
- Идентификатор остановки: INCORRECT_OBJECT_TYPE
- Остановить код: 0x305
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Выгрузка библиотеки 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-name address. Используйте du, чтобы дампать его.
- Параметр 4 - DLL базовый адрес.
- Тестовый уровень: TLS
- Идентификатор остановки: TLS_LEAK
- Остановить код: 0x350
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Поврежденная структура TLS проверяющего средства.
Вероятное причинуЭта остановка создается, если внутренние структуры проверяющего средства, используемые для хранения состояния слотов TLS для потока, повреждены. Скорее всего, это связано с какой-то случайной коррупцией в процессе.
Сведения, отображаемые средство проверки приложений- Параметр 1 - TEB-адрес.
- Параметр 2 - Ожидаемый адрес TEB.
- Параметр 3 - Thread ID.
- Параметр 4 - Ожидаемый идентификатор потока.
- Тестовый уровень: TLS
- Идентификатор остановки: CORRUPTED_TLS
- Остановить код: 0x351
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Использование недопустимого индекса TLS.
Вероятное причинуЭта остановка создается, если используется недопустимый индекс TLS. В большинстве случаев код по-прежнему использует этот индекс при вызове TlsFree. Ниже приведен пример для потока threadpool. T1: загрузка библиотеки DLL и tlsAlloc T1: обратный вызов очереди T1: пропущенный или отмененный обратный вызов T1: TlsFree T2: обратный вызов выполняется и вызывает TlsSetValue T1: выгрузки dll
Сведения, отображаемые средство проверки приложений- Параметр 1 -TLS-индекс
- Параметр 2 - Не используется.
- Параметр 3 - Не используется.
- Параметр 4 - Не используется.
- Тестовый уровень: TLS
- Идентификатор остановки: INVALID_TLS_INDEX
- Остановить код: 0x352
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Освобождение блока виртуальной памяти с недопустимым размером или начальным адресом.
Вероятное причинуЭта остановка создается, если средство проверки приложений обнаруживает выгрузку VirtualFree или DLL с недопустимым адресом начала или размером выделения памяти. В случае выгрузки библиотеки DLL это, вероятно, означает повреждение памяти в загруженном списке DLL. Чтобы отладить эту остановку, просмотрите текущую трассировку стека и адрес памяти и размер, который будет освобожден, и попробуйте определить, почему они недопустимы.
Сведения, отображаемые средство проверки приложений- Параметр 1 - Выделение базового адреса.
- Параметр 2 - Размер региона памяти.
- Параметр 3 - Не используется.
- Параметр 4 - Не используется.
- Тестовый уровень: Память
- Идентификатор остановки: INVALID_FREEMEM
- Остановить код: 0x600
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Неправильный вызов виртуального выделения.
Вероятное причинуЭта остановка создается, если средство проверки приложений обнаруживает вызов VirtualAlloc с недопустимым адресом запуска или размером выделения памяти. Чтобы отладить эту остановку, просмотрите текущую трассировку стека (кб) и адрес памяти и размер, который будет выделен, и попробуйте определить, почему они недопустимы.
Сведения, отображаемые средство проверки приложений- Параметр 1 - Указатель на базовый адрес выделения.
- Параметр 2 - Указатель на размер области памяти.
- Параметр 3 - Не используется
- Параметр 4 - Не используется
- Тестовый уровень: Память
- Идентификатор остановки: INVALID_ALLOCMEM
- Остановить код: 0x601
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Неправильный вызов представления карты.
Вероятное причинуЭта остановка создается, если средство проверки приложения обнаруживает вызов MapViewOfFile с недопустимым базовым адресом или размером сопоставления. Чтобы отладить эту остановку, просмотрите текущую трассировку стека (кб) и адрес памяти и размер, который будет сопоставлен, и попробуйте определить, почему они недопустимы.
Сведения, отображаемые средство проверки приложений- Параметр 1 - Указатель на сопоставление базового адреса.
- Параметр 2 - Указатель на размер представления.
- Параметр 3 - Не используется.
- Параметр 4 - Не используется.
- Тестовый уровень: Память
- Идентификатор остановки: INVALID_MAPVIEW
- Остановить код: 0x602
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Проверка недопустимого адреса.
Вероятное причинуЭта остановка создается, если средство проверки приложений обнаруживает вызов IsBadXXXPtr с недопустимым адресом (например, адресом в режиме ядра, а не обычным адресом пользовательского режима) для проверки буфера памяти. Чтобы выполнить отладку этой остановки, просмотрите текущую трассировку стека (кб) и попытайтесь определить, почему вызывающий функцию IsBadXXXPtr оказался недопустимым адресом. Во многих случаях адрес является обычным фиктивным, например неинициализированным указателем. Библиотека MSDN содержит несколько причин, по которым приложения не должны использовать API IsBadXXXPtr: в предварительной многозадачной среде можно изменить доступ процесса к тестируемой памяти. Деreferencing потенциально недопустимые указатели могут отключить расширение стека в других потоках. Поток, исчерпающий его стек, при отключении расширения стека приводит к немедленному завершению родительского процесса без всплывающего окна ошибки или диагностических сведений. Потоки в процессе, как ожидается, будут сотрудничать таким образом, чтобы один не освобождал память, что другие потребности. Использование этой функции не отменяет необходимость этого. Если это не сделано, приложение может завершиться непредсказуемым образом. Из-за всех этих причин мы рекомендуем никогда не использовать эти API.
Сведения, отображаемые средство проверки приложений- Параметр 1 - Начальный адрес.
- Параметр 2 - Размер блока памяти.
- Параметр 3 - Недопустимый адрес.
- Параметр 4 - Не используется.
- Тестовый уровень: Память
- Идентификатор остановки: PROBE_INVALID_ADDRESS
- Остановить код: 0x603
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Пробуя бесплатную память.
Вероятное причинуЭта остановка создается, если средство проверки приложений обнаруживает вызов IsBadXXXXPtr для свободного выделения памяти. Это очень плохо, потому что в некоторых других случаях эта память уже была повторно использована для некоторых других выделений. Так как текущий путь кода (kb) не владеет этой памятью, это может привести к повреждению памяти другого человека с катастрофическими последствиями. Чтобы отладить эту остановку, просмотрите текущую трассировку стека (kb) и попробуйте определить, почему вызывающий функцию IsBadXXXPtr в итоге проверит бесплатную память. Адрес может быть простым нефиксным (например, неинициализированным указателем) или, возможно, уже освобожденной памятью. Если память уже освобождена одним из API VirtualFree или UnmapViewOfFile, "!avrf -vs -a параметр3" будет искать журнал трассировок стека путей кода, выделенных или освобожденных из этого адреса, и отобразить эти трассировки стека, если они доступны. Это может показать трассировку стека, которая освобождает эту память. Чаще память — это уже освобожденное выделение кучи. Чтобы проверить это возможность, "!avrf -hp -a parameter3" будет искать журнал трассировок стека путей кода, выделенных или освобожденных из кучи, и отображать эти трассировки стека, если они доступны. Библиотека MSDN содержит несколько причин, по которым приложения не должны использовать API IsBadXXXPtr: в предварительной многозадачной среде можно изменить доступ процесса к тестируемой памяти. Деreferencing потенциально недопустимые указатели могут отключить расширение стека в других потоках. Поток, исчерпающий его стек, при отключении расширения стека приводит к немедленному завершению родительского процесса без всплывающего окна ошибки или диагностических сведений. Потоки в процессе, как ожидается, будут сотрудничать таким образом, чтобы один не освобождал память, что другие потребности. Использование этой функции не отменяет необходимость этого. Если это не сделано, приложение может завершиться непредсказуемым образом. Из-за всех этих причин мы рекомендуем никогда не использовать эти API.
Сведения, отображаемые средство проверки приложений- Параметр 1 - Начальный адрес.
- Параметр 2 - Размер блока памяти.
- Параметр 3 - Адрес страницы свободной памяти.
- Параметр 4 - Не используется.
- Тестовый уровень: Память
- Идентификатор остановки: PROBE_FREE_MEM
- Остановить код: 0x604
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Проверка страницы охранника.
Вероятное причинуЭта остановка создается, если средство проверки приложений обнаруживает вызов IsBadXXXXPtr для выделения памяти, содержащего по крайней мере одну GUARD_PAGE. Это очень плохо, потому что это очень возможно, что этот GUARD_PAGE является окончанием текущего стека потока. Как описано в библиотеке MSDN: деreferencing потенциально недопустимые указатели могут отключить расширение стека в других потоках. Поток, исчерпающий его стек, при отключении расширения стека приводит к немедленному завершению родительского процесса без всплывающего окна ошибки или диагностических сведений. Чтобы отладить эту остановку, просмотрите текущую трассировку стека (кб) и попробуйте определить, почему вызывающий функцию IsBadXXXPtr в итоге проверит GUARD_PAGE. Библиотека MSDN содержит несколько причин, по которым приложения не должны использовать API IsBadXXXPtr: в предварительной многозадачной среде можно изменить доступ процесса к тестируемой памяти. Деreferencing потенциально недопустимые указатели могут отключить расширение стека в других потоках. Поток, исчерпающий его стек, при отключении расширения стека приводит к немедленному завершению родительского процесса без всплывающего окна ошибки или диагностических сведений. Потоки в процессе, как ожидается, будут сотрудничать таким образом, чтобы один не освобождал память, что другие потребности. Использование этой функции не отменяет необходимость этого. Если это не сделано, приложение может завершиться непредсказуемым образом. Из-за всех этих причин мы рекомендуем никогда не использовать эти API.
Сведения, отображаемые средство проверки приложений- Параметр 1 - Начальный адрес.
- Параметр 2 - Размер блока памяти.
- Параметр 3 - Адрес страницы охранника.
- Параметр 4 - Не используется.
- Тестовый уровень: Память
- Идентификатор остановки: PROBE_GUARD_PAGE
- Остановить код: 0x605
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Проверка NULL-адреса.
Вероятное причинуЭта остановка создается, если средство проверки приложений обнаруживает вызов IsBadXXXXPtr с помощью NULL-адреса. Чтобы выполнить отладку этой остановки, просмотрите текущую трассировку стека (кб) и попробуйте определить, почему вызывающий функцию IsBadXXXPtr в итоге получил значение NULL-адреса. Обычно это признак того, кто не проверяет возвращаемое значение одной из функций выделения памяти. Например, приведенный ниже код является неверным:
int main (void)
{
PVOID p;
p = malloc (1024);
Use (p);
return 0;
}
void Use (PVOID p)
{
if (IsBadReadPtr (p)) {
return;
}
//
// p is safe to be used here.
//
}
Этот код должен быть перезаписан следующим образом:
int main (void)
{
PVOID p;
p = malloc (1024);
if (NULL == p)) {
return -1;
}
Use (p);
return 0;
}
void Use (PVOID p)
{
//
// p is safe to be used here.
//
}
Библиотека MSDN содержит несколько причин, по которым приложения не должны использовать API IsBadXXXPtr: в предварительной многозадачной среде можно изменить доступ процесса к тестируемой памяти. Деreferencing потенциально недопустимые указатели могут отключить расширение стека в других потоках. Поток, исчерпающий его стек, при отключении расширения стека приводит к немедленному завершению родительского процесса без всплывающего окна ошибки или диагностических сведений. Потоки в процессе, как ожидается, будут сотрудничать таким образом, чтобы один не освобождал память, что другие потребности. Использование этой функции не отменяет необходимость этого. Если это не сделано, приложение может завершиться непредсказуемым образом. Из-за всех этих причин мы рекомендуем никогда не использовать эти API.
Сведения, отображаемые средство проверки приложений- Параметр 1 - Не используется.
- Параметр 2 - Не используется.
- Параметр 3 - Не используется.
- Параметр 4 - Не используется.
- Тестовый уровень: Память
- Идентификатор остановки: PROBE_NULL
- Остановить код: 0x606
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Проверка блока памяти с недопустимым начальным адресом или размером.
Вероятное причинуЭта остановка создается, если средство проверки приложений обнаруживает вызов IsBadXXXPtr с недопустимым адресом начала (например, адресом режима ядра, а не обычным адресом пользовательского режима) или недопустимым размером буфера памяти для проверки. Чтобы выполнить отладку этой остановки, просмотрите текущую трассировку стека (кб) и попробуйте определить, почему вызывающий функцию IsBadXXXPtr в итоге получил недопустимый адрес или размер. Во многих случаях адрес или размер являются обычными фиктивными, например неинициализированными переменными. Библиотека MSDN содержит несколько причин, по которым приложения не должны использовать API IsBadXXXPtr: в предварительной многозадачной среде можно изменить доступ процесса к тестируемой памяти. Деreferencing потенциально недопустимые указатели могут отключить расширение стека в других потоках. Поток, исчерпающий его стек, при отключении расширения стека приводит к немедленному завершению родительского процесса без всплывающего окна ошибки или диагностических сведений. Потоки в процессе, как ожидается, будут сотрудничать таким образом, чтобы один не освобождал память, что другие потребности. Использование этой функции не отменяет необходимость этого. Если это не сделано, приложение может завершиться непредсказуемым образом. Из-за всех этих причин мы рекомендуем никогда не использовать эти API.
Сведения, отображаемые средство проверки приложений- Параметр 1 - Начальный адрес.
- Параметр 2 - Размер блока памяти.
- Параметр 3 - Не используется.
- Параметр 4 - Не используется.
- Тестовый уровень: Память
- Идентификатор остановки: PROBE_INVALID_START_OR_SIZE
- Остановить код: 0x607
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Выгрузка библиотеки DLL с недопустимым размером или начальным адресом.
Вероятное причинуЭта остановка создается, если средство проверки приложений обнаруживает выгрузку библиотеки DLL с недопустимым адресом начала или размером диапазона памяти DLL. Это, вероятно, означает повреждение памяти внутри внутреннего ntdll.dll загруженного списка DLL.
Сведения, отображаемые средство проверки приложений- Параметр 1 - DLL-базовый адрес памяти.
- Параметр 2 - DLL-размер диапазона памяти.
- Параметр 3 - DLL-name address. Используйте du, чтобы дампать его.
- Параметр 4 - Не используется.
- Тестовый уровень: Память
- Идентификатор остановки: INVALID_DLL_RANGE
- Остановить код: 0x608
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Освобождение блока памяти в диапазоне адресов стека текущего потока.
Вероятное причинуЭта остановка создается, если средство проверки приложений обнаруживает virtualFree для блока памяти, который фактически является частью стека текущего потока (!). Чтобы отладить эту остановку, просмотрите текущую трассировку стека (кб) и попытайтесь понять, почему функция, которая называется VirtualFree, думала, что блок памяти был динамически выделен или сопоставлен, но это фактически память, выделенная из стека.
Сведения, отображаемые средство проверки приложений- Параметр 1 - Выделение базового адреса.
- Параметр 2 - Размер региона памяти.
- Параметр 3 - Stack low limit address.
- Параметр 4 - Stack high limit address.
- Тестовый уровень: Память
- Идентификатор остановки: FREE_THREAD_STACK_MEMORY
- Остановить код: 0x609
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Неверный параметр FreeType для операции VirtualFree.
Вероятное причинуЭта остановка создается, если средство проверки приложений обнаруживает VirtualFree с неправильным значением параметра FreeType. Единственными допустимыми значениями этого параметра являются MEM_DECOMMIT и MEM_RELEASE. Если VirtualFree вызывается с любым другим значением, кроме этих двух, VirtualFree не сможет освободить память. Чтобы отладить эту остановку, просмотрите текущую трассировку стека (кб): вызывающий объект VirtualFree, вероятно, является виновным.
Сведения, отображаемые средство проверки приложений- Параметр 1 - Неправильное значение, используемое приложением.
- Параметр 2 - Ожидаемое правильное значение 1.
- Параметр 3 - Ожидаемое правильное значение 2.
- Параметр 4 - Не используется.
- Тестовый уровень: Память
- Идентификатор остановки: INVALID_FREE_TYPE
- Остановить код: 0x60A
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Попытка освободить блок виртуальной памяти, который уже свободен.
Вероятное причинуЭта остановка создается, если средство проверки приложений обнаруживает VirtualFree для адреса, который уже свободен. Чтобы отладить эту остановку, просмотрите текущую трассировку стека (kb) и попробуйте определить, почему память уже свободна, но приложение пытается снова освободить его. Параметр !avrf -vs -a parameter1" будет искать журнал трассировок стека путей кода, выделенных или освобожденных из этого адреса, и отображать эти трассировки стека, если они доступны. Это может показать трассировку стека, которая освобождает эту память.
Сведения, отображаемые средство проверки приложений- Параметр 1 - Адрес блока памяти.
- Параметр 2 - Не используется.
- Параметр 3 - Не используется.
- Параметр 4 - Не используется.
- Тестовый уровень: Память
- Идентификатор остановки: MEM_ALREADY_FREE
- Остановить код: 0x60B
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Неверный параметр size для операции VirtualFree (MEM_RELEASE).
Вероятное причинуЭта остановка создается, если средство проверки приложений обнаруживает VirtualFree (MEM_RELEASE) с ненулевым значением для параметра dwSize. При использовании MEM_RELEASE допустимое значение для этого параметра равно 0. Если VirtualFree вызывается с любым другим значением, кроме 0, VirtualFree не сможет освободить память. Чтобы отладить эту остановку, просмотрите текущую трассировку стека (кб): вызывающий объект VirtualFree, вероятно, является виновным.
Сведения, отображаемые средство проверки приложений- Параметр 1 - Неверный размер, используемый приложением.
- Параметр 2 - Ожидаемый правильный размер (0).
- Параметр 3 - Не используется.
- Параметр 4 - Не используется.
- Тестовый уровень: Память
- Идентификатор остановки: INVALID_FREE_SIZE
- Остановить код: 0x60C
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Неожиданное исключение, вызываемое в подпрограмме точки входа DLL.
Вероятное причинуЭта остановка создается, если функция точки входа DLL (DllMain) вызывает исключение. Один из примеров, почему это плохо: если dllMain(DLL_PROCESS_ATTACH) вызывает исключение, загрузчик DLL Windows: — перехват и скрытие исключения; — выгрузить библиотеку DLL без вызова библиотеки DLLMain(DLL_PROCESS_DETACH). Поэтому во многих случаях библиотека DLL уже выделила некоторые ресурсы, а затем вызвала исключение, и у нее не будет возможности освободить эти ресурсы в DllMain (DLL_PROCESS_DETACH). Чтобы выполнить отладку этой остановки, выполните указанные ниже действия.
- du <parameter1> — для отображения имени библиотеки DLL;
- Параметр .exr2>< — отображение сведений об исключении;
- Параметр .cxr3><, за которым следует kb , чтобы отобразить сведения о контексте исключения и трассировку стека на время возникновения исключения;
- < параметр4> — это адрес внутренней структуры проверяющего средства и не имеет никакой важности для большинства пользователей проверяющего объекта.
- Параметр 1 - DLL-имя (используйте du для дампа).
- Параметр 2 - Запись исключения. Используйте exr для отображения.
- Параметр 3 - Контекстная запись. Используйте CXR для отображения.
- Параметр 4 - Дескриптор dll проверки
- Тестовый уровень: Память
- Идентификатор остановки: DLL_UNEXPECTED_EXCEPTION
- Остановить код: 0x60D
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Неожиданное исключение, возниканое в функции потока.
Вероятное причинуЭта остановка создается, если функция потока вызывает исключение. Это плохо, потому что весь процесс будет убит. Чтобы выполнить отладку этой остановки, выполните указанные ниже действия.
- < параметр1> может быть значительным для типа исключения. Например, код исключения C0000005 означает нарушение доступа;
- Параметр .exr2>< — отображение сведений об исключении;
- Параметр CXR3><, за которым следует kb , чтобы отобразить сведения о контексте исключения.
- Параметр 1 - Код исключения.
- Параметр 2 - Запись исключения. Используйте exr для отображения.
- Параметр 3 - Контекстная запись. Используйте CXR для отображения.
- Параметр 4 - Не используется.
- Тестовый уровень: Память
- Идентификатор остановки: THREAD_UNEXPECTED_EXCEPTION
- Остановить код: 0x60E
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Непредвиденное исключение, возникающее во время проверки памяти.
Вероятное причинуЭта остановка создается, если во время вызова IsBadXXXPtr возникает исключение. Это означает, что буфер памяти, который мы проверим, фактически не имеет защиты, предполагаемой вызывающим объектом, или что память была освобождена уже и т. д. Дополнительные примеры использования API IsBadXXXPtr не рекомендуется в описании выше в описании других примеров кода остановки (PROBE_INVALID_ADDRESS, PROBE_FREE_MEM, PROBE_GUARD_PAGE, PROBE_NULL, PROBE_INVALID_START_OR_SIZE). Чтобы выполнить отладку этой остановки, выполните указанные ниже действия.
- < параметр1> обычно будет C0000005 и это означает нарушение доступа;
- Параметр .exr2>< — отображение сведений об исключении;
- Параметр .cxr3><, за которым следует kb , чтобы отобразить сведения о контексте исключения и трассировку стека во время возникновения исключения.
- Параметр 1 - Код исключения.
- Параметр 2 - Запись исключения. Используйте exr для отображения.
- Параметр 3 - Контекстная запись. Используйте CXR для отображения.
- Параметр 4 - Не используется
- Тестовый уровень: Память
- Идентификатор остановки: PROBE_UNEXPECTED_EXCEPTION
- Остановить код: 0x60F
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Попытка сброса NULL-адреса.
Вероятное причинуЭта остановка создается, если средство проверки приложений обнаруживает вызов VirtualFree (MEM_RESET) с первым параметром NULL. MEM_RESET следует использовать только для уже выделенной памяти, поэтому ЗНАЧЕНИЕ NULL не является допустимым первым параметром в данном случае.
Сведения, отображаемые средство проверки приложений- Параметр 1 - Не используется.
- Параметр 2 - Не используется.
- Параметр 3 - Не используется.
- Параметр 4 - Не используется.
- Тестовый уровень: Память
- Идентификатор остановки: INVALID_MEM_RESET
- Остановить код: 0x610
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Освобождение блока памяти кучи внутри диапазона адресов стека текущего потока.
Вероятное причинуЭта остановка создается, если средство проверки приложения обнаруживает heapFree для блока памяти, который фактически является частью стека текущего потока (!). Чтобы отладить эту остановку, просмотрите текущую трассировку стека (kb) и попытайтесь понять, почему функция, которая называется HeapFree, думала, что блок памяти был динамически выделен или сопоставлен, но это фактически память, выделенная из стека.
Сведения, отображаемые средство проверки приложений- Параметр 1 - Выделение базового адреса.
- Параметр 2 - Размер региона памяти.
- Параметр 3 - Stack low limit address.
- Параметр 4 - Stack high limit address.
- Тестовый уровень: Память
- Идентификатор остановки: FREE_THREAD_STACK_MEMORY_AS_HEAP
- Остановить код: 0x612
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Распаковка области памяти в диапазоне адресов стека текущего потока.
Вероятное причинуЭта остановка создается, если средство проверки приложения обнаруживает unmapViewOfFile для блока памяти, который фактически является частью стека текущего потока (!). Чтобы отладить эту остановку, просмотрите текущую трассировку стека (kb) и попытайтесь понять, почему функция, которая называется UnmapViewOfFile, думала, что блок памяти был динамически выделен или сопоставлен, но это была фактически память, выделенная из стека.
Сведения, отображаемые средство проверки приложений- Параметр 1 - Выделение базового адреса.
- Параметр 2 - Размер региона памяти.
- Параметр 3 - Stack low limit address.
- Параметр 4 - Stack high limit address.
- Тестовый уровень: Память
- Идентификатор остановки: FREE_THREAD_STACK_MEMORY_AS_MAP
- Остановить код: 0x613
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Неверный адрес RTL_RESOURCE.
Вероятное причинуЭта остановка создается, если приложение пытается использовать NULL или другой неправильный адрес (например, адрес режима ядра) в качестве адреса допустимого объекта. RtlInitializeResource (NULL) является неправильным вызовом API, который активирует этот тип остановки проверяющего средства. param1 — это неверный адрес, используемый, и виновник находится в трассировке стека (отображается с помощью базы знаний).
Сведения, отображаемые средство проверки приложений- Параметр 1 - Address.
- Параметр 2 - Не используется.
- Параметр 3 - Не используется.
- Параметр 4 - Не используется.
- Тестовый уровень: Память
- Идентификатор остановки: INVALID_RESOURCE_ADDRESS
- Остановить код: 0x614
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Недопустимый адрес критического раздела.
Вероятное причинуЭта остановка создается, если приложение пытается использовать NULL или другой неправильный адрес (например, адрес режима ядра) в качестве адреса допустимого объекта. EnterCriticalSection(NULL) — это неправильный вызов API, который активирует этот тип остановки проверяющего средства. param1 — это неверный адрес, используемый, и виновник находится в трассировке стека (отображается с помощью базы знаний).
Сведения, отображаемые средство проверки приложений- Параметр 1 - Address.
- Параметр 2 - Не используется.
- Параметр 3 - Не используется.
- Параметр 4 - Не используется.
- Тестовый уровень: Память
- Идентификатор остановки: INVALID_CRITSECT_ADDRESS
- Остановить код: 0x615
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Попытайтесь выполнить код в неисполнимой памяти.
Вероятное причинуЭта остановка создается, если приложение пытается запустить код из адреса, отличного от исполняемого или свободного. Чтобы выполнить отладку этой остановки, выполните указанные ниже действия.
- u <parameter2> — для отмены анализа кода виновника
- Параметр .exr3>< — отображение сведений об исключении
- Параметр .cxr4><, за которым следует kb , чтобы отобразить сведения о контексте исключения и трассировку стека за время возникновения исключения.
- Параметр 1 - Адрес, к который осуществляется доступ.
- Параметр 2 - Код, выполняющий недопустимый доступ.
- Параметр 3 - Запись исключения. Используйте exr для отображения.
- Параметр 4 - Контекстная запись. Используйте CXR для отображения.
- Тестовый уровень: Память
- Идентификатор остановки: THREAD_UNEXPECTED_EXCEPTION_CODE
- Остановить код: 0x616
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
При инициализации выходного буфера возникает непредвиденное исключение.
Вероятное причинуЭта остановка создается, если при инициализации буфера, указанного в качестве выходного параметра для API Win32 или CRT. Обычно это означает, что указанный размер выходного буфера неверный. Чтобы выполнить отладку этой остановки, выполните указанные ниже действия.
- Параметр .exr3>< — отображение сведений об исключении
- Параметр .cxr4><, за которым следует kb , чтобы отобразить сведения о контексте исключения и трассировку стека во время возникновения исключения.
- Параметр 1 - Буфер начального адреса.
- Параметр 2 - Buffer size.
- Параметр 3 - Запись исключения. Используйте exr для отображения.
- Параметр 4 - Контекстная запись. Используйте CXR для отображения.
- Тестовый уровень: Память
- Идентификатор остановки: OUTBUFF_UNEXPECTED_EXCEPTION
- Остановить код: 0x617
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Непредвиденное исключение при попытке найти размер блока кучи.
Вероятное причинуЭта остановка создается, если при вызове HeapSize для блока кучи, который освобождается. Обычно это означает, что указанный адрес блока кучи неверный или куча повреждена. Чтобы выполнить отладку этой остановки, выполните указанные ниже действия.
- Параметр .exr3>< — для отображения записи исключений
- Параметр .cxr4><, за которым следует kb , чтобы отобразить сведения о контексте исключения и трассировку стека во время возникновения исключения.
- Параметр 1 - Адрес освобождаемого блока кучи.
- Параметр 2 - Кучи дескриптор.
- Параметр 3 - Запись исключения. Используйте exr для отображения.
- Параметр 4 - Контекстная запись. Используйте CXR для отображения.
- Тестовый уровень: Память
- Идентификатор остановки: SIZE_HEAP_UNEXPECTED_EXCEPTION
- Остановить код: 0x618
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Освобождение блока памяти с недопустимым адресом начала.
Вероятное причинуЭта остановка создается, если программа вызывает VirtualFree (MEM_RELEASE) с параметром lpAddress, который не является базовым адресом, возвращаемым функцией VirtualAlloc или VirtualAllocEx, когда регион страниц был зарезервирован; Чтобы выполнить отладку этой остановки, выполните указанные ниже действия.
- kb — для отображения текущей трассировки стека, вызывающей VirtualFree. Вероятной причиной является библиотека DLL, которая вызывает VirtualFree.
- Параметр 1 - Адрес свободного блока памяти.
- Параметр 2 - Ожидаемый правильный адрес блока памяти.
- Параметр 3 - Не используется.
- Параметр 4 - Не используется.
- Тестовый уровень: Память
- Идентификатор остановки: INVALID_FREEMEM_START_ADDRESS
- Остановить код: 0x619
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Распакуйте блок памяти с недопустимым адресом начала.
Вероятное причинуЭта остановка создается, если программа вызывает UnmapViewOfFile с параметром lpBaseAddress, который не идентичен значению, возвращаемого предыдущим вызовом функции MapViewOfFile или MapViewOfFileEx. Чтобы выполнить отладку этой остановки, выполните указанные ниже действия.
- kb — для отображения текущей трассировки стека, вызывающей UnmapViewOfFile. Вероятной причиной является библиотека DLL, которая вызывает UnmapViewOfFile.
- Параметр 1 - Адрес блока памяти, который не сопоставляется.
- Параметр 2 - Ожидаемый правильный адрес блока памяти.
- Параметр 3 - Не используется.
- Параметр 4 - Не используется.
- Тестовый уровень: Память
- Идентификатор остановки: INVALID_UNMAPVIEW_START_ADDRESS
- Остановить код: 0x61A
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
неожиданное исключение, возникное в функции обратного вызова threadpool.
Вероятное причинуЭта остановка создается, если функция обратного вызова в потоке threadpool вызывает исключение. Чтобы выполнить отладку этой остановки, выполните указанные ниже действия.
- < параметр1> может быть значительным для типа исключения. Например, код исключения C0000005 означает нарушение доступа.
- Параметр .exr2>< — для отображения сведений об исключении.
- Параметр CXR3><, за которым следует kb , чтобы отобразить сведения о контексте исключения.
- Параметр 1 - Код исключения
- Параметр 2 - Запись исключения. Используйте exr для отображения
- Параметр 3 - Контекстная запись. Используйте CXR для отображения
- Параметр 4 - Не используется
- Тестовый уровень: Память
- Идентификатор остановки: THREADPOOL_UNEXPECTED_EXCEPTION
- Остановить код: 0x61B
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
код в неисполнимой памяти
Вероятное причинуЭта остановка создается, если приложение пытается запустить код из адреса, отличного от исполняемого или свободного. Чтобы выполнить отладку этой остановки, выполните указанные ниже действия.
- u <parameter2> — для отмены анализа кода виновника
- Параметр .exr3>< — отображение сведений об исключении
- Параметр .cxr4><, за которым следует kb , чтобы отобразить сведения о контексте исключения и трассировку стека за время возникновения исключения.
- Параметр 1 - Адрес, к к которой осуществляется доступ
- Параметр 2 - Код, выполняющий недопустимый доступ
- Параметр 3 - Запись исключения. Используйте exr для отображения.
- Параметр 4 - Контекстная запись. Используйте CXR для отображения.
- Тестовый уровень: Память
- Идентификатор остановки: THREADPOOL_UNEXPECTED_EXCEPTION_CODE
- Остановить код: 0x61C
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Создание исполняемой кучи.
Вероятное причинуЭта остановка создается, если приложение создает исполняемую кучу. Это может быть риск безопасности.
Сведения, отображаемые средство проверки приложений- Параметр 1 - Не используется.
- Параметр 2 - Не используется.
- Параметр 3 - Не используется.
- Параметр 4 - Не используется.
- Тестовый уровень: Память
- Идентификатор остановки: EXECUTABLE_HEAP
- Остановить код: 0x61D
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Выделение исполняемой памяти.
Вероятное причинуЭта остановка создается, если приложение выделяет исполняемую память. Это может быть риск безопасности.
Сведения, отображаемые средство проверки приложений- Параметр 1 - Защита страницы, указанная вызывающим оператором.
- Параметр 2 - Не используется.
- Параметр 3 - Не используется.
- Параметр 4 - Не используется.
- Тестовый уровень: Память
- Идентификатор остановки: EXECUTABLE_MEMORY
- Остановить код: 0x61E
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Попытайтесь выполнить код в неисполнимой памяти (первый шанс).
Вероятное причинуЭта остановка создается, если приложение пытается запустить код из адреса, отличного от исполняемого или свободного. Чтобы выполнить отладку этой остановки, выполните указанные ниже действия.
- u <parameter2> — для отмены анализа кода виновника
- Параметр .exr3>< — отображение сведений об исключении
- Параметр .cxr4><, за которым следует kb , чтобы отобразить сведения о контексте исключения и трассировку стека за время возникновения исключения.
- Параметр 1 - Адрес, к который осуществляется доступ.
- Параметр 2 - Код, выполняющий недопустимый доступ.
- Параметр 3 - Запись исключения. Используйте exr для отображения.
- Параметр 4 - Контекстная запись. Используйте CXR для отображения.
- Тестовый уровень: Исключения
- Идентификатор остановки: FIRST_CHANCE_ACCESS_VIOLATION_CODE
- Остановить код: 0x650
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Приоритет этого потока threadpool был изменен.
Вероятное причинуЭта остановка создается, если приоритет потока изменяется при возвращении в threadpool.
Сведения, отображаемые средство проверки приложений- Формат: — threadpool threadpool (%x) с выполнением обратного вызова (%p) имеет измененный приоритет потока (%i -> %i)
- Параметр 1 - Функция обратного вызова.
- Параметр 2 - Context.
- Параметр 3 - Threadpool Object Stack trace, используйте dps для дампа.
- Параметр 4 - Текущий приоритет.
- Тестовый уровень: Threadpool
- Идентификатор остановки: INCONSISTENT_PRIORITY
- Остановить код: 0x700
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Сходство этого потока threadpool было изменено.
Вероятное причинуЭта остановка создается, если сопоставление потоков изменяется при возвращении в threadpool.
Сведения, отображаемые средство проверки приложений- Формат: - threadpool threadpool (%x) с выполнением обратного вызова (%p) имеет измененную маску сходства потоков (%p -> %p)
- Параметр 1 - Функция обратного вызова.
- Параметр 2 - Context.
- Параметр 3 - Threadpool Object Stack trace, используйте dps для дампа.
- Параметр 4 - Current affinity.
- Тестовый уровень: Threadpool
- Идентификатор остановки: INCONSISTENT_AFFINITY_MASK
- Остановить код: 0x701
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Необработанные 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 <threadid> , чтобы просмотреть сообщения, опубликованные в этом потоке.
- Тестовый уровень: Threadpool
- Идентификатор остановки: ORPHANED_THREAD_MESSAGE
- Остановить код: 0x702
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Незакрытое окно принадлежало текущему потоку.
Вероятное причинуЭта остановка создается, если любое окно сохраняется в живых, когда этот поток threadpool возвращается в пул.
Сведения, отображаемые средство проверки приложений- Формат: - threadpool thread (%x) с выполнением обратного вызова (%p) имеет допустимый hwnd (%x: %s) который может получать сообщения
- Параметр 1 - Функция обратного вызова.
- Параметр 2 - Context.
- Параметр 3 - Threadpool Object Stack trace, используйте dps для дампа.
- Параметр 4 - Threadpool thread id.
- Тестовый уровень: Threadpool
- Идентификатор остановки: ORPHANED_THREAD_WINDOW
- Остановить код: 0x703
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
ExitThread() в потоке threadpool.
Вероятное причинуЭта остановка создается, если ExitThread вызывается в потоке threadpool. Это запрещено, так как это сделает систему нестабильной. Это приведет к утечке ресурсов, замораживанию или AV.
Сведения, отображаемые средство проверки приложений- Параметр 1 - Функция обратного вызова.
- Параметр 2 - Context.
- Параметр 3 - Threadpool Object Stack trace, используйте dps для дампа.
- Параметр 4 - Не используется.
- Тестовый уровень: Threadpool
- Идентификатор остановки: ILLEGAL_THREAD_EXIT
- Остановить код: 0x704
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Поток находится в состоянии олицетворения, когда он возвращается в поток threadpool.
Вероятное причинуЭта остановка создается, если функция обратного вызова изменяет маркер потока, чтобы олицетворить другого пользователя и забыл сбросить его, прежде чем вернуть его обратно в threadpool.
Сведения, отображаемые средство проверки приложений- Параметр 1 - Функция обратного вызова.
- Параметр 2 - Context.
- Параметр 3 - Threadpool Object Stack trace, используйте dps для дампа.
- Параметр 4 - Не используется.
- Тестовый уровень: Threadpool
- Идентификатор остановки: THREAD_IN_IMPERSONATION
- Остановить код: 0x705
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Функция, требующая постоянного потока, вызывается.
Вероятное причинуНекоторые API Microsoft Windows должны вызываться в выделенном или постоянном потоке. В threadpool, как правило, не следует использовать локальное хранилище потоков и асинхронные вызовы, требующие постоянного потока, например функцию RegNotifyChangeKeyValue. Однако такие функции можно поместить в очередь в постоянный рабочий поток с помощью QueueUserWorkItem с параметром WT_EXECUTEINPERSISTENTTHREAD. База знаний в отладчике отобразит вызывающий объект.
Сведения, отображаемые средство проверки приложений- Параметр 1 - Функция обратного вызова.
- Параметр 2 - Context.
- Параметр 3 - Threadpool Object Stack trace, используйте dps для дампа.
- Параметр 4 - Не используется.
- Тестовый уровень: Threadpool
- Идентификатор остановки: PERSISTED_THREAD_NEEDED
- Остановить код: 0x706
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Поток находится в состоянии грязной транзакции.
Вероятное причинуЭта остановка создается, если функция обратного вызова забыла закрыть или сбросить текущий дескриптор транзакции.
Сведения, отображаемые средство проверки приложений- Параметр 1 - Функция обратного вызова.
- Параметр 2 - Context.
- Параметр 3 - Threadpool Object Stack trace, используйте dps для дампа.
- Параметр 4 - Дескриптор транзакции.
- Тестовый уровень: Threadpool
- Идентификатор остановки: DIRTY_TRANSACTION_CONTEXT
- Остановить код: 0x707
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Это состояние threadpool имеет несбалансированные вызовы CoInit и CoUnInit.
Вероятное причинуЭта остановка создается, если функция обратного вызова вызывает CoInit и CoUnInit unbalanced.
Сведения, отображаемые средство проверки приложений- Параметр 1 - Функция обратного вызова.
- Параметр 2 - Context.
- Параметр 3 - Threadpool Object Stack trace, используйте dps для дампа.
- Параметр 4 - Balanced Call counts.
- Тестовый уровень: Threadpool
- Идентификатор остановки: DIRTY_COM_STATE
- Остановить код: 0x708
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Параметры для объекта таймера несогласованы. Значение 0, если при создании таймера WT_EXECUTEONLYONCE указывается
Вероятное причинуЭта остановка создается, если период для сигнала таймера не равен нулю, когда таймер будет сигнализировать только один раз с флагом WT_EXECUTEONLYONCE
Сведения, отображаемые средство проверки приложений- Параметр 1 - Период, указанный.
- Параметр 2 - Флаги, указанные.
- Параметр 3 - Не используется.
- Параметр 4 - Не используется.
- Тестовый уровень: Threadpool
- Идентификатор остановки: INCONSISTENT_TIMER_PARAMS
- Остановить код: 0x709
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Блокировка загрузчика удерживается потоком threadpool в обратном вызове.
Вероятное причинуЭта остановка создается, если блокировка загрузчика хранится в обратном вызове и не освобождается, когда поток возвращается в threadpool.
Сведения, отображаемые средство проверки приложений- Параметр 1 - Функция обратного вызова.
- Параметр 2 - Context.
- Параметр 3 - Threadpool Object Stack trace, используйте dps для дампа.
- Параметр 4 - Не используется.
- Тестовый уровень: Threadpool
- Идентификатор остановки: LOADER_LOCK_HELD
- Остановить код: 0x70A
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Предпочтительный язык задается потоком threadpool в обратном вызове.
Вероятное причинуЭта остановка создается, если предпочтительный язык задан в обратном вызове и не очищается при возврате потока в threadpool.
Сведения, отображаемые средство проверки приложений- Параметр 1 - Функция обратного вызова.
- Параметр 2 - Context.
- Параметр 3 - Threadpool Object Stack trace, используйте dps для дампа.
- Параметр 4 - Не используется.
- Тестовый уровень: Threadpool
- Идентификатор остановки: PREFERRED_LANGUAGES_SET
- Остановить код: 0x70B
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Фоновый приоритет задается потоком threadpool в обратном вызове.
Вероятное причинуЭта остановка создается, если фоновый приоритет задан в обратном вызове и не отключается, когда поток возвращается в threadpool.
Сведения, отображаемые средство проверки приложений- Параметр 1 - Функция обратного вызова.
- Параметр 2 - Context.
- Параметр 3 - Threadpool Object Stack trace, используйте dps для дампа.
- Параметр 4 - Не используется.
- Тестовый уровень: Threadpool
- Идентификатор остановки: BACKGROUND_PRIORITY_SET
- Остановить код: 0x70C
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
TerminateThread() в потоке threadpool.
Вероятное причинуЭта остановка создается, если метод TerminateThread вызывается в потоке threadpool. Это запрещено, так как это сделает систему нестабильной. Это приведет к утечке ресурсов, замораживанию или AV.
Сведения, отображаемые средство проверки приложений- Параметр 1 - Не используется.
- Параметр 2 - Не используется.
- Параметр 3 - Не используется.
- Параметр 4 - Не используется.
- Тестовый уровень: Threadpool
- Идентификатор остановки: ILLEGAL_THREAD_TERMINATION
- Остановить код: 0x70D
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Стек был раскручен при ожидании асинхронной операции ввода-вывода.
Вероятное причинуЭта остановка создается, если приложение выпустило операцию ввода-вывода, которая использует переменную стека и не ждала завершения ввода-вывода, что приводит к повреждению стека. Чтобы выполнить отладку этой остановки, выполните указанные ниже действия.
- dps <parameter4> для отображения трассировки стека при выпуске ввода-вывода. Параметр1 указывает адрес на основе стека и параметр3 потока, выдавшего ввод-вывод.
- Параметр 1 - Адрес переменной стека, используемой в ввода-выводах.
- Параметр 2 - Текущий указатель стека.
- Параметр 3 - Исходный поток, выдаваемый ввода-вывода.
- Параметр 4 - Stack Trace при выпуске ввода-вывода.
- Тестовый уровень: ИО
- Идентификатор остановки: ASYNCIO_STACK_UNWIND
- Остановить код: 0x800
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Стек был поврежден при ожидании асинхронной операции ввода-вывода.
Вероятное причинуЭта остановка создается, если приложение выпустило операцию ввода-вывода, которая использует переменную стека и не ждала завершения ввода-вывода, что приводит к повреждению стека. Чтобы выполнить отладку этой остановки, выполните указанные ниже действия.
- dps <parameter4> для отображения трассировки стека при выпуске ввода-вывода. Параметр1 указывает адрес на основе стека и параметр3 потока, выдавшего ввод-вывод.
- Параметр 1 - Адрес переменной стека, используемой в ввода-выводах.
- Параметр 2 - Текущий указатель стека.
- Параметр 3 - Исходный поток, выдаваемый ввода-вывода.
- Параметр 4 - Stack Trace при выпуске ввода-вывода.
- Тестовый уровень: ИО
- Идентификатор остановки: ASYNCIO_CORRUPTED_STACK
- Остановить код: 0x801
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Использование освобожденного адреса в ожидающей операции ввода-вывода.
Вероятное причинуЭта остановка создается, если приложение выпустило операцию ввода-вывода и освобождает память, используемую в операции ввода-вывода до завершения ввода-вывода, что приводит к повреждению памяти и т. д. Чтобы выполнить отладку этой остановки, выполните указанные ниже действия.
- dps <parameter4> — для отображения трассировки стека при выпуске ввода-вывода. Параметр1 указывает адрес, используемый в ввода-выводах. Параметр2 указывает, что адрес освобождается и параметр3 поток, выдаваемый ввода-вывода.
- Параметр 1 - Адрес, используемый в ввода-выводах.
- Параметр 2 - Адрес освобожден.
- Параметр 3 - Исходный поток, выдаваемый ввода-вывода.
- Параметр 4 - Stack Trace при выпуске ввода-вывода.
- Тестовый уровень: ИО
- Идентификатор остановки: FREED_ADDRESS_IN_PENDINGIO
- Остановить код: 0x802
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Блок состояния ввода-вывода (OVERLAPPED) повторно используется во время ожидания связанного запроса ввода-вывода.
Вероятное причинуЭта остановка создается, если приложение повторно использовало блок состояния ввода-вывода (OVERLAPPED), а запрос ввода-вывода с помощью блока состояния ввода-вывода (OVERLAPPED) по-прежнему ожидается. Чтобы выполнить отладку этой остановки, выполните указанные ниже действия.
- параметр dps3>< для отображения трассировки стека при выпуске исходного ввода-вывода. Параметр1 указывает адрес, используемый в потоке ввода-вывода и параметра2, выдаваемом ввода-вывода.
- Параметр 1 - Адрес блока состояния ввода-вывода (OVERLAPPED).
- Параметр 2 - Исходный поток, выдаваемый ввода-вывода.
- Параметр 3 - Stack Trace при выпуске ввода-вывода.
- Параметр 4 - Не используется.
- Тестовый уровень: ИО
- Идентификатор остановки: REUSED_IOSTATUS_BLOCK
- Остановить код: 0x803
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Использование неподдерживаемого флага FILE_ATTRIBUTE_NOT_CONTENT_INDEXED в CreateFile
Вероятное причинуСтарая версия MSDN ошибочно задокументирована CreateFile в качестве поддержки FILE_ATTRIBUTE_NOT_CONTENT_INDEXED. Если этот флаг предназначен, его следует задать с помощью других функций API, таких как SetFileAttributes.
- ln <parameter1> — чтобы найти вызывающий объект CreateFile.
- Формат: — CreateFile при написании %hs%ws с флагами %08x %08x %08x
- Параметр 1 - Return Address.
- Параметр 2 - Не используется.
- Параметр 3 - Не используется.
- Параметр 4 - Не используется.
- Тестовый уровень: ИО
- Идентификатор остановки: USING_BAD_CREATEFILE_FLAG
- Остановить код: 0x804
- Суровость: Предупреждение
- Одноразовая ошибка:
- Отчет об ошибке: Никакой
- Войдите в файл: да
- Создайте обратную сторону: да
Утечка выделения кучи.
Вероятное причинуЭта остановка создается, если владелец библиотеки dll выделения был динамически выгружен во время владения ресурсами.
Сведения, отображаемые средство проверки приложений- Параметр 1 - Адрес утечки выделения. Запустите !кучу -p -a <адрес> , чтобы получить дополнительные сведения о выделении.
- Параметр 2 - Адрес трассировки стека выделения. Запустите адрес> dps <для просмотра стека выделения.
- Параметр 3 - Адрес имени библиотеки dll владельца. Запустите du <address> , чтобы прочитать имя библиотеки DLL.
- Параметр 4 - Base of the owner dll. Запустите reload <dll_name> = <адрес> для перезагрузки библиотеки DLL владельца. Используйте lm, чтобы получить дополнительные сведения о загруженных и выгрузочных модулях.
- Тестовый уровень: Течь
- Идентификатор остановки: РАСПРЕДЕЛЕНИЕ
- Остановить код: 0x900
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
ДЕСКРИПтор был утечкой.
Вероятное причинуЭта остановка создается, если владелец библиотеки DLL дескриптора был динамически выгружен во время владения ресурсами. Чтобы выполнить отладку этой остановки, выполните команду !htrace parameter1, чтобы получить дополнительные сведения об дескрипторе.
Сведения, отображаемые средство проверки приложений- Параметр 1 - Значение утечки дескриптора. Запустите дескриптор !htrace <, чтобы получить дополнительные сведения об дескрипторе> , если включена трассировка дескриптора.
- Параметр 2 - Адрес трассировки стека выделения. Запустите адрес> dps <для просмотра стека выделения.
- Параметр 3 - Адрес имени библиотеки dll владельца. Запустите du <address> , чтобы прочитать имя библиотеки DLL.
- Параметр 4 - Base of the owner dll. Запустите reload <dll_name> = <адрес> для перезагрузки библиотеки DLL владельца. Используйте lm, чтобы получить дополнительные сведения о загруженных и выгрузочных модулях.
- Тестовый уровень: Течь
- Идентификатор остановки: РУЧКА
- Остановить код: 0x901
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
HKEY был утечкой.
Вероятное причинуЭта остановка создается, если владелец библиотеки dll раздела реестра динамически выгружается во время владения ресурсами.
Сведения, отображаемые средство проверки приложений- Параметр 1 - Значение утечки HKEY.
- Параметр 2 - Адрес трассировки стека выделения. Запустите адрес> dps <для просмотра стека выделения.
- Параметр 3 - Адрес имени библиотеки dll владельца. Запустите du <address> , чтобы прочитать имя библиотеки DLL.
- Параметр 4 - Base of the owner dll. Запустите reload <dll_name> = <адрес> для перезагрузки библиотеки DLL владельца. Используйте lm, чтобы получить дополнительные сведения о загруженных и выгрузочных модулях.
- Тестовый уровень: Течь
- Идентификатор остановки: РЕГИСТРАТУРА
- Остановить код: 0x902
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Произошла утечка виртуального резервирования.
Вероятное причинуЭта остановка создается, если владелец библиотеки DLL виртуального резервирования был динамически выгружен во время владения ресурсами.
Сведения, отображаемые средство проверки приложений- Параметр 1 -Утечка адреса резервирования.
- Параметр 2 - Адрес трассировки стека выделения. Запустите адрес> dps <для просмотра стека выделения.
- Параметр 3 - Адрес имени библиотеки dll владельца. Запустите du <address> , чтобы прочитать имя библиотеки DLL.
- Параметр 4 - Base of the owner dll. Запустите reload <dll_name> = <адрес> для перезагрузки библиотеки DLL владельца. Используйте lm, чтобы получить дополнительные сведения о загруженных и выгрузочных модулях.
- Тестовый уровень: Течь
- Идентификатор остановки: VIRTUAL_RESERVATION
- Остановить код: 0x903
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
BSTR был утечкой.
Вероятное причинуЭта остановка создается, если владелец библиотеки DLL sysString был динамически выгружен во время владения ресурсами.
Сведения, отображаемые средство проверки приложений- Параметр 1 - Адрес утечки BSTR. Запустите !кучу -p -a <адрес> , чтобы получить дополнительные сведения о выделении.
- Параметр 2 - Адрес трассировки стека выделения. Запустите адрес> dps <для просмотра стека выделения.
- Параметр 3 - Адрес имени библиотеки dll владельца. Запустите du <address> , чтобы прочитать имя библиотеки DLL.
- Параметр 4 - Base of the owner dll. Запустите reload <dll_name> = <адрес> для перезагрузки библиотеки DLL владельца. Используйте lm, чтобы получить дополнительные сведения о загруженных и выгрузочных модулях.
- Тестовый уровень: Течь
- Идентификатор остановки: SYSSTRING
- Остановить код: 0x904
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Уведомление о power не было отменено.
Вероятное причинуЭта остановка создается, если библиотека DLL зарегистрирована для уведомления о power и была динамически выгружена без отмены регистрации.
Сведения, отображаемые средство проверки приложений- Параметр 1 - Адрес регистрации power notification.
- Параметр 2 - Адрес трассировки стека регистрации. Запустите адрес> dps <для просмотра стека выделения.
- Параметр 3 - Адрес имени библиотеки dll владельца. Запустите du <address> , чтобы прочитать имя библиотеки DLL.
- Параметр 4 - Base of the owner dll. Запустите reload <dll_name> = <адрес> для перезагрузки библиотеки DLL владельца. Используйте lm, чтобы получить дополнительные сведения о загруженных и выгрузочных модулях.
- Тестовый уровень: Течь
- Идентификатор остановки: POWER_NOTIFICATION
- Остановить код: 0x905
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
Произошла утечка выделения COM.
Вероятное причинуЭта остановка создается, если владелец библиотеки DLL выделения COM был динамически выгружен во время владения ресурсами.
Сведения, отображаемые средство проверки приложений- Параметр 1 - Адрес утечки выделения COM. Запустите !кучу -p -a <адрес> , чтобы получить дополнительные сведения о выделении.
- Параметр 2 - Адрес трассировки стека выделения. Запустите адрес> dps <для просмотра стека выделения.
- Параметр 3 - Адрес имени библиотеки dll владельца. Запустите du <address> , чтобы прочитать имя библиотеки DLL.
- Параметр 4 - Base of the owner dll. Запустите reload <dll_name> = <адрес> для перезагрузки библиотеки DLL владельца. Используйте lm, чтобы получить дополнительные сведения о загруженных и выгрузочных модулях.
- Тестовый уровень: Течь
- Идентификатор остановки: COM_ALLOCATION
- Остановить код: 0x906
- Суровость: Ошибка
- Одноразовая ошибка:
- Отчет об ошибке: Ломать
- Войдите в файл: да
- Создайте обратную сторону: да
См. также
Средство проверки приложений — остановки кодов и определений
Средство проверки приложений — обзор
Средство проверки приложений — функции
Средство проверки приложений — тестирование приложений
Средство проверки приложений — тесты в средство проверки приложений
Средство проверки приложений— останавливается средство проверки приложений отладки