Memory cannot be "read" or "written ".

Source: Internet
Author: User
Tags prefetch
In Windows, users may encounter the following error message: "0x ???????? Instruction reference 0x00000000 memory, the memory cannot be written ", then the application is closed. If you ask some "experts", the answer is often "Windows is so unstable" and so on. In fact, this error is not necessarily caused by Windows instability. This article briefly analyzes the common causes of such errors.

1. failed to check memory allocation by Application

When a program needs a piece of memory to store data, it needs to call the "function" provided by the operating system to apply. If the memory is allocated successfully, the function will return the newly opened memory zone address to the application, and the application can use this memory address. This is "dynamic memory allocation", and the memory address is also the "Pointer" in programming ".

The memory is not always used, and sometimes the memory allocation fails. When the allocation fails, the system function returns a value of 0. The returned value "0" does not indicate a newly enabled pointer, but is a notification sent to the application, indicates that an error has occurred. As an application, check whether the returned value is 0 after each memory application. If yes, it means that a fault has occurred and some measures should be taken to save the problem, this enhances the robustness of the program ".

If the application does not check this error, it will regard this value as an available pointer to it according to "thinking inertia" and continue to use this memory in subsequent operations. The real 0-address memory zone stores the most important "Interrupt Descriptor Table" in computer systems and is definitely not allowed to be used by applications. In an operating system without a protection mechanism (such as DoS), writing data to this address will immediately crash, while in a robust operating system, such as Windows, this operation will be immediately captured by the system's protection mechanism. The result is that the operating system forces the application that fails to be closed to prevent the error from expanding. At this time, the above "write memory" error will be displayed, and the referenced memory address is "0x00000000 ".

There are many causes of memory allocation failure, such as insufficient memory and mismatched system function versions. Therefore, this allocation failure is often seen after the operating system has been in use for a long time, installed a variety of applications (including inadvertently "installed" virus programs ), after a large number of system parameters and system files are changed.

2. Applications reference abnormal memory pointers due to their own bugs

In applications that use dynamic allocation, sometimes the program tries to read and write a piece of memory that should be available, but somehow, the expected available pointer has expired. It may be that the system requires allocation "forgot", or that the program has logged out the memory at some time and "did not pay attention. The logged-out memory is reclaimed by the system and its access permission does not belong to the application process. Therefore, read/write operations also trigger the system's protection mechanism, the only end of a program that attempts to "break the law" is that it is terminated and all resources are recycled. Laws in the computer world are much more effective and harsh than humans!

Such cases all belong to the bugs of the program. You can often reproduce errors in a specific operation order. Invalid pointers are not always 0, so the memory address in the error prompt is not set to "0x00000000", but other random numbers.

The following suggestions may be helpful if the system frequently mentions error prompts:

1. check whether a trojan or virus exists in the system. Such programs tend to modify the system irresponsibly to control the system, resulting in operating system exceptions. In general, information security awareness should be strengthened, and the executable procedures with unknown sources should never be curious.

2. Update the operating system so that the operating system installer can copy the correct version of the system file and correct system parameters. Sometimes the operating system itself also has bugs. You must install the officially released upgrade program.

3. Try the new version of the application.
Problem

When running some programs, sometimes there is a memory error prompt, and then the program is closed.
"0x ????????" Command reference "0x ????????" Memory. The memory cannot be "read ".
"0x ????????" Command reference "0x ????????" Memory, the memory cannot be "written ".
This problem is usually caused by hardware, memory, and software.

Fault Analysis

Hardware:
In general, the possibility of memory problems is not big, the main aspect is: memory is broken, memory quality is wrong, there are two different brands of different capacities of memory mixed insertion, it is also easy to see incompatible conditions, but also pay attention to the heat dissipation problems, especially after the frequency. You can use the memtest software to check the memory, which can thoroughly detect the memory stability.
If this problem occurs when dual-memory is used and different brands of memory are mixed or used memory is purchased, check whether the memory is faulty or not compatible with other hardware.

Software:
Let's talk about the principle: the memory has a buffer where data is stored. When the program places the data in one of its locations, overflow occurs because there is not enough space. For example, a bucket can only store a kilo of water. When a bucket is put into the bucket, it overflows. The system is displayed on the screen. This problem often occurs on Windows 2000 and Windows XP systems. Windows/XP has strict hardware requirements. Once a resource deadlock or overflow occurs or an operation similar to Windows 98, the above situation occurs when the system is stable. It may also be caused by poor compatibility between hardware devices.

Examples

Example 1: Open IE or the 0x00000000 memory referenced by the "0x70dcf39f" command will appear in a few minutes. The memory cannot be "read ". To terminate the program, click "OK" and click "OK". An "internal error occurs, and one of the windows in use is about to close" is displayed, when this prompt is disabled, ie is also disabled.
Solution: fix or upgrade the IE browser with patches. One of the restoration methods is that Win2000 is upgraded from Win2000 to Win2000. In fact, this method restores the system to the initial state of the system. For example, if your IE is upgraded to 6.0, it will be replaced by ie5.0 after the upgrade.

Example 2: in Windows XP, the portable autorun.exe file in the dual-disc displays the memory "0x77f745cc" referenced by the "0x00000078" command. The memory cannot be "written". To terminate the program, click "OK", but it runs normally in Windows 98.
Solution: this can be a system compatibility question. For Windows XP systems, right-click the file autorun.exe, attributes, and compatibility. Select "run this program in compatible mode" and select "Windows 98/Me ". After installing the SP patch for Win2000, run the following command: regsvr32 C:/winnt/apppatch/slayerui. dll. Right-click the attribute and the compatibility option will also appear.

Example 3: an error occurs when RealONE gold is disabled. It has been used normally before. Recently, the "0xffffffff" memory referenced by the "0xffffffff" command is displayed when RealONE gold is disabled. The prompt that the memory cannot be "read.
Solution: this problem occurs when you disable RealONE when the input method is 2003 and the language bar is hidden (no problem occurs when it is not hidden, therefore, you can display the language bar or use any other input method as the current input method to solve this problem before you close RealONE.

Example 4: My Hao jieba cannot play the video since I got online. The "ox060692f6" (changed each time) command reference the "oxff000011" memory cannot be "read ", to terminate the program, please confirm.
Solution: Try to reinstall Haojie super to solve the problem. If the problem persists, download the patch from the official website. Not yet. You have to try another player.

Example 5: Double-click a game shortcut. The "ox77f5cdo" command references the "oxffffff" memory. The memory cannot be "read" and a client. dat program error is prompted.
Solution: reinstall the latest driver of the video card, and then download and install directx9.0.

Example 6: when a friend sends a message, my computer displays the error message "0*00303033" memory referenced by the "0 * 772b548f" command, the memory cannot be "written", and then QQ is automatically taken offline, and then QQ is opened and more than a dozen pieces of information sent by him are found.
Solution: This is the bug that the other party uses QQ. It sends special code and makes a QQ error. If it is patched or upgraded to the latest version, it will be okay.

Example 7: The Windows XP system used by my local computer may pop up when the webpage is closed. If tbrowser.exe encounters a problem, it needs to be closed. Then, the 0x03e7c738 memory referenced by the 0x03e7c738 command is displayed. The memory cannot be read?
Solution: First, check and kill the virus. If you have installed software such as browser enhancement, uninstall it.

Example 8: open any program on the desktop or in the Start menu and the following error occurs: "0x ........ "0x00000000" memory referenced by the command. The memory cannot be "read ". The ellipsis represents a variable value. But it is okay to open the program from the running.
Work und: Run regedit to enter the Registry, under HKEY_LOCAL_MACHINE/software/Microsoft/Windows/CurrentVersion/Explorer/shellexecutehooks, there should be only one normal key value "{AEB6717E-7E19-11d0-97EE-00C04FD91972 }, delete other values (do not delete the default key value ).

Example 9: I configured a middleware three months ago. The system is unstable. The system has been reinstalled many times in three months. The system was installed four or five days ago, but the Explorer-application errors often occur randomly, "0x00000000" memory referenced by "0x4a01259d" command. The memory cannot be "read ". To terminate the program, click OK. To debug the program, click Cancel ". If you click OK, the Windows desktop will disappear. This problem also exists in the previous system. I wonder if it is a hardware problem?
Solution: Memory compatibility problem! In this case, you can open the machine to change the memory location and check whether the problem can be solved. If the problem persists, you can change the memory usage with your friends.

From the examples above, we can see that there are many causes of faults. The following lists the causes that have been mentioned and are possible for reference.

Cause-Solution

Memory Stick broken-replace memory stick

Dual-memory incompatibility-use the same-brand memory or use only one memory

Memory quality problems-replace memory stick

Cooling problems-enhance the internal cooling of the chassis

Memory and motherboard are not plugged in or incompatible with other hardware-re-plug the memory or change the plug-in

Hard Disk problems-Hard Disk replacement

Driver problem-reinstall the driver. For a new system, you must first install the motherboard driver.

Software damage-reinstall Software

Software Bug-patching or using the latest version.

Software and system incompatibility-patch the software or try the system compatibility mode

There is a conflict between software and software-if you have recently installed any new software, uninstall it and try again.

The software should be used in other related software. For example, if an error occurs when playing a certain format file, the decoder of the file may be faulty.
Virus-Antivirus

Anti-Virus Software conflicts with the system or software. Because anti-virus software enters the underlying monitoring system, it may conflict with some software. uninstall it and try again.

There is a problem with the system itself-sometimes the operating system itself also has bugs, you should pay attention to installing the officially released upgrade program, such as the SP patch, it is best to add. If you cannot reinstall the system or replace another version of the system.

This problem has attracted our attention and has a solution. Please go to our official website to learn about and download related programs.

When running some programs, sometimes there is a memory error prompt, and then the program is closed.

"0x ????????" Command reference "0x ????????" Memory. The memory cannot be "read ".

"0x ????????" Command reference "0x ????????" Memory, the memory cannot be "written ".

I believe everyone should have seen the above situation, and even said that some netizens have repeatedly reinstalled the system because they are unhappy with this frequent error prompt. I believe that common users should not understand complicated hexadecimal code.

This problem occurs in a variety of ways: hardware, memory, and software.

I. Talk about hardware first

Generally, computer hardware is very bad. The possibility of memory problems is not high (unless your memory is really a mess), the main aspect is: 1. Memory stick is broken (more than the second-hand memory), 2. Memory with quality problems, 3. There is too much dust in the golden finger part of the memory inserted on the motherboard. 4. Use different brands of memory with different capacities, resulting in incompatibility. 5. The hot issue caused by overclock. You can use the memtest software to check the memory, which can thoroughly detect the memory stability.

2. If none of them exist, the software should be able to resolve the fault.

Principle 1: the memory has a buffer where data is stored. When the program puts the data in the buffer zone, the "function" provided by the operating system is required to apply. If the memory is allocated successfully, the function will return the newly opened inner memory address to the application, and the application can use this address to use this memory. This is "dynamic memory allocation", and the memory address is also the "cursor" in programming ". The memory is not always used, and sometimes the memory allocation fails. When the allocation fails, the system function returns a value of 0. The returned value "0" does not indicate a new enabled cursor. Instead, the system sends a notification to the application notifying you of an error. As an application, check whether the returned value is 0 after each memory application. If yes, it means that a fault has occurred and some measures should be taken to save the problem, this enhances the program's "strong ". If the application does not check this error, it determines that this value is the available cursor assigned to it according to "thinking inertia" and continues to use this memory in subsequent execution. The real 0-address memory zone stores the most important "Interrupt Descriptor Table" in computer systems and is definitely not allowed by applications. In an operating system without a protection mechanism (such as DoS), writing data to this address will immediately become a machine, while in a healthy operating system, such as Windows, this operation will be immediately captured by the system's protection mechanism. The result is that the operating system forces the application that fails to be closed to prevent the error from expanding. At this time, the above memory cannot be "read" error occurs, and the referenced memory address is "0x00000000". There are many causes of memory allocation failure, such as insufficient memory and mismatched system function versions. Therefore, this allocation failure is often seen after the operating system has been in use for a long time, installed a variety of applications (including inadvertently "installed" virus programs ), after a large number of system parameters and system files are changed.

In applications that use dynamic allocation, sometimes the program tries to read and write a piece of memory that should be available, but somehow, the expected available cursor has expired. It may be that the system requires allocation "forgot", or that the program has logged out the memory at some time and "did not pay attention. The logged-out memory is reclaimed by the system and its access permission does not belong to the application process. Therefore, read/write operations also trigger the system's protection mechanism, the only end of an "illegal" program is to be terminated and all resources are recycled. Laws in the computer world are much more effective and harsh than humans! Such cases all belong to the bugs of the program. You can often reproduce errors in a specific operation order. Invalid cursor may not always be 0, so the memory address in the error prompt is not set to "0x00000000", but other random numbers.

First, we recommend that you:

1. check whether there are Trojans or viruses in the system. Such programs tend to modify the system irresponsibly to control the system, resulting in operating system exceptions. In general, information security awareness should be strengthened, and the executable procedures with unknown sources should never be curious.

2. Update the operating system so that the operating system installer can copy the system file of the correct version and correct system parameters. Sometimes the operating system itself also has bugs. You must install the officially released upgrade program.

3. Try to use the latest official version of the application, beta, trial version will have bugs.

4. Delete and recreate the file in the WINNT/system32/WBEM/repository folder. Right-click my computer on the desktop and Click Manage. Under services and applications, click Services, and then close and stop the Windows Management Instrumentation Service. Delete all files in the WINNT/system32/WBEM/repository folder. (Create backup copies of these files before deletion .) Open services and applications, click Services, and start the Windows Management Instrumentation Service. When the service is restarted, the files are re-created based on the information provided in the following registry keys: HKEY_LOCAL_MACHINE/software/Microsoft/WBEM/cimom/autorecover mofs

The following are several examples:

Example 1: The IE browser displays "0x03713644" memory referenced by the "0x0a8ba9ef" command, or the "0x70dcf39f" memory referenced by the "0x00000000" command. The memory cannot be "read ". To terminate the program, click "OK" and click "OK". An "internal error occurs, you are using one of the window is about to close "information box, close this prompt information, IE browser is also closed. Solution:

1. In the start-Run window, enter "regsvr32 actxprxy. dll" and press Enter. A dialog box "dllregisterserver in actxprxy. dll succeeded" appears. OK. Run the following commands in sequence. (Some people say this method is unnecessary, but re-registering those. dll does not have any harm to the system. Anyway, you can solve the problem .)

Regsvr32 shdocvw. dll

Regsvr32 oleaut32.dll

Regsvr32 actxprxy. dll

Regsvr32 mshtml. dll

Regsvr32 msjava. dll

Regsvr32 browseui. dll

Regsvr32 urlmon. dll

2. Fix or upgrade IE and install system patches. One of the solutions is to restore the system to the initial state. We recommend that you upgrade Internet Explorer to 6.0.

Example 2: Some applications have errors: the "0x14c96730" memory referenced by the "0x7cd64998" command. The memory cannot be "read ". Solution: Win XP's "pre-read" technology, which is an optimization technology, is also used in applications. The system analyzes the previous startup conditions of each application, add a virtual "Memory ing image" that describes the application requirements and store the information in the Windows/prefetch folder. Once an image is created, the loading speed of the application software is greatly improved. XP pre-read data stores information about the last eight system start times or application software starts. We recommend that you remove the virtual memory and delete all *. pf files in the Windows/prefetch directory so that Windows can re-collect the physical address of the program.

Example 3: The "0x00000078" memory referenced by the "0x77f745cc" command is displayed in the "autorun.exe" file in the Windows XP double-shot drive. The memory cannot be "written". To terminate the program, click "OK", but it runs normally in Windows 98. Solution: this can be a system compatibility question. For Windows XP systems, right-click the autorun.exe file, attributes, and compatibility. Select "run this program in compatible mode" and select "Windows 98/Me ". After installing the SP patch for Win2000, run the following command: regsvr32 C:/winnt/apppatch/slayerui. dll. Right-click the attribute and the compatibility option will also appear.

Example 4: an error occurs when RealONE gold is disabled. It has been used normally before. Recently, the "0xffffffff" memory referenced by the "0xffffffff" command is displayed when RealONE gold is disabled. The prompt that the memory cannot be "read. Solution: this problem occurs when you disable RealONE when the input method is 2003 and the language bar is hidden (no problem occurs when it is not hidden, therefore, you can display the language bar or use any other input method as the current input method to solve this problem before you close RealONE.

Example 5: My Hao jieba cannot play the video since I got online. The memory referenced by the "0x060692f6" command cannot be "read ", to terminate the program, please confirm. Solution: Try to reinstall Haojie super to solve the problem. If the problem persists, download the patch from the official website. Not yet. You have to try another player.

Example 6: double-click the shortcut of a game. The "0x77f5cd0" command references the "0xffffffff" internal memory. The memory cannot be "read" and a client. dat program error is prompted. Solution: reinstall the latest driver of the video card, and then download and install directx9.0.

Example 7: when a friend sends a message, an error message is displayed on my computer: "0x772b548f" refers to the "0x00303033" memory, which cannot be "written ", then QQ automatically went offline, and then opened QQ, and found more than a dozen pieces of information he sent. Solution: This is the bug that the other party uses QQ. It sends special code and makes a QQ error. If it is patched or upgraded to the latest version, it will be okay.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.