Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Minneshanteraren i Windows framtvingar skrivskyddad åtkomst för sidor som inte har markerats som skrivbara.
Skrivskyddat minne har alltid skyddats i användarläget. I Windows NT 4.0 och tidigare versioner skyddades dock inte skrivskyddat minne i kernelläge.
Om en drivrutin eller ett program i Windows kernelläge försöker skriva till ett skrivskyddat minnessegment, utfärdar systemet en buggkontroll. Mer information finns i Felkontroll 0xBE: ATTEMPTED_WRITE_TO_READONLY_MEMORY.
Avlyssna systemanrop
Vissa drivrutiner fångar upp systemanrop genom att skriva över förarens egen kod och infoga hoppinstruktioner eller andra ändringar. Eftersom drivrutins egen kod är skrivskyddad kommer den här tekniken att orsaka en felkontroll.
Globala strängar
Om en global sträng ska ändras får den inte deklareras som en pekare till ett konstant värde:
CHAR *myString = "This string cannot be modified.";
I det här fallet kan länkaren placera strängen i ett skrivskyddat minnessegment. Sedan resulterar ett försök att ändra strängen i en buggkontroll.
I stället bör strängen uttryckligen deklareras som en matris med L-värdetecken:
CHAR myString[] = "This string can be modified.";
Den här deklarationen ser till att strängen placeras i skrivbart minne.