Author: fireball Date: Fri Feb 8 20:52:48 2008 New Revision: 32224
URL: http://svn.reactos.org/svn/reactos?rev=32224&view=rev Log: - Make LsaOpenPolicy return a fake handle (ported from Wine), so that it doesn't leave garbage instead of a handle, which is going to be closed later by LsaClose. - Make LsaClose understand the fake handle, and don't do anything in that case but just return success. - Make one unimplemented func show a fixme (also from Wine).
Modified: trunk/reactos/dll/win32/advapi32/sec/lsa.c
Modified: trunk/reactos/dll/win32/advapi32/sec/lsa.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/advapi32/sec/lsa.... ============================================================================== --- trunk/reactos/dll/win32/advapi32/sec/lsa.c (original) +++ trunk/reactos/dll/win32/advapi32/sec/lsa.c Fri Feb 8 20:52:48 2008 @@ -86,6 +86,10 @@ { TRACE("LsaClose(0x%p) called\n", ObjectHandle);
+ /* This is our fake handle, don't go too much long way */ + if (ObjectHandle == (LSA_HANDLE)0xcafe) + return STATUS_SUCCESS; + LSAHandleBind();
return LsarClose(LSABindingHandle, @@ -276,7 +280,9 @@ PLSA_REFERENCED_DOMAIN_LIST *ReferencedDomains, PLSA_TRANSLATED_SID2 *Sids) { - return STATUS_NOT_IMPLEMENTED; + FIXME("(%p,0x%08x,0x%08x,%p,%p,%p) stub\n", PolicyHandle, Flags, + Count, Names, ReferencedDomains, Sids); + return STATUS_NONE_MAPPED; }
/* @@ -345,18 +351,20 @@ * * @unimplemented */ -NTSTATUS STDCALL -LsaOpenPolicy(PLSA_UNICODE_STRING lsaucs, - PLSA_OBJECT_ATTRIBUTES lsaoa, - ACCESS_MASK access, - PLSA_HANDLE PolicyHandle) -{ - static int count = 0; - if (count++ < 20) - { - FIXME("%s() not implemented!\n", __FUNCTION__); - } - return STATUS_SUCCESS; +NTSTATUS +STDCALL +LsaOpenPolicy( + IN PLSA_UNICODE_STRING SystemName, + IN PLSA_OBJECT_ATTRIBUTES ObjectAttributes, + IN ACCESS_MASK DesiredAccess, + IN OUT PLSA_HANDLE PolicyHandle) +{ + FIXME("(%s,%p,0x%08x,%p) stub\n", + SystemName?debugstr_w(SystemName->Buffer):"(null)", + ObjectAttributes, DesiredAccess, PolicyHandle); + + if(PolicyHandle) *PolicyHandle = (LSA_HANDLE)0xcafe; + return STATUS_SUCCESS; }
/*