[PATCH] kernelbase: Add CreateBoundaryDescriptorA stub.
Mohamad Al-Jaf
mohamadaljaf at gmail.com
Tue Feb 15 23:13:35 CST 2022
Needed for IE11.
---
I didn't sign this because I'm looking for feedback.
The function CreateBoundaryDescriptorA has a spec entry in kernel32 but not
kernelbase. However, doing grep -rnw . -e 'CreateBoundaryDescriptorA'
reveals that both kernel32 and kernelbase match. Why is this?
Still, I don't see a security file in kernel32. I suppose I could add
it to kernel_main.c. Would this be okay?
---
dlls/kernel32/kernel32.spec | 2 +-
dlls/kernelbase/kernelbase.spec | 1 +
dlls/kernelbase/security.c | 9 +++++++++
include/namespaceapi.h | 2 ++
4 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec
index 7db82db375d..575f034eed0 100644
--- a/dlls/kernel32/kernel32.spec
+++ b/dlls/kernel32/kernel32.spec
@@ -266,7 +266,7 @@
@ stdcall CopyLZFile(long long) LZCopy
@ stdcall CreateActCtxA(ptr)
@ stdcall -import CreateActCtxW(ptr)
-# @ stub CreateBoundaryDescriptorA
+@ stdcall -import CreateBoundaryDescriptorA(str long)
@ stdcall -import CreateBoundaryDescriptorW(wstr long)
@ stdcall -import CreateConsoleScreenBuffer(long long ptr long ptr)
@ stdcall -import CreateDirectoryA(str ptr)
diff --git a/dlls/kernelbase/kernelbase.spec b/dlls/kernelbase/kernelbase.spec
index e06ecde17d1..60c3b74d331 100644
--- a/dlls/kernelbase/kernelbase.spec
+++ b/dlls/kernelbase/kernelbase.spec
@@ -174,6 +174,7 @@
# @ stub CouldMultiUserAppsBehaviorBePossibleForPackage
@ stdcall CreateActCtxW(ptr)
# @ stub CreateAppContainerToken
+@ stdcall CreateBoundaryDescriptorA(str long)
@ stdcall CreateBoundaryDescriptorW(wstr long)
@ stdcall CreateConsoleScreenBuffer(long long ptr long ptr)
@ stdcall CreateDirectoryA(str ptr)
diff --git a/dlls/kernelbase/security.c b/dlls/kernelbase/security.c
index 3c1a3d7f077..88fdab4699e 100644
--- a/dlls/kernelbase/security.c
+++ b/dlls/kernelbase/security.c
@@ -922,6 +922,15 @@ BOOL WINAPI ConvertToAutoInheritPrivateObjectSecurity( PSECURITY_DESCRIPTOR pare
return set_ntstatus( RtlConvertToAutoInheritSecurityObject( parent, current, descr, type, is_dir, mapping ));
}
+/******************************************************************************
+ * CreateBoundaryDescriptorA (kernelbase.@)
+ */
+HANDLE WINAPI CreateBoundaryDescriptorA( LPCSTR name, ULONG flags )
+{
+ FIXME("%s %lu - stub\n", debugstr_a(name), flags);
+ return NULL;
+}
+
/******************************************************************************
* CreateBoundaryDescriptorW (kernelbase.@)
*/
diff --git a/include/namespaceapi.h b/include/namespaceapi.h
index 9446806f82e..f219a2a7488 100644
--- a/include/namespaceapi.h
+++ b/include/namespaceapi.h
@@ -27,7 +27,9 @@ extern "C" {
WINBASEAPI BOOL WINAPI AddSIDToBoundaryDescriptor(HANDLE*,PSID);
WINBASEAPI BOOLEAN WINAPI ClosePrivateNamespace(HANDLE,ULONG);
+WINBASEAPI HANDLE WINAPI CreateBoundaryDescriptorA(LPCSTR,ULONG);
WINBASEAPI HANDLE WINAPI CreateBoundaryDescriptorW(LPCWSTR,ULONG);
+#define CreateBoundaryDescriptor WINELIB_NAME_AW(CreateBoundaryDescriptor)
WINBASEAPI HANDLE WINAPI CreatePrivateNamespaceW(LPSECURITY_ATTRIBUTES,LPVOID,LPCWSTR);
WINBASEAPI void WINAPI DeleteBoundaryDescriptor(HANDLE);
WINBASEAPI HANDLE WINAPI OpenPrivateNamespaceW(LPVOID,LPCWSTR);
--
2.35.1
More information about the wine-devel
mailing list