Current location - Health Preservation Learning Network - Slimming men and women - Which brother can tell me?
Which brother can tell me?
It's a little long Take your time. . .

Common reasons why this memory cannot be read or written.

People who use the Windows operating system sometimes encounter the following error message: "The memory referenced by the instruction 0x000000000x cannot be written", and then the application closes. If you ask some "experts", the answer you get is often indignation and disdain like "Windows is so unstable". In fact, this error is not necessarily caused by the instability of Windows. This paper will briefly analyze the common causes of this error.

First, the application cannot check the memory allocation.

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

Memory is not always available and inexhaustible, and sometimes memory allocation will fail. When the allocation fails, the system function will return a value of 0. At this point, the return value "0" no longer indicates the newly enabled pointer, but a notification sent by the system to the application, indicating that an error has occurred. As an application, you should check whether the return value is 0 after each memory application. If so, it means that there is a fault and some measures need to be taken to save it, which enhances the "robustness" of the program.

If the application does not check this error, it will think that this value is an available pointer assigned to it according to "thinking inertia" and continue to use this memory in subsequent operations. The real 0-address storage area stores the most important "interrupt descriptor table" in the computer system, which is absolutely not allowed to be used by applications. In an unprotected operating system (such as DOS), writing data to this address will lead to an immediate crash, while in a robust operating system, such as Windows, this operation will be immediately captured by the protection mechanism of the system, and as a result, the operating system will forcibly close the wrong application to prevent its error from expanding. At this time, the above-mentioned "write memory" error will appear, indicating that the referenced memory address is "0x00000000".

There are many reasons for the failure of memory allocation, such as insufficient memory and mismatched system function versions. Therefore, this distribution failure is mostly seen after the operating system has been used for a long time, a variety of applications (including virus programs installed unintentionally) have been installed, and a large number of system parameters and system files have been changed.

Second, the application refers to an abnormal memory pointer due to its own BUG.

In applications that use dynamic allocation, it sometimes happens that the program tries to read and write a memory that should be available, but for some reason, the expected available pointer has failed. It may be "forgetting" to ask the operating system for allocation, or it may be that the program itself canceled this memory at some point, "not paying attention" and so on. The logged-out memory is reclaimed by the system, and its access right no longer belongs to the application, so reading and writing operations will also trigger the protection mechanism of the system, and the only final result of the program that tries to "violate the law" is to be stopped by the operation and recover all resources. The laws of the computer world are still much more effective and severe than human beings! A situation like this is a BUG in the program itself, and you can often reproduce the error in a specific operation sequence. The invalid pointer is not always 0, so the memory address in the error prompt is not necessarily "0x00000000", but it can also be other random numbers.

If the above error prompt appears frequently, the following suggestions may be helpful:

1. Check the system for Trojan virus. In order to control the system, such programs often modify the system irresponsibly, resulting in abnormal operating system. We should strengthen our awareness of information security at ordinary times, and never be curious about executable programs with unknown sources.

2. Update the operating system, so that the installation program of the operating system can copy the correct version of the system files and correct the system parameters. Sometimes there are bugs in the operating system itself, so pay attention to installing the officially released upgrade program.

3. Try a new version of the application.

When running some programs, sometimes there will be a memory error prompt, and then the program will close.

0x instruction refers to 0x memory. The memory cannot be read.

0x memory referenced by 0x instruction cannot be "written".

I wonder if you have ever seen such a fault. (The contents after 0x may be different. )

Generally speaking, this phenomenon has many aspects. First, there is something wrong with the hardware, that is, the memory; second, there are many problems with the software.

Let's talk about hardware first:

Generally speaking, memory problems are unlikely. The main aspects are: the memory stick is broken, the memory quality is problematic, and there are two different brands of memory with different capacities, which is also prone to incompatibility. At the same time, we must pay attention to heat dissipation, especially after overclocking. You can use the software MemTest to check the memory, and you can thoroughly check the stability of the memory.

This problem occurs if you have dual memory, and different brands of memory chips are mixed or you buy second-hand memory. At this time, you should check whether there is a memory problem or it is incompatible with other hardware. If not, troubleshoot the software.

Let's talk briefly about the principle first: there is a place in memory called buffer for storing data. If the program puts the data in one place, it will overflow because of insufficient space. For example, a bucket can only hold one catty of water. If you put two Jin of water in it, it will overflow. The system is displayed on the screen. This problem often appears in windows2000 and XP systems. Windows 2000/XP has very strict requirements on hardware. In the case of deadlock, overflow or illegal operation of resources similar to Windows 98, the above situation will occur in order to keep the system stable. In addition, it may also be caused by poor compatibility between hardware devices.

Let me give you an analysis from several examples:

Example 1: Open IE browser or "0x00000000" memory referenced by "0x70dcf39f" instruction will appear in a few minutes. The memory cannot be read. To terminate the program, click OK. After clicking OK, the message box "An internal error has occurred and a window you are using will be closed soon" will appear. After closing this prompt message, IE browser is also closed. Solution: Repair or upgrade IE browser and patch it at the same time. I see that there is a repair method that Win2000 is self-upgrading, that is, Win2000 is upgraded to Win2000. In fact, this method is to restore the system to the initial state. For example, if your IE is upgraded to 6.0, it will be changed to IE5.0 after the upgrade.

Example 2: Double-click the "AutoRun.exe" file in the CD-ROM under windows xp to display the "0x00000078" memory referenced by the "0x77f745cc" instruction. Memory cannot be "written". To terminate the program, click OK, but it works normally in Windows 98. Solution: This may be a compatibility problem of the system. For winXP system, right-click the AutoRun.exe file, properties and compatibility, and select "Run this program in compatibility mode" and "Windows 98/Me". Win2000, if the SP is patched, just start running, and enter: regsvr32c: \ \ winnt \ \ apppatch \ \ slayeui.dll. Right-click and the properties and compatibility options will also appear.

Example 3: An error occurred when closing RealOne Gold. It used to be normal, but recently the "0xffffffff" memory referenced by the "0xffffffff" instruction appears every time it is closed. This kind of memory can't be a hint of "read". Solution: When the input method used is Microsoft Pinyin Input Method 2003 and the language bar is hidden (no problem when it is not hidden), this problem will occur when RealOne is closed, so you can display the language bar before closing RealOne or use any other input method as the current input method to solve this problem.

Ex. 4: My hero, Super Jieba, has been unable to play since he got online. Every time you are prompted that the "Oxff0000 1 1" memory referenced by the "Ox060692f6" command cannot be "read", press OK to terminate the program. Solution: Try to reinstall Hero Super Jieba. If it is reinstalled, you can try to download the corresponding version of the patch from official website. Not yet, so I have to try another player.

Example 5: Double-click the shortcut of a game, and the instruction "Ox77f5cdO" refers to the memory "Oxffffffff", which cannot be read, prompting that the Client.dat program is wrong. Solution: Reinstall the latest driver of graphics card, and then download and install DirectX9.0.

Example 6: My friend sent me a message, and my computer got an error message: the "0*00303033" memory referenced by the "0*772b548f" command could not be "written", and then QQ automatically went offline, and then I opened QQ and found more than a dozen messages sent by him. Solution: This is that the other party uses a BUG in QQ to send a special code and makes an error in QQ. Just patch or upgrade to the latest version, and you'll be fine.

From the above example, we can see that there are many reasons for failure. Here we make a list of the mentioned and possible reasons for your reference.

solution

1. If the memory stick is broken, please replace it.

2. Dual memory is not compatible with using the same brand of memory or only using one memory.

3, memory quality problems replace the memory stick

4. Heat dissipation problem Strengthen the heat dissipation inside the chassis.

5. Memory and motherboard are not inserted correctly or are incompatible with other hardware. , and then the memory is plugged in or plugged in badly.

6. If there is something wrong with the hard disk, please replace it.

7, the driver problem reloads the driver. If it is a new system, the motherboard driver should be installed first.

8. The software is damaged and reinstalled.

9. There are bugs in the software that need to be patched or the latest version.

10. Software and system are incompatible. Patch the software or try the compatibility mode of the system.

1 1. Software and software are in conflict. If you have installed any new software recently, please uninstall and try it.

12. If the software needs to be used in other related software, reinstall the related software if there is any problem. For example, there is an error when playing a file in a certain format, which may be a problem with the decoder of this file.

13, antivirus for virus problems

14, antivirus software conflicts with system or software. Because anti-virus software enters the bottom monitoring system, it may conflict with some software, so try to uninstall it.

15, there is something wrong with the system itself. Sometimes the operating system itself has bugs. Pay attention to install the official upgrade program, such as SP patch, and it is best to install it. If not, please reinstall the system or replace it with another version.

Blue screen is common when using Windows, and it is laborious and time-consuming to reinstall the system frequently because the source of the error is not clear. The following collected some windows crash passwords for your reference.

Digital narration

0 0x0000 job completed.

1 0x000 1 incorrect function.

2 0x0002 The system cannot find the specified file.

3 0x0003 The system cannot find the specified path.

4 0x0004 The system cannot open the file.

5 0x0005 Access denied.

6 0x0006 Invalid code.

7 0x0007 The bank control block has been corrupted.

8 0x0008 There is not enough storage space to process this command.

9 0x0009 The address of the storage control block is invalid.

10 0x000a environment is incorrect.

1 1 0x000b tried to load a malformed program.

Error in 12 0x000c access code.

13 0x000d data error.

14 0x000e does not have enough storage space to complete this operation.

15 0x000f The system cannot find the specified drive.

16 0x00 10 cannot delete the directory.

17 0x00 1 1 The system cannot move files to other drives.

18 0x00 12 has no file.

19 0x00 13 storage medium is write-protected.

20 0x00 14 system cannot find the specified device.

2 1 0x00 15 device is not ready.

22 0x00 16 device cannot recognize this instruction.

23 0x00 17 data error (cyclic redundancy check)

24 0x00 18 program issued a long error instruction.

The 25 0x00 19 drive cannot find a fixed sector or track on the disk.

26 0x00 1a cannot access the specified disk or floppy disk.

27 0x00 1b drive cannot find the required volume.

28 0x00 1c printer has no paper.

29 0x00 1d system cannot write data to the specified drive.

30 0x00 1e system cannot read the specified device.

3 1 0x00 1f The device connected to the system is invalid.

32 0x0020 The process cannot access the file because another process is using it.

Part of the file 33 0x002 1 is locked and cannot be accessed now.

The floppy disk of drive 34 0x0022 is incorrect. Please insert %2 (volume serial number: %3) into drive% 1.

36 0x0024 There are too many open shared files.

38 0x0026 Reached the end of the file.

39 0x0027 Disk is full.

50 0x0032 does not support this network request.

5 1 0x0033 The remote computer cannot be used.

52 0x0034 Duplicate network name.

53 0x0035 The network path cannot be found.

54 0x0036 The network is busy.

55 0x0037 The specified network resource or device is no longer available.

56 0x0038 The network bios command limit has been reached.

57 0x0039 There is something wrong with the network adapter.

The server specified by 58 0x003a cannot perform the requested operation.

An unexpected error occurred in the 59 0x003b network.

The 60 0x003c remote adapter is not compatible.

6 1 0x003d printer queue is full.

The space of the 62 0x003e server cannot store the files waiting to be printed.

63 0x003f The file waiting to be printed has been deleted.

64 0x0040 The specified network name cannot be used.

65 0x004 1 Access to the network is denied.

66 0x0042 The network resource type is wrong.

67 0x0043 The network name cannot be found.

68 0x0044 exceeds the name limit of LAN adapter.

69 0x0045 exceeds the limit of network bios session.

70 0x0046 The remote server has been paused or is starting.

7 1 0x0047 cannot connect to this remote computer at this time because the number of connections has reached the maximum.

72 0x0048 The specified printer or disk device has been suspended.

80 0x0050 file already exists.

82 0x0052 Unable to create directory or file.

83 0x0053 int 24 failed

84 0x0054 The storage used to process this request cannot be used.

85 0x0055 The name of the near-end device has already been used.

86 0x0056 The specified network password is incorrect.

87 0x0057 parameter error.

88 0x0058 A data write error occurred in the network.

89 0x0059 At this time, the system cannot perform other trips.

100 0x0064 Unable to create other system signals.

10 1 0x0065 belongs to the semaphore dedicated to other trips.

102 0x0066 semaphore has been set and cannot be closed.

103 0x0067 Unable to specify semaphore.

104 0x0068 Unable to request a dedicated semaphore during the interrupt.

105 0x0069 The previous ownership of this semaphore has ended.

106 0x006a Please insert the floppy disk into% 1.

107 0x006b The program has stopped because the replacement disk is not inserted.

108 0x006c disk is in use or locked.

109 0x006d pipeline has been aborted.

1 10 0x006e The system cannot open the specified device or file.

The file name of 65438+110x006f is too long.

1 12 0x0070 Insufficient disk space.

1 13 0x007 1 No internal file identifier is available.

1 14 0x0072 The target internal file identifier is incorrect.

1 17 0x0075 The ioctl of the application call is incorrect.

1 18 0x0076 The value of the write verification parameter is incorrect.

1 19 0x0077 The requested command is not supported by the system.

120 0x0078 This function is only valid in win32 mode.

12 1 0x0079 semaphore exceeded the timeout period.

122 0x007a The data area passed to the system call is too small.

123 0x007b file name, directory name or storage label syntax error.

124 0x007c system call hierarchy is incorrect.

125 0x007d disk is not marked.

126 0x007e cannot find the specified module.

127 0x007f cannot find the specified program.

128 0x0080 There is no sub-trip to wait.

129 0x0081%1This application cannot run in win32 mode.

130 0x0082 attempted to use the file handle of the open disk partition.

Operations other than original disk I/O.

13 1 0x0083 tried to move the file pointer before the beginning of the file.

132 0x0084 Unable to set the file pointer on the specified device or file.

133 0x0085 join or subst command cannot be used for previously bound disk drives.

134 0x0086 Try to use the join or subst command on a combined disk drive.

135 0x0087 Try to use the join or subst command on the replaced disk drive.

136 0x0088 The system tried to delete the link relationship of the unlinked drive.

137 0x0089 The system tried to delete the replacement relationship of the unreplaced drive.

138 0x008a The system tried to add the drive to the directory where the drive has been added.

139 0x008b The system tried to replace the drive with the directory of the replaced drive.

140 0x008c system tried to replace the drive with the directory of the replaced drive.

14 1 0x008d The system tried to replace the drive with a combined drive directory.

142 0x008e system cannot perform join or subst at this time.

143 0x008f system cannot merge drives or replace directories under the same drive.

144 0x0090 This directory is not a subdirectory of the root directory.

There is still data in the 145 0x009 1 directory.

The path specified by 146 0x0092 has been replaced.

147 0x0093 Insufficient resources to process this instruction.

The path specified by 148 0x0094 cannot be used at this time.

149 0x0095 The drive directory you are trying to merge or replace is the target that has already been replaced.

150 0x0096 config.sys file did not specify system tracking information, or the tracking function was cancelled.

15 1 0x0097 The number of semaphore events specified is incorrect.

152 0x0098 dosmuxsemwait not executed; Too many semaphores are set.

153 0x0099 dosmuxsemwait list is incorrect.

154 0x009a The storage medium symbol length limit you entered.

155 0x009b cannot create another thread.

156 0x009c receives the trip rejection signal.

157 0x009d has been discarded and cannot be locked.

158 0x009e sector has been unlocked.

The address of 159 0x009f thread ID is incorrect.

160 0x00a0 passed to dosexecpgm with quotation marks is incorrect.

16 1 0x00a 1 The specified path is incorrect.

162 0x00a2 signal waiting to be processed.

164 0x00a4 system failed to create thread.

167 0x00a7 failed to lock some files.

The resource requested by 170 0x00aa is in use.

173 0x 0ad The locking requirement of the cancellation range is not obvious.

174 0x00ae file system does not support automatic change of lock type.

180 0x00b4 system found an incorrect segment number.

182 0x00b6 The operating system cannot execute% 1.

The file 183 0x00b7 already exists. Cannot create the same file.

The flag sent by 186 0x00ba is wrong.

The system flag specified by 187 0x00bb cannot be found.

The operating system of 188 0x00bc cannot execute% 1.

189 0x00bd operating system cannot execute% 1.

The operating system of 190 0x00be cannot execute% 1.

19 1 0x00bf cannot execute% 1 in win32 mode.

The operating system of 192 0x00c0 cannot execute% 1.

193 0x00c1%1is not a correct win32 application.

The operating system of 194 0x00c2 cannot execute% 1.

The operating system of 195 0x00c3 cannot execute% 1.

196 0x00c4 operating system cannot run this application.

The 197 0x00c5 operating system cannot run this application at present.

The operating system of 198 0x00c6 cannot execute% 1.

199 0x00c7 operating system cannot run this application.

200 0x00c8 code segment cannot be greater than or equal to 64kb.

20 1 0x00c9 operating system cannot execute% 1.

202 0x00ca operating system cannot execute% 1.

The 203 0x00cb system cannot find the entered environment option. \r

205 0x00cd is in the instruction subdirectory, and there is no signal subprocessor for any trip.

206 0x00ce file name or extension is too long.

207 0x00cf Ring 2 stack is in use.

Interviewee: I thought so, too. I asked-Senior Manager Level 6 12-9 0 1:24.

Revision reply: I thought so, too. I asked, and your revision reply is as follows: the integral law is closed.

Common reasons why this memory cannot be read or written.

People who use the Windows operating system sometimes encounter the following error message: "The memory referenced by the instruction 0x000000000x cannot be written", and then the application closes. If you ask some "experts", the answer you get is often indignation and disdain like "Windows is so unstable". In fact, this error is not necessarily caused by the instability of Windows. This paper will briefly analyze the common causes of this error.

First, the application cannot check the memory allocation.

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

Memory is not always available and inexhaustible, and sometimes memory allocation will fail. When the allocation fails, the system function will return a value of 0. At this point, the return value "0" no longer indicates the newly enabled pointer, but a notification sent by the system to the application, indicating that an error has occurred. As an application, you should check whether the return value is 0 after each memory application. If so, it means that there is a fault and some measures need to be taken to save it, which enhances the "robustness" of the program.

If the application does not check this error, it will think that this value is an available pointer assigned to it according to "thinking inertia" and continue to use this memory in subsequent operations. The real 0-address storage area stores the most important "interrupt descriptor table" in the computer system, which is absolutely not allowed to be used by applications. In an unprotected operating system (such as DOS), writing data to this address will lead to an immediate crash, while in a robust operating system, such as Windows, this operation will be immediately captured by the protection mechanism of the system, and as a result, the operating system will forcibly close the wrong application to prevent its error from expanding. At this time, the above-mentioned "write memory" error will appear, indicating that the referenced memory address is "0x00000000".

There are many reasons for the failure of memory allocation, such as insufficient memory and mismatched system function versions. Therefore, this distribution failure is mostly seen after the operating system has been used for a long time, a variety of applications (including virus programs installed unintentionally) have been installed, and a large number of system parameters and system files have been changed.

Second, the application refers to an abnormal memory pointer due to its own BUG.

In applications that use dynamic allocation, it sometimes happens that the program tries to read and write a memory that should be available, but for some reason, the expected available pointer has failed. It may be "forgetting" to ask the operating system for allocation, or it may be that the program itself canceled this memory at some point, "not paying attention" and so on. The logged-out memory is reclaimed by the system, and its access right no longer belongs to the application, so reading and writing operations will also trigger the protection mechanism of the system, and the only final result of the program that tries to "violate the law" is to be stopped by the operation and recover all resources. The laws of the computer world are still much more effective and severe than human beings! A situation like this is a BUG in the program itself, and you can often reproduce the error in a specific operation sequence. The invalid pointer is not always 0, so the memory address in the error prompt is not necessarily "0x00000000", but it can also be other random numbers.

If the above error prompt appears frequently, the following suggestions may be helpful:

1. Check the system for Trojan virus. In order to control the system, such programs often modify the system irresponsibly, resulting in abnormal operating system. We should strengthen our awareness of information security at ordinary times, and never be curious about executable programs with unknown sources.

2. Update the operating system, so that the installation program of the operating system can copy the correct version of the system files and correct the system parameters. Sometimes there are bugs in the operating system itself, so pay attention to installing the officially released upgrade program.

3. Try a new version of the application.

When running some programs, sometimes there will be a memory error prompt, and then the program will close.

0x instruction refers to 0x memory. The memory cannot be read.

0x memory referenced by 0x instruction cannot be "written".

I wonder if you have ever seen such a fault. (The contents after 0x may be different. )

Generally speaking, this phenomenon has many aspects. First, there is something wrong with the hardware, that is, the memory; second, there are many problems with the software.

Let's talk about hardware first:

Generally speaking, memory problems are unlikely. The main aspects are: the memory stick is broken, the memory quality is problematic, and there are two different brands of memory with different capacities, which is also prone to incompatibility. At the same time, we must pay attention to heat dissipation, especially after overclocking. You can use the software MemTest to check the memory, and you can thoroughly check the stability of the memory.

This problem occurs if you have dual memory, and different brands of memory chips are mixed or you buy second-hand memory. At this time, you should check whether there is a memory problem or it is incompatible with other hardware. If not, troubleshoot the software.

Let's talk briefly about the principle first: there is a place in memory called buffer for storing data. If the program puts the data in one place, it will overflow because of insufficient space. For example, a bucket can only hold one catty of water. If you put two Jin of water in it, it will overflow. The system is displayed on the screen. This problem often appears in windows2000 and XP systems. Windows 2000/XP has very strict requirements on hardware. In the case of deadlock, overflow or illegal operation of resources similar to Windows 98, the above situation will occur in order to keep the system stable. In addition, it may also be caused by poor compatibility between hardware devices.

Let me give you an analysis from several examples:

Example 1: Open IE browser or "0x00000000" memory referenced by "0x70dcf39f" instruction will appear in a few minutes. The memory cannot be read. To terminate the program, click OK. After clicking OK, the message box "An internal error has occurred and a window you are using will be closed soon" will appear. After closing this prompt message, IE browser is also closed. Solution: Repair or upgrade IE browser and patch it at the same time. I see that there is a repair method that Win2000 is self-upgrading, that is, Win2000 is upgraded to Win2000. In fact, this method is to restore the system to the initial state. For example, if your IE is upgraded to 6.0, it will be changed to IE5.0 after the upgrade.

Example 2: Double-click the "AutoRun.exe" file in the CD-ROM under windows xp to display the "0x00000078" memory referenced by the "0x77f745cc" instruction. Memory cannot be "written". To terminate the program, click OK, but it works normally in Windows 98. Solution: This may be a compatibility problem of the system. For winXP system, right-click the AutoRun.exe file, properties and compatibility, and select "Run this program in compatibility mode" and "Windows 98/Me". Win2000, if the SP is patched, just start running, and enter: regsvr32c: \ \ winnt \ \ apppatch \ \ slayeui.dll. Right-click and the properties and compatibility options will also appear.

Example 3: An error occurred when closing RealOne Gold. It used to be normal, but recently the "0xffffffff" memory referenced by the "0xffffffff" instruction appears every time it is closed. This kind of memory can't be a hint of "read". Solution: When the input method used is Microsoft Pinyin Input Method 2003 and the language bar is hidden (no problem when it is not hidden), this problem will occur when RealOne is closed, so you can display the language bar before closing RealOne or use any other input method as the current input method to solve this problem.

Ex. 4: My hero, Super Jieba, has been unable to play since he got online. Every time you are prompted that the "Oxff0000 1 1" memory referenced by the "Ox060692f6" command cannot be "read", press OK to terminate the program. Solution: Try to reinstall Hero Super Jieba. If it is reinstalled, you can try to download the corresponding version of the patch from official website. Not yet, so I have to try another player.

Example 5: Double-click the shortcut of the game. The instruction "Ox77f5cdO" refers to the memory "Oxffffffff" and cannot be read, indicating that the Client.dat program is wrong.