AndreyDmitriev
@AndreyDmitriev

Функции WriteFile и ReadFile возвращают ERROR_NOT_ENOUGH_MEMORY — где могут быть грабли?

Такой вопрос - есть компьютер (восстановлен из образа акронисом). Win7 32-бит SP1. После того, как заказчик накатил на него секьюрити патчи (требуемые полиси компании) десктопное приложение стало спонтанно выбрасывать ERROR_NOT_ENOUGH_MEMORY при чтении и записи файлов. Может проработать десять дней без сбоев а может выбросить десять сбоев в день. Промышленная система работает 24х7, так что это дело довольно критично. Расход памяти - первое что проверили, там всё хорошо. Причём OutOfMemory можно время от времени словить, даже просто копируя небольшие файлы в эксплорере.

Учебник пишет вот что:
The WriteFile function may fail with ERROR_INVALID_USER_BUFFER or ERROR_NOT_ENOUGH_MEMORY whenever there are too many outstanding asynchronous I/O requests.

Я сильно грешу на Symantec Endpoint Protection и Acronis.

Образ есть у меня в руках и там проблема воспроизводится простенькой тестовой программкой, которая просто пишет и читает файлы через fwrite и fread.

Мы, конечно, переставим всё с нуля и скорее всего оно взлетит, но я хочу разобраться, ибо дотошный я. Семёрку 32 бита менять нельзя - там железка хитрая и драйвер только для этой ОС есть. Почитал Руссиновича, пробежался по процессам Process Explorer и никаких аномалий не увидел. Меня сильно смущает "too many outstanding asynchronous I/O requests". Нигде нет никакой информации "too many" - это вообще сколько и каким счётчиком я могу это дело посмотреть?
  • Вопрос задан
  • 320 просмотров
Пригласить эксперта
Ответы на вопрос 1
@res2001
Developer, ex-admin
Ну если грешите на антивирус, поставьте файлы которые программа использует в исключения для АВ.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы