問題:CreateDIBSection 分配的寫屏內存是否為 Write Combining (WC) 類型?
HBITMAP 是 GDI 內核對象,代表一個設備無關位圖 (DIB)。ppvBits) 指向系統分配的普通分頁內存 (PAGE_READWRITE),可直接 CPU 讀寫像素。VirtualAlloc + MEM_WRITECOMBINE 或驅動程序映射,CreateDIBSection 不涉及。HBITMAP CreateDIBSection(
HDC hdc,
const BITMAPINFO* pbmi,
UINT iUsage,
VOID** ppvBits, // 輸出:位圖像素數據指針
HANDLE hSection, // 可選:文件映射對象
DWORD dwOffset
);
hSection = NULL 時,系統自動分配分頁文件支撐的內存 (普通 RAM)。CreateFileMapping + SEC_COMMIT 傳入 hSection,但極少見。CreateDIBSection 適合軟件繪圖、截圖、圖像處理等純 CPU 場景。結論:CreateDIBSection 返回普通內存指針,非 WC 類型,直接通過 ppvBits 讀寫像素即可。