Назад | Перейти на главную страницу

IRPStackSize и доступ к общим ресурсам Windows 7 из клиентов Windows XP

Я получил новую рабочую станцию ​​Windows 7 (заменяющую старую рабочую станцию ​​Windows 7) и начал сталкиваться с ошибками при доступе к моим общим файловым ресурсам с компьютеров Windows XP.

Я получаю различные ошибки, которые, кажется, приходят и уходят (в некоторые моменты он может работать нормально в течение нескольких часов). Один:

Недостаточно памяти для обработки этой команды

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

Microsoft публикует загадочную статью из базы знаний по этому вопросу, в которой предлагается увеличить IRPStackSize чтобы устранить проблему без каких-либо объяснений, зачем вам это нужно.

Я обнаружил, что увеличение IRPStackSize как на моей рабочей станции, так и на клиентской машине XP, похоже, проблемы исчезли.

Однако зачем мне это делать? Почему одна машина с Win7 имеет эту проблему, а другая - нет? Все они находятся в одном домене, поэтому групповая политика передает им одни и те же настройки, некоторые из которых я проверил вручную. Как мне узнать, какое значение подходит? Или мне просто установить максимум 50?

Вот что меня предупредило:

«Я также вижу случайные сбои при открытии файлов в приложениях, которые пытаются получить доступ к большому количеству файлов из общей папки».

Windows использует многоуровневую модель ввода-вывода, когда драйверы подключаются друг к другу и используют службы базового драйвера для выполнения своей работы. Уровень драйверов, которые используют сервисы друг друга, обычно называют «стеком драйверов».

У вас слишком много фильтров в конкретном стеке (количество запросов, каждый из которых проходит через уровни антивируса, базовый механизм фильтрации, ntfs и т. Д. И т. Д.), Поэтому IRPStackSize по умолчанию недостаточно велик. Увеличение значения по умолчанию позволяет всем фильтрам иметь собственное расположение стека ввода-вывода, и все довольны. Это не общая проблема Windows, а просто ограничение определенных драйверов в системе.

Подумайте о размещении часто используемых общих файловых ресурсов на файловом сервере, а затем прочтите Руководство по настройке 2008 R2, в частности, часть о настройке производительности файлового сервера: http://msdn.microsoft.com/en-us/windows/hardware/gg463392