cf62424b92
cguid.h, commctrl.h, commdlg.h, cpl.h, cplext.h, custcntl.h, dbt.h, dde.h, ddeml.h, dlgs.h, excpt.h, httpext.h, imagehlp.h, imm.h, initguid.h, intshcut.h, ipexport.h, iphlpapi.h, ipifcons.h, iprtrmib.h, iptypes.h, isguids.h, largeint.h, lm.h, lmaccess.h, lmalert.h, lmapibuf.h, lmat.h, lmaudit.h, lmbrowsr.h, lmchdev.h, lmconfig.h, lmcons.h, lmerr.h, lmerrlog.h, lmmsg.h, lmremutl.h, lmrepl.h, lmserver.h, lmshare.h, lmsname.h, lmstats.h, lmsvc.h, lmuse.h, lmuseflg.h, lmwksta.h, lzexpand.h, mapi.h, mciavi.h, mcx.h, mmsystem.h, mswsock.h, nb30.h, nddeapi.h, nspapi.h, ntdef.h, ntsecapi.h, ntsecpkg.h, oaidl.h, objbase.h, objfwd.h, objidl.h, odbcinst.h, ole.h, ole2.h, ole2ver.h, oleauto.h, olectl.h, olectlid.h, oledlg.h, oleidl.h, pbt.h, prsht.h, psapi.h, rapi.h, ras.h, raserror.h, rassapi.h, regstr.h, richedit.h, richole.h, rpc.h, rpcdce.h, rpcdce2.h, rpcdcep.h, rpcndr.h, rpcnsi.h, rpcnsip.h, rpcnterr.h, rpcproxy.h, schannel.h, schnlsp.h, scrnsave.h, security.h, setupapi.h, shellapi.h, shlguid.h, shlobj.h, sql.h, sqlext.h, sqltypes.h, sqlucode.h, sspi.h, subauth.h, tlhelp32.h, unknwn.h, userenv.h, w32api.h, winbase.h, wincon.h, wincrypt.h, windef.h, windows.h, windowsx.h, winerror.h, wingdi.h, wininet.h, winioctl.h, winnetwk.h, winnls.h, winnt.h, winperf.h, winreg.h, winresrc.h, winsock.h, winsock2.h, winspool.h, winsvc.h, winuser.h, winver.h, ws2tcpip.h, wsnetbs.h, wtypes.h, zmouse.h: Add #pragma GCC system_header if __GNUC__ >= 3. * include/mapi.h: Change header guard name to _MAPI_H for consistency.
210 lines
7.2 KiB
C
210 lines
7.2 KiB
C
#ifndef _SUBAUTH_H
|
|
#define _SUBAUTH_H
|
|
#if __GNUC__ >=3
|
|
#pragma GCC system_header
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
#ifndef NT_SUCCESS
|
|
#define NT_SUCCESS(x) ((x)>=0)
|
|
#define STATUS_SUCCESS 0
|
|
#endif
|
|
#define CYPHER_BLOCK_LENGTH 8
|
|
#define USER_SESSION_KEY_LENGTH (CYPHER_BLOCK_LENGTH*2)
|
|
#define CLEAR_BLOCK_LENGTH 8
|
|
#define MSV1_0_PASSTHRU 1
|
|
#define MSV1_0_GUEST_LOGON 2
|
|
#define MSV1_0_VALIDATION_LOGOFF_TIME 1
|
|
#define MSV1_0_VALIDATION_KICKOFF_TIME 2
|
|
#define MSV1_0_VALIDATION_LOGON_SERVER 4
|
|
#define MSV1_0_VALIDATION_LOGON_DOMAIN 8
|
|
#define MSV1_0_VALIDATION_SESSION_KEY 16
|
|
#define MSV1_0_VALIDATION_USER_FLAGS 32
|
|
#define MSV1_0_VALIDATION_USER_ID 64
|
|
#define MSV1_0_SUBAUTH_ACCOUNT_DISABLED 1
|
|
#define MSV1_0_SUBAUTH_PASSWORD 2
|
|
#define MSV1_0_SUBAUTH_WORKSTATIONS 4
|
|
#define MSV1_0_SUBAUTH_LOGON_HOURS 8
|
|
#define MSV1_0_SUBAUTH_ACCOUNT_EXPIRY 16
|
|
#define MSV1_0_SUBAUTH_PASSWORD_EXPIRY 32
|
|
#define MSV1_0_SUBAUTH_ACCOUNT_TYPE 64
|
|
#define MSV1_0_SUBAUTH_LOCKOUT 128
|
|
#define NEXT_FREE_ACCOUNT_CONTROL_BIT 131072
|
|
#define SAM_DAYS_PER_WEEK 7
|
|
#define SAM_HOURS_PER_WEEK 168
|
|
#define SAM_MINUTES_PER_WEEK 10080
|
|
#define STATUS_INVALID_INFO_CLASS 0xC0000003L
|
|
#define STATUS_NO_SUCH_USER 0xC0000064L
|
|
#define STATUS_WRONG_PASSWORD 0xC000006AL
|
|
#define STATUS_PASSWORD_RESTRICTION 0xC000006CL
|
|
#define STATUS_LOGON_FAILURE 0xC000006DL
|
|
#define STATUS_ACCOUNT_RESTRICTION 0xC000006EL
|
|
#define STATUS_INVALID_LOGON_HOURS 0xC000006FL
|
|
#define STATUS_INVALID_WORKSTATION 0xC0000070L
|
|
#define STATUS_PASSWORD_EXPIRED 0xC0000071L
|
|
#define STATUS_ACCOUNT_DISABLED 0xC0000072L
|
|
#define STATUS_INSUFFICIENT_RESOURCES 0xC000009AL
|
|
#define STATUS_ACCOUNT_EXPIRED 0xC0000193L
|
|
#define STATUS_PASSWORD_MUST_CHANGE 0xC0000224L
|
|
#define STATUS_ACCOUNT_LOCKED_OUT 0xC0000234L
|
|
#define USER_ACCOUNT_DISABLED 1
|
|
#define USER_HOME_DIRECTORY_REQUIRED 2
|
|
#define USER_PASSWORD_NOT_REQUIRED 4
|
|
#define USER_TEMP_DUPLICATE_ACCOUNT 8
|
|
#define USER_NORMAL_ACCOUNT 16
|
|
#define USER_MNS_LOGON_ACCOUNT 32
|
|
#define USER_INTERDOMAIN_TRUST_ACCOUNT 64
|
|
#define USER_WORKSTATION_TRUST_ACCOUNT 128
|
|
#define USER_SERVER_TRUST_ACCOUNT 256
|
|
#define USER_DONT_EXPIRE_PASSWORD 512
|
|
#define USER_ACCOUNT_AUTO_LOCKED 1024
|
|
#define USER_ENCRYPTED_TEXT_PASSWORD_ALLOWED 2048
|
|
#define USER_SMARTCARD_REQUIRED 4096
|
|
#define USER_TRUSTED_FOR_DELEGATION 8192
|
|
#define USER_NOT_DELEGATED 16384
|
|
#define USER_USE_DES_KEY_ONLY 32768
|
|
#define USER_DONT_REQUIRE_PREAUTH 65536
|
|
#define USER_MACHINE_ACCOUNT_MASK 448
|
|
#define USER_ACCOUNT_TYPE_MASK 472
|
|
#define USER_ALL_PARAMETERS 2097152
|
|
#if !defined(_NTDEF_H) && !defined(_NTSECAPI_H)
|
|
typedef LONG NTSTATUS, *PNTSTATUS;
|
|
typedef struct _UNICODE_STRING {
|
|
USHORT Length;
|
|
USHORT MaximumLength;
|
|
PWSTR Buffer;
|
|
} UNICODE_STRING, *PUNICODE_STRING;
|
|
typedef struct _STRING {
|
|
USHORT Length;
|
|
USHORT MaximumLength;
|
|
PCHAR Buffer;
|
|
} STRING, *PSTRING;
|
|
#endif
|
|
typedef PVOID SAM_HANDLE, *PSAM_HANDLE;
|
|
typedef struct _OLD_LARGE_INTEGER {
|
|
ULONG LowPart;
|
|
LONG HighPart;
|
|
} OLD_LARGE_INTEGER, *POLD_LARGE_INTEGER;
|
|
typedef enum _NETLOGON_LOGON_INFO_CLASS {
|
|
NetlogonInteractiveInformation = 1,NetlogonNetworkInformation,
|
|
NetlogonServiceInformation,NetlogonGenericInformation,
|
|
NetlogonInteractiveTransitiveInformation,NetlogonNetworkTransitiveInformation,
|
|
NetlogonServiceTransitiveInformation
|
|
} NETLOGON_LOGON_INFO_CLASS;
|
|
typedef struct _CYPHER_BLOCK {
|
|
CHAR data[CYPHER_BLOCK_LENGTH];
|
|
} CYPHER_BLOCK, *PCYPHER_BLOCK;
|
|
typedef struct _CLEAR_BLOCK {
|
|
CHAR data[CLEAR_BLOCK_LENGTH];
|
|
} CLEAR_BLOCK, *PCLEAR_BLOCK;
|
|
typedef struct _LM_OWF_PASSWORD {
|
|
CYPHER_BLOCK data[2];
|
|
} LM_OWF_PASSWORD, *PLM_OWF_PASSWORD;
|
|
typedef struct _USER_SESSION_KEY {
|
|
CYPHER_BLOCK data[2];
|
|
} USER_SESSION_KEY, *PUSER_SESSION_KEY;
|
|
typedef CLEAR_BLOCK LM_CHALLENGE, *PLM_CHALLENGE;
|
|
typedef LM_OWF_PASSWORD NT_OWF_PASSWORD, *PNT_OWF_PASSWORD;
|
|
typedef LM_CHALLENGE NT_CHALLENGE, *PNT_CHALLENGE;
|
|
typedef struct _LOGON_HOURS {
|
|
USHORT UnitsPerWeek;
|
|
PUCHAR LogonHours;
|
|
} LOGON_HOURS, *PLOGON_HOURS;
|
|
typedef struct _SR_SECURITY_DESCRIPTOR {
|
|
ULONG Length;
|
|
PUCHAR SecurityDescriptor;
|
|
} SR_SECURITY_DESCRIPTOR, *PSR_SECURITY_DESCRIPTOR;
|
|
#pragma pack(push,4)
|
|
typedef struct _USER_ALL_INFORMATION {
|
|
LARGE_INTEGER LastLogon;
|
|
LARGE_INTEGER LastLogoff;
|
|
LARGE_INTEGER PasswordLastSet;
|
|
LARGE_INTEGER AccountExpires;
|
|
LARGE_INTEGER PasswordCanChange;
|
|
LARGE_INTEGER PasswordMustChange;
|
|
UNICODE_STRING UserName;
|
|
UNICODE_STRING FullName;
|
|
UNICODE_STRING HomeDirectory;
|
|
UNICODE_STRING HomeDirectoryDrive;
|
|
UNICODE_STRING ScriptPath;
|
|
UNICODE_STRING ProfilePath;
|
|
UNICODE_STRING AdminComment;
|
|
UNICODE_STRING WorkStations;
|
|
UNICODE_STRING UserComment;
|
|
UNICODE_STRING Parameters;
|
|
UNICODE_STRING LmPassword;
|
|
UNICODE_STRING NtPassword;
|
|
UNICODE_STRING PrivateData;
|
|
SR_SECURITY_DESCRIPTOR SecurityDescriptor;
|
|
ULONG UserId;
|
|
ULONG PrimaryGroupId;
|
|
ULONG UserAccountControl;
|
|
ULONG WhichFields;
|
|
LOGON_HOURS LogonHours;
|
|
USHORT BadPasswordCount;
|
|
USHORT LogonCount;
|
|
USHORT CountryCode;
|
|
USHORT CodePage;
|
|
BOOLEAN LmPasswordPresent;
|
|
BOOLEAN NtPasswordPresent;
|
|
BOOLEAN PasswordExpired;
|
|
BOOLEAN PrivateDataSensitive;
|
|
} USER_ALL_INFORMATION, *PUSER_ALL_INFORMATION;
|
|
#pragma pack(pop)
|
|
typedef struct _MSV1_0_VALIDATION_INFO {
|
|
LARGE_INTEGER LogoffTime;
|
|
LARGE_INTEGER KickoffTime;
|
|
UNICODE_STRING LogonServer;
|
|
UNICODE_STRING LogonDomainName;
|
|
USER_SESSION_KEY SessionKey;
|
|
BOOLEAN Authoritative;
|
|
ULONG UserFlags;
|
|
ULONG WhichFields;
|
|
ULONG UserId;
|
|
} MSV1_0_VALIDATION_INFO, *PMSV1_0_VALIDATION_INFO;
|
|
typedef struct _NETLOGON_LOGON_IDENTITY_INFO {
|
|
UNICODE_STRING LogonDomainName;
|
|
ULONG ParameterControl;
|
|
OLD_LARGE_INTEGER LogonId;
|
|
UNICODE_STRING UserName;
|
|
UNICODE_STRING Workstation;
|
|
} NETLOGON_LOGON_IDENTITY_INFO, *PNETLOGON_LOGON_IDENTITY_INFO;
|
|
typedef struct _NETLOGON_INTERACTIVE_INFO {
|
|
NETLOGON_LOGON_IDENTITY_INFO Identity;
|
|
LM_OWF_PASSWORD LmOwfPassword;
|
|
NT_OWF_PASSWORD NtOwfPassword;
|
|
} NETLOGON_INTERACTIVE_INFO, *PNETLOGON_INTERACTIVE_INFO;
|
|
typedef struct _NETLOGON_GENERIC_INFO {
|
|
NETLOGON_LOGON_IDENTITY_INFO Identity;
|
|
UNICODE_STRING PackageName;
|
|
ULONG DataLength;
|
|
PUCHAR LogonData;
|
|
} NETLOGON_GENERIC_INFO, *PNETLOGON_GENERIC_INFO;
|
|
typedef struct _NETLOGON_NETWORK_INFO {
|
|
NETLOGON_LOGON_IDENTITY_INFO Identity;
|
|
LM_CHALLENGE LmChallenge;
|
|
STRING NtChallengeResponse;
|
|
STRING LmChallengeResponse;
|
|
} NETLOGON_NETWORK_INFO, *PNETLOGON_NETWORK_INFO;
|
|
typedef struct _NETLOGON_SERVICE_INFO {
|
|
NETLOGON_LOGON_IDENTITY_INFO Identity;
|
|
LM_OWF_PASSWORD LmOwfPassword;
|
|
NT_OWF_PASSWORD NtOwfPassword;
|
|
} NETLOGON_SERVICE_INFO, *PNETLOGON_SERVICE_INFO;
|
|
NTSTATUS NTAPI Msv1_0SubAuthenticationRoutine(NETLOGON_LOGON_INFO_CLASS,PVOID,
|
|
ULONG,PUSER_ALL_INFORMATION,PULONG,PULONG,
|
|
PBOOLEAN,PLARGE_INTEGER,PLARGE_INTEGER);
|
|
NTSTATUS NTAPI Msv1_0SubAuthenticationFilter(NETLOGON_LOGON_INFO_CLASS,PVOID,
|
|
ULONG,PUSER_ALL_INFORMATION,PULONG,PULONG,
|
|
PBOOLEAN,PLARGE_INTEGER,PLARGE_INTEGER);
|
|
NTSTATUS NTAPI Msv1_0SubAuthenticationRoutineGeneric(PVOID,ULONG,PULONG,PVOID*);
|
|
NTSTATUS NTAPI Msv1_0SubAuthenticationRoutineEx(NETLOGON_LOGON_INFO_CLASS,PVOID,
|
|
ULONG,PUSER_ALL_INFORMATION,SAM_HANDLE,
|
|
PMSV1_0_VALIDATION_INFO,PULONG);
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
#endif /* _SUBAUTH_H */
|