Stub implementations for AdjustTokenGroups, AreAllAccessesGranted,
CreatePrivateObjectSecurity, CreateProcessAsUser{A,W}, DestroyPrivateObjectSecurity, DuplicateToken{,Ex}, EnumDependentServices{A,W}, GetEffectiveRightsFromAcl{A,W}, ConvertStringSecurityDescriptorToSecurityDescriptorA. Implementations for BuildExplicitAccessWithName{A,W}, BuildTrusteeWithObjectsAndName{A,W}, BuildTrusteeWithObjectsAndSid{A,W}. Correct prototype for InitializeAcl, RtlCopySid and RtlGetAce. Use the CallWin32ToNt macro only with functions that return an NTSTATUS.
This commit is contained in:
parent
567bed8645
commit
49f7f6c208
|
@ -13,22 +13,22 @@
|
|||
@ stdcall AddAccessDeniedAceEx(ptr long long long ptr)
|
||||
@ stdcall AddAce(ptr long long ptr long)
|
||||
@ stdcall AddAuditAccessAce(ptr long long ptr long long)
|
||||
@ stub AdjustTokenGroups
|
||||
@ stdcall AdjustTokenGroups(long long ptr long ptr ptr)
|
||||
@ stdcall AdjustTokenPrivileges(long long ptr long ptr ptr)
|
||||
@ stdcall AllocateAndInitializeSid(ptr long long long long long long long long long ptr)
|
||||
@ stdcall AllocateLocallyUniqueId(ptr)
|
||||
@ stub AreAllAccessesGranted
|
||||
@ stdcall AreAllAccessesGranted(long long)
|
||||
@ stdcall AreAnyAccessesGranted(long long)
|
||||
@ stdcall BackupEventLogA (long str)
|
||||
@ stdcall BackupEventLogW (long wstr)
|
||||
@ stub BuildExplicitAccessWithNameA
|
||||
@ stub BuildExplicitAccessWithNameW
|
||||
@ stdcall BuildExplicitAccessWithNameA(ptr str long long long)
|
||||
@ stdcall BuildExplicitAccessWithNameW(ptr wstr long long long)
|
||||
@ stdcall BuildTrusteeWithNameA(ptr str)
|
||||
@ stdcall BuildTrusteeWithNameW(ptr wstr)
|
||||
@ stub BuildTrusteeWithObjectsAndNameA # (ptr ptr long str str str)
|
||||
@ stub BuildTrusteeWithObjectsAndNameW # (ptr ptr long wstr wstr wstr)
|
||||
@ stub BuildTrusteeWithObjectsAndSidA # (ptr ptr ptr ptr ptr)
|
||||
@ stub BuildTrusteeWithObjectsAndSidW # (ptr ptr ptr ptr ptr)
|
||||
@ stdcall BuildTrusteeWithObjectsAndNameA(ptr ptr long str str str)
|
||||
@ stdcall BuildTrusteeWithObjectsAndNameW(ptr ptr long wstr wstr wstr)
|
||||
@ stdcall BuildTrusteeWithObjectsAndSidA(ptr ptr ptr ptr ptr)
|
||||
@ stdcall BuildTrusteeWithObjectsAndSidW(ptr ptr ptr ptr ptr)
|
||||
@ stdcall BuildTrusteeWithSidA(ptr ptr)
|
||||
@ stdcall BuildTrusteeWithSidW(ptr ptr)
|
||||
@ stdcall ChangeServiceConfigA(long long long long wstr str ptr str str str str)
|
||||
|
@ -43,12 +43,12 @@
|
|||
@ stdcall ConvertSidToStringSidW(ptr ptr)
|
||||
@ stdcall ConvertStringSidToSidA(ptr ptr)
|
||||
@ stdcall ConvertStringSidToSidW(ptr ptr)
|
||||
@ stub ConvertStringSecurityDescriptorToSecurityDescriptorA #(str long ptr ptr) ConvertStringSecurityDescriptorToSecurityDescriptorA
|
||||
@ stdcall ConvertStringSecurityDescriptorToSecurityDescriptorA(str long ptr ptr)
|
||||
@ stdcall ConvertStringSecurityDescriptorToSecurityDescriptorW(wstr long ptr ptr)
|
||||
@ stdcall CopySid(long ptr ptr)
|
||||
@ stub CreatePrivateObjectSecurity
|
||||
@ stub CreateProcessAsUserA
|
||||
@ stub CreateProcessAsUserW
|
||||
@ stdcall CreatePrivateObjectSecurity(ptr ptr ptr long long ptr)
|
||||
@ stdcall CreateProcessAsUserA(long str str ptr ptr long long ptr str ptr ptr)
|
||||
@ stdcall CreateProcessAsUserW(long str str ptr ptr long long ptr str ptr ptr)
|
||||
@ stdcall CreateServiceA(long ptr ptr long long long long ptr ptr ptr ptr ptr ptr)
|
||||
@ stdcall CreateServiceW (long ptr ptr long long long long ptr ptr ptr ptr ptr ptr)
|
||||
@ stub CredProfileLoaded
|
||||
|
@ -96,13 +96,13 @@
|
|||
@ stdcall DeleteAce(ptr long)
|
||||
@ stdcall DeleteService(long)
|
||||
@ stdcall DeregisterEventSource(long)
|
||||
@ stub DestroyPrivateObjectSecurity
|
||||
@ stub DuplicateToken #(long long ptr) DuplicateToken
|
||||
@ stub DuplicateTokenEx #(long long ptr long long ptr) DuplicateTokenEx
|
||||
@ stdcall DestroyPrivateObjectSecurity(ptr)
|
||||
@ stdcall DuplicateToken(long long ptr)
|
||||
@ stdcall DuplicateTokenEx(long long ptr long long ptr)
|
||||
@ stdcall EncryptFileA(str)
|
||||
@ stdcall EncryptFileW(wstr)
|
||||
@ stub EnumDependentServicesA
|
||||
@ stub EnumDependentServicesW
|
||||
@ stdcall EnumDependentServicesA(long long ptr long ptr ptr)
|
||||
@ stdcall EnumDependentServicesW(long long ptr long ptr ptr)
|
||||
@ stdcall EnumServicesStatusA (long long long ptr long ptr ptr ptr)
|
||||
@ stdcall EnumServicesStatusW (long long long ptr long ptr ptr ptr)
|
||||
@ stdcall EqualPrefixSid(ptr ptr)
|
||||
|
@ -113,7 +113,7 @@
|
|||
@ stdcall GetAclInformation(ptr ptr long long)
|
||||
@ stdcall GetCurrentHwProfileA(ptr)
|
||||
@ stdcall GetCurrentHwProfileW(ptr)
|
||||
@ stub GetEffectiveRightsFromAclA
|
||||
@ stdcall GetEffectiveRightsFromAclA(ptr ptr ptr)
|
||||
@ stdcall GetExplicitEntriesFromAclA(ptr ptr ptr)
|
||||
@ stdcall GetExplicitEntriesFromAclW(ptr ptr ptr)
|
||||
@ stdcall GetFileSecurityA(str long ptr long ptr)
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
#include "ntsecapi.h"
|
||||
#include "accctrl.h"
|
||||
#include "sddl.h"
|
||||
|
||||
#include "winsvc.h"
|
||||
#include "aclapi.h"
|
||||
|
||||
#include "wine/debug.h"
|
||||
|
@ -204,6 +204,14 @@ OpenThreadToken( HANDLE ThreadHandle, DWORD DesiredAccess,
|
|||
CallWin32ToNt (NtOpenThreadToken(ThreadHandle, DesiredAccess, OpenAsSelf, TokenHandle));
|
||||
}
|
||||
|
||||
BOOL WINAPI
|
||||
AdjustTokenGroups( HANDLE TokenHandle, BOOL ResetToDefault, PTOKEN_GROUPS NewState,
|
||||
DWORD BufferLength, PTOKEN_GROUPS PreviousState, PDWORD ReturnLength )
|
||||
{
|
||||
CallWin32ToNt(NtAdjustGroupsToken(TokenHandle, ResetToDefault, NewState, BufferLength,
|
||||
PreviousState, ReturnLength));
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* AdjustTokenPrivileges [ADVAPI32.@]
|
||||
*
|
||||
|
@ -397,11 +405,11 @@ AllocateAndInitializeSid( PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority,
|
|||
DWORD nSubAuthority6, DWORD nSubAuthority7,
|
||||
PSID *pSid )
|
||||
{
|
||||
CallWin32ToNt (RtlAllocateAndInitializeSid(
|
||||
return RtlAllocateAndInitializeSid(
|
||||
pIdentifierAuthority, nSubAuthorityCount,
|
||||
nSubAuthority0, nSubAuthority1, nSubAuthority2, nSubAuthority3,
|
||||
nSubAuthority4, nSubAuthority5, nSubAuthority6, nSubAuthority7,
|
||||
pSid ));
|
||||
pSid );
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
|
@ -491,6 +499,22 @@ InitializeSid (
|
|||
return RtlInitializeSid(pSid, pIdentifierAuthority, nSubAuthorityCount);
|
||||
}
|
||||
|
||||
DWORD WINAPI
|
||||
GetEffectiveRightsFromAclA( PACL pacl, PTRUSTEEA pTrustee, PACCESS_MASK pAccessRights )
|
||||
{
|
||||
FIXME("%p %p %p - stub\n", pacl, pTrustee, pAccessRights);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
DWORD WINAPI
|
||||
GetEffectiveRightsFromAclW( PACL pacl, PTRUSTEEW pTrustee, PACCESS_MASK pAccessRights )
|
||||
{
|
||||
FIXME("%p %p %p - stub\n", pacl, pTrustee, pAccessRights);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* GetSidIdentifierAuthority [ADVAPI32.@]
|
||||
*
|
||||
|
@ -587,7 +611,7 @@ BOOL WINAPI MakeAbsoluteSD (
|
|||
*/
|
||||
DWORD WINAPI GetSecurityDescriptorLength( PSECURITY_DESCRIPTOR pDescr)
|
||||
{
|
||||
return (RtlLengthSecurityDescriptor(pDescr));
|
||||
return RtlLengthSecurityDescriptor(pDescr);
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
|
@ -729,7 +753,7 @@ BOOL WINAPI GetSecurityDescriptorControl ( PSECURITY_DESCRIPTOR pSecurityDescri
|
|||
/*************************************************************************
|
||||
* InitializeAcl [ADVAPI32.@]
|
||||
*/
|
||||
DWORD WINAPI InitializeAcl(PACL acl, DWORD size, DWORD rev)
|
||||
BOOL WINAPI InitializeAcl(PACL acl, DWORD size, DWORD rev)
|
||||
{
|
||||
CallWin32ToNt (RtlCreateAcl(acl, size, rev));
|
||||
}
|
||||
|
@ -1773,6 +1797,106 @@ DWORD WINAPI GetSecurityInfoExW(
|
|||
return ERROR_BAD_PROVIDER;
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* BuildExplicitAccessWithNameA [ADVAPI32.@]
|
||||
*/
|
||||
VOID WINAPI BuildExplicitAccessWithNameA( PEXPLICIT_ACCESSA pExplicitAccess,
|
||||
LPSTR pTrusteeName, DWORD AccessPermissions,
|
||||
ACCESS_MODE AccessMode, DWORD Inheritance )
|
||||
{
|
||||
TRACE("%p %s 0x%08lx 0x%08x 0x%08lx\n", pExplicitAccess, debugstr_a(pTrusteeName),
|
||||
AccessPermissions, AccessMode, Inheritance);
|
||||
|
||||
pExplicitAccess->grfAccessPermissions = AccessPermissions;
|
||||
pExplicitAccess->grfAccessMode = AccessMode;
|
||||
pExplicitAccess->grfInheritance = Inheritance;
|
||||
|
||||
pExplicitAccess->Trustee.pMultipleTrustee = NULL;
|
||||
pExplicitAccess->Trustee.MultipleTrusteeOperation = NO_MULTIPLE_TRUSTEE;
|
||||
pExplicitAccess->Trustee.TrusteeForm = TRUSTEE_IS_NAME;
|
||||
pExplicitAccess->Trustee.TrusteeType = TRUSTEE_IS_UNKNOWN;
|
||||
pExplicitAccess->Trustee.ptstrName = pTrusteeName;
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* BuildExplicitAccessWithNameW [ADVAPI32.@]
|
||||
*/
|
||||
VOID WINAPI BuildExplicitAccessWithNameW( PEXPLICIT_ACCESSW pExplicitAccess,
|
||||
LPWSTR pTrusteeName, DWORD AccessPermissions,
|
||||
ACCESS_MODE AccessMode, DWORD Inheritance )
|
||||
{
|
||||
TRACE("%p %s 0x%08lx 0x%08x 0x%08lx\n", pExplicitAccess, debugstr_w(pTrusteeName),
|
||||
AccessPermissions, AccessMode, Inheritance);
|
||||
|
||||
pExplicitAccess->grfAccessPermissions = AccessPermissions;
|
||||
pExplicitAccess->grfAccessMode = AccessMode;
|
||||
pExplicitAccess->grfInheritance = Inheritance;
|
||||
|
||||
pExplicitAccess->Trustee.pMultipleTrustee = NULL;
|
||||
pExplicitAccess->Trustee.MultipleTrusteeOperation = NO_MULTIPLE_TRUSTEE;
|
||||
pExplicitAccess->Trustee.TrusteeForm = TRUSTEE_IS_NAME;
|
||||
pExplicitAccess->Trustee.TrusteeType = TRUSTEE_IS_UNKNOWN;
|
||||
pExplicitAccess->Trustee.ptstrName = pTrusteeName;
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* BuildTrusteeWithObjectsAndNameA [ADVAPI32.@]
|
||||
*/
|
||||
VOID WINAPI BuildTrusteeWithObjectsAndNameA( PTRUSTEEA pTrustee, POBJECTS_AND_NAME_A pObjName,
|
||||
SE_OBJECT_TYPE ObjectType, LPSTR ObjectTypeName,
|
||||
LPSTR InheritedObjectTypeName, LPSTR Name )
|
||||
{
|
||||
TRACE("%p %p 0x%08x %p %p %s\n", pTrustee, pObjName,
|
||||
ObjectType, ObjectTypeName, InheritedObjectTypeName, debugstr_a(Name));
|
||||
|
||||
pTrustee->pMultipleTrustee = NULL;
|
||||
pTrustee->MultipleTrusteeOperation = NO_MULTIPLE_TRUSTEE;
|
||||
pTrustee->TrusteeForm = TRUSTEE_IS_OBJECTS_AND_NAME;
|
||||
pTrustee->TrusteeType = TRUSTEE_IS_UNKNOWN;
|
||||
pTrustee->ptstrName = Name;
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* BuildTrusteeWithObjectsAndNameW [ADVAPI32.@]
|
||||
*/
|
||||
VOID WINAPI BuildTrusteeWithObjectsAndNameW( PTRUSTEEW pTrustee, POBJECTS_AND_NAME_W pObjName,
|
||||
SE_OBJECT_TYPE ObjectType, LPWSTR ObjectTypeName,
|
||||
LPWSTR InheritedObjectTypeName, LPWSTR Name )
|
||||
{
|
||||
TRACE("%p %p 0x%08x %p %p %s\n", pTrustee, pObjName,
|
||||
ObjectType, ObjectTypeName, InheritedObjectTypeName, debugstr_w(Name));
|
||||
|
||||
pTrustee->pMultipleTrustee = NULL;
|
||||
pTrustee->MultipleTrusteeOperation = NO_MULTIPLE_TRUSTEE;
|
||||
pTrustee->TrusteeForm = TRUSTEE_IS_OBJECTS_AND_NAME;
|
||||
pTrustee->TrusteeType = TRUSTEE_IS_UNKNOWN;
|
||||
pTrustee->ptstrName = Name;
|
||||
}
|
||||
|
||||
VOID WINAPI BuildTrusteeWithObjectsAndSidA( PTRUSTEEA pTrustee, POBJECTS_AND_SID pObjSid,
|
||||
GUID* pObjectGuid, GUID* pInheritedObjectGuid, PSID pSid )
|
||||
{
|
||||
TRACE("%p %p %p %p %p\n", pTrustee, pObjSid, pObjectGuid, pInheritedObjectGuid, pSid);
|
||||
|
||||
pTrustee->pMultipleTrustee = NULL;
|
||||
pTrustee->MultipleTrusteeOperation = NO_MULTIPLE_TRUSTEE;
|
||||
pTrustee->TrusteeForm = TRUSTEE_IS_OBJECTS_AND_SID;
|
||||
pTrustee->TrusteeType = TRUSTEE_IS_UNKNOWN;
|
||||
pTrustee->ptstrName = (LPSTR) pSid;
|
||||
}
|
||||
|
||||
VOID WINAPI BuildTrusteeWithObjectsAndSidW( PTRUSTEEW pTrustee, POBJECTS_AND_SID pObjSid,
|
||||
GUID* pObjectGuid, GUID* pInheritedObjectGuid, PSID pSid )
|
||||
{
|
||||
TRACE("%p %p %p %p %p\n", pTrustee, pObjSid, pObjectGuid, pInheritedObjectGuid, pSid);
|
||||
|
||||
pTrustee->pMultipleTrustee = NULL;
|
||||
pTrustee->MultipleTrusteeOperation = NO_MULTIPLE_TRUSTEE;
|
||||
pTrustee->TrusteeForm = TRUSTEE_IS_OBJECTS_AND_SID;
|
||||
pTrustee->TrusteeType = TRUSTEE_IS_UNKNOWN;
|
||||
pTrustee->ptstrName = (LPWSTR) pSid;
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* BuildTrusteeWithSidA [ADVAPI32.@]
|
||||
*/
|
||||
|
@ -1879,6 +2003,11 @@ DWORD WINAPI SetNamedSecurityInfoA(LPSTR pObjectName,
|
|||
return r;
|
||||
}
|
||||
|
||||
BOOL WINAPI AreAllAccessesGranted( DWORD GrantedAccess, DWORD DesiredAccess )
|
||||
{
|
||||
return RtlAreAllAccessesGranted( GrantedAccess, DesiredAccess );
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* AreAnyAccessesGranted [ADVAPI32.@]
|
||||
*
|
||||
|
@ -1896,7 +2025,7 @@ DWORD WINAPI SetNamedSecurityInfoA(LPSTR pObjectName,
|
|||
|
||||
BOOL WINAPI AreAnyAccessesGranted( DWORD GrantedAccess, DWORD DesiredAccess )
|
||||
{
|
||||
return (GrantedAccess & DesiredAccess) != 0;
|
||||
return RtlAreAnyAccessesGranted( GrantedAccess, DesiredAccess );
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
|
@ -2334,6 +2463,35 @@ lend:
|
|||
return bret;
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* ConvertStringSecurityDescriptorToSecurityDescriptorA [ADVAPI32.@]
|
||||
*/
|
||||
BOOL WINAPI ConvertStringSecurityDescriptorToSecurityDescriptorA(
|
||||
LPCSTR StringSecurityDescriptor,
|
||||
DWORD StringSDRevision,
|
||||
PSECURITY_DESCRIPTOR* SecurityDescriptor,
|
||||
PULONG SecurityDescriptorSize)
|
||||
{
|
||||
UINT len;
|
||||
BOOL ret = FALSE;
|
||||
LPWSTR StringSecurityDescriptorW;
|
||||
|
||||
len = MultiByteToWideChar(CP_ACP, 0, StringSecurityDescriptor, -1, NULL, 0);
|
||||
StringSecurityDescriptorW = (LPWSTR)HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
|
||||
|
||||
if (StringSecurityDescriptorW)
|
||||
{
|
||||
MultiByteToWideChar(CP_ACP, 0, StringSecurityDescriptor, -1, StringSecurityDescriptorW, len);
|
||||
|
||||
ret = ConvertStringSecurityDescriptorToSecurityDescriptorW(StringSecurityDescriptorW,
|
||||
StringSDRevision, SecurityDescriptor,
|
||||
SecurityDescriptorSize);
|
||||
HeapFree(GetProcessHeap(), 0, StringSecurityDescriptorW);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* ConvertStringSecurityDescriptorToSecurityDescriptorW [ADVAPI32.@]
|
||||
*/
|
||||
|
@ -2509,6 +2667,67 @@ BOOL WINAPI ConvertSidToStringSidA(PSID pSid, LPSTR *pstr)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL WINAPI CreatePrivateObjectSecurity(
|
||||
PSECURITY_DESCRIPTOR ParentDescriptor,
|
||||
PSECURITY_DESCRIPTOR CreatorDescriptor,
|
||||
PSECURITY_DESCRIPTOR* NewDescriptor,
|
||||
BOOL IsDirectoryObject,
|
||||
HANDLE Token,
|
||||
PGENERIC_MAPPING GenericMapping )
|
||||
{
|
||||
FIXME("%p %p %p %d %p %p - stub\n", ParentDescriptor, CreatorDescriptor,
|
||||
NewDescriptor, IsDirectoryObject, Token, GenericMapping);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL WINAPI DestroyPrivateObjectSecurity( PSECURITY_DESCRIPTOR* ObjectDescriptor )
|
||||
{
|
||||
FIXME("%p - stub\n", ObjectDescriptor);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL WINAPI CreateProcessAsUserA(
|
||||
HANDLE hToken,
|
||||
LPCSTR lpApplicationName,
|
||||
LPSTR lpCommandLine,
|
||||
LPSECURITY_ATTRIBUTES lpProcessAttributes,
|
||||
LPSECURITY_ATTRIBUTES lpThreadAttributes,
|
||||
BOOL bInheritHandles,
|
||||
DWORD dwCreationFlags,
|
||||
LPVOID lpEnvironment,
|
||||
LPCSTR lpCurrentDirectory,
|
||||
LPSTARTUPINFOA lpStartupInfo,
|
||||
LPPROCESS_INFORMATION lpProcessInformation )
|
||||
{
|
||||
FIXME("%p %s %s %p %p %d 0x%08lx %p %s %p %p - stub\n", hToken, debugstr_a(lpApplicationName),
|
||||
debugstr_a(lpCommandLine), lpProcessAttributes, lpThreadAttributes, bInheritHandles,
|
||||
dwCreationFlags, lpEnvironment, debugstr_a(lpCurrentDirectory), lpStartupInfo, lpProcessInformation);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL WINAPI CreateProcessAsUserW(
|
||||
HANDLE hToken,
|
||||
LPCWSTR lpApplicationName,
|
||||
LPWSTR lpCommandLine,
|
||||
LPSECURITY_ATTRIBUTES lpProcessAttributes,
|
||||
LPSECURITY_ATTRIBUTES lpThreadAttributes,
|
||||
BOOL bInheritHandles,
|
||||
DWORD dwCreationFlags,
|
||||
LPVOID lpEnvironment,
|
||||
LPCWSTR lpCurrentDirectory,
|
||||
LPSTARTUPINFOW lpStartupInfo,
|
||||
LPPROCESS_INFORMATION lpProcessInformation )
|
||||
{
|
||||
FIXME("%p %s %s %p %p %d 0x%08lx %p %s %p %p - stub\n", hToken, debugstr_w(lpApplicationName),
|
||||
debugstr_w(lpCommandLine), lpProcessAttributes, lpThreadAttributes, bInheritHandles,
|
||||
dwCreationFlags, lpEnvironment, debugstr_w(lpCurrentDirectory), lpStartupInfo, lpProcessInformation);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* ComputeStringSidSize
|
||||
*/
|
||||
|
@ -2530,6 +2749,56 @@ static DWORD ComputeStringSidSize(LPCWSTR StringSid)
|
|||
return size;
|
||||
}
|
||||
|
||||
BOOL WINAPI DuplicateTokenEx(
|
||||
HANDLE ExistingTokenHandle, DWORD dwDesiredAccess,
|
||||
LPSECURITY_ATTRIBUTES lpTokenAttributes,
|
||||
SECURITY_IMPERSONATION_LEVEL ImpersonationLevel,
|
||||
TOKEN_TYPE TokenType,
|
||||
PHANDLE DuplicateTokenHandle )
|
||||
{
|
||||
FIXME("%p 0x%08lx 0x%08x 0x%08x %p - stub\n", ExistingTokenHandle, dwDesiredAccess,
|
||||
ImpersonationLevel, TokenType, DuplicateTokenHandle);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL WINAPI DuplicateToken(
|
||||
HANDLE ExistingTokenHandle,
|
||||
SECURITY_IMPERSONATION_LEVEL ImpersonationLevel,
|
||||
PHANDLE DuplicateTokenHandle )
|
||||
{
|
||||
return DuplicateTokenEx( ExistingTokenHandle, 0, NULL, ImpersonationLevel,
|
||||
TokenImpersonation, DuplicateTokenHandle );
|
||||
}
|
||||
|
||||
BOOL WINAPI EnumDependentServicesA(
|
||||
SC_HANDLE hService,
|
||||
DWORD dwServiceState,
|
||||
LPENUM_SERVICE_STATUSA lpServices,
|
||||
DWORD cbBufSize,
|
||||
LPDWORD pcbBytesNeeded,
|
||||
LPDWORD lpServicesReturned )
|
||||
{
|
||||
FIXME("%p 0x%08lx %p 0x%08lx %p %p - stub\n", hService, dwServiceState,
|
||||
lpServices, cbBufSize, pcbBytesNeeded, lpServicesReturned);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL WINAPI EnumDependentServicesW(
|
||||
SC_HANDLE hService,
|
||||
DWORD dwServiceState,
|
||||
LPENUM_SERVICE_STATUSW lpServices,
|
||||
DWORD cbBufSize,
|
||||
LPDWORD pcbBytesNeeded,
|
||||
LPDWORD lpServicesReturned )
|
||||
{
|
||||
FIXME("%p 0x%08lx %p 0x%08lx %p %p - stub\n", hService, dwServiceState,
|
||||
lpServices, cbBufSize, pcbBytesNeeded, lpServicesReturned);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* ParseStringSidToSid
|
||||
*/
|
||||
|
|
|
@ -290,7 +290,7 @@ LPBYTE WINAPI RtlSubAuthorityCountSid(PSID pSid)
|
|||
/**************************************************************************
|
||||
* RtlCopySid [NTDLL.@]
|
||||
*/
|
||||
DWORD WINAPI RtlCopySid( DWORD nDestinationSidLength, PSID pDestinationSid, PSID pSourceSid )
|
||||
BOOLEAN WINAPI RtlCopySid( DWORD nDestinationSidLength, PSID pDestinationSid, PSID pSourceSid )
|
||||
{
|
||||
if (!pSourceSid || !RtlValidSid(pSourceSid) ||
|
||||
(nDestinationSidLength < RtlLengthSid(pSourceSid)))
|
||||
|
@ -1093,7 +1093,7 @@ BOOLEAN WINAPI RtlValidAcl(PACL pAcl)
|
|||
/******************************************************************************
|
||||
* RtlGetAce [NTDLL.@]
|
||||
*/
|
||||
DWORD WINAPI RtlGetAce(PACL pAcl,DWORD dwAceIndex,LPVOID *pAce )
|
||||
NTSTATUS WINAPI RtlGetAce(PACL pAcl,DWORD dwAceIndex,LPVOID *pAce )
|
||||
{
|
||||
PACE_HEADER ace;
|
||||
|
||||
|
|
|
@ -60,18 +60,20 @@ void WINAPI BuildTrusteeWithNameA( PTRUSTEEA, LPSTR );
|
|||
void WINAPI BuildTrusteeWithNameW( PTRUSTEEW, LPWSTR );
|
||||
#define BuildTrusteeWithName WINELIB_NAME_AW(BuildTrusteeWithName)
|
||||
|
||||
void WINAPI BuildTrusteeWithObjectsAndNameA( PTRUSTEEA,
|
||||
POBJECTS_AND_NAME_A, SE_OBJECT_TYPE, LPSTR, LPSTR, LPSTR );
|
||||
void WINAPI BuildTrusteeWithObjectsAndNameW( PTRUSTEEW,
|
||||
POBJECTS_AND_NAME_W, SE_OBJECT_TYPE, LPWSTR, LPWSTR, LPWSTR );
|
||||
VOID WINAPI BuildTrusteeWithObjectsAndNameA(PTRUSTEEA, POBJECTS_AND_NAME_A,
|
||||
SE_OBJECT_TYPE, LPSTR, LPSTR, LPSTR);
|
||||
VOID WINAPI BuildTrusteeWithObjectsAndNameW(PTRUSTEEW, POBJECTS_AND_NAME_W,
|
||||
SE_OBJECT_TYPE, LPWSTR, LPWSTR, LPWSTR);
|
||||
#define BuildTrusteeWithObjectsAndName WINELIB_NAME_AW(BuildTrusteeWithObjectsAndName)
|
||||
|
||||
void BuildTrusteeWithObjectsAndSidA( PTRUSTEEA,
|
||||
POBJECTS_AND_SID, GUID*, GUID*, PSID );
|
||||
void BuildTrusteeWithObjectsAndSidW( PTRUSTEEW,
|
||||
POBJECTS_AND_SID, GUID*, GUID*, PSID );
|
||||
VOID WINAPI BuildTrusteeWithObjectsAndSidA(PTRUSTEEA, POBJECTS_AND_SID, GUID*, GUID*, PSID);
|
||||
VOID WINAPI BuildTrusteeWithObjectsAndSidW(PTRUSTEEW, POBJECTS_AND_SID, GUID*, GUID*, PSID);
|
||||
#define BuildTrusteeWithObjectsAndSid WINELIB_NAME_AW(BuildTrusteeWithObjectsAndSid)
|
||||
|
||||
VOID WINAPI BuildExplicitAccessWithNameA(PEXPLICIT_ACCESSA, LPSTR, DWORD, ACCESS_MODE, DWORD);
|
||||
VOID WINAPI BuildExplicitAccessWithNameW(PEXPLICIT_ACCESSW, LPWSTR, DWORD, ACCESS_MODE, DWORD);
|
||||
#define BuildExplicitAccessWithName WINELIB_NAME_AW(BuildExplicitAccessWithName)
|
||||
|
||||
VOID WINAPI BuildTrusteeWithSidA(PTRUSTEEA pTrustee, PSID pSid);
|
||||
VOID WINAPI BuildTrusteeWithSidW(PTRUSTEEW pTrustee, PSID pSid);
|
||||
#define BuildTrusteeWithSid WINELIB_NAME_AW(BuildTrusteeWithSid)
|
||||
|
|
|
@ -1173,6 +1173,8 @@ BOOL WINAPI AccessCheck(PSECURITY_DESCRIPTOR,HANDLE,DWORD,PGENERIC_MAPPIN
|
|||
BOOL WINAPI AdjustTokenPrivileges(HANDLE,BOOL,LPVOID,DWORD,LPVOID,LPDWORD);
|
||||
BOOL WINAPI AllocateAndInitializeSid(PSID_IDENTIFIER_AUTHORITY,BYTE,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,PSID *);
|
||||
BOOL WINAPI AllocateLocallyUniqueId(PLUID);
|
||||
BOOL WINAPI AreAllAccessesGranted(DWORD,DWORD);
|
||||
BOOL WINAPI AreAnyAccessesGranted(DWORD,DWORD);
|
||||
BOOL WINAPI AreFileApisANSI(void);
|
||||
BOOL WINAPI AssignProcessToJobObject(HANDLE,HANDLE);
|
||||
BOOL WINAPI BackupEventLogA(HANDLE,LPCSTR);
|
||||
|
@ -1249,6 +1251,8 @@ HANDLE WINAPI CreateNamedPipeA(LPCSTR,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,L
|
|||
HANDLE WINAPI CreateNamedPipeW(LPCWSTR,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,LPSECURITY_ATTRIBUTES);
|
||||
#define CreateNamedPipe WINELIB_NAME_AW(CreateNamedPipe)
|
||||
BOOL WINAPI CreatePipe(PHANDLE,PHANDLE,LPSECURITY_ATTRIBUTES,DWORD);
|
||||
BOOL WINAPI CreatePrivateObjectSecurity(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR,
|
||||
PSECURITY_DESCRIPTOR*,BOOL,HANDLE,PGENERIC_MAPPING);
|
||||
BOOL WINAPI CreateProcessA(LPCSTR,LPSTR,LPSECURITY_ATTRIBUTES,
|
||||
LPSECURITY_ATTRIBUTES,BOOL,DWORD,LPVOID,LPCSTR,
|
||||
LPSTARTUPINFOA,LPPROCESS_INFORMATION);
|
||||
|
@ -1256,6 +1260,11 @@ BOOL WINAPI CreateProcessW(LPCWSTR,LPWSTR,LPSECURITY_ATTRIBUTES,
|
|||
LPSECURITY_ATTRIBUTES,BOOL,DWORD,LPVOID,LPCWSTR,
|
||||
LPSTARTUPINFOW,LPPROCESS_INFORMATION);
|
||||
#define CreateProcess WINELIB_NAME_AW(CreateProcess)
|
||||
BOOL WINAPI CreateProcessAsUserA(HANDLE,LPCSTR,LPSTR,LPSECURITY_ATTRIBUTES,LPSECURITY_ATTRIBUTES,
|
||||
BOOL,DWORD,LPVOID,LPCSTR,LPSTARTUPINFOA,LPPROCESS_INFORMATION);
|
||||
BOOL WINAPI CreateProcessAsUserW(HANDLE,LPCWSTR,LPWSTR,LPSECURITY_ATTRIBUTES,LPSECURITY_ATTRIBUTES,
|
||||
BOOL,DWORD,LPVOID,LPCWSTR,LPSTARTUPINFOW,LPPROCESS_INFORMATION);
|
||||
#define CreateProcessAsUser WINELIB_NAME_AW(CreateProcessAsUser)
|
||||
HANDLE WINAPI CreateRemoteThread(HANDLE,LPSECURITY_ATTRIBUTES,SIZE_T,LPTHREAD_START_ROUTINE,LPVOID,DWORD,LPDWORD);
|
||||
HANDLE WINAPI CreateSemaphoreA(LPSECURITY_ATTRIBUTES,LONG,LONG,LPCSTR);
|
||||
HANDLE WINAPI CreateSemaphoreW(LPSECURITY_ATTRIBUTES,LONG,LONG,LPCWSTR);
|
||||
|
@ -1285,6 +1294,7 @@ BOOL WINAPI DeleteVolumeMountPointA(LPCSTR);
|
|||
BOOL WINAPI DeleteVolumeMountPointW(LPCWSTR);
|
||||
#define DeleteVolumeMountPoint WINELIB_NAME_AW(DeleteVolumeMountPoint)
|
||||
BOOL WINAPI DeregisterEventSource(HANDLE);
|
||||
BOOL WINAPI DestroyPrivateObjectSecurity(PSECURITY_DESCRIPTOR*);
|
||||
BOOL WINAPI DeviceIoControl(HANDLE,DWORD,LPVOID,DWORD,LPVOID,DWORD,LPDWORD,LPOVERLAPPED);
|
||||
BOOL WINAPI DisableThreadLibraryCalls(HMODULE);
|
||||
BOOL WINAPI DisconnectNamedPipe(HANDLE);
|
||||
|
@ -1293,6 +1303,9 @@ BOOL WINAPI DnsHostnameToComputerNameW(LPCWSTR,LPWSTR,LPDWORD);
|
|||
#define DnsHostnameToComputerName WINELIB_NAME_AW(DnsHostnameToComputerName)
|
||||
BOOL WINAPI DosDateTimeToFileTime(WORD,WORD,LPFILETIME);
|
||||
BOOL WINAPI DuplicateHandle(HANDLE,HANDLE,HANDLE,HANDLE*,DWORD,BOOL,DWORD);
|
||||
BOOL WINAPI DuplicateToken(HANDLE,SECURITY_IMPERSONATION_LEVEL,PHANDLE);
|
||||
BOOL WINAPI DuplicateTokenEx(HANDLE,DWORD,LPSECURITY_ATTRIBUTES,SECURITY_IMPERSONATION_LEVEL,
|
||||
TOKEN_TYPE,PHANDLE);
|
||||
BOOL WINAPI EscapeCommFunction(HANDLE,UINT);
|
||||
BOOL WINAPI EndUpdateResourceA(HANDLE,BOOL);
|
||||
BOOL WINAPI EndUpdateResourceW(HANDLE,BOOL);
|
||||
|
@ -1481,7 +1494,7 @@ SIZE_T WINAPI HeapSize(HANDLE,DWORD,LPVOID);
|
|||
BOOL WINAPI HeapUnlock(HANDLE);
|
||||
BOOL WINAPI HeapValidate(HANDLE,DWORD,LPCVOID);
|
||||
BOOL WINAPI HeapWalk(HANDLE,LPPROCESS_HEAP_ENTRY);
|
||||
DWORD WINAPI InitializeAcl(PACL,DWORD,DWORD);
|
||||
BOOL WINAPI InitializeAcl(PACL,DWORD,DWORD);
|
||||
void WINAPI InitializeCriticalSection(CRITICAL_SECTION *lpCrit);
|
||||
BOOL WINAPI InitializeCriticalSectionAndSpinCount(CRITICAL_SECTION *,DWORD);
|
||||
BOOL WINAPI InitializeSecurityDescriptor(PSECURITY_DESCRIPTOR,DWORD);
|
||||
|
|
|
@ -261,6 +261,9 @@ SC_HANDLE WINAPI CreateServiceW(SC_HANDLE,LPCWSTR,LPCWSTR,DWORD,DWORD,DWORD,DW
|
|||
LPCWSTR,LPDWORD,LPCWSTR,LPCWSTR,LPCWSTR);
|
||||
#define CreateService WINELIB_NAME_AW(CreateService)
|
||||
BOOL WINAPI DeleteService(SC_HANDLE);
|
||||
BOOL WINAPI EnumDependentServicesA(SC_HANDLE,DWORD,LPENUM_SERVICE_STATUSA,DWORD,LPDWORD,LPDWORD);
|
||||
BOOL WINAPI EnumDependentServicesW(SC_HANDLE,DWORD,LPENUM_SERVICE_STATUSW,DWORD,LPDWORD,LPDWORD);
|
||||
#define EnumDependentServices WINELIB_NAME_AW(EnumDependentServices)
|
||||
BOOL WINAPI EnumServicesStatusA(SC_HANDLE,DWORD,DWORD,LPENUM_SERVICE_STATUSA,
|
||||
DWORD,LPDWORD,LPDWORD,LPDWORD);
|
||||
BOOL WINAPI EnumServicesStatusW(SC_HANDLE,DWORD,DWORD,LPENUM_SERVICE_STATUSW,
|
||||
|
|
|
@ -1490,7 +1490,7 @@ LONGLONG WINAPI RtlConvertLongToLargeInteger(LONG);
|
|||
ULONGLONG WINAPI RtlConvertUlongToLargeInteger(ULONG);
|
||||
void WINAPI RtlCopyLuid(PLUID,const LUID*);
|
||||
void WINAPI RtlCopyLuidAndAttributesArray(ULONG,const LUID_AND_ATTRIBUTES*,PLUID_AND_ATTRIBUTES);
|
||||
DWORD WINAPI RtlCopySid(DWORD,PSID,PSID);
|
||||
BOOLEAN WINAPI RtlCopySid(DWORD,PSID,PSID);
|
||||
void WINAPI RtlCopyString(STRING*,const STRING*);
|
||||
void WINAPI RtlCopyUnicodeString(UNICODE_STRING*,const UNICODE_STRING*);
|
||||
NTSTATUS WINAPI RtlCreateAcl(PACL,DWORD,DWORD);
|
||||
|
@ -1567,7 +1567,7 @@ void WINAPI RtlFreeOemString(POEM_STRING);
|
|||
DWORD WINAPI RtlFreeSid(PSID);
|
||||
void WINAPI RtlFreeUnicodeString(PUNICODE_STRING);
|
||||
|
||||
DWORD WINAPI RtlGetAce(PACL,DWORD,LPVOID *);
|
||||
NTSTATUS WINAPI RtlGetAce(PACL,DWORD,LPVOID *);
|
||||
NTSTATUS WINAPI RtlGetControlSecurityDescriptor(PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR_CONTROL,LPDWORD);
|
||||
NTSTATUS WINAPI RtlGetCurrentDirectory_U(ULONG, LPWSTR);
|
||||
NTSTATUS WINAPI RtlGetDaclSecurityDescriptor(PSECURITY_DESCRIPTOR,PBOOLEAN,PACL *,PBOOLEAN);
|
||||
|
|
Loading…
Reference in New Issue