Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
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-cw
Commits
45b65d0f
Commit
45b65d0f
authored
Dec 16, 2010
by
Piotr Caban
Committed by
Alexandre Julliard
Dec 16, 2010
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
kernel32: Add support for completion routine invocation in ReadDirectoryChangesW.
parent
f5d96d17
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
11 additions
and
3 deletions
+11
-3
change.c
dlls/kernel32/change.c
+11
-3
No files found.
dlls/kernel32/change.c
View file @
45b65d0f
...
...
@@ -134,6 +134,12 @@ BOOL WINAPI FindCloseChangeNotification( HANDLE handle )
return
CloseHandle
(
handle
);
}
static
void
WINAPI
invoke_completion
(
LPVOID
ctx
,
IO_STATUS_BLOCK
*
ios
,
ULONG
res
)
{
LPOVERLAPPED_COMPLETION_ROUTINE
completion
=
ctx
;
completion
(
ios
->
u
.
Status
,
ios
->
Information
,
(
LPOVERLAPPED
)
ios
);
}
/****************************************************************************
* ReadDirectoryChangesW (KERNEL32.@)
*
...
...
@@ -169,14 +175,16 @@ BOOL WINAPI ReadDirectoryChangesW( HANDLE handle, LPVOID buffer, DWORD len, BOOL
else
{
pov
=
overlapped
;
if
(
!
completion
&&
((
ULONG_PTR
)
overlapped
->
hEvent
&
1
)
==
0
)
cvalue
=
overlapped
;
if
(
completion
)
cvalue
=
completion
;
else
if
(((
ULONG_PTR
)
overlapped
->
hEvent
&
1
)
==
0
)
cvalue
=
overlapped
;
}
ios
=
(
PIO_STATUS_BLOCK
)
pov
;
ios
->
u
.
Status
=
STATUS_PENDING
;
status
=
NtNotifyChangeDirectoryFile
(
handle
,
pov
->
hEvent
,
NULL
,
cvalue
,
ios
,
buffer
,
len
,
filter
,
subtree
);
status
=
NtNotifyChangeDirectoryFile
(
handle
,
completion
&&
overlapped
?
NULL
:
pov
->
hEvent
,
completion
&&
overlapped
?
invoke_completion
:
NULL
,
cvalue
,
ios
,
buffer
,
len
,
filter
,
subtree
);
if
(
status
==
STATUS_PENDING
)
{
if
(
overlapped
)
...
...
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