Ошибка 0x00000018: REFERENCE_BY_POINTER

1 ответ(ов) в теме
moto
не в сети 3 часа
На сайте с 12.03.2017
Администратор
Тем 3411
Сообщения 13605
0
11:36

0x00000018 указывает, что счетчик ссылок на объект имеет недопустимое значение для текущего состояния объекта.

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

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

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

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

kd> !object address<br><br>Где object address - адрес объекта, данного в параметре 2.

Параметры REFERENCE_BY_POINTER:

Тип объекта, счетчик ссылок которого понижается;<br>Объект, счетчик ссылок которого понижается;<br>Зарезервированный параметр;<br>Зарезервированный параметр.

Редакции сообщения
0

Ваше имя *

Ваш E-mail *

не публикуется

Текст сообщения *