mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2024-11-21 16:46:54 -08:00
Updated ntoskrnl-safedisc-2 patchset
Fix kernel32 pipe tests and crash in GTAV launcher.
This commit is contained in:
parent
108662b1cc
commit
c8e3795e69
@ -1,56 +0,0 @@
|
||||
From d60f2de8b419618674457e5539b081421c110f1e Mon Sep 17 00:00:00 2001
|
||||
From: Chip Davis <cdavis@codeweavers.com>
|
||||
Date: Sat, 14 Dec 2019 01:58:26 -0600
|
||||
Subject: [PATCH 4/4] server: Return the driver's 'Information' from ioctl.
|
||||
|
||||
This actually shouldn't matter for driver modules, since those always
|
||||
call out to another process, but it seems more correct.
|
||||
|
||||
Signed-off-by: Chip Davis <cdavis@codeweavers.com>
|
||||
---
|
||||
dlls/ntdll/file.c | 2 +-
|
||||
server/fd.c | 2 +-
|
||||
server/protocol.def | 1 +
|
||||
3 files changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/ntdll/file.c b/dlls/ntdll/file.c
|
||||
index 26acc066cd..087a92cda2 100644
|
||||
--- a/dlls/ntdll/file.c
|
||||
+++ b/dlls/ntdll/file.c
|
||||
@@ -1536,7 +1536,7 @@ static NTSTATUS server_ioctl_file( HANDLE handle, HANDLE event,
|
||||
if (wait_handle && status != STATUS_PENDING)
|
||||
{
|
||||
io->u.Status = status;
|
||||
- io->Information = wine_server_reply_size( reply );
|
||||
+ io->Information = reply->size;
|
||||
}
|
||||
}
|
||||
SERVER_END_REQ;
|
||||
diff --git a/server/fd.c b/server/fd.c
|
||||
index 5d80e218b9..dbfb65abd0 100644
|
||||
--- a/server/fd.c
|
||||
+++ b/server/fd.c
|
||||
@@ -2579,7 +2579,7 @@ DECL_HANDLER(ioctl)
|
||||
|
||||
if ((async = create_request_async( fd, fd->comp_flags, &req->async )))
|
||||
{
|
||||
- reply->wait = async_handoff( async, fd->fd_ops->ioctl( fd, req->code, async ), NULL, 0 );
|
||||
+ reply->wait = async_handoff( async, fd->fd_ops->ioctl( fd, req->code, async ), &reply->size, 0 );
|
||||
reply->options = fd->options;
|
||||
release_object( async );
|
||||
}
|
||||
diff --git a/server/protocol.def b/server/protocol.def
|
||||
index 6c44b2b43f..f1f694bf96 100644
|
||||
--- a/server/protocol.def
|
||||
+++ b/server/protocol.def
|
||||
@@ -2484,6 +2484,7 @@ enum message_type
|
||||
@REPLY
|
||||
obj_handle_t wait; /* handle to wait on for blocking ioctl */
|
||||
unsigned int options; /* device open options */
|
||||
+ data_size_t size; /* result size */
|
||||
VARARG(out_data,bytes); /* ioctl output data */
|
||||
@END
|
||||
|
||||
--
|
||||
2.17.1
|
||||
|
@ -5300,19 +5300,16 @@ fi
|
||||
# | * [#30155] Improve support for SafeDisc v2.05.030
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/ntdll/file.c, dlls/ntoskrnl.exe/ntoskrnl.c, dlls/ntoskrnl.exe/tests/ntoskrnl.c, server/device.c, server/fd.c,
|
||||
# | server/protocol.def
|
||||
# | * dlls/ntoskrnl.exe/ntoskrnl.c, dlls/ntoskrnl.exe/tests/ntoskrnl.c, server/device.c
|
||||
# |
|
||||
if test "$enable_ntoskrnl_safedisc_2" -eq 1; then
|
||||
patch_apply ntoskrnl-safedisc-2/0001-ntoskrnl.exe-Return-driver-dispatch-result-to-caller.patch
|
||||
patch_apply ntoskrnl-safedisc-2/0002-ntoskrnl.exe-Always-copy-the-buffer-for-non-METHOD_B.patch
|
||||
patch_apply ntoskrnl-safedisc-2/0003-server-Delay-completing-a-synchronous-IRP.patch
|
||||
patch_apply ntoskrnl-safedisc-2/0004-server-Return-the-driver-s-Information-from-ioctl.patch
|
||||
(
|
||||
printf '%s\n' '+ { "Chip Davis", "ntoskrnl.exe: Return driver dispatch result to caller.", 1 },';
|
||||
printf '%s\n' '+ { "Chip Davis", "ntoskrnl.exe: Always copy the buffer for non-METHOD_BUFFERED ioctls.", 1 },';
|
||||
printf '%s\n' '+ { "Chip Davis", "server: Delay completing a synchronous IRP.", 1 },';
|
||||
printf '%s\n' '+ { "Chip Davis", "server: Return the driver'\''s '\''Information'\'' from ioctl.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user