[..]Récupérer la bonne taille mémoire des cartes graphique > 4GB
Posté : lun. 13 juin 2022 18:28
Bonjour à tous,
Les cartes graphiques ont plus de RAM aujourd'hui comme ma RTX 3060 qui à 12GB
Le code actuel permet de récupérer jusqu'à 4 GB de RAM limitation du système d'API 32 bits un peu comme une limitation 32Bit en FAT32 (4096 Mo)
Y à t'il moyen de résoudre ce problème de limitation 4GB ?
Merci pour le code de base
https://docs.microsoft.com/fr-fr/window ... dfrom=MSDN
Les cartes graphiques ont plus de RAM aujourd'hui comme ma RTX 3060 qui à 12GB
Le code actuel permet de récupérer jusqu'à 4 GB de RAM limitation du système d'API 32 bits un peu comme une limitation 32Bit en FAT32 (4096 Mo)

Y à t'il moyen de résoudre ce problème de limitation 4GB ?
Merci pour le code de base

MsgBox ( 64,"", _GetGraphicCardModel())
Func _GetGraphicCardModel() ;Récupère le(s) modèle(s) de(s) carte(s) graphique(s).
; https://docs.microsoft.com/fr-fr/windows/win32/cimwin32prov/win32-videocontroller?redirectedfrom=MSDN
Local $objWMIService = ObjGet("winmgmts:\\.\root\CIMV2")
Local $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_VideoController", "WQL", 0x10 + 0x20)
Local $Output
If IsObj($colItems) then
For $objItem In $colItems
$Output = $Output & @CRLF & $objItem.Caption & " (" & Int( _UINT($objItem.AdapterRAM) / 1024^2 ) & " Mo)"
;~ $Output = $Output & @CRLF & $objItem.Caption & " (" & Int( $objItem.AdapterRAM/1024^3) & " Go)"
Next
Endif
Return $Output
EndFunc ;_GetGraphicCardModel
Func _UINT($INT) ;Cast une valeur numérique en entier non signé.
Local $tUINT = DllStructCreate("UINT")
DllStructSetData($tUINT, 1, $INT)
Return DllStructGetData($tUINT, 1)
EndFunc ;==>_UINTFunc
Func _GetGraphicCardModel() ;Récupère le(s) modèle(s) de(s) carte(s) graphique(s).
; https://docs.microsoft.com/fr-fr/windows/win32/cimwin32prov/win32-videocontroller?redirectedfrom=MSDN
Local $objWMIService = ObjGet("winmgmts:\\.\root\CIMV2")
Local $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_VideoController", "WQL", 0x10 + 0x20)
Local $Output
If IsObj($colItems) then
For $objItem In $colItems
$Output = $Output & @CRLF & $objItem.Caption & " (" & Int( _UINT($objItem.AdapterRAM) / 1024^2 ) & " Mo)"
;~ $Output = $Output & @CRLF & $objItem.Caption & " (" & Int( $objItem.AdapterRAM/1024^3) & " Go)"
Next
Endif
Return $Output
EndFunc ;_GetGraphicCardModel
Func _UINT($INT) ;Cast une valeur numérique en entier non signé.
Local $tUINT = DllStructCreate("UINT")
DllStructSetData($tUINT, 1, $INT)
Return DllStructGetData($tUINT, 1)
EndFunc ;==>_UINTFunc
Code : Tout sélectionner
[Dynamic, Provider("CIMWin32"), UUID("{1008CCF1-7BFF-11D2-AAD2-006008C78BC7}"), AMENDMENT]
class Win32_VideoController : CIM_PCVideoController
{
uint16 AcceleratorCapabilities[];
string AdapterCompatibility;
string AdapterDACType;
uint32 AdapterRAM;
uint16 Availability;
string CapabilityDescriptions[];
string Caption;
uint32 ColorTableEntries;
uint32 ConfigManagerErrorCode;
boolean ConfigManagerUserConfig;
string CreationClassName;
uint32 CurrentBitsPerPixel;
uint32 CurrentHorizontalResolution;
uint64 CurrentNumberOfColors;
uint32 CurrentNumberOfColumns;
uint32 CurrentNumberOfRows;
uint32 CurrentRefreshRate;
uint16 CurrentScanMode;
uint32 CurrentVerticalResolution;
string Description;
string DeviceID;
uint32 DeviceSpecificPens;
uint32 DitherType;
datetime DriverDate;
string DriverVersion;
boolean ErrorCleared;
string ErrorDescription;
uint32 ICMIntent;
uint32 ICMMethod;
string InfFilename;
string InfSection;
datetime InstallDate;
string InstalledDisplayDrivers;
uint32 LastErrorCode;
uint32 MaxMemorySupported;
uint32 MaxNumberControlled;
uint32 MaxRefreshRate;
uint32 MinRefreshRate;
boolean Monochrome;
string Name;
uint16 NumberOfColorPlanes;
uint32 NumberOfVideoPages;
string PNPDeviceID;
uint16 PowerManagementCapabilities[];
boolean PowerManagementSupported;
uint16 ProtocolSupported;
uint32 ReservedSystemPaletteEntries;
uint32 SpecificationVersion;
string Status;
uint16 StatusInfo;
string SystemCreationClassName;
string SystemName;
uint32 SystemPaletteEntries;
datetime TimeOfLastReset;
uint16 VideoArchitecture;
uint16 VideoMemoryType;
uint16 VideoMode;
string VideoModeDescription;
string VideoProcessor;
};