KUSER_SHARED_DATA結構 (ntddk.h)
本主題描述 KUSER_SHARED_DATA 結構。
語法
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;
成員
TickCountLowDeprecated
目前的低32位刻度計數。
TickCountMultiplier
刻度計數乘數。
InterruptTime
目前的 64 位中斷時間以 100ns 為單位。
SystemTime
目前的 64 位系統時間以 100ns 為單位。
TimeZoneBias
目前的64位時區偏差。
ImageNumberLow
主機系統的低影像魔術數位。
ImageNumberHigh
主機系統的高影像魔術數位。
NtSystemRoot[260]
Unicode 中的系統根目錄複本。 您必須透過 RtlGetNtSystemRoot API 來存取此字段,以取得精確的結果。
MaxStackTraceDepth
啟用追蹤時,堆疊追蹤深度上限。
CryptoExponent
密碼編譯指數值。
TimeZoneId
時區標識碼。
LargePageMinimum
定義 ULONG 成員 LargePageMinimum。
AitSamplingValue
此值會控制 AIT 取樣率。
AppCompatFlag
這個值會控制切換回送處理。
RNGSeedVersion
目前的核心根 RNG 狀態種子版本。
GlobalValidationRunlevel
這個值會控制判斷提示失敗處理。
TimeZoneBiasStamp
定義 timeZoneBiasStamp TimeZoneBiasStampLONG 成員。
NtBuildNumber
使用 C 或 F 取消編碼的共用集體組建編號 GetVersionEx 隱藏實數。
NtProductType
產品類型。 您必須透過 RtlGetNtProductType API 來存取此欄位,才能取得精確的結果。
ProductTypeIsValid
ProductTypeIsValid定義 BOOLEAN 成員。
Reserved0[1]
保留供日後使用。
NativeProcessorArchitecture
定義 USHORT 成員 NativeProcessorArchitecture。
NtMajorVersion
NT 主要版本。 每個進程都會看到其PEB中的版本,但如果進程是以系統版本的改變檢視執行,則會使用此欄位來正確識別版本。
NtMinorVersion
NT 次要版本。 每個進程都會看到其PEB中的版本,但如果進程是以系統版本的改變檢視執行,則會使用此欄位來正確識別版本。
ProcessorFeatures[PROCESSOR_FEATURE_MAX]
處理器功能。
Reserved1
保留供日後使用。
Reserved3
保留供日後使用。
TimeSlip
調試程式中的時間滑行。
AlternativeArchitecture
替代系統架構。 例如,x86 上的 NEC PC98xx。
BootId
開機順序,由OS載入器針對每次開機嘗試遞增。
SystemExpirationDate
如果系統是評估單位,下列欄位會包含評估單位到期的日期和時間。 值為 0 表示沒有到期日。 非零值是系統到期的UTC絕對時間。
SuiteMask
套件支援。 您必須透過 RtlGetSuiteMask API 存取此欄位,才能取得精確的結果。
KdDebuggerEnabled
如果核心調試程式已連線/啟用,則為TRUE。
MitigationPolicies
風險降低原則。
NXSupportPolicy
定義 NXSupportPolicy UCHAR 成員。
SEHValidationPolicy
定義 SEHValidationPolicy UCHAR 成員。
CurDirDevicesSkippedForDlls
定義 UCHAR 成員 CurDirDevicesSkippedForDlls。
Reserved
保留供日後使用。
CyclesPerYield
以迴圈為單位測量單一處理器產量的持續時間。 鎖定套件會使用此設定來判斷在封鎖之前等待狀態變更的次數。
ActiveConsoleId
目前的主控台會話標識碼。非TS系統上一律為零。 您必須透過 RtlGetActiveConsoleId API 來存取此字段,以取得精確的結果。
DismountCount
強制卸除會導致句柄變成無效。 用戶端可以用來查看是否需要探查句柄,而不是一律探查句柄,而不是一律維護卸除的序號。
ComPlusPackage
此欄位表示系統上 64 位 COM+ 套件的狀態。 它指出中繼語言 (IL) COM+ 映像是否需要使用 64 位 COM+ 執行時間或 32 位 COM+ 執行時間。
LastSystemRITEventTickCount
所有終端機會話上一次使用者輸入的刻度計數時間。 針對 MP 效能,不會一直更新它(例如,每個會話每分鐘一次)。 它用於閑置偵測。
NumberOfPhysicalPages
系統中的實體頁面數目。 這可以動態變更,因為可以新增或移除執行中系統的物理記憶體。
SafeBootMode
如果系統以安全開機模式開機,則為 True。
VirtualizationFlags
虛擬化旗標。
ArchStartedInEl2
讓此位欄位與arc.w中的位欄位保持同步。
QcSlIsSupported
讓此位欄位與arc.w中的位欄位保持同步。
Reserved12[2]
保留供日後使用。
DUMMYUNIONNAME2
這是一個包裝的位欄位,其中包含有關系統狀態的各種旗標。 必須使用相互鎖定的作業來作它們。 DbgMultiSessionSku 必須透過 RtlIsMultiSessionSku API 存取,以取得精確的結果。
DUMMYUNIONNAME2.SharedDataFlags
定義 ULONG 成員 SharedDataFlags。
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2
定義 DUMMYSTRUCTNAME2 結構。
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgErrorPortPresent
僅適用於調試程式。 請勿使用。 請改用位定義。
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgElevationEnabled
僅適用於調試程式。 請勿使用。 請改用位定義。
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgVirtEnabled
僅適用於調試程式。 請勿使用。 請改用位定義。
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgInstallerDetectEnabled
僅適用於調試程式。 請勿使用。 請改用位定義。
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgLkgEnabled
僅適用於調試程式。 請勿使用。 請改用位定義。
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgDynProcessorEnabled
僅適用於調試程式。 請勿使用。 請改用位定義。
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgConsoleBrokerEnabled
僅適用於調試程式。 請勿使用。 請改用位定義。
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgSecureBootEnabled
僅適用於調試程式。 請勿使用。 請改用位定義。
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgMultiSessionSku
僅適用於調試程式。 請勿使用。 請改用位定義。
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgMultiUsersInSessionSku
僅適用於調試程式。 請勿使用。 請改用位定義。
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgStateSeparationEnabled
僅適用於調試程式。 請勿使用。 請改用位定義。
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.SpareBits
僅限調試程式。 請勿使用。 請改用位定義。
DataFlagsPad[1]
定義 ULONG 成員,DataFlagsPad。
TestRetInstruction
視處理器而定,快速系統呼叫的程式代碼會有所不同。 此欄位僅適用於 32 位系統上。
QpcFrequency
定義 LONGLONG 成員 QpcFrequency。
SystemCall
在 AMD64 上,如果系統以系統服務呼叫機制的改變檢視運作,這個值會初始化為非零值。
Reserved2
保留供日後使用。
FullNumberOfPhysicalPages
保留供日後使用。
SystemCallPad[1]
保留供日後使用。
DUMMYUNIONNAME3
64 位刻度計數。
DUMMYUNIONNAME3.TickCount
定義 TickCount 成員 KSYSTEM_TIME 成員。
DUMMYUNIONNAME3.TickCountQuad
定義 tickCountQuad 成員 ULONG64 成員。
DUMMYUNIONNAME3.DUMMYSTRUCTNAME
定義 DUMMYSTRUCTNAME。
DUMMYUNIONNAME3.DUMMYSTRUCTNAME.ReservedTickCountOverlay[3]
定義 ULONG 成員 ReservedTickCountOverlay。
DUMMYUNIONNAME3.DUMMYSTRUCTNAME.TickCountPad[1]
定義 TickCountPad TickCountPadULONG 成員。
Cookie
適用於全系統之編碼指標的 Cookie。
CookiePad[1]
保留供日後使用。
ConsoleSessionForegroundProcessId
目前作用中主控台會話標識碼中具有焦點之進程的用戶端識別碼。此欄位必須透過 RtlGetConsoleSessionForegroundProcessId API 來存取,以取得精確的結果。
TimeUpdateLock
(內部) 時間更新鎖定的佔位元。 此數據可用來實作精確的時間服務。 它會對齊 64 位元組的快取行界限,並以一般存取的順序排列。
BaselineSystemTimeQpc
用來建立目前系統時間的性能計數器值。
BaselineInterruptTimeQpc
用來計算上次中斷時間的性能計數器值。
QpcSystemTimeIncrement
以單一效能計數表示的系統時間秒數(此值可能會因達到時間同步而有所不同)。
QpcInterruptTimeIncrement
以單一效能計數表示的插斷時間秒數(此值在系統開機後為常數)。
QpcSystemTimeIncrementShift
套用至性能計數器系統時間增量的縮放班次計數。
QpcInterruptTimeIncrementShift
套用至性能計數器中斷時間增量的縮放班次計數。
UnparkedProcessorCount
未啟動處理器的計數。
EnclaveFeatureMask[4]
此系統上支持的記憶體保護區功能位掩碼。 您必須透過 RtlIsEnclareFeaturePresent API 來存取此字段,以取得精確的結果。
TelemetryCoverageRound
遙測型涵蓋範圍目前的涵蓋範圍。
UserModeGlobalLogger[16]
下列欄位用於 ETW 使用者模式全域記錄 (UMGL)。
ImageFileExecutionOptions
除了原始 HKLM 之外,還可以啟用從 HKCU 使用影像檔執行選項的設定。
LangGenerationCount
產生包含系統語言資訊的核心結構。
Reserved4
保留供日後使用。
InterruptTimeBias
100ns 單位中的目前64位中斷時間偏差。
QpcBias
目前64位性能計數器偏差,在套用班次前的性能計數器單位中。
ActiveProcessorCount
使用中處理器的數目。
ActiveGroupCount
使用中群組的數目。
Reserved9
保留供日後使用。
QpcData
定義 USHORT 成員 QpcData。
QpcBypassEnabled
布爾值,指出性能計數器查詢是否可以直接讀取計數器(略過系統呼叫)。
QpcReserved
保留供日後使用。
TimeZoneBiasEffectiveStart
定義 timeZoneBiasEffectiveStart 成員 LARGE_INTEGER 成員。
TimeZoneBiasEffectiveEnd
定義 timeZoneBiasEffectiveEnd LARGE_INTEGER 成員。
XState
擴充處理器狀態設定。
FeatureConfigurationChangeStamp
定義featureConfigurationChangeStamp 成員 KSYSTEM_TIME 成員。
Spare
定義 ULONG 成員 備用。
UserPointerAuthMask
定義userPointerAuthMask ULONG64 成員。
XStateArm64
Reserved10[210]
要求
要求 | 價值 |
---|---|
標頭 | ntddk.h (包括 Ntddk.h) |