共用方式為


擷取圖形記憶體編號

建立圖形應用程式的軟體發展人員可以使用從 Windows Vista 開始的 Microsoft DirectX 第 10 版 API,來擷取執行 Windows 顯示驅動程式模型 (WDDM) 顯示器驅動程式之電腦上精確的圖形記憶體數位集。 下列步驟示範如何擷取圖形記憶體編號:

  1. 由於新的圖形記憶體報告僅適用于執行 Windows 顯示驅動程式模型 (WDDM) 顯示器驅動程式的電腦上,應用程式必須先呼叫下列函式以確認驅動程式模型:

    HasWDDMDriver()
    {
        LPDIRECT3DCREATE9EX pD3D9Create9Ex = NULL;
        HMODULE             hD3D9          = NULL;
    
        hD3D9 = LoadLibrary( L"d3d9.dll" );
    
        if ( NULL == hD3D9 ) {
            return false;
        }
    
        //
        //  Try to create a IDirect3D9Ex interface (also known as a DX9L 
        //  interface).
        //  This interface can only be created if the driver is written 
        //  according to the Windows Display Driver Model (WDDM).
        //
        pD3D9Create9Ex = (LPDIRECT3DCREATE9EX) GetProcAddress (
            hD3D9, "Direct3DCreate9Ex" );
    
        return pD3D9Create9Ex != NULL;
    }
    
  2. 應用程式判斷顯示驅動程式模型為 WDDM 之後,應用程式可以使用新的 DirectX 第 10 版 API 來取得圖形記憶體編號。 應用程式會從下列 DXGI_ADAPTER_DESC 資料結構取得圖形記憶體編號,該結構存在於 Dxgi.h 中,並包含在 DirectX 軟體發展工具組 (SDK) 中。

    typedef struct DXGI_ADAPTER_DESC {
        WCHAR Description[ 128 ];
        UINT VendorId;
        UINT DeviceId;
        UINT SubSysId;
        UINT Revision;
        SIZE_T DedicatedVideoMemory;
        SIZE_T DedicatedSystemMemory;
        SIZE_T SharedSystemMemory;
        LUID AdapterLuid;
        } DXGI_ADAPTER_DESC;
    

由於在 Windows Vista 和更新版本的桌面和 DirectX 遊戲中大量使用圖形,因此在 Windows Vista 和更新版本上執行的軟體應該能夠正確判斷可用的圖形記憶體數量。 WDDM 會管理圖形記憶體本身的虛擬化,並確保正確報告圖形記憶體的各個層面。 應用程式開發人員和軟體廠商應該利用 DirectX 第 10 版 API,在具有 Windows Vista 顯示器驅動程式的電腦上擷取一組精確的圖形記憶體值。