Alexandre Julliard | 0799c1a | 2002-03-09 23:29:33 +0000 | [diff] [blame] | 1 | /* |
| 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 Stridvall | 4a73973 | 1999-07-04 11:01:21 +0000 | [diff] [blame] | 19 | #ifndef __WINE_NTSECAPI_H |
| 20 | #define __WINE_NTSECAPI_H |
| 21 | |
Patrik Stridvall | 4a73973 | 1999-07-04 11:01:21 +0000 | [diff] [blame] | 22 | #ifdef __cplusplus |
| 23 | extern "C" { |
| 24 | #endif /* defined(__cplusplus) */ |
| 25 | |
Andriy Palamarchuk | 63709f0 | 2002-09-11 00:48:26 +0000 | [diff] [blame] | 26 | /* Policy access rights */ |
| 27 | #define POLICY_VIEW_LOCAL_INFORMATION 0x00000001L |
| 28 | #define POLICY_VIEW_AUDIT_INFORMATION 0x00000002L |
| 29 | #define POLICY_GET_PRIVATE_INFORMATION 0x00000004L |
| 30 | #define POLICY_TRUST_ADMIN 0x00000008L |
| 31 | #define POLICY_CREATE_ACCOUNT 0x00000010L |
| 32 | #define POLICY_CREATE_SECRET 0x00000020L |
| 33 | #define POLICY_CREATE_PRIVILEGE 0x00000040L |
| 34 | #define POLICY_SET_DEFAULT_QUOTA_LIMITS 0x00000080L |
| 35 | #define POLICY_SET_AUDIT_REQUIREMENTS 0x00000100L |
| 36 | #define POLICY_AUDIT_LOG_ADMIN 0x00000200L |
| 37 | #define POLICY_SERVER_ADMIN 0x00000400L |
| 38 | #define POLICY_LOOKUP_NAMES 0x00000800L |
| 39 | #define POLICY_NOTIFICATION 0x00001000L |
| 40 | |
| 41 | #define POLICY_ALL_ACCESS ( \ |
| 42 | STANDARD_RIGHTS_REQUIRED | \ |
| 43 | POLICY_VIEW_LOCAL_INFORMATION | \ |
| 44 | POLICY_VIEW_AUDIT_INFORMATION | \ |
| 45 | POLICY_GET_PRIVATE_INFORMATION | \ |
| 46 | POLICY_TRUST_ADMIN | \ |
| 47 | POLICY_CREATE_ACCOUNT | \ |
| 48 | POLICY_CREATE_SECRET | \ |
| 49 | POLICY_CREATE_PRIVILEGE | \ |
| 50 | POLICY_SET_DEFAULT_QUOTA_LIMITS | \ |
| 51 | POLICY_SET_AUDIT_REQUIREMENTS | \ |
| 52 | POLICY_AUDIT_LOG_ADMIN | \ |
| 53 | POLICY_SERVER_ADMIN | \ |
| 54 | POLICY_LOOKUP_NAMES) |
| 55 | |
| 56 | |
| 57 | #define POLICY_READ ( \ |
| 58 | STANDARD_RIGHTS_READ | \ |
| 59 | POLICY_VIEW_AUDIT_INFORMATION | \ |
| 60 | POLICY_GET_PRIVATE_INFORMATION) |
| 61 | |
| 62 | #define POLICY_WRITE ( \ |
| 63 | STANDARD_RIGHTS_WRITE | \ |
| 64 | POLICY_TRUST_ADMIN | \ |
| 65 | POLICY_CREATE_ACCOUNT | \ |
| 66 | POLICY_CREATE_SECRET | \ |
| 67 | POLICY_CREATE_PRIVILEGE | \ |
| 68 | POLICY_SET_DEFAULT_QUOTA_LIMITS | \ |
| 69 | POLICY_SET_AUDIT_REQUIREMENTS | \ |
| 70 | POLICY_AUDIT_LOG_ADMIN | \ |
| 71 | POLICY_SERVER_ADMIN) |
| 72 | |
| 73 | #define POLICY_EXECUTE ( \ |
| 74 | STANDARD_RIGHTS_EXECUTE | \ |
| 75 | POLICY_VIEW_LOCAL_INFORMATION | \ |
| 76 | POLICY_LOOKUP_NAMES) |
| 77 | |
Juan Lang | 213c17e | 2005-01-21 10:15:50 +0000 | [diff] [blame] | 78 | #define POLICY_AUDIT_EVENT_UNCHANGED 0x00000000L |
| 79 | #define POLICY_AUDIT_EVENT_SUCCESS 0x00000001L |
| 80 | #define POLICY_AUDIT_EVENT_FAILURE 0x00000002L |
| 81 | #define POLICY_AUDIT_EVENT_NONE 0x00000004L |
| 82 | |
| 83 | #define POLICY_AUDIT_EVENT_MASK (POLICY_AUDIT_EVENT_SUCCESS | \ |
| 84 | POLICY_AUDIT_EVENT_FAILURE | \ |
| 85 | POLICY_AUDIT_EVENT_NONE) |
| 86 | |
| 87 | /* logon rights names */ |
| 88 | #define SE_BATCH_LOGON_NAME \ |
| 89 | TEXT("SeBatchLogonRight") |
| 90 | #define SE_INTERACTIVE_LOGON_NAME \ |
| 91 | TEXT("SeInteractiveLogonRight") |
| 92 | #define SE_NETWORK_LOGON_NAME \ |
| 93 | TEXT("SeNetworkLogonRight") |
| 94 | #define SE_REMOTE_INTERACTIVE_LOGON_NAME \ |
| 95 | TEXT("SeRemoteInteractiveLogonRight") |
| 96 | #define SE_SERVICE_LOGON_NAME \ |
| 97 | TEXT("SeServiceLogonRight") |
| 98 | #define SE_DENY_BATCH_LOGON_NAME \ |
| 99 | TEXT("SeDenyBatchLogonRight") |
| 100 | #define SE_DENY_INTERACTIVE_LOGON_NAME \ |
| 101 | TEXT("SeDenyInteractiveLogonRight") |
| 102 | #define SE_DENY_NETWORK_LOGON_NAME \ |
| 103 | TEXT("SeDenyNetworkLogonRight") |
| 104 | #define SE_DENY_REMOTE_INTERACTIVE_LOGON_NAME \ |
| 105 | TEXT("SeDenyRemoteInteractiveLogonRight") |
| 106 | #define SE_DENY_SERVICE_LOGON_NAME \ |
| 107 | TEXT("SeDenyServiceLogonRight") |
| 108 | |
Francois Gouget | 6fb12fc | 2005-08-16 16:01:49 +0000 | [diff] [blame] | 109 | #ifndef WINE_NTSTATUS_DECLARED |
| 110 | #define WINE_NTSTATUS_DECLARED |
| 111 | typedef LONG NTSTATUS; |
| 112 | #endif |
| 113 | #ifndef WINE_PNTSTATUS_DECLARED |
| 114 | #define WINE_PNTSTATUS_DECLARED |
| 115 | typedef NTSTATUS *PNTSTATUS; |
| 116 | #endif |
| 117 | |
Juan Lang | 213c17e | 2005-01-21 10:15:50 +0000 | [diff] [blame] | 118 | typedef enum _SECURITY_LOGON_TYPE |
| 119 | { |
| 120 | Interactive = 2, |
| 121 | Network, |
| 122 | Batch, |
| 123 | Service, |
| 124 | Proxy |
| 125 | } SECURITY_LOGON_TYPE, *PSECURITY_LOGON_TYPE; |
| 126 | |
| 127 | typedef enum _POLICY_AUDIT_EVENT_TYPE |
| 128 | { |
| 129 | AuditCategorySystem, |
| 130 | AuditCategoryLogon, |
| 131 | AuditCategoryObjectAccess, |
| 132 | AuditCategoryPrivilegeUse, |
| 133 | AuditCategoryDetailedTracking, |
| 134 | AuditCategoryPolicyChange, |
| 135 | AuditCategoryAccountManagement |
| 136 | } POLICY_AUDIT_EVENT_TYPE, *PPOLICY_AUDIT_EVENT_TYPE; |
| 137 | |
Patrik Stridvall | 4a73973 | 1999-07-04 11:01:21 +0000 | [diff] [blame] | 138 | typedef UNICODE_STRING LSA_UNICODE_STRING, *PLSA_UNICODE_STRING; |
| 139 | typedef STRING LSA_STRING, *PLSA_STRING; |
| 140 | typedef OBJECT_ATTRIBUTES LSA_OBJECT_ATTRIBUTES, *PLSA_OBJECT_ATTRIBUTES; |
| 141 | |
| 142 | typedef PVOID LSA_HANDLE, *PLSA_HANDLE; |
Hans Leidekker | 0cc2031 | 2005-01-03 17:12:51 +0000 | [diff] [blame] | 143 | typedef ULONG LSA_ENUMERATION_HANDLE, *PLSA_ENUMERATION_HANDLE; |
Patrik Stridvall | 4a73973 | 1999-07-04 11:01:21 +0000 | [diff] [blame] | 144 | |
Vincent BĂ©ron | 9a62491 | 2002-05-31 23:06:46 +0000 | [diff] [blame] | 145 | typedef enum |
Juergen Schmied | 044db46 | 1999-12-11 23:19:54 +0000 | [diff] [blame] | 146 | { |
| 147 | PolicyAuditLogInformation = 1, |
| 148 | PolicyAuditEventsInformation, |
| 149 | PolicyPrimaryDomainInformation, |
| 150 | PolicyPdAccountInformation, |
| 151 | PolicyAccountDomainInformation, |
| 152 | PolicyLsaServerRoleInformation, |
| 153 | PolicyReplicaSourceInformation, |
| 154 | PolicyDefaultQuotaInformation, |
| 155 | PolicyModificationInformation, |
| 156 | PolicyAuditFullSetInformation, |
| 157 | PolicyAuditFullQueryInformation, |
| 158 | PolicyDnsDomainInformation |
| 159 | } POLICY_INFORMATION_CLASS, *PPOLICY_INFORMATION_CLASS; |
| 160 | |
Juergen Schmied | 02d45e5 | 2000-01-23 22:35:33 +0000 | [diff] [blame] | 161 | typedef ULONG POLICY_AUDIT_EVENT_OPTIONS, *PPOLICY_AUDIT_EVENT_OPTIONS; |
| 162 | |
Andriy Palamarchuk | 63709f0 | 2002-09-11 00:48:26 +0000 | [diff] [blame] | 163 | typedef struct _POLICY_AUDIT_EVENTS_INFO |
Juergen Schmied | 02d45e5 | 2000-01-23 22:35:33 +0000 | [diff] [blame] | 164 | { |
| 165 | BOOLEAN AuditingMode; |
| 166 | PPOLICY_AUDIT_EVENT_OPTIONS EventAuditingOptions; |
| 167 | ULONG MaximumAuditEventCount; |
| 168 | } POLICY_AUDIT_EVENTS_INFO, *PPOLICY_AUDIT_EVENTS_INFO; |
| 169 | |
Andriy Palamarchuk | 63709f0 | 2002-09-11 00:48:26 +0000 | [diff] [blame] | 170 | typedef struct _POLICY_PRIMARY_DOMAIN_INFO |
Juergen Schmied | 02d45e5 | 2000-01-23 22:35:33 +0000 | [diff] [blame] | 171 | { |
| 172 | LSA_UNICODE_STRING Name; |
| 173 | PSID Sid; |
| 174 | } POLICY_PRIMARY_DOMAIN_INFO, *PPOLICY_PRIMARY_DOMAIN_INFO; |
| 175 | |
Andriy Palamarchuk | 63709f0 | 2002-09-11 00:48:26 +0000 | [diff] [blame] | 176 | typedef struct _POLICY_ACCOUNT_DOMAIN_INFO |
| 177 | { |
| 178 | LSA_UNICODE_STRING DomainName; |
| 179 | PSID DomainSid; |
| 180 | } POLICY_ACCOUNT_DOMAIN_INFO, *PPOLICY_ACCOUNT_DOMAIN_INFO; |
| 181 | |
Mike McCormack | 5525730 | 2004-08-16 19:47:21 +0000 | [diff] [blame] | 182 | typedef struct |
| 183 | { |
| 184 | SID_NAME_USE Use; |
| 185 | LSA_UNICODE_STRING Name; |
| 186 | LONG DomainIndex; |
| 187 | } LSA_TRANSLATED_NAME, *PLSA_TRANSLATED_NAME; |
| 188 | |
| 189 | typedef struct |
| 190 | { |
| 191 | LSA_UNICODE_STRING Name; |
| 192 | PSID Sid; |
| 193 | } LSA_TRUST_INFORMATION, *PLSA_TRUST_INFORMATION; |
| 194 | |
| 195 | typedef struct |
| 196 | { |
| 197 | ULONG Entries; |
| 198 | PLSA_TRUST_INFORMATION Domains; |
| 199 | } LSA_REFERENCED_DOMAIN_LIST, *PLSA_REFERENCED_DOMAIN_LIST; |
Juergen Schmied | 02d45e5 | 2000-01-23 22:35:33 +0000 | [diff] [blame] | 200 | |
Hans Leidekker | 0cc2031 | 2005-01-03 17:12:51 +0000 | [diff] [blame] | 201 | typedef struct _LSA_TRANSLATED_SID |
| 202 | { |
| 203 | SID_NAME_USE Use; |
| 204 | ULONG RelativeId; |
| 205 | LONG DomainIndex; |
| 206 | } LSA_TRANSLATED_SID, *PLSA_TRANSLATED_SID; |
Juergen Schmied | 044db46 | 1999-12-11 23:19:54 +0000 | [diff] [blame] | 207 | |
Francois Gouget | 6fb12fc | 2005-08-16 16:01:49 +0000 | [diff] [blame] | 208 | NTSTATUS WINAPI LsaCallAuthenticationPackage(HANDLE,ULONG,PVOID,ULONG,PVOID*,PULONG,PNTSTATUS); |
Hans Leidekker | 0cc2031 | 2005-01-03 17:12:51 +0000 | [diff] [blame] | 209 | NTSTATUS WINAPI LsaClose(LSA_HANDLE); |
Hans Leidekker | 524251d | 2005-07-18 09:11:14 +0000 | [diff] [blame] | 210 | NTSTATUS WINAPI LsaConnectUntrusted(PHANDLE); |
| 211 | NTSTATUS WINAPI LsaDeregisterLogonProcess(HANDLE); |
Hans Leidekker | 0cc2031 | 2005-01-03 17:12:51 +0000 | [diff] [blame] | 212 | NTSTATUS WINAPI LsaEnumerateTrustedDomains(LSA_HANDLE,PLSA_ENUMERATION_HANDLE,PVOID*,ULONG,PULONG); |
Juergen Schmied | 044db46 | 1999-12-11 23:19:54 +0000 | [diff] [blame] | 213 | NTSTATUS WINAPI LsaFreeMemory(PVOID); |
Hans Leidekker | 0cc2031 | 2005-01-03 17:12:51 +0000 | [diff] [blame] | 214 | NTSTATUS WINAPI LsaLookupNames(LSA_HANDLE,ULONG Count,PLSA_UNICODE_STRING,PLSA_REFERENCED_DOMAIN_LIST*, |
| 215 | PLSA_TRANSLATED_SID*); |
Juan Lang | 213c17e | 2005-01-21 10:15:50 +0000 | [diff] [blame] | 216 | NTSTATUS WINAPI LsaLookupSids(LSA_HANDLE,ULONG,PSID *,PLSA_REFERENCED_DOMAIN_LIST *,PLSA_TRANSLATED_NAME *); |
Hans Leidekker | 0cc2031 | 2005-01-03 17:12:51 +0000 | [diff] [blame] | 217 | ULONG WINAPI LsaNtStatusToWinError(NTSTATUS); |
| 218 | NTSTATUS WINAPI LsaOpenPolicy(PLSA_UNICODE_STRING,PLSA_OBJECT_ATTRIBUTES,ACCESS_MASK,PLSA_HANDLE); |
| 219 | NTSTATUS WINAPI LsaQueryInformationPolicy(LSA_HANDLE,POLICY_INFORMATION_CLASS,PVOID*); |
Mike McCormack | 5e62bd0 | 2005-06-13 10:04:20 +0000 | [diff] [blame] | 220 | NTSTATUS WINAPI LsaRetrievePrivateData(LSA_HANDLE,PLSA_UNICODE_STRING,PLSA_UNICODE_STRING*); |
Hans Leidekker | 0cc2031 | 2005-01-03 17:12:51 +0000 | [diff] [blame] | 221 | NTSTATUS WINAPI LsaSetInformationPolicy(LSA_HANDLE,POLICY_INFORMATION_CLASS,PVOID); |
Mike McCormack | 5e62bd0 | 2005-06-13 10:04:20 +0000 | [diff] [blame] | 222 | NTSTATUS WINAPI LsaStorePrivateData(LSA_HANDLE,PLSA_UNICODE_STRING,PLSA_UNICODE_STRING); |
Juergen Schmied | 044db46 | 1999-12-11 23:19:54 +0000 | [diff] [blame] | 223 | |
Patrik Stridvall | 4a73973 | 1999-07-04 11:01:21 +0000 | [diff] [blame] | 224 | #ifdef __cplusplus |
| 225 | } /* extern "C" */ |
| 226 | #endif /* defined(__cplusplus) */ |
| 227 | |
| 228 | #endif /* !defined(__WINE_NTSECAPI_H) */ |