KUSER_SHARED_DATA structure (ntddk.h)
Cette rubrique décrit la structure KUSER_SHARED_DATA .
Syntaxe
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;
Membres
TickCountLowDeprecated
Nombre de graduations faible actuel de 32 bits.
TickCountMultiplier
Multiplicateur du nombre de graduations.
InterruptTime
Temps d’interruption 64 bits actuel en unités de 100ns.
SystemTime
Heure système 64 bits actuelle en unités 100ns.
TimeZoneBias
Biais de fuseau horaire 64 bits actuel.
ImageNumberLow
Nombre magique d’image faible pour le système hôte.
ImageNumberHigh
Numéro magique d’image élevé pour le système hôte.
NtSystemRoot[260]
Copie de la racine système en unicode. Ce champ doit être accessible via l’API RtlGetNtSystemRoot pour obtenir un résultat précis.
MaxStackTraceDepth
Profondeur de trace de pile maximale si le traçage est activé.
CryptoExponent
Valeur d’exposant de chiffrement.
TimeZoneId
ID de fuseau horaire.
LargePageMinimum
Définit le membre ULONGLargePageMinimum.
AitSamplingValue
Cette valeur contrôle le taux d’échantillonnage AIT.
AppCompatFlag
Cette valeur contrôle le traitement du basculement.
RNGSeedVersion
Version initiale de l’état RNG racine du noyau actuel.
GlobalValidationRunlevel
Cette valeur contrôle la gestion des échecs d’assertion.
TimeZoneBiasStamp
Définit le membre LONGTimeZoneBiasStamp.
NtBuildNumber
Le numéro de build collective partagé non décoré avec C ou F. GetVersionEx masque le nombre réel.
NtProductType
Type de produit. Ce champ doit être accessible via l’API RtlGetNtProductType pour obtenir un résultat précis.
ProductTypeIsValid
Définit le membre BOOLEANProductTypeIsValid.
Reserved0[1]
Réservé pour un usage futur.
NativeProcessorArchitecture
Définit le membre USHORT NativeProcessorArchitecture.
NtMajorVersion
Version principale de NT. Chaque processus voit une version de son PEB, mais si le processus s’exécute avec une vue modifiée de la version du système, ce champ est utilisé pour identifier correctement la version.
NtMinorVersion
Version mineure NT. Chaque processus voit une version de son PEB, mais si le processus s’exécute avec une vue modifiée de la version du système, ce champ est utilisé pour identifier correctement la version.
ProcessorFeatures[PROCESSOR_FEATURE_MAX]
Fonctionnalités du processeur.
Reserved1
Réservé à un usage ultérieur.
Reserved3
Réservé à un usage ultérieur.
TimeSlip
Décalage du temps dans le débogueur.
AlternativeArchitecture
Architecture système alternative. Par exemple, NEC PC98xx sur x86.
BootId
Séquence de démarrage, incrémentée pour chaque tentative de démarrage par le chargeur du système d’exploitation.
SystemExpirationDate
Si le système est une unité d’évaluation, le champ suivant contient la date et l’heure d’expiration de l’unité d’évaluation. La valeur 0 indique qu’il n’y a pas d’expiration. Une valeur autre que zéro correspond à l’heure UTC d’expiration absolue du système.
SuiteMask
Prise en charge de la suite. Ce champ doit être accessible via l’API RtlGetSuiteMask pour obtenir un résultat précis.
KdDebuggerEnabled
TRUE si un débogueur de noyau est connecté/activé.
MitigationPolicies
Stratégies d’atténuation.
NXSupportPolicy
Définit le membre UCHAR NXSupportPolicy.
SEHValidationPolicy
Définit le membre UCHARSEHValidationPolicy.
CurDirDevicesSkippedForDlls
Définit le membre UCHARCurDirDevicesSkippedForDlls.
Reserved
Réservé pour un usage futur.
CyclesPerYield
Durée mesurée du rendement d’un seul processeur, en cycles. Cela est utilisé par les packages de verrouillage pour déterminer le nombre de fois où il faut faire tourner en attente d’un changement d’état avant le blocage.
ActiveConsoleId
ID de session de la console actuelle. Toujours zéro sur les systèmes non-TS. Ce champ doit être accessible via l’API RtlGetActiveConsoleId pour obtenir un résultat précis.
DismountCount
Les démontages forcés entraînent l’invalidation des handles. Plutôt que de toujours des handles de sonde, un nombre de démontages est conservé que les clients peuvent utiliser pour voir s’ils ont besoin de descripteurs de sonde.
ComPlusPackage
Ce champ indique la status du package COM+ 64 bits sur le système. Il indique si les images COM+ du langage intermédiaire (IL) doivent utiliser le runtime COM+ 64 bits ou le runtime COM+ 32 bits.
LastSystemRITEventTickCount
Durée du nombre de graduations pour la dernière entrée utilisateur à l’échelle du système sur toutes les sessions de terminal. Pour les performances mp, il n’est pas mis à jour tout le temps (par exemple, une fois par minute par session). Il est utilisé pour la détection des inactifs.
NumberOfPhysicalPages
Nombre de pages physiques dans le système. Cela peut changer dynamiquement, car la mémoire physique peut être ajoutée ou supprimée d’un système en cours d’exécution.
SafeBootMode
True si le système a été démarré en mode de démarrage sans échec.
VirtualizationFlags
Indicateurs de virtualisation.
ArchStartedInEl2
Gardez ce champ de bits synchronisé avec celui d’arc.w.
QcSlIsSupported
Gardez ce champ de bits synchronisé avec celui d’arc.w.
Reserved12[2]
Réservé pour un usage futur.
DUMMYUNIONNAME2
Il s’agit d’un champ de bits rempli qui contient différents indicateurs concernant l’état du système. Ils doivent être manipulés à l’aide d’opérations verrouillées. DbgMultiSessionSku doit être accessible via l’API RtlIsMultiSessionSku pour obtenir un résultat précis.
DUMMYUNIONNAME2.SharedDataFlags
Définit le membre ULONG SharedDataFlags.
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2
Définit la structure DUMMYSTRUCTNAME2 .
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgErrorPortPresent
Pour le débogueur uniquement. Ne pas utiliser. Utilisez plutôt les définitions de bits.
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgElevationEnabled
Pour le débogueur uniquement. Ne pas utiliser. Utilisez plutôt les définitions de bits.
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgVirtEnabled
Pour le débogueur uniquement. Ne pas utiliser. Utilisez plutôt les définitions de bits.
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgInstallerDetectEnabled
Pour le débogueur uniquement. Ne pas utiliser. Utilisez plutôt les définitions de bits.
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgLkgEnabled
Pour le débogueur uniquement. Ne pas utiliser. Utilisez plutôt les définitions de bits.
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgDynProcessorEnabled
Pour le débogueur uniquement. Ne pas utiliser. Utilisez plutôt les définitions de bits.
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgConsoleBrokerEnabled
Pour le débogueur uniquement. Ne pas utiliser. Utilisez plutôt les définitions de bits.
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgSecureBootEnabled
Pour le débogueur uniquement. Ne pas utiliser. Utilisez plutôt les définitions de bits.
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgMultiSessionSku
Pour le débogueur uniquement. Ne pas utiliser. Utilisez plutôt les définitions de bits.
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgMultiUsersInSessionSku
Pour le débogueur uniquement. Ne pas utiliser. Utilisez plutôt les définitions de bits.
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgStateSeparationEnabled
Pour le débogueur uniquement. Ne pas utiliser. Utilisez plutôt les définitions de bits.
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.SpareBits
Pour le débogueur uniquement. Ne pas utiliser. Utilisez plutôt les définitions de bits.
DataFlagsPad[1]
Définit le membre ULONGDataFlagsPad.
TestRetInstruction
Selon le processeur, le code de l’appel système rapide diffère. Ce champ est utilisé uniquement sur les systèmes 32 bits.
QpcFrequency
Définit le membre LONGLONG QpcFrequency.
SystemCall
Sur AMD64, cette valeur est initialisée à une valeur différente de zéro si le système fonctionne avec une vue modifiée du mécanisme d’appel du service système.
Reserved2
Réservé à un usage ultérieur.
FullNumberOfPhysicalPages
Réservé à un usage ultérieur.
SystemCallPad[1]
Réservé à un usage ultérieur.
DUMMYUNIONNAME3
Nombre de graduations 64 bits.
DUMMYUNIONNAME3.TickCount
Définit le KSYSTEM_TIME membre TickCount.
DUMMYUNIONNAME3.TickCountQuad
Définit le membre ULONG64TickCountQuad.
DUMMYUNIONNAME3.DUMMYSTRUCTNAME
Définit DUMMYSTRUCTNAME.
DUMMYUNIONNAME3.DUMMYSTRUCTNAME.ReservedTickCountOverlay[3]
Définit le membre ULONGReservedTickCountOverlay.
DUMMYUNIONNAME3.DUMMYSTRUCTNAME.TickCountPad[1]
Définit le membre ULONGTickCountPad.
Cookie
Cookie pour les pointeurs d’encodage à l’échelle du système.
CookiePad[1]
Réservé pour un usage futur.
ConsoleSessionForegroundProcessId
ID client du processus ayant le focus dans l’ID de session de la console active actuelle. Ce champ doit être accessible via l’API RtlGetConsoleSessionForegroundProcessId pour obtenir un résultat précis.
TimeUpdateLock
Espace réservé pour le verrou de mise à jour de l’heure (interne). Ces données sont utilisées pour implémenter les services de temps précis. Il est aligné sur une limite de ligne de cache de 64 octets et organisé dans l’ordre des accès classiques.
BaselineSystemTimeQpc
Valeur du compteur de performances utilisée pour établir l’heure système actuelle.
BaselineInterruptTimeQpc
Valeur du compteur de performances utilisée pour calculer l’heure de la dernière interruption.
QpcSystemTimeIncrement
Nombre de secondes de temps système mises à l’échelle représentées par un seul nombre de performances (cette valeur peut varier pour atteindre la synchronisation de l’heure).
QpcInterruptTimeIncrement
Nombre mis à l’échelle de temps d’interruption en secondes représenté par un seul nombre de performances (cette valeur est constante après le démarrage du système).
QpcSystemTimeIncrementShift
Nombre de décalages de mise à l’échelle appliqués à l’incrément de temps système du compteur de performances.
QpcInterruptTimeIncrementShift
Nombre de décalages de mise à l’échelle appliqués à l’incrément de temps d’interruption du compteur de performances.
UnparkedProcessorCount
Nombre de processeurs nonparkés.
EnclaveFeatureMask[4]
Masque de bits des fonctionnalités d’enclave prises en charge sur ce système. Ce champ doit être accessible via l’API RtlIsEnclareFeaturePresent pour obtenir un résultat précis.
TelemetryCoverageRound
Cycle de couverture actuel pour la couverture basée sur la télémétrie.
UserModeGlobalLogger[16]
Le champ suivant est utilisé pour la journalisation globale en mode utilisateur ETW (UMGL).
ImageFileExecutionOptions
Paramètres qui peuvent activer l’utilisation des options d’exécution de fichier image à partir de HKCU en plus du HKLM d’origine.
LangGenerationCount
Génération de la structure du noyau contenant les informations de langue système.
Reserved4
Réservé pour un usage futur.
InterruptTimeBias
Biais de temps d’interruption 64 bits actuel dans les unités de 100n.
QpcBias
Biais actuel du compteur de performances 64 bits, dans les unités de compteur de performances avant l’application du décalage.
ActiveProcessorCount
Nombre de processeurs actifs.
ActiveGroupCount
Nombre de groupes actifs.
Reserved9
Réservé pour un usage futur.
QpcData
Définit le membre USHORT QpcData.
QpcBypassEnabled
Boolean indiquant si les requêtes de compteur de performances peuvent lire le compteur directement (en contournant l’appel système).
QpcReserved
Réservé pour un usage futur.
TimeZoneBiasEffectiveStart
Définit le membre LARGE_INTEGERTimeZoneBiasEffectiveStart.
TimeZoneBiasEffectiveEnd
Définit le LARGE_INTEGER membre TimeZoneBiasEffectiveEnd.
XState
Configuration étendue de l’état du processeur.
FeatureConfigurationChangeStamp
Définit le KSYSTEM_TIME membre FeatureConfigurationChangeStamp.
Spare
Définit le membre ULONGSpare.
UserPointerAuthMask
Définit le ULONG64 membre UserPointerAuthMask.
XStateArm64
Reserved10[210]
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | ntddk.h (incluez Ntddk.h) |
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour