Partager via


Récupération des numéros de mémoire graphique

Les développeurs de logiciels qui créent des applications graphiques peuvent utiliser les API Microsoft DirectX version 10 à partir de Windows Vista pour récupérer l’ensemble précis de numéros de mémoire graphique sur les ordinateurs exécutant des pilotes d’affichage WDDM (Windows Display Driver Model ). Les étapes suivantes montrent comment récupérer les numéros de mémoire graphique :

  1. Étant donné que les nouveaux rapports de mémoire graphique sont disponibles uniquement sur les ordinateurs exécutant des pilotes d’affichage WDDM (Windows Display Driver Model), une application doit d’abord appeler la fonction suivante pour confirmer le modèle de pilote :

    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. Une fois que l’application a déterminé que le modèle de pilote d’affichage est WDDM, l’application peut utiliser les nouvelles API DirectX version 10 pour obtenir les numéros de mémoire graphique. L’application obtient les numéros de mémoire graphique à partir de la structure de données DXGI_ADAPTER_DESC suivante, qui est présente dans Dxgi.h et est incluse dans le Kit de développement logiciel (SDK) DirectX.

    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;
    

En raison de l’utilisation intensive des graphiques dans les jeux Windows Vista et de bureau ultérieurs et DirectX, les logiciels qui s’exécutent sur Windows Vista et versions ultérieures doivent être en mesure de déterminer avec précision la quantité de mémoire graphique disponible. WDDM gère la virtualisation de la mémoire graphique en soi et garantit également la création de rapports précis sur différents aspects de la mémoire graphique. Les développeurs d’applications et les éditeurs de logiciels doivent tirer parti des API DirectX version 10 pour récupérer l’ensemble précis de valeurs de mémoire graphique sur les ordinateurs dotés de pilotes d’affichage Windows Vista.