Section courante

A propos

Section administrative du site

 Langage  Elément  Programmation  Compilateur  IDE  Outils  Annexe  Aide 
ABAP/4
Ada
Assembleur
Assembly & bytecode
ASP (Active Server Pages)
Basic
C
C++
C# (C Sharp)
Cobol
ColdFusion
Fortran
HTML
Java
JavaScript
LISP
Logo
LotusScript
Oberon
Pascal
Perl
PHP
PL/1
Prolog
Python
Rebol
REXX
Ruby
SAS
NoSQL
SQL
Swift
X++ (Axapta)
GNAT
SMALLAda
VHDL
Assembleur 370
Assembleur 1802
Assembleur 4004
Assembleur 6502
Assembleur 6800
Assembleur 68000
Assembleur 8080 et 8085
Assembleur 8089
Assembleur 80x86
Assembleur AGC4
Assembleur ARM
Assembleur DPS 8000
Assembleur i860
Assembleur Itanium
Assembleur MIPS
Assembleur PDP-11
Assembleur PowerPC
Assembleur RISC-V
Assembleur SPARC
Assembleur SuperH
Assembleur UNIVAC I
Assembleur VAX
Assembleur Z80
Assembleur Z8000
Assembleur z/Architecture
ASSEMBLER/MONITOR 64
Micol Assembler
GFA Assembler
A86
MASM (Macro Assembler)
TASM (Turbo Assembler)
CIL
Jasmin
LLVM
MSIL
Parrot
P-Code (PCode)
SWEET16
G-Pascal
ASP 1.0
ASP 2.0
ASP 3.0
ASP.NET
ASP.NET Core
ABasiC (Amiga)
Adam SmartBASIC
Altair BASIC
AmigaBASIC (Amiga)
AMOS Basic (Amiga)
Atari Basic (Atari 400, 600 XL, 800, 800XL)
Basic Apple II (Integer BASIC/APPLESOFT)
Basic Commodore 64 (CBM-BASIC)
Basic Commodore 128 (BASIC 7.0)
Basic Commodore VIC-20 (CBM-BASIC 2.0)
Basic Coco 1 (Color Basic)
Basic Coco 2 (Extended Color Basic)
Basic Coco 3 (Extended Color Basic 2.0)
BASICA (PC DOS)
Basic Pro
BBC BASIC
Blitz BASIC (Amiga)
DarkBASIC
Dartmouth BASIC
GFA-Basic (Atari ST/Amiga)
GWBASIC (MS-DOS)
Liberty BASIC
Locomotive BASIC (Amstrad CPC)
MSX-Basic
Omikron Basic (Atari ST)
Oric Extended Basic
Power Basic
Quick Basic/QBasic (MS-DOS)
Sinclair BASIC (ZX80, ZX81, ZX Spectrum)
ST BASIC (Atari ST)
Turbo Basic
Vintage BASIC
VBScript
Visual Basic (VB)
Visual Basic .NET (VB .NET)
Visual Basic pour DOS
Yabasic
BeckerBASIC
SIMONS' BASIC
Basic09 d'OS-9
Disk Extended Color Basic
Basic09 d'OS-9
Disk Extended Color Basic
Access
Excel
Visual Basic pour Windows
Visual Basic .NET pour Windows
C Shell Unix (csh)
C pour Amiga
C pour Atari ST
C pour DOS
C pour Falcon030
C pour GEMDOS (Atari ST)
C pour Linux
C pour PowerTV OS
C pour OS/2
C pour Unix
C pour Windows
Aztec C
CoCo-C
GNU C
HiSoft C
IBM C/2
Introl-C
Lattice C
Microsoft C
MinGW C
MSX-C
Open Watcom C
OS-9 C Compiler
Pure C
Quick C
Turbo C
HiSoft C for Atari ST
HiSoft C for CP/M (Amstrad CPC)
C++ pour OS/2
C++ pour Windows
Borland C++
C++Builder
IBM VisualAge C++
Intel C++
MinGW C++
Open Watcom C++
Symantec C++
Turbo C++
Visual C++
Visual C++ .NET
Watcom C++
Zortech C++
C# (C Sharp) pour Windows
Apple III Cobol
Microsoft Cobol
BlueDragon
Lucee
OpenBD
Railo
Smith Project
Microsoft Fortran
WATFOR-77
CSS
FBML
Open Graph
SVG
XML
XSL/XSLT
LESS
SASS
GCJ (GNU)
JSP
Jython
Visual J++
Node.js
TypeScript
AutoLISP
ACSLogo
LotusScript pour Windows
Amiga Oberon
Oberon .NET
Apple Pascal
Delphi/Kylix/Lazarus
Free Pascal
GNU Pascal
HighSpeed Pascal
IBM Personal Computer Pascal
Lisa Pascal
Maxon Pascal
MPW Pascal
OS-9 Pascal
OSS Personal Pascal
Pascal-86
Pascal du Cray Research
Pascal/VS
Pascal-XT
PURE Pascal
QuickPascal
RemObjets Chrome
Sun Pascal
THINK Pascal
Tiny Pascal (TRS-80)
Turbo Pascal
UCSD Pascal
VAX Pascal
Virtual Pascal
Turbo Pascal for CP/M-80
Turbo Pascal for DOS
Turbo Pascal for Macintosh
Turbo Pascal for Windows
CodeIgniter (Cadre d'application)
Drupal (Projet)
Joomla! (Projet)
Phalanger (PHP .NET)
phpBB (Projet)
Smarty (balise)
Twig (balise)
Symfony (Cadre d'application)
WordPress (Projet)
Zend (Cadre d'application)
PL360
PL/M-80
PL/M-86
Turbo Prolog
CPython
IronPython
Jython
PyPy
AREXX
Regina REXX
JMP
Btrieve
Cassandra
Clipper
CouchDB
dBASE
Hbase
Hypertable
MongoDB
Redis
Access
BigQuery
DB2
H2
Interbase
MySQL
Oracle
PostgreSQL
SAP HANA
SQL Server
Sybase
U-SQL
Type de données
Structures de données
Constantes
EXE, DLL et modules pour Windows
API pour Windows
advapi32.dll
comctl32.dll
dlcapi.dll
gdi32.dll
kernel32.dll
lz32.dll
mpr.dll
opengl32.dll
penwin32.dll
shell32.dll
user32.dll
version.dll
winmm.dll
winspool.drv
Prototype
Géométrie
Treillis
Borland C++
C++Builder
IBM VisualAge C++
MinGW C/C++
Open Watcom C/C++
Visual C++
Visual C++ .NET
Visual Studio
OllyDbg
OSForensics
ProcDump
PSExec
PWDump2
SoftICE
Termes et vocabulaires
Bibliographie
Préface
Notes légal
Dictionnaire
Recherche

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

PARTAGER CETTE PAGE SUR
Dernière mise à jour : Dimanche, le 6 décembre 2015