struktur KUSER_SHARED_DATA (ntddk.h)
Topik ini menjelaskan struktur KUSER_SHARED_DATA .
Sintaks
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 SystemCallPad[2];
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 QpcShift;
};
};
LARGE_INTEGER TimeZoneBiasEffectiveStart;
LARGE_INTEGER TimeZoneBiasEffectiveEnd;
XSTATE_CONFIGURATION XState;
KSYSTEM_TIME FeatureConfigurationChangeStamp;
ULONG Spare;
ULONG64 UserPointerAuthMask;
} KUSER_SHARED_DATA, *PKUSER_SHARED_DATA;
Anggota
TickCountLowDeprecated
Jumlah centang 32-bit rendah saat ini.
TickCountMultiplier
Pengali jumlah centang.
InterruptTime
Waktu interupsi 64-bit saat ini dalam unit 100ns.
SystemTime
Waktu sistem 64-bit saat ini dalam unit 100ns.
TimeZoneBias
Bias zona waktu 64-bit saat ini.
ImageNumberLow
Nomor ajaib gambar rendah untuk sistem host.
ImageNumberHigh
Angka ajaib gambar tinggi untuk sistem host.
NtSystemRoot[260]
Salinan akar sistem di unicode. Bidang ini harus diakses melalui RtlGetNtSystemRoot API untuk hasil yang akurat.
MaxStackTraceDepth
Kedalaman pelacakan tumpukan maksimum jika pelacakan diaktifkan.
CryptoExponent
Nilai eksponen kripto.
TimeZoneId
ID zona waktu.
LargePageMinimum
Mendefinisikan anggota ULONGLargePageMinimum.
AitSamplingValue
Nilai ini mengontrol laju pengambilan sampel AIT.
AppCompatFlag
Nilai ini mengontrol pemrosesan switchback.
RNGSeedVersion
Versi benih status RNG akar kernel saat ini.
GlobalValidationRunlevel
Nilai ini mengontrol penanganan kegagalan pernyataan.
TimeZoneBiasStamp
Mendefinisikan anggota LONGTimeZoneBiasStamp.
NtBuildNumber
Nomor build kolektif bersama yang tidak terdekorasi dengan C atau F. GetVersionEx menyembunyikan angka riil.
NtProductType
Jenis produk. Bidang ini harus diakses melalui RtlGetNtProductType API untuk hasil yang akurat.
ProductTypeIsValid
Menentukan anggota BOOLEANProductTypeIsValid.
Reserved0[1]
Disiapkan untuk penggunaan masa mendatang.
NativeProcessorArchitecture
Mendefinisikan anggota USHORTNativeProcessorArchitecture.
NtMajorVersion
Versi utama NT. Setiap proses melihat versi dari PEB-nya, tetapi jika proses berjalan dengan tampilan yang diubah dari versi sistem, bidang ini digunakan untuk mengidentifikasi versi dengan benar.
NtMinorVersion
Versi minor NT. Setiap proses melihat versi dari PEB-nya, tetapi jika proses berjalan dengan tampilan yang diubah dari versi sistem, bidang ini digunakan untuk mengidentifikasi versi dengan benar.
ProcessorFeatures[PROCESSOR_FEATURE_MAX]
Fitur prosesor.
Reserved1
Disiapkan untuk penggunaan masa mendatang.
Reserved3
Disiapkan untuk penggunaan masa mendatang.
TimeSlip
Selip waktu saat berada di debugger.
AlternativeArchitecture
Arsitektur sistem alternatif. Misalnya, NEC PC98xx pada x86.
BootId
Urutan boot, bertambah untuk setiap upaya boot oleh pemuat OS.
SystemExpirationDate
Jika sistem adalah unit evaluasi, bidang berikut berisi tanggal dan waktu kedaluwarsa unit evaluasi. Nilai 0 menunjukkan bahwa tidak ada kedaluwarsa. Nilai bukan nol adalah waktu absolut UTC yang kedaluwarsa sistem.
SuiteMask
Dukungan suite. Bidang ini harus diakses melalui API RtlGetSuiteMask untuk hasil yang akurat.
KdDebuggerEnabled
TRUE jika debugger kernel tersambung/diaktifkan.
MitigationPolicies
Kebijakan mitigasi.
NXSupportPolicy
Mendefinisikan anggota UCHARNXSupportPolicy.
SEHValidationPolicy
Mendefinisikan anggota UCHARSEHValidationPolicy.
CurDirDevicesSkippedForDlls
Mendefinisikan anggota UCHARCurDirDevicesSkippedForDlls.
Reserved
Disiapkan untuk penggunaan masa mendatang.
CyclesPerYield
Durasi yang diukur dari satu hasil prosesor, dalam siklus. Ini digunakan oleh paket kunci untuk menentukan berapa kali berputar menunggu perubahan status sebelum memblokir.
ActiveConsoleId
Id sesi konsol saat ini. Selalu nol pada sistem non-TS. Bidang ini harus diakses melalui API RtlGetActiveConsoleId untuk hasil yang akurat.
DismountCount
Melepas paksa menyebabkan handel menjadi tidak valid. Daripada selalu menangani pemeriksaan, jumlah seri pelarangan dipertahankan yang dapat digunakan klien untuk melihat apakah mereka perlu memeriksa handel.
ComPlusPackage
Bidang ini menunjukkan status paket COM+ 64-bit pada sistem. Ini menunjukkan apakah gambar COM+ Bahasa Perantara (IL) perlu menggunakan runtime COM+ 64-bit atau runtime COM+ 32-bit.
LastSystemRITEventTickCount
Waktu dalam jumlah centang untuk input pengguna terakhir di seluruh sistem di semua sesi terminal. Untuk performa MP, ini tidak diperbarui sepanjang waktu (misalnya, sekali satu menit per sesi). Ini digunakan untuk deteksi diam.
NumberOfPhysicalPages
Jumlah halaman fisik dalam sistem. Ini dapat berubah secara dinamis karena memori fisik dapat ditambahkan atau dihapus dari sistem yang sedang berjalan.
SafeBootMode
True jika sistem di-boot dalam mode boot aman.
VirtualizationFlags
Bendera virtualisasi.
ArchStartedInEl2
Sinkronkan ladang bit ini dengan yang ada di arc.w.
QcSlIsSupported
Sinkronkan ladang bit ini dengan yang ada di arc.w.
Reserved12[2]
Disiapkan untuk penggunaan masa mendatang.
DUMMYUNIONNAME2
Ini adalah bitfield kemasan yang berisi berbagai bendera mengenai status sistem. Mereka harus dimanipulasi menggunakan operasi yang saling mengunci. DbgMultiSessionSku harus diakses melalui API RtlIsMultiSessionSku untuk hasil yang akurat.
DUMMYUNIONNAME2.SharedDataFlags
Mendefinisikan anggota ULONGSharedDataFlags.
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2
Menentukan struktur DUMMYSTRUCTNAME2 .
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgErrorPortPresent
Hanya untuk debugger. Jangan gunakan. Gunakan definisi bit sebagai gantinya.
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgElevationEnabled
Hanya untuk debugger. Jangan gunakan. Gunakan definisi bit sebagai gantinya.
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgVirtEnabled
Hanya untuk debugger. Jangan gunakan. Gunakan definisi bit sebagai gantinya.
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgInstallerDetectEnabled
Hanya untuk debugger. Jangan gunakan. Gunakan definisi bit sebagai gantinya.
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgLkgEnabled
Hanya untuk debugger. Jangan gunakan. Gunakan definisi bit sebagai gantinya.
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgDynProcessorEnabled
Hanya untuk debugger. Jangan gunakan. Gunakan definisi bit sebagai gantinya.
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgConsoleBrokerEnabled
Hanya untuk debugger. Jangan gunakan. Gunakan definisi bit sebagai gantinya.
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgSecureBootEnabled
Hanya untuk debugger. Jangan gunakan. Gunakan definisi bit sebagai gantinya.
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgMultiSessionSku
Hanya untuk debugger. Jangan gunakan. Gunakan definisi bit sebagai gantinya.
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgMultiUsersInSessionSku
Hanya untuk debugger. Jangan gunakan. Gunakan definisi bit sebagai gantinya.
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgStateSeparationEnabled
Hanya untuk debugger. Jangan gunakan. Gunakan definisi bit sebagai gantinya.
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.SpareBits
Hanya untuk debugger. Jangan gunakan. Gunakan definisi bit sebagai gantinya.
DataFlagsPad[1]
Mendefinisikan anggota ULONGDataFlagsPad.
TestRetInstruction
Tergantung pada prosesor, kode untuk panggilan sistem cepat akan berbeda. Bidang ini hanya digunakan pada sistem 32-bit.
QpcFrequency
Menentukan QpcFrequency anggota LONGLONG.
SystemCall
Pada AMD64, nilai ini diinisialisasi ke nilai bukan nol jika sistem beroperasi dengan tampilan mekanisme panggilan layanan sistem yang diubah.
Reserved2
Disiapkan untuk penggunaan masa mendatang.
SystemCallPad[2]
Disiapkan untuk penggunaan masa mendatang.
DUMMYUNIONNAME3
Jumlah centang 64-bit.
DUMMYUNIONNAME3.TickCount
Menentukan anggota KSYSTEM_TIMETickCount.
DUMMYUNIONNAME3.TickCountQuad
Menentukan anggota ULONG64TickCountQuad.
DUMMYUNIONNAME3.DUMMYSTRUCTNAME
Mendefinisikan DUMMYSTRUCTNAME.
DUMMYUNIONNAME3.DUMMYSTRUCTNAME.ReservedTickCountOverlay[3]
Mendefinisikan anggota ULONGReservedTickCountOverlay.
DUMMYUNIONNAME3.DUMMYSTRUCTNAME.TickCountPad[1]
Mendefinisikan anggota ULONGTickCountPad.
Cookie
Cookie untuk pengodean pointer sistem lebar.
CookiePad[1]
Disiapkan untuk penggunaan masa mendatang.
ConsoleSessionForegroundProcessId
Id klien dari proses yang memiliki fokus dalam id sesi konsol aktif saat ini. Bidang ini harus diakses melalui RtlGetConsoleSessionForegroundProcessId API untuk hasil yang akurat.
TimeUpdateLock
Tempat penampung untuk kunci pembaruan waktu (internal). Data ini digunakan untuk menerapkan layanan waktu yang tepat. Ini selaras pada batas garis cache 64-byte dan diatur dalam urutan akses umum.
BaselineSystemTimeQpc
Nilai penghitung kinerja yang digunakan untuk menetapkan waktu sistem saat ini.
BaselineInterruptTimeQpc
Nilai penghitung kinerja yang digunakan untuk menghitung waktu interupsi terakhir.
QpcSystemTimeIncrement
Jumlah detik waktu sistem yang diskalakan yang diwakili oleh satu jumlah performa (nilai ini dapat bervariasi untuk mencapai sinkronisasi waktu).
QpcInterruptTimeIncrement
Jumlah detik waktu interupsi yang diskalakan yang diwakili oleh satu jumlah performa (nilai ini konstan setelah sistem di-boot).
QpcSystemTimeIncrementShift
Jumlah pergeseran penskalaan diterapkan pada kenaikan waktu sistem penghitung kinerja.
QpcInterruptTimeIncrementShift
Jumlah pergeseran penskalaan yang diterapkan ke peningkatan waktu interupsi penghitung kinerja.
UnparkedProcessorCount
Jumlah prosesor yang tidak dipark.
EnclaveFeatureMask[4]
Bitmask fitur enklave yang didukung pada sistem ini. Bidang ini harus diakses melalui RtlIsEnclareFeaturePresent API untuk hasil yang akurat.
TelemetryCoverageRound
Putaran cakupan saat ini untuk cakupan berbasis telemetri.
UserModeGlobalLogger[16]
Bidang berikut digunakan untuk pengelogan global mode pengguna ETW (UMGL).
ImageFileExecutionOptions
Pengaturan yang dapat mengaktifkan penggunaan Opsi Eksekusi File Gambar dari HKCU selain HKLM asli.
LangGenerationCount
Pembuatan struktur kernel yang memegang informasi bahasa sistem.
Reserved4
Disiapkan untuk penggunaan masa mendatang.
InterruptTimeBias
Bias waktu interupsi 64-bit saat ini dalam unit 100ns.
QpcBias
Bias penghitung kinerja 64-bit saat ini, di unit penghitung kinerja sebelum pergeseran diterapkan.
ActiveProcessorCount
Jumlah prosesor aktif.
ActiveGroupCount
Jumlah grup aktif.
Reserved9
Disiapkan untuk penggunaan masa mendatang.
QpcData
Mendefinisikan anggota USHORT QpcData.
QpcBypassEnabled
Boolean yang menunjukkan apakah kueri penghitung kinerja dapat membaca penghitung secara langsung (melewati panggilan sistem).
QpcShift
Pergeseran diterapkan ke nilai penghitung mentah untuk memperoleh jumlah QPC.
TimeZoneBiasEffectiveStart
Mendefinisikan anggota LARGE_INTEGERTimeZoneBiasEffectiveStart.
TimeZoneBiasEffectiveEnd
Mendefinisikan anggota LARGE_INTEGERTimeZoneBiasEffectiveEnd.
XState
Konfigurasi status prosesor yang diperluas.
FeatureConfigurationChangeStamp
Menentukan anggota KSYSTEM_TIMEFeatureConfigurationChangeStamp.
Spare
Mendefinisikan anggota ULONGSpare.
UserPointerAuthMask
Menentukan anggota ULONG64UserPointerAuthMask.
Persyaratan
Persyaratan | Nilai |
---|---|
Header | ntddk.h (termasuk Ntddk.h) |