2 * Unit tests for lsa functions
4 * Copyright (c) 2006 Robert Reif
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
25 #define WIN32_NO_STATUS
32 #include "wine/test.h"
34 static HMODULE hadvapi32
;
35 static NTSTATUS (WINAPI
*pLsaClose
)(LSA_HANDLE
);
36 static NTSTATUS (WINAPI
*pLsaFreeMemory
)(PVOID
);
37 static NTSTATUS (WINAPI
*pLsaOpenPolicy
)(PLSA_UNICODE_STRING
,PLSA_OBJECT_ATTRIBUTES
,ACCESS_MASK
,PLSA_HANDLE
);
38 static NTSTATUS (WINAPI
*pLsaQueryInformationPolicy
)(LSA_HANDLE
,POLICY_INFORMATION_CLASS
,PVOID
*);
40 static BOOL
init(void)
42 hadvapi32
= GetModuleHandle("advapi32.dll");
45 pLsaClose
= (void*)GetProcAddress(hadvapi32
, "LsaClose");
46 pLsaFreeMemory
= (void*)GetProcAddress(hadvapi32
, "LsaFreeMemory");
47 pLsaOpenPolicy
= (void*)GetProcAddress(hadvapi32
, "LsaOpenPolicy");
48 pLsaQueryInformationPolicy
= (void*)GetProcAddress(hadvapi32
, "LsaQueryInformationPolicy");
50 if (pLsaClose
&& pLsaFreeMemory
&& pLsaOpenPolicy
&& pLsaQueryInformationPolicy
)
57 static void test_lsa(void)
61 LSA_OBJECT_ATTRIBUTES object_attributes
;
63 ZeroMemory(&object_attributes
, sizeof(object_attributes
));
65 status
= pLsaOpenPolicy( NULL
, &object_attributes
, POLICY_ALL_ACCESS
, &handle
);
66 ok(status
== STATUS_SUCCESS
, "LsaOpenPolicy() returned 0x%08lx\n", status
);
68 if (status
== STATUS_SUCCESS
) {
69 PPOLICY_PRIMARY_DOMAIN_INFO domain_info
;
71 status
= pLsaQueryInformationPolicy(handle
, PolicyPrimaryDomainInformation
, (PVOID
*)&domain_info
);
72 ok(status
== STATUS_SUCCESS
, "LsaQueryInformationPolicy() failed, returned 0x%08lx\n", status
);
73 if (status
== STATUS_SUCCESS
)
74 pLsaFreeMemory((LPVOID
)domain_info
);
76 status
= pLsaClose(handle
);
77 ok(status
== STATUS_SUCCESS
, "LsaClose() failed, returned 0x%08lx\n", status
);