Что означает код BSOD 0x40 (TARGET_MDL_TOO_SMALL)?

 
Также может означать:
КонстантаТипОС
ERROR_NETNAME_DELETEDОшибка WindowsWindows
ENONETerrnoLinux
EHOSTDOWNerrnomacOS
ENONETerrnoSolaris
Предыдущий Следующий
NO_MORE_SYSTEM_PTES MUST_SUCCEED_POOL_EMPTY

TARGET_MDL_TOO_SMALL

Проверка TARGET_MDL_TOO_SMALL имеет значение 0x00000040. Она означает, что драйвер неправильно использовал IoBuildPartialMdl.

Параметры TARGET_MDL_TOO_SMALL

Нет

Причина

Это ошибка драйвера. Драйвер вызвал функцию IoBuildPartialMdl и передал ей MDL для отображения части исходного MDL, но целевой MDL недостаточно велик для отображения всего запрошенного диапазона адресов.

Решение

Исходный и целевой MDL, а также длина отображаемого диапазона адресов являются первым, вторым и четвёртым аргументами функции IoBuildPartialMdl. Поэтому при отладке может помочь трассировка стека этой функции. Убедитесь, что код правильно вычисляет необходимый размер целевого MDL для длины диапазона адресов, передаваемой функции.

Что проверить

MDL, переданный как целевой, не описывает достаточно большой буфер для выполняемой операции. Сравните размер запроса с byte count и диапазоном MDL, затем найдите драйвер, сформировавший его. Исправление должно корректировать размер/разбиение I/O, а не обходить проверку.

Ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.