Hi Vijay,
The main reason I haven't pushed this commit is that it should have some tests.
I was thinking of using ApiSetQueryApiSetPresence to test the ApiSet change.
Regards
Alistair.
On 2/5/19 11:01 am, Vijay Kiran Kamuju wrote:
From: Michael Müller michael@fds-team.de
Wine-Bug: https://nam02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugs.wineh... From: Michael Müller michael@fds-team.de Signed-off-by: Vijay Kiran Kamuju infyquest@gmail.com
dlls/ntdll/thread.c | 2 ++ include/Makefile.in | 1 + include/apiset.h | 37 +++++++++++++++++++++++++++++++++++++ include/winternl.h | 3 ++- 4 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 include/apiset.h
diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c index be4621819bc..d687043f51b 100644 --- a/dlls/ntdll/thread.c +++ b/dlls/ntdll/thread.c @@ -70,6 +70,7 @@ static PEB_LDR_DATA ldr; static RTL_BITMAP tls_bitmap; static RTL_BITMAP tls_expansion_bitmap; static RTL_BITMAP fls_bitmap; +static API_SET_NAMESPACE_ARRAY apiset_map; static int nb_threads = 1;
static RTL_CRITICAL_SECTION peb_lock; @@ -189,6 +190,7 @@ void thread_init(void) peb = addr;
peb->FastPebLock = &peb_lock;
- peb->ApiSetMap = &apiset_map; peb->TlsBitmap = &tls_bitmap; peb->TlsExpansionBitmap = &tls_expansion_bitmap; peb->FlsBitmap = &fls_bitmap;
diff --git a/include/Makefile.in b/include/Makefile.in index 6c8d39ab76b..6ec4c51f18e 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -14,6 +14,7 @@ SOURCES = \ amsi.idl \ amstream.idl \ amvideo.idl \
- apiset.h \ appcompatapi.h \ appmgmt.h \ appmodel.h \
diff --git a/include/apiset.h b/include/apiset.h new file mode 100644 index 00000000000..6801cd5f509 --- /dev/null +++ b/include/apiset.h @@ -0,0 +1,37 @@ +/*
- Copyright (C) 2017 Michael Müller
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
- */
+#ifndef _API_SET_H_ +#define _API_SET_H_
+#include <windef.h>
+typedef struct _API_SET_NAMESPACE_ENTRY +{
- ULONG NameOffset;
- ULONG NameLength;
- ULONG DataOffset;
+} API_SET_NAMESPACE_ENTRY, *PAPI_SET_NAMESPACE_ENTRY;
+typedef struct _API_SET_NAMESPACE_ARRAY +{
- ULONG Version;
- ULONG Count;
- API_SET_NAMESPACE_ENTRY Array[1];
+} API_SET_NAMESPACE_ARRAY, *PAPI_SET_NAMESPACE_ARRAY;
+#endif diff --git a/include/winternl.h b/include/winternl.h index 2b3fb947b9b..1832f49994c 100644 --- a/include/winternl.h +++ b/include/winternl.h @@ -23,6 +23,7 @@
#include <ntdef.h> #include <windef.h> +#include <apiset.h>
#ifdef __cplusplus extern "C" { @@ -286,7 +287,7 @@ typedef struct _PEB ULONG EnvironmentUpdateCount; /* 028/050 */ PVOID KernelCallbackTable; /* 02c/058 */ ULONG Reserved[2]; /* 030/060 */
- PVOID /*PPEB_FREE_BLOCK*/ FreeList; /* 038/068 */
- PAPI_SET_NAMESPACE_ARRAY ApiSetMap; /* 038/068 */ ULONG TlsExpansionCounter; /* 03c/070 */ PRTL_BITMAP TlsBitmap; /* 040/078 */ ULONG TlsBitmapBits[2]; /* 044/080 */