共用方式為


存取Read-Only系統記憶體

Windows 記憶體管理員 會強制執行未標示為可寫入之頁面的唯讀存取。

唯讀記憶體一律在使用者模式中受到保護。 不過,在 Windows NT 4.0 和舊版中,唯讀記憶體在核心模式中並未受到保護。

如果 Windows 核心模式驅動程式或應用程式嘗試寫入唯讀記憶體區段,系統就會發出錯誤檢查。 如需詳細資訊,請參閱 錯誤檢查0xBE:ATTEMPTED_WRITE_TO_READONLY_MEMORY

攔截系統呼叫

某些驅動程式會覆寫驅動程式自己的程式碼,並插入跳躍指示或其他變更,來攔截系統呼叫。 因為驅動程式自己的程式碼是唯讀的,所以這項技術會導致發出錯誤檢查。

全域字串

如果要修改全域字串,它不得宣告為常數值的指標:

CHAR *myString = "This string cannot be modified.";

在此情況下,連結器可能會將字串放在唯讀記憶體區段中。 然後嘗試修改字串會導致錯誤檢查。

相反地,字串應該明確宣告為 L 值字元的陣列:

CHAR myString[] = "This string can be modified.";

此宣告可確保字串放在可寫入的記憶體中。