Överkurs: Det går att instruera Windows via BCD att aldrig använda trasiga 4k segment av minnet.
Användbart om du bara har en/några fel som verkar statiska och inte vandrar runt.
Om du ska försöka använda detta så BACKA UPP din BCD innan du använder BCDedit !!!!
There is a Bad Memory List feature in windows, but it uses Page numbers instead of absolute addresses.
Pages are usually 4096 bytes in size. To turn a true memory address into a page number, divide by 4096 (0x1000), or in other words, take the last 3 digits out of the hex number. So for ex. MemTests addr 0x1A3F402F0 becomes Windows page 0x1A3F40, and 0x1717765B4 becomes 0x171776.
The key to passing the damaged memory parameters are:
1) must mark only full Windows page(s) of 4KBytes. (4096) (even for a single bit error, but what's 4k today??)
2) addresses MemTest emits, match addresses used in Windows with a simple calculation.
3) in MemTest 0x10000000, corresponds to 0x10000 in Windows.
4) means: The page number in Windows removes the last three MemTest hexadecimal numbers.
5) consider above to avoid errors in the page numbers. (and good practice: write down the pages You block on paper etc. for further evaluation/testing)
6) the correct statement is: bcdedit /set {badmemory} badmemorylist 0xB7 0xB8 0xB9 0xBA to errors in MemTest. Note that you can not put a range of memories, but all pages one by one.
7) can not add pages later, all pages must be added in the same command. If You add a new page, it overwrites all. I managed to add 4096 pages in a only one command. I never tried any more.
8) command bcdedit /enum {badmemory}, shows the list of marked pages.
9) command bcdedit /set badmemoryaccess no, prevent the marked pages are used by windows.
10) it is necessary to reboot after marking pages and remove access.
ex.
admin cmd> bcdedit /set {badmemory} badmemorylist 0xB7 0xB8 0xB9 0xBA 0xBB 0xBC 0xBD 0xBE 0xBF 0xC0 <enter>
= set bad mem list
admin cmd> bcdedit /enum {badmemory} <enter>
= will show saved list from BCD
admin cmd> bcdedit /set badmemoryaccess no <enter>
= tells windows to avoid set bad mem (still need to reboot)
Microsofts hjälpsida för BCDedit: https://technet.microsoft.com/en-us/library/cc709667(v=ws.10)...
Och om någonsin ser detta i event loggen så har Windows självmant tagit bort minne efter en BSOD/programkrash (Windows 10, de äldre vet jag inte om de kan...)
Log Name: System
Source: Microsoft-Windows-Memory-Diagnostic-Task-Handler
Date: 2016-09-25 12:40:25
Event ID: 1001
Task Category: None
Level: Information
Keywords:
User: XXXX
Computer: XXX
Description:
Windows removed bad memory regions from this PC.
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="Microsoft-Windows-Memory-Diagnostic-Task-Handler" Guid="{BABDA89A-4D5E-48EB-AF3D-E0E8410207C0}" />
<EventID>1001</EventID>
<Version>0</Version>
<Level>4</Level>
<Task>0</Task>
<Opcode>0</Opcode>
<Keywords>0x8000000000000000</Keywords>
<TimeCreated SystemTime="2016-09-25T10:40:25.075993600Z" />
<EventRecordID>840</EventRecordID>
<Correlation />
<Execution ProcessID="648" ThreadID="5848" />
<Channel>System</Channel>
<Computer>XXX</Computer>
<Security UserID="GGGAGAGAGAGAGGA" />
</System>
<UserData>
<MemoryDiagnosticPagesRemoved xmlns="http://www.microsoft.com/Windows/Memory/Diagnostic/Task/Handl...">
<RemovedMemorySize>4096</RemovedMemorySize>
</MemoryDiagnosticPagesRemoved>
</UserData>
</Event>
Happy bit squashing hunt