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
71beac32
Commit
71beac32
authored
Dec 02, 2010
by
Hans Leidekker
Committed by
Alexandre Julliard
Dec 02, 2010
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ntdll: Don't call NtClose directly in delete_view.
parent
06505c9a
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
20 additions
and
12 deletions
+20
-12
ntdll_misc.h
dlls/ntdll/ntdll_misc.h
+2
-0
om.c
dlls/ntdll/om.c
+17
-11
virtual.c
dlls/ntdll/virtual.c
+1
-1
No files found.
dlls/ntdll/ntdll_misc.h
View file @
71beac32
...
@@ -39,6 +39,8 @@ struct drive_info
...
@@ -39,6 +39,8 @@ struct drive_info
ino_t
ino
;
ino_t
ino
;
};
};
extern
NTSTATUS
close_handle
(
HANDLE
);
/* exceptions */
/* exceptions */
extern
void
wait_suspend
(
CONTEXT
*
context
);
extern
void
wait_suspend
(
CONTEXT
*
context
);
extern
NTSTATUS
send_debug_event
(
EXCEPTION_RECORD
*
rec
,
int
first_chance
,
CONTEXT
*
context
);
extern
NTSTATUS
send_debug_event
(
EXCEPTION_RECORD
*
rec
,
int
first_chance
,
CONTEXT
*
context
);
...
...
dlls/ntdll/om.c
View file @
71beac32
...
@@ -348,6 +348,22 @@ NTSTATUS WINAPI NtDuplicateObject( HANDLE source_process, HANDLE source,
...
@@ -348,6 +348,22 @@ NTSTATUS WINAPI NtDuplicateObject( HANDLE source_process, HANDLE source,
return
ret
;
return
ret
;
}
}
/* Everquest 2 / Pirates of the Burning Sea hooks NtClose, so we need a wrapper */
NTSTATUS
close_handle
(
HANDLE
handle
)
{
NTSTATUS
ret
;
int
fd
=
server_remove_fd_from_cache
(
handle
);
SERVER_START_REQ
(
close_handle
)
{
req
->
handle
=
wine_server_obj_handle
(
handle
);
ret
=
wine_server_call
(
req
);
}
SERVER_END_REQ
;
if
(
fd
!=
-
1
)
close
(
fd
);
return
ret
;
}
/**************************************************************************
/**************************************************************************
* NtClose [NTDLL.@]
* NtClose [NTDLL.@]
*
*
...
@@ -362,17 +378,7 @@ NTSTATUS WINAPI NtDuplicateObject( HANDLE source_process, HANDLE source,
...
@@ -362,17 +378,7 @@ NTSTATUS WINAPI NtDuplicateObject( HANDLE source_process, HANDLE source,
*/
*/
NTSTATUS
WINAPI
NtClose
(
HANDLE
Handle
)
NTSTATUS
WINAPI
NtClose
(
HANDLE
Handle
)
{
{
NTSTATUS
ret
;
return
close_handle
(
Handle
);
int
fd
=
server_remove_fd_from_cache
(
Handle
);
SERVER_START_REQ
(
close_handle
)
{
req
->
handle
=
wine_server_obj_handle
(
Handle
);
ret
=
wine_server_call
(
req
);
}
SERVER_END_REQ
;
if
(
fd
!=
-
1
)
close
(
fd
);
return
ret
;
}
}
/*
/*
...
...
dlls/ntdll/virtual.c
View file @
71beac32
...
@@ -444,7 +444,7 @@ static void delete_view( struct file_view *view ) /* [in] View */
...
@@ -444,7 +444,7 @@ static void delete_view( struct file_view *view ) /* [in] View */
{
{
if
(
!
(
view
->
protect
&
VPROT_SYSTEM
))
unmap_area
(
view
->
base
,
view
->
size
);
if
(
!
(
view
->
protect
&
VPROT_SYSTEM
))
unmap_area
(
view
->
base
,
view
->
size
);
list_remove
(
&
view
->
entry
);
list_remove
(
&
view
->
entry
);
if
(
view
->
mapping
)
NtClos
e
(
view
->
mapping
);
if
(
view
->
mapping
)
close_handl
e
(
view
->
mapping
);
RtlFreeHeap
(
virtual_heap
,
0
,
view
);
RtlFreeHeap
(
virtual_heap
,
0
,
view
);
}
}
...
...
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