[PATCH] advapi32/tests: Remove some workarounds for older versions.

Nikolay Sivov nsivov at codeweavers.com
Thu Jan 9 00:24:27 CST 2020


Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
---

All of these functions are linked directly in the same or other modules.

 dlls/advapi32/tests/security.c | 360 +++++++++++++--------------------
 dlls/advapi32/tests/service.c  |  13 +-
 2 files changed, 147 insertions(+), 226 deletions(-)

diff --git a/dlls/advapi32/tests/security.c b/dlls/advapi32/tests/security.c
index d52afb8c82..48389bf42b 100644
--- a/dlls/advapi32/tests/security.c
+++ b/dlls/advapi32/tests/security.c
@@ -80,17 +80,11 @@ static VOID (WINAPI *pBuildTrusteeWithObjectsAndSidA)( PTRUSTEEA pTrustee,
                                                          GUID* pInheritedObjectGuid,
                                                          PSID pSid );
 static LPSTR (WINAPI *pGetTrusteeNameA)( PTRUSTEEA pTrustee );
-static BOOL (WINAPI *pMakeSelfRelativeSD)( PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR, LPDWORD );
-static BOOL (WINAPI *pConvertStringSidToSidA)( LPCSTR str, PSID pSid );
 static BOOL (WINAPI *pCheckTokenMembership)(HANDLE, PSID, PBOOL);
-static BOOL (WINAPI *pConvertStringSecurityDescriptorToSecurityDescriptorA)(LPCSTR, DWORD,
-                                                                            PSECURITY_DESCRIPTOR*, PULONG );
 static BOOL (WINAPI *pConvertStringSecurityDescriptorToSecurityDescriptorW)(LPCWSTR, DWORD,
                                                                             PSECURITY_DESCRIPTOR*, PULONG );
 static BOOL (WINAPI *pConvertSecurityDescriptorToStringSecurityDescriptorA)(PSECURITY_DESCRIPTOR, DWORD,
                                                                             SECURITY_INFORMATION, LPSTR *, PULONG );
-static BOOL (WINAPI *pGetFileSecurityA)(LPCSTR, SECURITY_INFORMATION,
-                                          PSECURITY_DESCRIPTOR, DWORD, LPDWORD);
 static BOOL (WINAPI *pSetFileSecurityA)(LPCSTR, SECURITY_INFORMATION,
                                           PSECURITY_DESCRIPTOR);
 static DWORD (WINAPI *pGetNamedSecurityInfoA)(LPSTR, SE_OBJECT_TYPE, SECURITY_INFORMATION,
@@ -98,33 +92,21 @@ static DWORD (WINAPI *pGetNamedSecurityInfoA)(LPSTR, SE_OBJECT_TYPE, SECURITY_IN
                                               PSECURITY_DESCRIPTOR*);
 static DWORD (WINAPI *pSetNamedSecurityInfoA)(LPSTR, SE_OBJECT_TYPE, SECURITY_INFORMATION,
                                               PSID, PSID, PACL, PACL);
-static PDWORD (WINAPI *pGetSidSubAuthority)(PSID, DWORD);
-static PUCHAR (WINAPI *pGetSidSubAuthorityCount)(PSID);
-static BOOL (WINAPI *pIsValidSid)(PSID);
 static DWORD (WINAPI *pRtlAdjustPrivilege)(ULONG,BOOLEAN,BOOLEAN,PBOOLEAN);
 static BOOL (WINAPI *pCreateWellKnownSid)(WELL_KNOWN_SID_TYPE,PSID,PSID,DWORD*);
 static BOOL (WINAPI *pDuplicateTokenEx)(HANDLE,DWORD,LPSECURITY_ATTRIBUTES,
                                         SECURITY_IMPERSONATION_LEVEL,TOKEN_TYPE,PHANDLE);
 
-static NTSTATUS (WINAPI *pLsaQueryInformationPolicy)(LSA_HANDLE,POLICY_INFORMATION_CLASS,PVOID*);
-static NTSTATUS (WINAPI *pLsaClose)(LSA_HANDLE);
-static NTSTATUS (WINAPI *pLsaFreeMemory)(PVOID);
-static NTSTATUS (WINAPI *pLsaOpenPolicy)(PLSA_UNICODE_STRING,PLSA_OBJECT_ATTRIBUTES,ACCESS_MASK,PLSA_HANDLE);
 static NTSTATUS (WINAPI *pNtQueryObject)(HANDLE,OBJECT_INFORMATION_CLASS,PVOID,ULONG,PULONG);
 static DWORD (WINAPI *pSetEntriesInAclW)(ULONG, PEXPLICIT_ACCESSW, PACL, PACL*);
-static DWORD (WINAPI *pSetEntriesInAclA)(ULONG, PEXPLICIT_ACCESSA, PACL, PACL*);
 static BOOL (WINAPI *pSetSecurityDescriptorControl)(PSECURITY_DESCRIPTOR, SECURITY_DESCRIPTOR_CONTROL,
                                                     SECURITY_DESCRIPTOR_CONTROL);
-static DWORD (WINAPI *pGetSecurityInfo)(HANDLE, SE_OBJECT_TYPE, SECURITY_INFORMATION,
-                                        PSID*, PSID*, PACL*, PACL*, PSECURITY_DESCRIPTOR*);
 static DWORD (WINAPI *pSetSecurityInfo)(HANDLE, SE_OBJECT_TYPE, SECURITY_INFORMATION,
                                         PSID, PSID, PACL, PACL);
 static NTSTATUS (WINAPI *pNtAccessCheck)(PSECURITY_DESCRIPTOR, HANDLE, ACCESS_MASK, PGENERIC_MAPPING,
                                          PPRIVILEGE_SET, PULONG, PULONG, NTSTATUS*);
 static BOOL (WINAPI *pCreateRestrictedToken)(HANDLE, DWORD, DWORD, PSID_AND_ATTRIBUTES, DWORD,
                                              PLUID_AND_ATTRIBUTES, DWORD, PSID_AND_ATTRIBUTES, PHANDLE);
-static BOOL (WINAPI *pGetAclInformation)(PACL,LPVOID,DWORD,ACL_INFORMATION_CLASS);
-static BOOL (WINAPI *pGetAce)(PACL,DWORD,LPVOID*);
 static NTSTATUS (WINAPI *pNtSetSecurityObject)(HANDLE,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR);
 static NTSTATUS (WINAPI *pNtCreateFile)(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES,PIO_STATUS_BLOCK,PLARGE_INTEGER,ULONG,ULONG,ULONG,ULONG,PVOID,ULONG);
 static BOOL     (WINAPI *pRtlDosPathNameToNtPathName_U)(LPCWSTR,PUNICODE_STRING,PWSTR*,CURDIR*);
@@ -184,30 +166,18 @@ static void init(void)
     pAddAuditAccessAceEx = (void *)GetProcAddress(hmod, "AddAuditAccessAceEx");
     pAddMandatoryAce = (void *)GetProcAddress(hmod, "AddMandatoryAce");
     pCheckTokenMembership = (void *)GetProcAddress(hmod, "CheckTokenMembership");
-    pConvertStringSecurityDescriptorToSecurityDescriptorA =
-        (void *)GetProcAddress(hmod, "ConvertStringSecurityDescriptorToSecurityDescriptorA" );
     pConvertStringSecurityDescriptorToSecurityDescriptorW =
         (void *)GetProcAddress(hmod, "ConvertStringSecurityDescriptorToSecurityDescriptorW" );
     pConvertSecurityDescriptorToStringSecurityDescriptorA =
         (void *)GetProcAddress(hmod, "ConvertSecurityDescriptorToStringSecurityDescriptorA" );
-    pGetFileSecurityA = (void *)GetProcAddress(hmod, "GetFileSecurityA" );
     pSetFileSecurityA = (void *)GetProcAddress(hmod, "SetFileSecurityA" );
     pCreateWellKnownSid = (void *)GetProcAddress( hmod, "CreateWellKnownSid" );
     pGetNamedSecurityInfoA = (void *)GetProcAddress(hmod, "GetNamedSecurityInfoA");
     pSetNamedSecurityInfoA = (void *)GetProcAddress(hmod, "SetNamedSecurityInfoA");
-    pGetSidSubAuthority = (void *)GetProcAddress(hmod, "GetSidSubAuthority");
-    pGetSidSubAuthorityCount = (void *)GetProcAddress(hmod, "GetSidSubAuthorityCount");
-    pIsValidSid = (void *)GetProcAddress(hmod, "IsValidSid");
-    pMakeSelfRelativeSD = (void *)GetProcAddress(hmod, "MakeSelfRelativeSD");
     pSetEntriesInAclW = (void *)GetProcAddress(hmod, "SetEntriesInAclW");
-    pSetEntriesInAclA = (void *)GetProcAddress(hmod, "SetEntriesInAclA");
     pSetSecurityDescriptorControl = (void *)GetProcAddress(hmod, "SetSecurityDescriptorControl");
-    pGetSecurityInfo = (void *)GetProcAddress(hmod, "GetSecurityInfo");
     pSetSecurityInfo = (void *)GetProcAddress(hmod, "SetSecurityInfo");
     pCreateRestrictedToken = (void *)GetProcAddress(hmod, "CreateRestrictedToken");
-    pConvertStringSidToSidA = (void *)GetProcAddress(hmod, "ConvertStringSidToSidA");
-    pGetAclInformation = (void *)GetProcAddress(hmod, "GetAclInformation");
-    pGetAce = (void *)GetProcAddress(hmod, "GetAce");
     pGetWindowsAccountDomainSid = (void *)GetProcAddress(hmod, "GetWindowsAccountDomainSid");
     pEqualDomainSid = (void *)GetProcAddress(hmod, "EqualDomainSid");
     pGetSidIdentifierAuthority = (void *)GetProcAddress(hmod, "GetSidIdentifierAuthority");
@@ -348,13 +318,7 @@ static void test_sid(void)
     BOOL r, ret;
     LPSTR str = NULL;
 
-    if( !pConvertStringSidToSidA )
-    {
-        win_skip("ConvertSidToStringSidA or ConvertStringSidToSidA not available\n");
-        return;
-    }
-
-    r = pConvertStringSidToSidA( NULL, NULL );
+    r = ConvertStringSidToSidA( NULL, NULL );
     ok( !r, "expected failure with NULL parameters\n" );
     if( GetLastError() == ERROR_CALL_NOT_IMPLEMENTED )
         return;
@@ -362,24 +326,24 @@ static void test_sid(void)
      "expected GetLastError() is ERROR_INVALID_PARAMETER, got %d\n",
      GetLastError() );
 
-    r = pConvertStringSidToSidA( refs[0].refStr, NULL );
+    r = ConvertStringSidToSidA( refs[0].refStr, NULL );
     ok( !r && GetLastError() == ERROR_INVALID_PARAMETER,
      "expected GetLastError() is ERROR_INVALID_PARAMETER, got %d\n",
      GetLastError() );
 
-    r = pConvertStringSidToSidA( NULL, &str );
+    r = ConvertStringSidToSidA( NULL, &psid );
     ok( !r && GetLastError() == ERROR_INVALID_PARAMETER,
      "expected GetLastError() is ERROR_INVALID_PARAMETER, got %d\n",
      GetLastError() );
 
-    r = pConvertStringSidToSidA( noSubAuthStr, &psid );
+    r = ConvertStringSidToSidA( noSubAuthStr, &psid );
     ok( !r,
      "expected failure with no sub authorities\n" );
     ok( GetLastError() == ERROR_INVALID_SID,
      "expected GetLastError() is ERROR_INVALID_SID, got %d\n",
      GetLastError() );
 
-    ok(pConvertStringSidToSidA("S-1-5-21-93476-23408-4576", &psid), "ConvertStringSidToSidA failed\n");
+    ok(ConvertStringSidToSidA("S-1-5-21-93476-23408-4576", &psid), "ConvertStringSidToSidA failed\n");
     pisid = psid;
     ok(pisid->SubAuthorityCount == 4, "Invalid sub authority count - expected 4, got %d\n", pisid->SubAuthorityCount);
     ok(pisid->SubAuthority[0] == 21, "Invalid subauthority 0 - expected 21, got %d\n", pisid->SubAuthority[0]);
@@ -403,7 +367,7 @@ static void test_sid(void)
         if( psid )
             FreeSid( psid );
 
-        r = pConvertStringSidToSidA( refs[i].refStr, &psid );
+        r = ConvertStringSidToSidA( refs[i].refStr, &psid );
         ok( r, "failed to parse sid string\n" );
         pisid = psid;
         ok( pisid &&
@@ -832,11 +796,6 @@ static void test_FileSecurity(void)
                                        | GROUP_SECURITY_INFORMATION
                                        | DACL_SECURITY_INFORMATION;
 
-    if (!pGetFileSecurityA) {
-        win_skip ("GetFileSecurity is not available\n");
-        return;
-    }
-
     if (!pSetFileSecurityA) {
         win_skip ("SetFileSecurity is not available\n");
         return;
@@ -866,7 +825,7 @@ static void test_FileSecurity(void)
     /* Get size needed */
     retSize = 0;
     SetLastError(0xdeadbeef);
-    rc = pGetFileSecurityA (file, request, NULL, 0, &retSize);
+    rc = GetFileSecurityA (file, request, NULL, 0, &retSize);
     if (!rc && (GetLastError() == ERROR_CALL_NOT_IMPLEMENTED)) {
         win_skip("GetFileSecurityA is not implemented\n");
         goto cleanup;
@@ -883,7 +842,7 @@ static void test_FileSecurity(void)
     /* Get security descriptor for real */
     retSize = -1;
     SetLastError(0xdeadbeef);
-    rc = pGetFileSecurityA (file, request, sd, sdSize, &retSize);
+    rc = GetFileSecurityA (file, request, sd, sdSize, &retSize);
     ok (rc, "GetFileSecurityA "
         "was not expected to fail '%s': %d\n", file, GetLastError());
     ok (retSize == sdSize ||
@@ -903,7 +862,7 @@ static void test_FileSecurity(void)
     /* Get size needed */
     retSize = 0;
     SetLastError(0xdeadbeef);
-    rc = pGetFileSecurityA (path, request, NULL, 0, &retSize);
+    rc = GetFileSecurityA (path, request, NULL, 0, &retSize);
     ok (!rc, "GetFileSecurityA "
         "was expected to fail for '%s'\n", path);
     ok (GetLastError() == ERROR_INSUFFICIENT_BUFFER, "GetFileSecurityA "
@@ -916,7 +875,7 @@ static void test_FileSecurity(void)
     /* Get security descriptor for real */
     retSize = -1;
     SetLastError(0xdeadbeef);
-    rc = pGetFileSecurityA (path, request, sd, sdSize, &retSize);
+    rc = GetFileSecurityA (path, request, sd, sdSize, &retSize);
     ok (rc, "GetFileSecurityA "
         "was not expected to fail '%s': %d\n", path, GetLastError());
     ok (retSize == sdSize ||
@@ -933,7 +892,7 @@ static void test_FileSecurity(void)
     /* Old test */
     strcpy (wintmpdir, "\\Should not exist");
     SetLastError(0xdeadbeef);
-    rc = pGetFileSecurityA (wintmpdir, OWNER_SECURITY_INFORMATION, NULL, 0, &sdSize);
+    rc = GetFileSecurityA (wintmpdir, OWNER_SECURITY_INFORMATION, NULL, 0, &sdSize);
     ok (!rc, "GetFileSecurityA should fail for not existing directories/files\n");
     ok (GetLastError() == ERROR_FILE_NOT_FOUND,
         "last error ERROR_FILE_NOT_FOUND expected, got %d\n", GetLastError());
@@ -2191,6 +2150,7 @@ static void test_LookupAccountSid(void)
     DWORD acc_sizeA, dom_sizeA, user_sizeA;
     DWORD real_acc_sizeA, real_dom_sizeA;
     WCHAR accountW[MAX_PATH], domainW[MAX_PATH];
+    LSA_OBJECT_ATTRIBUTES object_attributes;
     DWORD acc_sizeW, dom_sizeW;
     DWORD real_acc_sizeW, real_dom_sizeW;
     PSID pUsersSid = NULL;
@@ -2202,6 +2162,8 @@ static void test_LookupAccountSid(void)
     int i;
     HANDLE hToken;
     PTOKEN_USER ptiUser = NULL;
+    LSA_HANDLE handle;
+    NTSTATUS status;
 
     /* native windows crashes if account size, domain size, or name use is NULL */
 
@@ -2415,79 +2377,67 @@ static void test_LookupAccountSid(void)
             }
         }
 
-        pLsaQueryInformationPolicy = (void *)GetProcAddress( hmod, "LsaQueryInformationPolicy");
-        pLsaOpenPolicy = (void *)GetProcAddress( hmod, "LsaOpenPolicy");
-        pLsaFreeMemory = (void *)GetProcAddress( hmod, "LsaFreeMemory");
-        pLsaClose = (void *)GetProcAddress( hmod, "LsaClose");
+        ZeroMemory(&object_attributes, sizeof(object_attributes));
+        object_attributes.Length = sizeof(object_attributes);
 
-        if (pLsaQueryInformationPolicy && pLsaOpenPolicy && pLsaFreeMemory && pLsaClose)
-        {
-            NTSTATUS status;
-            LSA_HANDLE handle;
-            LSA_OBJECT_ATTRIBUTES object_attributes;
-
-            ZeroMemory(&object_attributes, sizeof(object_attributes));
-            object_attributes.Length = sizeof(object_attributes);
-
-            status = pLsaOpenPolicy( NULL, &object_attributes, POLICY_ALL_ACCESS, &handle);
-            ok(status == STATUS_SUCCESS || status == STATUS_ACCESS_DENIED,
-               "LsaOpenPolicy(POLICY_ALL_ACCESS) returned 0x%08x\n", status);
-
-            /* try a more restricted access mask if necessary */
-            if (status == STATUS_ACCESS_DENIED) {
-                trace("LsaOpenPolicy(POLICY_ALL_ACCESS) failed, trying POLICY_VIEW_LOCAL_INFORMATION\n");
-                status = pLsaOpenPolicy( NULL, &object_attributes, POLICY_VIEW_LOCAL_INFORMATION, &handle);
-                ok(status == STATUS_SUCCESS, "LsaOpenPolicy(POLICY_VIEW_LOCAL_INFORMATION) returned 0x%08x\n", status);
-            }
+        status = LsaOpenPolicy( NULL, &object_attributes, POLICY_ALL_ACCESS, &handle);
+        ok(status == STATUS_SUCCESS || status == STATUS_ACCESS_DENIED,
+           "LsaOpenPolicy(POLICY_ALL_ACCESS) returned 0x%08x\n", status);
+
+        /* try a more restricted access mask if necessary */
+        if (status == STATUS_ACCESS_DENIED) {
+            trace("LsaOpenPolicy(POLICY_ALL_ACCESS) failed, trying POLICY_VIEW_LOCAL_INFORMATION\n");
+            status = LsaOpenPolicy( NULL, &object_attributes, POLICY_VIEW_LOCAL_INFORMATION, &handle);
+            ok(status == STATUS_SUCCESS, "LsaOpenPolicy(POLICY_VIEW_LOCAL_INFORMATION) returned 0x%08x\n", status);
+        }
 
+        if (status == STATUS_SUCCESS)
+        {
+            PPOLICY_ACCOUNT_DOMAIN_INFO info;
+            status = LsaQueryInformationPolicy(handle, PolicyAccountDomainInformation, (PVOID*)&info);
+            ok(status == STATUS_SUCCESS, "LsaQueryInformationPolicy() failed, returned 0x%08x\n", status);
             if (status == STATUS_SUCCESS)
             {
-                PPOLICY_ACCOUNT_DOMAIN_INFO info;
-                status = pLsaQueryInformationPolicy(handle, PolicyAccountDomainInformation, (PVOID*)&info);
-                ok(status == STATUS_SUCCESS, "LsaQueryInformationPolicy() failed, returned 0x%08x\n", status);
-                if (status == STATUS_SUCCESS)
+                ok(info->DomainSid!=0, "LsaQueryInformationPolicy(PolicyAccountDomainInformation) missing SID\n");
+                if (info->DomainSid)
                 {
-                    ok(info->DomainSid!=0, "LsaQueryInformationPolicy(PolicyAccountDomainInformation) missing SID\n");
-                    if (info->DomainSid)
-                    {
-                        int count = *GetSidSubAuthorityCount(info->DomainSid);
-                        CopySid(GetSidLengthRequired(count), &max_sid, info->DomainSid);
-                        test_sid_str((PSID)&max_sid.sid);
-                        max_sid.sid.SubAuthority[count] = DOMAIN_USER_RID_ADMIN;
-                        max_sid.sid.SubAuthorityCount = count + 1;
-                        test_sid_str((PSID)&max_sid.sid);
-                        max_sid.sid.SubAuthority[count] = DOMAIN_USER_RID_GUEST;
-                        test_sid_str((PSID)&max_sid.sid);
-                        max_sid.sid.SubAuthority[count] = DOMAIN_GROUP_RID_ADMINS;
-                        test_sid_str((PSID)&max_sid.sid);
-                        max_sid.sid.SubAuthority[count] = DOMAIN_GROUP_RID_USERS;
-                        test_sid_str((PSID)&max_sid.sid);
-                        max_sid.sid.SubAuthority[count] = DOMAIN_GROUP_RID_GUESTS;
-                        test_sid_str((PSID)&max_sid.sid);
-                        max_sid.sid.SubAuthority[count] = DOMAIN_GROUP_RID_COMPUTERS;
-                        test_sid_str((PSID)&max_sid.sid);
-                        max_sid.sid.SubAuthority[count] = DOMAIN_GROUP_RID_CONTROLLERS;
-                        test_sid_str((PSID)&max_sid.sid);
-                        max_sid.sid.SubAuthority[count] = DOMAIN_GROUP_RID_CERT_ADMINS;
-                        test_sid_str((PSID)&max_sid.sid);
-                        max_sid.sid.SubAuthority[count] = DOMAIN_GROUP_RID_SCHEMA_ADMINS;
-                        test_sid_str((PSID)&max_sid.sid);
-                        max_sid.sid.SubAuthority[count] = DOMAIN_GROUP_RID_ENTERPRISE_ADMINS;
-                        test_sid_str((PSID)&max_sid.sid);
-                        max_sid.sid.SubAuthority[count] = DOMAIN_GROUP_RID_POLICY_ADMINS;
-                        test_sid_str((PSID)&max_sid.sid);
-                        max_sid.sid.SubAuthority[count] = DOMAIN_ALIAS_RID_RAS_SERVERS;
-                        test_sid_str((PSID)&max_sid.sid);
-                        max_sid.sid.SubAuthority[count] = 1000;	/* first user account */
-                        test_sid_str((PSID)&max_sid.sid);
-                    }
-
-                    pLsaFreeMemory((LPVOID)info);
+                    int count = *GetSidSubAuthorityCount(info->DomainSid);
+                    CopySid(GetSidLengthRequired(count), &max_sid, info->DomainSid);
+                    test_sid_str((PSID)&max_sid.sid);
+                    max_sid.sid.SubAuthority[count] = DOMAIN_USER_RID_ADMIN;
+                    max_sid.sid.SubAuthorityCount = count + 1;
+                    test_sid_str((PSID)&max_sid.sid);
+                    max_sid.sid.SubAuthority[count] = DOMAIN_USER_RID_GUEST;
+                    test_sid_str((PSID)&max_sid.sid);
+                    max_sid.sid.SubAuthority[count] = DOMAIN_GROUP_RID_ADMINS;
+                    test_sid_str((PSID)&max_sid.sid);
+                    max_sid.sid.SubAuthority[count] = DOMAIN_GROUP_RID_USERS;
+                    test_sid_str((PSID)&max_sid.sid);
+                    max_sid.sid.SubAuthority[count] = DOMAIN_GROUP_RID_GUESTS;
+                    test_sid_str((PSID)&max_sid.sid);
+                    max_sid.sid.SubAuthority[count] = DOMAIN_GROUP_RID_COMPUTERS;
+                    test_sid_str((PSID)&max_sid.sid);
+                    max_sid.sid.SubAuthority[count] = DOMAIN_GROUP_RID_CONTROLLERS;
+                    test_sid_str((PSID)&max_sid.sid);
+                    max_sid.sid.SubAuthority[count] = DOMAIN_GROUP_RID_CERT_ADMINS;
+                    test_sid_str((PSID)&max_sid.sid);
+                    max_sid.sid.SubAuthority[count] = DOMAIN_GROUP_RID_SCHEMA_ADMINS;
+                    test_sid_str((PSID)&max_sid.sid);
+                    max_sid.sid.SubAuthority[count] = DOMAIN_GROUP_RID_ENTERPRISE_ADMINS;
+                    test_sid_str((PSID)&max_sid.sid);
+                    max_sid.sid.SubAuthority[count] = DOMAIN_GROUP_RID_POLICY_ADMINS;
+                    test_sid_str((PSID)&max_sid.sid);
+                    max_sid.sid.SubAuthority[count] = DOMAIN_ALIAS_RID_RAS_SERVERS;
+                    test_sid_str((PSID)&max_sid.sid);
+                    max_sid.sid.SubAuthority[count] = 1000;	/* first user account */
+                    test_sid_str((PSID)&max_sid.sid);
                 }
 
-                status = pLsaClose(handle);
-                ok(status == STATUS_SUCCESS, "LsaClose() failed, returned 0x%08x\n", status);
+                LsaFreeMemory(info);
             }
+
+            status = LsaClose(handle);
+            ok(status == STATUS_SUCCESS, "LsaClose() failed, returned 0x%08x\n", status);
         }
     }
 }
@@ -2847,7 +2797,7 @@ static void test_security_descriptor(void)
         expect_eq(isDefault, FALSE, BOOL, "%d");
     }
 
-    ret = pConvertStringSecurityDescriptorToSecurityDescriptorA(
+    ret = ConvertStringSecurityDescriptorToSecurityDescriptorA(
         "O:SYG:S-1-5-21-93476-23408-4576D:(A;NP;GAGXGWGR;;;SU)(A;IOID;CCDC;;;SU)"
         "(D;OICI;0xffffffff;;;S-1-5-21-93476-23408-4576)S:(AU;OICINPIOIDSAFA;CCDCLCSWRPRC;;;SU)"
         "(AU;NPSA;0x12019f;;;SU)", SDDL_REVISION_1, (void **)&sd_rel, NULL);
@@ -3449,14 +3399,8 @@ static void test_SetEntriesInAclA(void)
     static const CHAR szEveryone[] = {'E','v','e','r','y','o','n','e',0};
     static const CHAR szCurrentUser[] = { 'C','U','R','R','E','N','T','_','U','S','E','R','\0'};
 
-    if (!pSetEntriesInAclA)
-    {
-        win_skip("SetEntriesInAclA is not available\n");
-        return;
-    }
-
     NewAcl = (PACL)0xdeadbeef;
-    res = pSetEntriesInAclA(0, NULL, NULL, &NewAcl);
+    res = SetEntriesInAclA(0, NULL, NULL, &NewAcl);
     if(res == ERROR_CALL_NOT_IMPLEMENTED)
     {
         win_skip("SetEntriesInAclA is not implemented\n");
@@ -3496,7 +3440,7 @@ static void test_SetEntriesInAclA(void)
     ExplicitAccess.Trustee.ptstrName = EveryoneSid;
     ExplicitAccess.Trustee.MultipleTrusteeOperation = NO_MULTIPLE_TRUSTEE;
     ExplicitAccess.Trustee.pMultipleTrustee = NULL;
-    res = pSetEntriesInAclA(1, &ExplicitAccess, OldAcl, &NewAcl);
+    res = SetEntriesInAclA(1, &ExplicitAccess, OldAcl, &NewAcl);
     ok(res == ERROR_SUCCESS, "SetEntriesInAclA failed: %u\n", res);
     ok(NewAcl != NULL, "returned acl was NULL\n");
     LocalFree(NewAcl);
@@ -3504,7 +3448,7 @@ static void test_SetEntriesInAclA(void)
     ExplicitAccess.Trustee.TrusteeType = TRUSTEE_IS_UNKNOWN;
     ExplicitAccess.Trustee.pMultipleTrustee = NULL;
     ExplicitAccess.Trustee.MultipleTrusteeOperation = NO_MULTIPLE_TRUSTEE;
-    res = pSetEntriesInAclA(1, &ExplicitAccess, OldAcl, &NewAcl);
+    res = SetEntriesInAclA(1, &ExplicitAccess, OldAcl, &NewAcl);
     ok(res == ERROR_SUCCESS, "SetEntriesInAclA failed: %u\n", res);
     ok(NewAcl != NULL, "returned acl was NULL\n");
     LocalFree(NewAcl);
@@ -3517,13 +3461,13 @@ static void test_SetEntriesInAclA(void)
     {
         ExplicitAccess.Trustee.TrusteeForm = TRUSTEE_IS_NAME;
         ExplicitAccess.Trustee.ptstrName = (LPSTR)szEveryone;
-        res = pSetEntriesInAclA(1, &ExplicitAccess, OldAcl, &NewAcl);
+        res = SetEntriesInAclA(1, &ExplicitAccess, OldAcl, &NewAcl);
         ok(res == ERROR_SUCCESS, "SetEntriesInAclA failed: %u\n", res);
         ok(NewAcl != NULL, "returned acl was NULL\n");
         LocalFree(NewAcl);
 
         ExplicitAccess.Trustee.TrusteeForm = TRUSTEE_BAD_FORM;
-        res = pSetEntriesInAclA(1, &ExplicitAccess, OldAcl, &NewAcl);
+        res = SetEntriesInAclA(1, &ExplicitAccess, OldAcl, &NewAcl);
         ok(res == ERROR_INVALID_PARAMETER ||
             broken(res == ERROR_NOT_SUPPORTED), /* NT4 */
             "SetEntriesInAclA failed: %u\n", res);
@@ -3533,7 +3477,7 @@ static void test_SetEntriesInAclA(void)
 
         ExplicitAccess.Trustee.TrusteeForm = TRUSTEE_IS_NAME;
         ExplicitAccess.Trustee.MultipleTrusteeOperation = TRUSTEE_IS_IMPERSONATE;
-        res = pSetEntriesInAclA(1, &ExplicitAccess, OldAcl, &NewAcl);
+        res = SetEntriesInAclA(1, &ExplicitAccess, OldAcl, &NewAcl);
         ok(res == ERROR_INVALID_PARAMETER ||
             broken(res == ERROR_NOT_SUPPORTED), /* NT4 */
             "SetEntriesInAclA failed: %u\n", res);
@@ -3543,7 +3487,7 @@ static void test_SetEntriesInAclA(void)
 
         ExplicitAccess.Trustee.MultipleTrusteeOperation = NO_MULTIPLE_TRUSTEE;
         ExplicitAccess.grfAccessMode = SET_ACCESS;
-        res = pSetEntriesInAclA(1, &ExplicitAccess, OldAcl, &NewAcl);
+        res = SetEntriesInAclA(1, &ExplicitAccess, OldAcl, &NewAcl);
         ok(res == ERROR_SUCCESS, "SetEntriesInAclA failed: %u\n", res);
         ok(NewAcl != NULL, "returned acl was NULL\n");
         LocalFree(NewAcl);
@@ -3551,7 +3495,7 @@ static void test_SetEntriesInAclA(void)
 
     ExplicitAccess.Trustee.TrusteeForm = TRUSTEE_IS_NAME;
     ExplicitAccess.Trustee.ptstrName = (LPSTR)szCurrentUser;
-    res = pSetEntriesInAclA(1, &ExplicitAccess, OldAcl, &NewAcl);
+    res = SetEntriesInAclA(1, &ExplicitAccess, OldAcl, &NewAcl);
     ok(res == ERROR_SUCCESS, "SetEntriesInAclA failed: %u\n", res);
     ok(NewAcl != NULL, "returned acl was NULL\n");
     LocalFree(NewAcl);
@@ -3559,7 +3503,7 @@ static void test_SetEntriesInAclA(void)
     ExplicitAccess.grfAccessMode = REVOKE_ACCESS;
     ExplicitAccess.Trustee.TrusteeForm = TRUSTEE_IS_SID;
     ExplicitAccess.Trustee.ptstrName = UsersSid;
-    res = pSetEntriesInAclA(1, &ExplicitAccess, OldAcl, &NewAcl);
+    res = SetEntriesInAclA(1, &ExplicitAccess, OldAcl, &NewAcl);
     ok(res == ERROR_SUCCESS, "SetEntriesInAclA failed: %u\n", res);
     ok(NewAcl != NULL, "returned acl was NULL\n");
     LocalFree(NewAcl);
@@ -3595,7 +3539,7 @@ static void test_inherited_dacl(PACL dacl, PSID admin_sid, PSID user_sid, DWORD
     ACCESS_ALLOWED_ACE *ace;
     BOOL bret;
 
-    bret = pGetAclInformation(dacl, &acl_size, sizeof(acl_size), AclSizeInformation);
+    bret = GetAclInformation(dacl, &acl_size, sizeof(acl_size), AclSizeInformation);
     ok_(__FILE__, line)(bret, "GetAclInformation failed\n");
 
     todo_wine_if (todo_count)
@@ -3605,7 +3549,7 @@ static void test_inherited_dacl(PACL dacl, PSID admin_sid, PSID user_sid, DWORD
 
     if (acl_size.AceCount > 0)
     {
-        bret = pGetAce(dacl, 0, (VOID **)&ace);
+        bret = GetAce(dacl, 0, (VOID **)&ace);
         ok_(__FILE__, line)(bret, "Failed to get Current User ACE\n");
 
         bret = EqualSid(&ace->SidStart, user_sid);
@@ -3623,7 +3567,7 @@ static void test_inherited_dacl(PACL dacl, PSID admin_sid, PSID user_sid, DWORD
     }
     if (acl_size.AceCount > 1)
     {
-        bret = pGetAce(dacl, 1, (VOID **)&ace);
+        bret = GetAce(dacl, 1, (VOID **)&ace);
         ok_(__FILE__, line)(bret, "Failed to get Administators Group ACE\n");
 
         bret = EqualSid(&ace->SidStart, admin_sid);
@@ -3662,7 +3606,7 @@ static void test_CreateDirectoryA(void)
     DWORD error;
     PACL pDacl;
 
-    if (!pGetSecurityInfo || !pGetNamedSecurityInfoA || !pCreateWellKnownSid)
+    if (!pGetNamedSecurityInfoA || !pCreateWellKnownSid)
     {
         win_skip("Required functions are not available\n");
         return;
@@ -3762,11 +3706,10 @@ static void test_CreateDirectoryA(void)
     ok(hTemp != INVALID_HANDLE_VALUE, "CreateFile error %u\n", GetLastError());
     HeapFree(GetProcessHeap(), 0, pDacl);
 
-    error = pGetSecurityInfo(hTemp, SE_FILE_OBJECT,
-                             OWNER_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION,
-                             (PSID *)&owner, NULL, &pDacl, NULL, &pSD);
+    error = GetSecurityInfo(hTemp, SE_FILE_OBJECT, OWNER_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION,
+            (PSID *)&owner, NULL, &pDacl, NULL, &pSD);
     ok(error == ERROR_SUCCESS, "GetNamedSecurityInfo failed with error %d\n", error);
-    bret = pGetAclInformation(pDacl, &acl_size, sizeof(acl_size), AclSizeInformation);
+    bret = GetAclInformation(pDacl, &acl_size, sizeof(acl_size), AclSizeInformation);
     ok(bret, "GetAclInformation failed\n");
     todo_wine
     ok(acl_size.AceCount == 0, "GetAclInformation returned unexpected entry count (%d != 0).\n",
@@ -3780,7 +3723,7 @@ static void test_CreateDirectoryA(void)
     ok(error == ERROR_SUCCESS, "GetNamedSecurityInfo failed with error %d\n", error);
     if (error == ERROR_SUCCESS)
     {
-        bret = pGetAclInformation(pDacl, &acl_size, sizeof(acl_size), AclSizeInformation);
+        bret = GetAclInformation(pDacl, &acl_size, sizeof(acl_size), AclSizeInformation);
         ok(bret, "GetAclInformation failed\n");
         todo_wine
         ok(acl_size.AceCount == 0, "GetAclInformation returned unexpected entry count (%d != 0).\n",
@@ -3842,11 +3785,10 @@ static void test_CreateDirectoryA(void)
     pRtlFreeUnicodeString(&tmpfileW);
     HeapFree(GetProcessHeap(), 0, pDacl);
 
-    error = pGetSecurityInfo(hTemp, SE_FILE_OBJECT,
-                             OWNER_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION,
-                             (PSID *)&owner, NULL, &pDacl, NULL, &pSD);
+    error = GetSecurityInfo(hTemp, SE_FILE_OBJECT, OWNER_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION,
+            (PSID *)&owner, NULL, &pDacl, NULL, &pSD);
     ok(error == ERROR_SUCCESS, "GetNamedSecurityInfo failed with error %d\n", error);
-    bret = pGetAclInformation(pDacl, &acl_size, sizeof(acl_size), AclSizeInformation);
+    bret = GetAclInformation(pDacl, &acl_size, sizeof(acl_size), AclSizeInformation);
     ok(bret, "GetAclInformation failed\n");
     todo_wine
     ok(acl_size.AceCount == 0, "GetAclInformation returned unexpected entry count (%d != 0).\n",
@@ -3860,7 +3802,7 @@ static void test_CreateDirectoryA(void)
     ok(error == ERROR_SUCCESS, "GetNamedSecurityInfo failed with error %d\n", error);
     if (error == ERROR_SUCCESS)
     {
-        bret = pGetAclInformation(pDacl, &acl_size, sizeof(acl_size), AclSizeInformation);
+        bret = GetAclInformation(pDacl, &acl_size, sizeof(acl_size), AclSizeInformation);
         ok(bret, "GetAclInformation failed\n");
         todo_wine
         ok(acl_size.AceCount == 0, "GetAclInformation returned unexpected entry count (%d != 0).\n",
@@ -4035,11 +3977,11 @@ static void test_GetNamedSecurityInfoA(void)
     }
     ok(!error, "GetNamedSecurityInfo failed with error %d\n", error);
 
-    bret = pGetAclInformation(pDacl, &acl_size, sizeof(acl_size), AclSizeInformation);
+    bret = GetAclInformation(pDacl, &acl_size, sizeof(acl_size), AclSizeInformation);
     ok(bret, "GetAclInformation failed\n");
     if (acl_size.AceCount > 0)
     {
-        bret = pGetAce(pDacl, 0, (VOID **)&ace);
+        bret = GetAce(pDacl, 0, (VOID **)&ace);
         ok(bret, "Failed to get Current User ACE.\n");
         bret = EqualSid(&ace->SidStart, user_sid);
         todo_wine ok(bret, "Current User ACE (%s) != Current User SID (%s).\n",
@@ -4051,7 +3993,7 @@ static void test_GetNamedSecurityInfoA(void)
     }
     if (acl_size.AceCount > 1)
     {
-        bret = pGetAce(pDacl, 1, (VOID **)&ace);
+        bret = GetAce(pDacl, 1, (VOID **)&ace);
         ok(bret, "Failed to get Administators Group ACE.\n");
         bret = EqualSid(&ace->SidStart, admin_sid);
         todo_wine ok(bret || broken(!bret) /* win2k */,
@@ -4077,11 +4019,11 @@ static void test_GetNamedSecurityInfoA(void)
             NULL, NULL, &pDacl, NULL, &pSD);
     ok(!error, "GetNamedSecurityInfo failed with error %d\n", error);
 
-    bret = pGetAclInformation(pDacl, &acl_size, sizeof(acl_size), AclSizeInformation);
+    bret = GetAclInformation(pDacl, &acl_size, sizeof(acl_size), AclSizeInformation);
     ok(bret, "GetAclInformation failed\n");
     if (acl_size.AceCount > 0)
     {
-        bret = pGetAce(pDacl, 0, (VOID **)&ace);
+        bret = GetAce(pDacl, 0, (VOID **)&ace);
         ok(bret, "Failed to get ACE.\n");
         todo_wine ok(((ACE_HEADER *)ace)->AceFlags & INHERITED_ACE,
                 "ACE has unexpected flags: 0x%x\n", ((ACE_HEADER *)ace)->AceFlags);
@@ -4217,12 +4159,12 @@ static void test_GetNamedSecurityInfoA(void)
     ok(bret, "GetSecurityDescriptorDacl failed with error %d\n", GetLastError());
     ok(dacl_present, "DACL should be present\n");
     ok(pDacl && IsValidAcl(pDacl), "GetSecurityDescriptorDacl returned invalid DACL.\n");
-    bret = pGetAclInformation(pDacl, &acl_size, sizeof(acl_size), AclSizeInformation);
+    bret = GetAclInformation(pDacl, &acl_size, sizeof(acl_size), AclSizeInformation);
     ok(bret, "GetAclInformation failed\n");
     ok(acl_size.AceCount != 0, "GetAclInformation returned no ACLs\n");
     for (i=0; i<acl_size.AceCount; i++)
     {
-        bret = pGetAce(pDacl, i, (VOID **)&ace);
+        bret = GetAce(pDacl, i, (VOID **)&ace);
         ok(bret, "Failed to get ACE %d.\n", i);
         bret = EqualSid(&ace->SidStart, users_sid);
         if (bret) users_ace_id = i;
@@ -4233,7 +4175,7 @@ static void test_GetNamedSecurityInfoA(void)
        "Builtin Users ACE not found.\n");
     if (users_ace_id != -1)
     {
-        bret = pGetAce(pDacl, users_ace_id, (VOID **)&ace);
+        bret = GetAce(pDacl, users_ace_id, (VOID **)&ace);
         ok(bret, "Failed to get Builtin Users ACE.\n");
         flags = ((ACE_HEADER *)ace)->AceFlags;
         ok(flags == (INHERIT_ONLY_ACE|CONTAINER_INHERIT_ACE)
@@ -4250,7 +4192,7 @@ static void test_GetNamedSecurityInfoA(void)
     ok(admins_ace_id != -1, "Builtin Admins ACE not found.\n");
     if (admins_ace_id != -1)
     {
-        bret = pGetAce(pDacl, admins_ace_id, (VOID **)&ace);
+        bret = GetAce(pDacl, admins_ace_id, (VOID **)&ace);
         ok(bret, "Failed to get Builtin Admins ACE.\n");
         flags = ((ACE_HEADER *)ace)->AceFlags;
         ok(flags == 0x0
@@ -4320,18 +4262,12 @@ static void test_ConvertStringSecurityDescriptor(void)
         { "D:(D;;GA;;;Nonexistent account)", SDDL_REVISION_1, FALSE, ERROR_INVALID_ACL, ERROR_INVALID_SID } /* W2K */
     };
 
-    if (!pConvertStringSecurityDescriptorToSecurityDescriptorA)
-    {
-        win_skip("ConvertStringSecurityDescriptorToSecurityDescriptor is not available\n");
-        return;
-    }
-
     for (i = 0; i < ARRAY_SIZE(cssd); i++)
     {
         DWORD GLE;
 
         SetLastError(0xdeadbeef);
-        ret = pConvertStringSecurityDescriptorToSecurityDescriptorA(
+        ret = ConvertStringSecurityDescriptorToSecurityDescriptorA(
             cssd[i].sidstring, cssd[i].revision, &pSD, NULL);
         GLE = GetLastError();
         ok(ret == cssd[i].ret, "(%02u) Expected %s (%d)\n", i, cssd[i].ret ? "success" : "failure", GLE);
@@ -4345,7 +4281,7 @@ static void test_ConvertStringSecurityDescriptor(void)
 
     /* test behaviour with NULL parameters */
     SetLastError(0xdeadbeef);
-    ret = pConvertStringSecurityDescriptorToSecurityDescriptorA(
+    ret = ConvertStringSecurityDescriptorToSecurityDescriptorA(
         NULL, 0xdeadbeef, &pSD, NULL);
     todo_wine
     ok(!ret && GetLastError() == ERROR_INVALID_PARAMETER,
@@ -4360,14 +4296,14 @@ static void test_ConvertStringSecurityDescriptor(void)
         GetLastError());
 
     SetLastError(0xdeadbeef);
-    ret = pConvertStringSecurityDescriptorToSecurityDescriptorA(
+    ret = ConvertStringSecurityDescriptorToSecurityDescriptorA(
         "D:(A;;ROB;;;WD)", 0xdeadbeef, NULL, NULL);
     ok(!ret && GetLastError() == ERROR_INVALID_PARAMETER,
         "ConvertStringSecurityDescriptorToSecurityDescriptor should have failed with ERROR_INVALID_PARAMETER instead of %d\n",
         GetLastError());
 
     SetLastError(0xdeadbeef);
-    ret = pConvertStringSecurityDescriptorToSecurityDescriptorA(
+    ret = ConvertStringSecurityDescriptorToSecurityDescriptorA(
         "D:(A;;ROB;;;WD)", SDDL_REVISION_1, NULL, NULL);
     ok(!ret && GetLastError() == ERROR_INVALID_PARAMETER,
         "ConvertStringSecurityDescriptorToSecurityDescriptor should have failed with ERROR_INVALID_PARAMETER instead of %d\n",
@@ -4381,7 +4317,7 @@ static void test_ConvertStringSecurityDescriptor(void)
     LocalFree(pSD);
 
     SetLastError(0xdeadbeef);
-    ret = pConvertStringSecurityDescriptorToSecurityDescriptorA(
+    ret = ConvertStringSecurityDescriptorToSecurityDescriptorA(
         "D:P(A;;GRGW;;;BA)(A;;GRGW;;;S-1-5-21-0-0-0-1000)S:(ML;;NWNR;;;S-1-16-12288)", SDDL_REVISION_1, &pSD, NULL);
     ok(ret || broken(!ret && GetLastError() == ERROR_INVALID_DATATYPE) /* win2k */,
        "ConvertStringSecurityDescriptorToSecurityDescriptor failed with error %u\n", GetLastError());
@@ -4390,7 +4326,7 @@ static void test_ConvertStringSecurityDescriptor(void)
     /* empty DACL */
     size = 0;
     SetLastError(0xdeadbeef);
-    ret = pConvertStringSecurityDescriptorToSecurityDescriptorA("D:", SDDL_REVISION_1, &pSD, &size);
+    ret = ConvertStringSecurityDescriptorToSecurityDescriptorA("D:", SDDL_REVISION_1, &pSD, &size);
     ok(ret, "unexpected error %u\n", GetLastError());
     ok(size == sizeof(SECURITY_DESCRIPTOR_RELATIVE) + sizeof(ACL), "got %u\n", size);
     acl = (ACL *)((char *)pSD + sizeof(SECURITY_DESCRIPTOR_RELATIVE));
@@ -4404,7 +4340,7 @@ static void test_ConvertStringSecurityDescriptor(void)
     /* empty SACL */
     size = 0;
     SetLastError(0xdeadbeef);
-    ret = pConvertStringSecurityDescriptorToSecurityDescriptorA("S:", SDDL_REVISION_1, &pSD, &size);
+    ret = ConvertStringSecurityDescriptorToSecurityDescriptorA("S:", SDDL_REVISION_1, &pSD, &size);
     ok(ret, "unexpected error %u\n", GetLastError());
     ok(size == sizeof(SECURITY_DESCRIPTOR_RELATIVE) + sizeof(ACL), "got %u\n", size);
     acl = (ACL *)((char *)pSD + sizeof(SECURITY_DESCRIPTOR_RELATIVE));
@@ -4470,7 +4406,7 @@ static void test_ConvertSecurityDescriptorToString(void)
     ok(pConvertSecurityDescriptorToStringSecurityDescriptorA(&desc, SDDL_REVISION_1, sec_info, &string, &len), "Conversion failed\n");
     CHECK_RESULT_AND_FREE("O:SY");
 
-    pConvertStringSidToSidA("S-1-5-21-93476-23408-4576", &psid);
+    ConvertStringSidToSidA("S-1-5-21-93476-23408-4576", &psid);
     SetSecurityDescriptorGroup(&desc, psid, TRUE);
     ok(pConvertSecurityDescriptorToStringSecurityDescriptorA(&desc, SDDL_REVISION_1, sec_info, &string, &len), "Conversion failed\n");
     CHECK_RESULT_AND_FREE("O:SYG:S-1-5-21-93476-23408-4576");
@@ -4488,7 +4424,7 @@ static void test_ConvertSecurityDescriptorToString(void)
     ok(pConvertSecurityDescriptorToStringSecurityDescriptorA(&desc, SDDL_REVISION_1, sec_info, &string, &len), "Conversion failed\n");
     CHECK_RESULT_AND_FREE("O:SYG:S-1-5-21-93476-23408-4576D:");
 
-    pConvertStringSidToSidA("S-1-5-6", &psid2);
+    ConvertStringSidToSidA("S-1-5-6", &psid2);
     pAddAccessAllowedAceEx(pacl, ACL_REVISION, NO_PROPAGATE_INHERIT_ACE, 0xf0000000, psid2);
     ok(pConvertSecurityDescriptorToStringSecurityDescriptorA(&desc, SDDL_REVISION_1, sec_info, &string, &len), "Conversion failed\n");
     CHECK_RESULT_AND_FREE("O:SYG:S-1-5-21-93476-23408-4576D:(A;NP;GAGXGWGR;;;SU)");
@@ -4630,13 +4566,7 @@ static void test_PrivateObjectSecurity(void)
     PSECURITY_DESCRIPTOR buf;
     BOOL ret;
 
-    if (!pConvertStringSecurityDescriptorToSecurityDescriptorA)
-    {
-        win_skip("ConvertStringSecurityDescriptorToSecurityDescriptor is not available\n");
-        return;
-    }
-
-    ok(pConvertStringSecurityDescriptorToSecurityDescriptorA(
+    ok(ConvertStringSecurityDescriptorToSecurityDescriptorA(
         "O:SY"
         "G:S-1-5-21-93476-23408-4576"
         "D:(A;NP;GAGXGWGR;;;SU)(A;IOID;CCDC;;;SU)"
@@ -4648,7 +4578,7 @@ static void test_PrivateObjectSecurity(void)
 
     LocalFree(sec);
 
-    ok(pConvertStringSecurityDescriptorToSecurityDescriptorA(
+    ok(ConvertStringSecurityDescriptorToSecurityDescriptorA(
         "O:SY"
         "G:S-1-5-21-93476-23408-4576",
         SDDL_REVISION_1, &sec, &dwDescSize), "Creating descriptor failed\n");
@@ -4657,7 +4587,7 @@ static void test_PrivateObjectSecurity(void)
 
     LocalFree(sec);
 
-    ok(pConvertStringSecurityDescriptorToSecurityDescriptorA(
+    ok(ConvertStringSecurityDescriptorToSecurityDescriptorA(
         "O:SY"
         "G:S-1-5-21-93476-23408-4576"
         "D:(A;NP;GAGXGWGR;;;SU)(A;IOID;CCDC;;;SU)(D;OICI;0xffffffff;;;S-1-5-21-93476-23408-4576)"
@@ -4786,7 +4716,7 @@ static void test_GetSecurityInfo(void)
     BYTE flags;
     DWORD ret;
 
-    if (!pGetSecurityInfo || !pSetSecurityInfo)
+    if (!pSetSecurityInfo)
     {
         win_skip("[Get|Set]SecurityInfo is not available\n");
         return;
@@ -4816,7 +4746,7 @@ static void test_GetSecurityInfo(void)
         return;
     }
 
-    ret = pGetSecurityInfo(obj, SE_FILE_OBJECT,
+    ret = GetSecurityInfo(obj, SE_FILE_OBJECT,
                           OWNER_SECURITY_INFORMATION | GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION,
                           &owner, &group, &pDacl, NULL, &pSD);
     if (ret == ERROR_CALL_NOT_IMPLEMENTED)
@@ -4845,7 +4775,7 @@ static void test_GetSecurityInfo(void)
 
     /* If we don't ask for the security descriptor, Windows will still give us
        the other stuff, leaving us no way to free it.  */
-    ret = pGetSecurityInfo(obj, SE_FILE_OBJECT,
+    ret = GetSecurityInfo(obj, SE_FILE_OBJECT,
                           OWNER_SECURITY_INFORMATION | GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION,
                           &owner, &group, &pDacl, NULL, NULL);
     ok(ret == ERROR_SUCCESS, "GetSecurityInfo returned %d\n", ret);
@@ -4872,15 +4802,15 @@ static void test_GetSecurityInfo(void)
     ret = pSetSecurityInfo(obj, SE_FILE_OBJECT, DACL_SECURITY_INFORMATION,
                           NULL, NULL, pDacl, NULL);
     ok(ret == ERROR_SUCCESS, "SetSecurityInfo returned %d\n", ret);
-    ret = pGetSecurityInfo(obj, SE_FILE_OBJECT, DACL_SECURITY_INFORMATION,
+    ret = GetSecurityInfo(obj, SE_FILE_OBJECT, DACL_SECURITY_INFORMATION,
                           NULL, NULL, &pDacl, NULL, &pSD);
     ok(ret == ERROR_SUCCESS, "GetSecurityInfo returned %d\n", ret);
     ok(pDacl && IsValidAcl(pDacl), "GetSecurityInfo returned invalid DACL.\n");
-    bret = pGetAclInformation(pDacl, &acl_size, sizeof(acl_size), AclSizeInformation);
+    bret = GetAclInformation(pDacl, &acl_size, sizeof(acl_size), AclSizeInformation);
     ok(bret, "GetAclInformation failed\n");
     if (acl_size.AceCount > 0)
     {
-        bret = pGetAce(pDacl, 0, (VOID **)&ace);
+        bret = GetAce(pDacl, 0, (VOID **)&ace);
         ok(bret, "Failed to get Current User ACE.\n");
         bret = EqualSid(&ace->SidStart, user_sid);
         todo_wine ok(bret, "Current User ACE (%s) != Current User SID (%s).\n",
@@ -4892,7 +4822,7 @@ static void test_GetSecurityInfo(void)
     }
     if (acl_size.AceCount > 1)
     {
-        bret = pGetAce(pDacl, 1, (VOID **)&ace);
+        bret = GetAce(pDacl, 1, (VOID **)&ace);
         ok(bret, "Failed to get Administators Group ACE.\n");
         bret = EqualSid(&ace->SidStart, admin_sid);
         todo_wine ok(bret, "Administators Group ACE (%s) != Administators Group SID (%s).\n", debugstr_sid(&ace->SidStart), debugstr_sid(admin_sid));
@@ -4918,7 +4848,7 @@ static void test_GetSecurityInfo(void)
     FreeSid(domain_sid);
 
     /* Test querying the ownership of a process */
-    ret = pGetSecurityInfo(GetCurrentProcess(), SE_KERNEL_OBJECT,
+    ret = GetSecurityInfo(GetCurrentProcess(), SE_KERNEL_OBJECT,
                            OWNER_SECURITY_INFORMATION|GROUP_SECURITY_INFORMATION,
                            NULL, NULL, NULL, NULL, &pSD);
     ok(!ret, "GetNamedSecurityInfo failed with error %d\n", ret);
@@ -4936,7 +4866,7 @@ static void test_GetSecurityInfo(void)
     LocalFree(pSD);
 
     /* Test querying the DACL of a process */
-    ret = pGetSecurityInfo(GetCurrentProcess(), SE_KERNEL_OBJECT, DACL_SECURITY_INFORMATION,
+    ret = GetSecurityInfo(GetCurrentProcess(), SE_KERNEL_OBJECT, DACL_SECURITY_INFORMATION,
                                    NULL, NULL, NULL, NULL, &pSD);
     ok(!ret, "GetSecurityInfo failed with error %d\n", ret);
 
@@ -4944,12 +4874,12 @@ static void test_GetSecurityInfo(void)
     ok(bret, "GetSecurityDescriptorDacl failed with error %d\n", GetLastError());
     ok(dacl_present, "DACL should be present\n");
     ok(pDacl && IsValidAcl(pDacl), "GetSecurityDescriptorDacl returned invalid DACL.\n");
-    bret = pGetAclInformation(pDacl, &acl_size, sizeof(acl_size), AclSizeInformation);
+    bret = GetAclInformation(pDacl, &acl_size, sizeof(acl_size), AclSizeInformation);
     ok(bret, "GetAclInformation failed\n");
     ok(acl_size.AceCount != 0, "GetAclInformation returned no ACLs\n");
     for (i=0; i<acl_size.AceCount; i++)
     {
-        bret = pGetAce(pDacl, i, (VOID **)&ace);
+        bret = GetAce(pDacl, i, (VOID **)&ace);
         ok(bret, "Failed to get ACE %d.\n", i);
         bret = EqualSid(&ace->SidStart, domain_users_sid);
         if (bret) domain_users_ace_id = i;
@@ -4960,7 +4890,7 @@ static void test_GetSecurityInfo(void)
        "Domain Users ACE not found.\n");
     if (domain_users_ace_id != -1)
     {
-        bret = pGetAce(pDacl, domain_users_ace_id, (VOID **)&ace);
+        bret = GetAce(pDacl, domain_users_ace_id, (VOID **)&ace);
         ok(bret, "Failed to get Domain Users ACE.\n");
         flags = ((ACE_HEADER *)ace)->AceFlags;
         ok(flags == (INHERIT_ONLY_ACE|CONTAINER_INHERIT_ACE),
@@ -4973,7 +4903,7 @@ static void test_GetSecurityInfo(void)
        "Builtin Admins ACE not found.\n");
     if (admins_ace_id != -1)
     {
-        bret = pGetAce(pDacl, admins_ace_id, (VOID **)&ace);
+        bret = GetAce(pDacl, admins_ace_id, (VOID **)&ace);
         ok(bret, "Failed to get Builtin Admins ACE.\n");
         flags = ((ACE_HEADER *)ace)->AceFlags;
         ok(flags == 0x0, "Builtin Admins ACE has unexpected flags (0x%x != 0x0)\n", flags);
@@ -4987,26 +4917,21 @@ static void test_GetSidSubAuthority(void)
 {
     PSID psid = NULL;
 
-    if (!pGetSidSubAuthority || !pConvertStringSidToSidA || !pIsValidSid || !pGetSidSubAuthorityCount)
-    {
-        win_skip("Some functions not available\n");
-        return;
-    }
     /* Note: on windows passing in an invalid index like -1, lets GetSidSubAuthority return 0x05000000 but
              still GetLastError returns ERROR_SUCCESS then. We don't test these unlikely cornercases here for now */
-    ok(pConvertStringSidToSidA("S-1-5-21-93476-23408-4576",&psid),"ConvertStringSidToSidA failed\n");
-    ok(pIsValidSid(psid),"Sid is not valid\n");
+    ok(ConvertStringSidToSidA("S-1-5-21-93476-23408-4576",&psid),"ConvertStringSidToSidA failed\n");
+    ok(IsValidSid(psid),"Sid is not valid\n");
     SetLastError(0xbebecaca);
-    ok(*pGetSidSubAuthorityCount(psid) == 4,"GetSidSubAuthorityCount gave %d expected 4\n",*pGetSidSubAuthorityCount(psid));
+    ok(*GetSidSubAuthorityCount(psid) == 4,"GetSidSubAuthorityCount gave %d expected 4\n", *GetSidSubAuthorityCount(psid));
     ok(GetLastError() == 0,"GetLastError returned %d instead of 0\n",GetLastError());
     SetLastError(0xbebecaca);
-    ok(*pGetSidSubAuthority(psid,0) == 21,"GetSidSubAuthority gave %d expected 21\n",*pGetSidSubAuthority(psid,0));
+    ok(*GetSidSubAuthority(psid,0) == 21,"GetSidSubAuthority gave %d expected 21\n", *GetSidSubAuthority(psid,0));
     ok(GetLastError() == 0,"GetLastError returned %d instead of 0\n",GetLastError());
     SetLastError(0xbebecaca);
-    ok(*pGetSidSubAuthority(psid,1) == 93476,"GetSidSubAuthority gave %d expected 93476\n",*pGetSidSubAuthority(psid,1));
+    ok(*GetSidSubAuthority(psid,1) == 93476,"GetSidSubAuthority gave %d expected 93476\n", *GetSidSubAuthority(psid,1));
     ok(GetLastError() == 0,"GetLastError returned %d instead of 0\n",GetLastError());
     SetLastError(0xbebecaca);
-    ok(pGetSidSubAuthority(psid,4) != NULL,"Expected out of bounds GetSidSubAuthority to return a non-NULL pointer\n");
+    ok(GetSidSubAuthority(psid,4) != NULL,"Expected out of bounds GetSidSubAuthority to return a non-NULL pointer\n");
     ok(GetLastError() == 0,"GetLastError returned %d instead of 0\n",GetLastError());
     LocalFree(psid);
 }
@@ -6372,7 +6297,7 @@ static void test_default_dacl_owner_sid(void)
 
     index = 0;
     found = FALSE;
-    while (pGetAce( dacl, index++, (void **)&ace ))
+    while (GetAce( dacl, index++, (void **)&ace ))
     {
         if (EqualSid( &ace->SidStart, owner )) found = TRUE;
     }
@@ -6533,7 +6458,7 @@ static void test_AddMandatoryAce(void)
 
     index = 0;
     found = FALSE;
-    while (pGetAce(acl, index++, (void **)&ace))
+    while (GetAce(acl, index++, (void **)&ace))
     {
         if (ace->Header.AceType != SYSTEM_MANDATORY_LABEL_ACE_TYPE) continue;
         ok(ace->Header.AceFlags == 0, "Expected flags 0, got %x\n", ace->Header.AceFlags);
@@ -6566,11 +6491,11 @@ static void test_AddMandatoryAce(void)
     ok(present, "SACL not present\n");
     ok(sacl != (void *)0xdeadbeef, "SACL not set\n");
     ok(!defaulted, "SACL defaulted\n");
-    ret = pGetAclInformation(sacl, &acl_size_info, sizeof(acl_size_info), AclSizeInformation);
+    ret = GetAclInformation(sacl, &acl_size_info, sizeof(acl_size_info), AclSizeInformation);
     ok(ret, "GetAclInformation failed with error %u\n", GetLastError());
     ok(acl_size_info.AceCount == 1, "SACL contains an unexpected ACE count %u\n", acl_size_info.AceCount);
 
-    ret = pGetAce(sacl, 0, (void **)&ace);
+    ret = GetAce(sacl, 0, (void **)&ace);
     ok(ret, "GetAce failed with error %u\n", GetLastError());
     ok (ace->Header.AceType == SYSTEM_MANDATORY_LABEL_ACE_TYPE, "Unexpected ACE type %#x\n", ace->Header.AceType);
     ok(!ace->Header.AceFlags, "Unexpected ACE flags %#x\n", ace->Header.AceFlags);
@@ -6605,7 +6530,7 @@ static void test_AddMandatoryAce(void)
 
     index = 0;
     found = found2 = FALSE;
-    while (pGetAce(sacl, index++, (void **)&ace))
+    while (GetAce(sacl, index++, (void **)&ace))
     {
         if (ace->Header.AceType == SYSTEM_MANDATORY_LABEL_ACE_TYPE)
         {
@@ -7082,7 +7007,7 @@ static void test_token_label(void)
         ok(!defaulted, "SACL defaulted\n");
         ok(sacl->AceCount == 1, "SACL contains an unexpected ACE count %u\n", sacl->AceCount);
 
-        ret = pGetAce(sacl, 0, (void **)&ace);
+        ret = GetAce(sacl, 0, (void **)&ace);
         ok(ret, "GetAce failed with error %u\n", GetLastError());
 
         ok(ace->Header.AceType == SYSTEM_MANDATORY_LABEL_ACE_TYPE,
@@ -7123,8 +7048,7 @@ static void test_token_security_descriptor(void)
     STARTUPINFOA startup;
     PSID psid;
 
-    if (!pDuplicateTokenEx || !pConvertStringSidToSidA || !pAddAccessAllowedAceEx || !pGetAce
-        || !pSetEntriesInAclW)
+    if (!pDuplicateTokenEx || !pAddAccessAllowedAceEx || !pSetEntriesInAclW)
     {
         win_skip("Some functions not available\n");
         return;
@@ -7141,7 +7065,7 @@ static void test_token_security_descriptor(void)
     ret = InitializeAcl(acl, 256, ACL_REVISION);
     ok(ret, "InitializeAcl failed with error %u\n", GetLastError());
 
-    ret = pConvertStringSidToSidA("S-1-5-6", &psid);
+    ret = ConvertStringSidToSidA("S-1-5-6", &psid);
     ok(ret, "ConvertStringSidToSidA failed with error %u\n", GetLastError());
 
     ret = pAddAccessAllowedAceEx(acl, ACL_REVISION, NO_PROPAGATE_INHERIT_ACE, GENERIC_ALL, psid);
@@ -7175,7 +7099,7 @@ static void test_token_security_descriptor(void)
     ok(acl2->AceCount == 1, "Expected 1 ACE, got %d\n", acl2->AceCount);
     ok(!defaulted, "acl2 defaulted\n");
 
-    ret = pGetAce(acl2, 0, (void **)&ace);
+    ret = GetAce(acl2, 0, (void **)&ace);
     ok(ret, "GetAce failed with error %u\n", GetLastError());
     ok(ace->Header.AceType == ACCESS_ALLOWED_ACE_TYPE, "Unexpected ACE type %#x\n", ace->Header.AceType);
     ok(EqualSid(&ace->SidStart, psid), "Expected access allowed ACE\n");
@@ -7212,7 +7136,7 @@ static void test_token_security_descriptor(void)
 
         index = 0;
         found = FALSE;
-        while (pGetAce(acl2, index++, (void **)&ace))
+        while (GetAce(acl2, index++, (void **)&ace))
         {
             if (ace->Header.AceType == ACCESS_ALLOWED_ACE_TYPE && EqualSid(&ace->SidStart, psid))
                 found = TRUE;
@@ -7320,7 +7244,7 @@ static void test_child_token_sd(void)
     PSID psid;
     ACL *acl;
 
-    ret = pConvertStringSidToSidA("S-1-5-6", &psid);
+    ret = ConvertStringSidToSidA("S-1-5-6", &psid);
     ok(ret, "ConvertStringSidToSidA failed with error %u\n", GetLastError());
 
     ret = OpenProcessToken(GetCurrentProcess(), MAXIMUM_ALLOWED, &token);
@@ -7346,7 +7270,7 @@ static void test_child_token_sd(void)
     ok(acl->AceCount, "Expected at least one ACE\n");
     for (i = 0; i < acl->AceCount; i++)
     {
-        ret = pGetAce(acl, i, (void **)&acc_ace);
+        ret = GetAce(acl, i, (void **)&acc_ace);
         ok(ret, "GetAce failed with error %u\n", GetLastError());
         ok(acc_ace->Header.AceType != ACCESS_ALLOWED_ACE_TYPE || !EqualSid(&acc_ace->SidStart, psid),
            "ACE inherited from the parent\n");
@@ -7378,7 +7302,7 @@ static void test_child_token_sd(void)
     ok(acl && acl != (void *)0xdeadbeef, "Got invalid SACL\n");
     ok(!defaulted, "SACL defaulted\n");
     ok(acl->AceCount == 1, "Expected exactly one ACE\n");
-    ret = pGetAce(acl, 0, (void **)&ace_label);
+    ret = GetAce(acl, 0, (void **)&ace_label);
     ok(ret, "GetAce failed with error %u\n", GetLastError());
     ok(ace_label->Header.AceType == SYSTEM_MANDATORY_LABEL_ACE_TYPE,
        "Unexpected ACE type %#x\n", ace_label->Header.AceType);
diff --git a/dlls/advapi32/tests/service.c b/dlls/advapi32/tests/service.c
index bd70ecaddf..3872666085 100644
--- a/dlls/advapi32/tests/service.c
+++ b/dlls/advapi32/tests/service.c
@@ -45,8 +45,6 @@ static BOOL (WINAPI *pEnumServicesStatusExA)(SC_HANDLE, SC_ENUM_TYPE, DWORD,
 static BOOL (WINAPI *pEnumServicesStatusExW)(SC_HANDLE, SC_ENUM_TYPE, DWORD,
                                              DWORD, LPBYTE, DWORD, LPDWORD,
                                              LPDWORD, LPDWORD, LPCWSTR);
-static DWORD (WINAPI *pGetSecurityInfo)(HANDLE, SE_OBJECT_TYPE, SECURITY_INFORMATION,
-                                        PSID*, PSID*, PACL*, PACL*, PSECURITY_DESCRIPTOR*);
 static BOOL (WINAPI *pQueryServiceConfig2A)(SC_HANDLE,DWORD,LPBYTE,DWORD,LPDWORD);
 static BOOL (WINAPI *pQueryServiceConfig2W)(SC_HANDLE,DWORD,LPBYTE,DWORD,LPDWORD);
 static BOOL (WINAPI *pQueryServiceStatusEx)(SC_HANDLE, SC_STATUS_TYPE, LPBYTE,
@@ -63,7 +61,6 @@ static void init_function_pointers(void)
     pChangeServiceConfig2W = (void*)GetProcAddress(hadvapi32, "ChangeServiceConfig2W");
     pEnumServicesStatusExA= (void*)GetProcAddress(hadvapi32, "EnumServicesStatusExA");
     pEnumServicesStatusExW= (void*)GetProcAddress(hadvapi32, "EnumServicesStatusExW");
-    pGetSecurityInfo = (void *)GetProcAddress(hadvapi32, "GetSecurityInfo");
     pQueryServiceConfig2A= (void*)GetProcAddress(hadvapi32, "QueryServiceConfig2A");
     pQueryServiceConfig2W= (void*)GetProcAddress(hadvapi32, "QueryServiceConfig2W");
     pQueryServiceStatusEx= (void*)GetProcAddress(hadvapi32, "QueryServiceStatusEx");
@@ -1910,7 +1907,7 @@ static void test_sequence(void)
     else
     {
         ok(svc_handle != NULL, "Could not create the service : %d\n", GetLastError());
-        if ((svc_handle != NULL) && (pGetSecurityInfo != NULL))
+        if (svc_handle != NULL)
         {
             PSID sidOwner, sidGroup;
             PACL dacl, sacl;
@@ -1920,22 +1917,22 @@ static void test_sequence(void)
             BOOL bret;
 
             /* Test using GetSecurityInfo to obtain security information */
-            retval = pGetSecurityInfo(svc_handle, SE_SERVICE, DACL_SECURITY_INFORMATION, &sidOwner,
+            retval = GetSecurityInfo(svc_handle, SE_SERVICE, DACL_SECURITY_INFORMATION, &sidOwner,
                                       &sidGroup, &dacl, &sacl, &pSD);
             LocalFree(pSD);
             ok(retval == ERROR_SUCCESS, "Expected GetSecurityInfo to succeed: result %d\n", retval);
-            retval = pGetSecurityInfo(svc_handle, SE_SERVICE, DACL_SECURITY_INFORMATION, NULL,
+            retval = GetSecurityInfo(svc_handle, SE_SERVICE, DACL_SECURITY_INFORMATION, NULL,
                                       NULL, NULL, NULL, &pSD);
             LocalFree(pSD);
             ok(retval == ERROR_SUCCESS, "Expected GetSecurityInfo to succeed: result %d\n", retval);
             if (!is_nt4)
             {
-                retval = pGetSecurityInfo(svc_handle, SE_SERVICE, DACL_SECURITY_INFORMATION, NULL,
+                retval = GetSecurityInfo(svc_handle, SE_SERVICE, DACL_SECURITY_INFORMATION, NULL,
                                           NULL, &dacl, NULL, &pSD);
                 ok(retval == ERROR_SUCCESS, "Expected GetSecurityInfo to succeed: result %d\n", retval);
                 LocalFree(pSD);
                 SetLastError(0xdeadbeef);
-                retval = pGetSecurityInfo(svc_handle, SE_SERVICE, DACL_SECURITY_INFORMATION, NULL,
+                retval = GetSecurityInfo(svc_handle, SE_SERVICE, DACL_SECURITY_INFORMATION, NULL,
                                           NULL, NULL, NULL, NULL);
                 error = GetLastError();
                 ok(retval == ERROR_INVALID_PARAMETER, "Expected GetSecurityInfo to fail: result %d\n", retval);
-- 
2.24.1




More information about the wine-devel mailing list