Rebase against bc282905d9491b9f9fe4ae4b69a8ccdf99c5aaa8.

This commit is contained in:
Zebediah Figura
2020-06-23 18:07:36 -05:00
parent 8402c95961
commit 7766c17912
36 changed files with 524 additions and 1918 deletions

View File

@@ -1,4 +1,4 @@
From 7421907b2ecc21493308aa31478b6828f4341e29 Mon Sep 17 00:00:00 2001
From ab4c2acb67c445abb2b6db274f6e94bd5f3877ba Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Fri, 22 May 2020 16:37:37 +1000
Subject: [PATCH] ntdll: NtQuerySystemInformation support
@@ -7,47 +7,48 @@ Subject: [PATCH] ntdll: NtQuerySystemInformation support
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49192
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
---
dlls/ntdll/nt.c | 21 +++++++++++++++++++++
include/winternl.h | 22 ++++++++++++++++++++++
2 files changed, 43 insertions(+)
dlls/ntdll/unix/system.c | 22 ++++++++++++++++++++++
include/winternl.h | 22 ++++++++++++++++++++++
2 files changed, 44 insertions(+)
diff --git a/dlls/ntdll/nt.c b/dlls/ntdll/nt.c
index 1d31f80a5f55..99b0d8dc0921 100644
--- a/dlls/ntdll/nt.c
+++ b/dlls/ntdll/nt.c
@@ -3179,6 +3179,27 @@ NTSTATUS WINAPI NtQuerySystemInformation(
memset(SystemInformation, 0, Length);
diff --git a/dlls/ntdll/unix/system.c b/dlls/ntdll/unix/system.c
index c5b2018bf30..6a0f4778790 100644
--- a/dlls/ntdll/unix/system.c
+++ b/dlls/ntdll/unix/system.c
@@ -2151,6 +2151,28 @@ NTSTATUS WINAPI NtQuerySystemInformation( SYSTEM_INFORMATION_CLASS class,
ret = STATUS_SUCCESS;
break;
+ case SystemCodeIntegrityInformation:
+ {
+ SYSTEM_CODEINTEGRITY_INFORMATION *info = (SYSTEM_CODEINTEGRITY_INFORMATION*)SystemInformation;
+ SYSTEM_CODEINTEGRITY_INFORMATION *scii = info;
+
+ FIXME("SystemCodeIntegrityInformation, len %u, buffer %p, stub!\n", Length, info);
+ FIXME("SystemCodeIntegrityInformation, size %u, info %p, stub!\n", size, info);
+
+ if (Length < sizeof(SYSTEM_CODEINTEGRITY_INFORMATION))
+ if (size < sizeof(SYSTEM_CODEINTEGRITY_INFORMATION))
+ {
+ ret = STATUS_INFO_LENGTH_MISMATCH;
+ break;
+ }
+
+ if (!SystemInformation)
+ if (!info)
+ {
+ ret = STATUS_ACCESS_VIOLATION;
+ break;
+ }
+
+ info->CodeIntegrityOptions = CODEINTEGRITY_OPTION_ENABLED;
+ scii->CodeIntegrityOptions = CODEINTEGRITY_OPTION_ENABLED;
+ break;
+ }
+
default:
FIXME("(0x%08x,%p,0x%08x,%p) stub\n",
SystemInformationClass,SystemInformation,Length,ResultLength);
FIXME( "(0x%08x,%p,0x%08x,%p) stub\n", class, info, size, ret_size );
diff --git a/include/winternl.h b/include/winternl.h
index 640dbe5db354..1ae249c59404 100644
index 3ff15f28c15..bcc20b2d99e 100644
--- a/include/winternl.h
+++ b/include/winternl.h
@@ -972,10 +972,32 @@ typedef enum _SYSTEM_INFORMATION_CLASS {
@@ -986,10 +986,32 @@ typedef enum _SYSTEM_INFORMATION_CLASS {
SystemSuperfetchInformation = 79,
SystemMemoryListInformation = 80,
SystemFileCacheInformationEx = 81,
@@ -81,5 +82,5 @@ index 640dbe5db354..1ae249c59404 100644
ThreadBasicInformation = 0,
ThreadTimes,
--
2.26.2
2.27.0