wintab32: Use the ARRAY_SIZE() macro.
[wine.git] / include / ntsecapi.h
blob6d5e01d675bef392834cc4b389896f222597de97
1 /*
2 * Copyright (C) 1999 Juergen Schmied
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.
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.
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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 #ifndef __WINE_NTSECAPI_H
20 #define __WINE_NTSECAPI_H
22 #ifndef GUID_DEFINED
23 # include <guiddef.h>
24 #endif
26 #ifdef __cplusplus
27 extern "C" {
28 #endif /* defined(__cplusplus) */
30 /* Policy access rights */
31 #define POLICY_VIEW_LOCAL_INFORMATION __MSABI_LONG(0x00000001)
32 #define POLICY_VIEW_AUDIT_INFORMATION __MSABI_LONG(0x00000002)
33 #define POLICY_GET_PRIVATE_INFORMATION __MSABI_LONG(0x00000004)
34 #define POLICY_TRUST_ADMIN __MSABI_LONG(0x00000008)
35 #define POLICY_CREATE_ACCOUNT __MSABI_LONG(0x00000010)
36 #define POLICY_CREATE_SECRET __MSABI_LONG(0x00000020)
37 #define POLICY_CREATE_PRIVILEGE __MSABI_LONG(0x00000040)
38 #define POLICY_SET_DEFAULT_QUOTA_LIMITS __MSABI_LONG(0x00000080)
39 #define POLICY_SET_AUDIT_REQUIREMENTS __MSABI_LONG(0x00000100)
40 #define POLICY_AUDIT_LOG_ADMIN __MSABI_LONG(0x00000200)
41 #define POLICY_SERVER_ADMIN __MSABI_LONG(0x00000400)
42 #define POLICY_LOOKUP_NAMES __MSABI_LONG(0x00000800)
43 #define POLICY_NOTIFICATION __MSABI_LONG(0x00001000)
45 #define POLICY_ALL_ACCESS ( \
46 STANDARD_RIGHTS_REQUIRED | \
47 POLICY_VIEW_LOCAL_INFORMATION | \
48 POLICY_VIEW_AUDIT_INFORMATION | \
49 POLICY_GET_PRIVATE_INFORMATION | \
50 POLICY_TRUST_ADMIN | \
51 POLICY_CREATE_ACCOUNT | \
52 POLICY_CREATE_SECRET | \
53 POLICY_CREATE_PRIVILEGE | \
54 POLICY_SET_DEFAULT_QUOTA_LIMITS | \
55 POLICY_SET_AUDIT_REQUIREMENTS | \
56 POLICY_AUDIT_LOG_ADMIN | \
57 POLICY_SERVER_ADMIN | \
58 POLICY_LOOKUP_NAMES)
61 #define POLICY_READ ( \
62 STANDARD_RIGHTS_READ | \
63 POLICY_VIEW_AUDIT_INFORMATION | \
64 POLICY_GET_PRIVATE_INFORMATION)
66 #define POLICY_WRITE ( \
67 STANDARD_RIGHTS_WRITE | \
68 POLICY_TRUST_ADMIN | \
69 POLICY_CREATE_ACCOUNT | \
70 POLICY_CREATE_SECRET | \
71 POLICY_CREATE_PRIVILEGE | \
72 POLICY_SET_DEFAULT_QUOTA_LIMITS | \
73 POLICY_SET_AUDIT_REQUIREMENTS | \
74 POLICY_AUDIT_LOG_ADMIN | \
75 POLICY_SERVER_ADMIN)
77 #define POLICY_EXECUTE ( \
78 STANDARD_RIGHTS_EXECUTE | \
79 POLICY_VIEW_LOCAL_INFORMATION | \
80 POLICY_LOOKUP_NAMES)
82 #define POLICY_AUDIT_EVENT_UNCHANGED __MSABI_LONG(0x00000000)
83 #define POLICY_AUDIT_EVENT_SUCCESS __MSABI_LONG(0x00000001)
84 #define POLICY_AUDIT_EVENT_FAILURE __MSABI_LONG(0x00000002)
85 #define POLICY_AUDIT_EVENT_NONE __MSABI_LONG(0x00000004)
87 #define POLICY_AUDIT_EVENT_MASK (POLICY_AUDIT_EVENT_SUCCESS | \
88 POLICY_AUDIT_EVENT_FAILURE | \
89 POLICY_AUDIT_EVENT_NONE)
91 /* logon rights names */
92 #define SE_BATCH_LOGON_NAME \
93 TEXT("SeBatchLogonRight")
94 #define SE_INTERACTIVE_LOGON_NAME \
95 TEXT("SeInteractiveLogonRight")
96 #define SE_NETWORK_LOGON_NAME \
97 TEXT("SeNetworkLogonRight")
98 #define SE_REMOTE_INTERACTIVE_LOGON_NAME \
99 TEXT("SeRemoteInteractiveLogonRight")
100 #define SE_SERVICE_LOGON_NAME \
101 TEXT("SeServiceLogonRight")
102 #define SE_DENY_BATCH_LOGON_NAME \
103 TEXT("SeDenyBatchLogonRight")
104 #define SE_DENY_INTERACTIVE_LOGON_NAME \
105 TEXT("SeDenyInteractiveLogonRight")
106 #define SE_DENY_NETWORK_LOGON_NAME \
107 TEXT("SeDenyNetworkLogonRight")
108 #define SE_DENY_REMOTE_INTERACTIVE_LOGON_NAME \
109 TEXT("SeDenyRemoteInteractiveLogonRight")
110 #define SE_DENY_SERVICE_LOGON_NAME \
111 TEXT("SeDenyServiceLogonRight")
113 #ifndef WINE_NTSTATUS_DECLARED
114 #define WINE_NTSTATUS_DECLARED
115 typedef LONG NTSTATUS;
116 #endif
117 #ifndef WINE_PNTSTATUS_DECLARED
118 #define WINE_PNTSTATUS_DECLARED
119 typedef NTSTATUS *PNTSTATUS;
120 #endif
122 typedef enum _SECURITY_LOGON_TYPE
124 Interactive = 2,
125 Network,
126 Batch,
127 Service,
128 Proxy
129 } SECURITY_LOGON_TYPE, *PSECURITY_LOGON_TYPE;
131 typedef enum _POLICY_AUDIT_EVENT_TYPE
133 AuditCategorySystem,
134 AuditCategoryLogon,
135 AuditCategoryObjectAccess,
136 AuditCategoryPrivilegeUse,
137 AuditCategoryDetailedTracking,
138 AuditCategoryPolicyChange,
139 AuditCategoryAccountManagement
140 } POLICY_AUDIT_EVENT_TYPE, *PPOLICY_AUDIT_EVENT_TYPE;
142 #ifndef __STRING_DEFINED__
143 #define __STRING_DEFINED__
144 typedef struct _STRING {
145 USHORT Length;
146 USHORT MaximumLength;
147 PCHAR Buffer;
148 } STRING, *PSTRING;
149 #endif
151 #ifndef __UNICODE_STRING_DEFINED__
152 #define __UNICODE_STRING_DEFINED__
153 typedef struct _UNICODE_STRING {
154 USHORT Length; /* bytes */
155 USHORT MaximumLength; /* bytes */
156 PWSTR Buffer;
157 } UNICODE_STRING, *PUNICODE_STRING;
158 #endif
160 #ifndef __OBJECT_ATTRIBUTES_DEFINED__
161 #define __OBJECT_ATTRIBUTES_DEFINED__
162 typedef struct _OBJECT_ATTRIBUTES {
163 ULONG Length;
164 HANDLE RootDirectory;
165 PUNICODE_STRING ObjectName;
166 ULONG Attributes;
167 PVOID SecurityDescriptor; /* type SECURITY_DESCRIPTOR */
168 PVOID SecurityQualityOfService; /* type SECURITY_QUALITY_OF_SERVICE */
169 } OBJECT_ATTRIBUTES, *POBJECT_ATTRIBUTES;
170 #endif
172 #ifndef __SECHANDLE_DEFINED__
173 #define __SECHANDLE_DEFINED__
174 typedef struct _SecHandle
176 ULONG_PTR dwLower;
177 ULONG_PTR dwUpper;
178 } SecHandle, *PSecHandle;
179 #endif
181 typedef UNICODE_STRING LSA_UNICODE_STRING, *PLSA_UNICODE_STRING;
182 typedef STRING LSA_STRING, *PLSA_STRING;
183 typedef OBJECT_ATTRIBUTES LSA_OBJECT_ATTRIBUTES, *PLSA_OBJECT_ATTRIBUTES;
185 typedef PVOID LSA_HANDLE, *PLSA_HANDLE;
186 typedef ULONG LSA_ENUMERATION_HANDLE, *PLSA_ENUMERATION_HANDLE;
187 typedef ULONG LSA_OPERATIONAL_MODE, *PLSA_OPERATIONAL_MODE;
189 typedef enum
191 PolicyAuditLogInformation = 1,
192 PolicyAuditEventsInformation,
193 PolicyPrimaryDomainInformation,
194 PolicyPdAccountInformation,
195 PolicyAccountDomainInformation,
196 PolicyLsaServerRoleInformation,
197 PolicyReplicaSourceInformation,
198 PolicyDefaultQuotaInformation,
199 PolicyModificationInformation,
200 PolicyAuditFullSetInformation,
201 PolicyAuditFullQueryInformation,
202 PolicyDnsDomainInformation
203 } POLICY_INFORMATION_CLASS, *PPOLICY_INFORMATION_CLASS;
205 typedef ULONG POLICY_AUDIT_EVENT_OPTIONS, *PPOLICY_AUDIT_EVENT_OPTIONS;
207 typedef struct _POLICY_AUDIT_EVENTS_INFO
209 BOOLEAN AuditingMode;
210 PPOLICY_AUDIT_EVENT_OPTIONS EventAuditingOptions;
211 ULONG MaximumAuditEventCount;
212 } POLICY_AUDIT_EVENTS_INFO, *PPOLICY_AUDIT_EVENTS_INFO;
214 typedef struct _POLICY_PRIMARY_DOMAIN_INFO
216 LSA_UNICODE_STRING Name;
217 PSID Sid;
218 } POLICY_PRIMARY_DOMAIN_INFO, *PPOLICY_PRIMARY_DOMAIN_INFO;
220 typedef struct _POLICY_ACCOUNT_DOMAIN_INFO
222 LSA_UNICODE_STRING DomainName;
223 PSID DomainSid;
224 } POLICY_ACCOUNT_DOMAIN_INFO, *PPOLICY_ACCOUNT_DOMAIN_INFO;
226 typedef struct _POLICY_DNS_DOMAIN_INFO
228 LSA_UNICODE_STRING Name;
229 LSA_UNICODE_STRING DnsDomainName;
230 LSA_UNICODE_STRING DnsForestName;
231 GUID DomainGuid;
232 PSID Sid;
233 } POLICY_DNS_DOMAIN_INFO, *PPOLICY_DNS_DOMAIN_INFO;
235 typedef enum _POLICY_LSA_SERVER_ROLE
237 PolicyServerRoleBackup = 2,
238 PolicyServerRolePrimary
239 } POLICY_LSA_SERVER_ROLE, *PPOLICY_LSA_SERVER_ROLE;
241 typedef struct _POLICY_LSA_SERVER_ROLE_INFO
243 POLICY_LSA_SERVER_ROLE LsaServerRole;
244 } POLICY_LSA_SERVER_ROLE_INFO, *PPOLICY_LSA_SERVER_ROLE_INFO;
246 typedef struct _POLICY_MODIFICATION_INFO
248 LARGE_INTEGER ModifiedId;
249 LARGE_INTEGER DatabaseCreationTime;
250 } POLICY_MODIFICATION_INFO, *PPOLICY_MODIFICATION_INFO;
252 typedef struct _SECURITY_LOGON_SESSION_DATA {
253 ULONG Size;
254 LUID LogonId;
255 LSA_UNICODE_STRING UserName;
256 LSA_UNICODE_STRING LogonDomain;
257 LSA_UNICODE_STRING AuthenticationPackage;
258 ULONG LogonType;
259 ULONG Session;
260 PSID Sid;
261 LARGE_INTEGER LogonTime;
262 LSA_UNICODE_STRING LogonServer;
263 LSA_UNICODE_STRING DnsDomainName;
264 LSA_UNICODE_STRING Upn;
265 } SECURITY_LOGON_SESSION_DATA, *PSECURITY_LOGON_SESSION_DATA;
267 typedef struct
269 SID_NAME_USE Use;
270 LSA_UNICODE_STRING Name;
271 LONG DomainIndex;
272 } LSA_TRANSLATED_NAME, *PLSA_TRANSLATED_NAME;
274 typedef struct
276 LSA_UNICODE_STRING Name;
277 PSID Sid;
278 } LSA_TRUST_INFORMATION, *PLSA_TRUST_INFORMATION;
280 typedef struct
282 ULONG Entries;
283 PLSA_TRUST_INFORMATION Domains;
284 } LSA_REFERENCED_DOMAIN_LIST, *PLSA_REFERENCED_DOMAIN_LIST;
286 typedef struct _LSA_TRANSLATED_SID
288 SID_NAME_USE Use;
289 ULONG RelativeId;
290 LONG DomainIndex;
291 } LSA_TRANSLATED_SID, *PLSA_TRANSLATED_SID;
293 typedef struct _TRUSTED_DOMAIN_INFORMATION_EX
295 LSA_UNICODE_STRING Name;
296 LSA_UNICODE_STRING FlatName;
297 PSID Sid;
298 ULONG TrustDirection;
299 ULONG TrustType;
300 ULONG TrustAttributes;
301 } TRUSTED_DOMAIN_INFORMATION_EX, *PTRUSTED_DOMAIN_INFORMATION_EX;
303 typedef struct _LSA_AUTH_INFORMATION
305 LARGE_INTEGER LastUpdateTime;
306 ULONG AuthType;
307 ULONG AuthInfoLength;
308 PUCHAR AuthInfo;
309 } LSA_AUTH_INFORMATION, *PLSA_AUTH_INFORMATION;
311 typedef struct _TRUSTED_DOMAIN_AUTH_INFORMATION
313 ULONG IncomingAuthInfos;
314 PLSA_AUTH_INFORMATION IncomingAuthenticationInformation;
315 PLSA_AUTH_INFORMATION IncomingPreviousAuthenticationInformation;
316 ULONG OutgoingAuthInfos;
317 PLSA_AUTH_INFORMATION OutgoingAuthenticationInformation;
318 PLSA_AUTH_INFORMATION OutgoingPreviousAuthenticationInformation;
319 } TRUSTED_DOMAIN_AUTH_INFORMATION, *PTRUSTED_DOMAIN_AUTH_INFORMATION;
321 typedef struct _LSA_TRANSLATED_SID2
323 SID_NAME_USE Use;
324 PSID Sid;
325 LONG DomainIndex;
326 ULONG Flags;
327 } LSA_TRANSLATED_SID2, *PLSA_TRANSLATED_SID2;
329 typedef enum _TRUSTED_INFORMATION_CLASS
331 TrustedDomainNameInformation = 1,
332 TrustedControllersInformation,
333 TrustedPosixOffsetInformation,
334 TrustedPasswordInformation,
335 TrustedDomainInformationBasic,
336 TrustedDomainInformationEx,
337 TrustedDomainAuthInformation,
338 TrustedDomainFullInformation
339 } TRUSTED_INFORMATION_CLASS, *PTRUSTED_INFORMATION_CLASS;
341 typedef enum _POLICY_NOTIFICATION_INFORMATION_CLASS
343 PolicyNotifyAuditEventsInformation = 1,
344 PolicyNotifyAccountDomainInformation,
345 PolicyNotifyServerRoleInformation,
346 PolicyNotifyDnsDomainInformation,
347 PolicyNotifyDomainEfsInformation,
348 PolicyNotifyDomainKerberosTicketInformation,
349 PolicyNotifyMachineAccountPasswordInformation
350 } POLICY_NOTIFICATION_INFORMATION_CLASS, *PPOLICY_NOTIFICATION_INFORMATION_CLASS;
352 #define MICROSOFT_KERBEROS_NAME_A "Kerberos"
353 #if defined(_MSC_VER)
354 #define MICROSOFT_KERBEROS_NAME_W L"Kerberos"
355 #elif defined(__GNUC__)
356 #define MICROSOFT_KERBEROS_NAME_W (const WCHAR []){ 'K','e','r','b','e','r','o','s',0 }
357 #else /* _MSC_VER/__GNUC__ */
358 static const WCHAR MICROSOFT_KERBEROS_NAME_W[] = { 'K','e','r','b','e','r','o','s',0 };
359 #endif
361 #define KERB_TICKET_FLAGS_reserved 0x80000000
362 #define KERB_TICKET_FLAGS_forwardable 0x40000000
363 #define KERB_TICKET_FLAGS_forwarded 0x20000000
364 #define KERB_TICKET_FLAGS_proxiable 0x10000000
365 #define KERB_TICKET_FLAGS_proxy 0x08000000
366 #define KERB_TICKET_FLAGS_may_postdate 0x04000000
367 #define KERB_TICKET_FLAGS_postdated 0x02000000
368 #define KERB_TICKET_FLAGS_invalid 0x01000000
369 #define KERB_TICKET_FLAGS_renewable 0x00800000
370 #define KERB_TICKET_FLAGS_initial 0x00400000
371 #define KERB_TICKET_FLAGS_pre_authent 0x00200000
372 #define KERB_TICKET_FLAGS_hw_authent 0x00100000
373 #define KERB_TICKET_FLAGS_ok_as_delegate 0x00040000
374 #define KERB_TICKET_FLAGS_name_canonicalize 0x00010000
375 #define KERB_TICKET_FLAGS_cname_in_pa_data 0x00040000
376 #define KERB_TICKET_FLAGS_reserved1 0x00000001
378 typedef enum _KERB_PROTOCOL_MESSAGE_TYPE
380 KerbDebugRequestMessage = 0,
381 KerbQueryTicketCacheMessage,
382 KerbChangeMachinePasswordMessage,
383 KerbVerifyPacMessage,
384 KerbRetrieveTicketMessage,
385 KerbUpdateAddressesMessage,
386 KerbPurgeTicketCacheMessage,
387 KerbChangePasswordMessage,
388 KerbRetrieveEncodedTicketMessage,
389 KerbDecryptDataMessage,
390 KerbAddBindingCacheEntryMessage,
391 KerbSetPasswordMessage,
392 KerbSetPasswordExMessage,
393 KerbVerifyCredentialsMessage,
394 KerbQueryTicketCacheExMessage,
395 KerbPurgeTicketCacheExMessage,
396 KerbRefreshSmartcardCredentialsMessage,
397 KerbAddExtraCredentialsMessage,
398 KerbQuerySupplementalCredentialsMessage,
399 KerbTransferCredentialsMessage,
400 KerbQueryTicketCacheEx2Message,
401 KerbSubmitTicketMessage,
402 KerbAddExtraCredentialsExMessage,
403 KerbQueryKdcProxyCacheMessage,
404 KerbPurgeKdcProxyCacheMessage,
405 KerbQueryTicketCacheEx3Message,
406 KerbCleanupMachinePkinitCredsMessage,
407 KerbAddBindingCacheEntryExMessage,
408 KerbQueryBindingCacheMessage,
409 KerbPurgeBindingCacheMessage,
410 KerbQueryDomainExtendedPoliciesMessage,
411 KerbQueryS4U2ProxyCacheMessage
412 } KERB_PROTOCOL_MESSAGE_TYPE, *PKERB_PROTOCOL_MESSAGE_TYPE;
414 typedef struct _KERB_TICKET_CACHE_INFO
416 UNICODE_STRING ServerName;
417 UNICODE_STRING RealmName;
418 LARGE_INTEGER StartTime;
419 LARGE_INTEGER EndTime;
420 LARGE_INTEGER RenewTime;
421 LONG EncryptionType;
422 ULONG TicketFlags;
423 } KERB_TICKET_CACHE_INFO, *PKERB_TICKET_CACHE_INFO;
425 typedef struct _KERB_QUERY_TKT_CACHE_REQUEST
427 KERB_PROTOCOL_MESSAGE_TYPE MessageType;
428 LUID LogonId;
429 } KERB_QUERY_TKT_CACHE_REQUEST, *PKERB_QUERY_TKT_CACHE_REQUEST;
431 typedef struct _KERB_QUERY_TKT_CACHE_RESPONSE
433 KERB_PROTOCOL_MESSAGE_TYPE MessageType;
434 ULONG CountOfTickets;
435 KERB_TICKET_CACHE_INFO Tickets[ANYSIZE_ARRAY];
436 } KERB_QUERY_TKT_CACHE_RESPONSE, *PKERB_QUERY_TKT_CACHE_RESPONSE;
438 typedef struct _KERB_RETRIEVE_TKT_REQUEST
440 KERB_PROTOCOL_MESSAGE_TYPE MessageType;
441 LUID LogonId;
442 UNICODE_STRING TargetName;
443 ULONG TicketFlags;
444 ULONG CacheOptions;
445 LONG EncryptionType;
446 SecHandle CredentialsHandle;
447 } KERB_RETRIEVE_TKT_REQUEST, *PKERB_RETRIEVE_TKT_REQUEST;
449 typedef struct _KERB_PURGE_TKT_CACHE_REQUEST
451 KERB_PROTOCOL_MESSAGE_TYPE MessageType;
452 LUID LogonId;
453 UNICODE_STRING ServerName;
454 UNICODE_STRING RealmName;
455 } KERB_PURGE_TKT_CACHE_REQUEST, *PKERB_PURGE_TKT_CACHE_REQUEST;
457 #define RtlGenRandom SystemFunction036
458 #define RtlEncryptMemory SystemFunction040
459 #define RtlDecryptMemory SystemFunction041
461 BOOLEAN WINAPI RtlGenRandom(PVOID,ULONG);
462 NTSTATUS WINAPI RtlEncryptMemory(PVOID,ULONG,ULONG);
463 NTSTATUS WINAPI RtlDecryptMemory(PVOID,ULONG,ULONG);
465 NTSTATUS WINAPI LsaAddAccountRights(LSA_HANDLE,PSID,PLSA_UNICODE_STRING,ULONG);
466 NTSTATUS WINAPI LsaCallAuthenticationPackage(HANDLE,ULONG,PVOID,ULONG,PVOID*,PULONG,PNTSTATUS);
467 NTSTATUS WINAPI LsaClose(LSA_HANDLE);
468 NTSTATUS WINAPI LsaConnectUntrusted(PHANDLE);
469 NTSTATUS WINAPI LsaCreateTrustedDomainEx(LSA_HANDLE,PTRUSTED_DOMAIN_INFORMATION_EX,
470 PTRUSTED_DOMAIN_AUTH_INFORMATION,ACCESS_MASK,PLSA_HANDLE);
471 NTSTATUS WINAPI LsaDeleteTrustedDomain(LSA_HANDLE,PSID);
472 NTSTATUS WINAPI LsaDeregisterLogonProcess(HANDLE);
473 NTSTATUS WINAPI LsaEnumerateAccountRights(LSA_HANDLE,PSID,PLSA_UNICODE_STRING*,PULONG);
474 NTSTATUS WINAPI LsaEnumerateAccountsWithUserRight(LSA_HANDLE,PLSA_UNICODE_STRING,PVOID*,PULONG);
475 NTSTATUS WINAPI LsaEnumerateLogonSessions(PULONG,PLUID*);
476 NTSTATUS WINAPI LsaEnumerateTrustedDomains(LSA_HANDLE,PLSA_ENUMERATION_HANDLE,PVOID*,ULONG,PULONG);
477 NTSTATUS WINAPI LsaEnumerateTrustedDomainsEx(LSA_HANDLE,PLSA_ENUMERATION_HANDLE,PVOID*,ULONG,PULONG);
478 NTSTATUS WINAPI LsaFreeMemory(PVOID);
479 NTSTATUS WINAPI LsaFreeReturnBuffer(PVOID);
480 NTSTATUS WINAPI LsaGetLogonSessionData(PLUID,PSECURITY_LOGON_SESSION_DATA*);
481 NTSTATUS WINAPI LsaLogonUser(HANDLE,PLSA_STRING,SECURITY_LOGON_TYPE,ULONG,PVOID,ULONG,PTOKEN_GROUPS,PTOKEN_SOURCE,PVOID*,PULONG,PLUID,PHANDLE,PQUOTA_LIMITS,PNTSTATUS);
482 NTSTATUS WINAPI LsaLookupAuthenticationPackage(HANDLE,PLSA_STRING,PULONG);
483 NTSTATUS WINAPI LsaLookupNames(LSA_HANDLE,ULONG,PLSA_UNICODE_STRING,PLSA_REFERENCED_DOMAIN_LIST*,
484 PLSA_TRANSLATED_SID*);
485 NTSTATUS WINAPI LsaLookupNames2(LSA_HANDLE,ULONG,ULONG,PLSA_UNICODE_STRING,PLSA_REFERENCED_DOMAIN_LIST*,
486 PLSA_TRANSLATED_SID2*);
487 NTSTATUS WINAPI LsaLookupSids(LSA_HANDLE,ULONG,PSID *,PLSA_REFERENCED_DOMAIN_LIST *,PLSA_TRANSLATED_NAME *);
488 ULONG WINAPI LsaNtStatusToWinError(NTSTATUS);
489 NTSTATUS WINAPI LsaOpenPolicy(PLSA_UNICODE_STRING,PLSA_OBJECT_ATTRIBUTES,ACCESS_MASK,PLSA_HANDLE);
490 NTSTATUS WINAPI LsaOpenTrustedDomainByName(LSA_HANDLE,PLSA_UNICODE_STRING,ACCESS_MASK,PLSA_HANDLE);
491 NTSTATUS WINAPI LsaQueryInformationPolicy(LSA_HANDLE,POLICY_INFORMATION_CLASS,PVOID*);
492 NTSTATUS WINAPI LsaQueryTrustedDomainInfo(LSA_HANDLE,PSID,TRUSTED_INFORMATION_CLASS,PVOID*);
493 NTSTATUS WINAPI LsaQueryTrustedDomainInfoByName(LSA_HANDLE,PLSA_UNICODE_STRING,TRUSTED_INFORMATION_CLASS,PVOID*);
494 NTSTATUS WINAPI LsaRegisterLogonProcess(PLSA_STRING,PHANDLE,PLSA_OPERATIONAL_MODE);
495 NTSTATUS WINAPI LsaRegisterPolicyChangeNotification(POLICY_NOTIFICATION_INFORMATION_CLASS,HANDLE);
496 NTSTATUS WINAPI LsaRemoveAccountRights(LSA_HANDLE,PSID,BOOLEAN,PLSA_UNICODE_STRING,ULONG);
497 NTSTATUS WINAPI LsaRetrievePrivateData(LSA_HANDLE,PLSA_UNICODE_STRING,PLSA_UNICODE_STRING*);
498 NTSTATUS WINAPI LsaSetInformationPolicy(LSA_HANDLE,POLICY_INFORMATION_CLASS,PVOID);
499 NTSTATUS WINAPI LsaSetTrustedDomainInfoByName(LSA_HANDLE,PLSA_UNICODE_STRING,TRUSTED_INFORMATION_CLASS,PVOID);
500 NTSTATUS WINAPI LsaSetTrustedDomainInformation(LSA_HANDLE,PSID,TRUSTED_INFORMATION_CLASS,PVOID);
501 NTSTATUS WINAPI LsaStorePrivateData(LSA_HANDLE,PLSA_UNICODE_STRING,PLSA_UNICODE_STRING);
502 NTSTATUS WINAPI LsaUnregisterPolicyChangeNotification(POLICY_NOTIFICATION_INFORMATION_CLASS,HANDLE);
504 #ifdef __cplusplus
505 } /* extern "C" */
506 #endif /* defined(__cplusplus) */
508 #endif /* !defined(__WINE_NTSECAPI_H) */