A pointer to a buffer that receives the requested information. The
size and structure of this information varies depending on the value of the
SystemInformationClass parameter:
SYSTEM_BASIC_INFORMATION
When the SystemInformationClass parameter is
SystemBasicInformation, the buffer pointed to by
the SystemInformation parameter should be large enough
to hold a single SYSTEM_BASIC_INFORMATION structure
having the following layout:
typedef struct _SYSTEM_BASIC_INFORMATION {
BYTE Reserved1[24];
PVOID Reserved2[4];
CCHAR NumberOfProcessors;
} SYSTEM_BASIC_INFORMATION;
The NumberOfProcessors member contains the number of
processors present in the system. Use GetSystemInfo instead to retrieve this
information.
The other members of the structure are reserved for internal
use by the operating system.
SYSTEM_PERFORMANCE_INFORMATION
When the SystemInformationClass parameter is
SystemPerformanceInformation, the buffer pointed to
by the SystemInformation parameter should be large
enough to hold an opaque SYSTEM_PERFORMANCE_INFORMATION structure for use in
generating an unpredictable seed for a random number generator. For this
purpose, the structure has the following layout:
typedef struct _SYSTEM_PERFORMANCE_INFORMATION {
BYTE Reserved1[312];
} SYSTEM_PERFORMANCE_INFORMATION;
Individual members of the structure are reserved for internal
use by the operating system.
Use the CryptGenRandom
function instead to generate cryptographically random data.
SYSTEM_TIMEOFDAY_INFORMATION
When the SystemInformationClass parameter is
SystemTimeOfDayInformation, the buffer pointed to
by the SystemInformation parameter should be large
enough to hold an opaque SYSTEM_TIMEOFDAY_INFORMATION structure for use in
generating an unpredictable seed for a random number generator. For this
purpose, the structure has the following layout:
typedef struct _SYSTEM_TIMEOFDAY_INFORMATION {
BYTE Reserved1[48];
} SYSTEM_TIMEOFDAY_INFORMATION;
Individual members of the structure are reserved for internal
use by the operating system.
Use the CryptGenRandom
function instead to generate cryptographically random data.
SYSTEM_PROCESS_INFORMATION
When the SystemInformationClass parameter is
SystemProcessInformation, the buffer pointed to by
the SystemInformation parameter should be large enough
to hold an array that contains as many SYSTEM_PROCESS_INFORMATION structures as
there are processes running in the system. Each structure has the following
layout:
typedef struct _SYSTEM_PROCESS_INFORMATION {
ULONG NextEntryOffset;
BYTE Reserved1[52];
PVOID Reserved2[3];
HANDLE UniqueProcessId;
PVOID Reserved3;
ULONG HandleCount;
BYTE Reserved4[4];
PVOID Reserved5[11];
SIZE_T PeakPagefileUsage;
SIZE_T PrivatePageCount;
LARGE_INTEGER Reserved6[6];
} SYSTEM_PROCESS_INFORMATION;
The HandleCount member contains the total number
of handles being used by the process in question; use GetProcessHandleCount to retrieve this information
instead.
The PeakPagefileUsage member contains the
maximum number of bytes of page-file storage used by the process, and the PrivatePageCount member contains the number of memory
pages allocated for the use of this process.
You can also retrieve this information using either the GetProcessMemoryInfo function or the Win32_Process class.
The other members of the structure are reserved for internal use by the
operating system.
SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION
When the SystemInformationClass parameter is
SystemProcessorPerformanceInformation, the buffer
pointed to by the SystemInformation parameter should
be large enough to hold an array that contains as many SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION
structures as there are processors (CPUs) installed in the system. Each
structure has the following layout:
typedef struct
_SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION {
LARGE_INTEGER IdleTime;
LARGE_INTEGER KernelTime;
LARGE_INTEGER UserTime;
LARGE_INTEGER Reserved1[2];
ULONG Reserved2;
} SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION;
The IdleTime member contains the amount of time
that the system has been idle, in 100-nanosecond intervals.
The KernelTime member contains the amount of time
that the system has spent executing in Kernel mode (including all threads in all
processes, on all processors), in 100-nanosecond intervals.
The UserTime member contains the amount of time
that the system has spent executing in User mode (including all threads in all
processes, on all processors), in 100-nanosecond intervals.
Use GetSystemTimes
instead to retrieve this information.
SYSTEM_INTERRUPT_INFORMATION
When the SystemInformationClass parameter is
SystemInterruptInformation, the buffer pointed to
by the SystemInformation parameter should be large
enough to hold an array that contains as many opaque
SYSTEM_INTERRUPT_INFORMATION structures as there are
processors (CPUs) installed on the system. Each structure, or the array as a whole,
can be used to generate an unpredictable seed for a random number generator. For this
purpose, the structure has the following layout:
typedef struct _SYSTEM_INTERRUPT_INFORMATION {
BYTE Reserved1[24];
} SYSTEM_INTERRUPT_INFORMATION;
Individual members of the structure are reserved for internal
use by the operating system.
Use the CryptGenRandom
function instead to generate cryptographically random data.
SYSTEM_EXCEPTION_INFORMATION
When the SystemInformationClass parameter is
SystemExceptionInformation, the buffer pointed to
by the SystemInformation parameter should be large
enough to hold an opaque SYSTEM_EXCEPTION_INFORMATION structure for use in
generating an unpredictable seed for a random number generator. For this
purpose, the structure has the following layout:
typedef struct _SYSTEM_EXCEPTION_INFORMATION {
BYTE Reserved1[16];
} SYSTEM_EXCEPTION_INFORMATION;
Individual members of the structure are reserved for internal
use by the operating system.
Use the CryptGenRandom
function instead to generate cryptographically random data.
SYSTEM_REGISTRY_QUOTA_INFORMATION
When the SystemInformationClass parameter is
SystemRegistryQuotaInformation, the buffer pointed
to by the SystemInformation parameter should be large
enough to hold a single SYSTEM_REGISTRY_QUOTA_INFORMATION structure having the
following layout:
typedef struct _SYSTEM_REGISTRY_QUOTA_INFORMATION {
ULONG RegistryQuotaAllowed;
ULONG RegistryQuotaUsed;
PVOID Reserved1;
} SYSTEM_REGISTRY_QUOTA_INFORMATION;
The RegistryQuotaAllowed member contains the
maximum size, in bytes, that the Registry can attain on this system.
The RegistryQuotaUsed member contains the current
size of the Registry, in bytes.
Use GetSystemRegistryQuota instead to retrieve this
information.
The other member of the structure is reserved for internal use by the
operating system.
SYSTEM_LOOKASIDE_INFORMATION
When the SystemInformationClass parameter is
SystemLookasideInformation, the buffer pointed to
by the SystemInformation parameter should be large
enough to hold an opaque SYSTEM_LOOKASIDE_INFORMATION structure for use in
generating an unpredictable seed for a random number generator. For this
purpose, the structure has the following layout:
typedef struct _SYSTEM_LOOKASIDE_INFORMATION {
BYTE Reserved1[32];
} SYSTEM_LOOKASIDE_INFORMATION;
Individual members of the structure are reserved for internal
use by the operating system.
Use the CryptGenRandom
function instead to generate cryptographically random data.