blob: b5e2b5c6866f0883e1bbda5d54fced3f49bbc0e0 [file] [log] [blame]
Alexandre Julliard0799c1a2002-03-09 23:29:33 +00001/*
2 * Copyright (C) 1999 Juergen Schmied
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 */
18
Patrik Stridvall4a739731999-07-04 11:01:21 +000019#ifndef __WINE_NTSECAPI_H
20#define __WINE_NTSECAPI_H
21
Patrik Stridvallfeb94cb1999-10-24 21:48:50 +000022#include "winnt.h"
Patrik Stridvall4a739731999-07-04 11:01:21 +000023
24#ifdef __cplusplus
25extern "C" {
26#endif /* defined(__cplusplus) */
27
Andriy Palamarchuk63709f02002-09-11 00:48:26 +000028/* Policy access rights */
29#define POLICY_VIEW_LOCAL_INFORMATION 0x00000001L
30#define POLICY_VIEW_AUDIT_INFORMATION 0x00000002L
31#define POLICY_GET_PRIVATE_INFORMATION 0x00000004L
32#define POLICY_TRUST_ADMIN 0x00000008L
33#define POLICY_CREATE_ACCOUNT 0x00000010L
34#define POLICY_CREATE_SECRET 0x00000020L
35#define POLICY_CREATE_PRIVILEGE 0x00000040L
36#define POLICY_SET_DEFAULT_QUOTA_LIMITS 0x00000080L
37#define POLICY_SET_AUDIT_REQUIREMENTS 0x00000100L
38#define POLICY_AUDIT_LOG_ADMIN 0x00000200L
39#define POLICY_SERVER_ADMIN 0x00000400L
40#define POLICY_LOOKUP_NAMES 0x00000800L
41#define POLICY_NOTIFICATION 0x00001000L
42
43#define POLICY_ALL_ACCESS ( \
44 STANDARD_RIGHTS_REQUIRED | \
45 POLICY_VIEW_LOCAL_INFORMATION | \
46 POLICY_VIEW_AUDIT_INFORMATION | \
47 POLICY_GET_PRIVATE_INFORMATION | \
48 POLICY_TRUST_ADMIN | \
49 POLICY_CREATE_ACCOUNT | \
50 POLICY_CREATE_SECRET | \
51 POLICY_CREATE_PRIVILEGE | \
52 POLICY_SET_DEFAULT_QUOTA_LIMITS | \
53 POLICY_SET_AUDIT_REQUIREMENTS | \
54 POLICY_AUDIT_LOG_ADMIN | \
55 POLICY_SERVER_ADMIN | \
56 POLICY_LOOKUP_NAMES)
57
58
59#define POLICY_READ ( \
60 STANDARD_RIGHTS_READ | \
61 POLICY_VIEW_AUDIT_INFORMATION | \
62 POLICY_GET_PRIVATE_INFORMATION)
63
64#define POLICY_WRITE ( \
65 STANDARD_RIGHTS_WRITE | \
66 POLICY_TRUST_ADMIN | \
67 POLICY_CREATE_ACCOUNT | \
68 POLICY_CREATE_SECRET | \
69 POLICY_CREATE_PRIVILEGE | \
70 POLICY_SET_DEFAULT_QUOTA_LIMITS | \
71 POLICY_SET_AUDIT_REQUIREMENTS | \
72 POLICY_AUDIT_LOG_ADMIN | \
73 POLICY_SERVER_ADMIN)
74
75#define POLICY_EXECUTE ( \
76 STANDARD_RIGHTS_EXECUTE | \
77 POLICY_VIEW_LOCAL_INFORMATION | \
78 POLICY_LOOKUP_NAMES)
79
Patrik Stridvall4a739731999-07-04 11:01:21 +000080typedef UNICODE_STRING LSA_UNICODE_STRING, *PLSA_UNICODE_STRING;
81typedef STRING LSA_STRING, *PLSA_STRING;
82typedef OBJECT_ATTRIBUTES LSA_OBJECT_ATTRIBUTES, *PLSA_OBJECT_ATTRIBUTES;
83
84typedef PVOID LSA_HANDLE, *PLSA_HANDLE;
85
86NTSTATUS WINAPI LsaOpenPolicy(PLSA_UNICODE_STRING,PLSA_OBJECT_ATTRIBUTES,ACCESS_MASK,PLSA_HANDLE);
87
Vincent BĂ©ron9a624912002-05-31 23:06:46 +000088typedef enum
Juergen Schmied044db461999-12-11 23:19:54 +000089{
90 PolicyAuditLogInformation = 1,
91 PolicyAuditEventsInformation,
92 PolicyPrimaryDomainInformation,
93 PolicyPdAccountInformation,
94 PolicyAccountDomainInformation,
95 PolicyLsaServerRoleInformation,
96 PolicyReplicaSourceInformation,
97 PolicyDefaultQuotaInformation,
98 PolicyModificationInformation,
99 PolicyAuditFullSetInformation,
100 PolicyAuditFullQueryInformation,
101 PolicyDnsDomainInformation
102} POLICY_INFORMATION_CLASS, *PPOLICY_INFORMATION_CLASS;
103
Juergen Schmied02d45e52000-01-23 22:35:33 +0000104typedef ULONG POLICY_AUDIT_EVENT_OPTIONS, *PPOLICY_AUDIT_EVENT_OPTIONS;
105
Andriy Palamarchuk63709f02002-09-11 00:48:26 +0000106typedef struct _POLICY_AUDIT_EVENTS_INFO
Juergen Schmied02d45e52000-01-23 22:35:33 +0000107{
108 BOOLEAN AuditingMode;
109 PPOLICY_AUDIT_EVENT_OPTIONS EventAuditingOptions;
110 ULONG MaximumAuditEventCount;
111} POLICY_AUDIT_EVENTS_INFO, *PPOLICY_AUDIT_EVENTS_INFO;
112
Andriy Palamarchuk63709f02002-09-11 00:48:26 +0000113typedef struct _POLICY_PRIMARY_DOMAIN_INFO
Juergen Schmied02d45e52000-01-23 22:35:33 +0000114{
115 LSA_UNICODE_STRING Name;
116 PSID Sid;
117} POLICY_PRIMARY_DOMAIN_INFO, *PPOLICY_PRIMARY_DOMAIN_INFO;
118
Andriy Palamarchuk63709f02002-09-11 00:48:26 +0000119typedef struct _POLICY_ACCOUNT_DOMAIN_INFO
120{
121 LSA_UNICODE_STRING DomainName;
122 PSID DomainSid;
123} POLICY_ACCOUNT_DOMAIN_INFO, *PPOLICY_ACCOUNT_DOMAIN_INFO;
124
Juergen Schmied02d45e52000-01-23 22:35:33 +0000125
Juergen Schmied044db461999-12-11 23:19:54 +0000126NTSTATUS WINAPI LsaQueryInformationPolicy(LSA_HANDLE,POLICY_INFORMATION_CLASS,PVOID*);
127
128NTSTATUS WINAPI LsaFreeMemory(PVOID);
129NTSTATUS WINAPI LsaClose(IN LSA_HANDLE ObjectHandle);
Andriy Palamarchukd7922142002-09-06 19:36:37 +0000130ULONG WINAPI LsaNtStatusToWinError(NTSTATUS Status);
131
Juergen Schmied044db461999-12-11 23:19:54 +0000132
Patrik Stridvall4a739731999-07-04 11:01:21 +0000133#ifdef __cplusplus
134} /* extern "C" */
135#endif /* defined(__cplusplus) */
136
137#endif /* !defined(__WINE_NTSECAPI_H) */