Added patch to implement better stub function for NtQueryInformationJobObject.

This commit is contained in:
Sebastian Lackner 2015-03-12 22:28:18 +01:00
parent 8c17307f95
commit 5b7dc79ea0
5 changed files with 61 additions and 1 deletions

View File

@ -38,11 +38,12 @@ Wine. All those differences are also documented on the
Included bug fixes and improvements
===================================
**Bugfixes and features included in the next upcoming release [3]:**
**Bugfixes and features included in the next upcoming release [4]:**
* Fix caps lock state issues with multiple processes ([Wine Bug #35907](https://bugs.winehq.org/show_bug.cgi?id=35907))
* Fix multithreading issues with fullscreen clipping ([Wine Bug #38087](https://bugs.winehq.org/show_bug.cgi?id=38087))
* Implement locking and synchronization of key states ([Wine Bug #31899](https://bugs.winehq.org/show_bug.cgi?id=31899))
* Python PIP needs better NtQueryInformationJobObject stub
**Bugs fixed in Wine Staging 1.7.38 [190]:**

1
debian/changelog vendored
View File

@ -3,6 +3,7 @@ wine-staging (1.7.39) UNRELEASED; urgency=low
* Added patch to fix multithreading issues with fullscreen clipping.
* Added patch with tests for VerQueryValueA (by Mark Jansen).
* Added patch to implement proper locking of keystate and synchronization with desktop thread.
* Added patch to implement better stub function for NtQueryInformationJobObject.
* Removed patch to avoid hardcoded values for sizeof(GUID) (accepted upstream).
-- Sebastian Lackner <sebastian@fds-team.de> Mon, 09 Mar 2015 16:52:35 +0100

View File

@ -3512,6 +3512,7 @@ if test "$enable_server_JobObjects" -eq 1; then
patch_apply server-JobObjects/0015-server-Support-NULL-job-handles-in-IsProcessInJob.patch
patch_apply server-JobObjects/0016-kernel32-tests-Add-tests-for-waiting-on-an-job-objec.patch
patch_apply server-JobObjects/0017-server-Implement-waiting-for-job-objects.patch
patch_apply server-JobObjects/0018-ntdll-Implement-NtQueryInformationJobObject-stub-fun.patch
(
echo '+ { "Sebastian Lackner", "kernel32/tests: Allow multiple subprocess commands in process tests.", 1 },';
echo '+ { "Andrew Cook", "kernel32/tests: Add tests for IsProcessInJob.", 1 },';
@ -3530,6 +3531,7 @@ if test "$enable_server_JobObjects" -eq 1; then
echo '+ { "Andrew Cook", "server: Support NULL job handles in IsProcessInJob.", 1 },';
echo '+ { "Sebastian Lackner", "kernel32/tests: Add tests for waiting on an job object.", 1 },';
echo '+ { "Sebastian Lackner", "server: Implement waiting for job objects.", 1 },';
echo '+ { "Sebastian Lackner", "ntdll: Implement NtQueryInformationJobObject stub function.", 1 },';
) >> "$patchlist"
fi

View File

@ -0,0 +1,55 @@
From 5aaa9bb4d39cfd92b4c913aa961854657dbf944d Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Thu, 12 Mar 2015 22:19:50 +0100
Subject: ntdll: Implement NtQueryInformationJobObject stub function.
---
dlls/ntdll/sync.c | 24 +++++++++++++++++++++++-
1 file changed, 23 insertions(+), 1 deletion(-)
diff --git a/dlls/ntdll/sync.c b/dlls/ntdll/sync.c
index ef4a4cb..6f09b83 100644
--- a/dlls/ntdll/sync.c
+++ b/dlls/ntdll/sync.c
@@ -638,15 +638,37 @@ NTSTATUS WINAPI NtTerminateJobObject( HANDLE handle, NTSTATUS status )
NTSTATUS WINAPI NtQueryInformationJobObject( HANDLE handle, JOBOBJECTINFOCLASS class, PVOID info,
ULONG len, PULONG ret_len )
{
+ JOBOBJECT_EXTENDED_LIMIT_INFORMATION *extended_limit;
+ JOBOBJECT_BASIC_LIMIT_INFORMATION *basic_limit;
+
TRACE( "%p %u %p %u %p\n", handle, class, info, len, ret_len );
if (class >= MaxJobObjectInfoClass)
return STATUS_INVALID_PARAMETER;
+ FIXME( "stub: %p %u %p %u %p\n", handle, class, info, len, ret_len );
+
switch (class)
{
+ case JobObjectExtendedLimitInformation:
+ if (len < sizeof(JOBOBJECT_EXTENDED_LIMIT_INFORMATION))
+ return STATUS_INVALID_PARAMETER;
+
+ extended_limit = (JOBOBJECT_EXTENDED_LIMIT_INFORMATION *)info;
+ memset(extended_limit, 0, sizeof(*extended_limit));
+ if (ret_len) *ret_len = sizeof(*extended_limit);
+ return STATUS_SUCCESS;
+
+ case JobObjectBasicLimitInformation:
+ if (len < sizeof(JOBOBJECT_BASIC_LIMIT_INFORMATION))
+ return STATUS_INVALID_PARAMETER;
+
+ basic_limit = (JOBOBJECT_BASIC_LIMIT_INFORMATION *)info;
+ memset(basic_limit, 0, sizeof(*basic_limit));
+ if (ret_len) *ret_len = sizeof(*basic_limit);
+ return STATUS_SUCCESS;
+
default:
- FIXME( "stub: %p %u %p %u %p\n", handle, class, info, len, ret_len );
return STATUS_NOT_IMPLEMENTED;
}
}
--
2.3.1

View File

@ -1,5 +1,6 @@
Fixes: [33723] EA Origin needs support for job objects
Fixes: Properly track handle count of wineserver objects
Fixes: Python PIP needs better NtQueryInformationJobObject stub
Depends: kernel32-Console_Handles
Depends: server-OpenProcess
Depends: server-Misc_ACL