afslogon-wix-cleanup-20040715
[openafs.git] / src / WINNT / afsd / afslogon.h
diff --git a/src/WINNT/afsd/afslogon.h b/src/WINNT/afsd/afslogon.h
new file mode 100644 (file)
index 0000000..b4a7139
--- /dev/null
@@ -0,0 +1,125 @@
+/*
+
+Copyright 2004 by the Massachusetts Institute of Technology
+
+All rights reserved.
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation, and that the name of the Massachusetts
+Institute of Technology (M.I.T.) not be used in advertising or publicity
+pertaining to distribution of the software without specific, written
+prior permission.
+
+M.I.T. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+M.I.T. BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
+ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+SOFTWARE.
+
+*/
+
+/* We only support VC 1200 and above anyway */
+#pragma once
+
+#include <windows.h>
+#include <npapi.h>
+#include <ntsecapi.h>
+#include <strsafe.h>
+
+
+#define REG_CLIENT_PARMS_KEY            "SYSTEM\\CurrentControlSet\\Services\\TransarcAFSDaemon\\Parameters"
+#define REG_CLIENT_PROVIDER_KEY                        "SYSTEM\\CurrentControlSet\\Services\\TransarcAFSDaemon\\NetworkProvider"
+#define REG_CLIENT_DOMAINS_SUBKEY              "Domain"
+#define REG_CLIENT_RETRY_INTERVAL_PARM  "LoginRetryInterval"
+#define REG_CLIENT_SLEEP_INTERVAL_PARM "LoginSleepInterval"
+#define REG_CLIENT_FAIL_SILENTLY_PARM   "FailLoginsSilently"
+#define REG_CLIENT_TRACE_OPTION_PARM   "TraceOption"
+#define REG_CLIENT_LOGON_OPTION_PARM   "LogonOptions"
+#define REG_CLIENT_LOGON_SCRIPT_PARMW  L"LogonScript"
+#define DEFAULT_RETRY_INTERVAL          30                        /* seconds*/
+#define DEFAULT_FAIL_SILENTLY           FALSE
+#define DEFAULT_SLEEP_INTERVAL          5                         /* seconds*/
+#define DEFAULT_LOGON_OPTION                   1
+
+#define TRACE_OPTION_EVENT 1
+
+#define ISLOGONTRACE(v) ( ((v) & TRACE_OPTION_EVENT)==TRACE_OPTION_EVENT)
+
+#define ISLOGONINTEGRATED(v) ( ((v) & LOGON_OPTION_INTEGRATED)==LOGON_OPTION_INTEGRATED)
+#define ISHIGHSECURITY(v) ( ((v) & LOGON_OPTION_HIGHSECURITY)==LOGON_OPTION_HIGHSECURITY)
+
+#define ISREMOTE(v) ( ((v) & LOGON_FLAG_REMOTE)==LOGON_FLAG_REMOTE)
+#define ISADREALM(v) ( ((v) & LOGON_FLAG_AD_REALM)==LOGON_FLAG_AD_REALM)
+extern DWORD TraceOption;
+
+#define LOGON_FLAG_LOCAL       0
+#define LOGON_FLAG_REMOTE      1
+#define LOGON_FLAG_AD_REALM 2
+
+typedef struct LogonOptions_type {
+       DWORD   LogonOption;
+       BOOLEAN failSilently;
+       int             retryInterval;
+       int             sleepInterval;
+       char *  smbName;
+       LPWSTR  logonScript;
+       DWORD   flags; /* LOGON_FLAG_* */
+} LogonOptions_t;
+
+/* */
+#define MAX_USERNAME_LENGTH 256
+#define MAX_PASSWORD_LENGTH 256
+#define MAX_DOMAIN_LENGTH 256
+
+BOOLEAN APIENTRY DllEntryPoint(HANDLE dll, DWORD reason, PVOID reserved);
+
+DWORD APIENTRY NPGetCaps(DWORD index);
+
+DWORD APIENTRY NPLogonNotify(
+       PLUID lpLogonId,
+       LPCWSTR lpAuthentInfoType,
+       LPVOID lpAuthentInfo,
+       LPCWSTR lpPreviousAuthentInfoType,
+       LPVOID lpPreviousAuthentInfo,
+       LPWSTR lpStationName,
+       LPVOID StationHandle,
+       LPWSTR *lpLogonScript);
+
+DWORD APIENTRY NPPasswordChangeNotify(
+       LPCWSTR lpAuthentInfoType,
+       LPVOID lpAuthentInfo,
+       LPCWSTR lpPreviousAuthentInfoType,
+       LPVOID lpPreviousAuthentInfo,
+       LPWSTR lpStationName,
+       LPVOID StationHandle,
+       DWORD dwChangeInfo);
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void DebugEvent0(char *a);
+void DebugEvent(char *a,char *b,...);
+
+CHAR *GenRandomName(CHAR *pbuf);
+
+BOOLEAN AFSWillAutoStart(void);
+
+DWORD MapAuthError(DWORD code);
+
+BOOL IsServiceRunning (void);
+
+static BOOL WINAPI UnicodeStringToANSI(UNICODE_STRING uInputString, LPSTR lpszOutputString, int nOutStringLen);
+
+void GetDomainLogonOptions( PLUID lpLogonId, char * username, char * domain, LogonOptions_t *opt );
+DWORD GetFileCellName(char * path, char * cell, size_t cellLen);
+DWORD GetAdHomePath(char * homePath, size_t homePathLen, PLUID lpLogonId, MSV1_0_INTERACTIVE_LOGON * IL, LogonOptions_t * opt);
+
+#ifdef __cplusplus
+}
+#endif