Module: wine Branch: master Commit: 1692ccc56dd597a8f07492da352a258847a77388 URL: http://source.winehq.org/git/wine.git/?a=commit;h=1692ccc56dd597a8f07492da35...
Author: Nikolay Sivov nsivov@codeweavers.com Date: Wed Jul 31 09:09:27 2013 +0400
ntdll: Added RtlFindActivationContextSectionGuid() stub.
---
dlls/kernel32/actctx.c | 13 +++++++++---- dlls/ntdll/actctx.c | 31 +++++++++++++++++++++++++++++++ dlls/ntdll/ntdll.spec | 2 +- include/winternl.h | 1 + 4 files changed, 42 insertions(+), 5 deletions(-)
diff --git a/dlls/kernel32/actctx.c b/dlls/kernel32/actctx.c index abd6459..86752b3 100644 --- a/dlls/kernel32/actctx.c +++ b/dlls/kernel32/actctx.c @@ -272,10 +272,15 @@ BOOL WINAPI FindActCtxSectionGuid(DWORD dwFlags, const GUID* lpExtGuid, ULONG ulId, const GUID* lpSearchGuid, PACTCTX_SECTION_KEYED_DATA pInfo) { - FIXME("%08x %s %u %s %p\n", dwFlags, debugstr_guid(lpExtGuid), - ulId, debugstr_guid(lpSearchGuid), pInfo); - SetLastError( ERROR_CALL_NOT_IMPLEMENTED); - return FALSE; + NTSTATUS status; + + if ((status = RtlFindActivationContextSectionGuid(dwFlags, lpExtGuid, ulId, lpSearchGuid, pInfo))) + { + SetLastError(RtlNtStatusToDosError(status)); + return FALSE; + } + + return TRUE; }
/*********************************************************************** diff --git a/dlls/ntdll/actctx.c b/dlls/ntdll/actctx.c index 8e4085d..f2a94c7 100644 --- a/dlls/ntdll/actctx.c +++ b/dlls/ntdll/actctx.c @@ -2716,3 +2716,34 @@ NTSTATUS WINAPI RtlFindActivationContextSectionString( ULONG flags, const GUID *
return status; } + +/*********************************************************************** + * RtlFindActivationContextSectionGuid (NTDLL.@) + * + * Find information about a GUID in an activation context. + * FIXME: function signature/prototype may be wrong + */ +NTSTATUS WINAPI RtlFindActivationContextSectionGuid( ULONG flags, const GUID *extguid, ULONG section_kind, + const GUID *guid, void *ptr ) +{ + ACTCTX_SECTION_KEYED_DATA *data = ptr; + + FIXME("%08x %s %u %s %p: stub\n", flags, debugstr_guid(extguid), section_kind, debugstr_guid(guid), data); + + if (extguid) + { + FIXME("expected extguid == NULL\n"); + return STATUS_INVALID_PARAMETER; + } + + if (flags & ~FIND_ACTCTX_SECTION_KEY_RETURN_HACTCTX) + { + FIXME("unknown flags %08x\n", flags); + return STATUS_INVALID_PARAMETER; + } + + if (!data || data->cbSize < FIELD_OFFSET(ACTCTX_SECTION_KEYED_DATA, ulAssemblyRosterIndex) || !guid) + return STATUS_INVALID_PARAMETER; + + return STATUS_NOT_IMPLEMENTED; +} diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec index 910ded5..6f592b4 100644 --- a/dlls/ntdll/ntdll.spec +++ b/dlls/ntdll/ntdll.spec @@ -578,7 +578,7 @@ @ stdcall RtlFillMemory(ptr long long) @ stdcall RtlFillMemoryUlong(ptr long long) @ stub RtlFinalReleaseOutOfProcessMemoryStream -@ stub RtlFindActivationContextSectionGuid +@ stdcall RtlFindActivationContextSectionGuid(long ptr long ptr ptr) @ stdcall RtlFindActivationContextSectionString(long ptr long ptr ptr) @ stdcall RtlFindCharInUnicodeString(long ptr ptr ptr) @ stdcall RtlFindClearBits(ptr long long) diff --git a/include/winternl.h b/include/winternl.h index 955228a..07ebbab 100644 --- a/include/winternl.h +++ b/include/winternl.h @@ -2351,6 +2351,7 @@ NTSYSAPI void DECLSPEC_NORETURN WINAPI RtlExitUserProcess(ULONG); NTSYSAPI void DECLSPEC_NORETURN WINAPI RtlExitUserThread(ULONG); NTSYSAPI NTSTATUS WINAPI RtlExpandEnvironmentStrings_U(PCWSTR, const UNICODE_STRING*, UNICODE_STRING*, ULONG*); NTSYSAPI NTSTATUS WINAPI RtlFindActivationContextSectionString(ULONG,const GUID*,ULONG,const UNICODE_STRING*,PVOID); +NTSYSAPI NTSTATUS WINAPI RtlFindActivationContextSectionGuid(ULONG,const GUID*,ULONG,const GUID*,PVOID); NTSYSAPI NTSTATUS WINAPI RtlFindCharInUnicodeString(int,const UNICODE_STRING*,const UNICODE_STRING*,USHORT*); NTSYSAPI ULONG WINAPI RtlFindClearBits(PCRTL_BITMAP,ULONG,ULONG); NTSYSAPI ULONG WINAPI RtlFindClearBitsAndSet(PRTL_BITMAP,ULONG,ULONG);