1 /* 2 * COPYRIGHT: See COPYING in the top level directory 3 * PROJECT: ReactOS system libraries 4 * FILE: lib/advapi32/sec/trustee.c 5 * PURPOSE: Trustee functions 6 */ 7 8 #include <advapi32.h> 9 10 /****************************************************************************** 11 * BuildImpersonateTrusteeA [ADVAPI32.@] 12 */ 13 VOID WINAPI 14 BuildImpersonateTrusteeA(PTRUSTEE_A pTrustee, 15 PTRUSTEE_A pImpersonateTrustee) 16 { 17 pTrustee->pMultipleTrustee = pImpersonateTrustee; 18 pTrustee->MultipleTrusteeOperation = TRUSTEE_IS_IMPERSONATE; 19 } 20 21 22 /****************************************************************************** 23 * BuildImpersonateTrusteeW [ADVAPI32.@] 24 */ 25 VOID WINAPI 26 BuildImpersonateTrusteeW(PTRUSTEE_W pTrustee, 27 PTRUSTEE_W pImpersonateTrustee) 28 { 29 pTrustee->pMultipleTrustee = pImpersonateTrustee; 30 pTrustee->MultipleTrusteeOperation = TRUSTEE_IS_IMPERSONATE; 31 } 32 33 /****************************************************************************** 34 * BuildImpersonateExplicitAccessWithNameA [ADVAPI32.@] 35 */ 36 VOID WINAPI 37 BuildImpersonateExplicitAccessWithNameA(PEXPLICIT_ACCESS_A pExplicitAccess, 38 LPSTR pTrusteeName, 39 PTRUSTEE_A pTrustee, 40 DWORD AccessPermissions, 41 ACCESS_MODE AccessMode, 42 DWORD Inheritance) 43 { 44 pExplicitAccess->grfAccessPermissions = AccessPermissions; 45 pExplicitAccess->grfAccessMode = AccessMode; 46 pExplicitAccess->grfInheritance = Inheritance; 47 48 pExplicitAccess->Trustee.pMultipleTrustee = pTrustee; 49 pExplicitAccess->Trustee.MultipleTrusteeOperation = TRUSTEE_IS_IMPERSONATE; 50 pExplicitAccess->Trustee.TrusteeForm = TRUSTEE_IS_NAME; 51 pExplicitAccess->Trustee.TrusteeType = TRUSTEE_IS_UNKNOWN; 52 pExplicitAccess->Trustee.ptstrName = pTrusteeName; 53 } 54 55 56 /****************************************************************************** 57 * BuildImpersonateExplicitAccessWithNameW [ADVAPI32.@] 58 */ 59 VOID WINAPI 60 BuildImpersonateExplicitAccessWithNameW(PEXPLICIT_ACCESS_W pExplicitAccess, 61 LPWSTR pTrusteeName, 62 PTRUSTEE_W pTrustee, 63 DWORD AccessPermissions, 64 ACCESS_MODE AccessMode, 65 DWORD Inheritance) 66 { 67 pExplicitAccess->grfAccessPermissions = AccessPermissions; 68 pExplicitAccess->grfAccessMode = AccessMode; 69 pExplicitAccess->grfInheritance = Inheritance; 70 71 pExplicitAccess->Trustee.pMultipleTrustee = pTrustee; 72 pExplicitAccess->Trustee.MultipleTrusteeOperation = TRUSTEE_IS_IMPERSONATE; 73 pExplicitAccess->Trustee.TrusteeForm = TRUSTEE_IS_NAME; 74 pExplicitAccess->Trustee.TrusteeType = TRUSTEE_IS_UNKNOWN; 75 pExplicitAccess->Trustee.ptstrName = pTrusteeName; 76 } 77 78 /****************************************************************************** 79 * GetMultipleTrusteeA [ADVAPI32.@] 80 */ 81 PTRUSTEEA WINAPI 82 GetMultipleTrusteeA(PTRUSTEE_A pTrustee) 83 { 84 return pTrustee->pMultipleTrustee; 85 } 86 87 88 /****************************************************************************** 89 * GetMultipleTrusteeW [ADVAPI32.@] 90 */ 91 PTRUSTEEW WINAPI 92 GetMultipleTrusteeW(PTRUSTEE_W pTrustee) 93 { 94 return pTrustee->pMultipleTrustee; 95 } 96 97 98 /****************************************************************************** 99 * GetMultipleTrusteeOperationA [ADVAPI32.@] 100 */ 101 MULTIPLE_TRUSTEE_OPERATION WINAPI 102 GetMultipleTrusteeOperationA(PTRUSTEE_A pTrustee) 103 { 104 return pTrustee->MultipleTrusteeOperation; 105 } 106 107 108 /****************************************************************************** 109 * GetMultipleTrusteeOperationW [ADVAPI32.@] 110 */ 111 MULTIPLE_TRUSTEE_OPERATION WINAPI 112 GetMultipleTrusteeOperationW(PTRUSTEE_W pTrustee) 113 { 114 return pTrustee->MultipleTrusteeOperation; 115 } 116 117 /* EOF */ 118