Implement BuildExplicitAccessWithNameA/W() and
BuildImpersonateExplicitAccessWithNameA/W().
Modified: trunk/reactos/lib/advapi32/advapi32.def
Modified: trunk/reactos/lib/advapi32/sec/trustee.c
_____
Modified: trunk/reactos/lib/advapi32/advapi32.def
--- trunk/reactos/lib/advapi32/advapi32.def 2005-01-04 07:05:31 UTC
(rev 12784)
+++ trunk/reactos/lib/advapi32/advapi32.def 2005-01-04 09:35:28 UTC
(rev 12785)
@@ -1,4 +1,4 @@
-; $Id: advapi32.def,v 1.28 2004/12/15 12:29:36 ekohl Exp $
+; $Id$
;
; advapi32.def
;
@@ -31,10 +31,10 @@
BackupEventLogW@8
;BuildAccessRequestA
;BuildAccessRequestW
-;BuildExplicitAccessWithNameA@20
-;BuildExplicitAccessWithNameW@20
-;BuildImpersonateExplicitAccessWithNameA@24
-;BuildImpersonateExplicitAccessWithNameW@24
+BuildExplicitAccessWithNameA@20
+BuildExplicitAccessWithNameW@20
+BuildImpersonateExplicitAccessWithNameA@24
+BuildImpersonateExplicitAccessWithNameW@24
BuildImpersonateTrusteeA@8
BuildImpersonateTrusteeW@8
;BuildSecurityDescriptorA@36
_____
Modified: trunk/reactos/lib/advapi32/sec/trustee.c
--- trunk/reactos/lib/advapi32/sec/trustee.c 2005-01-04 07:05:31 UTC
(rev 12784)
+++ trunk/reactos/lib/advapi32/sec/trustee.c 2005-01-04 09:35:28 UTC
(rev 12785)
@@ -1,4 +1,4 @@
-/* $Id: trustee.c,v 1.3 2004/12/15 12:29:13 ekohl Exp $
+/* $Id$
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS system libraries
@@ -37,6 +37,96 @@
/***********************************************************************
*******
+ * 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.@]
+ */
+VOID WINAPI
+BuildImpersonateExplicitAccessWithNameA(PEXPLICIT_ACCESS_A
pExplicitAccess,
+ LPSTR pTrusteeName,
+ PTRUSTEE_A pTrustee,
+ DWORD AccessPermissions,
+ ACCESS_MODE AccessMode,
+ DWORD Inheritance)
+{
+ pExplicitAccess->grfAccessPermissions = AccessPermissions;
+ pExplicitAccess->grfAccessMode = AccessMode;
+ pExplicitAccess->grfInheritance = Inheritance;
+
+ pExplicitAccess->Trustee.pMultipleTrustee = pTrustee;
+ pExplicitAccess->Trustee.MultipleTrusteeOperation =
TRUSTEE_IS_IMPERSONATE;
+ pExplicitAccess->Trustee.TrusteeForm = TRUSTEE_IS_NAME;
+ pExplicitAccess->Trustee.TrusteeType = TRUSTEE_IS_UNKNOWN;
+ pExplicitAccess->Trustee.ptstrName = pTrusteeName;
+}
+
+
+/**********************************************************************
********
+ * BuildImpersonateExplicitAccessWithNameW [ADVAPI32.@]
+ */
+VOID WINAPI
+BuildImpersonateExplicitAccessWithNameW(PEXPLICIT_ACCESS_W
pExplicitAccess,
+ LPWSTR pTrusteeName,
+ PTRUSTEE_W pTrustee,
+ DWORD AccessPermissions,
+ ACCESS_MODE AccessMode,
+ DWORD Inheritance)
+{
+ pExplicitAccess->grfAccessPermissions = AccessPermissions;
+ pExplicitAccess->grfAccessMode = AccessMode;
+ pExplicitAccess->grfInheritance = Inheritance;
+
+ pExplicitAccess->Trustee.pMultipleTrustee = pTrustee;
+ pExplicitAccess->Trustee.MultipleTrusteeOperation =
TRUSTEE_IS_IMPERSONATE;
+ pExplicitAccess->Trustee.TrusteeForm = TRUSTEE_IS_NAME;
+ pExplicitAccess->Trustee.TrusteeType = TRUSTEE_IS_UNKNOWN;
+ pExplicitAccess->Trustee.ptstrName = pTrusteeName;
+}
+
+
+/**********************************************************************
********
* BuildTrusteeWithSidA [ADVAPI32.@]
*/
VOID WINAPI
Show replies by date