- Timestamp:
- Dec 4, 2014 4:22:33 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/iprt/nt/nt.h
r52969 r53445 441 441 typedef struct _KUSER_SHARED_DATA 442 442 { 443 ULONG TickCountLowDeprecated; 444 ULONG TickCountMultiplier; 445 KSYSTEM_TIME volatile InterruptTime; 446 KSYSTEM_TIME volatile SystemTime; 447 KSYSTEM_TIME volatile TimeZoneBias; 448 USHORT ImageNumberLow; 449 USHORT ImageNumberHigh; 450 WCHAR NtSystemRoot[260]; 451 ULONG MaxStackTraceDepth; 452 ULONG CryptoExponent; 453 ULONG TimeZoneId; 454 ULONG LargePageMinimum; 455 ULONG AitSamplingValue; 456 ULONG AppCompatFlag; 457 ULONGLONG RNGSeedVersion; 458 ULONG GlobalValidationRunlevel; 459 LONG volatile TimeZoneBiasStamp; 460 ULONG Reserved2; 461 NT_PRODUCT_TYPE NtProductType; 462 BOOLEAN ProductTypeIsValid; 463 BOOLEAN Reserved0[1]; 464 USHORT NativeProcessorArchitecture; 465 ULONG NtMajorVersion; 466 ULONG NtMinorVersion; 467 BOOLEAN ProcessorFeatures[PROCESSOR_FEATURE_MAX]; 468 ULONG Reserved1; 469 ULONG Reserved3; 470 ULONG volatile TimeSlip; 471 ALTERNATIVE_ARCHITECTURE_TYPE AlternativeArchitecture; 472 ULONG AltArchitecturePad[1]; 473 LARGE_INTEGER SystemExpirationDate; 474 ULONG SuiteMask; 475 BOOLEAN KdDebuggerEnabled; 476 union 477 { 478 UCHAR MitigationPolicies; 443 ULONG TickCountLowDeprecated; /**< 0x000 */ 444 ULONG TickCountMultiplier; /**< 0x004 */ 445 KSYSTEM_TIME volatile InterruptTime; /**< 0x008 */ 446 KSYSTEM_TIME volatile SystemTime; /**< 0x014 */ 447 KSYSTEM_TIME volatile TimeZoneBias; /**< 0x020 */ 448 USHORT ImageNumberLow; /**< 0x02c */ 449 USHORT ImageNumberHigh; /**< 0x02e */ 450 WCHAR NtSystemRoot[260]; /**< 0x030 */ 451 ULONG MaxStackTraceDepth; /**< 0x238 */ 452 ULONG CryptoExponent; /**< 0x23c */ 453 ULONG TimeZoneId; /**< 0x240 */ 454 ULONG LargePageMinimum; /**< 0x244 */ 455 ULONG AitSamplingValue; /**< 0x248 */ 456 ULONG AppCompatFlag; /**< 0x24c */ 457 ULONGLONG RNGSeedVersion; /**< 0x250 */ 458 ULONG GlobalValidationRunlevel; /**< 0x258 */ 459 LONG volatile TimeZoneBiasStamp; /**< 0x25c*/ 460 ULONG Reserved2; /**< 0x260 */ 461 NT_PRODUCT_TYPE NtProductType; /**< 0x264 */ 462 BOOLEAN ProductTypeIsValid; /**< 0x268 */ 463 BOOLEAN Reserved0[1]; /**< 0x269 */ 464 USHORT NativeProcessorArchitecture; /**< 0x26a */ 465 ULONG NtMajorVersion; /**< 0x26c */ 466 ULONG NtMinorVersion; /**< 0x270 */ 467 BOOLEAN ProcessorFeatures[PROCESSOR_FEATURE_MAX]; /**< 0x274 */ 468 ULONG Reserved1; /**< 0x2b4 */ 469 ULONG Reserved3; /**< 0x2b8 */ 470 ULONG volatile TimeSlip; /**< 0x2bc */ 471 ALTERNATIVE_ARCHITECTURE_TYPE AlternativeArchitecture; /**< 0x2c0 */ 472 ULONG AltArchitecturePad[1]; /**< 0x2c4 */ 473 LARGE_INTEGER SystemExpirationDate; /**< 0x2c8 */ 474 ULONG SuiteMask; /**< 0x2d0 */ 475 BOOLEAN KdDebuggerEnabled; /**< 0x2d4 */ 476 union /**< 0x2d5 */ 477 { 478 UCHAR MitigationPolicies; /**< 0x2d5 */ 479 479 struct 480 480 { … … 485 485 }; 486 486 }; 487 UCHAR Reserved6[2]; 488 ULONG volatile ActiveConsoleId; 489 ULONG volatile DismountCount; 490 ULONG ComPlusPackage; 491 ULONG LastSystemRITEventTickCount; 492 ULONG NumberOfPhysicalPages; 493 BOOLEAN SafeBootMode; 494 UCHAR Reserved12[3]; 495 union 496 { 497 ULONG SharedDataFlags; 487 UCHAR Reserved6[2]; /**< 0x2d6 */ 488 ULONG volatile ActiveConsoleId; /**< 0x2d8 */ 489 ULONG volatile DismountCount; /**< 0x2dc */ 490 ULONG ComPlusPackage; /**< 0x2e0 */ 491 ULONG LastSystemRITEventTickCount; /**< 0x2e4 */ 492 ULONG NumberOfPhysicalPages; /**< 0x2e8 */ 493 BOOLEAN SafeBootMode; /**< 0x2ec */ 494 UCHAR Reserved12[3]; /**< 0x2ed */ 495 union /**< 0x2f0 */ 496 { 497 ULONG SharedDataFlags; /**< 0x2f0 */ 498 498 struct 499 499 { … … 509 509 }; 510 510 }; 511 ULONG DataFlagsPad[1]; 512 ULONGLONG TestRetInstruction; 513 LONGLONG QpcFrequency; 514 ULONGLONG SystemCallPad[3]; 515 union 516 { 517 ULONG64 volatile TickCountQuad; 518 KSYSTEM_TIME volatile TickCount; 519 struct 520 { 521 ULONG ReservedTickCountOverlay[3]; 522 ULONG TickCountPad[1]; 511 ULONG DataFlagsPad[1]; /**< 0x2f4 */ 512 ULONGLONG TestRetInstruction; /**< 0x2f8 */ 513 LONGLONG QpcFrequency; /**< 0x300 */ 514 ULONGLONG SystemCallPad[3]; /**< 0x308 */ 515 union /**< 0x320 */ 516 { 517 ULONG64 volatile TickCountQuad; /**< 0x320 */ 518 KSYSTEM_TIME volatile TickCount; /**< 0x320 */ 519 struct /**< 0x320 */ 520 { 521 ULONG ReservedTickCountOverlay[3]; /**< 0x320 */ 522 ULONG TickCountPad[1]; /**< 0x32c */ 523 523 }; 524 524 }; 525 ULONG Cookie; 526 ULONG CookiePad[1]; 527 LONGLONG ConsoleSessionForegroundProcessId; 528 ULONGLONG TimeUpdateLock; 529 ULONGLONG BaselineSystemTimeQpc; 530 ULONGLONG BaselineInterruptTimeQpc; 531 ULONGLONG QpcSystemTimeIncrement; 532 ULONGLONG QpcInterruptTimeIncrement; 533 ULONG QpcSystemTimeIncrement32; 534 ULONG QpcInterruptTimeIncrement32; 535 UCHAR QpcSystemTimeIncrementShift; 536 UCHAR QpcInterruptTimeIncrementShift; 537 UCHAR Reserved8[14]; 538 USHORT UserModeGlobalLogger[16]; 539 ULONG ImageFileExecutionOptions; 540 ULONG LangGenerationCount; 541 ULONGLONG Reserved4; 542 ULONGLONG volatile InterruptTimeBias; 543 ULONGLONG volatile QpcBias; 544 ULONG volatile ActiveProcessorCount; 545 UCHAR volatile ActiveGroupCount; 546 UCHAR Reserved9; 547 union 548 { 549 USHORT QpcData; 550 struct 551 { 552 BOOLEAN volatile QpcBypassEnabled; 553 UCHAR QpcShift; 525 ULONG Cookie; /**< 0x330 */ 526 ULONG CookiePad[1]; /**< 0x334 */ 527 LONGLONG ConsoleSessionForegroundProcessId; /**< 0x338 */ 528 ULONGLONG TimeUpdateLock; /**< 0x340 */ 529 ULONGLONG BaselineSystemTimeQpc; /**< 0x348 */ 530 ULONGLONG BaselineInterruptTimeQpc; /**< 0x350 */ 531 ULONGLONG QpcSystemTimeIncrement; /**< 0x358 */ 532 ULONGLONG QpcInterruptTimeIncrement; /**< 0x360 */ 533 ULONG QpcSystemTimeIncrement32; /**< 0x368 */ 534 ULONG QpcInterruptTimeIncrement32; /**< 0x36c */ 535 UCHAR QpcSystemTimeIncrementShift; /**< 0x370 */ 536 UCHAR QpcInterruptTimeIncrementShift; /**< 0x371 */ 537 UCHAR Reserved8[14]; /**< 0x372 */ 538 USHORT UserModeGlobalLogger[16]; /**< 0x380 */ 539 ULONG ImageFileExecutionOptions; /**< 0x3a0 */ 540 ULONG LangGenerationCount; /**< 0x3a4 */ 541 ULONGLONG Reserved4; /**< 0x3a8 */ 542 ULONGLONG volatile InterruptTimeBias; /**< 0x3b0 */ 543 ULONGLONG volatile QpcBias; /**< 0x3b8 */ 544 ULONG volatile ActiveProcessorCount; /**< 0x3c0 */ 545 UCHAR volatile ActiveGroupCount; /**< 0x3c4 */ 546 UCHAR Reserved9; /**< 0x3c5 */ 547 union /**< 0x3c6 */ 548 { 549 USHORT QpcData; /**< 0x3c6 */ 550 struct /**< 0x3c6 */ 551 { 552 BOOLEAN volatile QpcBypassEnabled; /**< 0x3c6 */ 553 UCHAR QpcShift; /**< 0x3c7 */ 554 554 }; 555 555 }; 556 LARGE_INTEGER TimeZoneBiasEffectiveStart; 557 LARGE_INTEGER TimeZoneBiasEffectiveEnd; 558 XSTATE_CONFIGURATION XState; 556 LARGE_INTEGER TimeZoneBiasEffectiveStart; /**< 0x3c8 */ 557 LARGE_INTEGER TimeZoneBiasEffectiveEnd; /**< 0x3d0 */ 558 XSTATE_CONFIGURATION XState; /**< 0x3d8 */ 559 559 } KUSER_SHARED_DATA; 560 560 typedef KUSER_SHARED_DATA *PKUSER_SHARED_DATA; 561 #endif /* IPRT_NT_USE_WINTERNL */ 562 AssertCompileMemberOffset(KUSER_SHARED_DATA, InterruptTime, 0x008); 563 AssertCompileMemberOffset(KUSER_SHARED_DATA, SystemTime, 0x014); 564 AssertCompileMemberOffset(KUSER_SHARED_DATA, NtSystemRoot, 0x030); 565 AssertCompileMemberOffset(KUSER_SHARED_DATA, LargePageMinimum, 0x244); 566 AssertCompileMemberOffset(KUSER_SHARED_DATA, Reserved1, 0x2b4); 567 AssertCompileMemberOffset(KUSER_SHARED_DATA, TestRetInstruction, 0x2f8); 568 AssertCompileMemberOffset(KUSER_SHARED_DATA, Cookie, 0x330); 569 AssertCompileMemberOffset(KUSER_SHARED_DATA, ImageFileExecutionOptions, 0x3a0); 570 #ifdef IPRT_NT_USE_WINTERNL 571 AssertCompileMemberOffset(KUSER_SHARED_DATA, XState, 0x3d8); 561 572 #endif /* IPRT_NT_USE_WINTERNL */ 562 573 /** @} */
Note:
See TracChangeset
for help on using the changeset viewer.