Меню

Ошибка запрос readprocessmemory или writeprocessmemory был выполнен только частично

На чтение 3 мин. Просмотров 3k. Опубликовано 03.09.2019

ReadProcessMemory – одно из хитрых сообщений об ошибках. В отличие от других ошибок, эта ошибка появляется из-за блюза, и это затрудняет диагностику.

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

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

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

Содержание

  1. Как исправить проблемы ReadProcessMemory или WriteProcessMemory
  2. 1. Перезагрузите
  3. 2. Перепроверьте права доступа к файлам.
  4. 3. Запустите программу проверки диска
  5. 4. Чистая загрузка
  6. 5. Проблема с оптическим приводом
  7. 6. Плохие файлы в папке «Temporary Internet Files»?

Как исправить проблемы ReadProcessMemory или WriteProcessMemory

1. Перезагрузите

Да, перезагрузка, как один препарат от всех проблем. Зачастую большинство проблем исчезают при перезапуске, и память ReadProcess не является исключением. Кроме того, попробуйте перезапустить Проводник и посмотрите, не исчезла ли ошибка. В соответствующей заметке попробуйте отключить антивирус/брандмауэр и посмотрите, что изменится.

2. Перепроверьте права доступа к файлам.

Ошибка «Только часть запроса ReadProcessMemory или WriteProcessMemory была выполнена» также может быть вызвана, если у пользователя нет достаточных разрешений. В этом случае попробуйте стать владельцем файла.

3. Запустите программу проверки диска

Можно найти ошибки диска, запустив утилиту проверки диска. Для запуска сканирования выполните следующие действия

  • Щелкните правой кнопкой мыши на диске
  • Выберите Свойства
  • Нажмите кнопку проверки на вкладке «Инструменты» и выберите «Сканировать диск»
  • Помните, что опция сканирования не будет отображаться, если на диске нет ошибок.
  • После завершения проверки диска перезагрузите компьютер и посмотрите, сохраняется ли проблема

4. Чистая загрузка

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

  1. Зайдите в Пуск> Поиск и введите «msconfig»
  2. После того, как Конфигурация системы открыта, перейдите в Общие и выберите «Выборочный запуск».
  3. В следующем меню выберите «Скрыть все службы Microsoft» и нажмите «Отключить все».
  4. Нажмите 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 Uithoven's user avatar

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's user avatar

Justin

83.7k48 gold badges220 silver badges360 bronze badges

answered Jun 21, 2012 at 9:10

miniBill's user avatar

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

Alexander Schmidt's user avatar

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

mlorbetske's user avatar

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.

readprocessmemory request was completed

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

Take Ownership in Windows 10

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

change files folders permissions Windows 10

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.

Ezoic

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 жестким диском: » Запрос не был выполнен из-за ошибки ввода/вывода на устройстве»
USB диск 3Q 500Gb. При очередном подключении к ноутбуку, выдало такое сообщение &quot; Запрос не был…

Патчинг опкодов в рантайме — можно ли прямо через указатель, или только WriteProcessMemory?
Есть кое-какие идеи, например, по обфускации, но. и не только 🙂
Для всех их требуется, чтобы код…

Как проверить выполнен ли SQL запрос успешно или произошла ошибка
Народ, подскажите пожалуйста. Как проверить выполнен ли SQL запрос успешно или произошла ошибка?

«Нет доступа к диску»;»Запрос не был выполнен из-за ошибки вводавывода на устройстве» — можно ли воскресить HDD?
Некоторые посчитают эту тему бессмысленной, но все же: на винте битые сектора, он с ними работал,…

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

5

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Ошибка запрещено при скачивании яндекс
  • Ошибка запуска 30004 rust