diff -r 000000000000 -r 76b1f169d9fe mingw-5.1.4/win32/include/subauth.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mingw-5.1.4/win32/include/subauth.h Fri Apr 03 17:16:45 2009 +0100 @@ -0,0 +1,209 @@ +#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 */