Data: Causes the memory not to "read" The Reason and "written" solution _ Application Skill

Source: Internet
Author: User
Tags prefetch
People who use the Windows operating system sometimes experience such an error message: 0X???????? Directive refers to the 0x00000000 memory, which cannot be written ", and then the application is closed. If you go to ask some "master", the answer is often "windows is so unstable" such as indignation and disdain. In fact, this error is not necessarily caused by Windows instability. This article is to briefly analyze the common causes of this error.

First, the application failed to check memory allocation

When a program needs a piece of memory to hold the data, it needs to invoke the "functional function" provided by the operating system to request, and if the memory allocation succeeds, the function will return the newly opened memory area address to the application, and the application can use this memory through this address. This is "Dynamic memory allocation", where the memory address is the "pointer" in programming.

Memory is not always a trick to use, and sometimes memory allocation will fail. When the allocation fails, the system function returns a value of 0, when the return value "0" does not represent a newly enabled pointer, but rather a notification from the system to the application that an error has occurred. As an application, you should check that the return value is 0 after each request for memory, and if so, it means that there is a failure and some measures should be taken to save it, which enhances the robustness of the program.

If the application does not check the error, it will assume that the value is the available pointer assigned to it, and continue to use the memory in subsequent runs. The real 0 Address memory area holds the most important "interrupt descriptor" in the computer system and is not allowed to be used by applications. Under an operating system that does not have a protection mechanism (such as DOS), writing data to this address can cause an immediate panic, and in a robust operating system, such as windows, this operation is immediately captured by the system's protection mechanism, and the result is that the operating system forcibly shuts down the faulty application to prevent its error from widening. At this point, the above "Write memory" error occurs, and the referenced memory address is "0x00000000".

Memory allocation failure causes many reasons, not enough memory, system function version mismatch, etc. may have an impact. As a result, this allocation failure is often seen after the operating system has been in use for a long time, with multiple applications installed (including unintentionally "installed" virus programs), changes to a large number of system parameters and system files.

Second, the application because of its own bug refers to an abnormal memory pointer

In applications that use dynamic allocations, there are times when a program attempts to read and write a "should be available" memory, but somehow the expected available pointer is invalidated. It may be "forgotten" to ask the operating system for an assignment, or it may be that the program has written off the memory at some point, "no attention" and so on. The logged out memory is reclaimed by the system and its access is no longer part of the application, so the read-write operation also triggers the system's protection mechanism, and the only end of the program that attempts to "break the law" is to terminate the operation and reclaim all resources. The law of the computer world is still more effective and severe than human beings!

Situations like this are bugs in the program itself, and you can often reproduce errors in a particular sequence of actions. Invalid pointers are not always 0, so the memory address in the error hint is not necessarily "0x00000000", but other random numbers.

If the system often mentions error prompts, the following suggestions may be helpful:

1. See if there are trojans or viruses in the system. Such programs often irresponsibly modify the system in order to control the system, resulting in operating system exceptions. It is necessary to strengthen the awareness of information security and never be curious about the executable program with unknown source.

2. Update the operating system to allow the operating system installer to copy the correct version of the system files and correct system parameters. Sometimes the operating system itself will have bugs, and be careful to install an official release upgrade.

3. Try out the new version of the application.
Problem

When you run some programs, there are times when you are prompted with a memory error, and then the program shuts down.
"0x????????" "0x????????" referenced by the directive Memory. The memory cannot be "read".
"0x????????" "0x????????" referenced by the directive Memory, this memory cannot be "written".
In general, there are aspects of this phenomenon, one is the hardware, that is, memory problems, the second is the software, which has many problems.

Fault analysis

Hardware aspects:
In general, the possibility of memory problems is not large, the main aspect is: The memory bar is bad, memory quality problems, there are 2 different brands of different capacity of the memory mix, but also more prone to incompatible situations, but also pay attention to the problem of heat dissipation, especially after overclocking. You can use the Memtest software to detect memory, it can completely detect the stability of the memory.
If it is dual memory, and is a different brand of memory to plug or buy second-hand memory, this problem occurs, at this time, it is necessary to check whether the memory problem or incompatible with other hardware.

Software aspects:
First of all, the principle: memory has a place where the data is called buffer, when the program put the data in one place, because there is not enough space, will occur overflow phenomenon. For example: A bucket can only be a catty of water, when put two Jin of water into, it will overflow. And the system is displayed on the screen. This problem, often on the windows2000 and XP systems, Windows 2000/XP hardware requirements are very stringent, once encountered resource deadlock, overflow or similar to Windows 98 illegal operations, the system to maintain stability, this situation occurs. It may also be the result of poor compatibility between hardware devices.

Several examples

Example: the "0x00000000" memory referenced by the "0x70dcf39f" directive will appear when IE is open or in a few minutes. The memory cannot be "read". To terminate the program, click the info box for OK, click OK, and then the "internal error occurs, one of the windows you are using is about to close" message box, and after the message is closed, IE browser is closed.
Workaround: Fix or upgrade IE browser, and patch it up at the same time. Seen one of the fixes is that Win2000 from the upgrade, that is, Win2000 upgrade to Win2000, in fact, this method is to restore the system to the initial state of the system. For example, your IE upgrade to 6.0, since the upgrade, will be replaced by IE5.0.

Example two: Under Windows XP, double-click the "AutoRun.exe" file inside the disc to display the "0x00000078" memory referenced by the "0x77f745cc" directive. The memory cannot be "written", and to terminate the program, click OK, but it is normal to run in Windows 98.
WORKAROUND: This may be a system compatibility issue, WinXP System, right button "AutoRun.exe" file, attributes, compatibility, "Run this program in compatibility Mode" option, and select "Windows 98/me". Win2000 If you hit the SP patch, just start, run, enter: regsvr32 c:\winnt\apppatch\slayerui.dll. Right-click, properties, also appear compatibility options.

Example three: RealOne gold was shut down with an error that was previously used normally, but most recently the "0xFFFFFFFF" memory referenced by the "0xffffffff" directive at each shutdown. The memory cannot be prompted for "read".
Workaround: When using the input method for Microsoft Pinyin Input Method 2003, and hide the Language bar (no problem when hidden) close RealOne will appear this problem, so before you close the RealOne can display the Language bar or any other input method as the current input method to solve this problem.

Example four: my hero Super Jie Ba since the Internet can not play, each time prompted the "Ox060692f6" (each change) instruction reference "Oxff000011" memory can not be "read", terminate the program please click OK.
Solution: Try to reload the hero Super Jie Ba, if the reload will also, to the official website download the corresponding version of the patch try. Not yet, I'll have to try it on another player.

Example: Double-click a shortcut to a game, the "ox77f5cdo" instruction references "OXFFFFFFFF" memory, the memory cannot be "read", and prompts Client.dat program error.
WORKAROUND: Reload the latest driver for the video card, and then download and install DirectX9.0.

Example six: A friend sent a message over, my computer will appear the error message: "0*772b548f" instruction refers to the "0*00303033" memory, the memory can not be "written", and then QQ automatic offline, and then open QQ, found that he sent over the more than 10 message.
Solution: This is the other side of the use of QQ bugs, send special code, do QQ error, as long as the patch or upgrade to the latest version, it is OK.

Example: My notebook computer XP system, sometimes close the page will pop up Tbrowser.exe encountered problems need to be closed, and then have pop-up 0x03e7c738 instructions to reference the 0x03e7c738 memory, this memory can not read, what is going on?
Solution: Check the virus first, and if you have installed browsing enhancements and other software, please remove.

Example eight: Open any program from the desktop or from the Start menu, and there is an error: "0x ..." directive refers to "0x00000000" memory, which cannot be "read". ellipses represent variable values. There is no problem opening the program from run.
Workaround: Run regedit into 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}", the other deletion (the default key value of course do not delete).

Example nine: I was equipped with a machine three months ago. The system is more unstable, the system has been heavily installed within three months, four or five days ago just installed the system, but often randomly appear explorer-application errors, "0x4a01259d" instruction refers to "0x00000000" memory. The memory cannot be "read". To terminate your program, click OK. To debug your program, click Cancel. If the point is OK, the Windows desktop is missing. This problem in the previous system also appeared, do not know the hardware is not the problem?
Workaround: Memory compatibility issue! Encounter such problems, users can open the machine to the memory of the location of the transfer, see if the problem can be resolved, if the problem is still, you can swap memory with your friends use.

Through the above examples, you can see that there are a number of reasons for the failure, listed below have been mentioned and possible reasons for easy access.

Causes of problems--solutions

The memory stripe is broken--replace the memory bar

Dual memory incompatible-use the same brand of memory or use only one memory

Memory quality issue--replacing memory strips

Heat dissipation problem--enhance the cooling inside the chassis

Memory and motherboard not plugged in or incompatible with other hardware, etc.--reseat the memory or replace it with a bad plug

Problem with hard drive--replace hard drive

Drive problem-Reload drive. If it is a new system, install the motherboard driver first

Software damage--reload software

Software has bug--patched or with the latest version.

Incompatible software and systems-patching or testing the compatibility mode of the system

There's a conflict between software and software-if you've recently installed any new software, try uninstalling it.

Software to use other related software problems-reload related software. Like playing a file in a format error, may be the decoder of this file has problems

Virus problem--antivirus

Antivirus software conflicts with systems or software--because antivirus software is into the underlying monitoring system, may conflict with some software, uninstall the try

The system itself has problems-sometimes the operating system itself will have bugs, pay attention to install the official release of the upgrade program, like the SP patch, it is best to play. If you can't reload the system or replace the other version of the system.

This issue has attracted our attention and has a solution, please go to our official website to learn and download the relevant procedures.

When you run some programs, there are times when you are prompted with a memory error, and then the program shuts down.

"0x????????" "0x????????" referenced by the directive Memory. The memory cannot be "read".

"0x????????" "0x????????" referenced by the directive Memory, this memory cannot be "written".

The above situation believed that everybody should have seen, even said some netizen because is not comfortable with this often appears the error prompt and repeatedly reload the system. It is believed that ordinary users should not understand those complex hexadecimal codes.

There are aspects of this phenomenon, one is the hardware, that is, memory problems, the second is the software, which has many problems.

First, talk about hardware

Generally speaking, the computer hardware is very not easy to be bad. The likelihood of memory problems is not significant (unless your memory is really a motley one), the main aspect is: 1. The memory stripe is broken (mostly used memory), 2. Memory with a quality problem, 3. Memory plugged into the motherboard's gold finger part of the dust too much. 4. The use of different brands of different capacity memory, resulting in incompatibilities. 5. The cooling problem caused by overclocking. You can use the Memtest software to detect memory, it can completely detect the stability of the memory.

Second, if not, then from the software to eliminate the fault

First, the principle: memory has a place to store data called buffer, when the program puts the data in a buffer and requires the "functional function" provided by the operating system to request it, if the memory allocation succeeds, the function will return the newly opened memory area address to the application, and the application can use this memory through this address. This is "Dynamic memory allocation", where the memory address is the "cursor" in programming. Memory is not always a trick to use, and sometimes memory allocation will fail. When the allocation fails, the system function returns a value of 0, when the return value "0" does not represent the newly enabled cursor, but rather a notification to the application that an error has occurred. As an application, you should check that the return value is 0 after each request for memory, and if so, it means that there is a failure and some measures should be taken to save it, which enhances the robustness of the program. If the application does not check this error, it will consider the value as the available cursor assigned to it according to "mind inertia" and continue to use the memory in subsequent executions. The real 0 Address memory area stores the most important "interrupt descriptor" in the computer system and is not allowed to be used by applications. Under an operating system that does not have a protection mechanism (such as DOS), writing data to this address can cause an immediate machine, and in a robust operating system, such as windows, this operation is immediately captured by the system's protection mechanism, and the result is that the operating system forcibly shuts down the faulty application to prevent its error from widening. At this point, the above memory cannot be "read" error, and the referenced memory address is "0x00000000". Memory allocation failure causes many reasons, not enough memory, system function version mismatch, etc. may have an impact. As a result, this allocation failure is often seen after the operating system has been in use for a long time, with multiple applications installed (including an unintentionally "installed" virus program), and after a large number of system parameters and system files have been changed.

In applications that use dynamic allocations, there are times when a program attempts to read and write a "should-be" memory, but somehow the expected available cursor is invalidated. It may be "forgotten" to ask the operating system for an assignment, or it may be that the program has written off the memory at some point, "no attention" and so on. The logged out memory is reclaimed by the system and its access does not belong to the application, so the read-write operation also triggers the system protection mechanism, and the only end of the attempt to "break the law" is to terminate the execution by operation and reclaim all resources. The law of the computer world is still more effective and severe than human beings! Situations like this are bugs in the program itself, and you can often reproduce errors in a particular sequence of actions. Invalid cursors are not always 0, so the memory address in the error message is not necessarily "0x00000000", but other random numbers.

First suggestion:

1, check whether there are trojans or viruses in the system. Such programs often irresponsibly modify the system in order to control the system, resulting in operating system exceptions. It is necessary to strengthen the awareness of information security and never be curious about the executable program with unknown source.

2, update the operating system, so that the operating system installation program to copy the correct version of the system files, correction system parameters. Sometimes the operating system itself will have bugs, and be careful to install an official release upgrade.

3, try to use the latest official version of the application, Beta, trial version will have bugs.

4. Delete and recreate the files in the Winnt\system32\wbem\repository folder: On the desktop, right-click My Computer, and then click Manage. Under Services and applications, click Services, and then close and stop the Windows Management Instrumentation service. Deletes all files in the Winnt\system32\wbem\repository folder. (Create a backup copy of these files before you delete them.) Open Services and applications, click Services, and then open and start the Windows Management Instrumentation service. When the service restarts, the files are re-created based on the information provided in the following registry key: Hkey_local_machine\software\microsoft\wbem\cimom\autorecover MOFs

Here are a few examples to analyze:

Example one: IE browsers appear "0x03713644" memory referenced by the "0x0a8ba9ef" directive, or "0x00000000" memory referenced by the "0x70dcf39f" instruction. The memory cannot be "read". To terminate the program, click the info box for OK, click OK, and then the "internal error occurs, one of the windows you are using is about to close" message box, and after the message is closed, IE browser is closed. Workaround:

1. Start-run window, enter "regsvr32 actxprxy.dll", and then an Information dialog box "DllRegisterServer in Actxprxy.dll succeeded" is identified. Then run the following command in turn. (This method is said to be unnecessary, but to re-register those. dll is not bad for the system, anyway, many hands, can solve the problem on the line.) )

regsvr32 shdocvw.dll

regsvr32 oleaut32.dll

regsvr32 actxprxy.dll

regsvr32 Mshtml.dll

regsvr32 msjava.dll

regsvr32 browseui.dll

regsvr32 urlmon.dll

2, repair or upgrade IE browser, while playing a system patch. One of the fixes is to restore the system to the initial state of the system. It is recommended to upgrade IE to 6.0.

Example two: Some application errors: "0x7cd64998" instruction reference to "0x14c96730" memory. The memory cannot be "read". Workaround: Win XP's "pre-read" Technology This optimization technology is also used on the application, the system for each application of the first several launch analysis, and then add a description of the requirements of the virtual "memory image", and the information stored in the Windows\prefetch folder. Once the image is established, the loading speed of the application software is greatly improved. The pre-read data for XP stores information about the last 8 system startup or application software startup. It is recommended that virtual memory be replaced and all * in the Windows\prefetch directory deleted. PF file, which lets Windows re-collect the physical address of the program.

Example: Under XP, double-click the "AutoRun.exe" file inside the disc to display the "0x00000078" memory referenced by the "0x77f745cc" directive. The memory cannot be "written", and to terminate the program, click OK, but it is normal to run in Windows 98. WORKAROUND: This may be a system compatibility issue, WinXP System, right button "AutoRun.exe" file, attributes, compatibility, "Run this program in compatibility Mode" option, and select "Windows 98/me". Win2000 If you hit the SP patch, just start, run, enter: regsvr32 c:\winnt\apppatch\slayerui.dll. Right-click, properties, also appear compatibility options.

Example four: RealOne gold was shut down with an error that used to be normal, but most recently the "0xFFFFFFFF" memory referenced by the "0xffffffff" directive at each shutdown. The memory cannot be prompted for "read". Workaround: When using the input method for Microsoft Pinyin Input Method 2003, and hide the Language bar (no problem when hidden) close RealOne will appear this problem, so before you close the RealOne can display the Language bar or any other input method as the current input method to solve this problem.

Example five: my hero Super Jie Ba since the Internet can not play, each time prompted the "0x060692f6" (each change) instruction reference "0xff000011" memory can not be "read", terminate the program please click OK. Solution: Try to reload the hero Super Jie Ba, if the reload will also, to the official website download the corresponding version of the patch try. Not yet, I'll have to try it on another player.

Example six: Double-click a shortcut to a game, the "0x77f5cd0" instruction references "0xFFFFFFFF" memory, the memory cannot be "read", and prompts Client.dat program error. WORKAROUND: Reload the latest driver for the video card, and then download and install DirectX9.0.

Example seven: A friend sent a message over, my computer will appear error message: "0x772b548f" instruction refers to the "0x00303033" memory, the memory can not be "written", and then QQ automatic offline, and then open QQ, found that he sent over the more than 10 message. Solution: This is the other side of the use of QQ bugs, send special code, do QQ error, as long as the patch or upgrade to the latest version, it is OK.

=============================================

Said so much, the memory can not "read" The reason can be summed up in the following points:

1, drive instability, incompatible with the system, which is most likely to occur memory can not be Read or file Protection
2, the system installed one or more rogue software, which appears IE or system crash opportunities are also relatively large, there may be File Protection
3, the system load the program or the system is running before the conflict, especially part of the anti-virus software monitoring program
4, the system itself has loopholes, resulting in vulnerable to network attacks.
5, virus problem is mainly caused by memory can not read, File Protection, Explorer.exe error ...
6, if the memory can not be read when playing games, it is likely that the graphics driver is not suitable (here is not suitable for the game, not suitable for the computer graphics card), there may be dx9.0c version is not new or inconsistent with the game, graphics driver
7, some of the software itself insufficient problems
8, computer hardware overheating, but also cause the memory can not be Read for one of the reasons.
9, computer memory and motherboard compatibility is not the result of memory can not be Read the fatal reason!

It is hoped that the above summary will help you to determine why memory is not a Read problem.

=============================================

In addition, the Internet spread a simple solution:

Enter a press RETURN under the Command line window

CODE:
For%1 in (%windir%\system32\*.ocx) do regsvr32/s%1
[Copy to Clipboard]

When you're done, enter and return.

CODE:
For%1 in (%windir%\system32\*.dll) do regsvr32/s%1
[Copy to Clipboard]

It takes a long time, wait patiently

But it may also require a reboot before the whole effect comes out.

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.