BSOD 0x00000018 — REFERENCE_BY_POINTER

rating_on-3868056rating_off-9217470rating_off-9217470rating_off-9217470rating_off-9217470 (1 votes, average: 1,00 out of 5)

0x00000018_thumb-3226545 При возникновении исключения отображаются следующие параметры.

Параметр Описание
1 Тип объекта, для которого было уменьшено количество ссылок
2 Объект, для которого было уменьшено количество ссылок
3 Зарезервировано
4 Зарезервировано

Причины

Количество ссылок на объект не соответствует текущему состоянию объекта. Каждый раз, когда драйвер использует указатель на объект, он вызывает процедуру ядра, которая увеличивает количество ссылок на объект на 1. Когда работа с объектом завершена, драйвер вызывает другую процедуру, которая уменьшает количество ссылок на 1.

Драйвер должен выполнить одинаковое количество вызовов процедуры увеличения – уменьшения ссылок на объект. Причиной ошибки является несогласованность количества ссылок на объект. Обычно причиной является драйвер, который уменьшает количество ссылок на объект много раз, выполняя лишние вызовы разыменования объекта. Этот стоп код может генерироваться когда количество ссылок на объект уменьшается до нуля или меньше нуля, при том что остаются незакрытые описатели объекта.

Примечание: под процедурой, которая изменяет значение счетчика ссылок, подразумевается сама система.

Устранение

Убедитесь, что количество вызовов увеличения и уменьшения счетчика ссылок соответствует друг другу. Убедитесь, что драйвер не выполняет лишние вызовы, которые уменьшают значение счетчика ссылок (см. параметр 2).

Для того, чтобы найти описатель и указатель на счетчик объекта воспользуйтесь командой отладчика !object address (address – адрес объекта, указанного в параметре 2).

Автор

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: