Compartir a través de


estructura KUSER_SHARED_DATA (ntddk.h)

En este tema se describe la estructura KUSER_SHARED_DATA.

Sintaxis

typedef struct _KUSER_SHARED_DATA {
  ULONG                         TickCountLowDeprecated;
  ULONG                         TickCountMultiplier;
  KSYSTEM_TIME                  InterruptTime;
  KSYSTEM_TIME                  SystemTime;
  KSYSTEM_TIME                  TimeZoneBias;
  USHORT                        ImageNumberLow;
  USHORT                        ImageNumberHigh;
  WCHAR                         NtSystemRoot[260];
  ULONG                         MaxStackTraceDepth;
  ULONG                         CryptoExponent;
  ULONG                         TimeZoneId;
  ULONG                         LargePageMinimum;
  ULONG                         AitSamplingValue;
  ULONG                         AppCompatFlag;
  ULONGLONG                     RNGSeedVersion;
  ULONG                         GlobalValidationRunlevel;
  LONG                          TimeZoneBiasStamp;
  ULONG                         NtBuildNumber;
  NT_PRODUCT_TYPE               NtProductType;
  BOOLEAN                       ProductTypeIsValid;
  BOOLEAN                       Reserved0[1];
  USHORT                        NativeProcessorArchitecture;
  ULONG                         NtMajorVersion;
  ULONG                         NtMinorVersion;
  BOOLEAN                       ProcessorFeatures[PROCESSOR_FEATURE_MAX];
  ULONG                         Reserved1;
  ULONG                         Reserved3;
  ULONG                         TimeSlip;
  ALTERNATIVE_ARCHITECTURE_TYPE AlternativeArchitecture;
  ULONG                         BootId;
  LARGE_INTEGER                 SystemExpirationDate;
  ULONG                         SuiteMask;
  BOOLEAN                       KdDebuggerEnabled;
  union {
    UCHAR MitigationPolicies;
    struct {
      UCHAR NXSupportPolicy : 2;
      UCHAR SEHValidationPolicy : 2;
      UCHAR CurDirDevicesSkippedForDlls : 2;
      UCHAR Reserved : 2;
    };
  };
  USHORT                        CyclesPerYield;
  ULONG                         ActiveConsoleId;
  ULONG                         DismountCount;
  ULONG                         ComPlusPackage;
  ULONG                         LastSystemRITEventTickCount;
  ULONG                         NumberOfPhysicalPages;
  BOOLEAN                       SafeBootMode;
  union {
    UCHAR VirtualizationFlags;
    struct {
      UCHAR ArchStartedInEl2 : 1;
      UCHAR QcSlIsSupported : 1;
    };
  };
  UCHAR                         Reserved12[2];
  union {
    ULONG SharedDataFlags;
    struct {
      ULONG DbgErrorPortPresent : 1;
      ULONG DbgElevationEnabled : 1;
      ULONG DbgVirtEnabled : 1;
      ULONG DbgInstallerDetectEnabled : 1;
      ULONG DbgLkgEnabled : 1;
      ULONG DbgDynProcessorEnabled : 1;
      ULONG DbgConsoleBrokerEnabled : 1;
      ULONG DbgSecureBootEnabled : 1;
      ULONG DbgMultiSessionSku : 1;
      ULONG DbgMultiUsersInSessionSku : 1;
      ULONG DbgStateSeparationEnabled : 1;
      ULONG SpareBits : 21;
    } DUMMYSTRUCTNAME2;
  } DUMMYUNIONNAME2;
  ULONG                         DataFlagsPad[1];
  ULONGLONG                     TestRetInstruction;
  LONGLONG                      QpcFrequency;
  ULONG                         SystemCall;
  ULONG                         Reserved2;
  ULONGLONG                     FullNumberOfPhysicalPages;
  ULONGLONG                     SystemCallPad[1];
  union {
    KSYSTEM_TIME TickCount;
    ULONG64      TickCountQuad;
    struct {
      ULONG ReservedTickCountOverlay[3];
      ULONG TickCountPad[1];
    } DUMMYSTRUCTNAME;
  } DUMMYUNIONNAME3;
  ULONG                         Cookie;
  ULONG                         CookiePad[1];
  LONGLONG                      ConsoleSessionForegroundProcessId;
  ULONGLONG                     TimeUpdateLock;
  ULONGLONG                     BaselineSystemTimeQpc;
  ULONGLONG                     BaselineInterruptTimeQpc;
  ULONGLONG                     QpcSystemTimeIncrement;
  ULONGLONG                     QpcInterruptTimeIncrement;
  UCHAR                         QpcSystemTimeIncrementShift;
  UCHAR                         QpcInterruptTimeIncrementShift;
  USHORT                        UnparkedProcessorCount;
  ULONG                         EnclaveFeatureMask[4];
  ULONG                         TelemetryCoverageRound;
  USHORT                        UserModeGlobalLogger[16];
  ULONG                         ImageFileExecutionOptions;
  ULONG                         LangGenerationCount;
  ULONGLONG                     Reserved4;
  ULONGLONG                     InterruptTimeBias;
  ULONGLONG                     QpcBias;
  ULONG                         ActiveProcessorCount;
  UCHAR                         ActiveGroupCount;
  UCHAR                         Reserved9;
  union {
    USHORT QpcData;
    struct {
      UCHAR QpcBypassEnabled;
      UCHAR QpcReserved;
    };
  };
  LARGE_INTEGER                 TimeZoneBiasEffectiveStart;
  LARGE_INTEGER                 TimeZoneBiasEffectiveEnd;
  XSTATE_CONFIGURATION          XState;
  KSYSTEM_TIME                  FeatureConfigurationChangeStamp;
  ULONG                         Spare;
  ULONG64                       UserPointerAuthMask;
  XSTATE_CONFIGURATION          XStateArm64;
  ULONG                         Reserved10[210];
} KUSER_SHARED_DATA, *PKUSER_SHARED_DATA;

Miembros

TickCountLowDeprecated

Recuento de tics de 32 bits bajo actual.

TickCountMultiplier

Multiplicador de recuento de tics.

InterruptTime

Tiempo de interrupción de 64 bits actual en unidades de 100ns.

SystemTime

Tiempo actual del sistema de 64 bits en unidades de 100ns.

TimeZoneBias

Sesgo actual de zona horaria de 64 bits.

ImageNumberLow

Número mágico de imagen baja para el sistema host.

ImageNumberHigh

Número mágico de imagen alta para el sistema host.

NtSystemRoot[260]

Copia de la raíz del sistema en unicode. Se debe tener acceso a este campo a través de la API de de RtlGetNtSystemRoot para obtener un resultado preciso.

MaxStackTraceDepth

Profundidad máxima del seguimiento de la pila si el seguimiento está habilitado.

CryptoExponent

Valor de exponente criptográfico.

TimeZoneId

Id. de zona horaria.

LargePageMinimum

Define el miembro ULONG LargePageMinimum.

AitSamplingValue

Este valor controla la frecuencia de muestreo de AIT.

AppCompatFlag

Este valor controla el procesamiento de la conmutación por recuperación.

RNGSeedVersion

Versión actual de inicialización de estado de RNG raíz del kernel.

GlobalValidationRunlevel

Este valor controla el control de errores de aserción.

TimeZoneBiasStamp

Define el miembro de LONGTimeZoneBiasStamp.

NtBuildNumber

El número de compilación colectivo compartido sin codificar con C o F. GetVersionEx oculta el número real.

NtProductType

Tipo de producto. Se debe tener acceso a este campo a través de la API de de RtlGetNtProductType para obtener un resultado preciso.

ProductTypeIsValid

Define el miembro ProductTypeIsValid.

Reserved0[1]

Reservado para uso futuro.

NativeProcessorArchitecture

Define el miembro de USHORT NativeProcessorArchitecture.

NtMajorVersion

La versión principal de NT. Cada proceso ve una versión de su PEB, pero si el proceso se ejecuta con una vista modificada de la versión del sistema, este campo se usa para identificar correctamente la versión.

NtMinorVersion

La versión secundaria nt. Cada proceso ve una versión de su PEB, pero si el proceso se ejecuta con una vista modificada de la versión del sistema, este campo se usa para identificar correctamente la versión.

ProcessorFeatures[PROCESSOR_FEATURE_MAX]

Características del procesador.

Reserved1

Reservado para uso futuro.

Reserved3

Reservado para uso futuro.

TimeSlip

Página de deslizamiento de tiempo mientras se encuentra en el depurador.

AlternativeArchitecture

Arquitectura alternativa del sistema. Por ejemplo, NEC PC98xx en x86.

BootId

Secuencia de arranque, incrementada para cada intento de arranque por el cargador del sistema operativo.

SystemExpirationDate

Si el sistema es una unidad de evaluación, el campo siguiente contiene la fecha y hora en que expira la unidad de evaluación. Un valor de 0 indica que no hay expiración. Un valor distinto de cero es la hora absoluta UTC a la que expira el sistema.

SuiteMask

Compatibilidad con conjuntos de aplicaciones. Se debe tener acceso a este campo a través de la API RtlGetSuiteMask para obtener un resultado preciso.

KdDebuggerEnabled

TRUE si un depurador de kernel está conectado o habilitado.

MitigationPolicies

Directivas de mitigación.

NXSupportPolicy

Define el miembro UCHAR NXSupportPolicy.

SEHValidationPolicy

Define el miembro UCHAR SEHValidationPolicy.

CurDirDevicesSkippedForDlls

Define el miembro UCHAR CurDirDevicesSkippedForDlls.

Reserved

Reservado para uso futuro.

CyclesPerYield

Duración medida de un único rendimiento del procesador, en ciclos. Esto lo usan los paquetes de bloqueo para determinar cuántas veces se va a poner en espera de un cambio de estado antes de bloquearlo.

ActiveConsoleId

Identificador de sesión de la consola actual. Siempre cero en sistemas que no son TS. Se debe tener acceso a este campo a través de la API de RtlGetActiveConsoleId para obtener un resultado preciso.

DismountCount

Los desmontajes forzados hacen que los identificadores no sean válidos. En lugar de controlar siempre los sondeos, se mantiene un número de serie de desmontajes que los clientes pueden usar para ver si necesitan identificadores de sondeo.

ComPlusPackage

Este campo indica el estado del paquete COM+ de 64 bits en el sistema. Indica si las imágenes COM+ de lenguaje intermedio (IL) deben usar el entorno de ejecución COM+ de 64 bits o el runtime de COM+ de 32 bits.

LastSystemRITEventTickCount

Tiempo en el recuento de tics para la última entrada del usuario en todo el sistema en todas las sesiones de terminal. Para el rendimiento de MP, no se actualiza todo el tiempo (por ejemplo, una vez por minuto por sesión). Se usa para la detección de inactividad.

NumberOfPhysicalPages

Número de páginas físicas en el sistema. Esto puede cambiar dinámicamente a medida que se puede agregar o quitar memoria física de un sistema en ejecución.

SafeBootMode

True si el sistema se ha arrancado en modo de arranque seguro.

VirtualizationFlags

Marcas de virtualización.

ArchStartedInEl2

Mantenga este campo de bits sincronizado con el de arc.w.

QcSlIsSupported

Mantenga este campo de bits sincronizado con el de arc.w.

Reserved12[2]

Reservado para uso futuro.

DUMMYUNIONNAME2

Se trata de un campo de bits empaquetado que contiene varias marcas relativas al estado del sistema. Deben manipularse mediante operaciones interbloqueadas. se debe tener acceso a la DbgMultiSessionSku a través de la API de RtlIsMultiSessionSku para obtener un resultado preciso.

DUMMYUNIONNAME2.SharedDataFlags

Define el miembro ULONG SharedDataFlags.

DUMMYUNIONNAME2.DUMMYSTRUCTNAME2

Define la estructura DUMMYSTRUCTNAME2.

DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgErrorPortPresent

Solo para el depurador. No use. Use las definiciones de bits en su lugar.

DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgElevationEnabled

Solo para el depurador. No use. Use las definiciones de bits en su lugar.

DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgVirtEnabled

Solo para el depurador. No use. Use las definiciones de bits en su lugar.

DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgInstallerDetectEnabled

Solo para el depurador. No use. Use las definiciones de bits en su lugar.

DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgLkgEnabled

Solo para el depurador. No use. Use las definiciones de bits en su lugar.

DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgDynProcessorEnabled

Solo para el depurador. No use. Use las definiciones de bits en su lugar.

DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgConsoleBrokerEnabled

Solo para el depurador. No use. Use las definiciones de bits en su lugar.

DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgSecureBootEnabled

Solo para el depurador. No use. Use las definiciones de bits en su lugar.

DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgMultiSessionSku

Solo para el depurador. No use. Use las definiciones de bits en su lugar.

DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgMultiUsersInSessionSku

Solo para el depurador. No use. Use las definiciones de bits en su lugar.

DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgStateSeparationEnabled

Solo para el depurador. No use. Use las definiciones de bits en su lugar.

DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.SpareBits

Solo para el depurador. No use. Use las definiciones de bits en su lugar.

DataFlagsPad[1]

Define el miembro de ULONG DataFlagsPad.

TestRetInstruction

Dependiendo del procesador, el código de la llamada rápida del sistema variará. Este campo solo se usa en sistemas de 32 bits.

QpcFrequency

Define el miembro LONGLONG QpcFrequency.

SystemCall

En AMD64, este valor se inicializa en un valor distinto de cero si el sistema funciona con una vista modificada del mecanismo de llamada de servicio del sistema.

Reserved2

Reservado para uso futuro.

FullNumberOfPhysicalPages

Reservado para uso futuro.

SystemCallPad[1]

Reservado para uso futuro.

DUMMYUNIONNAME3

Recuento de tics de 64 bits.

DUMMYUNIONNAME3.TickCount

Define el miembro de KSYSTEM_TIMETickCount.

DUMMYUNIONNAME3.TickCountQuad

Define el miembro de ULONG64TickCountQuad.

DUMMYUNIONNAME3.DUMMYSTRUCTNAME

Define DUMMYSTRUCTNAME.

DUMMYUNIONNAME3.DUMMYSTRUCTNAME.ReservedTickCountOverlay[3]

Define el miembro ULONG ReservedTickCountOverlay.

DUMMYUNIONNAME3.DUMMYSTRUCTNAME.TickCountPad[1]

Define el miembro de ULONG TickCountPad.

Cookie

Cookie para codificar punteros de todo el sistema.

CookiePad[1]

Reservado para uso futuro.

ConsoleSessionForegroundProcessId

Identificador de cliente del proceso que tiene el foco en el identificador de sesión de la consola activa actual. Se debe tener acceso a este campo a través de la API de RtlGetConsoleSessionForegroundProcessId para obtener un resultado preciso.

TimeUpdateLock

Marcador de posición para el bloqueo de actualización de hora (interno). Estos datos se usan para implementar los servicios de hora precisos. Se alinea en un límite de línea de caché de 64 bytes y se organiza en el orden de los accesos típicos.

BaselineSystemTimeQpc

Valor del contador de rendimiento usado para establecer la hora actual del sistema.

BaselineInterruptTimeQpc

Valor del contador de rendimiento usado para calcular la hora de la última interrupción.

QpcSystemTimeIncrement

Número escalado de segundos de tiempo del sistema representado por un único recuento de rendimiento (este valor puede variar para lograr la sincronización de tiempo).

QpcInterruptTimeIncrement

Número escalado de segundos de tiempo de interrupción representados por un único recuento de rendimiento (este valor es constante después de arrancar el sistema).

QpcSystemTimeIncrementShift

Recuento de turnos de escalado aplicado al incremento de tiempo del sistema del contador de rendimiento.

QpcInterruptTimeIncrementShift

Recuento de turnos de escalado aplicado al incremento del tiempo de interrupción del contador de rendimiento.

UnparkedProcessorCount

Recuento de procesadores sin parque.

EnclaveFeatureMask[4]

Máscara de bits de las características de enclave admitidas en este sistema. Se debe tener acceso a este campo a través de la API de RtlIsEnclareFeaturePresent para obtener un resultado preciso.

TelemetryCoverageRound

Redondeo de cobertura actual para la cobertura basada en telemetría.

UserModeGlobalLogger[16]

El siguiente campo se usa para el registro global del modo de usuario (UMGL) de ETW.

ImageFileExecutionOptions

Configuración que puede habilitar el uso de opciones de ejecución de archivos de imagen de HKCU además del HKLM original.

LangGenerationCount

Generación de la estructura del kernel que contiene información de idioma del sistema.

Reserved4

Reservado para uso futuro.

InterruptTimeBias

Sesgo de tiempo de interrupción de 64 bits actual en unidades de 100ns.

QpcBias

Sesgo actual del contador de rendimiento de 64 bits, en unidades de contador de rendimiento antes de aplicar el desplazamiento.

ActiveProcessorCount

Número de procesadores activos.

ActiveGroupCount

Número de grupos activos.

Reserved9

Reservado para uso futuro.

QpcData

Define el miembro QpcData de USHORT.

QpcBypassEnabled

Valor booleano que indica si las consultas del contador de rendimiento pueden leer el contador directamente (omitiendo la llamada del sistema).

QpcReserved

Reservado para uso futuro.

TimeZoneBiasEffectiveStart

Define el miembro LARGE_INTEGERTimeZoneBiasEffectiveStart.

TimeZoneBiasEffectiveEnd

Define el miembro LARGE_INTEGERTimeZoneBiasEffectiveEnd.

XState

Configuración de estado de procesador extendida.

FeatureConfigurationChangeStamp

Define el miembro KSYSTEM_TIMEFeatureConfigurationChangeStamp.

Spare

Define el miembro ULONG Spare.

UserPointerAuthMask

Define el miembro de ULONG64UserPointerAuthMask.

XStateArm64

Reserved10[210]

Requisitos

Requisito Valor
encabezado de ntddk.h (incluya Ntddk.h)