Section courante

A propos

Section administrative du site

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