Windows 支援 /3GB 參數前,32 位元應用程式無法存取高位元已設定的指標。32 位元指標僅前 31 位可供用戶模式使用,最高位保留。部分開發者利用此位作其他用途(如標記指標類型),導致啟用 /3GB 時無法區分合法指標與自用標記指標。微軟在 WIN32 PE 檔案 Characteristics 欄位新增 IMAGE_FILE_LARGE_ADDRESS_AWARE 標誌位:啟用時,可執行檔標頭第 32 位被置位,告知 Windows 該程式能處理高位元已設定的指標。SQL Server 已啟用此標誌,故可在支援 /3GB 的 Windows 版本中使用該參數,自動擴展用戶模式位址空間。可用 DumpBin 或 ImageCfg 檢查此標誌。Visual C++ 透過 /LARGEADDRESSAWARE 連結器開關設定。
註: Windows 啟動時檢查可執行檔此標誌,但忽略 DLL。DLL 程式碼必須自行處理高位元已設定的指標。
Intel Pentium Pro 及後續處理器支援 PAE 記憶體映射模式,可存取 64 GB 實體記憶體。PAE 模式下,記憶體管理單元(MMU)仍執行頁目錄項(PDE)與頁表項(PTE),但新增頁目錄指標表層級。PDE 與 PTE 變為 64 位(非標準 32 位),定址寬度加倍。特殊版 Windows 核心(Ntkrnlpa.exe 單核、Ntkrnlpamp.exe 多核)整合於 Windows 2000 及後續版本。可在 BOOT.INI 加入 /PAE 參數啟用。
AWE 允許 32 位元應用程式存取超過 4 GB 實體記憶體。概念上類似早期 DOS 時代的擴充記憶體管理:在可存取位址空間分配一個「視窗/區域」作為分段傳輸區,映射不可直接存取的實體記憶體。
使用 AWE 需:
AllocateUserPhysicalPages API 分配可存取的實體記憶體位址,需 鎖定記憶體頁面 權限VirtualAlloc API 在可存取空間建立映射視窗SQL Server 透過 AWE 將緩衝集區擴展至 4 GB 以上實體記憶體,僅資料快取頁面可使用 AWE 記憶體,需單獨追蹤管理。