Récupération nombre de processeurs

Posté par DalKiT le 27/6/2006 10:25:35
Bonjour à tous,

Mon problème vient du fait que je n'arrive pas à retrouver le nombre de processeur.

Pour cela , j'utilise l'API NtQuerySystemInformation référencée dans NTDLL.DLL.

Voici la fonction à employer en C :

typedef struct _SYSTEM_BASIC_INFORMATION {
    BYTE Reserved1[24];
    PVOID Reserved2[4];
    CCHAR NumberProcessors;
} SYSTEM_BASIC_INFORMATION;

DWORD dwNumberOfProcessors;

NtQuerySystemInformation(SystemBasicInformation, &SysBaseInfo, sizeof(SysBaseInfo), NULL);

// Retourne le nombre de processeur
dwNumberOfProcessors = SysBaseInfo.NumberProcessors;


Et voici la conversion en windev

_SYSTEM_BASIC_INFORMATION est une structure
	Reserved1 est une chaîne fixe sur 24
	Reserved2 est un entier sur 4 octets
	NumberProcessors est un caractère
FIN

SysBaseInfo est un _SYSTEM_BASIC_INFORMATION

dwNumberOfProcessors est un entier

status=API("ntdll","NtQuerySystemInformation",0, &SysBaseInfo, Dimension(SysBaseInfo), Null);

// Retourne le nombre de processeur
dwNumberOfProcessors  = SysBaseInfo:NumberProcessors


Le seul problème est que SysBaseInfo:NumberProcessors me retourne toujours 0. Donc la y a un hic

Si vous avez une idée ou meme un composant qui récupère des informations systèmes, je suis preneur

Bonne journée

Cette contribution était de : http://old.wdforge.org/newbb/viewtopic.php?forum=12&topic_id=4283&post_id=17631