Added patch to implement stub for ProcessQuotaLimits info class.

This commit is contained in:
Sebastian Lackner 2015-10-21 03:17:52 +02:00
parent d7013c255f
commit 8e8654d76e
5 changed files with 81 additions and 1 deletions

View File

@ -34,8 +34,9 @@ Wine. All those differences are also documented on the
Included bug fixes and improvements
-----------------------------------
**Bug fixes and features included in the next upcoming release [1]:**
**Bug fixes and features included in the next upcoming release [2]:**
* Implement stub for ProcessQuotaLimits info class
* Use wrapper function for consolidation callback during unwinding. ([Wine Bug #39449](https://bugs.winehq.org/show_bug.cgi?id=39449))

1
debian/changelog vendored
View File

@ -1,6 +1,7 @@
wine-staging (1.7.54) UNRELEASED; urgency=low
* Added patch to use wrapper function for consolidation callback during
unwinding.
* Added patch to implement stub for ProcessQuotaLimits info class.
* Removed patch to implement kernel32.GetPhysicallyInstalledSystemMemory
(accepted upstream).
* Partially removed patches for ws2_32 TransmitFile (accepted upstream).

View File

@ -0,0 +1,61 @@
From c7ed817b9c0b4edf7969ec05f1f3e081a04155d9 Mon Sep 17 00:00:00 2001
From: Qian Hong <qhong@codeweavers.com>
Date: Wed, 21 Oct 2015 06:23:22 +0800
Subject: ntdll: Add fake data implementation for ProcessQuotaLimits class.
---
dlls/ntdll/process.c | 31 ++++++++++++++++++++++++++++++-
1 file changed, 30 insertions(+), 1 deletion(-)
diff --git a/dlls/ntdll/process.c b/dlls/ntdll/process.c
index 37c08f1..088834e 100644
--- a/dlls/ntdll/process.c
+++ b/dlls/ntdll/process.c
@@ -134,7 +134,6 @@ NTSTATUS WINAPI SYSCALL(NtQueryInformationProcess)(
switch (ProcessInformationClass)
{
- UNIMPLEMENTED_INFO_CLASS(ProcessQuotaLimits);
UNIMPLEMENTED_INFO_CLASS(ProcessBasePriority);
UNIMPLEMENTED_INFO_CLASS(ProcessRaisePriority);
UNIMPLEMENTED_INFO_CLASS(ProcessExceptionPort);
@@ -199,6 +198,36 @@ NTSTATUS WINAPI SYSCALL(NtQueryInformationProcess)(
}
}
break;
+ case ProcessQuotaLimits:
+ {
+ QUOTA_LIMITS pqli;
+
+ if (ProcessInformationLength >= sizeof(QUOTA_LIMITS))
+ {
+ if (!ProcessInformation)
+ ret = STATUS_ACCESS_VIOLATION;
+ else if (!ProcessHandle)
+ ret = STATUS_INVALID_HANDLE;
+ else
+ {
+ /* FIXME : real data */
+ memset(&pqli, 0, sizeof(QUOTA_LIMITS));
+
+ memcpy(ProcessInformation, &pqli, sizeof(QUOTA_LIMITS));
+
+ len = sizeof(QUOTA_LIMITS);
+ }
+
+ if (ProcessInformationLength > sizeof(QUOTA_LIMITS))
+ ret = STATUS_INFO_LENGTH_MISMATCH;
+ }
+ else
+ {
+ len = sizeof(QUOTA_LIMITS);
+ ret = STATUS_INFO_LENGTH_MISMATCH;
+ }
+ }
+ break;
case ProcessIoCounters:
{
IO_COUNTERS pii;
--
2.6.1

View File

@ -0,0 +1 @@
Fixes: Implement stub for ProcessQuotaLimits info class

View File

@ -201,6 +201,7 @@ patch_enable_all ()
enable_ntdll_NtQuerySection="$1"
enable_ntdll_NtSetLdtEntries="$1"
enable_ntdll_Pipe_SpecialCharacters="$1"
enable_ntdll_ProcessQuotaLimits="$1"
enable_ntdll_RtlIpStringToAddress="$1"
enable_ntdll_Stack_Fault="$1"
enable_ntdll_Status_Mapping="$1"
@ -699,6 +700,9 @@ patch_enable ()
ntdll-Pipe_SpecialCharacters)
enable_ntdll_Pipe_SpecialCharacters="$2"
;;
ntdll-ProcessQuotaLimits)
enable_ntdll_ProcessQuotaLimits="$2"
;;
ntdll-RtlIpStringToAddress)
enable_ntdll_RtlIpStringToAddress="$2"
;;
@ -4264,6 +4268,18 @@ if test "$enable_ntdll_Pipe_SpecialCharacters" -eq 1; then
) >> "$patchlist"
fi
# Patchset ntdll-ProcessQuotaLimits
# |
# | Modified files:
# | * dlls/ntdll/process.c
# |
if test "$enable_ntdll_ProcessQuotaLimits" -eq 1; then
patch_apply ntdll-ProcessQuotaLimits/0001-ntdll-Add-fake-data-implementation-for-ProcessQuotaL.patch
(
echo '+ { "Qian Hong", "ntdll: Add fake data implementation for ProcessQuotaLimits class.", 1 },';
) >> "$patchlist"
fi
# Patchset ntdll-RtlIpStringToAddress
# |
# | Modified files: