Estructura SYSTEM_INFO
Definición
typedef struct _SYSTEM_INFO { // sinf union { DWORD dwOemId; struct { WORD wProcessorArchitecture; WORD wReserved; }; }; DWORD dwPageSize; LPVOID lpMinimumApplicationAddress; LPVOID lpMaximumApplicationAddress; DWORD dwActiveProcessorMask; DWORD dwNumberOfProcessors; DWORD dwProcessorType; DWORD dwAllocationGranularity; WORD wProcessorLevel; WORD wProcessorRevision; } SYSTEM_INFO;
La estructura SYSTEM_INFO contiene información sobre el sistema del ordenador actual. Esto incluye la arquitectura y tipo del procesador, el número de procesadores en el sistema, el tamaño de página y otras informaciones.
Descripción
dwOemId: un miembro obsoleto que se mantiene por compatibilidad con versiones anteriores de Windows NT. A partir de Windows NT 3.51 y de la primera versión de Windows 95, usar la rama wProcessorArchitecture de la unión.
Windows 95: el sistema siempre asigna cero a este miembro, el valor definido para PROCESSOR_ARCHITECTURE_INTEL.
wProcessorArchitecture: especifica la arquitectura del procesador del sistema. Este valor puede ser uno de los siguientes:
Valor |
---|
PROCESSOR_ARCHITECTURE_INTEL |
Sólo en Windows NT: PROCESSOR_ARCHITECTURE_MIPS |
Sólo en Windows NT: PROCESSOR_ARCHITECTURE_ALPHA |
Sólo en Windows NT: PROCESSOR_ARCHITECTURE_PPC |
Sólo en Windows NT: PROCESSOR_ARCHITECTURE_UNKNOWN |
wReserved: reservado para uso futuro.
dwPageSize: especifica el tamaño de página y la granulación de la protección de página y acomodo. Este es el tamaño de página usado por la función VirtualAlloc.
lpMinimumApplicationAddress: puntero a la dirección de memoria más baja accesible para aplicaciones y bibliotecas de enlace dinámico (DLLs).
lpMaximumApplicationAddress: puntero a la dirección de memoria más alta accesible para aplicaciones y DLLs.
dwActiveProcessorMask: especifica una máscara que representa el conjunto de procesadores configurados en el sistema. El bit 0 es el procesador 0; el bit 31 es el procesador 31.
dwNumberOfProcessors: especifica el número de procesadores en el sistema.
dwProcessorType:
Windows 95: especifica el tipo de procesador en el sistema.
Windows NT: este miembro ya no es relevante, pero se mantiene por compatibilidad con Windows 95 y las primeras versiones de Windows NT. Usar los miembros wProcessorArchitecture, wProcesorLevel y wProcessorRevision para determinar el tipo de procesador.
Este miembro tomará uno de los valores siguientes:
Valor |
---|
PROCESSOR_INTEL_386 |
PROCESSOR_INTEL_486 |
PROCESSOR_INTEL_PENTIUM |
Sólo en Windows NT: PROCESSOR_MIPS_R4000 |
Sólo en Windows NT: PROCESSOR_ALPHA_21064 |
dwAllocationGranularity: especifica la granulación con que se acomoda la memoria virtual. Por ejemplo, una petición de acomodo de 1 byte mediante la función VirtualAlloc reservará un espacio de direcciones de dwAllocationGranularity bytes. Este valor estaba asignado de forma rígida a 64K en el pasado, pero otras arquitecturas de hardware pueden necesitar valores diferentes.
wProcessorLevel:
Windows 95: este miembro no se usa.
Windows NT: especifica el nivel de dependencia de arquitectura del procesador de sistema.
Si wProcessorArchitecture es PROCESSOR_ARCHITECTURE_INTEL, wProcessorLevel puede tener uno de los valores siguientes:
Valor | Significado |
---|---|
3 | Intel 80386 |
4 | Intel 80486 |
5 | Pentium |
Si wProcessorArchitecture es PROCESSOR_ARCHITECTURE_MIPS, wProcessorLevel estará en el formato 00xx, donde xx es número de implementación de 8 bits (los bits 8-15 del registro PRId). El miembro puede tener el valor siguiente:
Valor | Significado |
---|---|
0004 | MIPS R4000 |
Si wProcessorArchitecture es PROCESSOR_ARCHITECTURE_ALPHA, wProcessorLevel estará en el formatp xxxx, donde xxxx es un número de 16 bits de la versión del procesador (los 16 bits de menor orden del número de versión del firmware). El miembro puede ser uno de los valores siguientes:
Valor decimal | Significado |
---|---|
21064 | Alpha 21064 |
21066 | Alpha 21066 |
21164 | Alpha 21164 |
Si wProcessorArchitecture es PROCESSOR_ARCHITECTURE_PPC, wProcessorLevel estará en el formato xxxx, donde xxxx es un valor de 16 bits con el número de versión del procesador (los 16 bits de mayor peso del Registro de Versión del Procesador). El número puede tener uno de los siguientes valores:
Valor decimal | Significado |
---|---|
1 | PPC 601 |
3 | PPC 603 |
4 | PPC 604 |
6 | PPC 603+ |
9 | PPC 604+ |
20 | PPC 620 |
wProcessorRevision:
Windows 95: este miembro no se usa.
Windows NT: especifica una revisión dependiente de la aquitectura del procesador. La tabla siguiente muestra se ensambla el valor de revisión para cada tipo de arquitectura de procesador.
Arquitectura de procesador | Valor |
---|---|
Intel 80386 o 80486 | Un valor en el formato xxyz. Si xx es igual a 0xFF, y - 0xA es el número de modelo,
y z es el identificador de steeping. Por ejemplo, un sistema Intel 80486-D0 devuelve
0xFFD0. Si xx no es 0xFF, xx + 'A' es la letra de stepping y yz es el stepping secundario. |
Intel Pentium, Cyrix o NextGen 586 | Un valor en el formato xxyy, donde xx es el número de modelo y yy es el stepping. Por ejemplo, un valor 0x0201 indica Model 2, Stepping 1. |
MIPS | Un valor en el formato 00xx, donde xx es el número de revisión de 8 bits del procesador (los 8 bits de menor peso del registro PRId). |
ALPHA | Un valor en el formato xxyy, donde xxyy son los 16 bits de menor peso del número de revisión del firmware del procesador. Mostrar este valor del modo siguiente: Modelo 'A'+xx, Emisión yy. |
PPC | Un valor en el formato xxyy, donde xxyy son los 16 bits de menor peso del Registro de Versión del Procesador. Mostrar este valor como un número con decimales: xx.yy |
Observaciones
A partir de Windows NT 3.51 y desde la primera versión de Windows 95, la estructura SYSTEM_INFO ha cambiado del modo siguiente:
- El miembro dwOemId se ha convertido en una unión. Esta unión soporta un nuevo modo para describir la arquitectura del procesador usado por Windows NT, mientras mantiene la compatibilidad con Windows 95 y con versiones anteriores de Windows NT.
- El miembro dwProcessorType ahora es obsoleto en Windows NT. Aún se usa en Windows 95.
- Un miembro DWORD anteriormente reservado al final de la estructura ha sido reemplazado por los miembros wProcessorLevel y wProcessorRevision. Windows 95 no usa estos miembros.