summaryrefslogtreecommitdiff
path: root/packages/winunits-jedi/src/jwasubauth.pas
diff options
context:
space:
mode:
authormarco <marco@3ad0048d-3df7-0310-abae-a5850022a9f2>2008-01-05 19:27:57 +0000
committermarco <marco@3ad0048d-3df7-0310-abae-a5850022a9f2>2008-01-05 19:27:57 +0000
commitce70902c19a20a91237640a7fd74a88b7ea72d24 (patch)
tree89d0aaa2d9b41755ee93f188e9878e2b86bbcc45 /packages/winunits-jedi/src/jwasubauth.pas
parent590766ec86d3e2396100b1bbdbd454b813d27ce6 (diff)
downloadfpc-ce70902c19a20a91237640a7fd74a88b7ea72d24.tar.gz
* winunits-jedi. Dependancy on winunits-base not work yet.
old winunits removed from base/ git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@9639 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'packages/winunits-jedi/src/jwasubauth.pas')
-rw-r--r--packages/winunits-jedi/src/jwasubauth.pas533
1 files changed, 533 insertions, 0 deletions
diff --git a/packages/winunits-jedi/src/jwasubauth.pas b/packages/winunits-jedi/src/jwasubauth.pas
new file mode 100644
index 0000000000..0fe6bb6936
--- /dev/null
+++ b/packages/winunits-jedi/src/jwasubauth.pas
@@ -0,0 +1,533 @@
+{******************************************************************************}
+{ }
+{ Subauthentication packages API interface Unit for Object Pascal }
+{ }
+{ Portions created by Microsoft are Copyright (C) 1995-2001 Microsoft }
+{ Corporation. All Rights Reserved. }
+{ }
+{ The original file is: subauth.h, released June 2000. The original Pascal }
+{ code is: SubAuth.pas, released December 2000. The initial developer of the }
+{ Pascal code is Marcel van Brakel (brakelm att chello dott nl). }
+{ }
+{ Portions created by Marcel van Brakel are Copyright (C) 1999-2001 }
+{ Marcel van Brakel. All Rights Reserved. }
+{ }
+{ Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI) }
+{ }
+{ You may retrieve the latest version of this file at the Project JEDI }
+{ APILIB home page, located at http://jedi-apilib.sourceforge.net }
+{ }
+{ The contents of this file are used with permission, subject to the Mozilla }
+{ Public License Version 1.1 (the "License"); you may not use this file except }
+{ in compliance with the License. You may obtain a copy of the License at }
+{ http://www.mozilla.org/MPL/MPL-1.1.html }
+{ }
+{ Software distributed under the License is distributed on an "AS IS" basis, }
+{ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for }
+{ the specific language governing rights and limitations under the License. }
+{ }
+{ Alternatively, the contents of this file may be used under the terms of the }
+{ GNU Lesser General Public License (the "LGPL License"), in which case the }
+{ provisions of the LGPL License are applicable instead of those above. }
+{ If you wish to allow use of your version of this file only under the terms }
+{ of the LGPL License and not to allow others to use your version of this file }
+{ under the MPL, indicate your decision by deleting the provisions above and }
+{ replace them with the notice and other provisions required by the LGPL }
+{ License. If you do not delete the provisions above, a recipient may use }
+{ your version of this file under either the MPL or the LGPL License. }
+{ }
+{ For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html }
+{ }
+{******************************************************************************}
+
+// $Id: JwaSubAuth.pas,v 1.8 2007/09/05 11:58:52 dezipaitor Exp $
+
+{$IFNDEF JWA_OMIT_SECTIONS}
+unit JwaSubAuth;
+
+{$WEAKPACKAGEUNIT}
+{$ENDIF JWA_OMIT_SECTIONS}
+
+{$HPPEMIT ''}
+{$HPPEMIT '#include "subauth.h"'}
+{$HPPEMIT ''}
+
+{$IFNDEF JWA_OMIT_SECTIONS}
+{$I jediapilib.inc}
+
+interface
+
+uses
+ JwaWinType;
+{$ENDIF JWA_OMIT_SECTIONS}
+
+{$IFNDEF JWA_IMPLEMENTATIONSECTION}
+type
+ SAM_HANDLE = PVOID;
+ {$EXTERNALSYM SAM_HANDLE}
+ PSAM_HANDLE = ^SAM_HANDLE;
+ {$EXTERNALSYM PSAM_HANDLE}
+
+ POLD_LARGE_INTEGER = ^OLD_LARGE_INTEGER;
+ {$EXTERNALSYM POLD_LARGE_INTEGER}
+ _OLD_LARGE_INTEGER = record
+ LowPart: ULONG;
+ HighPart: LONG;
+ end;
+ {$EXTERNALSYM _OLD_LARGE_INTEGER}
+ OLD_LARGE_INTEGER = _OLD_LARGE_INTEGER;
+ {$EXTERNALSYM OLD_LARGE_INTEGER}
+ TOldLargeInteger = OLD_LARGE_INTEGER;
+ POldLargeInteger = POLD_LARGE_INTEGER;
+
+//
+// User account control flags...
+//
+
+const
+ USER_ACCOUNT_DISABLED = $00000001;
+ {$EXTERNALSYM USER_ACCOUNT_DISABLED}
+ USER_HOME_DIRECTORY_REQUIRED = $00000002;
+ {$EXTERNALSYM USER_HOME_DIRECTORY_REQUIRED}
+ USER_PASSWORD_NOT_REQUIRED = $00000004;
+ {$EXTERNALSYM USER_PASSWORD_NOT_REQUIRED}
+ USER_TEMP_DUPLICATE_ACCOUNT = $00000008;
+ {$EXTERNALSYM USER_TEMP_DUPLICATE_ACCOUNT}
+ USER_NORMAL_ACCOUNT = $00000010;
+ {$EXTERNALSYM USER_NORMAL_ACCOUNT}
+ USER_MNS_LOGON_ACCOUNT = $00000020;
+ {$EXTERNALSYM USER_MNS_LOGON_ACCOUNT}
+ USER_INTERDOMAIN_TRUST_ACCOUNT = $00000040;
+ {$EXTERNALSYM USER_INTERDOMAIN_TRUST_ACCOUNT}
+ USER_WORKSTATION_TRUST_ACCOUNT = $00000080;
+ {$EXTERNALSYM USER_WORKSTATION_TRUST_ACCOUNT}
+ USER_SERVER_TRUST_ACCOUNT = $00000100;
+ {$EXTERNALSYM USER_SERVER_TRUST_ACCOUNT}
+ USER_DONT_EXPIRE_PASSWORD = $00000200;
+ {$EXTERNALSYM USER_DONT_EXPIRE_PASSWORD}
+ USER_ACCOUNT_AUTO_LOCKED = $00000400;
+ {$EXTERNALSYM USER_ACCOUNT_AUTO_LOCKED}
+ USER_ENCRYPTED_TEXT_PASSWORD_ALLOWED = $00000800;
+ {$EXTERNALSYM USER_ENCRYPTED_TEXT_PASSWORD_ALLOWED}
+ USER_SMARTCARD_REQUIRED = $00001000;
+ {$EXTERNALSYM USER_SMARTCARD_REQUIRED}
+ USER_TRUSTED_FOR_DELEGATION = $00002000;
+ {$EXTERNALSYM USER_TRUSTED_FOR_DELEGATION}
+ USER_NOT_DELEGATED = $00004000;
+ {$EXTERNALSYM USER_NOT_DELEGATED}
+ USER_USE_DES_KEY_ONLY = $00008000;
+ {$EXTERNALSYM USER_USE_DES_KEY_ONLY}
+ USER_DONT_REQUIRE_PREAUTH = $00010000;
+ {$EXTERNALSYM USER_DONT_REQUIRE_PREAUTH}
+ USER_PASSWORD_EXPIRED = $00020000;
+ {$EXTERNALSYM USER_PASSWORD_EXPIRED}
+ USER_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION = $00040000;
+ {$EXTERNALSYM USER_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION}
+ NEXT_FREE_ACCOUNT_CONTROL_BIT = USER_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION shl 1;
+ {$EXTERNALSYM NEXT_FREE_ACCOUNT_CONTROL_BIT}
+
+ USER_MACHINE_ACCOUNT_MASK = USER_INTERDOMAIN_TRUST_ACCOUNT or USER_WORKSTATION_TRUST_ACCOUNT or USER_SERVER_TRUST_ACCOUNT;
+ {$EXTERNALSYM USER_MACHINE_ACCOUNT_MASK}
+ USER_ACCOUNT_TYPE_MASK = USER_TEMP_DUPLICATE_ACCOUNT or USER_NORMAL_ACCOUNT or USER_MACHINE_ACCOUNT_MASK;
+ {$EXTERNALSYM USER_ACCOUNT_TYPE_MASK}
+
+ USER_COMPUTED_ACCOUNT_CONTROL_BITS = USER_ACCOUNT_AUTO_LOCKED or USER_PASSWORD_EXPIRED;
+ {$EXTERNALSYM USER_COMPUTED_ACCOUNT_CONTROL_BITS}
+
+//
+// Logon times may be expressed in day, hour, or minute granularity.
+//
+// Days per week = 7
+// Hours per week = 168
+// Minutes per week = 10080
+//
+
+ SAM_DAYS_PER_WEEK = 7;
+ {$EXTERNALSYM SAM_DAYS_PER_WEEK}
+ SAM_HOURS_PER_WEEK = 24 * SAM_DAYS_PER_WEEK;
+ {$EXTERNALSYM SAM_HOURS_PER_WEEK}
+ SAM_MINUTES_PER_WEEK = 60 * SAM_HOURS_PER_WEEK;
+ {$EXTERNALSYM SAM_MINUTES_PER_WEEK}
+
+type
+ PLOGON_HOURS = ^LOGON_HOURS;
+ {$EXTERNALSYM PLOGON_HOURS}
+ _LOGON_HOURS = record
+ UnitsPerWeek: USHORT;
+ //
+ // UnitsPerWeek is the number of equal length time units the week is
+ // divided into. This value is used to compute the length of the bit
+ // string in logon_hours. Must be less than or equal to
+ // SAM_UNITS_PER_WEEK (10080) for this release.
+ //
+ // LogonHours is a bit map of valid logon times. Each bit represents
+ // a unique division in a week. The largest bit map supported is 1260
+ // bytes (10080 bits), which represents minutes per week. In this case
+ // the first bit (bit 0, byte 0) is Sunday, 00:00:00 - 00-00:59; bit 1,
+ // byte 0 is Sunday, 00:01:00 - 00:01:59, etc. A NULL pointer means
+ // DONT_CHANGE for SamSetInformationUser() calls.
+ //
+ LogonHours: PUCHAR;
+ end;
+ {$EXTERNALSYM _LOGON_HOURS}
+ LOGON_HOURS = _LOGON_HOURS;
+ {$EXTERNALSYM LOGON_HOURS}
+ TLogonHours = LOGON_HOURS;
+ PLogonHours = PLOGON_HOURS;
+
+ PSR_SECURITY_DESCRIPTOR = ^SR_SECURITY_DESCRIPTOR;
+ {$EXTERNALSYM PSR_SECURITY_DESCRIPTOR}
+ _SR_SECURITY_DESCRIPTOR = record
+ Length: ULONG;
+ SecurityDescriptor: PUCHAR;
+ end;
+ {$EXTERNALSYM _SR_SECURITY_DESCRIPTOR}
+ SR_SECURITY_DESCRIPTOR = _SR_SECURITY_DESCRIPTOR;
+ {$EXTERNALSYM SR_SECURITY_DESCRIPTOR}
+ TSrSecurityDescriptor = SR_SECURITY_DESCRIPTOR;
+ PSrSecurityDescriptor = PSR_SECURITY_DESCRIPTOR;
+
+// #include "pshpack4.h"
+
+ PUSER_ALL_INFORMATION = ^USER_ALL_INFORMATION;
+ {$EXTERNALSYM PUSER_ALL_INFORMATION}
+ _USER_ALL_INFORMATION = record
+ LastLogon: LARGE_INTEGER;
+ LastLogoff: LARGE_INTEGER;
+ PasswordLastSet: LARGE_INTEGER;
+ AccountExpires: LARGE_INTEGER;
+ PasswordCanChange: LARGE_INTEGER;
+ PasswordMustChange: LARGE_INTEGER;
+ 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: UNICODE_STRING;
+ SecurityDescriptor: SR_SECURITY_DESCRIPTOR;
+ UserId: ULONG;
+ PrimaryGroupId: ULONG;
+ UserAccountControl: ULONG;
+ WhichFields: ULONG;
+ LogonHours: LOGON_HOURS;
+ BadPasswordCount: USHORT;
+ LogonCount: USHORT;
+ CountryCode: USHORT;
+ CodePage: USHORT;
+ LmPasswordPresent: ByteBool;
+ NtPasswordPresent: ByteBool;
+ PasswordExpired: ByteBool;
+ PrivateDataSensitive: ByteBool;
+ end;
+ {$EXTERNALSYM _USER_ALL_INFORMATION}
+ USER_ALL_INFORMATION = _USER_ALL_INFORMATION;
+ {$EXTERNALSYM USER_ALL_INFORMATION}
+ TUserAllInformation = USER_ALL_INFORMATION;
+ PUserAllInformation = PUSER_ALL_INFORMATION;
+
+// #include "poppack.h"
+
+const
+ USER_ALL_PARAMETERS = $00200000;
+ {$EXTERNALSYM USER_ALL_PARAMETERS}
+
+ CLEAR_BLOCK_LENGTH = 8;
+ {$EXTERNALSYM CLEAR_BLOCK_LENGTH}
+
+type
+ PCLEAR_BLOCK = ^CLEAR_BLOCK;
+ {$EXTERNALSYM PCLEAR_BLOCK}
+ _CLEAR_BLOCK = record
+ data: array [0..CLEAR_BLOCK_LENGTH - 1] of CHAR;
+ end;
+ {$EXTERNALSYM _CLEAR_BLOCK}
+ CLEAR_BLOCK = _CLEAR_BLOCK;
+ {$EXTERNALSYM CLEAR_BLOCK}
+ TClearBlock = CLEAR_BLOCK;
+ PClearBlock = PCLEAR_BLOCK;
+
+const
+ CYPHER_BLOCK_LENGTH = 8;
+ {$EXTERNALSYM CYPHER_BLOCK_LENGTH}
+
+type
+ PCYPHER_BLOCK = ^CYPHER_BLOCK;
+ {$EXTERNALSYM PCYPHER_BLOCK}
+ _CYPHER_BLOCK = record
+ data: array [0..CYPHER_BLOCK_LENGTH - 1] of CHAR;
+ end;
+ {$EXTERNALSYM _CYPHER_BLOCK}
+ CYPHER_BLOCK = _CYPHER_BLOCK;
+ {$EXTERNALSYM CYPHER_BLOCK}
+ TCypherBlock = CYPHER_BLOCK;
+ PCypherBlock = PCYPHER_BLOCK;
+
+ PLM_OWF_PASSWORD = ^LM_OWF_PASSWORD;
+ {$EXTERNALSYM PLM_OWF_PASSWORD}
+ _LM_OWF_PASSWORD = record
+ data: array [0..1] of CYPHER_BLOCK;
+ end;
+ {$EXTERNALSYM _LM_OWF_PASSWORD}
+ LM_OWF_PASSWORD = _LM_OWF_PASSWORD;
+ {$EXTERNALSYM LM_OWF_PASSWORD}
+ TLmOwfPassword = LM_OWF_PASSWORD;
+ PLmOwfPassword = PLM_OWF_PASSWORD;
+
+ LM_CHALLENGE = CLEAR_BLOCK;
+ {$EXTERNALSYM LM_CHALLENGE}
+ PLM_CHALLENGE = ^LM_CHALLENGE;
+ {$EXTERNALSYM PLM_CHALLENGE}
+ NT_OWF_PASSWORD = LM_OWF_PASSWORD;
+ {$EXTERNALSYM NT_OWF_PASSWORD}
+ PNT_OWF_PASSWORD = ^NT_OWF_PASSWORD;
+ {$EXTERNALSYM PNT_OWF_PASSWORD}
+ NT_CHALLENGE = LM_CHALLENGE;
+ {$EXTERNALSYM NT_CHALLENGE}
+ PNT_CHALLENGE = ^NT_CHALLENGE;
+ {$EXTERNALSYM PNT_CHALLENGE}
+
+const
+ USER_SESSION_KEY_LENGTH = CYPHER_BLOCK_LENGTH * 2;
+ {$EXTERNALSYM USER_SESSION_KEY_LENGTH}
+
+type
+ PUSER_SESSION_KEY = ^USER_SESSION_KEY;
+ {$EXTERNALSYM PUSER_SESSION_KEY}
+ _USER_SESSION_KEY = record
+ data: array [0..1] of CYPHER_BLOCK;
+ end;
+ {$EXTERNALSYM _USER_SESSION_KEY}
+ USER_SESSION_KEY = _USER_SESSION_KEY;
+ {$EXTERNALSYM USER_SESSION_KEY}
+ TUserSessionKey = USER_SESSION_KEY;
+ PUserSessionKey = PUSER_SESSION_KEY;
+
+ _NETLOGON_LOGON_INFO_CLASS = (
+ NetlogonFiller0,
+ NetlogonInteractiveInformation,
+ NetlogonNetworkInformation,
+ NetlogonServiceInformation,
+ NetlogonGenericInformation,
+ NetlogonInteractiveTransitiveInformation,
+ NetlogonNetworkTransitiveInformation,
+ NetlogonServiceTransitiveInformation);
+ {$EXTERNALSYM _NETLOGON_LOGON_INFO_CLASS}
+ NETLOGON_LOGON_INFO_CLASS = _NETLOGON_LOGON_INFO_CLASS;
+ {$EXTERNALSYM NETLOGON_LOGON_INFO_CLASS}
+
+ PNETLOGON_LOGON_IDENTITY_INFO = ^NETLOGON_LOGON_IDENTITY_INFO;
+ {$EXTERNALSYM PNETLOGON_LOGON_IDENTITY_INFO}
+ _NETLOGON_LOGON_IDENTITY_INFO = record
+ LogonDomainName: UNICODE_STRING;
+ ParameterControl: ULONG;
+ LogonId: OLD_LARGE_INTEGER;
+ UserName: UNICODE_STRING;
+ Workstation: UNICODE_STRING;
+ end;
+ {$EXTERNALSYM _NETLOGON_LOGON_IDENTITY_INFO}
+ NETLOGON_LOGON_IDENTITY_INFO = _NETLOGON_LOGON_IDENTITY_INFO;
+ {$EXTERNALSYM NETLOGON_LOGON_IDENTITY_INFO}
+ TNetlogonLogonIdentityInfo = NETLOGON_LOGON_IDENTITY_INFO;
+ PNetlogonLogonIdentityInfo = PNETLOGON_LOGON_IDENTITY_INFO;
+
+ PNETLOGON_INTERACTIVE_INFO = ^NETLOGON_INTERACTIVE_INFO;
+ {$EXTERNALSYM PNETLOGON_INTERACTIVE_INFO}
+ _NETLOGON_INTERACTIVE_INFO = record
+ Identity: NETLOGON_LOGON_IDENTITY_INFO;
+ LmOwfPassword: LM_OWF_PASSWORD;
+ NtOwfPassword: NT_OWF_PASSWORD;
+ end;
+ {$EXTERNALSYM _NETLOGON_INTERACTIVE_INFO}
+ NETLOGON_INTERACTIVE_INFO = _NETLOGON_INTERACTIVE_INFO;
+ {$EXTERNALSYM NETLOGON_INTERACTIVE_INFO}
+ TNetlogonInteractiveInfo = NETLOGON_INTERACTIVE_INFO;
+ PNetlogonInteractiveInfo = PNETLOGON_INTERACTIVE_INFO;
+
+ PNETLOGON_SERVICE_INFO = ^NETLOGON_SERVICE_INFO;
+ {$EXTERNALSYM PNETLOGON_SERVICE_INFO}
+ _NETLOGON_SERVICE_INFO = record
+ Identity: NETLOGON_LOGON_IDENTITY_INFO;
+ LmOwfPassword: LM_OWF_PASSWORD;
+ NtOwfPassword: NT_OWF_PASSWORD;
+ end;
+ {$EXTERNALSYM _NETLOGON_SERVICE_INFO}
+ NETLOGON_SERVICE_INFO = _NETLOGON_SERVICE_INFO;
+ {$EXTERNALSYM NETLOGON_SERVICE_INFO}
+ TNetlogonServiceInfo = NETLOGON_SERVICE_INFO;
+ PNetlogonServiceInfo = PNETLOGON_SERVICE_INFO;
+
+ PNETLOGON_NETWORK_INFO = ^NETLOGON_NETWORK_INFO;
+ {$EXTERNALSYM PNETLOGON_NETWORK_INFO}
+ _NETLOGON_NETWORK_INFO = record
+ Identity: NETLOGON_LOGON_IDENTITY_INFO;
+ LmChallenge: LM_CHALLENGE;
+ NtChallengeResponse: STRING;
+ LmChallengeResponse: STRING;
+ end;
+ {$EXTERNALSYM _NETLOGON_NETWORK_INFO}
+ NETLOGON_NETWORK_INFO = _NETLOGON_NETWORK_INFO;
+ {$EXTERNALSYM NETLOGON_NETWORK_INFO}
+ TNetlogonNetworkInfo = NETLOGON_NETWORK_INFO;
+ PNetlogonNetworkInfo = PNETLOGON_NETWORK_INFO;
+
+ PNETLOGON_GENERIC_INFO = ^NETLOGON_GENERIC_INFO;
+ {$EXTERNALSYM PNETLOGON_GENERIC_INFO}
+ _NETLOGON_GENERIC_INFO = record
+ Identity: NETLOGON_LOGON_IDENTITY_INFO;
+ PackageName: UNICODE_STRING;
+ DataLength: ULONG;
+ LogonData: PUCHAR;
+ end;
+ {$EXTERNALSYM _NETLOGON_GENERIC_INFO}
+ NETLOGON_GENERIC_INFO = _NETLOGON_GENERIC_INFO;
+ {$EXTERNALSYM NETLOGON_GENERIC_INFO}
+ TNetlogonGenericInfo = NETLOGON_GENERIC_INFO;
+ PNetlogonGenericInfo = PNETLOGON_GENERIC_INFO;
+
+// Values for Flags
+
+const
+ MSV1_0_PASSTHRU = $01;
+ {$EXTERNALSYM MSV1_0_PASSTHRU}
+ MSV1_0_GUEST_LOGON = $02;
+ {$EXTERNALSYM MSV1_0_GUEST_LOGON}
+
+//function Msv1_0SubAuthenticationRoutine(LogonLevel: NETLOGON_LOGON_INFO_CLASS;
+// LogonInformation: PVOID; Flags: ULONG; UserAll: PUSER_ALL_INFORMATION;
+// WhichFields, UserFlags: PULONG; Authoritative: PBOOLEAN; LogoffTime,
+// KickoffTime: PLARGE_INTEGER): NTSTATUS; stdcall;
+//{$EXTERNALSYM Msv1_0SubAuthenticationRoutine}
+
+type
+ PMSV1_0_VALIDATION_INFO = ^MSV1_0_VALIDATION_INFO;
+ {$EXTERNALSYM PMSV1_0_VALIDATION_INFO}
+ _MSV1_0_VALIDATION_INFO = record
+ LogoffTime: LARGE_INTEGER;
+ KickoffTime: LARGE_INTEGER;
+ LogonServer: UNICODE_STRING;
+ LogonDomainName: UNICODE_STRING;
+ SessionKey: USER_SESSION_KEY;
+ Authoritative: ByteBool;
+ UserFlags: ULONG;
+ WhichFields: ULONG;
+ UserId: ULONG;
+ end;
+ {$EXTERNALSYM _MSV1_0_VALIDATION_INFO}
+ MSV1_0_VALIDATION_INFO = _MSV1_0_VALIDATION_INFO;
+ {$EXTERNALSYM MSV1_0_VALIDATION_INFO}
+ TMsv10ValidationInfo = MSV1_0_VALIDATION_INFO;
+ PMsv10ValidationInfo = PMSV1_0_VALIDATION_INFO;
+
+// values for WhichFields
+
+const
+ MSV1_0_VALIDATION_LOGOFF_TIME = $00000001;
+ {$EXTERNALSYM MSV1_0_VALIDATION_LOGOFF_TIME}
+ MSV1_0_VALIDATION_KICKOFF_TIME = $00000002;
+ {$EXTERNALSYM MSV1_0_VALIDATION_KICKOFF_TIME}
+ MSV1_0_VALIDATION_LOGON_SERVER = $00000004;
+ {$EXTERNALSYM MSV1_0_VALIDATION_LOGON_SERVER}
+ MSV1_0_VALIDATION_LOGON_DOMAIN = $00000008;
+ {$EXTERNALSYM MSV1_0_VALIDATION_LOGON_DOMAIN}
+ MSV1_0_VALIDATION_SESSION_KEY = $00000010;
+ {$EXTERNALSYM MSV1_0_VALIDATION_SESSION_KEY}
+ MSV1_0_VALIDATION_USER_FLAGS = $00000020;
+ {$EXTERNALSYM MSV1_0_VALIDATION_USER_FLAGS}
+ MSV1_0_VALIDATION_USER_ID = $00000040;
+ {$EXTERNALSYM MSV1_0_VALIDATION_USER_ID}
+
+// legal values for ActionsPerformed
+
+ MSV1_0_SUBAUTH_ACCOUNT_DISABLED = $00000001;
+ {$EXTERNALSYM MSV1_0_SUBAUTH_ACCOUNT_DISABLED}
+ MSV1_0_SUBAUTH_PASSWORD = $00000002;
+ {$EXTERNALSYM MSV1_0_SUBAUTH_PASSWORD}
+ MSV1_0_SUBAUTH_WORKSTATIONS = $00000004;
+ {$EXTERNALSYM MSV1_0_SUBAUTH_WORKSTATIONS}
+ MSV1_0_SUBAUTH_LOGON_HOURS = $00000008;
+ {$EXTERNALSYM MSV1_0_SUBAUTH_LOGON_HOURS}
+ MSV1_0_SUBAUTH_ACCOUNT_EXPIRY = $00000010;
+ {$EXTERNALSYM MSV1_0_SUBAUTH_ACCOUNT_EXPIRY}
+ MSV1_0_SUBAUTH_PASSWORD_EXPIRY = $00000020;
+ {$EXTERNALSYM MSV1_0_SUBAUTH_PASSWORD_EXPIRY}
+ MSV1_0_SUBAUTH_ACCOUNT_TYPE = $00000040;
+ {$EXTERNALSYM MSV1_0_SUBAUTH_ACCOUNT_TYPE}
+ MSV1_0_SUBAUTH_LOCKOUT = $00000080;
+ {$EXTERNALSYM MSV1_0_SUBAUTH_LOCKOUT}
+
+//function Msv1_0SubAuthenticationRoutineEx(LogonLevel: NETLOGON_LOGON_INFO_CLASS;
+// LogonInformation: PVOID; Flags: ULONG; UserAll: PUSER_ALL_INFORMATION;
+// UserHandle: SAM_HANDLE; ValidationInfo: PMSV1_0_VALIDATION_INFO;
+// ActionsPerformed: PULONG): NTSTATUS; stdcall;
+//{$EXTERNALSYM Msv1_0SubAuthenticationRoutineEx}
+
+//function Msv1_0SubAuthenticationRoutineGeneric(SubmitBuffer: PVOID;
+// SubmitBufferLength: ULONG; ReturnBufferLength: PULONG;
+// ReturnBuffer: PPVOID): NTSTATUS; stdcall;
+//{$EXTERNALSYM Msv1_0SubAuthenticationRoutineGeneric}
+
+//function Msv1_0SubAuthenticationFilter(LogonLevel: NETLOGON_LOGON_INFO_CLASS;
+// LogonInformation: PVOID; Flags: ULONG; UserAll: PUSER_ALL_INFORMATION;
+// WhichFields, UserFlags: PULONG; Authoritative: PBOOLEAN; LogoffTime,
+// KickoffTime: PLARGE_INTEGER): NTSTATUS; stdcall;
+//{$EXTERNALSYM Msv1_0SubAuthenticationFilter}
+
+{$IFNDEF JWA_INCLUDEMODE}
+const
+ STATUS_SUCCESS = NTSTATUS($00000000);
+ {$EXTERNALSYM STATUS_SUCCESS}
+ STATUS_INVALID_INFO_CLASS = NTSTATUS($C0000003);
+ {$EXTERNALSYM STATUS_INVALID_INFO_CLASS}
+ STATUS_NO_SUCH_USER = NTSTATUS($C0000064);
+ {$EXTERNALSYM STATUS_NO_SUCH_USER}
+ STATUS_WRONG_PASSWORD = NTSTATUS($C000006A);
+ {$EXTERNALSYM STATUS_WRONG_PASSWORD}
+ STATUS_PASSWORD_RESTRICTION = NTSTATUS($C000006C);
+ {$EXTERNALSYM STATUS_PASSWORD_RESTRICTION}
+ STATUS_LOGON_FAILURE = NTSTATUS($C000006D);
+ {$EXTERNALSYM STATUS_LOGON_FAILURE}
+ STATUS_ACCOUNT_RESTRICTION = NTSTATUS($C000006E);
+ {$EXTERNALSYM STATUS_ACCOUNT_RESTRICTION}
+ STATUS_INVALID_LOGON_HOURS = NTSTATUS($C000006F);
+ {$EXTERNALSYM STATUS_INVALID_LOGON_HOURS}
+ STATUS_INVALID_WORKSTATION = NTSTATUS($C0000070);
+ {$EXTERNALSYM STATUS_INVALID_WORKSTATION}
+ STATUS_PASSWORD_EXPIRED = NTSTATUS($C0000071);
+ {$EXTERNALSYM STATUS_PASSWORD_EXPIRED}
+ STATUS_ACCOUNT_DISABLED = NTSTATUS($C0000072);
+ {$EXTERNALSYM STATUS_ACCOUNT_DISABLED}
+ STATUS_INSUFFICIENT_RESOURCES = NTSTATUS($C000009A);
+ {$EXTERNALSYM STATUS_INSUFFICIENT_RESOURCES}
+ STATUS_ACCOUNT_EXPIRED = NTSTATUS($C0000193);
+ {$EXTERNALSYM STATUS_ACCOUNT_EXPIRED}
+ STATUS_PASSWORD_MUST_CHANGE = NTSTATUS($C0000224);
+ {$EXTERNALSYM STATUS_PASSWORD_MUST_CHANGE}
+ STATUS_ACCOUNT_LOCKED_OUT = NTSTATUS($C0000234);
+ {$EXTERNALSYM STATUS_ACCOUNT_LOCKED_OUT}
+{$ENDIF JWA_INCLUDEMODE}
+
+{$ENDIF JWA_IMPLEMENTATIONSECTION}
+
+
+
+{$IFNDEF JWA_OMIT_SECTIONS}
+implementation
+//uses ...
+{$ENDIF JWA_OMIT_SECTIONS}
+
+
+{$IFNDEF JWA_INTERFACESECTION}
+//your implementation here
+{$ENDIF JWA_INTERFACESECTION}
+
+
+{$IFNDEF JWA_OMIT_SECTIONS}
+end.
+{$ENDIF JWA_OMIT_SECTIONS}