struttura KUSER_SHARED_DATA (ntddk.h)
In questo argomento viene descritta la struttura KUSER_SHARED_DATA .
Sintassi
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;
Members
TickCountLowDeprecated
Corrente bassa a 32 bit di conteggio dei tick.
TickCountMultiplier
Moltiplicatore conteggio tick.
InterruptTime
Tempo di interruzione a 64 bit corrente in 100 unità.
SystemTime
Ora di sistema a 64 bit corrente in 100 unità.
TimeZoneBias
Distorsione del fuso orario a 64 bit corrente.
ImageNumberLow
Numero magico immagine bassa per il sistema host.
ImageNumberHigh
Numero magico immagine elevato per il sistema host.
NtSystemRoot[260]
Copia della radice di sistema in unicode. Questo campo deve essere accessibile tramite l'API RtlGetNtSystemRoot per ottenere un risultato accurato.
MaxStackTraceDepth
Profondità massima di analisi dello stack se la traccia è abilitata.
CryptoExponent
Valore dell'esponente di crittografia.
TimeZoneId
ID fuso orario.
LargePageMinimum
Definisce il membro ULONGLargePageMinimum.
AitSamplingValue
Questo valore controlla la frequenza di campionamento AIT.
AppCompatFlag
Questo valore controlla l'elaborazione del commutatore.
RNGSeedVersion
Versione di inizializzazione dello stato RNG radice del kernel corrente.
GlobalValidationRunlevel
Questo valore controlla la gestione degli errori di asserzione.
TimeZoneBiasStamp
Definisce il membro LONGTimeZoneBiasStamp.
NtBuildNumber
Il numero di build collettivo condiviso non dichiarato con C o F. GetVersionEx nasconde il numero reale.
NtProductType
Tipo di prodotto. È necessario accedere a questo campo tramite l'API RtlGetNtProductType per ottenere un risultato accurato.
ProductTypeIsValid
Definisce il membro BOOLEANProductTypeIsValid.
Reserved0[1]
Riservato per utilizzi futuri.
NativeProcessorArchitecture
Definisce il membro USHORTNativeProcessorArchitecture.
NtMajorVersion
Versione principale nt. Ogni processo vede una versione dal peb, ma se il processo è in esecuzione con una visualizzazione modificata della versione di sistema, questo campo viene usato per identificare correttamente la versione.
NtMinorVersion
Versione secondaria NT. Ogni processo vede una versione dal peb, ma se il processo è in esecuzione con una visualizzazione modificata della versione di sistema, questo campo viene usato per identificare correttamente la versione.
ProcessorFeatures[PROCESSOR_FEATURE_MAX]
Funzionalità del processore.
Reserved1
Riservato per usi futuri.
Reserved3
Riservato per usi futuri.
TimeSlip
Scorrimento temporale durante il debugger.
AlternativeArchitecture
Architettura alternativa del sistema. Ad esempio, NEC PC98xx su x86.
BootId
Sequenza di avvio, incrementata per ogni tentativo di avvio da parte del caricatore del sistema operativo.
SystemExpirationDate
Se il sistema è un'unità di valutazione, il campo seguente contiene la data e l'ora di scadenza dell'unità di valutazione. Il valore 0 indica che non è prevista alcuna scadenza. Un valore diverso da zero è l'ora assoluta UTC scaduta dal sistema.
SuiteMask
Supporto suite. Questo campo deve essere accessibile tramite l'API RtlGetSuiteMask per ottenere un risultato accurato.
KdDebuggerEnabled
TRUE se un debugger del kernel è connesso/abilitato.
MitigationPolicies
Criteri di mitigazione.
NXSupportPolicy
Definisce il membro UCHARNXSupportPolicy.
SEHValidationPolicy
Definisce il membro UCHARSEHValidationPolicy.
CurDirDevicesSkippedForDlls
Definisce il membro UCHARCurDirDevicesSkippedForDlls.
Reserved
Riservato per utilizzi futuri.
CyclesPerYield
Durata misurata di un singolo rendimento del processore, in cicli. Viene usato dai pacchetti di blocco per determinare il numero di volte in cui ruotare in attesa di una modifica dello stato prima del blocco.
ActiveConsoleId
ID sessione della console corrente. Sempre zero nei sistemi non TS. È necessario accedere a questo campo tramite l'API RtlGetActiveConsoleId per ottenere un risultato accurato.
DismountCount
Gli smontaggio forzato causano l'invalidità degli handle. Invece di gestire sempre i probe, viene mantenuto un numero di serie di smontaggio che i client possono usare per verificare se devono eseguire il probe degli handle.
ComPlusPackage
Questo campo indica lo stato del pacchetto COM+ a 64 bit nel sistema. Indica se le immagini COM+ intermedie (IL) devono usare il runtime COM+ a 64 bit o il runtime COM+ a 32 bit.
LastSystemRITEventTickCount
Tempo nel conteggio dei segni di graduazione per l'ultimo input utente a livello di sistema in tutte le sessioni del terminale. Per le prestazioni mp, non viene aggiornato tutto il tempo(ad esempio, una volta al minuto per sessione). Viene usato per il rilevamento inattivo.
NumberOfPhysicalPages
Numero di pagine fisiche nel sistema. Ciò può cambiare dinamicamente perché la memoria fisica può essere aggiunta o rimossa da un sistema in esecuzione.
SafeBootMode
True se il sistema è stato avviato in modalità di avvio sicuro.
VirtualizationFlags
Flag di virtualizzazione.
ArchStartedInEl2
Mantenere questo campo di bit sincronizzato con quello in arc.w.
QcSlIsSupported
Mantenere questo campo di bit sincronizzato con quello in arc.w.
Reserved12[2]
Riservato per utilizzi futuri.
DUMMYUNIONNAME2
Si tratta di un campo di bit compresso che contiene vari flag relativi allo stato del sistema. Devono essere manipolati usando operazioni interlock. È necessario accedere a DbgMultiSessionSku tramite l'API RtlIsMultiSessionSku per ottenere un risultato accurato.
DUMMYUNIONNAME2.SharedDataFlags
Definisce il membro ULONGSharedDataFlags.
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2
Definisce la struttura DUMMYSTRUCTNAME2 .
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgErrorPortPresent
Solo per il debugger. Non usare. Usare invece le definizioni di bit.
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgElevationEnabled
Solo per il debugger. Non usare. Usare invece le definizioni di bit.
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgVirtEnabled
Solo per il debugger. Non usare. Usare invece le definizioni di bit.
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgInstallerDetectEnabled
Solo per il debugger. Non usare. Usare invece le definizioni di bit.
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgLkgEnabled
Solo per il debugger. Non usare. Usare invece le definizioni di bit.
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgDynProcessorEnabled
Solo per il debugger. Non usare. Usare invece le definizioni di bit.
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgConsoleBrokerEnabled
Solo per il debugger. Non usare. Usare invece le definizioni di bit.
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgSecureBootEnabled
Solo per il debugger. Non usare. Usare invece le definizioni di bit.
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgMultiSessionSku
Solo per il debugger. Non usare. Usare invece le definizioni di bit.
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgMultiUsersInSessionSku
Solo per il debugger. Non usare. Usare invece le definizioni di bit.
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgStateSeparationEnabled
Solo per il debugger. Non usare. Usare invece le definizioni di bit.
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.SpareBits
Solo per il debugger. Non usare. Usare invece le definizioni di bit.
DataFlagsPad[1]
Definisce il membro ULONGDataFlagsPad.
TestRetInstruction
A seconda del processore, il codice per la chiamata rapida del sistema sarà diverso. Questo campo viene usato solo nei sistemi a 32 bit.
QpcFrequency
Definisce il membro LONGLONGQpcFrequency.
SystemCall
In AMD64 questo valore viene inizializzato in un valore diverso da zero se il sistema opera con una visualizzazione modificata del meccanismo di chiamata al servizio di sistema.
Reserved2
Riservato per usi futuri.
FullNumberOfPhysicalPages
Riservato per usi futuri.
SystemCallPad[1]
Riservato per usi futuri.
DUMMYUNIONNAME3
Numero di tick a 64 bit.
DUMMYUNIONNAME3.TickCount
Definisce l'KSYSTEM_TIME membro TickCount.
DUMMYUNIONNAME3.TickCountQuad
Definisce il membro ULONG64TickCountQuad.
DUMMYUNIONNAME3.DUMMYSTRUCTNAME
Definisce DUMMYSTRUCTNAME.
DUMMYUNIONNAME3.DUMMYSTRUCTNAME.ReservedTickCountOverlay[3]
Definisce il membro ULONGReservedTickCountOverlay.
DUMMYUNIONNAME3.DUMMYSTRUCTNAME.TickCountPad[1]
Definisce il membro ULONGTickCountPad.
Cookie
Cookie per i puntatori di codifica a livello di sistema.
CookiePad[1]
Riservato per utilizzi futuri.
ConsoleSessionForegroundProcessId
ID client del processo con lo stato attivo nell'ID sessione della console attiva corrente. Questo campo deve essere accessibile tramite l'API RtlGetConsoleSessionForegroundProcessId per un risultato accurato.
TimeUpdateLock
Segnaposto per il blocco di aggiornamento temporale (interno). Questi dati vengono usati per implementare i servizi temporali precisi. È allineato su un limite di riga di cache a 64 byte e disposto nell'ordine degli accessi tipici.
BaselineSystemTimeQpc
Valore del contatore delle prestazioni usato per stabilire l'ora di sistema corrente.
BaselineInterruptTimeQpc
Valore del contatore delle prestazioni usato per calcolare l'ultima ora di interruzione.
QpcSystemTimeIncrement
Numero di secondi di tempo di sistema ridimensionato rappresentato da un singolo conteggio delle prestazioni (questo valore può variare per ottenere la sincronizzazione del tempo).
QpcInterruptTimeIncrement
Numero di tempo di interruzione ridimensionato rappresentato da un singolo conteggio delle prestazioni (questo valore è costante dopo l'avvio del sistema).
QpcSystemTimeIncrementShift
Numero di turni di ridimensionamento applicati all'incremento del tempo del contatore delle prestazioni.
QpcInterruptTimeIncrementShift
Numero di turni di ridimensionamento applicati all'incremento del tempo di interruzione del contatore delle prestazioni.
UnparkedProcessorCount
Conteggio dei processori non parcheggiati.
EnclaveFeatureMask[4]
Maschera di bit delle funzionalità di enclave supportate in questo sistema. Questo campo deve essere accessibile tramite l'API RtlIsEnclareFeaturePresent per un risultato accurato.
TelemetryCoverageRound
Round di copertura corrente per la copertura basata sui dati di telemetria.
UserModeGlobalLogger[16]
Il campo seguente viene usato per la registrazione globale in modalità utente ETW (UMGL).
ImageFileExecutionOptions
Impostazioni che possono abilitare l'uso delle opzioni di esecuzione file immagine da HKCU oltre all'originale HKLM.
LangGenerationCount
Generazione della struttura del kernel che contiene informazioni sul linguaggio di sistema.
Reserved4
Riservato per utilizzi futuri.
InterruptTimeBias
Tempo di interruzione a 64 bit corrente in 100 unità.
QpcBias
Distorsione del contatore delle prestazioni a 64 bit corrente, nelle unità contatori delle prestazioni prima dell'applicazione del turno.
ActiveProcessorCount
Numero di processori attivi.
ActiveGroupCount
Numero di gruppi attivi.
Reserved9
Riservato per utilizzi futuri.
QpcData
Definisce il membro QpcData di USHORT .
QpcBypassEnabled
Valore booleano che indica se le query del contatore delle prestazioni possono leggere direttamente il contatore (ignorando la chiamata di sistema).
QpcReserved
Riservato per utilizzi futuri.
TimeZoneBiasEffectiveStart
Definisce il membro LARGE_INTEGERTimeZoneBiasEffectiveStart.
TimeZoneBiasEffectiveEnd
Definisce il membro LARGE_INTEGERTimeZoneBiasEffectiveEnd.
XState
Configurazione dello stato del processore estesa.
FeatureConfigurationChangeStamp
Definisce il membro KSYSTEM_TIME FeatureConfigurationChangeStamp.
Spare
Definisce il membro ULONGSpare.
UserPointerAuthMask
Definisce il membro ULONG64 UserPointerAuthMask.
XStateArm64
Reserved10[210]
Requisiti
Requisito | Valore |
---|---|
Intestazione | ntddk.h (include Ntddk.h) |