Needed for IE11.
Signed-off-by: Mohamad Al-Jaf mohamadaljaf@gmail.com --- Documentation written in my own words. --- dlls/kernel32/kernel32.spec | 2 +- dlls/kernel32/sync.c | 35 +++++++++++++++++++++++++++++++++++ include/namespaceapi.h | 2 ++ 3 files changed, 38 insertions(+), 1 deletion(-)
diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec index 7db82db375d..e040fedab08 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 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/kernel32/sync.c b/dlls/kernel32/sync.c index 219800a46e5..27a1ab86d8a 100644 --- a/dlls/kernel32/sync.c +++ b/dlls/kernel32/sync.c @@ -190,6 +190,41 @@ HANDLE WINAPI DECLSPEC_HOTPATCH OpenMutexA( DWORD access, BOOL inherit, LPCSTR n }
+/****************************************************************************** + * CreateBoundaryDescriptorA (KERNEL32.@) + * + * Creates and returns a handle to a boundary descriptor. + * + * PARAMS + * name [I] Boundary descriptor name + * flags [I] Flags for the descriptor + * + * RETURNS + * Success: Handle to boundary descriptor + * Failure: NULL + */ +HANDLE WINAPI CreateBoundaryDescriptorA( LPCSTR name, ULONG flags ) +{ + DWORD len; + HANDLE ret; + LPWSTR str = NULL; + + FIXME("%s %u - semi-stub\n", debugstr_a(name), flags); + + if(name) + { + len = MultiByteToWideChar( CP_ACP, 0, name, -1, NULL, 0 ); + str = HeapAlloc( GetProcessHeap(), 0, len*sizeof(WCHAR) ); + MultiByteToWideChar( CP_ACP, 0, name, -1, str, len ); + } + + ret = CreateBoundaryDescriptorW( str, flags ); + + HeapFree( GetProcessHeap(), 0, str ); + return ret; +} + +
/* 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);