GetSystemInfo |
kernel32.dll | Demande les informations système |
---|---|---|
Windows NT 4+, 2000, XP, 2003 |
Syntaxe
VOID GetSystemInfo(LPSYSTEM_INFO lpSystemInfo); |
Paramètres
Nom | Description | ||||
---|---|---|---|---|---|
lpSystemInfo | Ce paramètre permet retourner la structure d'information suivante: | ||||
Champs | Type de données | Description | |||
wProcessorArchitecture | WORD | Ce champs permet d'indiquer l'identificateur d'architecture du microprocesseur | |||
Constante | Valeur | Description | |||
PROCESSOR_ARCHITECTURE_INTEL | 0 | Cette valeur permet d'indiquer une architecture de microprocesseur Intel de la famille x86 | |||
PROCESSOR_ARCHITECTURE_MIPS | 1 | Cette valeur permet d'indiquer une architecture de microprocesseur MIPS | |||
PROCESSOR_ARCHITECTURE_ALPHA | 2 | Cette valeur permet d'indiquer une architecture de microprocesseur Alpha | |||
PROCESSOR_ARCHITECTURE_PPC | 3 | Cette valeur permet d'indiquer une architecture de microprocesseur PowerPC | |||
PROCESSOR_ARCHITECTURE_SHX | 4 | Cette valeur permet d'indiquer une architecture de microprocesseur SHX | |||
PROCESSOR_ARCHITECTURE_ARM | 5 | Cette valeur permet d'indiquer une architecture de microprocesseur ARM | |||
PROCESSOR_ARCHITECTURE_IA64 | 6 | Cette valeur permet d'indiquer une architecture de microprocesseur Intel IA64 | |||
PROCESSOR_ARCHITECTURE_ALPHA64 | 7 | Cette valeur permet d'indiquer une architecture de microprocesseur Alpha 64. | |||
PROCESSOR_ARCHITECTURE_MSIL | 8 | Cette valeur permet d'indiquer une architecture de microprocesseur MSIL. | |||
PROCESSOR_ARCHITECTURE_AMD64 | 9 | Cette valeur permet d'indiquer une architecture de microprocesseur AMD 64 bits. | |||
PROCESSOR_ARCHITECTURE_IA32_ON_WIN64 | 10 | Cette valeur permet d'indiquer une architecture de microprocesseur Intel IA-32 sous Windows 64 bits | |||
wReserved | WORD | Ce champ est réservé pour usage futur. | |||
dwPageSize | DWORD | Ce champ permet d'indiquer la taille de la page. | |||
lpMinimumApplicationAddress | LPVOID | Ce champ permet d'indiquer l'adresse la plus base où commence l'allocation des DLLs et des applications. | |||
lpMaximumApplicationAddress | LPVOID | Ce champ permet d'indiquer l'adresse la plus haute où se termine l'allocation des DLLs et des applications. | |||
dwActiveProcessorMask | DWORD | Ce champ permet d'indiquer le masque attribué au microprocesseur actif. | |||
dwNumberOfProcessors | DWORD | Ce champ permet d'indiquer le nombre de microprocesseur utilisé par le système d'exploitation. | |||
dwProcessorType | DWORD | Ce champ permet d'indiquer le type de microprocesseur selon les valeurs suivantes: | |||
Constante | Valeur | Description | |||
PROCESSOR_SHx_SH3 | 103 | Cette valeur permet d'indiquer un microprocesseur SHx SH3. | |||
PROCESSOR_SHx_SH4 | 104 | Cette valeur permet d'indiquer un microprocesseur SHx SH4. | |||
PROCESSOR_INTEL_386 | 386 | Cette valeur permet d'indiquer un microprocesseur 80386 de la famille INTEL. | |||
PROCESSOR_INTEL_486 | 486 | Cette valeur permet d'indiquer un microprocesseur 80486 de la famille INTEL. | |||
PROCESSOR_INTEL_PENTIUM | 586 | Cette valeur permet d'indiquer un microprocesseur Pentium de la famille INTEL. | |||
PROCESSOR_PPC_601 | 601 | Cette valeur permet d'indiquer un microprocesseur PowerPC 601. | |||
PROCESSOR_PPC_603 | 603 | Cette valeur permet d'indiquer un microprocesseur PowerPC 603. | |||
PROCESSOR_PPC_604 | 604 | Cette valeur permet d'indiquer un microprocesseur PowerPC 604. | |||
PROCESSOR_PPC_620 | 620 | Cette valeur permet d'indiquer un microprocesseur PowerPC 620. | |||
PROCESSOR_MOTOROLA_821 | 821 | Cette valeur permet d'indiquer un microprocesseur Motorola 821. | |||
PROCESSOR_ARM720 | 1824 | Cette valeur permet d'indiquer un microprocesseur ARM 720. | |||
PROCESSOR_ARM820 | 2080 | Cette valeur permet d'indiquer un microprocesseur ARM 820. | |||
PROCESSOR_INTEL_IA64 | 2200 | Cette valeur permet d'indiquer un microprocesseur Intel IA64. | |||
PROCESSOR_ARM920 | 2336 | Cette valeur permet d'indiquer un microprocesseur ARM 920. | |||
PROCESSOR_STRONGARM | 2577 | Cette valeur permet d'indiquer un microprocesseur StrongARM. | |||
PROCESSOR_MIPS_R4000 | 4000 | Cette valeur permet d'indiquer un microprocesseur MIPS R4000, R4101, R3910. | |||
PROCESSOR_AMD_X8664 | 8664 | Cette valeur permet d'indiquer un microprocesseur AMD X86 64 bits. | |||
PROCESSOR_HITACHI_SH3 | 10003 | Cette valeur permet d'indiquer un microprocesseur Hitachi SH3. | |||
PROCESSOR_HITACHI_SH3E | 10004 | Cette valeur permet d'indiquer un microprocesseur Hitachi SH3E. | |||
PROCESSOR_HITACHI_SH4 | 10005 | Cette valeur permet d'indiquer un microprocesseur Hitachi SH4. | |||
PROCESSOR_ALPHA_21046 | 21064 | Cette valeur permet d'indiquer un microprocesseur Alpha 210 64. | |||
PROCESSOR_ARM_7TDMI | 70001 | Cette valeur permet d'indiquer un microprocesseur ARM 7TDMI. | |||
dwAllocationGranularity | DWORD | Ce champs permet d'indiquer la granularité de chacun des blocs de mémoire alloué dynamiquement. | |||
wProcessorLevel | WORD | Ce champs permet d'indiquer le type d'architecture que possède le microprocesseur. | |||
wProcessorRevision | WORD | Ce champs permet d'indiquer le type de révision du microprocesseur. |
Description
Cette fonction permet de demander divers informations à propos du système courant et du microprocesseur.
Exemple
Voici un exemple retournant le contenu de facon détaillé à l'aide d'un code source avec un compilateur «MinGW»:
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#define PROCESSOR_SHx_SH3 103
#define PROCESSOR_SHx_SH4 104
#define PROCESSOR_PPC_601 601
#define PROCESSOR_PPC_603 603
#define PROCESSOR_PPC_604 604
#define PROCESSOR_PPC_620 620
#define PROCESSOR_MOTOROLA_821 821
#define PROCESSOR_ARM720 1824
#define PROCESSOR_ARM820 2080
#define PROCESSOR_INTEL_IA64 2200
#define PROCESSOR_ARM920 2336
#define PROCESSOR_STRONGARM 2577
#define PROCESSOR_AMD_X8664 8664
#define PROCESSOR_HITACHI_SH3 10003
#define PROCESSOR_HITACHI_SH3E 10004
#define PROCESSOR_HITACHI_SH4 10005
#define PROCESSOR_ALPHA_21046 21064
#define PROCESSOR_ARM_7TDMI 70001
int main()
{
SYSTEM_INFO systemInfo;
GetSystemInfo(&systemInfo);
printf("Information Système Windows (kernel32.dll: GetSystemInfo)\n");
printf("---------------------------------------------------------\n");
printf("Architecture du microprocesseur:");
switch (systemInfo.wProcessorArchitecture) {
case PROCESSOR_ARCHITECTURE_INTEL:printf("Intel\n");break;
case PROCESSOR_ARCHITECTURE_MIPS:printf("MIPS\n");break;
case PROCESSOR_ARCHITECTURE_ALPHA:printf("Alpha\n");break;
case PROCESSOR_ARCHITECTURE_PPC:printf("PowerPC\n");break;
case PROCESSOR_ARCHITECTURE_SHX:printf("SHX\n");break;
case PROCESSOR_ARCHITECTURE_ARM:printf("ARM\n");break;
case PROCESSOR_ARCHITECTURE_IA64:printf("IA64\n");break;
case PROCESSOR_ARCHITECTURE_ALPHA64:printf("Alpha 64\n");break;
case PROCESSOR_ARCHITECTURE_MSIL:printf("MSIL\n");break;
case PROCESSOR_ARCHITECTURE_AMD64:printf("AMD 64 bits\n");break;
case PROCESSOR_ARCHITECTURE_IA32_ON_WIN64:printf("Intel IA32 sous Windows 64 bits\n");break;
default:printf("Inconnu: %i\n",systemInfo.wProcessorArchitecture);break;
}
printf("Taille d'une page: %i\n",systemInfo.dwPageSize);
printf("Type de microprocesseur:");
switch (systemInfo.dwProcessorType) {
case PROCESSOR_SHx_SH3:printf("SHx SH3\n");break;
case PROCESSOR_SHx_SH4:printf("SHx SH4\n");break;
case PROCESSOR_INTEL_386:printf("80386\n");break;
case PROCESSOR_INTEL_486:printf("80486\n");break;
case PROCESSOR_INTEL_PENTIUM:printf("Pentium\n");break;
case PROCESSOR_PPC_601:printf("PPC 601\n");break;
case PROCESSOR_PPC_603:printf("PPC 603\n");break;
case PROCESSOR_PPC_604:printf("PPC 604\n");break;
case PROCESSOR_PPC_620:printf("PPC 620\n");break;
case PROCESSOR_MOTOROLA_821:printf("Motorola 821\n");break;
case PROCESSOR_ARM720:printf("ARM 720\n");break;
case PROCESSOR_ARM820:printf("ARM 820\n");break;
case PROCESSOR_INTEL_IA64:printf("Intel IA64\n");break;
case PROCESSOR_ARM920:printf("ARM 920\n");break;
case PROCESSOR_STRONGARM:printf("StrongARM\n");break;
case PROCESSOR_MIPS_R4000:printf("MIPS R4000, R4101, R3910\n");break;
case PROCESSOR_AMD_X8664:printf("AMD X86 64 bits\n");break;
case PROCESSOR_HITACHI_SH3:printf("Hitachi SH3\n");break;
case PROCESSOR_HITACHI_SH3E:printf("Hitachi SH3E\n");break;
case PROCESSOR_HITACHI_SH4:printf("Hitachi SH4\n");break;
case PROCESSOR_ALPHA_21046:printf("Alpha 210 64\n");break;
case PROCESSOR_ARM_7TDMI:printf("ARM 7TDMI\n");break;
default:printf("Inconnu: %i\n",systemInfo.dwProcessorType);break;
}
printf("Nombre de microprocesseurs: %i\n",systemInfo.dwNumberOfProcessors);
printf("Granularité des blocs de mémoires: %i\n",systemInfo.dwAllocationGranularity);
return 0;
}
on obtiendra le résultat suivant sur un «AMD Athlon 1900» avec «Windows XP Professionnel»:
Information Système Windows (kernel32.dll: GetSystemInfo)---------------------------------------------------------
Architecture du microprocesseur:Intel
Taille d'une page: 4096
Type de microprocesseur:Pentium
Nombre de microprocesseurs: 1
Granularité des blocs de mémoires: 65536
Voir également
Langage de programmation - C pour Windows - Structures de données de Windows - SYSTEM_INFO
Dernière mise à jour : Dimanche, le 6 décembre 2015