次の方法で共有


グラフィックス メモリの数の取得

グラフィックス アプリケーションを作成するソフトウェア開発者は、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.h に存在し、DirectX ソフトウェア開発キット (SDK) に含まれている以下の DXGI_ADAPTER_DESC データ構造体からグラフィックス メモリ数を取得します。

    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 は、グラフィックス メモリ自体の仮想化を管理し、グラフィックス メモリのさまざまな側面の正確なレポートも保証します。 アプリケーション開発者とソフトウェア ベンダーは、Windows Vista ディスプレイ ドライバーを搭載したコンピューター上のグラフィックス メモリ値の正確なセットを取得するために DirectX バージョン 10 API を利用する必要があります。