Jump to content

DevHelp_RegisterTmrDD

From EDM2
Revision as of 14:22, 2 January 2020 by Ak120 (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

This service sends the physical device driver pointers to the Timer value and Timer rollover count in kernel address space.

Syntax

C

USHORT APIENTRY DevHelp_RegisterTmrDD (NPFN   TimerEntry,
                                       PULONG TmrRollover,
                                       PULONG Tmr )

Assembler

MOV   CS,SEGMENT PTTimer0_Entry_Point
MOV   DI,OFFSET  PTTimer0_Entry_Point
MOV   DL,DevHlp_RegisterTmrDD

CALL  [Device_Help]

Parameters

C

TimerEntry (NPFN)
input - Pointer to the Segment:Offset of the timer entry point.
TmrRollover (PULONG)
output - Pointer to returned 16:16 timer rollover count in the kernel address space.
Tmr (PULONG)
output - Pointer to returned 16:16 timer value in the kernel address space.

Assembler

MOV   CS,SEGMENT PTTimer0_Entry_Point
MOV   DI,OFFSET  PTTimer0_Entry_Point

Return Code

C

Success indicator: 0

Possible errors: None.

Assembler

Success:
          DI:BX = qwTmrRollover (16:16) in kernel address space.
          DI:CX = qwTmr (16:16) in kernel address space.
           = NULL if DosHlp function not present.

Remarks

RegisterTmrDD can be called only at physical Timer device driver initialization time. This function uses the EAX, BX, CX, DI, and EFlags registers.

Example Code

C

#include  "dhcalls.h"

USHORT APIENTRY DevHelp_RegisterTmrDD (NPFN   TimerEntry,
                                       PULONG TmrRollover,
                                       PULONG Tmr          )