Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
a4a903f9
Commit
a4a903f9
authored
May 28, 2020
by
Paul Gofman
Committed by
Alexandre Julliard
May 28, 2020
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ntoskrnl.exe: Support DPCs with timers.
Signed-off-by:
Paul Gofman
<
pgofman@codeweavers.com
>
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
6cb35889
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
7 additions
and
6 deletions
+7
-6
sync.c
dlls/ntoskrnl.exe/sync.c
+7
-6
No files found.
dlls/ntoskrnl.exe/sync.c
View file @
a4a903f9
...
...
@@ -392,9 +392,15 @@ LONG WINAPI KeReleaseMutex( PRKMUTEX mutex, BOOLEAN wait )
static
void
CALLBACK
ke_timer_complete_proc
(
PTP_CALLBACK_INSTANCE
instance
,
void
*
timer_
,
PTP_TIMER
tp_timer
)
{
KTIMER
*
timer
=
timer_
;
KDPC
*
dpc
=
timer
->
Dpc
;
TRACE
(
"instance %p, timer %p, tp_timer %p.
\n
"
,
instance
,
timer
,
tp_timer
);
if
(
dpc
&&
dpc
->
DeferredRoutine
)
{
TRACE
(
"Calling dpc->DeferredRoutine %p, dpc->DeferredContext %p.
\n
"
,
dpc
->
DeferredRoutine
,
dpc
->
DeferredContext
);
dpc
->
DeferredRoutine
(
dpc
,
dpc
->
DeferredContext
,
dpc
->
SystemArgument1
,
dpc
->
SystemArgument2
);
}
EnterCriticalSection
(
&
sync_cs
);
timer
->
Header
.
SignalState
=
TRUE
;
if
(
timer
->
Header
.
WaitListHead
.
Blink
)
...
...
@@ -435,12 +441,6 @@ BOOLEAN WINAPI KeSetTimerEx( KTIMER *timer, LARGE_INTEGER duetime, LONG period,
TRACE
(
"timer %p, duetime %s, period %d, dpc %p.
\n
"
,
timer
,
wine_dbgstr_longlong
(
duetime
.
QuadPart
),
period
,
dpc
);
if
(
dpc
)
{
FIXME
(
"Unhandled DPC %p.
\n
"
,
dpc
);
return
FALSE
;
}
EnterCriticalSection
(
&
sync_cs
);
if
((
ret
=
timer
->
Header
.
Inserted
))
...
...
@@ -456,6 +456,7 @@ BOOLEAN WINAPI KeSetTimerEx( KTIMER *timer, LARGE_INTEGER duetime, LONG period,
timer
->
DueTime
.
QuadPart
=
duetime
.
QuadPart
;
timer
->
Period
=
period
;
timer
->
Dpc
=
dpc
;
SetThreadpoolTimer
((
TP_TIMER
*
)
timer
->
TimerListEntry
.
Blink
,
(
FILETIME
*
)
&
duetime
,
period
,
0
);
LeaveCriticalSection
(
&
sync_cs
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment