The code looks something like this:
LARGE_INTEGER lnTimeout;
lnTimeout.QuadPart = (LONGLONG) ( nTimeout * 10000 );
DTRACE(( "WaitEvent: Timeout is %d\n", lnTimeout.LowPart ));
DTRACE(( "WaitEvent: IRQL is %d\n", KeGetCurrentIrql() ));
DTRACE((
"Semaphore: %d,%d,%d,%d,%d,%d\n",
(int) pExtension->semWakeUp.Header.Type,
(int) pExtension->semWakeUp.Header.Absolute,
(int) pExtension->semWakeUp.Header.Size,
(int) pExtension->semWakeUp.Header.Inserted,
(int) pExtension->semWakeUp.Header.SignalState,
(int) pExtension->semWakeUp.Limit
));
return KeWaitForSingleObject(
&pExtension->semWakeUp,
Executive,
KernelMode,
TRUE,
&lnTimeout
);
I've put a lot of trace information in to try to figure out what's causing
it. What comes out is:
WaitEvent: Timeout is 10000000
WaitEvent: IRQL is 0
Semaphore: 5,0,5,0,0,100
If I put timing information around the call to KeWaitForSingleObject it
reports that no time has elapsed during the call.
I'm running Windows 2000 SP1.
Can anyone help???
Thanks in advance,
Colin Caughie
I once also faced this problem and i think ( know ) it has to do with
the type/cast and pls concider that when using
a positive multiplier its absolute time !
I´m doing like this :
DueTime.QuadPart = (LONGLONG)( UInt32x32To64 ( 1000 /*ms*/ , 1 )
* -10000 /*100-ns-intervals*/ );
So long,
Clemens
Colin
"Clemens Fischer" <Clemens...@sea.ericsson.se> wrote in message
news:96b5d1$k4r$1...@newstoo.ericsson.se...
Bill M.
"Colin Caughie" <c.ca...@NOSPAMindigovision.com> wrote in message
news:96b5mk$6hk$1...@soap.pipex.net...