На чтение 3 мин. Просмотров 3k. Опубликовано 03.09.2019
ReadProcessMemory – одно из хитрых сообщений об ошибках. В отличие от других ошибок, эта ошибка появляется из-за блюза, и это затрудняет диагностику.
Я лично несколько раз сталкивался с сообщением « только часть запроса ReadProcessMemory или WriteProcessMemory ». Исходя из моего опыта, это обычно происходит, когда на моей машине под управлением Windows выполняется множество приложений в фоновом режиме. Сообщение об ошибке также появляется при открытии приложений и установочных файлов.
Как я уже говорил ранее, совершенно очевидно, что ошибка тесно связана с проблемой памяти. Сообщение об ошибке также указывает на возможность сбоя операционной системы в чтении или записи запроса. Как и с большинством сообщений об ошибках, нам нужно устранить проблему и посмотреть, исчезнет ли она.
Давайте начнем с самых очевидных вещей, а затем перейдем к тем, которые немного продвинуты (пожалуйста, убедитесь, что вы создали точку восстановления системы, прежде чем пытаться выполнить шаги по устранению неполадок).
Содержание
- Как исправить проблемы ReadProcessMemory или WriteProcessMemory
- 1. Перезагрузите
- 2. Перепроверьте права доступа к файлам.
- 3. Запустите программу проверки диска
- 4. Чистая загрузка
- 5. Проблема с оптическим приводом
- 6. Плохие файлы в папке «Temporary Internet Files»?
Как исправить проблемы ReadProcessMemory или WriteProcessMemory
1. Перезагрузите
Да, перезагрузка, как один препарат от всех проблем. Зачастую большинство проблем исчезают при перезапуске, и память ReadProcess не является исключением. Кроме того, попробуйте перезапустить Проводник и посмотрите, не исчезла ли ошибка. В соответствующей заметке попробуйте отключить антивирус/брандмауэр и посмотрите, что изменится.
2. Перепроверьте права доступа к файлам.
Ошибка «Только часть запроса ReadProcessMemory или WriteProcessMemory была выполнена» также может быть вызвана, если у пользователя нет достаточных разрешений. В этом случае попробуйте стать владельцем файла.
3. Запустите программу проверки диска
Можно найти ошибки диска, запустив утилиту проверки диска. Для запуска сканирования выполните следующие действия
- Щелкните правой кнопкой мыши на диске
- Выберите Свойства
- Нажмите кнопку проверки на вкладке «Инструменты» и выберите «Сканировать диск»
- Помните, что опция сканирования не будет отображаться, если на диске нет ошибок.
- После завершения проверки диска перезагрузите компьютер и посмотрите, сохраняется ли проблема
4. Чистая загрузка
Чистая загрузка в некоторой степени похожа на безопасный режим, во время чистой загрузки Windows запускается с ограниченным набором драйверов и автозагрузок программ. Вот как выполнить чистую загрузку:
- Зайдите в Пуск> Поиск и введите «msconfig»
- После того, как Конфигурация системы открыта, перейдите в Общие и выберите «Выборочный запуск».
- В следующем меню выберите «Скрыть все службы Microsoft» и нажмите «Отключить все».
- Нажмите OK, и с этого ваш компьютер будет запущен в режиме чистой загрузки.
5. Проблема с оптическим приводом
В некоторых случаях сообщение об ошибке «Только часть запроса ReadProcessMemory или WriteProcessMemory было выполнено» было связано с проблемой с оптическим приводом. Если вы используете перьевой диск или портативный жесткий диск, попробуйте скопировать файлы на локальный диск, прежде чем попробовать еще раз.
6. Плохие файлы в папке «Temporary Internet Files»?
Несколько пользователей сообщили, что проблема была вызвана неправильным временным файлом, который требовал административного доступа для удаления. Скорее всего, даже если вы удалите временные файлы с помощью этой программы, файл, вызывающий проблему, не будет удален, так как требует повышенного доступа.
Чтобы отследить несанкционированный файл, необходимо установить и запустить Process Monitor, путь к файлу будет выглядеть примерно так, как указано ниже,
D: \ Users \ Default \ AppData \ Local \ Microsoft \ Windows \ Временные файлы Интернета \ SQM \ iesqmdata_setup0.aqm
На заключительном примечании проблема «Только часть ReadProcessMemory или WriteProcessMemory» должна быть решена путем выполнения одного или всех вышеупомянутых шагов. Если ничего не работает (в идеале), попробуйте диагностировать жесткий диск на предмет ошибок или, возможно, неисправного разъема для хранения.
Когда я продолжил открывать лист Excel, я недавно получил это сообщение об ошибке – Выполнена только часть запроса ReadProcessMemory или WriteProcessMemory . Это был первый раз, когда я увидел такое сообщение об ошибке, и мне было интересно, что это было. Похоже, эта ошибка может возникать при попытке открыть даже такие приложения, как Microsoft Outlook или программы установки, кроме файлов Office и т. Д.
Была выполнена только часть запроса ReadProcessMemory или WriteProcessMemory
Из сообщения об ошибке видно, что эта ошибка связана с памятью, когда операционная система не смогла прочитать или записать выполненный запрос, и это может быть вызвано недостаточными разрешениями папок профиля пользователя.
1] Первое, что вы хотите сделать, это закрыть диалоговое окно с ошибкой и повторить попытку. Получите право собственности на файл и попробуйте еще раз.
Перезагрузите компьютер и посмотрите, исчезнет ли ошибка. Иногда многие неприятности исчезают после перезагрузки ПК, как вы, возможно, заметили. Кроме того, отключите антивирусное программное обеспечение и посмотрите.
2] Перезапустите Explorer и посмотрите, работает ли он.
3] Если все это не помогает, проверьте Разрешения вашей папки профиля пользователя.
Щелкните правой кнопкой мыши папку> Свойства> вкладка «Безопасность»> кнопку «Дополнительно». Откроется окно «Дополнительные параметры безопасности». Выберите вкладку Permissions и убедитесь, что разрешения для папок и подпапок следующие:
- Система: Полный контроль
- Администраторы: Полный контроль
- Пользователи: чтение и выполнение
- Все: Читать и выполнять
Нажмите Применить/Выход.
4] Запустите утилиту Check Disk для проверки возможных ошибок на диске. Чтобы запустить Проверить диск с помощью командной строки , введите следующую команду и нажмите Enter:
chkdsk/f/r
Если потребуется, перезагрузите компьютер.
5] Если это тоже не помогает, вы можете выполнить чистую загрузку, посмотреть, не исчезла ли проблема, и попытаться устранить неполадки в этом состоянии.
Дайте нам знать, если у вас есть другие идеи.
I have been researching this issue pretty extensively and cannot seem to find an answer.
I know that the Only part of a ReadProcessMemory or WriteProcessMemory request was completed exception is thrown when a 32-bit process tries to access a 64-bit process and the same for a 64-bit modifying a 32-bit process.
The solution to that issue is to change the Platform Target to ‘Any CPU’. I have tried this and unfortunately this does not solve my issue.
The next block of code is what keeps throwing the exception. The program that runs this code is used to open up applications on remote computers and keeps a list of all the processes that the program itself opened so that I don’t have to loop through all the processes.
Process processToRemove = null;
lock (_runningProcesses)
{
foreach (Process p in _runningProcesses)
{
foreach (ProcessModule module in p.Modules)
{
string[] strs = text.Split('\');
if (module.ModuleName.Equals(strs[strs.Length - 1]))
{
processToRemove = p;
break;
}
}
if (processToRemove != null)
{
break;
}
}
if (processToRemove != null)
{
processToRemove.Kill();
_runningProcesses.Remove(processToRemove);
}
}
These processes can and most likely will be 32-bit and 64-bit, mixed together.
Is there anything I am doing that I shouldn’t be doing, or is there just a better way to do all of this?
asked Jun 11, 2012 at 19:41
Kyle UithovenKyle Uithoven
2,3845 gold badges29 silver badges43 bronze badges
10
As detailed in the comments of the MSDN page for Process.Modules and this thread there is a known issue in Process.Modules when enumerating 32 bit processes from a 64 bit process and visa-versa:
Internally .NET’s Process.Modules is using function EnumProcessModules
from PSAPI.dll. This function has a known issue that it cannot work
across 32/64 bit process boundary. Therefore enumerating another
64-bit process from 32-bit process or vice versa doesn’t work
correctly.
The solution seems to be to use the EnumProcessModulesEx function, (which must be called via P/Invoke), however this function is only available on later versions of Windows.
We fixed this issue by adding
a new function called EnumProcessModulesEx to PSAPI.dll
(http://msdn2.microsoft.com/en-us/library/ms682633.aspx), but we
currently cannot use it in this case:
- it only works on Windows Vista or Windows Server 2008
- currently .NET 2.0 Framework don’t have a service pack or hotfix to make Process.Modules use this new API
Justin
83.7k48 gold badges220 silver badges360 bronze badges
answered Jun 21, 2012 at 9:10
3
There are only some issues regarding the handling of the processes and the locking that I would change:
object lockObject = new object();
List<Process> processesToRemove = new List<Process>();
foreach (Process p in _runningProcesses)
{
foreach (ProcessModule module in p.Modules)
{
string[] strs = text.Split('\');
if (module.ModuleName.Equals(strs[strs.Length - 1]))
{
processesToRemove.Add(p);
break;
}
}
}
lock (lockObject)
{
foreach (Process p in processesToRemove)
{
p.Kill();
_runningProcesses.Remove(p);
}
}
I’m not answering for the bounty, just wanted to give some ideas. This code isn’t tested because I don’t exactly know what you are trying to do there.
Just consider not to lock the process-list and to keep the lock as short as possible.
answered Jun 17, 2012 at 0:25
I agree with @sprinter252 that _runningProcesses should not be used as your sync object here.
//Somewhere that is accessible to both the thread getting the process list and the thread the
//code below will be running, declare your sync, lock while adjusting _runningProcesses
public static readonly object Sync = new object();
IList<Process> runningProcesses;
lock(Sync)
{
runningProcesses = _runningProcesses.ToList();
}
Process processToRemove = null;
foreach (Process p in _runningProcesses)
{
foreach (ProcessModule module in p.Modules)
{
string[] strs = text.Split('\');
if (module.ModuleName.Equals(strs[strs.Length - 1]))
{
processToRemove = p;
break;
}
}
if (processToRemove != null)
{
break;
}
}
if (processToRemove != null)
{
//If we've got a process that needs killing, re-lock on Sync so that we may
//safely modify the shared collection
lock(Sync)
{
processToRemove.Kill();
_runningProcesses.Remove(processToRemove);
}
}
If this code is wrapped in a loop to continue to check _runningProcesses for the process you wish to kill, consider changing processToRemove to processesToRemove and change it’s type to a collection, iterate over that list in the bottom block after a check for a non-zero count and lock outside of that loop to decrease the overhead of obtaining and releasing locks per process to kill.
answered Jun 21, 2012 at 9:29
mlorbetskemlorbetske
5,4792 gold badges27 silver badges40 bronze badges
Download PC Repair Tool to quickly find & fix Windows errors automatically
When I went on to open an Excel sheet, I recently received this error message – Only part of a ReadProcessMemory or WriteProcessMemory request was completed. This was the first time I had seen such an error message, and I wondered what it was all about. It appears that this error can occur when you try to open applications like Microsoft Outlook or program installers, apart from Office files, etc.

From the error message, it is apparent that this error is related to Memory – where the operating system could not read or write the request completed, and this could be caused due to insufficient permissions of the user profile folders.
- Take ownership of the File.
- Restart File Explorer
- Check Permission of User Profile Folder
- Run Check Disk Utility
- Perform Clean Boot
You will need admin permission for some of these.
1] Take ownership of the File
![]()
The first thing you want to do is close the error dialog and try again. Take ownership of the file and then again try once more.
Restart your PC and see if the error goes away. Sometimes many annoyances go away after restarting the PC, as you may have noticed. Also, disable your antivirus software and see.
2] Restart File Explorer
Restart Explorer and see if that works. When the file explorer is restarted, many processes also kickstart again. It ensures if there is anything a miss, it is resolved.
3] Check Permission of User Profile Folder

If all this does not help, check the Permissions of your User Profile folder.
Right-click on the folder > Properties > Security tab > Advanced button. The Advanced Security Settings box will open up. Select the Permissions tab and ensure that the permissions for folders and sub-folders are as follows:
- System: Full control
- Administrators: Full control
- Users: Read & execute
- Everyone: Read & execute
Click Apply/Exit.
4] Run Check Disk Utility
Run the Check Disk utility to check for potential disk errors. To run Check Disk using the command line, type the following and hit Enter:
chkdsk /f /r
If asked for, restart your computer.
5] Perform Clean Boot
If this does not help, you may want to perform a Clean Boot, see if the problem persists and try to troubleshoot further in that state.
Conclusion
I hope the post was useful and you were able to resolve Only part of a ReadProcessMemory or WriteProcessMemory request was completed error on your Windows PC. The issue is around user permission, and the error will no longer appear once resolved. Let us know if you have any other ideas.
Why is access denied when I am the administrator?
Some programs, folders, and files are owned by the System account, which is not open to regular users. These accounts belong to the OS, and it is better that Windows uses it. If you are denied access, it’s because you are not the owner or do not have permission to run these.
Why does it say I need permission from the administrator when I am the administrator?
It’s because you do not have permission to access the file, and they belong to another admin or top the system OS. You will need to add your account as the user to the file or folder, and then you can access them without an error.

Anand Khanse is the Admin of TheWindowsClub.com, a 10-year Microsoft MVP (2006-16) & a Windows Insider MVP (2016-2022). Please read the entire post & the comments first, create a System Restore Point before making any changes to your system & be careful about any 3rd-party offers while installing freeware.
|
0 / 0 / 0 Регистрация: 14.01.2009 Сообщений: 21 |
|
|
1 |
|
|
15.01.2009, 16:16. Показов 55094. Ответов 4
Jткрываю прогу а у меня пишет «запрос ReadProcessMemory или WriteProcessMemory был выполнен только частично». Что это может быть
__________________
0 |
|
0 / 0 / 0 Регистрация: 14.04.2009 Сообщений: 25 |
|
|
03.04.2010, 15:56 |
3 |
|
Только что столкнулся с этой проблеммой, у меня вылазило это потому что пр первом запуске порграммы вылезло сообщение касперского где я нажал да выполнять только это действие, выключил касперского проблемма ушла, надо было нажимать разрешить активность приложения!
0 |
|
pereslavceva |
|
|
14.04.2010, 17:23 |
4 |
|
хотели перекачать игру с диска,но открылось окно «readprocessmemory» был выполнен частично.Проверяли на вирусы-нет,как быть? |
|
1568 / 504 / 48 Регистрация: 04.04.2009 Сообщений: 1,891 |
|
|
09.10.2012, 12:11 |
5 |
|
У меня похожая проблема. Расшарил DVD на хостовом компе стандартным образом. При запуске с удаленного компа setup.exe (который находится на диске) получаю: «Запрос ReadProcessMemory или WriteProcessMemory был выполнен только частично». На удаленном компе привод вообще отсутствует, поэтому http://support.microsoft.com/kb/891894/ru — не поможет.
0 |
|
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
09.10.2012, 12:11 |
|
Помогаю со студенческими работами здесь Проблема с USB жестким диском: » Запрос не был выполнен из-за ошибки ввода/вывода на устройстве» Патчинг опкодов в рантайме — можно ли прямо через указатель, или только WriteProcessMemory? Как проверить выполнен ли SQL запрос успешно или произошла ошибка «Нет доступа к диску»;»Запрос не был выполнен из-за ошибки вводавывода на устройстве» — можно ли воскресить HDD? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 5 |
?