Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8854441
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 14, 20262026-06-14T13:52:52+00:00 2026-06-14T13:52:52+00:00

I ues this code to get system up time : procedure GetSystemUpTime(var Hour, Minute

  • 0

I ues this code to get system up time :

procedure GetSystemUpTime(var Hour, Minute : integer);

function GetSysTime : dword;
  asm
    int $2a
  end;
begin
  Hour := GetSysTime() div 3600000;
  Minute := GetSysTime() mod 3600000 div 60000;
end;

procedure TForm1.Button1Click(Sender : TObject);
var
  H, M : integer;
begin
  GetSystemUpTime(H, M);
  Label1.Caption := IntToStr(H) + ':' + IntToStr(M);
end;

I test it in win8 x86 and XP x86 it works , but fail in win7 x64 with error:

enter image description here

I wonder how to get system interruption in x64 , can anybody fix it ?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-14T13:52:54+00:00Added an answer on June 14, 2026 at 1:52 pm

    This behavior is not related to the OS processor architecture. The 0x2A interruption gives access to the undocumented function KiGetTickCount, but this only work until Windows XP,starting with windows vista you can use the GetTickCount64 function to get the milliseconds that have elapsed since the system was started, also you can use the Win32_OperatingSystem WMI class and the LastBootUpTime property.

    BTW, If you need measure a frame of time minor than 49.7 days, you can use the GetTickCount function.

    procedure GetSystemUpTime(var Hour, Minute : integer);
    var
     LTicks : DWORD;
    begin
      LTicks := GetTickCount();
      Hour   := LTicks div 3600000;
      Minute := LTicks mod 3600000 div 60000;
    end;
    

    UPDATE

    It seems which the KiGetTickCount function is exposed via the interrupt 0x2A interface only on 32-bit versions of Windows.

    This is the result of dump the IDT(Interrupt Descriptor Table) on x86 Windows using the Kernel Debugger.

    00: 805421b0 nt!KiTrap00
    01: f620a4f6 ati2mtag+0x1774F6
    02: Task Selector = 0x0058
    03: f620a59c ati2mtag+0x17759C
    04: 805428c0 nt!KiTrap04
    05: 80542a20 nt!KiTrap05
    06: 80542b94 nt!KiTrap06
    07: 8054320c nt!KiTrap07
    08: Task Selector = 0x0050
    09: 80543610 nt!KiTrap09
    0a: 80543730 nt!KiTrap0A
    0b: 80543870 nt!KiTrap0B
    0c: 80543ad0 nt!KiTrap0C
    0d: 80543dbc nt!KiTrap0D
    0e: 805444b8 nt!KiTrap0E
    0f: 805447f0 nt!KiTrap0F
    10: 80544910 nt!KiTrap10
    11: 80544a4c nt!KiTrap11
    12: Task Selector = 0×00A0
    13: 80544bb4 nt!KiTrap13
    14: 805447f0 nt!KiTrap0F
    15: 805447f0 nt!KiTrap0F
    16: 805447f0 nt!KiTrap0F
    17: 805447f0 nt!KiTrap0F
    18: 805447f0 nt!KiTrap0F
    19: 805447f0 nt!KiTrap0F
    1a: 805447f0 nt!KiTrap0F
    1b: 805447f0 nt!KiTrap0F
    1c: 805447f0 nt!KiTrap0F
    1d: 805447f0 nt!KiTrap0F
    1e: 805447f0 nt!KiTrap0F
    1f: 806e710c hal!HalpApicSpuriousService
    20: 00000000
    21: 00000000
    22: 00000000
    23: 00000000
    24: 00000000
    25: 00000000
    26: 00000000
    27: 00000000
    28: 00000000
    29: 00000000
    >>2a: 805419de nt!KiGetTickCount<<
    2b: 80541ae0 nt!KiCallbackReturn
    2c: 80541c90 nt!KiSetLowWaitHighThread
    2d: 8054261c nt!KiDebugService
    2e: 80541461 nt!KiSystemService
    2f: 805447f0 nt!KiTrap0F
    30: 80540b20 nt!KiUnexpectedInterrupt0
    31: 80540b2a nt!KiUnexpectedInterrupt1
    32: 80540b34 nt!KiUnexpectedInterrupt2
    33: 80540b3e nt!KiUnexpectedInterrupt3
    34: 80540b48 nt!KiUnexpectedInterrupt4
    35: 80540b52 nt!KiUnexpectedInterrupt5
    36: 80540b5c nt!KiUnexpectedInterrupt6
    

    and now in x64

    00: fffff80001865180 nt!KiDivideErrorFault
    01: fffff80001865240 nt!KiDebugTrapOrFault
    02: fffff80001865380 nt!KiNmiInterrupt Stack = 0xFFFFFA60005F5D40
    03: fffff800018656c0 nt!KiBreakpointTrap
    04: fffff80001865780 nt!KiOverflowTrap
    05: fffff80001865840 nt!KiBoundFault
    06: fffff80001865900 nt!KiInvalidOpcodeFault
    07: fffff80001865ac0 nt!KiNpxNotAvailableFault
    08: fffff80001865b80 nt!KiDoubleFaultAbort Stack = 0xFFFFFA60005F1D40
    09: fffff80001865c40 nt!KiNpxSegmentOverrunAbort
    0a: fffff80001865d00 nt!KiInvalidTssFault
    0b: fffff80001865dc0 nt!KiSegmentNotPresentFault
    0c: fffff80001865ec0 nt!KiStackFault
    0d: fffff80001865fc0 nt!KiGeneralProtectionFault
    0e: fffff800018660c0 nt!KiPageFault
    10: fffff80001866400 nt!KiFloatingErrorFault
    11: fffff80001866540 nt!KiAlignmentFault
    12: fffff80001866600 nt!KiMcheckAbort Stack = 0xFFFFFA60005F3D40
    13: fffff80001866940 nt!KiXmmException
    1f: fffff80001895290 nt!KiApcInterrupt
    2c: fffff80001866ac0 nt!KiRaiseAssertion
    2d: fffff80001866b80 nt!KiDebugServiceTrap
    2f: fffff800018aeb60 nt!KiDpcInterrupt
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I am trying to get the rgb values from a CGColor I use the
This isn't solved, but I found out why: MySQL View containing UNION does not
In the middle my HTML code, I have a line of PHP. now, I
it is possible,i ues <% %> for assign QueryString ID,to src img tag such
I'm writing a translator, not as any serious project, just for fun and to
I have a long list with website address's. But i have to filter them
I want to use three20's TTThumbsView & TTPhotoView to build something like Grindr. Instead
How to format the number which can be converted to Byte[] (array); I know
def donuts(count): strout = 'Number of donuts %s' if count >= 10: %s('many') else:
Ok, I am in the process of creating a cms. There will be a

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.