estrutura KUSER_SHARED_DATA (ntddk.h)
Este tópico descreve a estrutura KUSER_SHARED_DATA .
Sintaxe
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;
Membros
TickCountLowDeprecated
Atual baixa de 32 bits de contagem de tiques.
TickCountMultiplier
Multiplicador de contagem de tiques.
InterruptTime
Tempo de interrupção atual de 64 bits em unidades de 100ns.
SystemTime
Tempo atual do sistema de 64 bits em unidades de 100ns.
TimeZoneBias
Viés de fuso horário atual de 64 bits.
ImageNumberLow
Número mágico de imagem baixa para o sistema host.
ImageNumberHigh
Número mágico de imagem alta para o sistema host.
NtSystemRoot[260]
Cópia da raiz do sistema em unicode. Esse campo deve ser acessado por meio da API RtlGetNtSystemRoot para obter um resultado preciso.
MaxStackTraceDepth
Profundidade máxima de rastreamento de pilha se o rastreamento estiver habilitado.
CryptoExponent
Valor do expoente de criptografia.
TimeZoneId
ID do fuso horário.
LargePageMinimum
Define o membro do ULONGLargePageMinimum.
AitSamplingValue
Esse valor controla a taxa de amostragem do AIT.
AppCompatFlag
Esse valor controla o processamento de switchback.
RNGSeedVersion
Versão de semente do estado RNG raiz do kernel atual.
GlobalValidationRunlevel
Esse valor controla o tratamento de falhas de asserção.
TimeZoneBiasStamp
Define o membro LONGTimeZoneBiasStamp.
NtBuildNumber
O número de build coletivo compartilhado não decorado com C ou F. GetVersionEx oculta o número real.
NtProductType
Tipo de produto. Esse campo deve ser acessado por meio da API RtlGetNtProductType para obter um resultado preciso.
ProductTypeIsValid
Define o membro BOOLEANProductTypeIsValid.
Reserved0[1]
Reservado para uso futuro.
NativeProcessorArchitecture
Define o membro do USHORTNativeProcessorArchitecture.
NtMajorVersion
A versão principal do NT. Cada processo vê uma versão de seu PEB, mas se o processo estiver em execução com uma exibição alterada da versão do sistema, esse campo será usado para identificar corretamente a versão.
NtMinorVersion
A versão secundária do NT. Cada processo vê uma versão de seu PEB, mas se o processo estiver em execução com uma exibição alterada da versão do sistema, esse campo será usado para identificar corretamente a versão.
ProcessorFeatures[PROCESSOR_FEATURE_MAX]
Recursos do processador.
Reserved1
Reservado para uso futuro.
Reserved3
Reservado para uso futuro.
TimeSlip
Deslizamento de tempo enquanto estiver no depurador.
AlternativeArchitecture
Arquitetura alternativa do sistema. Por exemplo, NEC PC98xx em x86.
BootId
Sequência de inicialização, incrementada para cada tentativa de inicialização pelo carregador do sistema operacional.
SystemExpirationDate
Se o sistema for uma unidade de avaliação, o campo a seguir conterá a data e a hora em que a unidade de avaliação expirará. Um valor de 0 indica que não há expiração. Um valor diferente de zero é o tempo absoluto UTC em que o sistema expira.
SuiteMask
Suporte ao pacote. Esse campo deve ser acessado por meio da API RtlGetSuiteMask para obter um resultado preciso.
KdDebuggerEnabled
TRUE se um depurador de kernel estiver conectado/habilitado.
MitigationPolicies
Políticas de mitigação.
NXSupportPolicy
Define o membro UCHARNXSupportPolicy.
SEHValidationPolicy
Define o membro UCHAR SEHValidationPolicy.
CurDirDevicesSkippedForDlls
Define o membro UCHARCurDirDevicesSkippedForDlls.
Reserved
Reservado para uso futuro.
CyclesPerYield
Duração medida de um único rendimento do processador, em ciclos. Isso é usado por pacotes de bloqueio para determinar quantas vezes girar aguardando uma alteração de estado antes de bloquear.
ActiveConsoleId
ID da sessão do console atual. Sempre zero em sistemas não TS. Esse campo deve ser acessado por meio da API RtlGetActiveConsoleId para obter um resultado preciso.
DismountCount
Desmontes forçados fazem com que os identificadores se tornem inválidos. Em vez de sempre investigar identificadores, um número de série de desmontes é mantido que os clientes podem usar para ver se precisam investigar identificadores.
ComPlusPackage
Esse campo indica o status do pacote COM+ de 64 bits no sistema. Ele indica se as imagens COM+ de Linguagem Intermediária (IL) precisam usar o runtime COM+ de 64 bits ou o runtime COM+ de 32 bits.
LastSystemRITEventTickCount
Tempo na contagem de tiques para a entrada do último usuário em todo o sistema em todas as sessões de terminal. Para o desempenho do MP, ele não é atualizado o tempo todo (por exemplo, uma vez por minuto por sessão). Ele é usado para detecção ociosa.
NumberOfPhysicalPages
Número de páginas físicas no sistema. Isso pode mudar dinamicamente, pois a memória física pode ser adicionada ou removida de um sistema em execução.
SafeBootMode
True se o sistema foi inicializado no modo de inicialização segura.
VirtualizationFlags
Sinalizadores de virtualização.
ArchStartedInEl2
Mantenha este campo de bits em sincronia com o do arc.w.
QcSlIsSupported
Mantenha este campo de bits em sincronia com o do arc.w.
Reserved12[2]
Reservado para uso futuro.
DUMMYUNIONNAME2
Esse é um campo de bits empacotado que contém vários sinalizadores relacionados ao estado do sistema. Eles devem ser manipulados usando operações interligadas. DbgMultiSessionSku deve ser acessado por meio da API RtlIsMultiSessionSku para obter um resultado preciso.
DUMMYUNIONNAME2.SharedDataFlags
Define o membro do ULONGSharedDataFlags.
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2
Define a estrutura DUMMYSTRUCTNAME2 .
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgErrorPortPresent
Somente para depurador. Não use. Em vez disso, use as definições de bit.
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgElevationEnabled
Somente para depurador. Não use. Em vez disso, use as definições de bit.
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgVirtEnabled
Somente para depurador. Não use. Em vez disso, use as definições de bit.
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgInstallerDetectEnabled
Somente para depurador. Não use. Em vez disso, use as definições de bit.
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgLkgEnabled
Somente para depurador. Não use. Em vez disso, use as definições de bit.
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgDynProcessorEnabled
Somente para depurador. Não use. Em vez disso, use as definições de bit.
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgConsoleBrokerEnabled
Somente para depurador. Não use. Em vez disso, use as definições de bit.
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgSecureBootEnabled
Somente para depurador. Não use. Em vez disso, use as definições de bit.
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgMultiSessionSku
Somente para depurador. Não use. Em vez disso, use as definições de bit.
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgMultiUsersInSessionSku
Somente para depurador. Não use. Em vez disso, use as definições de bit.
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.DbgStateSeparationEnabled
Somente para depurador. Não use. Em vez disso, use as definições de bit.
DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.SpareBits
Somente para o depurador. Não use. Em vez disso, use as definições de bit.
DataFlagsPad[1]
Define o DataFlagsPad do membro ULONG.
TestRetInstruction
Dependendo do processador, o código para chamada rápida do sistema será diferente. Esse campo só é usado em sistemas de 32 bits.
QpcFrequency
Define o membro LONGLONGQpcFrequency.
SystemCall
No AMD64, esse valor será inicializado para um valor diferente de zero se o sistema operar com uma exibição alterada do mecanismo de chamada de serviço do sistema.
Reserved2
Reservado para uso futuro.
FullNumberOfPhysicalPages
Reservado para uso futuro.
SystemCallPad[1]
Reservado para uso futuro.
DUMMYUNIONNAME3
A contagem de tiques de 64 bits.
DUMMYUNIONNAME3.TickCount
Define o membro KSYSTEM_TIMETickCount.
DUMMYUNIONNAME3.TickCountQuad
Define o membro ULONG64TickCountQuad.
DUMMYUNIONNAME3.DUMMYSTRUCTNAME
Define DUMMYSTRUCTNAME.
DUMMYUNIONNAME3.DUMMYSTRUCTNAME.ReservedTickCountOverlay[3]
Define o membro ULONGReservedTickCountOverlay.
DUMMYUNIONNAME3.DUMMYSTRUCTNAME.TickCountPad[1]
Define o membro do ULONGTickCountPad.
Cookie
Cookie para codificar ponteiros de todo o sistema.
CookiePad[1]
Reservado para uso futuro.
ConsoleSessionForegroundProcessId
ID do cliente do processo com o foco na ID da sessão do console ativo atual. Esse campo deve ser acessado por meio da API RtlGetConsoleSessionForegroundProcessId para obter um resultado preciso.
TimeUpdateLock
Espaço reservado para o bloqueio de atualização de tempo (interno). Esses dados são usados para implementar os serviços de tempo precisos. Ele é alinhado em um limite de linha de cache de 64 bytes e organizado na ordem de acessos típicos.
BaselineSystemTimeQpc
O valor do contador de desempenho usado para estabelecer a hora atual do sistema.
BaselineInterruptTimeQpc
O valor do contador de desempenho usado para calcular a hora da última interrupção.
QpcSystemTimeIncrement
O número dimensionado de segundos de tempo do sistema representado por uma única contagem de desempenho (esse valor pode variar para alcançar a sincronização de tempo).
QpcInterruptTimeIncrement
O número dimensionado de segundos de tempo de interrupção representado por uma única contagem de desempenho (esse valor é constante depois que o sistema é inicializado).
QpcSystemTimeIncrementShift
A contagem de deslocamentos de dimensionamento aplicada ao incremento de tempo do sistema do contador de desempenho.
QpcInterruptTimeIncrementShift
A contagem de deslocamentos de dimensionamento aplicada ao incremento de tempo de interrupção do contador de desempenho.
UnparkedProcessorCount
A contagem de processadores nãoparked.
EnclaveFeatureMask[4]
Uma máscara de bits de recursos de enclave com suporte neste sistema. Esse campo deve ser acessado por meio da API RtlIsEnclareFeaturePresent para obter um resultado preciso.
TelemetryCoverageRound
Rodada de cobertura atual para cobertura baseada em telemetria.
UserModeGlobalLogger[16]
O campo a seguir é usado para registro em log global (UMGL) no modo de usuário ETW.
ImageFileExecutionOptions
Configurações que podem habilitar o uso de Opções de Execução de Arquivo de Imagem do HKCU, além do HKLM original.
LangGenerationCount
Geração da estrutura de kernel que contém informações de linguagem do sistema.
Reserved4
Reservado para uso futuro.
InterruptTimeBias
Desvio de tempo de interrupção atual de 64 bits em unidades de 100ns.
QpcBias
Desvio atual do contador de desempenho de 64 bits, em unidades de contador de desempenho antes que a mudança seja aplicada.
ActiveProcessorCount
Número de processadores ativos.
ActiveGroupCount
Número de grupos ativos.
Reserved9
Reservado para uso futuro.
QpcData
Define o membro do USHORT QpcData.
QpcBypassEnabled
Um booliano que indica se as consultas do contador de desempenho podem ler o contador diretamente (ignorando a chamada do sistema).
QpcReserved
Reservado para uso futuro.
TimeZoneBiasEffectiveStart
Define o membro LARGE_INTEGERTimeZoneBiasEffectiveStart.
TimeZoneBiasEffectiveEnd
Define o membro LARGE_INTEGERTimeZoneBiasEffectiveEnd.
XState
Configuração de estado do processador estendido.
FeatureConfigurationChangeStamp
Define o KSYSTEM_TIME membro FeatureConfigurationChangeStamp.
Spare
Define o membro ULONGSpare.
UserPointerAuthMask
Define o membro ULONG64UserPointerAuthMask.
XStateArm64
Reserved10[210]
Requisitos
Requisito | Valor |
---|---|
Cabeçalho | ntddk.h (inclua Ntddk.h) |