dinput: Avoid deadlock when CS are acquired in different order.
[wine.git] / include / ntsecapi.h
blob729a89c86bfd4a345fa03552f5450277d45cb19e
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 typedef struct _AUDIT_POLICY_INFORMATION
354 GUID AuditSubCategoryGuid;
355 ULONG AuditingInformation;
356 GUID AuditCategoryGuid;
357 } AUDIT_POLICY_INFORMATION, *PAUDIT_POLICY_INFORMATION;
359 #define MICROSOFT_KERBEROS_NAME_A "Kerberos"
360 #if defined(_MSC_VER)
361 #define MICROSOFT_KERBEROS_NAME_W L"Kerberos"
362 #elif defined(__GNUC__)
363 #define MICROSOFT_KERBEROS_NAME_W (const WCHAR []){ 'K','e','r','b','e','r','o','s',0 }
364 #else /* _MSC_VER/__GNUC__ */
365 static const WCHAR MICROSOFT_KERBEROS_NAME_W[] = { 'K','e','r','b','e','r','o','s',0 };
366 #endif
368 #define KERB_TICKET_FLAGS_reserved 0x80000000
369 #define KERB_TICKET_FLAGS_forwardable 0x40000000
370 #define KERB_TICKET_FLAGS_forwarded 0x20000000
371 #define KERB_TICKET_FLAGS_proxiable 0x10000000
372 #define KERB_TICKET_FLAGS_proxy 0x08000000
373 #define KERB_TICKET_FLAGS_may_postdate 0x04000000
374 #define KERB_TICKET_FLAGS_postdated 0x02000000
375 #define KERB_TICKET_FLAGS_invalid 0x01000000
376 #define KERB_TICKET_FLAGS_renewable 0x00800000
377 #define KERB_TICKET_FLAGS_initial 0x00400000
378 #define KERB_TICKET_FLAGS_pre_authent 0x00200000
379 #define KERB_TICKET_FLAGS_hw_authent 0x00100000
380 #define KERB_TICKET_FLAGS_ok_as_delegate 0x00040000
381 #define KERB_TICKET_FLAGS_name_canonicalize 0x00010000
382 #define KERB_TICKET_FLAGS_cname_in_pa_data 0x00040000
383 #define KERB_TICKET_FLAGS_reserved1 0x00000001
385 typedef enum _KERB_PROTOCOL_MESSAGE_TYPE
387 KerbDebugRequestMessage = 0,
388 KerbQueryTicketCacheMessage,
389 KerbChangeMachinePasswordMessage,
390 KerbVerifyPacMessage,
391 KerbRetrieveTicketMessage,
392 KerbUpdateAddressesMessage,
393 KerbPurgeTicketCacheMessage,
394 KerbChangePasswordMessage,
395 KerbRetrieveEncodedTicketMessage,
396 KerbDecryptDataMessage,
397 KerbAddBindingCacheEntryMessage,
398 KerbSetPasswordMessage,
399 KerbSetPasswordExMessage,
400 KerbVerifyCredentialsMessage,
401 KerbQueryTicketCacheExMessage,
402 KerbPurgeTicketCacheExMessage,
403 KerbRefreshSmartcardCredentialsMessage,
404 KerbAddExtraCredentialsMessage,
405 KerbQuerySupplementalCredentialsMessage,
406 KerbTransferCredentialsMessage,
407 KerbQueryTicketCacheEx2Message,
408 KerbSubmitTicketMessage,
409 KerbAddExtraCredentialsExMessage,
410 KerbQueryKdcProxyCacheMessage,
411 KerbPurgeKdcProxyCacheMessage,
412 KerbQueryTicketCacheEx3Message,
413 KerbCleanupMachinePkinitCredsMessage,
414 KerbAddBindingCacheEntryExMessage,
415 KerbQueryBindingCacheMessage,
416 KerbPurgeBindingCacheMessage,
417 KerbQueryDomainExtendedPoliciesMessage,
418 KerbQueryS4U2ProxyCacheMessage
419 } KERB_PROTOCOL_MESSAGE_TYPE, *PKERB_PROTOCOL_MESSAGE_TYPE;
421 typedef struct _KERB_TICKET_CACHE_INFO
423 UNICODE_STRING ServerName;
424 UNICODE_STRING RealmName;
425 LARGE_INTEGER StartTime;
426 LARGE_INTEGER EndTime;
427 LARGE_INTEGER RenewTime;
428 LONG EncryptionType;
429 ULONG TicketFlags;
430 } KERB_TICKET_CACHE_INFO, *PKERB_TICKET_CACHE_INFO;
432 typedef struct _KERB_QUERY_TKT_CACHE_REQUEST
434 KERB_PROTOCOL_MESSAGE_TYPE MessageType;
435 LUID LogonId;
436 } KERB_QUERY_TKT_CACHE_REQUEST, *PKERB_QUERY_TKT_CACHE_REQUEST;
438 typedef struct _KERB_QUERY_TKT_CACHE_RESPONSE
440 KERB_PROTOCOL_MESSAGE_TYPE MessageType;
441 ULONG CountOfTickets;
442 KERB_TICKET_CACHE_INFO Tickets[ANYSIZE_ARRAY];
443 } KERB_QUERY_TKT_CACHE_RESPONSE, *PKERB_QUERY_TKT_CACHE_RESPONSE;
445 typedef struct _KERB_RETRIEVE_TKT_REQUEST
447 KERB_PROTOCOL_MESSAGE_TYPE MessageType;
448 LUID LogonId;
449 UNICODE_STRING TargetName;
450 ULONG TicketFlags;
451 ULONG CacheOptions;
452 LONG EncryptionType;
453 SecHandle CredentialsHandle;
454 } KERB_RETRIEVE_TKT_REQUEST, *PKERB_RETRIEVE_TKT_REQUEST;
456 typedef struct _KERB_PURGE_TKT_CACHE_REQUEST
458 KERB_PROTOCOL_MESSAGE_TYPE MessageType;
459 LUID LogonId;
460 UNICODE_STRING ServerName;
461 UNICODE_STRING RealmName;
462 } KERB_PURGE_TKT_CACHE_REQUEST, *PKERB_PURGE_TKT_CACHE_REQUEST;
464 #define RtlGenRandom SystemFunction036
465 #define RtlEncryptMemory SystemFunction040
466 #define RtlDecryptMemory SystemFunction041
468 BOOLEAN WINAPI AuditQuerySystemPolicy(const GUID*,ULONG,AUDIT_POLICY_INFORMATION**);
470 BOOLEAN WINAPI RtlGenRandom(PVOID,ULONG);
471 NTSTATUS WINAPI RtlEncryptMemory(PVOID,ULONG,ULONG);
472 NTSTATUS WINAPI RtlDecryptMemory(PVOID,ULONG,ULONG);
474 NTSTATUS WINAPI LsaAddAccountRights(LSA_HANDLE,PSID,PLSA_UNICODE_STRING,ULONG);
475 NTSTATUS WINAPI LsaCallAuthenticationPackage(HANDLE,ULONG,PVOID,ULONG,PVOID*,PULONG,PNTSTATUS);
476 NTSTATUS WINAPI LsaClose(LSA_HANDLE);
477 NTSTATUS WINAPI LsaConnectUntrusted(PHANDLE);
478 NTSTATUS WINAPI LsaCreateTrustedDomainEx(LSA_HANDLE,PTRUSTED_DOMAIN_INFORMATION_EX,
479 PTRUSTED_DOMAIN_AUTH_INFORMATION,ACCESS_MASK,PLSA_HANDLE);
480 NTSTATUS WINAPI LsaDeleteTrustedDomain(LSA_HANDLE,PSID);
481 NTSTATUS WINAPI LsaDeregisterLogonProcess(HANDLE);
482 NTSTATUS WINAPI LsaEnumerateAccountRights(LSA_HANDLE,PSID,PLSA_UNICODE_STRING*,PULONG);
483 NTSTATUS WINAPI LsaEnumerateAccountsWithUserRight(LSA_HANDLE,PLSA_UNICODE_STRING,PVOID*,PULONG);
484 NTSTATUS WINAPI LsaEnumerateLogonSessions(PULONG,PLUID*);
485 NTSTATUS WINAPI LsaEnumerateTrustedDomains(LSA_HANDLE,PLSA_ENUMERATION_HANDLE,PVOID*,ULONG,PULONG);
486 NTSTATUS WINAPI LsaEnumerateTrustedDomainsEx(LSA_HANDLE,PLSA_ENUMERATION_HANDLE,PVOID*,ULONG,PULONG);
487 NTSTATUS WINAPI LsaFreeMemory(PVOID);
488 NTSTATUS WINAPI LsaFreeReturnBuffer(PVOID);
489 NTSTATUS WINAPI LsaGetLogonSessionData(PLUID,PSECURITY_LOGON_SESSION_DATA*);
490 NTSTATUS WINAPI LsaLogonUser(HANDLE,PLSA_STRING,SECURITY_LOGON_TYPE,ULONG,PVOID,ULONG,PTOKEN_GROUPS,PTOKEN_SOURCE,PVOID*,PULONG,PLUID,PHANDLE,PQUOTA_LIMITS,PNTSTATUS);
491 NTSTATUS WINAPI LsaLookupAuthenticationPackage(HANDLE,PLSA_STRING,PULONG);
492 NTSTATUS WINAPI LsaLookupNames(LSA_HANDLE,ULONG,PLSA_UNICODE_STRING,PLSA_REFERENCED_DOMAIN_LIST*,
493 PLSA_TRANSLATED_SID*);
494 NTSTATUS WINAPI LsaLookupNames2(LSA_HANDLE,ULONG,ULONG,PLSA_UNICODE_STRING,PLSA_REFERENCED_DOMAIN_LIST*,
495 PLSA_TRANSLATED_SID2*);
496 NTSTATUS WINAPI LsaLookupSids(LSA_HANDLE,ULONG,PSID *,PLSA_REFERENCED_DOMAIN_LIST *,PLSA_TRANSLATED_NAME *);
497 ULONG WINAPI LsaNtStatusToWinError(NTSTATUS);
498 NTSTATUS WINAPI LsaOpenPolicy(PLSA_UNICODE_STRING,PLSA_OBJECT_ATTRIBUTES,ACCESS_MASK,PLSA_HANDLE);
499 NTSTATUS WINAPI LsaOpenTrustedDomainByName(LSA_HANDLE,PLSA_UNICODE_STRING,ACCESS_MASK,PLSA_HANDLE);
500 NTSTATUS WINAPI LsaQueryInformationPolicy(LSA_HANDLE,POLICY_INFORMATION_CLASS,PVOID*);
501 NTSTATUS WINAPI LsaQueryTrustedDomainInfo(LSA_HANDLE,PSID,TRUSTED_INFORMATION_CLASS,PVOID*);
502 NTSTATUS WINAPI LsaQueryTrustedDomainInfoByName(LSA_HANDLE,PLSA_UNICODE_STRING,TRUSTED_INFORMATION_CLASS,PVOID*);
503 NTSTATUS WINAPI LsaRegisterLogonProcess(PLSA_STRING,PHANDLE,PLSA_OPERATIONAL_MODE);
504 NTSTATUS WINAPI LsaRegisterPolicyChangeNotification(POLICY_NOTIFICATION_INFORMATION_CLASS,HANDLE);
505 NTSTATUS WINAPI LsaRemoveAccountRights(LSA_HANDLE,PSID,BOOLEAN,PLSA_UNICODE_STRING,ULONG);
506 NTSTATUS WINAPI LsaRetrievePrivateData(LSA_HANDLE,PLSA_UNICODE_STRING,PLSA_UNICODE_STRING*);
507 NTSTATUS WINAPI LsaSetInformationPolicy(LSA_HANDLE,POLICY_INFORMATION_CLASS,PVOID);
508 NTSTATUS WINAPI LsaSetTrustedDomainInfoByName(LSA_HANDLE,PLSA_UNICODE_STRING,TRUSTED_INFORMATION_CLASS,PVOID);
509 NTSTATUS WINAPI LsaSetTrustedDomainInformation(LSA_HANDLE,PSID,TRUSTED_INFORMATION_CLASS,PVOID);
510 NTSTATUS WINAPI LsaStorePrivateData(LSA_HANDLE,PLSA_UNICODE_STRING,PLSA_UNICODE_STRING);
511 NTSTATUS WINAPI LsaUnregisterPolicyChangeNotification(POLICY_NOTIFICATION_INFORMATION_CLASS,HANDLE);
513 #ifdef __cplusplus
514 } /* extern "C" */
515 #endif /* defined(__cplusplus) */
517 #endif /* !defined(__WINE_NTSECAPI_H) */