mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 22:52:54 +00:00
[ADVAPI32]
* Move some functions from trustee.c to security.c. CORE-8540 svn path=/trunk/; revision=64979
This commit is contained in:
parent
5781991967
commit
648ce226ac
2 changed files with 333 additions and 354 deletions
|
@ -32,51 +32,6 @@ BuildImpersonateTrusteeW(PTRUSTEE_W pTrustee,
|
||||||
pTrustee->MultipleTrusteeOperation = TRUSTEE_IS_IMPERSONATE;
|
pTrustee->MultipleTrusteeOperation = TRUSTEE_IS_IMPERSONATE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/******************************************************************************
|
|
||||||
* BuildExplicitAccessWithNameA [ADVAPI32.@]
|
|
||||||
*/
|
|
||||||
VOID WINAPI
|
|
||||||
BuildExplicitAccessWithNameA(PEXPLICIT_ACCESSA pExplicitAccess,
|
|
||||||
LPSTR pTrusteeName,
|
|
||||||
DWORD AccessPermissions,
|
|
||||||
ACCESS_MODE AccessMode,
|
|
||||||
DWORD 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)
|
|
||||||
{
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* BuildImpersonateExplicitAccessWithNameA [ADVAPI32.@]
|
* BuildImpersonateExplicitAccessWithNameA [ADVAPI32.@]
|
||||||
*/
|
*/
|
||||||
|
@ -122,255 +77,6 @@ BuildImpersonateExplicitAccessWithNameW(PEXPLICIT_ACCESS_W pExplicitAccess,
|
||||||
pExplicitAccess->Trustee.ptstrName = pTrusteeName;
|
pExplicitAccess->Trustee.ptstrName = pTrusteeName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/******************************************************************************
|
|
||||||
* BuildTrusteeWithSidA [ADVAPI32.@]
|
|
||||||
*/
|
|
||||||
VOID WINAPI
|
|
||||||
BuildTrusteeWithSidA(PTRUSTEE_A pTrustee,
|
|
||||||
PSID pSid)
|
|
||||||
{
|
|
||||||
TRACE("%p %p\n", pTrustee, pSid);
|
|
||||||
|
|
||||||
pTrustee->pMultipleTrustee = NULL;
|
|
||||||
pTrustee->MultipleTrusteeOperation = NO_MULTIPLE_TRUSTEE;
|
|
||||||
pTrustee->TrusteeForm = TRUSTEE_IS_SID;
|
|
||||||
pTrustee->TrusteeType = TRUSTEE_IS_UNKNOWN;
|
|
||||||
pTrustee->ptstrName = (LPSTR) pSid;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/******************************************************************************
|
|
||||||
* BuildTrusteeWithSidW [ADVAPI32.@]
|
|
||||||
*/
|
|
||||||
VOID WINAPI
|
|
||||||
BuildTrusteeWithSidW(PTRUSTEE_W pTrustee,
|
|
||||||
PSID pSid)
|
|
||||||
{
|
|
||||||
TRACE("%p %p\n", pTrustee, pSid);
|
|
||||||
|
|
||||||
pTrustee->pMultipleTrustee = NULL;
|
|
||||||
pTrustee->MultipleTrusteeOperation = NO_MULTIPLE_TRUSTEE;
|
|
||||||
pTrustee->TrusteeForm = TRUSTEE_IS_SID;
|
|
||||||
pTrustee->TrusteeType = TRUSTEE_IS_UNKNOWN;
|
|
||||||
pTrustee->ptstrName = (LPWSTR) pSid;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/******************************************************************************
|
|
||||||
* BuildTrusteeWithNameA [ADVAPI32.@]
|
|
||||||
*/
|
|
||||||
VOID WINAPI
|
|
||||||
BuildTrusteeWithNameA(PTRUSTEE_A pTrustee,
|
|
||||||
LPSTR name)
|
|
||||||
{
|
|
||||||
TRACE("%p %s\n", pTrustee, name);
|
|
||||||
|
|
||||||
pTrustee->pMultipleTrustee = NULL;
|
|
||||||
pTrustee->MultipleTrusteeOperation = NO_MULTIPLE_TRUSTEE;
|
|
||||||
pTrustee->TrusteeForm = TRUSTEE_IS_NAME;
|
|
||||||
pTrustee->TrusteeType = TRUSTEE_IS_UNKNOWN;
|
|
||||||
pTrustee->ptstrName = name;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/******************************************************************************
|
|
||||||
* BuildTrusteeWithNameW [ADVAPI32.@]
|
|
||||||
*/
|
|
||||||
VOID WINAPI
|
|
||||||
BuildTrusteeWithNameW(PTRUSTEE_W pTrustee,
|
|
||||||
LPWSTR name)
|
|
||||||
{
|
|
||||||
TRACE("%p %s\n", pTrustee, name);
|
|
||||||
|
|
||||||
pTrustee->pMultipleTrustee = NULL;
|
|
||||||
pTrustee->MultipleTrusteeOperation = NO_MULTIPLE_TRUSTEE;
|
|
||||||
pTrustee->TrusteeForm = TRUSTEE_IS_NAME;
|
|
||||||
pTrustee->TrusteeType = TRUSTEE_IS_UNKNOWN;
|
|
||||||
pTrustee->ptstrName = name;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/******************************************************************************
|
|
||||||
* BuildTrusteeWithObjectsAndNameA [ADVAPI32.@]
|
|
||||||
*/
|
|
||||||
VOID WINAPI
|
|
||||||
BuildTrusteeWithObjectsAndNameA(PTRUSTEEA pTrustee,
|
|
||||||
POBJECTS_AND_NAME_A pObjName,
|
|
||||||
SE_OBJECT_TYPE ObjectType,
|
|
||||||
LPSTR ObjectTypeName,
|
|
||||||
LPSTR InheritedObjectTypeName,
|
|
||||||
LPSTR Name)
|
|
||||||
{
|
|
||||||
DWORD ObjectsPresent = 0;
|
|
||||||
|
|
||||||
TRACE("%p %p 0x%08x %p %p %s\n", pTrustee, pObjName,
|
|
||||||
ObjectType, ObjectTypeName, InheritedObjectTypeName, Name);
|
|
||||||
|
|
||||||
/* Fill the OBJECTS_AND_NAME structure */
|
|
||||||
pObjName->ObjectType = ObjectType;
|
|
||||||
if (ObjectTypeName != NULL)
|
|
||||||
{
|
|
||||||
ObjectsPresent |= ACE_OBJECT_TYPE_PRESENT;
|
|
||||||
}
|
|
||||||
|
|
||||||
pObjName->InheritedObjectTypeName = InheritedObjectTypeName;
|
|
||||||
if (InheritedObjectTypeName != NULL)
|
|
||||||
{
|
|
||||||
ObjectsPresent |= ACE_INHERITED_OBJECT_TYPE_PRESENT;
|
|
||||||
}
|
|
||||||
|
|
||||||
pObjName->ObjectsPresent = ObjectsPresent;
|
|
||||||
pObjName->ptstrName = Name;
|
|
||||||
|
|
||||||
/* Fill the TRUSTEE structure */
|
|
||||||
pTrustee->pMultipleTrustee = NULL;
|
|
||||||
pTrustee->MultipleTrusteeOperation = NO_MULTIPLE_TRUSTEE;
|
|
||||||
pTrustee->TrusteeForm = TRUSTEE_IS_OBJECTS_AND_NAME;
|
|
||||||
pTrustee->TrusteeType = TRUSTEE_IS_UNKNOWN;
|
|
||||||
pTrustee->ptstrName = (LPSTR)pObjName;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/******************************************************************************
|
|
||||||
* BuildTrusteeWithObjectsAndNameW [ADVAPI32.@]
|
|
||||||
*/
|
|
||||||
VOID WINAPI
|
|
||||||
BuildTrusteeWithObjectsAndNameW(PTRUSTEEW pTrustee,
|
|
||||||
POBJECTS_AND_NAME_W pObjName,
|
|
||||||
SE_OBJECT_TYPE ObjectType,
|
|
||||||
LPWSTR ObjectTypeName,
|
|
||||||
LPWSTR InheritedObjectTypeName,
|
|
||||||
LPWSTR Name)
|
|
||||||
{
|
|
||||||
DWORD ObjectsPresent = 0;
|
|
||||||
|
|
||||||
TRACE("%p %p 0x%08x %p %p %s\n", pTrustee, pObjName,
|
|
||||||
ObjectType, ObjectTypeName, InheritedObjectTypeName, Name);
|
|
||||||
|
|
||||||
/* Fill the OBJECTS_AND_NAME structure */
|
|
||||||
pObjName->ObjectType = ObjectType;
|
|
||||||
if (ObjectTypeName != NULL)
|
|
||||||
{
|
|
||||||
ObjectsPresent |= ACE_OBJECT_TYPE_PRESENT;
|
|
||||||
}
|
|
||||||
|
|
||||||
pObjName->InheritedObjectTypeName = InheritedObjectTypeName;
|
|
||||||
if (InheritedObjectTypeName != NULL)
|
|
||||||
{
|
|
||||||
ObjectsPresent |= ACE_INHERITED_OBJECT_TYPE_PRESENT;
|
|
||||||
}
|
|
||||||
|
|
||||||
pObjName->ObjectsPresent = ObjectsPresent;
|
|
||||||
pObjName->ptstrName = Name;
|
|
||||||
|
|
||||||
/* Fill the TRUSTEE structure */
|
|
||||||
pTrustee->pMultipleTrustee = NULL;
|
|
||||||
pTrustee->MultipleTrusteeOperation = NO_MULTIPLE_TRUSTEE;
|
|
||||||
pTrustee->TrusteeForm = TRUSTEE_IS_OBJECTS_AND_NAME;
|
|
||||||
pTrustee->TrusteeType = TRUSTEE_IS_UNKNOWN;
|
|
||||||
pTrustee->ptstrName = (LPWSTR)pObjName;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/******************************************************************************
|
|
||||||
* BuildTrusteeWithObjectsAndSidA [ADVAPI32.@]
|
|
||||||
*/
|
|
||||||
VOID WINAPI
|
|
||||||
BuildTrusteeWithObjectsAndSidA(PTRUSTEEA pTrustee,
|
|
||||||
POBJECTS_AND_SID pObjSid,
|
|
||||||
GUID *pObjectGuid,
|
|
||||||
GUID *pInheritedObjectGuid,
|
|
||||||
PSID pSid)
|
|
||||||
{
|
|
||||||
DWORD ObjectsPresent = 0;
|
|
||||||
|
|
||||||
TRACE("%p %p %p %p %p\n", pTrustee, pObjSid, pObjectGuid, pInheritedObjectGuid, pSid);
|
|
||||||
|
|
||||||
/* Fill the OBJECTS_AND_SID structure */
|
|
||||||
if (pObjectGuid != NULL)
|
|
||||||
{
|
|
||||||
pObjSid->ObjectTypeGuid = *pObjectGuid;
|
|
||||||
ObjectsPresent |= ACE_OBJECT_TYPE_PRESENT;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ZeroMemory(&pObjSid->ObjectTypeGuid,
|
|
||||||
sizeof(GUID));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (pInheritedObjectGuid != NULL)
|
|
||||||
{
|
|
||||||
pObjSid->InheritedObjectTypeGuid = *pInheritedObjectGuid;
|
|
||||||
ObjectsPresent |= ACE_INHERITED_OBJECT_TYPE_PRESENT;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ZeroMemory(&pObjSid->InheritedObjectTypeGuid,
|
|
||||||
sizeof(GUID));
|
|
||||||
}
|
|
||||||
|
|
||||||
pObjSid->ObjectsPresent = ObjectsPresent;
|
|
||||||
pObjSid->pSid = pSid;
|
|
||||||
|
|
||||||
/* Fill the TRUSTEE structure */
|
|
||||||
pTrustee->pMultipleTrustee = NULL;
|
|
||||||
pTrustee->MultipleTrusteeOperation = NO_MULTIPLE_TRUSTEE;
|
|
||||||
pTrustee->TrusteeForm = TRUSTEE_IS_OBJECTS_AND_SID;
|
|
||||||
pTrustee->TrusteeType = TRUSTEE_IS_UNKNOWN;
|
|
||||||
pTrustee->ptstrName = (LPSTR) pObjSid;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/******************************************************************************
|
|
||||||
* BuildTrusteeWithObjectsAndSidW [ADVAPI32.@]
|
|
||||||
*/
|
|
||||||
VOID WINAPI
|
|
||||||
BuildTrusteeWithObjectsAndSidW(PTRUSTEEW pTrustee,
|
|
||||||
POBJECTS_AND_SID pObjSid,
|
|
||||||
GUID *pObjectGuid,
|
|
||||||
GUID *pInheritedObjectGuid,
|
|
||||||
PSID pSid)
|
|
||||||
{
|
|
||||||
DWORD ObjectsPresent = 0;
|
|
||||||
|
|
||||||
TRACE("%p %p %p %p %p\n", pTrustee, pObjSid, pObjectGuid, pInheritedObjectGuid, pSid);
|
|
||||||
|
|
||||||
/* Fill the OBJECTS_AND_SID structure */
|
|
||||||
if (pObjectGuid != NULL)
|
|
||||||
{
|
|
||||||
pObjSid->ObjectTypeGuid = *pObjectGuid;
|
|
||||||
ObjectsPresent |= ACE_OBJECT_TYPE_PRESENT;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ZeroMemory(&pObjSid->ObjectTypeGuid,
|
|
||||||
sizeof(GUID));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (pInheritedObjectGuid != NULL)
|
|
||||||
{
|
|
||||||
pObjSid->InheritedObjectTypeGuid = *pInheritedObjectGuid;
|
|
||||||
ObjectsPresent |= ACE_INHERITED_OBJECT_TYPE_PRESENT;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ZeroMemory(&pObjSid->InheritedObjectTypeGuid,
|
|
||||||
sizeof(GUID));
|
|
||||||
}
|
|
||||||
|
|
||||||
pObjSid->ObjectsPresent = ObjectsPresent;
|
|
||||||
pObjSid->pSid = pSid;
|
|
||||||
|
|
||||||
/* Fill the TRUSTEE structure */
|
|
||||||
pTrustee->pMultipleTrustee = NULL;
|
|
||||||
pTrustee->MultipleTrusteeOperation = NO_MULTIPLE_TRUSTEE;
|
|
||||||
pTrustee->TrusteeForm = TRUSTEE_IS_OBJECTS_AND_SID;
|
|
||||||
pTrustee->TrusteeType = TRUSTEE_IS_UNKNOWN;
|
|
||||||
pTrustee->ptstrName = (LPWSTR) pObjSid;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* GetMultipleTrusteeA [ADVAPI32.@]
|
* GetMultipleTrusteeA [ADVAPI32.@]
|
||||||
*/
|
*/
|
||||||
|
@ -410,64 +116,4 @@ GetMultipleTrusteeOperationW(PTRUSTEE_W pTrustee)
|
||||||
return pTrustee->MultipleTrusteeOperation;
|
return pTrustee->MultipleTrusteeOperation;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/******************************************************************************
|
|
||||||
* GetTrusteeFormW [ADVAPI32.@]
|
|
||||||
*/
|
|
||||||
TRUSTEE_FORM WINAPI
|
|
||||||
GetTrusteeFormA(PTRUSTEE_A pTrustee)
|
|
||||||
{
|
|
||||||
return pTrustee->TrusteeForm;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/******************************************************************************
|
|
||||||
* GetTrusteeFormW [ADVAPI32.@]
|
|
||||||
*/
|
|
||||||
TRUSTEE_FORM WINAPI
|
|
||||||
GetTrusteeFormW(PTRUSTEE_W pTrustee)
|
|
||||||
{
|
|
||||||
return pTrustee->TrusteeForm;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/******************************************************************************
|
|
||||||
* GetTrusteeNameA [ADVAPI32.@]
|
|
||||||
*/
|
|
||||||
LPSTR WINAPI
|
|
||||||
GetTrusteeNameA(PTRUSTEE_A pTrustee)
|
|
||||||
{
|
|
||||||
return pTrustee->ptstrName;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/******************************************************************************
|
|
||||||
* GetTrusteeNameW [ADVAPI32.@]
|
|
||||||
*/
|
|
||||||
LPWSTR WINAPI
|
|
||||||
GetTrusteeNameW(PTRUSTEE_W pTrustee)
|
|
||||||
{
|
|
||||||
return pTrustee->ptstrName;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/******************************************************************************
|
|
||||||
* GetTrusteeTypeA [ADVAPI32.@]
|
|
||||||
*/
|
|
||||||
TRUSTEE_TYPE WINAPI
|
|
||||||
GetTrusteeTypeA(PTRUSTEE_A pTrustee)
|
|
||||||
{
|
|
||||||
return pTrustee->TrusteeType;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/******************************************************************************
|
|
||||||
* GetTrusteeTypeW [ADVAPI32.@]
|
|
||||||
*/
|
|
||||||
TRUSTEE_TYPE WINAPI
|
|
||||||
GetTrusteeTypeW(PTRUSTEE_W pTrustee)
|
|
||||||
{
|
|
||||||
return pTrustee->TrusteeType;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* EOF */
|
/* EOF */
|
||||||
|
|
|
@ -1813,6 +1813,339 @@ GetSecurityInfoExW(HANDLE hObject,
|
||||||
return ERROR_BAD_PROVIDER;
|
return ERROR_BAD_PROVIDER;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* BuildExplicitAccessWithNameA [ADVAPI32.@]
|
||||||
|
*/
|
||||||
|
VOID WINAPI
|
||||||
|
BuildExplicitAccessWithNameA(PEXPLICIT_ACCESSA pExplicitAccess,
|
||||||
|
LPSTR pTrusteeName,
|
||||||
|
DWORD AccessPermissions,
|
||||||
|
ACCESS_MODE AccessMode,
|
||||||
|
DWORD 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)
|
||||||
|
{
|
||||||
|
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 )
|
||||||
|
{
|
||||||
|
DWORD ObjectsPresent = 0;
|
||||||
|
|
||||||
|
TRACE("%p %p 0x%08x %p %p %s\n", pTrustee, pObjName,
|
||||||
|
ObjectType, ObjectTypeName, InheritedObjectTypeName, debugstr_a(Name));
|
||||||
|
|
||||||
|
/* Fill the OBJECTS_AND_NAME structure */
|
||||||
|
pObjName->ObjectType = ObjectType;
|
||||||
|
if (ObjectTypeName != NULL)
|
||||||
|
{
|
||||||
|
ObjectsPresent |= ACE_OBJECT_TYPE_PRESENT;
|
||||||
|
}
|
||||||
|
|
||||||
|
pObjName->InheritedObjectTypeName = InheritedObjectTypeName;
|
||||||
|
if (InheritedObjectTypeName != NULL)
|
||||||
|
{
|
||||||
|
ObjectsPresent |= ACE_INHERITED_OBJECT_TYPE_PRESENT;
|
||||||
|
}
|
||||||
|
|
||||||
|
pObjName->ObjectsPresent = ObjectsPresent;
|
||||||
|
pObjName->ptstrName = Name;
|
||||||
|
|
||||||
|
/* Fill the TRUSTEE structure */
|
||||||
|
pTrustee->pMultipleTrustee = NULL;
|
||||||
|
pTrustee->MultipleTrusteeOperation = NO_MULTIPLE_TRUSTEE;
|
||||||
|
pTrustee->TrusteeForm = TRUSTEE_IS_OBJECTS_AND_NAME;
|
||||||
|
pTrustee->TrusteeType = TRUSTEE_IS_UNKNOWN;
|
||||||
|
pTrustee->ptstrName = (LPSTR)pObjName;
|
||||||
|
}
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* BuildTrusteeWithObjectsAndNameW [ADVAPI32.@]
|
||||||
|
*/
|
||||||
|
VOID WINAPI BuildTrusteeWithObjectsAndNameW( PTRUSTEEW pTrustee, POBJECTS_AND_NAME_W pObjName,
|
||||||
|
SE_OBJECT_TYPE ObjectType, LPWSTR ObjectTypeName,
|
||||||
|
LPWSTR InheritedObjectTypeName, LPWSTR Name )
|
||||||
|
{
|
||||||
|
DWORD ObjectsPresent = 0;
|
||||||
|
|
||||||
|
TRACE("%p %p 0x%08x %p %p %s\n", pTrustee, pObjName,
|
||||||
|
ObjectType, ObjectTypeName, InheritedObjectTypeName, debugstr_w(Name));
|
||||||
|
|
||||||
|
/* Fill the OBJECTS_AND_NAME structure */
|
||||||
|
pObjName->ObjectType = ObjectType;
|
||||||
|
if (ObjectTypeName != NULL)
|
||||||
|
{
|
||||||
|
ObjectsPresent |= ACE_OBJECT_TYPE_PRESENT;
|
||||||
|
}
|
||||||
|
|
||||||
|
pObjName->InheritedObjectTypeName = InheritedObjectTypeName;
|
||||||
|
if (InheritedObjectTypeName != NULL)
|
||||||
|
{
|
||||||
|
ObjectsPresent |= ACE_INHERITED_OBJECT_TYPE_PRESENT;
|
||||||
|
}
|
||||||
|
|
||||||
|
pObjName->ObjectsPresent = ObjectsPresent;
|
||||||
|
pObjName->ptstrName = Name;
|
||||||
|
|
||||||
|
/* Fill the TRUSTEE structure */
|
||||||
|
pTrustee->pMultipleTrustee = NULL;
|
||||||
|
pTrustee->MultipleTrusteeOperation = NO_MULTIPLE_TRUSTEE;
|
||||||
|
pTrustee->TrusteeForm = TRUSTEE_IS_OBJECTS_AND_NAME;
|
||||||
|
pTrustee->TrusteeType = TRUSTEE_IS_UNKNOWN;
|
||||||
|
pTrustee->ptstrName = (LPWSTR)pObjName;
|
||||||
|
}
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* BuildTrusteeWithObjectsAndSidA [ADVAPI32.@]
|
||||||
|
*/
|
||||||
|
VOID WINAPI
|
||||||
|
BuildTrusteeWithObjectsAndSidA(PTRUSTEEA pTrustee,
|
||||||
|
POBJECTS_AND_SID pObjSid,
|
||||||
|
GUID *pObjectGuid,
|
||||||
|
GUID *pInheritedObjectGuid,
|
||||||
|
PSID pSid)
|
||||||
|
{
|
||||||
|
DWORD ObjectsPresent = 0;
|
||||||
|
|
||||||
|
TRACE("%p %p %p %p %p\n", pTrustee, pObjSid, pObjectGuid, pInheritedObjectGuid, pSid);
|
||||||
|
|
||||||
|
/* Fill the OBJECTS_AND_SID structure */
|
||||||
|
if (pObjectGuid != NULL)
|
||||||
|
{
|
||||||
|
pObjSid->ObjectTypeGuid = *pObjectGuid;
|
||||||
|
ObjectsPresent |= ACE_OBJECT_TYPE_PRESENT;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ZeroMemory(&pObjSid->ObjectTypeGuid,
|
||||||
|
sizeof(GUID));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pInheritedObjectGuid != NULL)
|
||||||
|
{
|
||||||
|
pObjSid->InheritedObjectTypeGuid = *pInheritedObjectGuid;
|
||||||
|
ObjectsPresent |= ACE_INHERITED_OBJECT_TYPE_PRESENT;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ZeroMemory(&pObjSid->InheritedObjectTypeGuid,
|
||||||
|
sizeof(GUID));
|
||||||
|
}
|
||||||
|
|
||||||
|
pObjSid->ObjectsPresent = ObjectsPresent;
|
||||||
|
pObjSid->pSid = pSid;
|
||||||
|
|
||||||
|
/* Fill the TRUSTEE structure */
|
||||||
|
pTrustee->pMultipleTrustee = NULL;
|
||||||
|
pTrustee->MultipleTrusteeOperation = NO_MULTIPLE_TRUSTEE;
|
||||||
|
pTrustee->TrusteeForm = TRUSTEE_IS_OBJECTS_AND_SID;
|
||||||
|
pTrustee->TrusteeType = TRUSTEE_IS_UNKNOWN;
|
||||||
|
pTrustee->ptstrName = (LPSTR) pObjSid;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* BuildTrusteeWithObjectsAndSidW [ADVAPI32.@]
|
||||||
|
*/
|
||||||
|
VOID WINAPI
|
||||||
|
BuildTrusteeWithObjectsAndSidW(PTRUSTEEW pTrustee,
|
||||||
|
POBJECTS_AND_SID pObjSid,
|
||||||
|
GUID *pObjectGuid,
|
||||||
|
GUID *pInheritedObjectGuid,
|
||||||
|
PSID pSid)
|
||||||
|
{
|
||||||
|
DWORD ObjectsPresent = 0;
|
||||||
|
|
||||||
|
TRACE("%p %p %p %p %p\n", pTrustee, pObjSid, pObjectGuid, pInheritedObjectGuid, pSid);
|
||||||
|
|
||||||
|
/* Fill the OBJECTS_AND_SID structure */
|
||||||
|
if (pObjectGuid != NULL)
|
||||||
|
{
|
||||||
|
pObjSid->ObjectTypeGuid = *pObjectGuid;
|
||||||
|
ObjectsPresent |= ACE_OBJECT_TYPE_PRESENT;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ZeroMemory(&pObjSid->ObjectTypeGuid,
|
||||||
|
sizeof(GUID));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pInheritedObjectGuid != NULL)
|
||||||
|
{
|
||||||
|
pObjSid->InheritedObjectTypeGuid = *pInheritedObjectGuid;
|
||||||
|
ObjectsPresent |= ACE_INHERITED_OBJECT_TYPE_PRESENT;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ZeroMemory(&pObjSid->InheritedObjectTypeGuid,
|
||||||
|
sizeof(GUID));
|
||||||
|
}
|
||||||
|
|
||||||
|
pObjSid->ObjectsPresent = ObjectsPresent;
|
||||||
|
pObjSid->pSid = pSid;
|
||||||
|
|
||||||
|
/* Fill the TRUSTEE structure */
|
||||||
|
pTrustee->pMultipleTrustee = NULL;
|
||||||
|
pTrustee->MultipleTrusteeOperation = NO_MULTIPLE_TRUSTEE;
|
||||||
|
pTrustee->TrusteeForm = TRUSTEE_IS_OBJECTS_AND_SID;
|
||||||
|
pTrustee->TrusteeType = TRUSTEE_IS_UNKNOWN;
|
||||||
|
pTrustee->ptstrName = (LPWSTR) pObjSid;
|
||||||
|
}
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* BuildTrusteeWithSidA [ADVAPI32.@]
|
||||||
|
*/
|
||||||
|
VOID WINAPI
|
||||||
|
BuildTrusteeWithSidA(PTRUSTEE_A pTrustee,
|
||||||
|
PSID pSid)
|
||||||
|
{
|
||||||
|
TRACE("%p %p\n", pTrustee, pSid);
|
||||||
|
|
||||||
|
pTrustee->pMultipleTrustee = NULL;
|
||||||
|
pTrustee->MultipleTrusteeOperation = NO_MULTIPLE_TRUSTEE;
|
||||||
|
pTrustee->TrusteeForm = TRUSTEE_IS_SID;
|
||||||
|
pTrustee->TrusteeType = TRUSTEE_IS_UNKNOWN;
|
||||||
|
pTrustee->ptstrName = (LPSTR) pSid;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* BuildTrusteeWithSidW [ADVAPI32.@]
|
||||||
|
*/
|
||||||
|
VOID WINAPI
|
||||||
|
BuildTrusteeWithSidW(PTRUSTEE_W pTrustee,
|
||||||
|
PSID pSid)
|
||||||
|
{
|
||||||
|
TRACE("%p %p\n", pTrustee, pSid);
|
||||||
|
|
||||||
|
pTrustee->pMultipleTrustee = NULL;
|
||||||
|
pTrustee->MultipleTrusteeOperation = NO_MULTIPLE_TRUSTEE;
|
||||||
|
pTrustee->TrusteeForm = TRUSTEE_IS_SID;
|
||||||
|
pTrustee->TrusteeType = TRUSTEE_IS_UNKNOWN;
|
||||||
|
pTrustee->ptstrName = (LPWSTR) pSid;
|
||||||
|
}
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* BuildTrusteeWithNameA [ADVAPI32.@]
|
||||||
|
*/
|
||||||
|
VOID WINAPI
|
||||||
|
BuildTrusteeWithNameA(PTRUSTEE_A pTrustee,
|
||||||
|
LPSTR name)
|
||||||
|
{
|
||||||
|
TRACE("%p %s\n", pTrustee, name);
|
||||||
|
|
||||||
|
pTrustee->pMultipleTrustee = NULL;
|
||||||
|
pTrustee->MultipleTrusteeOperation = NO_MULTIPLE_TRUSTEE;
|
||||||
|
pTrustee->TrusteeForm = TRUSTEE_IS_NAME;
|
||||||
|
pTrustee->TrusteeType = TRUSTEE_IS_UNKNOWN;
|
||||||
|
pTrustee->ptstrName = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* BuildTrusteeWithNameW [ADVAPI32.@]
|
||||||
|
*/
|
||||||
|
VOID WINAPI
|
||||||
|
BuildTrusteeWithNameW(PTRUSTEE_W pTrustee,
|
||||||
|
LPWSTR name)
|
||||||
|
{
|
||||||
|
TRACE("%p %s\n", pTrustee, name);
|
||||||
|
|
||||||
|
pTrustee->pMultipleTrustee = NULL;
|
||||||
|
pTrustee->MultipleTrusteeOperation = NO_MULTIPLE_TRUSTEE;
|
||||||
|
pTrustee->TrusteeForm = TRUSTEE_IS_NAME;
|
||||||
|
pTrustee->TrusteeType = TRUSTEE_IS_UNKNOWN;
|
||||||
|
pTrustee->ptstrName = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* GetTrusteeFormW [ADVAPI32.@]
|
||||||
|
*/
|
||||||
|
TRUSTEE_FORM WINAPI
|
||||||
|
GetTrusteeFormA(PTRUSTEE_A pTrustee)
|
||||||
|
{
|
||||||
|
return pTrustee->TrusteeForm;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* GetTrusteeFormW [ADVAPI32.@]
|
||||||
|
*/
|
||||||
|
TRUSTEE_FORM WINAPI
|
||||||
|
GetTrusteeFormW(PTRUSTEE_W pTrustee)
|
||||||
|
{
|
||||||
|
return pTrustee->TrusteeForm;
|
||||||
|
}
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* GetTrusteeNameA [ADVAPI32.@]
|
||||||
|
*/
|
||||||
|
LPSTR WINAPI
|
||||||
|
GetTrusteeNameA(PTRUSTEE_A pTrustee)
|
||||||
|
{
|
||||||
|
return pTrustee->ptstrName;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* GetTrusteeNameW [ADVAPI32.@]
|
||||||
|
*/
|
||||||
|
LPWSTR WINAPI
|
||||||
|
GetTrusteeNameW(PTRUSTEE_W pTrustee)
|
||||||
|
{
|
||||||
|
return pTrustee->ptstrName;
|
||||||
|
}
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* GetTrusteeTypeA [ADVAPI32.@]
|
||||||
|
*/
|
||||||
|
TRUSTEE_TYPE WINAPI
|
||||||
|
GetTrusteeTypeA(PTRUSTEE_A pTrustee)
|
||||||
|
{
|
||||||
|
return pTrustee->TrusteeType;
|
||||||
|
}
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* GetTrusteeTypeW [ADVAPI32.@]
|
||||||
|
*/
|
||||||
|
TRUSTEE_TYPE WINAPI
|
||||||
|
GetTrusteeTypeW(PTRUSTEE_W pTrustee)
|
||||||
|
{
|
||||||
|
return pTrustee->TrusteeType;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @implemented
|
* @implemented
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue