ntsecapi.h revision b955672b950093ff7416d1269dd4d3b69983bd8f
/*
* Copyright (C) 1999 Juergen Schmied
*
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
/*
* Sun LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
* other than GPL or LGPL is available it will apply instead, Sun elects to use only
* the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
* a choice of LGPL license versions is made available with the language indicating
* that LGPLv2 or any later version may be used, or where a choice of which version
* of the LGPL is applied is otherwise unspecified.
*/
#ifndef __WINE_NTSECAPI_H
#define __WINE_NTSECAPI_H
#ifdef __cplusplus
extern "C" {
#endif /* defined(__cplusplus) */
/* Policy access rights */
#define POLICY_VIEW_LOCAL_INFORMATION 0x00000001L
#define POLICY_VIEW_AUDIT_INFORMATION 0x00000002L
#define POLICY_GET_PRIVATE_INFORMATION 0x00000004L
#define POLICY_TRUST_ADMIN 0x00000008L
#define POLICY_CREATE_ACCOUNT 0x00000010L
#define POLICY_CREATE_SECRET 0x00000020L
#define POLICY_CREATE_PRIVILEGE 0x00000040L
#define POLICY_SET_DEFAULT_QUOTA_LIMITS 0x00000080L
#define POLICY_SET_AUDIT_REQUIREMENTS 0x00000100L
#define POLICY_AUDIT_LOG_ADMIN 0x00000200L
#define POLICY_SERVER_ADMIN 0x00000400L
#define POLICY_LOOKUP_NAMES 0x00000800L
#define POLICY_NOTIFICATION 0x00001000L
#define POLICY_ALL_ACCESS ( \
#define POLICY_READ ( \
#define POLICY_WRITE ( \
#define POLICY_EXECUTE ( \
#define POLICY_AUDIT_EVENT_UNCHANGED 0x00000000L
#define POLICY_AUDIT_EVENT_SUCCESS 0x00000001L
#define POLICY_AUDIT_EVENT_FAILURE 0x00000002L
#define POLICY_AUDIT_EVENT_NONE 0x00000004L
#define POLICY_AUDIT_EVENT_MASK (POLICY_AUDIT_EVENT_SUCCESS | \
/* logon rights names */
#define SE_BATCH_LOGON_NAME \
TEXT("SeBatchLogonRight")
#define SE_INTERACTIVE_LOGON_NAME \
TEXT("SeInteractiveLogonRight")
#define SE_NETWORK_LOGON_NAME \
TEXT("SeNetworkLogonRight")
#define SE_REMOTE_INTERACTIVE_LOGON_NAME \
TEXT("SeRemoteInteractiveLogonRight")
#define SE_SERVICE_LOGON_NAME \
TEXT("SeServiceLogonRight")
#define SE_DENY_BATCH_LOGON_NAME \
TEXT("SeDenyBatchLogonRight")
#define SE_DENY_INTERACTIVE_LOGON_NAME \
TEXT("SeDenyInteractiveLogonRight")
#define SE_DENY_NETWORK_LOGON_NAME \
TEXT("SeDenyNetworkLogonRight")
#define SE_DENY_REMOTE_INTERACTIVE_LOGON_NAME \
TEXT("SeDenyRemoteInteractiveLogonRight")
#define SE_DENY_SERVICE_LOGON_NAME \
TEXT("SeDenyServiceLogonRight")
#ifndef WINE_NTSTATUS_DECLARED
#define WINE_NTSTATUS_DECLARED
#endif
#ifndef WINE_PNTSTATUS_DECLARED
#define WINE_PNTSTATUS_DECLARED
#endif
typedef enum _SECURITY_LOGON_TYPE
{
Interactive = 2,
typedef enum _POLICY_AUDIT_EVENT_TYPE
{
#ifndef __STRING_DEFINED__
#define __STRING_DEFINED__
typedef struct _STRING {
#endif
#ifndef __UNICODE_STRING_DEFINED__
#define __UNICODE_STRING_DEFINED__
typedef struct _UNICODE_STRING {
#endif
#ifndef __OBJECT_ATTRIBUTES_DEFINED__
#define __OBJECT_ATTRIBUTES_DEFINED__
typedef struct _OBJECT_ATTRIBUTES {
#endif
typedef enum
{
typedef struct _POLICY_AUDIT_EVENTS_INFO
{
typedef struct _POLICY_PRIMARY_DOMAIN_INFO
{
typedef struct _POLICY_ACCOUNT_DOMAIN_INFO
{
typedef struct _POLICY_DNS_DOMAIN_INFO
{
typedef enum _POLICY_LSA_SERVER_ROLE
{
typedef struct _POLICY_LSA_SERVER_ROLE_INFO
{
typedef struct _POLICY_MODIFICATION_INFO
{
typedef struct _SECURITY_LOGON_SESSION_DATA {
typedef struct
{
typedef struct
{
typedef struct
{
typedef struct _LSA_TRANSLATED_SID
{
typedef struct _TRUSTED_DOMAIN_INFORMATION_EX
{
typedef struct _LSA_AUTH_INFORMATION
{
typedef struct _TRUSTED_DOMAIN_AUTH_INFORMATION
{
typedef struct _LSA_TRANSLATED_SID2
{
typedef enum _TRUSTED_INFORMATION_CLASS
{
typedef enum _POLICY_NOTIFICATION_INFORMATION_CLASS
{
#define RtlGenRandom SystemFunction036
NTSTATUS WINAPI LsaEnumerateTrustedDomainsEx(LSA_HANDLE,PLSA_ENUMERATION_HANDLE,PVOID*,ULONG,PULONG);
NTSTATUS WINAPI LsaLogonUser(HANDLE,PLSA_STRING,SECURITY_LOGON_TYPE,ULONG,PVOID,ULONG,PTOKEN_GROUPS,PTOKEN_SOURCE,PVOID*,PULONG,PLUID,PHANDLE,PQUOTA_LIMITS,PNTSTATUS);
NTSTATUS WINAPI LsaLookupNames2(LSA_HANDLE,ULONG,ULONG,PLSA_UNICODE_STRING,PLSA_REFERENCED_DOMAIN_LIST*,
NTSTATUS WINAPI LsaLookupSids(LSA_HANDLE,ULONG,PSID *,PLSA_REFERENCED_DOMAIN_LIST *,PLSA_TRANSLATED_NAME *);
NTSTATUS WINAPI LsaQueryTrustedDomainInfoByName(LSA_HANDLE,PLSA_UNICODE_STRING,TRUSTED_INFORMATION_CLASS,PVOID*);
NTSTATUS WINAPI LsaSetTrustedDomainInfoByName(LSA_HANDLE,PLSA_UNICODE_STRING,TRUSTED_INFORMATION_CLASS,PVOID);
NTSTATUS WINAPI LsaUnregisterPolicyChangeNotification(POLICY_NOTIFICATION_INFORMATION_CLASS,HANDLE);
#ifdef __cplusplus
} /* extern "C" */
#endif /* defined(__cplusplus) */
#endif /* !defined(__WINE_NTSECAPI_H) */