Index: openafs/src/WINNT/afsapplib/checklist.cpp
diff -c openafs/src/WINNT/afsapplib/checklist.cpp:1.3.4.1 openafs/src/WINNT/afsapplib/checklist.cpp:1.3.4.2
*** openafs/src/WINNT/afsapplib/checklist.cpp:1.3.4.1	Sun Jun 25 13:54:47 2006
--- openafs/src/WINNT/afsapplib/checklist.cpp	Tue Dec 12 15:40:52 2006
***************
*** 134,141 ****
        wc.hbrBackground = CreateSolidBrush (GetSysColor (COLOR_BTNFACE));
        wc.lpszClassName = WC_CHECKLIST;
  
!       if (RegisterClass (&wc))
!          fRegistered = TRUE;
        }
  
     return fRegistered;
--- 134,144 ----
        wc.hbrBackground = CreateSolidBrush (GetSysColor (COLOR_BTNFACE));
        wc.lpszClassName = WC_CHECKLIST;
  
! 	  if (RegisterClass (&wc)) {
! 	      fRegistered = TRUE;
! 	  } else {
! 	      OutputDebugString("CheckList class registration failed\n");
! 	  }
        }
  
     return fRegistered;
Index: openafs/src/WINNT/afsapplib/checklist.h
diff -c openafs/src/WINNT/afsapplib/checklist.h:1.2 openafs/src/WINNT/afsapplib/checklist.h:1.2.32.1
*** openafs/src/WINNT/afsapplib/checklist.h:1.2	Sat Nov  4 05:01:21 2000
--- openafs/src/WINNT/afsapplib/checklist.h	Tue Dec 12 15:40:52 2006
***************
*** 31,37 ****
  
  EXPORTED BOOL RegisterCheckListClass (void);
  
! #define WC_CHECKLIST  TEXT("CheckList")
  
  
  #define LB_GETCHECK   (WM_USER+300)   // int iItem=wp  
--- 31,37 ----
  
  EXPORTED BOOL RegisterCheckListClass (void);
  
! #define WC_CHECKLIST  TEXT("OpenAFS_CheckList")
  
  
  #define LB_GETCHECK   (WM_USER+300)   // int iItem=wp  
Index: openafs/src/WINNT/afsapplib/fastlist.h
diff -c openafs/src/WINNT/afsapplib/fastlist.h:1.2 openafs/src/WINNT/afsapplib/fastlist.h:1.2.32.1
*** openafs/src/WINNT/afsapplib/fastlist.h:1.2	Sat Nov  4 05:01:23 2000
--- openafs/src/WINNT/afsapplib/fastlist.h	Tue Dec 12 15:40:52 2006
***************
*** 26,32 ****
  #define THIS_HINST   (HINSTANCE)GetModuleHandle(NULL)
  #endif
  
! #define WC_FASTLIST   TEXT("FastList")
  
  #define FLM_FIRST     0x1400
  
--- 26,32 ----
  #define THIS_HINST   (HINSTANCE)GetModuleHandle(NULL)
  #endif
  
! #define WC_FASTLIST   TEXT("OpenAFS_FastList")
  
  #define FLM_FIRST     0x1400
  
Index: openafs/src/WINNT/afsd/afsd_service.c
diff -c openafs/src/WINNT/afsd/afsd_service.c:1.52.4.8 openafs/src/WINNT/afsd/afsd_service.c:1.52.4.9
*** openafs/src/WINNT/afsd/afsd_service.c:1.52.4.8	Tue Nov 28 04:17:14 2006
--- openafs/src/WINNT/afsd/afsd_service.c	Mon Dec 11 23:01:26 2006
***************
*** 40,46 ****
  
  HANDLE WaitToTerminate;
  
! int GlobalStatus;
  
  #ifdef JUMP
  unsigned int MainThreadId;
--- 40,46 ----
  
  HANDLE WaitToTerminate;
  
! static int GlobalStatus;
  
  #ifdef JUMP
  unsigned int MainThreadId;
***************
*** 50,56 ****
  extern int traceOnPanic;
  extern HANDLE afsi_file;
  
! int powerEventsRegistered = 0;
  
  /*
   * Notifier function for use by osi_panic
--- 50,57 ----
  extern int traceOnPanic;
  extern HANDLE afsi_file;
  
! static int powerEventsRegistered = 0;
! extern int powerStateSuspended = 0;
  
  /*
   * Notifier function for use by osi_panic
***************
*** 325,336 ****
--- 326,339 ----
                      /* allow remaining case PBT_WhatEver */                                           
                  case PBT_APMSUSPEND:                         
                      afsi_log("SERVICE_CONTROL_APMSUSPEND");
+ 		    powerStateSuspended = 1;
  		    if (osVersion.dwMajorVersion >= 6)
  			smb_StopListeners();
                      dwRet = NO_ERROR;                       
                      break;                                  
                  case PBT_APMSTANDBY:                  
                      afsi_log("SERVICE_CONTROL_APMSTANDBY"); 
+ 		    powerStateSuspended = 1;
  		    if (osVersion.dwMajorVersion >= 6)
  			smb_StopListeners();
                      dwRet = NO_ERROR;                       
***************
*** 342,356 ****
                      dwRet = NO_ERROR;                       
                      break;                                  
                  case PBT_APMRESUMESUSPEND:                                                        
                      afsi_log("SERVICE_CONTROL_APMRESUMESUSPEND"); 
- 		    if (osVersion.dwMajorVersion >= 6)
- 			smb_RestartListeners();
                      dwRet = NO_ERROR;                       
                      break;                                  
!                 case PBT_APMRESUMESTANDBY:                                                        
                      afsi_log("SERVICE_CONTROL_APMRESUMESTANDBY"); 
- 		    if (osVersion.dwMajorVersion >= 6)
- 			smb_RestartListeners();
                      dwRet = NO_ERROR;                       
                      break;                                  
                  case PBT_APMBATTERYLOW:                                                           
--- 345,357 ----
                      dwRet = NO_ERROR;                       
                      break;                                  
                  case PBT_APMRESUMESUSPEND:                                                        
+ 		    /* User logged in after suspend */
                      afsi_log("SERVICE_CONTROL_APMRESUMESUSPEND"); 
                      dwRet = NO_ERROR;                       
                      break;                                  
!                 case PBT_APMRESUMESTANDBY:            
! 		    /* User logged in after standby */
                      afsi_log("SERVICE_CONTROL_APMRESUMESTANDBY"); 
                      dwRet = NO_ERROR;                       
                      break;                                  
                  case PBT_APMBATTERYLOW:                                                           
***************
*** 369,376 ****
  #endif
                      dwRet = NO_ERROR;                       
                      break;                                  
!                 case PBT_APMRESUMEAUTOMATIC:                                                      
                      afsi_log("SERVICE_CONTROL_APMRESUMEAUTOMATIC"); 
  		    if (osVersion.dwMajorVersion >= 6)
  			smb_RestartListeners();
                      dwRet = NO_ERROR;                       
--- 370,379 ----
  #endif
                      dwRet = NO_ERROR;                       
                      break;                                  
!                 case PBT_APMRESUMEAUTOMATIC:          
! 		    /* This is the message delivered once all devices are up */
                      afsi_log("SERVICE_CONTROL_APMRESUMEAUTOMATIC"); 
+ 		    powerStateSuspended = 0;
  		    if (osVersion.dwMajorVersion >= 6)
  			smb_RestartListeners();
                      dwRet = NO_ERROR;                       
Index: openafs/src/WINNT/afsd/afslogon.c
diff -c openafs/src/WINNT/afsd/afslogon.c:1.45.2.5 openafs/src/WINNT/afsd/afslogon.c:1.45.2.7
*** openafs/src/WINNT/afsd/afslogon.c:1.45.2.5	Tue Nov 28 04:01:14 2006
--- openafs/src/WINNT/afsd/afslogon.c	Tue Dec 19 12:56:30 2006
***************
*** 74,92 ****
  
  BOOLEAN APIENTRY DllEntryPoint(HANDLE dll, DWORD reason, PVOID reserved)
  {
      hDLL = dll;
      switch (reason) {
      case DLL_PROCESS_ATTACH:
!         /* Initialization Mutex */
! 	if (!bInit) {
  	    hInitMutex = CreateMutex(NULL, FALSE, NULL);
! 	}
          break;
  
      case DLL_PROCESS_DETACH:
! 	/* do nothing on unload because we might 
! 	 * be reloaded.
! 	 */
  	CloseHandle(hInitMutex);
  	hInitMutex = NULL;
  	bInit = FALSE;
--- 74,93 ----
  
  BOOLEAN APIENTRY DllEntryPoint(HANDLE dll, DWORD reason, PVOID reserved)
  {
+     WSADATA wsaData;
      hDLL = dll;
+ 
      switch (reason) {
      case DLL_PROCESS_ATTACH:
! 	/* Initialization Mutex */
! 	if (!hInitMutex)
  	    hInitMutex = CreateMutex(NULL, FALSE, NULL);
! 
! 	WSAStartup( MAKEWORD(2,2), &wsaData );
          break;
  
      case DLL_PROCESS_DETACH:
! 	WSACleanup();
  	CloseHandle(hInitMutex);
  	hInitMutex = NULL;
  	bInit = FALSE;
Index: openafs/src/WINNT/afsd/cm_buf.c
diff -c openafs/src/WINNT/afsd/cm_buf.c:1.31.2.10 openafs/src/WINNT/afsd/cm_buf.c:1.31.2.11
*** openafs/src/WINNT/afsd/cm_buf.c:1.31.2.10	Wed Nov 29 01:23:44 2006
--- openafs/src/WINNT/afsd/cm_buf.c	Tue Dec 12 12:04:41 2006
***************
*** 908,913 ****
--- 908,914 ----
              return 0;
          } /* for all buffers in lru queue */
          lock_ReleaseWrite(&buf_globalLock);
+ 		Sleep(100);		/* give some time for a buffer to be freed */
      }	/* while loop over everything */
      /* not reached */
  } /* the proc */
Index: openafs/src/WINNT/afsd/cm_callback.c
diff -c openafs/src/WINNT/afsd/cm_callback.c:1.41.4.9 openafs/src/WINNT/afsd/cm_callback.c:1.41.4.10
*** openafs/src/WINNT/afsd/cm_callback.c:1.41.4.9	Thu Oct  5 16:30:38 2006
--- openafs/src/WINNT/afsd/cm_callback.c	Mon Dec 11 23:01:26 2006
***************
*** 149,155 ****
               dscp->flags & CM_SCACHEFLAG_ANYWATCH )
              smb_NotifyChange( 0,
                                FILE_NOTIFY_GENERIC_FILE_FILTER,
!                               dscp,   NULL, NULL, TRUE);
  #else
          if (dscp)
              dc_break_callback(FID_HASH_FN(&dscp->fid));
--- 149,155 ----
               dscp->flags & CM_SCACHEFLAG_ANYWATCH )
              smb_NotifyChange( 0,
                                FILE_NOTIFY_GENERIC_FILE_FILTER,
!                               dscp, NULL, NULL, TRUE);
  #else
          if (dscp)
              dc_break_callback(FID_HASH_FN(&dscp->fid));
Index: openafs/src/WINNT/afsd/cm_conn.c
diff -c openafs/src/WINNT/afsd/cm_conn.c:1.49.2.9 openafs/src/WINNT/afsd/cm_conn.c:1.49.2.10
*** openafs/src/WINNT/afsd/cm_conn.c:1.49.2.9	Tue Nov 28 04:08:04 2006
--- openafs/src/WINNT/afsd/cm_conn.c	Sun Dec 17 16:07:22 2006
***************
*** 24,30 ****
  
  osi_rwlock_t cm_connLock;
  
! long RDRtimeout = CM_CONN_DEFAULTRDRTIMEOUT;
  unsigned short ConnDeadtimeout = CM_CONN_CONNDEADTIME;
  unsigned short HardDeadtimeout = CM_CONN_HARDDEADTIME;
  
--- 24,30 ----
  
  osi_rwlock_t cm_connLock;
  
! DWORD RDRtimeout = CM_CONN_DEFAULTRDRTIMEOUT;
  unsigned short ConnDeadtimeout = CM_CONN_CONNDEADTIME;
  unsigned short HardDeadtimeout = CM_CONN_HARDDEADTIME;
  
***************
*** 88,94 ****
  	    RegCloseKey(parmKey);
  	}
  
! 	afsi_log("lanmanworkstation : SessTimeout %d", RDRtimeout);
  	if (ConnDeadtimeout == 0)
  	    ConnDeadtimeout = (unsigned short) (RDRtimeout / 2);
  	afsi_log("ConnDeadTimeout is %d", ConnDeadtimeout);
--- 88,94 ----
  	    RegCloseKey(parmKey);
  	}
  
! 	afsi_log("lanmanworkstation : SessTimeout %u", RDRtimeout);
  	if (ConnDeadtimeout == 0)
  	    ConnDeadtimeout = (unsigned short) (RDRtimeout / 2);
  	afsi_log("ConnDeadTimeout is %d", ConnDeadtimeout);
Index: openafs/src/WINNT/afsd/cm_conn.h
diff -c openafs/src/WINNT/afsd/cm_conn.h:1.13.4.4 openafs/src/WINNT/afsd/cm_conn.h:1.13.4.5
*** openafs/src/WINNT/afsd/cm_conn.h:1.13.4.4	Sat Oct 21 16:47:48 2006
--- openafs/src/WINNT/afsd/cm_conn.h	Sun Dec 17 16:07:22 2006
***************
*** 16,22 ****
  
  extern unsigned short ConnDeadtimeout;
  extern unsigned short HardDeadtimeout;
! extern long           RDRtimeout; 
  
  typedef struct cm_conn {
  	struct cm_conn *nextp;		/* locked by cm_connLock */
--- 16,22 ----
  
  extern unsigned short ConnDeadtimeout;
  extern unsigned short HardDeadtimeout;
! extern DWORD          RDRtimeout; 
  
  typedef struct cm_conn {
  	struct cm_conn *nextp;		/* locked by cm_connLock */
Index: openafs/src/WINNT/afsd/cm_daemon.c
diff -c openafs/src/WINNT/afsd/cm_daemon.c:1.16.4.7 openafs/src/WINNT/afsd/cm_daemon.c:1.16.4.8
*** openafs/src/WINNT/afsd/cm_daemon.c:1.16.4.7	Fri Oct  6 12:32:43 2006
--- openafs/src/WINNT/afsd/cm_daemon.c	Mon Dec 11 23:01:26 2006
***************
*** 296,301 ****
--- 296,306 ----
      lastTokenCacheCheck = now - cm_daemonTokenCheckInterval/2 + (rand() % cm_daemonTokenCheckInterval);
  
      while (daemon_ShutdownFlag == 0) {
+ 	/* check to see if the listener threads halted due to network 
+ 	 * disconnect or other issues.  If so, attempt to restart them.
+ 	 */
+ 	smb_RestartListeners();
+ 
  	if (configureFirewall) {
  	    /* Open Microsoft Firewall to allow in port 7001 */
  	    switch (icf_CheckAndAddAFSPorts(AFS_PORTSET_CLIENT)) {
Index: openafs/src/WINNT/afsd/cm_vnodeops.c
diff -c openafs/src/WINNT/afsd/cm_vnodeops.c:1.69.2.17 openafs/src/WINNT/afsd/cm_vnodeops.c:1.69.2.19
*** openafs/src/WINNT/afsd/cm_vnodeops.c:1.69.2.17	Mon Oct 16 20:32:57 2006
--- openafs/src/WINNT/afsd/cm_vnodeops.c	Sun Dec 17 16:07:23 2006
***************
*** 179,189 ****
  };
  int cm_8Dot3MapSize = sizeof(cm_8Dot3Mapping);
  
! void cm_Gen8Dot3Name(cm_dirEntry_t *dep, char *shortName, char **shortNameEndp)
  {
      char number[12];
      int i, nsize = 0;
!     int vnode = ntohl(dep->fid.vnode);
      char *lastDot;
      int validExtension = 0;
      char tc, *temp, *name;
--- 179,190 ----
  };
  int cm_8Dot3MapSize = sizeof(cm_8Dot3Mapping);
  
! void cm_Gen8Dot3NameInt(const char * longname, cm_dirFid_t * pfid,
!                         char *shortName, char **shortNameEndp)
  {
      char number[12];
      int i, nsize = 0;
!     int vnode = ntohl(pfid->vnode);
      char *lastDot;
      int validExtension = 0;
      char tc, *temp, *name;
***************
*** 199,205 ****
       * Look for valid extension.  There has to be a dot, and
       * at least one of the characters following has to be legal.
       */
!     lastDot = strrchr(dep->name, '.');
      if (lastDot) {
          temp = lastDot; temp++;
          while (tc = *temp++)
--- 200,206 ----
       * Look for valid extension.  There has to be a dot, and
       * at least one of the characters following has to be legal.
       */
!     lastDot = strrchr(longname, '.');
      if (lastDot) {
          temp = lastDot; temp++;
          while (tc = *temp++)
***************
*** 210,217 ****
      }       
  
      /* Copy name characters */
!     name = dep->name;
!     for (i = 0, name = dep->name;
            i < (7 - nsize) && name != lastDot; ) {
          tc = *name++;
  
--- 211,217 ----
      }       
  
      /* Copy name characters */
!     for (i = 0, name = longname;
            i < (7 - nsize) && name != lastDot; ) {
          tc = *name++;
  
***************
*** 332,342 ****
  
  /* return success if we can open this file in this mode */
  long cm_CheckNTOpen(cm_scache_t *scp, unsigned int desiredAccess,
!                     unsigned int createDisp, cm_user_t *userp, cm_req_t *reqp)
  {
      long rights;
      long code;
  
      /* Always allow delete; the RPC will tell us if it's OK */
      if (desiredAccess == DELETE)
          return 0;
--- 332,346 ----
  
  /* return success if we can open this file in this mode */
  long cm_CheckNTOpen(cm_scache_t *scp, unsigned int desiredAccess,
!                     unsigned int createDisp, cm_user_t *userp, cm_req_t *reqp, 
! 		    cm_lock_data_t **ldpp)
  {
      long rights;
      long code;
  
+     osi_assert(ldpp != NULL);
+     *ldpp = NULL;
+ 
      /* Always allow delete; the RPC will tell us if it's OK */
      if (desiredAccess == DELETE)
          return 0;
***************
*** 391,397 ****
          code = cm_Lock(scp, sLockType, LOffset, LLength, key, 0, userp, reqp, NULL);
  
          if (code == 0) {
!             cm_Unlock(scp, sLockType, LOffset, LLength, key, userp, reqp);
          } else {
              /* In this case, we allow the file open to go through even
                 though we can't enforce mandatory locking on the
--- 395,412 ----
          code = cm_Lock(scp, sLockType, LOffset, LLength, key, 0, userp, reqp, NULL);
  
          if (code == 0) {
! 	    (*ldpp) = (cm_lock_data_t *)malloc(sizeof(cm_lock_data_t));
! 	    if (!*ldpp) {
! 		code = ENOMEM;
! 		goto _done;
! 	    }
! 
! 	    (*ldpp)->key = key;
! 	    (*ldpp)->sLockType = sLockType;
! 	    (*ldpp)->LOffset.HighPart = LOffset.HighPart;
! 	    (*ldpp)->LOffset.LowPart = LOffset.LowPart;
! 	    (*ldpp)->LLength.HighPart = LLength.HighPart;
! 	    (*ldpp)->LLength.LowPart = LLength.LowPart;
          } else {
              /* In this case, we allow the file open to go through even
                 though we can't enforce mandatory locking on the
***************
*** 425,430 ****
--- 440,458 ----
      return code;
  }
  
+ extern long cm_CheckNTOpenDone(cm_scache_t *scp, cm_user_t *userp, cm_req_t *reqp, 
+ 			       cm_lock_data_t ** ldpp)
+ {
+     if (*ldpp) {
+ 	lock_ObtainMutex(&scp->mx);
+ 	cm_Unlock(scp, (*ldpp)->sLockType, (*ldpp)->LOffset, (*ldpp)->LLength, 
+ 		  (*ldpp)->key, userp, reqp);
+ 	lock_ReleaseMutex(&scp->mx);
+ 	free(*ldpp);
+ 	*ldpp = NULL;
+     }
+     return 0;
+ }
  /*
   * When CAP_NT_SMBS has been negotiated, deletion (of files or directories) is
   * done in three steps:
Index: openafs/src/WINNT/afsd/cm_vnodeops.h
diff -c openafs/src/WINNT/afsd/cm_vnodeops.h:1.14.4.2 openafs/src/WINNT/afsd/cm_vnodeops.h:1.14.4.4
*** openafs/src/WINNT/afsd/cm_vnodeops.h:1.14.4.2	Mon Oct 16 20:32:57 2006
--- openafs/src/WINNT/afsd/cm_vnodeops.h	Sun Dec 17 16:07:23 2006
***************
*** 62,67 ****
--- 62,73 ----
  extern void cm_Gen8Dot3Name(struct cm_dirEntry *dep, char *shortName,
  	char **shortNameEndp);
  
+ #define cm_Gen8Dot3Name(dep,shortName,shortNameEndp) \
+ cm_Gen8Dot3NameInt((dep)->name, &(dep)->fid, shortName, shortNameEndp)
+ 
+ extern void cm_Gen8Dot3NameInt(const char * longname, cm_dirFid_t * pfid,
+                                char *shortName, char **shortNameEndp);
+ 
  extern long cm_ReadMountPoint(cm_scache_t *scp, cm_user_t *userp,
  	cm_req_t *reqp);
  
***************
*** 149,156 ****
  #define AFS_ACCESS_WRITE ((FILE_GENERIC_WRITE & ~(READ_CONTROL | SYNCHRONIZE)) \
  				& ~FILE_WRITE_ATTRIBUTES)
  
  extern long cm_CheckNTOpen(cm_scache_t *scp, unsigned int desiredAccess,
! 	unsigned int createDisp, cm_user_t *userp, cm_req_t *reqp);
  
  extern long cm_CheckNTDelete(cm_scache_t *dscp, cm_scache_t *scp,
  	cm_user_t *userp, cm_req_t *reqp);
--- 155,171 ----
  #define AFS_ACCESS_WRITE ((FILE_GENERIC_WRITE & ~(READ_CONTROL | SYNCHRONIZE)) \
  				& ~FILE_WRITE_ATTRIBUTES)
  
+ typedef struct cm_lock_data {
+     cm_key_t key;
+     unsigned int sLockType;
+     LARGE_INTEGER LOffset, LLength;
+ } cm_lock_data_t;
+ 
  extern long cm_CheckNTOpen(cm_scache_t *scp, unsigned int desiredAccess,
! 	unsigned int createDisp, cm_user_t *userp, cm_req_t *reqp, cm_lock_data_t ** ldpp);
! 
! extern long cm_CheckNTOpenDone(cm_scache_t *scp, cm_user_t *userp, cm_req_t *reqp, 
! 			       cm_lock_data_t ** ldpp);
  
  extern long cm_CheckNTDelete(cm_scache_t *dscp, cm_scache_t *scp,
  	cm_user_t *userp, cm_req_t *reqp);
Index: openafs/src/WINNT/afsd/dosdefs95.h
diff -c openafs/src/WINNT/afsd/dosdefs95.h:1.1 openafs/src/WINNT/afsd/dosdefs95.h:1.1.30.1
*** openafs/src/WINNT/afsd/dosdefs95.h:1.1	Mon Apr 30 02:48:07 2001
--- openafs/src/WINNT/afsd/dosdefs95.h	Mon Dec 11 23:01:26 2006
***************
*** 35,42 ****
  #define FILE_NOTIFY_CHANGE_SIZE         0x00000008   
  #define FILE_NOTIFY_CHANGE_LAST_WRITE   0x00000010   
  #define FILE_NOTIFY_CHANGE_LAST_ACCESS  0x00000020   
! #define FILE_NOTIFY_CHANGE_CREATION     0x00000040   
  #define FILE_NOTIFY_CHANGE_SECURITY     0x00000100   
  
  #define ULONG unsigned long
  #define USHORT unsigned short
--- 35,46 ----
  #define FILE_NOTIFY_CHANGE_SIZE         0x00000008   
  #define FILE_NOTIFY_CHANGE_LAST_WRITE   0x00000010   
  #define FILE_NOTIFY_CHANGE_LAST_ACCESS  0x00000020   
! #define FILE_NOTIFY_CHANGE_CREATION     0x00000040
! #define FILE_NOTIFY_CHANGE_EA           0x00000080
  #define FILE_NOTIFY_CHANGE_SECURITY     0x00000100   
+ #define FILE_NOTIFY_CHANGE_STREAM_NAME  0x00000200
+ #define FILE_NOTIFY_CHANGE_STREAM_SIZE  0x00000400
+ #define FILE_NOTIFY_CHANGE_STREAM_WRITE 0x00000800
  
  #define ULONG unsigned long
  #define USHORT unsigned short
Index: openafs/src/WINNT/afsd/rawops.c
diff -c openafs/src/WINNT/afsd/rawops.c:1.2.4.1 openafs/src/WINNT/afsd/rawops.c:1.2.4.2
*** openafs/src/WINNT/afsd/rawops.c:1.2.4.1	Mon Oct  2 23:23:21 2006
--- openafs/src/WINNT/afsd/rawops.c	Mon Dec 11 23:01:26 2006
***************
*** 359,373 ****
          buf_Release(bufferp);
      }
  
- #if 0
-     if (code == 0 /* && filter != 0 && (fidp->flags & SMB_FID_NTOPEN)
-         && (fidp->NTopen_dscp->flags & CM_SCACHEFLAG_ANYWATCH)*/) {
-         smb_NotifyChange(FILE_ACTION_MODIFIED, filter,
-                          fidp->NTopen_dscp, fidp->NTopen_pathp,
-                          NULL, TRUE);
-     }
- #endif
- 
      if (code == 0 && doWriteBack) {
          lock_ObtainMutex(&scp->mx);
          cm_SyncOp(scp, NULL, userp, &req, 0, CM_SCACHESYNC_ASYNCSTORE);
--- 359,364 ----
Index: openafs/src/WINNT/afsd/smb.c
diff -c openafs/src/WINNT/afsd/smb.c:1.118.2.26 openafs/src/WINNT/afsd/smb.c:1.118.2.28
*** openafs/src/WINNT/afsd/smb.c:1.118.2.26	Tue Nov 28 04:17:14 2006
--- openafs/src/WINNT/afsd/smb.c	Sun Dec 17 16:07:24 2006
***************
*** 37,43 ****
  static char *illegalChars = "\\/:*?\"<>|";
  
  static int smbShutdownFlag = 0;
! static int smb_ListenerState = SMB_LISTENER_STOPPED;
  
  int smb_LogoffTokenTransfer;
  time_t smb_LogoffTransferTimeout;
--- 37,43 ----
  static char *illegalChars = "\\/:*?\"<>|";
  
  static int smbShutdownFlag = 0;
! static int smb_ListenerState = SMB_LISTENER_UNINITIALIZED;
  
  int smb_LogoffTokenTransfer;
  time_t smb_LogoffTransferTimeout;
***************
*** 52,57 ****
--- 52,58 ----
  
  extern void afsi_log(char *pattern, ...);
  extern HANDLE afsi_file;
+ extern int powerStateSuspended;
  
  osi_hyper_t hzero = {0, 0};
  osi_hyper_t hones = {0xFFFFFFFF, -1};
***************
*** 174,180 ****
  /* forward decl */
  void smb_DispatchPacket(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *outp,
  			NCB *ncbp, raw_write_cont_t *rwcp);
! void smb_NetbiosInit();
  #ifdef DJGPP
  #ifndef AFS_WIN95_ENV
  DWORD smb_ServerExceptionFilter(void);
--- 175,181 ----
  /* forward decl */
  void smb_DispatchPacket(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *outp,
  			NCB *ncbp, raw_write_cont_t *rwcp);
! int smb_NetbiosInit(void);
  #ifdef DJGPP
  #ifndef AFS_WIN95_ENV
  DWORD smb_ServerExceptionFilter(void);
***************
*** 2005,2010 ****
--- 2006,2013 ----
  {
      lock_ObtainWrite(&smb_globalLock);
      lock_ObtainMutex(&dsp->mx);
+     osi_Log3(afsd_logp,"smb_DeleteDirSearch cookie %d dsp 0x%p scp 0x%p", 
+ 	      dsp->cookie, dsp, dsp->scp);
      dsp->flags |= SMB_DIRSEARCH_DELETE;
      if (dsp->scp != NULL) {
          lock_ObtainMutex(&dsp->scp->mx);
***************
*** 2033,2039 ****
          lock_ReleaseMutex(&dsp->mx);
          lock_FinalizeMutex(&dsp->mx);
          scp = dsp->scp;
! 	osi_Log2(afsd_logp,"smb_ReleaseDirSearch dsp 0x%p scp 0x%p", dsp, scp);
          free(dsp);
      } else {
          lock_ReleaseMutex(&dsp->mx);
--- 2036,2043 ----
          lock_ReleaseMutex(&dsp->mx);
          lock_FinalizeMutex(&dsp->mx);
          scp = dsp->scp;
! 	osi_Log3(afsd_logp,"smb_ReleaseDirSearch cookie %d dsp 0x%p scp 0x%p", 
! 		 dsp->cookie, dsp, scp);
          free(dsp);
      } else {
          lock_ReleaseMutex(&dsp->mx);
***************
*** 2121,2126 ****
--- 2125,2132 ----
      counter = 0;
  
      /* what's the biggest ID allowed in this version of the protocol */
+     /* TODO: do we really want a non v3 dir search request to wrap
+        smb_dirSearchCounter? */
      maxAllowed = isV3 ? 65535 : 255;
      if (smb_dirSearchCounter > maxAllowed)
          smb_dirSearchCounter = 1;
***************
*** 2164,2170 ****
          osi_QAdd((osi_queue_t **) &smb_firstDirSearchp, &dsp->q);
          if (!smb_lastDirSearchp) 
              smb_lastDirSearchp = (smb_dirSearch_t *) &dsp->q;
!         break;
      }	
      lock_ReleaseWrite(&smb_globalLock);
      return dsp;
--- 2170,2179 ----
          osi_QAdd((osi_queue_t **) &smb_firstDirSearchp, &dsp->q);
          if (!smb_lastDirSearchp) 
              smb_lastDirSearchp = (smb_dirSearch_t *) &dsp->q;
!     
! 	osi_Log2(afsd_logp,"smb_NewDirSearch cookie %d dsp 0x%p", 
! 		 dsp->cookie, dsp);
! 	break;
      }	
      lock_ReleaseWrite(&smb_globalLock);
      return dsp;
***************
*** 2358,2364 ****
  }       
  
  /* return the parm'th parameter in the smbp packet */
! unsigned int smb_GetSMBParm(smb_packet_t *smbp, int parm)
  {
      int parmCount;
      unsigned char *parmDatap;
--- 2367,2373 ----
  }       
  
  /* return the parm'th parameter in the smbp packet */
! unsigned short smb_GetSMBParm(smb_packet_t *smbp, int parm)
  {
      int parmCount;
      unsigned char *parmDatap;
***************
*** 2384,2389 ****
--- 2393,2422 ----
  }
  
  /* return the parm'th parameter in the smbp packet */
+ unsigned char smb_GetSMBParmByte(smb_packet_t *smbp, int parm)
+ {
+     int parmCount;
+     unsigned char *parmDatap;
+ 
+     parmCount = *smbp->wctp;
+ 
+     if (parm >= parmCount) {
+ 	char s[100];
+ 
+ 	sprintf(s, "Bad SMB param %d out of %d, ncb len %d",
+                 parm, parmCount, smbp->ncb_length);
+ 	osi_Log3(smb_logp,"Bad SMB param %d out of %d, ncb len %d",
+                  parm, parmCount, smbp->ncb_length);
+ 	LogEvent(EVENTLOG_ERROR_TYPE, MSG_BAD_SMB_PARAM, 
+ 		 __FILE__, __LINE__, parm, parmCount, smbp->ncb_length);
+         osi_panic(s, __FILE__, __LINE__);
+     }
+     parmDatap = smbp->wctp + (2*parm) + 1;
+         
+     return parmDatap[0];
+ }
+ 
+ /* return the parm'th parameter in the smbp packet */
  unsigned int smb_GetSMBParmLong(smb_packet_t *smbp, int parm)
  {
      int parmCount;
***************
*** 8280,8285 ****
--- 8313,8320 ----
          code = Netbios(ncbp, dos_ncb);
  #endif
  	if (code == NRC_BRIDGE) {
+ 	    int lanaRemaining = 0;
+ 
              if (smb_ListenerState == SMB_LISTENER_STOPPED || smbShutdownFlag == 1) {
  #ifndef DJGPP
                  ExitThread(1);
***************
*** 8294,8306 ****
  
  	    for (i = 0; i < lana_list.length; i++) {
  		if (lana_list.lana[i] == ncbp->ncb_lana_num) {
  		    lana_list.lana[i] = 255;
- 		    break;
  		}
  	    }
  	    return;
! 	} else if (code != 0)
!         {
  #ifndef DJGPP
              char tbuffer[256];
  #endif
--- 8329,8349 ----
  
  	    for (i = 0; i < lana_list.length; i++) {
  		if (lana_list.lana[i] == ncbp->ncb_lana_num) {
+ 		    smb_StopListener(ncbp, lana_list.lana[i]);
  		    lana_list.lana[i] = 255;
  		}
+ 		if (lana_list.lana[i] != 255)
+ 		    lanaRemaining++;
+ 	    }
+ 
+ 	    if (lanaRemaining == 0) {
+ 		smb_ListenerState = SMB_LISTENER_STOPPED;
+ 		smb_LANadapter = -1;
+ 		lana_list.length = 0;
  	    }
+ 	    FreeNCB(ncbp);
  	    return;
! 	} else if (code != 0) {
  #ifndef DJGPP
              char tbuffer[256];
  #endif
***************
*** 8535,8541 ****
  }
  
  /* initialize Netbios */
! void smb_NetbiosInit()
  {
      NCB *ncbp;
  #ifdef DJGPP
--- 8578,8584 ----
  }
  
  /* initialize Netbios */
! int smb_NetbiosInit(void)
  {
      NCB *ncbp;
  #ifdef DJGPP
***************
*** 8677,8683 ****
              else {
                  afsi_log("Netbios NCBADDNAME lana %d error code %d", lana, code);
                  lana_list.lana[l] = 255;  /* invalid lana */
-                 osi_panic(s, __FILE__, __LINE__);
              }
          }
          if (code == 0) {
--- 8720,8725 ----
***************
*** 8690,8700 ****
  
      osi_assert(lana_list.length >= 0);
      if (!lana_found) {
!         osi_panic("No valid LANA numbers found!", __FILE__, __LINE__);
      }
          
      /* we're done with the NCB now */
      FreeNCB(ncbp);
  }
  
  void smb_StartListeners()
--- 8732,8747 ----
  
      osi_assert(lana_list.length >= 0);
      if (!lana_found) {
!         afsi_log("No valid LANA numbers found!");
! 	lana_list.length = 0;
! 	smb_LANadapter = -1;
! 	smb_ListenerState = SMB_LISTENER_STOPPED;
      }
          
      /* we're done with the NCB now */
      FreeNCB(ncbp);
+ 
+     return (lana_list.length > 0 ? 1 : 0);
  }
  
  void smb_StartListeners()
***************
*** 8720,8739 ****
  
  void smb_RestartListeners()
  {
!     if (smb_ListenerState == SMB_LISTENER_STARTED)
! 	return;
  
!     smb_NetbiosInit();
!     smb_StartListeners();
  }
  
! void smb_StopListeners()
  {
      NCB *ncbp;
! #ifdef DJGPP
!     dos_ptr dos_ncb;
! #endif /* DJGPP */
!     int lana, code, l;
  
      if (smb_ListenerState == SMB_LISTENER_STOPPED)
  	return;
--- 8767,8810 ----
  
  void smb_RestartListeners()
  {
!     if (!powerStateSuspended && smb_ListenerState == SMB_LISTENER_STOPPED) {
! 	if (smb_NetbiosInit())
! 	    smb_StartListeners();
!     }
! }
  
! void smb_StopListener(NCB *ncbp, int lana)
! {
!     long code;
! 
!     memset(ncbp, 0, sizeof(*ncbp));
!     ncbp->ncb_command = NCBDELNAME;
!     ncbp->ncb_lana_num = lana;
!     memcpy(ncbp->ncb_name,smb_sharename,NCBNAMSZ);
!     code = Netbios(ncbp);
!           
!     afsi_log("Netbios NCBDELNAME lana=%d code=%d retcode=%d complete=%d",
! 	      lana, code, ncbp->ncb_retcode, ncbp->ncb_cmd_cplt);
! 
!     /* and then reset the LANA; this will cause the listener threads to exit */
!     ncbp->ncb_command = NCBRESET;
!     ncbp->ncb_callname[0] = 100;
!     ncbp->ncb_callname[2] = 100;
!     ncbp->ncb_lana_num = lana;
!     code = Netbios(ncbp);
!     if (code == 0) 
! 	code = ncbp->ncb_retcode;
!     if (code != 0) {
! 	afsi_log("Netbios NCBRESET lana %d error code %d", lana, code);
!     } else {
! 	afsi_log("Netbios NCBRESET lana %d succeeded", lana);
!     }
  }
  
! void smb_StopListeners(void)
  {
      NCB *ncbp;
!     int lana, l;
  
      if (smb_ListenerState == SMB_LISTENER_STOPPED)
  	return;
***************
*** 8746,8783 ****
      for (l = 0; l < lana_list.length; l++) {
          lana = lana_list.lana[l];
  
! 	memset(ncbp, 0, sizeof(*ncbp));
!         ncbp->ncb_command = NCBDELNAME;
!         ncbp->ncb_lana_num = lana;
!         memcpy(ncbp->ncb_name,smb_sharename,NCBNAMSZ);
! #ifndef DJGPP
!         code = Netbios(ncbp);
! #else /* DJGPP */
!         code = Netbios(ncbp, dos_ncb);
! #endif /* !DJGPP */
!           
!         afsi_log("Netbios NCBDELNAME lana=%d code=%d retcode=%d complete=%d",
!                  lana, code, ncbp->ncb_retcode, ncbp->ncb_cmd_cplt);
  
! 	/* and then reset the LANA; this will cause the listener threads to exit */
!         ncbp->ncb_command = NCBRESET;
!         ncbp->ncb_callname[0] = 100;
!         ncbp->ncb_callname[2] = 100;
!         ncbp->ncb_lana_num = lana_list.lana[l];
!         code = Netbios(ncbp);
!         if (code == 0) 
!             code = ncbp->ncb_retcode;
!         if (code != 0) {
!             afsi_log("Netbios NCBRESET lana %d error code %d", lana_list.lana[l], code);
!         } else {
!             afsi_log("Netbios NCBRESET lana %d succeeded", lana_list.lana[l]);
!         }
! 
! 	/* mark the adapter invalid */
! 	lana_list.lana[l] = 255;  /* invalid lana */
      }
  
      lana_list.length = 0;
      FreeNCB(ncbp);
      Sleep(1000);	/* give the listener threads a chance to exit */
  }
--- 8817,8833 ----
      for (l = 0; l < lana_list.length; l++) {
          lana = lana_list.lana[l];
  
! 	if (lana != 255) {
! 	    smb_StopListener(ncbp, lana);
  
! 	    /* mark the adapter invalid */
! 	    lana_list.lana[l] = 255;  /* invalid lana */
! 	}
      }
  
+     /* force a re-evaluation of the network adapters */
      lana_list.length = 0;
+     smb_LANadapter = -1;
      FreeNCB(ncbp);
      Sleep(1000);	/* give the listener threads a chance to exit */
  }
Index: openafs/src/WINNT/afsd/smb.h
diff -c openafs/src/WINNT/afsd/smb.h:1.41.2.10 openafs/src/WINNT/afsd/smb.h:1.41.2.11
*** openafs/src/WINNT/afsd/smb.h:1.41.2.10	Tue Nov 28 04:17:14 2006
--- openafs/src/WINNT/afsd/smb.h	Mon Dec 11 23:01:26 2006
***************
*** 609,615 ****
  
  extern void smb_SetSMBDataLength(smb_packet_t *smbp, unsigned int dsize);
  
! extern unsigned int smb_GetSMBParm(smb_packet_t *smbp, int parm);
  
  extern unsigned int smb_GetSMBParmLong(smb_packet_t *smbp, int parm);
  
--- 609,617 ----
  
  extern void smb_SetSMBDataLength(smb_packet_t *smbp, unsigned int dsize);
  
! extern unsigned short smb_GetSMBParm(smb_packet_t *smbp, int parm);
! 
! extern unsigned char smb_GetSMBParmByte(smb_packet_t *smbp, int parm);
  
  extern unsigned int smb_GetSMBParmLong(smb_packet_t *smbp, int parm);
  
***************
*** 748,754 ****
--- 750,758 ----
  extern void smb_ResetServerPriority(void);
  extern void smb_RestartListeners(void);
  extern void smb_StopListeners(void);
+ extern void smb_StopListener(NCB *ncbp, int lana);
  
+ #define SMB_LISTENER_UNINITIALIZED -1
  #define SMB_LISTENER_STOPPED 0
  #define SMB_LISTENER_STARTED 1
  
Index: openafs/src/WINNT/afsd/smb3.c
diff -c openafs/src/WINNT/afsd/smb3.c:1.95.2.23 openafs/src/WINNT/afsd/smb3.c:1.95.2.26
*** openafs/src/WINNT/afsd/smb3.c:1.95.2.23	Sun Oct 22 08:25:39 2006
--- openafs/src/WINNT/afsd/smb3.c	Tue Dec 26 15:18:30 2006
***************
*** 1502,1507 ****
--- 1502,1508 ----
      char * cstrp;
      char thisShare[256];
      int i,j;
+     DWORD dw;
      int nonrootShares;
      smb_rap_share_list_t rootShares;
      cm_req_t req;
***************
*** 1590,1598 ****
      }
  
      if (hkSubmount) {
!         for (i=0; i < nRegShares && cshare < nSharesRet; i++) {
              len = sizeof(thisShare);
!             rv = RegEnumValue(hkSubmount, i, thisShare, &len, NULL, NULL, NULL, NULL);
              if (rv == ERROR_SUCCESS && strlen(thisShare) && (!allSubmount || stricmp(thisShare,"all"))) {
                  strncpy(shares[cshare].shi1_netname, thisShare, sizeof(shares->shi1_netname)-1);
                  shares[cshare].shi1_netname[sizeof(shares->shi1_netname)-1] = 0; /* unfortunate truncation */
--- 1591,1599 ----
      }
  
      if (hkSubmount) {
!         for (dw=0; dw < nRegShares && cshare < nSharesRet; dw++) {
              len = sizeof(thisShare);
!             rv = RegEnumValue(hkSubmount, dw, thisShare, &len, NULL, NULL, NULL, NULL);
              if (rv == ERROR_SUCCESS && strlen(thisShare) && (!allSubmount || stricmp(thisShare,"all"))) {
                  strncpy(shares[cshare].shi1_netname, thisShare, sizeof(shares->shi1_netname)-1);
                  shares[cshare].shi1_netname[sizeof(shares->shi1_netname)-1] = 0; /* unfortunate truncation */
***************
*** 2426,2443 ****
      return 0;
  }   
  
- long smb_ReceiveTran2FindFirst(smb_vc_t *vcp, smb_tran2Packet_t *p, smb_packet_t *outp)
- {
-     osi_Log0(smb_logp,"ReceiveTran2FindFirst - NOT_SUPPORTED");
-     return CM_ERROR_BADOP;
- }
- 
- long smb_ReceiveTran2FindNext(smb_vc_t *vcp, smb_tran2Packet_t *p, smb_packet_t *outp)
- {
-     osi_Log0(smb_logp,"ReceiveTran2FindNext - NOT_SUPPORTED");
-     return CM_ERROR_BADOP;
- }
- 
  long smb_ReceiveTran2QFSInfoFid(smb_vc_t *vcp, smb_tran2Packet_t *p, smb_packet_t *op)
  {
      unsigned short fid;
--- 2427,2432 ----
***************
*** 4140,4145 ****
--- 4129,4551 ----
  }
  #endif /* USE_OLD_MATCHING */
  
+ /* smb_ReceiveTran2SearchDir implements both 
+  * Tran2_Find_First and Tran2_Find_Next
+  */
+ #define TRAN2_FIND_FLAG_CLOSE_SEARCH		0x01
+ #define TRAN2_FIND_FLAG_CLOSE_SEARCH_IF_END	0x02
+ #define TRAN2_FIND_FLAG_RETURN_RESUME_KEYS	0x04
+ #define TRAN2_FIND_FLAG_CONTINUE_SEARCH		0x08
+ #define TRAN2_FIND_FLAG_BACKUP_INTENT		0x10
+ 
+ /* this is an optimized handler for T2SearchDir that handles the case
+    where there are no wildcards in the search path.  I.e. an
+    application is using FindFirst(Ex) to get information about a
+    single file or directory.  It will attempt to do a single lookup.
+    If that fails, then smb_ReceiveTran2SearchDir() will fall back to
+    the usual mechanism. 
+    
+    This function will return either CM_ERROR_NOSUCHFILE or SUCCESS.
+    */
+ long smb_T2SearchDirSingle(smb_vc_t *vcp, smb_tran2Packet_t *p, smb_packet_t *opx)
+ {
+     int attribute;
+     long nextCookie;
+     long code = 0, code2 = 0;
+     char *pathp;
+     int maxCount;
+     smb_dirListPatch_t *dirListPatchesp;
+     smb_dirListPatch_t *curPatchp;
+     long orbytes;			/* # of bytes in this output record */
+     long ohbytes;			/* # of bytes, except file name */
+     long onbytes;			/* # of bytes in name, incl. term. null */
+     cm_scache_t *scp = NULL;
+     cm_scache_t *targetscp = NULL;
+     cm_user_t *userp = NULL;
+     char *op;				/* output data ptr */
+     char *origOp;			/* original value of op */
+     cm_space_t *spacep;			/* for pathname buffer */
+     long maxReturnData;			/* max # of return data */
+     long maxReturnParms;		/* max # of return parms */
+     long bytesInBuffer;			/* # data bytes in the output buffer */
+     char *maskp;			/* mask part of path */
+     int infoLevel;
+     int searchFlags;
+     int eos;
+     smb_tran2Packet_t *outp;		/* response packet */
+     char *tidPathp;
+     int align;
+     char shortName[13];			/* 8.3 name if needed */
+     int NeedShortName;
+     char *shortNameEnd;
+     cm_req_t req;
+     char * s;
+ 
+     cm_InitReq(&req);
+ 
+     eos = 0;
+     osi_assert(p->opcode == 1);
+ 
+     /* find first; obtain basic parameters from request */
+ 
+     /* note that since we are going to failover to regular
+      * processing at smb_ReceiveTran2SearchDir(), we shouldn't
+      * modify any of the input parameters here. */
+     attribute = p->parmsp[0];
+     maxCount = p->parmsp[1];
+     infoLevel = p->parmsp[3];
+     searchFlags = p->parmsp[2];
+     pathp = ((char *) p->parmsp) + 12;	/* points to path */
+     nextCookie = 0;
+     maskp = strrchr(pathp, '\\');
+     if (maskp == NULL) 
+ 	maskp = pathp;
+     else 
+ 	maskp++;	/* skip over backslash */
+     /* track if this is likely to match a lot of entries */
+ 
+     osi_Log2(smb_logp, "smb_T2SearchDirSingle : path[%s], mask[%s]",
+             osi_LogSaveString(smb_logp, pathp),
+             osi_LogSaveString(smb_logp, maskp));
+ 
+     switch ( infoLevel ) {
+     case SMB_INFO_STANDARD:
+ 	s = "InfoStandard";
+     	break;
+     case SMB_INFO_QUERY_EA_SIZE:
+ 	s = "InfoQueryEaSize";
+     	break;
+     case SMB_INFO_QUERY_EAS_FROM_LIST:
+ 	s = "InfoQueryEasFromList";
+     	break;
+     case SMB_FIND_FILE_DIRECTORY_INFO:
+ 	s = "FindFileDirectoryInfo";
+     	break;
+     case SMB_FIND_FILE_FULL_DIRECTORY_INFO:
+ 	s = "FindFileFullDirectoryInfo";
+     	break;
+     case SMB_FIND_FILE_NAMES_INFO:
+ 	s = "FindFileNamesInfo";
+     	break;
+     case SMB_FIND_FILE_BOTH_DIRECTORY_INFO:
+ 	s = "FindFileBothDirectoryInfo";
+     	break;
+     default:
+ 	s = "unknownInfoLevel";
+     }
+ 
+     osi_Log1(smb_logp, "smb_T2SearchDirSingle info level: %s", s);
+ 
+     osi_Log4(smb_logp,
+              "smb_T2SearchDirSingle attr 0x%x, info level 0x%x, max count %d, flags 0x%x",
+              attribute, infoLevel, maxCount, searchFlags);
+     
+     if (infoLevel > SMB_FIND_FILE_BOTH_DIRECTORY_INFO) {
+         osi_Log1(smb_logp, "Unsupported InfoLevel 0x%x", infoLevel);
+         return CM_ERROR_INVAL;
+     }
+ 
+     if (infoLevel >= SMB_FIND_FILE_DIRECTORY_INFO)
+         searchFlags &= ~TRAN2_FIND_FLAG_RETURN_RESUME_KEYS;	/* no resume keys */
+ 
+     dirListPatchesp = NULL;
+ 
+     maxReturnData = p->maxReturnData;
+     maxReturnParms = 10;	/* return params for findfirst, which
+                                    is the only one we handle.*/
+ 
+ #ifndef CM_CONFIG_MULTITRAN2RESPONSES
+     if (maxReturnData > 6000) 
+         maxReturnData = 6000;
+ #endif /* CM_CONFIG_MULTITRAN2RESPONSES */
+ 
+     outp = smb_GetTran2ResponsePacket(vcp, p, opx, maxReturnParms,
+                                       maxReturnData);
+ 
+     osi_Log2(smb_logp, "T2SDSingle search dir count %d [%s]",
+              maxCount, osi_LogSaveString(smb_logp, pathp));
+         
+     /* bail out if request looks bad */
+     if (!pathp) {
+         smb_FreeTran2Packet(outp);
+         return CM_ERROR_BADSMB;
+     }
+         
+     userp = smb_GetTran2User(vcp, p);
+     if (!userp) {
+     	osi_Log1(smb_logp, "T2 search dir unable to resolve user [%d]", p->uid);
+     	smb_FreeTran2Packet(outp);
+     	return CM_ERROR_BADSMB;
+     }
+ 
+     /* try to get the vnode for the path name next */
+     spacep = cm_GetSpace();
+     smb_StripLastComponent(spacep->data, NULL, pathp);
+     code = smb_LookupTIDPath(vcp, p->tid, &tidPathp);
+     if (code) {
+         cm_ReleaseUser(userp);
+         smb_SendTran2Error(vcp, p, opx, CM_ERROR_NOFILES);
+         smb_FreeTran2Packet(outp);
+         return 0;
+     }
+ 
+     code = cm_NameI(cm_data.rootSCachep, spacep->data,
+                     CM_FLAG_FOLLOW | CM_FLAG_CASEFOLD,
+                     userp, tidPathp, &req, &scp);
+     cm_FreeSpace(spacep);
+ 
+     if (code) {
+         cm_ReleaseUser(userp);
+ 	smb_SendTran2Error(vcp, p, opx, code);
+         smb_FreeTran2Packet(outp);
+         return 0;
+     }
+ 
+ #ifdef DFS_SUPPORT_BUT_NOT_FIND_FIRST
+     if (scp->fileType == CM_SCACHETYPE_DFSLINK) {
+ 	cm_ReleaseSCache(scp);
+ 	cm_ReleaseUser(userp);
+ 	if ( WANTS_DFS_PATHNAMES(p) )
+ 	    code = CM_ERROR_PATH_NOT_COVERED;
+ 	else
+ 	    code = CM_ERROR_BADSHARENAME;
+ 	smb_SendTran2Error(vcp, p, opx, code);
+ 	smb_FreeTran2Packet(outp);
+ 	return 0;
+     }
+ #endif /* DFS_SUPPORT */
+     osi_Log1(afsd_logp,"smb_ReceiveTran2SearchDir scp 0x%p", scp);
+     lock_ObtainMutex(&scp->mx);
+     if ((scp->flags & CM_SCACHEFLAG_BULKSTATTING) == 0 &&
+ 	 LargeIntegerGreaterOrEqualToZero(scp->bulkStatProgress)) {
+ 	scp->flags |= CM_SCACHEFLAG_BULKSTATTING;
+     }
+     lock_ReleaseMutex(&scp->mx);
+ 
+     /* now do a single case sensitive lookup for the file in question */
+     code = cm_Lookup(scp, maskp, 0, userp, &req, &targetscp);
+ 
+     /* if a case sensitive match failed, we try a case insensitive one
+        next. */
+     if (code == CM_ERROR_NOSUCHFILE) {
+         code = cm_Lookup(scp, maskp, CM_FLAG_CASEFOLD, userp, &req, &targetscp);
+     }
+ 
+     if (code == 0 && targetscp->fid.vnode == 0) {
+         cm_ReleaseSCache(targetscp);
+         code = CM_ERROR_NOSUCHFILE;
+     }
+ 
+     if (code) {
+         /* if we can't find the directory entry, this block will
+            return CM_ERROR_NOSUCHFILE, which we will pass on to
+            smb_ReceiveTran2SearchDir(). */
+         cm_ReleaseSCache(scp);
+         cm_ReleaseUser(userp);
+ 	if (code != CM_ERROR_NOSUCHFILE) {
+ 	    smb_SendTran2Error(vcp, p, opx, code);
+ 	    code = 0;
+ 	}
+ 	smb_FreeTran2Packet(outp);
+         return code;
+     }
+ 
+     /* now that we have the target in sight, we proceed with filling
+        up the return data. */
+ 
+     op = origOp = outp->datap;
+     bytesInBuffer = 0;
+ 
+     if (searchFlags & TRAN2_FIND_FLAG_RETURN_RESUME_KEYS) {
+         /* skip over resume key */
+         op += 4;
+     }
+ 
+     if (infoLevel == SMB_FIND_FILE_BOTH_DIRECTORY_INFO
+         && targetscp->fid.vnode != 0
+         && !cm_Is8Dot3(maskp)) {
+ 
+         cm_dirFid_t dfid;
+         dfid.vnode = htonl(targetscp->fid.vnode);
+         dfid.unique = htonl(targetscp->fid.unique);
+ 
+         cm_Gen8Dot3NameInt(maskp, &dfid, shortName, &shortNameEnd);
+         NeedShortName = 1;
+     } else {
+         NeedShortName = 0;
+     }
+ 
+     /* Eliminate entries that don't match requested attributes */
+     if (smb_hideDotFiles && !(attribute & SMB_ATTR_HIDDEN) &&
+         smb_IsDotFile(maskp)) {
+ 
+         code = CM_ERROR_NOSUCHFILE;
+         osi_Log0(smb_logp, "T2SDSingle skipping hidden file");
+         goto skip_file;
+ 
+     }
+ 
+     if (!(attribute & SMB_ATTR_DIRECTORY) &&
+         (targetscp->fileType == CM_SCACHETYPE_DIRECTORY ||
+          targetscp->fileType == CM_SCACHETYPE_DFSLINK ||
+          targetscp->fileType == CM_SCACHETYPE_INVALID)) {
+ 
+         code = CM_ERROR_NOSUCHFILE;
+         osi_Log0(smb_logp, "T2SDSingle skipping directory or bad link");
+         goto skip_file;
+ 
+     }
+ 
+     /* Check if the name will fit */
+     if (infoLevel < 0x101)
+         ohbytes = 23;           /* pre-NT */
+     else if (infoLevel == SMB_FIND_FILE_NAMES_INFO)
+         ohbytes = 12;           /* NT names only */
+     else
+         ohbytes = 64;           /* NT */
+ 
+     if (infoLevel == SMB_FIND_FILE_BOTH_DIRECTORY_INFO)
+         ohbytes += 26;          /* Short name & length */
+ 
+     if (searchFlags & TRAN2_FIND_FLAG_RETURN_RESUME_KEYS) {
+         ohbytes += 4;           /* if resume key required */
+     }
+ 
+     if (infoLevel != SMB_INFO_STANDARD
+         && infoLevel != SMB_FIND_FILE_DIRECTORY_INFO
+         && infoLevel != SMB_FIND_FILE_NAMES_INFO)
+         ohbytes += 4;           /* EASIZE */
+ 
+     /* add header to name & term. null */
+     onbytes = strlen(maskp);
+     orbytes = ohbytes + onbytes + 1;
+ 
+     /* now, we round up the record to a 4 byte alignment, and we make
+      * sure that we have enough room here for even the aligned version
+      * (so we don't have to worry about an * overflow when we pad
+      * things out below).  That's the reason for the alignment
+      * arithmetic below.
+      */
+     if (infoLevel >= SMB_FIND_FILE_DIRECTORY_INFO)
+         align = (4 - (orbytes & 3)) & 3;
+     else
+         align = 0;
+ 
+     if (orbytes + align > maxReturnData) {
+ 
+         /* even though this request is unlikely to succeed with a
+            failover, we do it anyway. */
+         code = CM_ERROR_NOSUCHFILE;
+         osi_Log1(smb_logp, "T2 dir search exceed max return data %d",
+                  maxReturnData);
+         goto skip_file;
+     }
+ 
+     /* this is one of the entries to use: it is not deleted and it
+      * matches the star pattern we're looking for.  Put out the name,
+      * preceded by its length.
+      */
+     /* First zero everything else */
+     memset(origOp, 0, ohbytes);
+ 
+     if (infoLevel <= SMB_FIND_FILE_DIRECTORY_INFO)
+         *(origOp + ohbytes - 1) = (unsigned char) onbytes;
+     else if (infoLevel == SMB_FIND_FILE_NAMES_INFO)
+         *((u_long *)(op + 8)) = onbytes;
+     else
+         *((u_long *)(op + 60)) = onbytes;
+     strcpy(origOp+ohbytes, maskp);
+     if (smb_StoreAnsiFilenames)
+         CharToOem(origOp+ohbytes, origOp+ohbytes);
+ 
+     /* Short name if requested and needed */
+     if (infoLevel == SMB_FIND_FILE_BOTH_DIRECTORY_INFO) {
+         if (NeedShortName) {
+             strcpy(op + 70, shortName);
+             if (smb_StoreAnsiFilenames)
+                 CharToOem(op + 70, op + 70);
+             *(op + 68) = (char)(shortNameEnd - shortName);
+         }
+     }
+ 
+     /* NextEntryOffset and FileIndex */
+     if (infoLevel >= SMB_FIND_FILE_DIRECTORY_INFO) {
+         int entryOffset = orbytes + align;
+         *((u_long *)op) = 0;
+         *((u_long *)(op+4)) = 0;
+     }
+ 
+     if (infoLevel != SMB_FIND_FILE_NAMES_INFO) {
+         curPatchp = malloc(sizeof(*curPatchp));
+         osi_QAdd((osi_queue_t **) &dirListPatchesp,
+                  &curPatchp->q);
+         curPatchp->dptr = op;
+         if (infoLevel >= SMB_FIND_FILE_DIRECTORY_INFO)
+             curPatchp->dptr += 8;
+ 
+         if (smb_hideDotFiles && smb_IsDotFile(maskp)) {
+             curPatchp->flags = SMB_DIRLISTPATCH_DOTFILE;
+         } else {
+             curPatchp->flags = 0;
+         }
+ 
+         curPatchp->fid.cell = targetscp->fid.cell;
+         curPatchp->fid.volume = targetscp->fid.volume;
+         curPatchp->fid.vnode = targetscp->fid.vnode;
+         curPatchp->fid.unique = targetscp->fid.unique;
+ 
+         /* temp */
+         curPatchp->dep = NULL;
+     }   
+ 
+     if (searchFlags & TRAN2_FIND_FLAG_RETURN_RESUME_KEYS) {
+         /* put out resume key */
+         *((u_long *)origOp) = 0;
+     }
+ 
+     /* Adjust byte ptr and count */
+     origOp += orbytes;	/* skip entire record */
+     bytesInBuffer += orbytes;
+ 
+     /* and pad the record out */
+     while (--align >= 0) {
+         *origOp++ = 0;
+         bytesInBuffer++;
+     }
+ 
+     /* apply the patches */
+     code2 = smb_ApplyV3DirListPatches(scp, &dirListPatchesp, infoLevel, userp, &req);
+ 
+     outp->parmsp[0] = 0;
+     outp->parmsp[1] = 1;        /* number of names returned */
+     outp->parmsp[2] = 1;        /* end of search */
+     outp->parmsp[3] = 0;        /* nothing wrong with EAS */
+     outp->parmsp[4] = 0;
+ 
+     outp->totalParms = 10;      /* in bytes */
+ 
+     outp->totalData = bytesInBuffer;
+ 
+     osi_Log0(smb_logp, "T2SDSingle done.");
+ 
+     if (code != CM_ERROR_NOSUCHFILE) {
+ 	if (code)
+ 	    smb_SendTran2Error(vcp, p, opx, code);
+ 	else
+ 	    smb_SendTran2Packet(vcp, outp, opx);
+ 	code = 0;
+     }
+ 
+  skip_file:
+     smb_FreeTran2Packet(outp);
+     cm_ReleaseSCache(scp);
+     cm_ReleaseSCache(targetscp);
+     cm_ReleaseUser(userp);
+ 
+     return code;
+ }
+ 
+ 
  long smb_ReceiveTran2SearchDir(smb_vc_t *vcp, smb_tran2Packet_t *p, smb_packet_t *opx)
  {
      int attribute;
***************
*** 4202,4209 ****
          maxCount = p->parmsp[1];
          infoLevel = p->parmsp[3];
          searchFlags = p->parmsp[2];
-         dsp = smb_NewDirSearch(1);
-         dsp->attribute = attribute;
          pathp = ((char *) p->parmsp) + 12;	/* points to path */
          if (smb_StoreAnsiFilenames)
              OemToChar(pathp,pathp);
--- 4608,4613 ----
***************
*** 4213,4221 ****
              maskp = pathp;
          else 
              maskp++;	/* skip over backslash */
!         strcpy(dsp->mask, maskp);	/* and save mask */
          /* track if this is likely to match a lot of entries */
          starPattern = smb_V3IsStarMask(maskp);
      }
      else {
          osi_assert(p->opcode == 2);
--- 4617,4643 ----
              maskp = pathp;
          else 
              maskp++;	/* skip over backslash */
! 
          /* track if this is likely to match a lot of entries */
          starPattern = smb_V3IsStarMask(maskp);
+ 
+ #ifndef NOFINDFIRSTOPTIMIZE
+         if (!starPattern) {
+             /* if this is for a single directory or file, we let the
+                optimized routine handle it.  The only error it 
+ 	       returns is CM_ERROR_NOSUCHFILE.  The  */
+             code = smb_T2SearchDirSingle(vcp, p, opx);
+ 
+             /* we only failover if we see a CM_ERROR_NOSUCHFILE */
+             if (code != CM_ERROR_NOSUCHFILE) {
+                 return code;
+             }
+         }
+ #endif
+ 
+         dsp = smb_NewDirSearch(1);
+         dsp->attribute = attribute;
+         strcpy(dsp->mask, maskp);	/* and save mask */
      }
      else {
          osi_assert(p->opcode == 2);
***************
*** 4278,4284 ****
      }
  
      if (infoLevel >= SMB_FIND_FILE_DIRECTORY_INFO)
!         searchFlags &= ~4;	/* no resume keys */
  
      dirListPatchesp = NULL;
  
--- 4700,4706 ----
      }
  
      if (infoLevel >= SMB_FIND_FILE_DIRECTORY_INFO)
!         searchFlags &= ~TRAN2_FIND_FLAG_RETURN_RESUME_KEYS;	/* no resume keys */
  
      dirListPatchesp = NULL;
  
***************
*** 4416,4422 ****
      bytesInBuffer = 0;
      while (1) {
          op = origOp;
!         if (searchFlags & 4)
              /* skip over resume key */
              op += 4;
  
--- 4838,4844 ----
      bytesInBuffer = 0;
      while (1) {
          op = origOp;
!         if (searchFlags & TRAN2_FIND_FLAG_RETURN_RESUME_KEYS)
              /* skip over resume key */
              op += 4;
  
***************
*** 4490,4496 ****
                  if ((dsp->flags & SMB_DIRSEARCH_BULKST) &&
                      LargeIntegerGreaterThanOrEqualTo(thyper, scp->bulkStatProgress)) {
                      /* Don't bulk stat if risking timeout */
!                     int now = GetTickCount();
                      if (now - req.startTime > RDRtimeout) {
                          scp->bulkStatProgress = thyper;
                          scp->flags &= ~CM_SCACHEFLAG_BULKSTATTING;
--- 4912,4918 ----
                  if ((dsp->flags & SMB_DIRSEARCH_BULKST) &&
                      LargeIntegerGreaterThanOrEqualTo(thyper, scp->bulkStatProgress)) {
                      /* Don't bulk stat if risking timeout */
!                     DWORD now = GetTickCount();
                      if (now - req.startTime > RDRtimeout) {
                          scp->bulkStatProgress = thyper;
                          scp->flags &= ~CM_SCACHEFLAG_BULKSTATTING;
***************
*** 4644,4650 ****
              if (infoLevel == SMB_FIND_FILE_BOTH_DIRECTORY_INFO)
                  ohbytes += 26;	/* Short name & length */
  
!             if (searchFlags & 4) {
                  ohbytes += 4;	/* if resume key required */
              }   
  
--- 5066,5072 ----
              if (infoLevel == SMB_FIND_FILE_BOTH_DIRECTORY_INFO)
                  ohbytes += 26;	/* Short name & length */
  
!             if (searchFlags & TRAN2_FIND_FLAG_RETURN_RESUME_KEYS) {
                  ohbytes += 4;	/* if resume key required */
              }   
  
***************
*** 4745,4751 ****
                  curPatchp->dep = dep;
              }   
  
!             if (searchFlags & 4)
                  /* put out resume key */
                  *((u_long *)origOp) = nextEntryCookie;
  
--- 5167,5173 ----
                  curPatchp->dep = dep;
              }   
  
!             if (searchFlags & TRAN2_FIND_FLAG_RETURN_RESUME_KEYS)
                  /* put out resume key */
                  *((u_long *)origOp) = nextEntryCookie;
  
***************
*** 4838,4847 ****
       * we're supposed to close the search if we're done, and we're done,
       * or if something went wrong, close the search.
       */
!     /* ((searchFlags & 1) || ((searchFlags & 2) && eos) */
!     if ((searchFlags & 1) || (returnedNames == 0) || 
!          ((searchFlags & 2) && eos) || code != 0)
          smb_DeleteDirSearch(dsp);
      if (code)
          smb_SendTran2Error(vcp, p, opx, code);
      else
--- 5260,5271 ----
       * we're supposed to close the search if we're done, and we're done,
       * or if something went wrong, close the search.
       */
!     if ((searchFlags & TRAN2_FIND_FLAG_CLOSE_SEARCH) || 
! 	(returnedNames == 0) ||
!         ((searchFlags & TRAN2_FIND_FLAG_CLOSE_SEARCH_IF_END) && eos) || 
! 	code != 0)
          smb_DeleteDirSearch(dsp);
+ 
      if (code)
          smb_SendTran2Error(vcp, p, opx, code);
      else
***************
*** 5934,5939 ****
--- 6358,6364 ----
      BOOL foundscp;
      cm_req_t req;
      int created = 0;
+     cm_lock_data_t *ldp = NULL;									       
  
      cm_InitReq(&req);
  
***************
*** 6303,6309 ****
       * scp is NULL.
       */
      if (code == 0 && !treeCreate) {
!         code = cm_CheckNTOpen(scp, desiredAccess, createDisp, userp, &req);
          if (code) {
              if (dscp)
                  cm_ReleaseSCache(dscp);
--- 6728,6734 ----
       * scp is NULL.
       */
      if (code == 0 && !treeCreate) {
!         code = cm_CheckNTOpen(scp, desiredAccess, createDisp, userp, &req, &ldp);
          if (code) {
              if (dscp)
                  cm_ReleaseSCache(dscp);
***************
*** 6316,6321 ****
--- 6741,6747 ----
  
  	if (createDisp == FILE_CREATE) {
              /* oops, file shouldn't be there */
+ 	    cm_CheckNTOpenDone(scp, userp, &req, &ldp);
              if (dscp)
                  cm_ReleaseSCache(dscp);
              if (scp)
***************
*** 6344,6352 ****
                       */
                      osi_Log2(smb_logp, "symlink vp %x to vp %x",
                                scp, targetScp);
                      cm_ReleaseSCache(scp);
                      scp = targetScp;
!                 }
              }
              code = cm_SetAttr(scp, &setAttr, userp, &req);
              openAction = 3;	/* truncated existing file */
--- 6770,6789 ----
                       */
                      osi_Log2(smb_logp, "symlink vp %x to vp %x",
                                scp, targetScp);
+ 		    cm_CheckNTOpenDone(scp, userp, &req, &ldp);
                      cm_ReleaseSCache(scp);
                      scp = targetScp;
! 		    code = cm_CheckNTOpen(scp, desiredAccess, createDisp, userp, &req, &ldp);
! 		    if (code) {
! 			if (dscp)
! 			    cm_ReleaseSCache(dscp);
! 			if (scp)
! 			    cm_ReleaseSCache(scp);
! 			cm_ReleaseUser(userp);
! 			free(realPathp);
! 			return code;
! 		    }
! 		}
              }
              code = cm_SetAttr(scp, &setAttr, userp, &req);
              openAction = 3;	/* truncated existing file */
***************
*** 6501,6506 ****
--- 6938,6945 ----
  
      if (code) {
          /* something went wrong creating or truncating the file */
+ 	if (ldp)
+ 	    cm_CheckNTOpenDone(scp, userp, &req, &ldp);
          if (scp) 
              cm_ReleaseSCache(scp);
          if (dscp) 
***************
*** 6523,6534 ****
--- 6962,6977 ----
                  * we'll just use the symlink anyway.
                  */
                  osi_Log2(smb_logp, "symlink vp %x to vp %x", scp, targetScp);
+ 		if (ldp)
+ 		    cm_CheckNTOpenDone(scp, userp, &req, &ldp);
                  cm_ReleaseSCache(scp);
                  scp = targetScp;
              }
          }
  
          if (scp->fileType != CM_SCACHETYPE_FILE) {
+ 	    if (ldp)
+ 		cm_CheckNTOpenDone(scp, userp, &req, &ldp);
              if (dscp)
                  cm_ReleaseSCache(dscp);
              cm_ReleaseSCache(scp);
***************
*** 6540,6545 ****
--- 6983,6990 ----
  
      /* (only applies to single component case) */
      if (realDirFlag == 1 && scp->fileType == CM_SCACHETYPE_FILE) {
+ 	if (ldp)
+ 	    cm_CheckNTOpenDone(scp, userp, &req, &ldp);
          cm_ReleaseSCache(scp);
          if (dscp)
              cm_ReleaseSCache(dscp);
***************
*** 6582,6599 ****
          lock_ReleaseMutex(&scp->mx);
  
          if (code) {
              cm_ReleaseSCache(scp);
              if (dscp)
                  cm_ReleaseSCache(dscp);
!             cm_ReleaseUser(userp);
!             /* shouldn't this be smb_CloseFID() fidp->flags = SMB_FID_DELETE; */
  	    smb_CloseFID(vcp, fidp, NULL, 0);
!             smb_ReleaseFID(fidp);
              free(realPathp);
              return code;
          }
      }
  
      lock_ObtainMutex(&fidp->mx);
      /* save a pointer to the vnode */
      fidp->scp = scp;    /* Hold transfered to fidp->scp and no longer needed */
--- 7027,7050 ----
          lock_ReleaseMutex(&scp->mx);
  
          if (code) {
+ 	    if (ldp)
+ 		cm_CheckNTOpenDone(scp, userp, &req, &ldp);
              cm_ReleaseSCache(scp);
              if (dscp)
                  cm_ReleaseSCache(dscp);
! 	    cm_ReleaseUser(userp);
! 	    /* Shouldn't this be smb_CloseFID()?  fidp->flags = SMB_FID_DELETE; */
  	    smb_CloseFID(vcp, fidp, NULL, 0);
! 	    smb_ReleaseFID(fidp);
              free(realPathp);
              return code;
          }
      }
  
+     /* Now its safe to release the file server lock obtained by cm_CheckNTOpen() */
+     if (ldp)
+ 	cm_CheckNTOpenDone(scp, userp, &req, &ldp);
+ 
      lock_ObtainMutex(&fidp->mx);
      /* save a pointer to the vnode */
      fidp->scp = scp;    /* Hold transfered to fidp->scp and no longer needed */
***************
*** 6717,6722 ****
--- 7168,7174 ----
      char *outData;
      cm_req_t req;
      int created = 0;
+     cm_lock_data_t *ldp = NULL;
  
      cm_InitReq(&req);
  
***************
*** 6989,6996 ****
       * scp is NULL.
       */
      if (code == 0) {
!         code = cm_CheckNTOpen(scp, desiredAccess, createDisp, userp,
!                                &req);
          if (code) {     
              if (dscp) 
                  cm_ReleaseSCache(dscp);
--- 7441,7447 ----
       * scp is NULL.
       */
      if (code == 0) {
!         code = cm_CheckNTOpen(scp, desiredAccess, createDisp, userp, &req, &ldp);
          if (code) {     
              if (dscp) 
                  cm_ReleaseSCache(dscp);
***************
*** 7002,7007 ****
--- 7453,7459 ----
  
          if (createDisp == FILE_CREATE) {
              /* oops, file shouldn't be there */
+ 	    cm_CheckNTOpenDone(scp, userp, &req, &ldp);
              if (dscp) 
                  cm_ReleaseSCache(dscp);
              cm_ReleaseSCache(scp);
***************
*** 7028,7035 ****
--- 7480,7498 ----
                      */
                      osi_Log2(smb_logp, "symlink vp %x to vp %x",
                                scp, targetScp);
+ 		    cm_CheckNTOpenDone(scp, userp, &req, &ldp);
                      cm_ReleaseSCache(scp);
                      scp = targetScp;
+ 		    code = cm_CheckNTOpen(scp, desiredAccess, createDisp, userp, &req, &ldp);
+ 		    if (code) {
+ 			if (dscp)
+ 			    cm_ReleaseSCache(dscp);
+ 			if (scp)
+ 			    cm_ReleaseSCache(scp);
+ 			cm_ReleaseUser(userp);
+ 			free(realPathp);
+ 			return code;
+ 		    }
                  }
              }
              code = cm_SetAttr(scp, &setAttr, userp, &req);
***************
*** 7124,7130 ****
  
      if (code) {
          /* something went wrong creating or truncating the file */
!         if (scp) 
              cm_ReleaseSCache(scp);
          cm_ReleaseUser(userp);
          free(realPathp);
--- 7587,7595 ----
  
      if (code) {
          /* something went wrong creating or truncating the file */
! 	if (ldp)
! 	    cm_CheckNTOpenDone(scp, userp, &req, &ldp);
! 	if (scp) 
              cm_ReleaseSCache(scp);
          cm_ReleaseUser(userp);
          free(realPathp);
***************
*** 7145,7156 ****
--- 7610,7625 ----
                  */
                  osi_Log2(smb_logp, "symlink vp %x to vp %x",
                            scp, targetScp);
+ 		if (ldp)
+ 		    cm_CheckNTOpenDone(scp, userp, &req, &ldp);
                  cm_ReleaseSCache(scp);
                  scp = targetScp;
              }
          }
  
          if (scp->fileType != CM_SCACHETYPE_FILE) {
+ 	    if (ldp)
+ 		cm_CheckNTOpenDone(scp, userp, &req, &ldp);
              cm_ReleaseSCache(scp);
              cm_ReleaseUser(userp);
              free(realPathp);
***************
*** 7159,7164 ****
--- 7628,7635 ----
      }
  
      if (realDirFlag == 1 && scp->fileType == CM_SCACHETYPE_FILE) {
+ 	if (ldp)
+ 	    cm_CheckNTOpenDone(scp, userp, &req, &ldp);
          cm_ReleaseSCache(scp);
          cm_ReleaseUser(userp);
          free(realPathp);
***************
*** 7199,7214 ****
          lock_ReleaseMutex(&scp->mx);
  
          if (code) {
              cm_ReleaseSCache(scp);
              cm_ReleaseUser(userp);
!             /* Shouldn't this be smb_CloseFID()?  fidp->flags = SMB_FID_DELETE; */
  	    smb_CloseFID(vcp, fidp, NULL, 0);
!             smb_ReleaseFID(fidp);
!             free(realPathp);
              return CM_ERROR_SHARING_VIOLATION;
          }
      }
  
      lock_ObtainMutex(&fidp->mx);
      /* save a pointer to the vnode */
      fidp->scp = scp;
--- 7670,7691 ----
          lock_ReleaseMutex(&scp->mx);
  
          if (code) {
+ 	    if (ldp)
+ 		cm_CheckNTOpenDone(scp, userp, &req, &ldp);
              cm_ReleaseSCache(scp);
              cm_ReleaseUser(userp);
! 	    /* Shouldn't this be smb_CloseFID()?  fidp->flags = SMB_FID_DELETE; */
  	    smb_CloseFID(vcp, fidp, NULL, 0);
! 	    smb_ReleaseFID(fidp);
! 	    free(realPathp);
              return CM_ERROR_SHARING_VIOLATION;
          }
      }
  
+     /* Now its safe to drop the file server lock obtained by cm_CheckNTOpen() */
+     if (ldp)
+ 	cm_CheckNTOpenDone(scp, userp, &req, &ldp);
+ 
      lock_ObtainMutex(&fidp->mx);
      /* save a pointer to the vnode */
      fidp->scp = scp;
***************
*** 7363,7376 ****
  	smb_packet_t *outp)
  {
      smb_packet_t *savedPacketp;
!     ULONG filter; USHORT fid, watchtree;
      smb_fid_t *fidp;
      cm_scache_t *scp;
          
      filter = smb_GetSMBParm(inp, 19) |
               (smb_GetSMBParm(inp, 20) << 16);
      fid = smb_GetSMBParm(inp, 21);
!     watchtree = smb_GetSMBParm(inp, 22) && 0xffff;  /* TODO: should this be 0xff ? */
  
      fidp = smb_FindFID(vcp, fid, 0);
      if (!fidp) {
--- 7840,7854 ----
  	smb_packet_t *outp)
  {
      smb_packet_t *savedPacketp;
!     ULONG filter; 
!     USHORT fid, watchtree;
      smb_fid_t *fidp;
      cm_scache_t *scp;
          
      filter = smb_GetSMBParm(inp, 19) |
               (smb_GetSMBParm(inp, 20) << 16);
      fid = smb_GetSMBParm(inp, 21);
!     watchtree = (smb_GetSMBParm(inp, 22) & 0xff) ? 1 : 0;
  
      fidp = smb_FindFID(vcp, fid, 0);
      if (!fidp) {
***************
*** 7378,7398 ****
          return CM_ERROR_BADFD;
      }
  
      savedPacketp = smb_CopyPacket(inp);
      smb_HoldVC(vcp);
      if (savedPacketp->vcp)
  	smb_ReleaseVC(savedPacketp->vcp);
      savedPacketp->vcp = vcp;
      lock_ObtainMutex(&smb_Dir_Watch_Lock);
      savedPacketp->nextp = smb_Directory_Watches;
      smb_Directory_Watches = savedPacketp;
      lock_ReleaseMutex(&smb_Dir_Watch_Lock);
  
-     osi_Log4(smb_logp, "Request for NotifyChange filter 0x%x fid %d wtree %d file %s",
-              filter, fid, watchtree, osi_LogSaveString(smb_logp, fidp->NTopen_wholepathp));
- 
      scp = fidp->scp;
!     osi_Log2(afsd_logp,"smb_ReceiveNTTranNotifyChange fidp 0x%p scp 0x%p", fidp, scp);
      lock_ObtainMutex(&scp->mx);
      if (watchtree)
          scp->flags |= CM_SCACHEFLAG_WATCHEDSUBTREE;
--- 7856,7906 ----
          return CM_ERROR_BADFD;
      }
  
+     /* Create a copy of the Directory Watch Packet to use when sending the
+      * notification if in the future a matching change is detected.
+      */
      savedPacketp = smb_CopyPacket(inp);
      smb_HoldVC(vcp);
      if (savedPacketp->vcp)
  	smb_ReleaseVC(savedPacketp->vcp);
      savedPacketp->vcp = vcp;
+ 
+     /* Add the watch to the list of events to send notifications for */
      lock_ObtainMutex(&smb_Dir_Watch_Lock);
      savedPacketp->nextp = smb_Directory_Watches;
      smb_Directory_Watches = savedPacketp;
      lock_ReleaseMutex(&smb_Dir_Watch_Lock);
  
      scp = fidp->scp;
!     osi_Log3(afsd_logp,"smb_ReceiveNTTranNotifyChange fidp 0x%p scp 0x%p file \"%s\"", 
! 	      fidp, scp, osi_LogSaveString(smb_logp, fidp->NTopen_wholepathp));
!     osi_Log3(smb_logp, "Request for NotifyChange filter 0x%x fid %d wtree %d",
!              filter, fid, watchtree);
!     if (filter & FILE_NOTIFY_CHANGE_FILE_NAME)
! 	osi_Log0(smb_logp, "      Notify Change File Name");
!     if (filter & FILE_NOTIFY_CHANGE_DIR_NAME)
! 	osi_Log0(smb_logp, "      Notify Change Directory Name");
!     if (filter & FILE_NOTIFY_CHANGE_ATTRIBUTES)
! 	osi_Log0(smb_logp, "      Notify Change Attributes");
!     if (filter & FILE_NOTIFY_CHANGE_SIZE)
! 	osi_Log0(smb_logp, "      Notify Change Size");
!     if (filter & FILE_NOTIFY_CHANGE_LAST_WRITE)
! 	osi_Log0(smb_logp, "      Notify Change Last Write");
!     if (filter & FILE_NOTIFY_CHANGE_LAST_ACCESS)
! 	osi_Log0(smb_logp, "      Notify Change Last Access");
!     if (filter & FILE_NOTIFY_CHANGE_CREATION)
! 	osi_Log0(smb_logp, "      Notify Change Creation");
!     if (filter & FILE_NOTIFY_CHANGE_EA)
! 	osi_Log0(smb_logp, "      Notify Change Extended Attributes");
!     if (filter & FILE_NOTIFY_CHANGE_SECURITY)
! 	osi_Log0(smb_logp, "      Notify Change Security");
!     if (filter & FILE_NOTIFY_CHANGE_STREAM_NAME)
! 	osi_Log0(smb_logp, "      Notify Change Stream Name");
!     if (filter & FILE_NOTIFY_CHANGE_STREAM_SIZE)
! 	osi_Log0(smb_logp, "      Notify Change Stream Size");
!     if (filter & FILE_NOTIFY_CHANGE_STREAM_WRITE)
! 	osi_Log0(smb_logp, "      Notify Change Stream Write");
! 
      lock_ObtainMutex(&scp->mx);
      if (watchtree)
          scp->flags |= CM_SCACHEFLAG_WATCHEDSUBTREE;
***************
*** 7526,7531 ****
--- 8034,8042 ----
   *
   * If we don't know the file name (i.e. a callback break), filename is
   * NULL, and we return a zero-length list.
+  *
+  * At present there is not a single call to smb_NotifyChange that 
+  * has the isDirectParent parameter set to FALSE.  
   */
  void smb_NotifyChange(DWORD action, DWORD notifyFilter,
  	cm_scache_t *dscp, char *filename, char *otherFilename,
***************
*** 7548,7555 ****
          otherAction = FILE_ACTION_RENAMED_NEW_NAME;
      }
  
!     osi_Log2(smb_logp,"in smb_NotifyChange for file [%s] dscp [%x]",
!              osi_LogSaveString(smb_logp,filename),dscp);
  
      lock_ObtainMutex(&smb_Dir_Watch_Lock);
      watch = smb_Directory_Watches;
--- 8059,8078 ----
          otherAction = FILE_ACTION_RENAMED_NEW_NAME;
      }
  
!     osi_Log4(smb_logp,"in smb_NotifyChange for file [%s] dscp [%p] notification 0x%x parent %d",
!              osi_LogSaveString(smb_logp,filename),dscp, notifyFilter, isDirectParent);
!     if (action == 0)
! 	osi_Log0(smb_logp,"      FILE_ACTION_NONE");
!     if (action == FILE_ACTION_ADDED)
! 	osi_Log0(smb_logp,"      FILE_ACTION_ADDED");
!     if (action == FILE_ACTION_REMOVED)
! 	osi_Log0(smb_logp,"      FILE_ACTION_REMOVED");
!     if (action == FILE_ACTION_MODIFIED)
! 	osi_Log0(smb_logp,"      FILE_ACTION_MODIFIED");
!     if (action == FILE_ACTION_RENAMED_OLD_NAME)
! 	osi_Log0(smb_logp,"      FILE_ACTION_RENAMED_OLD_NAME");
!     if (action == FILE_ACTION_RENAMED_NEW_NAME)
! 	osi_Log0(smb_logp,"      FILE_ACTION_RENAMED_NEW_NAME");
  
      lock_ObtainMutex(&smb_Dir_Watch_Lock);
      watch = smb_Directory_Watches;
***************
*** 7557,7576 ****
          filter = smb_GetSMBParm(watch, 19)
              | (smb_GetSMBParm(watch, 20) << 16);
          fid = smb_GetSMBParm(watch, 21);
!         wtree = smb_GetSMBParm(watch, 22) & 0xffff;  /* TODO: should this be 0xff ? */
          maxLen = smb_GetSMBOffsetParm(watch, 5, 1)
              | (smb_GetSMBOffsetParm(watch, 6, 1) << 16);
  
          /*
!          * Strange hack - bug in NT Client and NT Server that we
!          * must emulate?
           */
!         if (filter == 3 && wtree)
!             filter = 0x17;
  
          fidp = smb_FindFID(watch->vcp, fid, 0);
          if (!fidp) {
!             osi_Log1(smb_logp," no fidp for fid[%d]",fid);
              lastWatch = watch;
              watch = watch->nextp;
              continue;
--- 8080,8099 ----
          filter = smb_GetSMBParm(watch, 19)
              | (smb_GetSMBParm(watch, 20) << 16);
          fid = smb_GetSMBParm(watch, 21);
!         wtree = (smb_GetSMBParm(watch, 22) & 0xff) ? 1 : 0;
! 
          maxLen = smb_GetSMBOffsetParm(watch, 5, 1)
              | (smb_GetSMBOffsetParm(watch, 6, 1) << 16);
  
          /*
!          * Strange hack - bug in NT Client and NT Server that we must emulate?
           */
!         if ((filter == (FILE_NOTIFY_CHANGE_FILE_NAME | FILE_NOTIFY_CHANGE_DIR_NAME)) && wtree)
!             filter |= FILE_NOTIFY_CHANGE_LAST_WRITE | FILE_NOTIFY_CHANGE_ATTRIBUTES;
  
          fidp = smb_FindFID(watch->vcp, fid, 0);
          if (!fidp) {
!             osi_Log2(smb_logp," no fidp for fid[%d] in vcp 0x%p",fid, watch->vcp);
              lastWatch = watch;
              watch = watch->nextp;
              continue;
***************
*** 7578,7584 ****
          if (fidp->scp != dscp
               || (filter & notifyFilter) == 0
               || (!isDirectParent && !wtree)) {
!             osi_Log1(smb_logp," passing fidp->scp[%x]", fidp->scp);
              smb_ReleaseFID(fidp);
              lastWatch = watch;
              watch = watch->nextp;
--- 8101,8107 ----
          if (fidp->scp != dscp
               || (filter & notifyFilter) == 0
               || (!isDirectParent && !wtree)) {
!             osi_Log1(smb_logp," skipping fidp->scp[%x]", fidp->scp);
              smb_ReleaseFID(fidp);
              lastWatch = watch;
              watch = watch->nextp;
***************
*** 7589,7595 ****
          osi_Log4(smb_logp,
                    "Sending Change Notification for fid %d filter 0x%x wtree %d file %s",
                    fid, filter, wtree, osi_LogSaveString(smb_logp, filename));
! 
          nextWatch = watch->nextp;
          if (watch == smb_Directory_Watches)
              smb_Directory_Watches = nextWatch;
--- 8112,8143 ----
          osi_Log4(smb_logp,
                    "Sending Change Notification for fid %d filter 0x%x wtree %d file %s",
                    fid, filter, wtree, osi_LogSaveString(smb_logp, filename));
! 	if (filter & FILE_NOTIFY_CHANGE_FILE_NAME)
! 	    osi_Log0(smb_logp, "      Notify Change File Name");
! 	if (filter & FILE_NOTIFY_CHANGE_DIR_NAME)
! 	    osi_Log0(smb_logp, "      Notify Change Directory Name");
! 	if (filter & FILE_NOTIFY_CHANGE_ATTRIBUTES)
! 	    osi_Log0(smb_logp, "      Notify Change Attributes");
! 	if (filter & FILE_NOTIFY_CHANGE_SIZE)
! 	    osi_Log0(smb_logp, "      Notify Change Size");
! 	if (filter & FILE_NOTIFY_CHANGE_LAST_WRITE)
! 	    osi_Log0(smb_logp, "      Notify Change Last Write");
! 	if (filter & FILE_NOTIFY_CHANGE_LAST_ACCESS)
! 	    osi_Log0(smb_logp, "      Notify Change Last Access");
! 	if (filter & FILE_NOTIFY_CHANGE_CREATION)
! 	    osi_Log0(smb_logp, "      Notify Change Creation");
! 	if (filter & FILE_NOTIFY_CHANGE_EA)
! 	    osi_Log0(smb_logp, "      Notify Change Extended Attributes");
! 	if (filter & FILE_NOTIFY_CHANGE_SECURITY)
! 	    osi_Log0(smb_logp, "      Notify Change Security");
! 	if (filter & FILE_NOTIFY_CHANGE_STREAM_NAME)
! 	    osi_Log0(smb_logp, "      Notify Change Stream Name");
! 	if (filter & FILE_NOTIFY_CHANGE_STREAM_SIZE)
! 	    osi_Log0(smb_logp, "      Notify Change Stream Size");
! 	if (filter & FILE_NOTIFY_CHANGE_STREAM_WRITE)
! 	    osi_Log0(smb_logp, "      Notify Change Stream Write");
! 		     
! 	/* A watch can only be notified once.  Remove it from the list */
          nextWatch = watch->nextp;
          if (watch == smb_Directory_Watches)
              smb_Directory_Watches = nextWatch;
Index: openafs/src/WINNT/afsd/smb3.h
diff -c openafs/src/WINNT/afsd/smb3.h:1.12.2.4 openafs/src/WINNT/afsd/smb3.h:1.12.2.5
*** openafs/src/WINNT/afsd/smb3.h:1.12.2.4	Fri Aug 25 13:08:23 2006
--- openafs/src/WINNT/afsd/smb3.h	Mon Dec 11 23:01:26 2006
***************
*** 339,342 ****
--- 339,347 ----
  #define FILE_GENERIC_EXECUTE (0x001200a0)
  #endif /* DJGPP */
  
+ /* Some of the FILE_NOTIFY_CHANGE values are undefined in winnt.h */
+ #define FILE_NOTIFY_CHANGE_EA           0x00000080
+ #define FILE_NOTIFY_CHANGE_STREAM_NAME  0x00000200
+ #define FILE_NOTIFY_CHANGE_STREAM_SIZE  0x00000400
+ #define FILE_NOTIFY_CHANGE_STREAM_WRITE 0x00000800
  #endif /*  __SMB3_H_ENV__ */
Index: openafs/src/WINNT/afsd/smb_ioctl.h
diff -c openafs/src/WINNT/afsd/smb_ioctl.h:1.4.14.1 openafs/src/WINNT/afsd/smb_ioctl.h:1.4.14.2
*** openafs/src/WINNT/afsd/smb_ioctl.h:1.4.14.1	Sat Jun 24 16:41:55 2006
--- openafs/src/WINNT/afsd/smb_ioctl.h	Mon Dec 11 23:01:26 2006
***************
*** 15,21 ****
  #define SMB_IOCTL_FILENAME_NOSLASH "_._AFS_IOCTL_._"
  
  /* max parms for ioctl, in either direction */
! #define SMB_IOCTL_MAXDATA	8192
  
  #define SMB_IOCTL_MAXPROCS	64			/* max # of calls */
  
--- 15,21 ----
  #define SMB_IOCTL_FILENAME_NOSLASH "_._AFS_IOCTL_._"
  
  /* max parms for ioctl, in either direction */
! #define SMB_IOCTL_MAXDATA	8192*2
  
  #define SMB_IOCTL_MAXPROCS	64			/* max # of calls */
  
Index: openafs/src/WINNT/afssvrcfg/admin_info_dlg.cpp
diff -c openafs/src/WINNT/afssvrcfg/admin_info_dlg.cpp:1.2 openafs/src/WINNT/afssvrcfg/admin_info_dlg.cpp:1.2.32.1
*** openafs/src/WINNT/afssvrcfg/admin_info_dlg.cpp:1.2	Sat Nov  4 05:01:49 2000
--- openafs/src/WINNT/afssvrcfg/admin_info_dlg.cpp	Tue Dec 26 15:22:28 2006
***************
*** 48,58 ****
   */
  BOOL GetAdminInfo(HWND hParent, GET_ADMIN_INFO_OPTIONS options)
  {	
! 	eOptions = options;
  
! 	int nResult = ModalDialog(IDD_ADMIN_INFO, hParent, (DLGPROC)AdminInfoDlgProc);
  
! 	return (nResult == IDOK);
  }
  
  
--- 48,58 ----
   */
  BOOL GetAdminInfo(HWND hParent, GET_ADMIN_INFO_OPTIONS options)
  {	
!     eOptions = options;
  
!     int nResult = ModalDialog(IDD_ADMIN_INFO, hParent, (DLGPROC)AdminInfoDlgProc);
  
!     return (nResult == IDOK);
  }
  
  
***************
*** 61,96 ****
   *
   */
  BOOL CALLBACK AdminInfoDlgProc(HWND hwndDlg, UINT msg, WPARAM wp, LPARAM lp)
! {
! 	if (AfsAppLib_HandleHelp(IDD_ADMIN_INFO, hwndDlg, msg, wp, lp))
! 		return TRUE;
! 
! 	switch (msg) {
! 		case WM_INITDIALOG:
! 			OnInitDialog(hwndDlg);
! 			break;
! 
! 		case WM_COMMAND:
! 			switch (LOWORD(wp)) {
! 				case IDC_ADMIN_NAME:
! 				case IDC_ADMIN_PW:
! 				case IDC_HOSTNAME:
! 				case IDC_SCS:
! 					if (HIWORD(wp) == EN_CHANGE)
! 						CheckEnableButtons();
! 					break;
! 
! 				case IDCANCEL:
! 					EndDialog(hDlg, IDCANCEL);
! 					break;
! 					
! 
! 				case IDOK:
! 					SaveDlgInfo();
! 					EndDialog(hDlg, IDOK);
! 					break;
! 			}
! 		break;
      }
  
      return FALSE;
--- 61,95 ----
   *
   */
  BOOL CALLBACK AdminInfoDlgProc(HWND hwndDlg, UINT msg, WPARAM wp, LPARAM lp)
! {	
!     if (AfsAppLib_HandleHelp(IDD_ADMIN_INFO, hwndDlg, msg, wp, lp))
! 	return TRUE;
! 
!     switch (msg) {
!     case WM_INITDIALOG:
! 	OnInitDialog(hwndDlg);
! 	break;
! 
!     case WM_COMMAND:
! 	switch (LOWORD(wp)) {
! 	case IDC_ADMIN_NAME:
! 	case IDC_ADMIN_PW:
! 	case IDC_HOSTNAME:
! 	case IDC_SCS:
! 	    if (HIWORD(wp) == EN_CHANGE)
! 		CheckEnableButtons();
! 	    break;
! 
! 	case IDCANCEL:
! 	    EndDialog(hDlg, IDCANCEL);
! 	    break;
! 
! 	case IDOK:
! 	    SaveDlgInfo();
! 	    EndDialog(hDlg, IDOK);
! 	    break;
! 	}	
! 	break;
      }
  
      return FALSE;
***************
*** 110,123 ****
  {
      static int nOffset = 0;
  
! 	hDlg = hwndDlg;
  	
! 	// Hide the additional server stuff if we don't need it
! 	if (eOptions == GAIO_LOGIN_ONLY) {
! 		HideAndDisable(hDlg, IDC_HOSTNAME_FRAME);
! 		HideAndDisable(hDlg, IDC_HOSTNAME_PROMPT);
! 		HideAndDisable(hDlg, IDC_HOSTNAME_LABEL);
! 		HideAndDisable(hDlg, IDC_HOSTNAME);
  
          if (nOffset == 0) {
              // Get dimensions of the frame containing the things we will hide or show
--- 109,122 ----
  {
      static int nOffset = 0;
  
!     hDlg = hwndDlg;
  	
!     // Hide the additional server stuff if we don't need it
!     if (eOptions == GAIO_LOGIN_ONLY) {
! 	HideAndDisable(hDlg, IDC_HOSTNAME_FRAME);
! 	HideAndDisable(hDlg, IDC_HOSTNAME_PROMPT);
! 	HideAndDisable(hDlg, IDC_HOSTNAME_LABEL);
! 	HideAndDisable(hDlg, IDC_HOSTNAME);
  
          if (nOffset == 0) {
              // Get dimensions of the frame containing the things we will hide or show
***************
*** 134,151 ****
          }
  
          // Move the buttons		
! 		MoveWnd(hDlg, IDOK, 0, -nOffset);
! 		MoveWnd(hDlg, IDCANCEL, 0, -nOffset);
! 		MoveWnd(hDlg, IDHELP, 0, -nOffset);
  
          // Resize the dialog
          RECT rectDlg;
          GetWindowRect(hDlg, &rectDlg);
! 		MoveWindow(hDlg, rectDlg.left, rectDlg.top, rectDlg.right - rectDlg.left + 1, rectDlg.bottom - rectDlg.top - nOffset, TRUE);
! 
! 	}
  
! 	ShowPageInfo();
  }
  
  /*
--- 133,149 ----
          }
  
          // Move the buttons		
! 	MoveWnd(hDlg, IDOK, 0, -nOffset);
! 	MoveWnd(hDlg, IDCANCEL, 0, -nOffset);
! 	MoveWnd(hDlg, IDHELP, 0, -nOffset);
  
          // Resize the dialog
          RECT rectDlg;
          GetWindowRect(hDlg, &rectDlg);
! 	MoveWindow(hDlg, rectDlg.left, rectDlg.top, rectDlg.right - rectDlg.left + 1, rectDlg.bottom - rectDlg.top - nOffset, TRUE);
!     }
  
!     ShowPageInfo();
  }
  
  /*
***************
*** 154,186 ****
   */
  static void CheckEnableButtons()
  {
! 	BOOL bDisable = FALSE;
  
! 	TCHAR szDummy[cchRESOURCE];
  
! 	bDisable |= lstrlen(GetWndText(hDlg, IDC_ADMIN_NAME, szDummy)) == 0;
! 	bDisable |= lstrlen(GetWndText(hDlg, IDC_ADMIN_PW, szDummy)) == 0;
  
! 	SetEnable(hDlg, IDOK, (ENABLE_STATE)!bDisable);
  }
  
  static void SaveDlgInfo()
  {
! 	TCHAR szText[cchRESOURCE];
  	
! 	lstrncpy(g_CfgData.szAdminName, GetWndText(hDlg, IDC_ADMIN_NAME, szText), MAX_ADMIN_NAME_LEN);
! 	lstrncpy(g_CfgData.szAdminPW, GetWndText(hDlg, IDC_ADMIN_PW, szText), MAX_ADMIN_PW_LEN);
  
! 	if (eOptions == GAIO_GET_SCS)
! 		lstrncpy(g_CfgData.szSysControlMachine, GetWndText(hDlg, IDC_HOSTNAME, szText), MAX_MACHINE_NAME_LEN);
  }
  
  static void ShowPageInfo()
  {
! 	SetWndText(hDlg, IDC_ADMIN_NAME, g_CfgData.szAdminName);
! 	SetWndText(hDlg, IDC_ADMIN_PW, g_CfgData.szAdminPW);
  
! 	if (eOptions == GAIO_GET_SCS)
! 		SetWndText(hDlg, IDC_HOSTNAME, g_CfgData.szSysControlMachine);
  }
  
--- 152,184 ----
   */
  static void CheckEnableButtons()
  {
!     BOOL bDisable = FALSE;
  
!     TCHAR szDummy[cchRESOURCE];
  
!     bDisable |= lstrlen(GetWndText(hDlg, IDC_ADMIN_NAME, szDummy)) == 0;
!     bDisable |= lstrlen(GetWndText(hDlg, IDC_ADMIN_PW, szDummy)) == 0;
  
!     SetEnable(hDlg, IDOK, (ENABLE_STATE)!bDisable);
  }
  
  static void SaveDlgInfo()
  {
!     TCHAR szText[cchRESOURCE];
  	
!     lstrncpy(g_CfgData.szAdminName, GetWndText(hDlg, IDC_ADMIN_NAME, szText), MAX_ADMIN_NAME_LEN);
!     lstrncpy(g_CfgData.szAdminPW, GetWndText(hDlg, IDC_ADMIN_PW, szText), MAX_ADMIN_PW_LEN);
  
!     if (eOptions == GAIO_GET_SCS)
! 	lstrncpy(g_CfgData.szSysControlMachine, GetWndText(hDlg, IDC_HOSTNAME, szText), MAX_MACHINE_NAME_LEN);
  }
  
  static void ShowPageInfo()
  {
!     SetWndText(hDlg, IDC_ADMIN_NAME, g_CfgData.szAdminName);
!     SetWndText(hDlg, IDC_ADMIN_PW, g_CfgData.szAdminPW);
  
!     if (eOptions == GAIO_GET_SCS)
! 	SetWndText(hDlg, IDC_HOSTNAME, g_CfgData.szSysControlMachine);
  }
  
Index: openafs/src/WINNT/afssvrcfg/afscfg.cpp
diff -c openafs/src/WINNT/afssvrcfg/afscfg.cpp:1.5 openafs/src/WINNT/afssvrcfg/afscfg.cpp:1.5.14.1
*** openafs/src/WINNT/afssvrcfg/afscfg.cpp:1.5	Fri Apr  2 01:56:24 2004
--- openafs/src/WINNT/afssvrcfg/afscfg.cpp	Tue Dec 26 15:22:28 2006
***************
*** 63,80 ****
  
  
  static WIZARD_STATE g_aStates[] = {
!     { sidSTEP_ONE,		IDD_INTRO_PAGE,					(DLGPROC)IntroPageDlgProc, 0 },
!     { sidSTEP_TWO,		IDD_INFO_PAGE,					(DLGPROC)InfoPageDlgProc, 0 },
      { sidSTEP_THREE,	IDD_INFO_PAGE2_FIRST_SERVER,	(DLGPROC)InfoPage2DlgProc, 0 },
! 	{ sidSTEP_FOUR,		IDD_INFO_PAGE2_NOT_FIRST_SERVER,(DLGPROC)InfoPage2DlgProc, 0 },
!     { sidSTEP_FIVE,		IDD_FILE_SERVER_PAGE,			(DLGPROC)FileServerPageDlgProc, 0 },
!     { sidSTEP_SIX,		IDD_DB_SERVER_PAGE,				(DLGPROC)DBServerPageDlgProc, 0 },
! 	{ sidSTEP_SEVEN,	IDD_BACKUP_SERVER_PAGE,			(DLGPROC)BackupPageDlgProc, 0 },
!     { sidSTEP_EIGHT,	IDD_PARTITION_PAGE,				(DLGPROC)PartitionPageDlgProc, 0 },
! 	{ sidSTEP_NINE,		IDD_ROOT_VOLUMES_PAGE,			(DLGPROC)RootAfsPageDlgProc, 0 },
! 	{ sidSTEP_TEN,		IDD_REPLICATION_PAGE,			(DLGPROC)ReplicationPageDlgProc, 0 },
! 	{ sidSTEP_ELEVEN,	IDD_SYS_CONTROL_PAGE,			(DLGPROC)SysControlPageDlgProc, 0 },
! 	{ sidSTEP_TWELVE,	IDD_CONFIG_SERVER_PAGE,			(DLGPROC)ConfigServerPageDlgProc, 0 }
  };
  
  size_t g_nNumStates = sizeof(g_aStates) / sizeof(g_aStates[0]);
--- 63,80 ----
  
  
  static WIZARD_STATE g_aStates[] = {
!     { sidSTEP_ONE,	IDD_INTRO_PAGE,			(DLGPROC)IntroPageDlgProc, 0 },
!     { sidSTEP_TWO,	IDD_INFO_PAGE,			(DLGPROC)InfoPageDlgProc, 0 },
      { sidSTEP_THREE,	IDD_INFO_PAGE2_FIRST_SERVER,	(DLGPROC)InfoPage2DlgProc, 0 },
!     { sidSTEP_FOUR,	IDD_INFO_PAGE2_NOT_FIRST_SERVER,(DLGPROC)InfoPage2DlgProc, 0 },
!     { sidSTEP_FIVE,	IDD_FILE_SERVER_PAGE,		(DLGPROC)FileServerPageDlgProc, 0 },
!     { sidSTEP_SIX,	IDD_DB_SERVER_PAGE,		(DLGPROC)DBServerPageDlgProc, 0 },
!     { sidSTEP_SEVEN,	IDD_BACKUP_SERVER_PAGE,		(DLGPROC)BackupPageDlgProc, 0 },
!     { sidSTEP_EIGHT,	IDD_PARTITION_PAGE,		(DLGPROC)PartitionPageDlgProc, 0 },
!     { sidSTEP_NINE,	IDD_ROOT_VOLUMES_PAGE,		(DLGPROC)RootAfsPageDlgProc, 0 },
!     { sidSTEP_TEN,	IDD_REPLICATION_PAGE,		(DLGPROC)ReplicationPageDlgProc, 0 },
!     { sidSTEP_ELEVEN,	IDD_SYS_CONTROL_PAGE,		(DLGPROC)SysControlPageDlgProc, 0 },
!     { sidSTEP_TWELVE,	IDD_CONFIG_SERVER_PAGE,		(DLGPROC)ConfigServerPageDlgProc, 0 }
  };
  
  size_t g_nNumStates = sizeof(g_aStates) / sizeof(g_aStates[0]);
***************
*** 124,198 ****
   */
  extern "C" int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrev, LPSTR pszCmdLineA, int nCmdShow)
  {
! 	afs_status_t nStatus;
! 
! 	TaLocale_LoadCorrespondingModule (hInst);
  
! 	// Tell the applib our application's name
! 	TCHAR szAppName[cchRESOURCE];
! 	AfsAppLib_SetAppName(GetResString(GetAppTitleID(), szAppName));
  
! 	// Open the admin libraries
! 	int nResult = afsclient_Init(&nStatus);
! 	if (!nResult) {
! 		ShowError(0, nStatus, IDS_CANT_INIT_ADMIN_LIBS);
! 		return 0;
! 	}
  
! 	// Open the log file
! 	char szLogPath[MAX_PATH];
! 	sprintf(szLogPath, "%s\\%s", AFSDIR_SERVER_LOGS_DIRPATH, LOG_FILE_NAME);
! 	if (!g_LogFile.Open(szLogPath))
! 		ShowError(0, 0, IDS_CANT_OPEN_LOG_FILE);
  
! 	// Register the help file with the applib's help system
! 	AfsAppLib_RegisterHelpFile(TEXT("TaAfsCfg.hlp"));
  
      /* Start up sockets */
      WSADATA WSAjunk;
      WSAStartup(0x0101, &WSAjunk);
  
! 	memset(&g_CfgData, 0, sizeof(CFG_DATA));
  
! 	// Get this machine's local name
! 	char szLocalName[sizeof(g_CfgData.szLocalName) / sizeof(TCHAR)];
      if (gethostname(szLocalName, sizeof(szLocalName)) != 0) {
!    		ShowError(GetFocus(), WSAGetLastError(), IDS_ERROR_LOCAL_HOST_NAME);
! 		return 0;
! 	}
      CopyAnsiToString(g_CfgData.szLocalName, szLocalName);
  
! 	// Turn the local name into a host name
      struct hostent *pHostEnt = gethostbyname(szLocalName);
      if (!pHostEnt) {
!    		ShowError(GetFocus(), WSAGetLastError(), IDS_ERROR_HOST_NAME);
! 		return 0;
! 	}
      CopyAnsiToString(g_CfgData.szHostname, pHostEnt->h_name, sizeof(g_CfgData.szHostname));
  
! 	RegisterFastListClass();
  
! 	// Get current config status
! 	BOOL bCanceled = FALSE;
! 	DWORD dwStatus = GetCurrentConfig(NULL, bCanceled);
! 	if (dwStatus || bCanceled) {
! 		if (!bCanceled)
!        		ShowError(GetFocus(), dwStatus, IDS_CONFIG_CHECK_FAILED);
! 		return 0;
! 	}
  
! 	// Run the appropriate interface
! 	if ((strstr(_strlwr(pszCmdLineA), "wizard") != 0))
! 		RunWizard();
! 	else
! 		RunCfgTool();
  
! 	FreePartitionTable();
  
! 	// Disconnect from the config and admin libraries
! 	CloseLibHandles(TRUE);
  
! 	return 0;
  }
  
  /*
--- 124,198 ----
   */
  extern "C" int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrev, LPSTR pszCmdLineA, int nCmdShow)
  {
!     afs_status_t nStatus;
  
!     TaLocale_LoadCorrespondingModule (hInst);
  
!     // Tell the applib our application's name
!     TCHAR szAppName[cchRESOURCE];
!     AfsAppLib_SetAppName(GetResString(GetAppTitleID(), szAppName));
! 
!     // Open the admin libraries
!     int nResult = afsclient_Init(&nStatus);
!     if (!nResult) {
! 	ShowError(0, nStatus, IDS_CANT_INIT_ADMIN_LIBS);
! 	return 0;
!     }
  
!     // Open the log file
!     char szLogPath[MAX_PATH];
!     sprintf(szLogPath, "%s\\%s", AFSDIR_SERVER_LOGS_DIRPATH, LOG_FILE_NAME);
!     if (!g_LogFile.Open(szLogPath))
! 	ShowError(0, 0, IDS_CANT_OPEN_LOG_FILE);
  
!     // Register the help file with the applib's help system
!     AfsAppLib_RegisterHelpFile(TEXT("TaAfsCfg.hlp"));
  
      /* Start up sockets */
      WSADATA WSAjunk;
      WSAStartup(0x0101, &WSAjunk);
  
!     memset(&g_CfgData, 0, sizeof(CFG_DATA));
  
!     // Get this machine's local name
!     char szLocalName[sizeof(g_CfgData.szLocalName) / sizeof(TCHAR)];
      if (gethostname(szLocalName, sizeof(szLocalName)) != 0) {
! 	ShowError(GetFocus(), WSAGetLastError(), IDS_ERROR_LOCAL_HOST_NAME);
! 	return 0;
!     }
      CopyAnsiToString(g_CfgData.szLocalName, szLocalName);
  
!     // Turn the local name into a host name
      struct hostent *pHostEnt = gethostbyname(szLocalName);
      if (!pHostEnt) {
! 	ShowError(GetFocus(), WSAGetLastError(), IDS_ERROR_HOST_NAME);
! 	return 0;
!     }
      CopyAnsiToString(g_CfgData.szHostname, pHostEnt->h_name, sizeof(g_CfgData.szHostname));
  
!     RegisterFastListClass();
  
!     // Get current config status
!     BOOL bCanceled = FALSE;
!     DWORD dwStatus = GetCurrentConfig(NULL, bCanceled);
!     if (dwStatus || bCanceled) {
! 	if (!bCanceled)
! 	    ShowError(GetFocus(), dwStatus, IDS_CONFIG_CHECK_FAILED);
! 	return 0;
!     }
  
!     // Run the appropriate interface
!     if ((strstr(_strlwr(pszCmdLineA), "wizard") != 0))
! 	RunWizard();
!     else
! 	RunCfgTool();
  
!     FreePartitionTable();
  
!     // Disconnect from the config and admin libraries
!     CloseLibHandles(TRUE);
  
!     return 0;
  }
  
  /*
***************
*** 202,241 ****
   */
  BOOL CALLBACK WizStep_Common_DlgProc(HWND hRHS, UINT msg, WPARAM wp, LPARAM lp)
  {
! 	// Get the dialog's resource ID
! 	int nIDD = GetWindowLong(hRHS, GWL_ID);
  	
! 	if (AfsAppLib_HandleHelp(nIDD, hRHS, msg, wp, lp))
! 		return TRUE;
  	
! 	switch (msg) {
! 		case WM_INITDIALOG:	MakeBold(hRHS, IDC_TITLE);
! 							RedrawGraphic();
! 							break;
! 
! 		case WM_COMMAND:
! 			switch (LOWORD(wp)) {
! 				case IDCANCEL:
! 					QueryCancelWiz();
! 					return TRUE;
! 			}
! 			break;
  	}
  
! 	return FALSE;
  }
  
  BOOL QueryCancelWiz()
  {
! 	int nChoice = Message(MB_YESNO, IDS_WIZARD_APP_TITLE, IDS_CANCEL_DESC);
! 	if (nChoice == IDYES) {
! 		g_LogFile.Write("User has chosen to cancel the program.\r\n");
! 		if (g_pWiz)
! 			g_pWiz->Show(FALSE);
! 		return TRUE;
! 	}
  
! 	return FALSE;
  }
  
  
--- 202,241 ----
   */
  BOOL CALLBACK WizStep_Common_DlgProc(HWND hRHS, UINT msg, WPARAM wp, LPARAM lp)
  {
!     // Get the dialog's resource ID
!     int nIDD = GetWindowLong(hRHS, GWL_ID);
  	
!     if (AfsAppLib_HandleHelp(nIDD, hRHS, msg, wp, lp))
! 	return TRUE;
  	
!     switch (msg) {
!     case WM_INITDIALOG:	MakeBold(hRHS, IDC_TITLE);
! 	RedrawGraphic();
! 	break;
! 
!     case WM_COMMAND:
! 	switch (LOWORD(wp)) {
! 	case IDCANCEL:
! 	    QueryCancelWiz();
! 	    return TRUE;
  	}
+ 	break;
+     }
  
!     return FALSE;
  }
  
  BOOL QueryCancelWiz()
  {
!     int nChoice = Message(MB_YESNO, IDS_WIZARD_APP_TITLE, IDS_CANCEL_DESC);
!     if (nChoice == IDYES) {
! 	g_LogFile.Write("User has chosen to cancel the program.\r\n");
! 	if (g_pWiz)
! 	    g_pWiz->Show(FALSE);
! 	return TRUE;
!     }
  
!     return FALSE;
  }
  
  
***************
*** 262,269 ****
  {
      static TCHAR szValue[MAX_MACHINE_NAME_LEN + 1] = "";
  
! 	if ( szValue[0] == 0 )
! 		CopyAnsiToString(GetClientNetbiosNameA(), szValue);
  
      return szValue;
  }
--- 262,269 ----
  {
      static TCHAR szValue[MAX_MACHINE_NAME_LEN + 1] = "";
  
!     if ( szValue[0] == 0 )
! 	CopyAnsiToString(GetClientNetbiosNameA(), szValue);
  
      return szValue;
  }
***************
*** 383,392 ****
  {
      static char szValueA[MAX_MACHINE_NAME_LEN + 1]="";
  	
! 	if ( szValueA[0] == 0 )
          lana_GetNetbiosName(szValueA, LANA_NETBIOS_NAME_FULL);
  
! 	return szValueA;
  }
  
  char *GetSalvageLogFileNameA()
--- 383,392 ----
  {
      static char szValueA[MAX_MACHINE_NAME_LEN + 1]="";
  	
!     if ( szValueA[0] == 0 )
          lana_GetNetbiosName(szValueA, LANA_NETBIOS_NAME_FULL);
  
!     return szValueA;
  }
  
  char *GetSalvageLogFileNameA()
***************
*** 401,433 ****
  
  BOOL GetLibHandles(afs_status_t *pStatus)
  {
! 	ASSERT(g_CfgData.szHostname[0]);
  
! 	int nResult;
  	
! 	// ************************* NOTE ********************************
! 	// * You MUST have already determined whether or not the host
! 	// * and client config info is valid before calling this function.
! 	// ***************************************************************
! 
! 	// This function can be called at any time to get handles to the cell and
! 	// the config library.  It will try to get the most powerful handle to the
! 	// cell that it can, and then use that to open the config library.  If the
! 	// libraries are already open, it will close them first.  Two handles to
! 	// the config library will be opened, one to the server to be configured,
! 	// and one to the client machine we are configuring from.  
! 	
! 	// There are two types of cell handles, NULL and Standard.  A null handle
! 	// can make calls to any server except DB servers.  We need this primarily
! 	// to talk to the bos server to determine the machine's current configuration,
! 	// and to configure the client information if it is not already.  A standard 
! 	// handle can talk to any server.  Standard handles can be either authenticated 
! 	// or unauthenticated.
  
! 	// Close all current handles
! 	CloseLibHandles();
  
! 	g_LogFile.Write("Getting handles to the cell and the config library.\r\n");
  
      if (!hClientCell) {
      	// Start by getting a null cell handle and using it to open the client
--- 401,433 ----
  
  BOOL GetLibHandles(afs_status_t *pStatus)
  {
!     ASSERT(g_CfgData.szHostname[0]);
  
!     int nResult;
  	
!     // ************************* NOTE ********************************
!     // * You MUST have already determined whether or not the host
!     // * and client config info is valid before calling this function.
!     // ***************************************************************
! 
!     // This function can be called at any time to get handles to the cell and
!     // the config library.  It will try to get the most powerful handle to the
!     // cell that it can, and then use that to open the config library.  If the
!     // libraries are already open, it will close them first.  Two handles to
!     // the config library will be opened, one to the server to be configured,
!     // and one to the client machine we are configuring from.  
! 
!     // There are two types of cell handles, NULL and Standard.  A null handle
!     // can make calls to any server except DB servers.  We need this primarily
!     // to talk to the bos server to determine the machine's current configuration,
!     // and to configure the client information if it is not already.  A standard 
!     // handle can talk to any server.  Standard handles can be either authenticated 
!     // or unauthenticated.
  
!     // Close all current handles
!     CloseLibHandles();
  
!     g_LogFile.Write("Getting handles to the cell and the config library.\r\n");
  
      if (!hClientCell) {
      	// Start by getting a null cell handle and using it to open the client
***************
*** 448,510 ****
      	}
      }
  
! 	// Now we need to get the most powerful cell handle that we can	and use it
! 	// to open the config library for the server.
  
! 	// If the client info is valid and we know what cell the server should be in,
! 	// and the client has that cell in its CellServDB, then we can get a Standard cell
! 	// handle.  However there is an exception: if this is the first server in the 
! 	// cell then there may not yet be an authentication server to talk to.  In that
! 	// case we use a null cell handle.
      if (g_CfgData.bValidClientInfo &&   // Client config is valid
          g_CfgData.szCellName[0] &&      // We have a cell name
          (!g_CfgData.bFirstServer || g_CfgData.bAuthServerRunning))  // Auth server is running
      {
! 		g_LogFile.Write("Opening a non-NULL cell handle to use with the server config library handle.\r\n");
  
          // Do we have the user info necessary to authenticate?
          BOOL bHaveUserInfo = g_CfgData.szAdminName[0] && g_CfgData.szAdminPW[0];
  
! 		// Open a standard cell handle.  szAdminName and szAdminPW will either be NULL, or
! 		// if they have been entered by the user, will be the admin name and password strings.
! 		if ((!g_CfgData.bFirstServer || g_CfgData.bAdminPrincipalCreated) && bHaveUserInfo) {
! 			g_LogFile.Write("Getting tokens in cell %s for user '%s'.\r\n", GetCellNameA(), GetAdminNameA());
! 			nResult = afsclient_TokenGetNew(GetCellNameA(), GetAdminNameA(), GetAdminPWA(), &g_hToken, pStatus);
! 		} else {
! 			g_LogFile.Write("Getting unauthenticated tokens for cell '%s'.\r\n", GetCellNameA());
! 			nResult = afsclient_TokenGetNew(GetCellNameA(), "", "", &g_hToken, pStatus);
! 		}
! 
! 		if (!nResult) {
! 			g_LogFile.Write("Failed to get tokens for the specified cell:  %lx.\r\n", (unsigned long)*pStatus);
! 			return FALSE;
! 		}
! 
! 		// If the admin name and password are NULL, then this will be an unauthenticated
! 		// connection to the cell.
! 		g_LogFile.Write("Getting cell handle for cell %s.\r\n", GetCellNameA());
! 		nResult = afsclient_CellOpen(GetCellNameA(), g_hToken, &g_hCell, pStatus);
! 		if (!nResult) {
!             g_LogFile.Write("Failed to open the cell:  %lx.\r\n", (unsigned long)*pStatus);
! 			return FALSE;
! 		}
  	} else {
         	g_LogFile.Write("Opening a NULL cell handle to use with the server config library handle.\r\n");
      	nResult = afsclient_NullCellOpen(&g_hCell, pStatus);
      	if (!nResult) {
              g_LogFile.Write("Failed to open a NULL cell handle:  %lx.\r\n", (unsigned long)*pStatus);
!     		return FALSE;
!     	}
!     }
! 
! 	// Get the server handle
! 	g_LogFile.Write("Getting config library handle for the server.\r\n");
! 	if (!cfg_HostOpen(g_hCell, GetHostnameA(), &g_hServer, pStatus)) {
          g_LogFile.Write("Failed to get config library handle for the server:  %lx.\r\n", (unsigned long)*pStatus);
! 		return FALSE;
! 	}
  
! 	return TRUE;
  }
  
  BOOL GetHandles(HWND hParentDlg)
--- 448,510 ----
      	}
      }
  
!     // Now we need to get the most powerful cell handle that we can and use it
!     // to open the config library for the server.
  
!     // If the client info is valid and we know what cell the server should be in,
!     // and the client has that cell in its CellServDB, then we can get a Standard cell
!     // handle.  However there is an exception: if this is the first server in the 
!     // cell then there may not yet be an authentication server to talk to.  In that
!     // case we use a null cell handle.
      if (g_CfgData.bValidClientInfo &&   // Client config is valid
          g_CfgData.szCellName[0] &&      // We have a cell name
          (!g_CfgData.bFirstServer || g_CfgData.bAuthServerRunning))  // Auth server is running
      {
! 	g_LogFile.Write("Opening a non-NULL cell handle to use with the server config library handle.\r\n");
  
          // Do we have the user info necessary to authenticate?
          BOOL bHaveUserInfo = g_CfgData.szAdminName[0] && g_CfgData.szAdminPW[0];
  
! 	// Open a standard cell handle.  szAdminName and szAdminPW will either be NULL, or
! 	// if they have been entered by the user, will be the admin name and password strings.
! 	if ((!g_CfgData.bFirstServer || g_CfgData.bAdminPrincipalCreated) && bHaveUserInfo) {
! 	    g_LogFile.Write("Getting tokens in cell %s for user '%s'.\r\n", GetCellNameA(), GetAdminNameA());
! 	    nResult = afsclient_TokenGetNew(GetCellNameA(), GetAdminNameA(), GetAdminPWA(), &g_hToken, pStatus);
  	} else {
+ 	    g_LogFile.Write("Getting unauthenticated tokens for cell '%s'.\r\n", GetCellNameA());
+ 	    nResult = afsclient_TokenGetNew(GetCellNameA(), "", "", &g_hToken, pStatus);
+ 	}
+ 
+ 	if (!nResult) {
+ 	    g_LogFile.Write("Failed to get tokens for the specified cell:  %lx.\r\n", (unsigned long)*pStatus);
+ 	    return FALSE;
+ 	}
+ 
+ 	// If the admin name and password are NULL, then this will be an unauthenticated
+ 	// connection to the cell.
+ 	g_LogFile.Write("Getting cell handle for cell %s.\r\n", GetCellNameA());
+ 	nResult = afsclient_CellOpen(GetCellNameA(), g_hToken, &g_hCell, pStatus);
+ 	if (!nResult) {
+             g_LogFile.Write("Failed to open the cell:  %lx.\r\n", (unsigned long)*pStatus);
+ 	    return FALSE;
+ 	}
+     } else {
         	g_LogFile.Write("Opening a NULL cell handle to use with the server config library handle.\r\n");
      	nResult = afsclient_NullCellOpen(&g_hCell, pStatus);
      	if (!nResult) {
              g_LogFile.Write("Failed to open a NULL cell handle:  %lx.\r\n", (unsigned long)*pStatus);
! 	    return FALSE;
!     	}	
!     }	
! 
!     // Get the server handle
!     g_LogFile.Write("Getting config library handle for the server.\r\n");
!     if (!cfg_HostOpen(g_hCell, GetHostnameA(), &g_hServer, pStatus)) {
          g_LogFile.Write("Failed to get config library handle for the server:  %lx.\r\n", (unsigned long)*pStatus);
! 	return FALSE;
!     }
  
!     return TRUE;
  }
  
  BOOL GetHandles(HWND hParentDlg)
***************
*** 527,598 ****
   */
  static void CloseLibHandles(BOOL bExiting)
  {
!      afs_status_t nStatus;
! 
! 	// We will close them in the reverse order of their creation.
  
! 	if (g_hServer) {
! 		cfg_HostClose(g_hServer, &nStatus);
! 		g_hServer = 0;
! 	}
  
! 	if (g_hCell) {
! 		afsclient_CellClose(g_hCell, &nStatus);
! 		g_hCell = 0;
! 	}
  
! 	if (g_hToken) {
! 		afsclient_TokenClose(g_hToken, &nStatus);
! 		g_hToken = 0;
! 	}
  
      // Only close the client cfg and cell handles if we are exiting.
! 	if (bExiting) {
          if (g_hClient) {
!     		cfg_HostClose(g_hClient, &nStatus);
! 	    	g_hClient = 0;
!         }
  
      	if (hClientCell) {
!     		afsclient_CellClose(hClientCell, &nStatus);
!     		hClientCell = 0;
      	}
      }
  }
  
  static void SetConfigDefaults()
  {
! 	if (g_CfgData.bWizard) {
! 		if (g_CfgData.configFS == CS_NULL)
! 			g_CfgData.configFS = CS_CONFIGURE;
! 
! 		if (g_CfgData.configDB == CS_NULL)
! 			g_CfgData.configDB = CS_CONFIGURE;
! 		
! 		if (g_CfgData.configBak == CS_NULL)
! 			g_CfgData.configBak = CS_CONFIGURE;
! 
! 		if (g_CfgData.configPartition == CS_NULL)
! 			g_CfgData.configPartition = CS_CONFIGURE;
! 
! 		if (g_CfgData.configRootVolumes == CS_NULL)
! 			g_CfgData.configRootVolumes = CS_CONFIGURE;
  
! 		if (g_CfgData.configRep == CS_NULL)
! 			g_CfgData.configRep = CS_CONFIGURE;
  
! 		if (g_CfgData.configSCS == CS_NULL)
! 			g_CfgData.configSCS = CS_DONT_CONFIGURE;
  
! 		if (g_CfgData.configSCC == CS_NULL)
! 			g_CfgData.configSCC = CS_DONT_CONFIGURE;
! 	}
  
! 	lstrcpy(g_CfgData.szAdminName, TEXT("admin"));
! 	lstrcpy(g_CfgData.szAdminUID, TEXT("0"));
  
! 	g_CfgData.bUseNextUid = TRUE;
! }
  
  	
  // Prototypes for each property page's dialog proc
--- 527,597 ----
   */
  static void CloseLibHandles(BOOL bExiting)
  {
!     afs_status_t nStatus;
  
!     // We will close them in the reverse order of their creation.
!     if (g_hServer) {
! 	cfg_HostClose(g_hServer, &nStatus);
! 	g_hServer = 0;
!     }
  
!     if (g_hCell) {
! 	afsclient_CellClose(g_hCell, &nStatus);
! 	g_hCell = 0;
!     }
  
!     if (g_hToken) {
! 	afsclient_TokenClose(g_hToken, &nStatus);
! 	g_hToken = 0;
!     }
  
      // Only close the client cfg and cell handles if we are exiting.
!     if (bExiting) {
          if (g_hClient) {
! 	    cfg_HostClose(g_hClient, &nStatus);
! 	    g_hClient = 0;
!         }	
  
      	if (hClientCell) {
! 	    afsclient_CellClose(hClientCell, &nStatus);
! 	    hClientCell = 0;
      	}
      }
  }
  
  static void SetConfigDefaults()
  {
!     if (g_CfgData.bWizard) {
! 	if (g_CfgData.configFS == CS_NULL)
! 	    g_CfgData.configFS = CS_CONFIGURE;
  
! 	if (g_CfgData.configDB == CS_NULL)
! 	    g_CfgData.configDB = CS_CONFIGURE;
  
! 	if (g_CfgData.configBak == CS_NULL)
! 	    g_CfgData.configBak = CS_CONFIGURE;
  
! 	if (g_CfgData.configPartition == CS_NULL)
! 	    g_CfgData.configPartition = CS_CONFIGURE;
  
! 	if (g_CfgData.configRootVolumes == CS_NULL)
! 	    g_CfgData.configRootVolumes = CS_CONFIGURE;
  
! 	if (g_CfgData.configRep == CS_NULL)
! 	    g_CfgData.configRep = CS_CONFIGURE;
! 
! 	if (g_CfgData.configSCS == CS_NULL)
! 	    g_CfgData.configSCS = CS_DONT_CONFIGURE;
! 
! 	if (g_CfgData.configSCC == CS_NULL)
! 	    g_CfgData.configSCC = CS_DONT_CONFIGURE;
!     }	
! 
!     lstrcpy(g_CfgData.szAdminName, TEXT("admin"));
!     lstrcpy(g_CfgData.szAdminUID, TEXT("0"));
! 
!     g_CfgData.bUseNextUid = TRUE;
! }	
  
  	
  // Prototypes for each property page's dialog proc
***************
*** 601,660 ****
  
  static void RunCfgTool()
  {
! 	// If the client info is invalid, then the config tool cannot run.  Inform the user and
! 	// ask if they want to run the wizard instead.
! 	if (!g_CfgData.bValidClientInfo) {
! 		int nChoice = MsgBox(0, IDS_NEED_CLIENT_INFO, GetAppTitleID(), MB_YESNO | MB_ICONSTOP);
! 		if (nChoice == IDYES)
! 			RunWizard();
! 		return;
! 	}
! 
! 	// If the server info is invalid, then the config tool cannot run.  The Wizard must be run
! 	// to initially configure the server.  Inform the user and ask if they want to run the wizard instead.
! 	if (!g_CfgData.bValidServerInfo) {
! 		int nChoice = MsgBox(0, IDS_NEED_SERVER_INFO, GetAppTitleID(), MB_OKCANCEL | MB_ICONEXCLAMATION);
! 		if (nChoice == IDOK)
! 			RunWizard();
! 		return;
! 	}
  
! 	g_CfgData.bWizard = FALSE;
  
! 	SetConfigDefaults();
  
! 	RegisterConfigToolHelp();
  
! 	// Create the prop sheet
! 	g_pSheet = PropSheet_Create(IDS_CFG_TOOL_APP_TITLE, TRUE);
! 	
! 	// Add the pages
! 	PropSheet_AddTab(g_pSheet, IDS_PARTITIONS_PAGE_TITLE, IDD_PARTITIONS_PAGE, (DLGPROC)PartitionsPageDlgProc, 0, TRUE, TRUE);
! 	PropSheet_AddTab(g_pSheet, IDS_SERVICES_PAGE_TITLE, IDD_SERVICES_PAGE, (DLGPROC)ServicesPageDlgProc, 0, TRUE);
  
! 	// Let the user see it
! 	PropSheet_ShowModal(g_pSheet);
! }
  
  static void RunWizard()
  {
! 	g_CfgData.bWizard = TRUE;
  
      SetConfigDefaults();
  
! 	RegisterWizardHelp();
! 	
! 	g_pWiz = new WIZARD;
! 	g_pWiz->SetDialogTemplate(IDD_WIZARD, IDC_WIZARD_LEFTPANE, IDC_WIZARD_RIGHTPANE, IDBACK, IDNEXT);
! 	g_pWiz->SetGraphic(IDB_GRAPHIC_16, IDB_GRAPHIC_256);
! 	g_pWiz->SetStates(g_aStates, g_nNumStates);
! 	g_pWiz->SetGraphicCallback(PaintPageGraphic);
  
! 	g_pWiz->SetState(sidSTEP_ONE);
! 	g_pWiz->Show();
  
! 	delete g_pWiz;
  
! 	g_pWiz = 0;
! }
  
--- 600,659 ----
  
  static void RunCfgTool()
  {
!     // If the client info is invalid, then the config tool cannot run.  Inform the user and
!     // ask if they want to run the wizard instead.
!     if (!g_CfgData.bValidClientInfo) {
! 	int nChoice = MsgBox(0, IDS_NEED_CLIENT_INFO, GetAppTitleID(), MB_YESNO | MB_ICONSTOP);
! 	if (nChoice == IDYES)
! 	    RunWizard();
! 	return;
!     }	
! 
!     // If the server info is invalid, then the config tool cannot run.  The Wizard must be run
!     // to initially configure the server.  Inform the user and ask if they want to run the wizard instead.
!     if (!g_CfgData.bValidServerInfo) {
! 	int nChoice = MsgBox(0, IDS_NEED_SERVER_INFO, GetAppTitleID(), MB_OKCANCEL | MB_ICONEXCLAMATION);
! 	if (nChoice == IDOK)
! 	    RunWizard();
! 	return;
!     }
  
!     g_CfgData.bWizard = FALSE;
  
!     SetConfigDefaults();
  
!     RegisterConfigToolHelp();
  
!     // Create the prop sheet
!     g_pSheet = PropSheet_Create(IDS_CFG_TOOL_APP_TITLE, TRUE);
  
!     // Add the pages
!     PropSheet_AddTab(g_pSheet, IDS_PARTITIONS_PAGE_TITLE, IDD_PARTITIONS_PAGE, (DLGPROC)PartitionsPageDlgProc, 0, TRUE, TRUE);
!     PropSheet_AddTab(g_pSheet, IDS_SERVICES_PAGE_TITLE, IDD_SERVICES_PAGE, (DLGPROC)ServicesPageDlgProc, 0, TRUE);
! 
!     // Let the user see it
!     PropSheet_ShowModal(g_pSheet);
! }	
  
  static void RunWizard()
  {
!     g_CfgData.bWizard = TRUE;
  
      SetConfigDefaults();
  
!     RegisterWizardHelp();
  
!     g_pWiz = new WIZARD;
!     g_pWiz->SetDialogTemplate(IDD_WIZARD, IDC_WIZARD_LEFTPANE, IDC_WIZARD_RIGHTPANE, IDBACK, IDNEXT);
!     g_pWiz->SetGraphic(IDB_GRAPHIC_16, IDB_GRAPHIC_256);
!     g_pWiz->SetStates(g_aStates, g_nNumStates);
!     g_pWiz->SetGraphicCallback(PaintPageGraphic);
  
!     g_pWiz->SetState(sidSTEP_ONE);
!     g_pWiz->Show();
  
!     delete g_pWiz;
! 
!     g_pWiz = 0;
! }	
  
Index: openafs/src/WINNT/afssvrcfg/backup_server_page.cpp
diff -c openafs/src/WINNT/afssvrcfg/backup_server_page.cpp:1.2 openafs/src/WINNT/afssvrcfg/backup_server_page.cpp:1.2.32.1
*** openafs/src/WINNT/afssvrcfg/backup_server_page.cpp:1.2	Sat Nov  4 05:01:50 2000
--- openafs/src/WINNT/afssvrcfg/backup_server_page.cpp	Tue Dec 26 15:22:28 2006
***************
*** 48,85 ****
   */
  BOOL CALLBACK BackupPageDlgProc(HWND hwndDlg, UINT msg, WPARAM wp, LPARAM lp)
  {
! 	if (WizStep_Common_DlgProc (hwndDlg, msg, wp, lp))
! 		return FALSE;
! 
! 	switch (msg) {
! 		case WM_INITDIALOG:
! 	         OnInitDialog(hwndDlg);
! 		     break;
! 
! 		case WM_COMMAND:
! 			switch (LOWORD(wp)) {
! 				case IDNEXT:
! 					g_pWiz->SetState(sidSTEP_EIGHT);
! 					break;
! 
! 				case IDBACK:
! 				   g_pWiz->SetState(sidSTEP_SIX);
! 				   break;
! 
! 				case IDC_DONT_CONFIG_BACKUP_SERVER:
! 					g_CfgData.configBak = CS_DONT_CONFIGURE;
! 					break;
! 
! 				case IDC_CONFIG_BACKUP_SERVER:
! 					g_CfgData.configBak = CS_CONFIGURE;
! 					break;
! 			}
! 		break;
  
  	}
  
! 	return FALSE;
! }
  
  
  /*
--- 48,85 ----
   */
  BOOL CALLBACK BackupPageDlgProc(HWND hwndDlg, UINT msg, WPARAM wp, LPARAM lp)
  {
!     if (WizStep_Common_DlgProc (hwndDlg, msg, wp, lp))
! 	return FALSE;
  
+     switch (msg) {
+     case WM_INITDIALOG:
+ 	OnInitDialog(hwndDlg);
+ 	break;
+ 
+     case WM_COMMAND:
+ 	switch (LOWORD(wp)) {
+ 	case IDNEXT:
+ 	    g_pWiz->SetState(sidSTEP_EIGHT);
+ 	    break;
+ 
+ 	case IDBACK:
+ 	    g_pWiz->SetState(sidSTEP_SIX);
+ 	    break;
+ 
+ 	case IDC_DONT_CONFIG_BACKUP_SERVER:
+ 	    g_CfgData.configBak = CS_DONT_CONFIGURE;
+ 	    break;
+ 
+ 	case IDC_CONFIG_BACKUP_SERVER:
+ 	    g_CfgData.configBak = CS_CONFIGURE;
+ 	    break;
  	}
+ 	break;
  
!     }
! 
!     return FALSE;
! }	
  
  
  /*
***************
*** 93,127 ****
   */
  static void OnInitDialog(HWND hwndDlg)
  {
! 	hDlg = hwndDlg;
  
      CalcOptionButtonSeparationHeight();
  
! 	g_pWiz->EnableButtons(BACK_BUTTON | NEXT_BUTTON);
! 	g_pWiz->SetButtonText(IDNEXT, IDS_NEXT);
! 	g_pWiz->SetDefaultControl(IDNEXT);
! 
! 	if (g_CfgData.configBak == CS_ALREADY_CONFIGURED) {
! 		CantBackup(IDS_ALREADY_A_BACKUP_SERVER);
! 		return;
! 	}
! 
! 	// Should this step be disabled?  Yes, if this machine
! 	// is not configured as a database server.
! 	if (!ConfiguredOrConfiguring(g_CfgData.configDB)) {
! 		CantBackup(IDS_NOT_A_DB_SERVER);
! 		EnableStep(g_CfgData.configBak, FALSE);
! 		return;
! 	}
! 
! 	// Enable this in case it was disabled the last time
! 	EnableStep(g_CfgData.configBak);
! 
! 	if (g_CfgData.configBak == CS_DONT_CONFIGURE)
! 		SetCheck(hDlg, IDC_DONT_CONFIG_BACKUP_SERVER);
! 	else if (g_CfgData.configBak == CS_CONFIGURE)
! 		SetCheck(hDlg, IDC_CONFIG_BACKUP_SERVER);
! }
  
  
  /*
--- 93,127 ----
   */
  static void OnInitDialog(HWND hwndDlg)
  {
!     hDlg = hwndDlg;
  
      CalcOptionButtonSeparationHeight();
  
!     g_pWiz->EnableButtons(BACK_BUTTON | NEXT_BUTTON);
!     g_pWiz->SetButtonText(IDNEXT, IDS_NEXT);
!     g_pWiz->SetDefaultControl(IDNEXT);
! 
!     if (g_CfgData.configBak == CS_ALREADY_CONFIGURED) {
! 	CantBackup(IDS_ALREADY_A_BACKUP_SERVER);
! 	return;
!     }
! 
!     // Should this step be disabled?  Yes, if this machine
!     // is not configured as a database server.
!     if (!ConfiguredOrConfiguring(g_CfgData.configDB)) {
! 	CantBackup(IDS_NOT_A_DB_SERVER);
! 	EnableStep(g_CfgData.configBak, FALSE);
! 	return;
!     }
! 
!     // Enable this in case it was disabled the last time
!     EnableStep(g_CfgData.configBak);
! 
!     if (g_CfgData.configBak == CS_DONT_CONFIGURE)
! 	SetCheck(hDlg, IDC_DONT_CONFIG_BACKUP_SERVER);
!     else if (g_CfgData.configBak == CS_CONFIGURE)
! 	SetCheck(hDlg, IDC_CONFIG_BACKUP_SERVER);
! }	
  
  
  /*
***************
*** 130,145 ****
   */
  static void CantBackup(UINT nMsgID)
  {
! 	TCHAR szMsg[cchRESOURCE];
  
! 	GetString(szMsg, nMsgID);
  
! 	ShowWnd(hDlg, IDC_BACKUP_SERVER_QUESTION, FALSE);
! 	ShowWnd(hDlg, IDC_CONFIG_BACKUP_SERVER, FALSE);
! 	ShowWnd(hDlg, IDC_DONT_CONFIG_BACKUP_SERVER, FALSE);
  
! 	ShowWnd(hDlg, IDC_CANT_BACKUP_MSG);
! 	SetWndText(hDlg, IDC_CANT_BACKUP_MSG, szMsg);
  }
  
  static void CalcOptionButtonSeparationHeight()
--- 130,145 ----
   */
  static void CantBackup(UINT nMsgID)
  {
!     TCHAR szMsg[cchRESOURCE];
  
!     GetString(szMsg, nMsgID);
  
!     ShowWnd(hDlg, IDC_BACKUP_SERVER_QUESTION, FALSE);
!     ShowWnd(hDlg, IDC_CONFIG_BACKUP_SERVER, FALSE);
!     ShowWnd(hDlg, IDC_DONT_CONFIG_BACKUP_SERVER, FALSE);
  
!     ShowWnd(hDlg, IDC_CANT_BACKUP_MSG);
!     SetWndText(hDlg, IDC_CANT_BACKUP_MSG, szMsg);
  }
  
  static void CalcOptionButtonSeparationHeight()
Index: openafs/src/WINNT/afssvrcfg/cfg_utils.cpp
diff -c openafs/src/WINNT/afssvrcfg/cfg_utils.cpp:1.3 openafs/src/WINNT/afssvrcfg/cfg_utils.cpp:1.3.14.1
*** openafs/src/WINNT/afssvrcfg/cfg_utils.cpp:1.3	Sat Dec  6 22:39:50 2003
--- openafs/src/WINNT/afssvrcfg/cfg_utils.cpp	Tue Dec 26 15:22:28 2006
***************
*** 27,95 ****
   */
  BOOL IsStepEnabled(const CONFIG_STATE& step)
  {
! 	return ((step & CS_DISABLED) == 0);
  }
  
  void EnableStep(CONFIG_STATE& step, BOOL bEnable)
! {
! 	if (bEnable)
! 		step &= ~CS_DISABLED;
! 	else
! 		step |= CS_DISABLED;		
! }
  
  BOOL ShouldConfig(const CONFIG_STATE& state)		
  {
! 	return (state == CS_CONFIGURE);
  }
  
  BOOL DontConfig(const CONFIG_STATE& state)
  {
! 	return (state == CS_DONT_CONFIGURE);
  }
  
  BOOL ShouldUnconfig(const CONFIG_STATE& state)
  {
! 	return (state == CS_UNCONFIGURE);
  }
  
  BOOL ConfiguredOrConfiguring(const CONFIG_STATE& step)
  {
! 	return (step == CS_CONFIGURE) || (step == CS_ALREADY_CONFIGURED);
  }
  
  BOOL Configured(const CONFIG_STATE& step)
  {
! 	return (step == CS_ALREADY_CONFIGURED);
  }
  
  void ToggleConfig(CONFIG_STATE& state)
  {
! 	if (ShouldConfig(state))
! 		state = CS_DONT_CONFIGURE;
! 	else if (DontConfig(state))
! 		state = CS_CONFIGURE;
! }
  
  void RedrawGraphic()
  {
! 	HWND hWiz = g_pWiz->GetWindow();
  
! 	HWND hBg = GetDlgItem(hWiz, IDC_WIZARD_LEFTPANE);
  
! 	RECT rect;
! 	GetClientRect(hBg, &rect);
  
! 	InvalidateRect(hBg, &rect, FALSE);
! 	UpdateWindow(hBg);
! }
  
  UINT GetAppTitleID()
  {
! 	if (g_CfgData.bWizard)
! 		return IDS_WIZARD_APP_TITLE;
  
! 	return IDS_CFG_TOOL_APP_TITLE;
  }
  
  const char *GetAdminLibErrorCodeMessage(afs_status_t nErrorCode)
--- 27,95 ----
   */
  BOOL IsStepEnabled(const CONFIG_STATE& step)
  {
!     return ((step & CS_DISABLED) == 0);
  }
  
  void EnableStep(CONFIG_STATE& step, BOOL bEnable)
! {	
!     if (bEnable)
! 	step &= ~CS_DISABLED;
!     else
! 	step |= CS_DISABLED;		
! }	
  
  BOOL ShouldConfig(const CONFIG_STATE& state)		
  {
!     return (state == CS_CONFIGURE);
  }
  
  BOOL DontConfig(const CONFIG_STATE& state)
  {
!     return (state == CS_DONT_CONFIGURE);
  }
  
  BOOL ShouldUnconfig(const CONFIG_STATE& state)
  {
!     return (state == CS_UNCONFIGURE);
  }
  
  BOOL ConfiguredOrConfiguring(const CONFIG_STATE& step)
  {
!     return (step == CS_CONFIGURE) || (step == CS_ALREADY_CONFIGURED);
  }
  
  BOOL Configured(const CONFIG_STATE& step)
  {
!     return (step == CS_ALREADY_CONFIGURED);
  }
  
  void ToggleConfig(CONFIG_STATE& state)
  {
!     if (ShouldConfig(state))
! 	state = CS_DONT_CONFIGURE;
!     else if (DontConfig(state))
! 	state = CS_CONFIGURE;
! }	
  
  void RedrawGraphic()
  {
!     HWND hWiz = g_pWiz->GetWindow();
  
!     HWND hBg = GetDlgItem(hWiz, IDC_WIZARD_LEFTPANE);
  
!     RECT rect;
!     GetClientRect(hBg, &rect);
  
!     InvalidateRect(hBg, &rect, FALSE);
!     UpdateWindow(hBg);
! }	
  
  UINT GetAppTitleID()
  {
!     if (g_CfgData.bWizard)
! 	return IDS_WIZARD_APP_TITLE;
  
!     return IDS_CFG_TOOL_APP_TITLE;
  }
  
  const char *GetAdminLibErrorCodeMessage(afs_status_t nErrorCode)
***************
*** 116,140 ****
  
  void ShowError(HWND hDlg, afs_status_t nErrorCode, UINT uiErrorMsgID)
  {
! 	TCHAR szMsg[cchRESOURCE];
  
      LogError(nErrorCode);
  
! 	GetString(szMsg, uiErrorMsgID);
! 	
! 	ErrorDialog(nErrorCode, szMsg);
  
      SetWndText(hDlg, IDC_STATUS_MSG, IDS_CONFIG_FAILED);
  }
  
  int ShowWarning(HWND hDlg, UINT uiMsgID)
  {
! 	TCHAR szMsg[cchRESOURCE];
! 	TCHAR szTitle[cchRESOURCE];
  
! 	GetString(szTitle, GetAppTitleID());
! 	GetString(szMsg, uiMsgID);
  
! 	return MessageBox(hDlg, szMsg, szTitle, MB_OKCANCEL | MB_ICONWARNING);
  }
  
--- 116,140 ----
  
  void ShowError(HWND hDlg, afs_status_t nErrorCode, UINT uiErrorMsgID)
  {
!     TCHAR szMsg[cchRESOURCE];
  
      LogError(nErrorCode);
  
!     GetString(szMsg, uiErrorMsgID);
! 
!     ErrorDialog(nErrorCode, szMsg);
  
      SetWndText(hDlg, IDC_STATUS_MSG, IDS_CONFIG_FAILED);
  }
  
  int ShowWarning(HWND hDlg, UINT uiMsgID)
  {
!     TCHAR szMsg[cchRESOURCE];
!     TCHAR szTitle[cchRESOURCE];
  
!     GetString(szTitle, GetAppTitleID());
!     GetString(szMsg, uiMsgID);
  
!     return MessageBox(hDlg, szMsg, szTitle, MB_OKCANCEL | MB_ICONWARNING);
  }
  
Index: openafs/src/WINNT/afssvrcfg/config_server_page.cpp
diff -c openafs/src/WINNT/afssvrcfg/config_server_page.cpp:1.6 openafs/src/WINNT/afssvrcfg/config_server_page.cpp:1.6.4.1
*** openafs/src/WINNT/afssvrcfg/config_server_page.cpp:1.6	Wed Jul  6 20:23:24 2005
--- openafs/src/WINNT/afssvrcfg/config_server_page.cpp	Tue Dec 26 15:22:28 2006
***************
*** 25,30 ****
--- 25,33 ----
  #include <afs\afs_clientAdmin.h>
  #include <afs\volser.h>
  #include <afs\dirpath.h>
+ #include <WINNT\afsreg.h>
+ #include <afs\smb_iocons.h>
+ #include <afs\pioctl_nt.h>
  }
  #include "config.h"
  #include "graphics.h"
***************
*** 102,112 ****
   * DEFINITIONS _________________________________________________________________
   *
   */
! #define	QUORUM_WAIT_TIMEOUT			3 * 60  			    // 3 minutes in seconds
! #define ROOT_VOLUMES_QUOTA			5000				    // k bytes
! #define	RX_TIMEOUT					15 * 1000			    // 15 seconds in milleseconds
! #define CELLSERVDB_UPDATE_TIMEOUT	RX_TIMEOUT * 2
! #define INVALID_PARTITION_ID		(UINT)VOLMAXPARTS + 1
  #define CLIENT_START_TIMEOUT        2 * 60                  // 2 minutes in seconds
  #define CLIENT_STOP_TIMEOUT         3 * 60                  // 2 minutes in seconds
  
--- 105,115 ----
   * DEFINITIONS _________________________________________________________________
   *
   */
! #define	QUORUM_WAIT_TIMEOUT	    3 * 60  		    // 3 minutes in seconds
! #define ROOT_VOLUMES_QUOTA	    5000		    // k bytes
! #define	RX_TIMEOUT		    15 * 1000		    // 15 seconds in milleseconds
! #define CELLSERVDB_UPDATE_TIMEOUT   RX_TIMEOUT * 2
! #define INVALID_PARTITION_ID	    (UINT)VOLMAXPARTS + 1
  #define CLIENT_START_TIMEOUT        2 * 60                  // 2 minutes in seconds
  #define CLIENT_STOP_TIMEOUT         3 * 60                  // 2 minutes in seconds
  
***************
*** 160,171 ****
   *	Structure that is used to form an array of all possible configuration steps.
   */
  struct CONFIG_STEP {
! 	STEP_STATE eState;		// Where we are at in performing this step
! 	STEP_FUNC pFunc;		// Function used to perform this step
! 	UINT nDescCtrlID;		// Control ID of the static used to hold the steps description
! 	UINT nGraphicCtrlID;	// Control ID of the static that will display the graphic
! 	UINT nMsgID;			// Message to show when performing this step
! 	UINT nDescID;			// Step description to show
  };
  
  
--- 163,174 ----
   *	Structure that is used to form an array of all possible configuration steps.
   */
  struct CONFIG_STEP {
!     STEP_STATE eState;		// Where we are at in performing this step
!     STEP_FUNC pFunc;		// Function used to perform this step
!     UINT nDescCtrlID;		// Control ID of the static used to hold the steps description
!     UINT nGraphicCtrlID;	// Control ID of the static that will display the graphic
!     UINT nMsgID;		// Message to show when performing this step
!     UINT nDescID;		// Step description to show
  };
  
  
***************
*** 178,196 ****
   *	to just reproduce the two fields for ease of use.
   */
  struct STEP_GUI_INFO {
! 	UINT nDescCtrlID;		// Control ID of the static used to hold the steps description
! 	UINT nGraphicCtrlID;	// Control ID of the static that will display the graphic
  };
  
  static STEP_GUI_INFO StepGuiCtrlIDs[] = {
! 	{ IDC_STEP1, IDC_STEP1_GRAPHIC },
! 	{ IDC_STEP2, IDC_STEP2_GRAPHIC },
! 	{ IDC_STEP3, IDC_STEP3_GRAPHIC },
! 	{ IDC_STEP4, IDC_STEP4_GRAPHIC },
! 	{ IDC_STEP5, IDC_STEP5_GRAPHIC },
! 	{ IDC_STEP6, IDC_STEP6_GRAPHIC },
! 	{ IDC_STEP7, IDC_STEP7_GRAPHIC },
! 	{ IDC_STEP8, IDC_STEP8_GRAPHIC }
  };
  
  
--- 181,199 ----
   *	to just reproduce the two fields for ease of use.
   */
  struct STEP_GUI_INFO {
!     UINT nDescCtrlID;		// Control ID of the static used to hold the steps description
!     UINT nGraphicCtrlID;	// Control ID of the static that will display the graphic
  };
  
  static STEP_GUI_INFO StepGuiCtrlIDs[] = {
!     { IDC_STEP1, IDC_STEP1_GRAPHIC },
!     { IDC_STEP2, IDC_STEP2_GRAPHIC },
!     { IDC_STEP3, IDC_STEP3_GRAPHIC },
!     { IDC_STEP4, IDC_STEP4_GRAPHIC },
!     { IDC_STEP5, IDC_STEP5_GRAPHIC },
!     { IDC_STEP6, IDC_STEP6_GRAPHIC },
!     { IDC_STEP7, IDC_STEP7_GRAPHIC },
!     { IDC_STEP8, IDC_STEP8_GRAPHIC }
  };
  
  
***************
*** 200,238 ****
   *	enum MUST match the order of the steps in the STEPS arrray below.
   */
  enum STEP_ID {
! 	SID_CONFIG_PARTITION,
! 	SID_DEFINE_CELL_FOR_SERVER,
! 	SID_DEFINE_CELL_FOR_CLIENT,
! 	SID_START_BOS,
! 	SID_START_AUTH,
! 	SID_CREATE_PRINCIPAL_AND_KEY,
! 	SID_START_DB,
! 	SID_START_DB_AND_BAK,
! 	SID_START_BAK,
! 	SID_CREATE_ADMIN_PRINCIPAL,
! 	SID_START_FS_VL_AND_SALVAGER,
! 	SID_CONFIG_SCC,
! 	SID_CONFIG_SCS,
! 	SID_CREATE_ROOT_AFS,
! 	SID_START_CLIENT,
! 	SID_SET_ROOT_ACL,
! 	SID_CREATE_ROOT_CELL,
! 	SID_MOUNT_ROOT_CELL_STANDARD,
! 	SID_SET_ROOT_CELL_ACL,
! 	SID_MOUNT_ROOT_CELL_RW,
! 	SID_REPLICATE,
! 	SID_ENABLE_AUTH_CHECKING,
! 	SID_RESTART_SERVERS,
! 	SID_ADD_TO_CELLSERVDB,
! 	SID_RESTART_ALL_DB_SERVERS,
! 	SID_VOS_OPEN_SERVER,
! 	SID_UNCONFIG_DB,
! 	SID_UNCONFIG_BAK,
! 	SID_UNCONFIG_FS,
! 	SID_UNCONFIG_SCS,
! 	SID_UNCONFIG_SCC,
! 	SID_POST_CONFIG,
! 	SID_GET_CREDENTIALS,
      SID_GET_ROOT_VOLUME_INFO
  };
  
--- 203,241 ----
   *	enum MUST match the order of the steps in the STEPS arrray below.
   */
  enum STEP_ID {
!     SID_CONFIG_PARTITION,
!     SID_DEFINE_CELL_FOR_SERVER,
!     SID_DEFINE_CELL_FOR_CLIENT,
!     SID_START_BOS,
!     SID_START_AUTH,
!     SID_CREATE_PRINCIPAL_AND_KEY,
!     SID_START_DB,
!     SID_START_DB_AND_BAK,
!     SID_START_BAK,
!     SID_CREATE_ADMIN_PRINCIPAL,
!     SID_START_FS_VL_AND_SALVAGER,
!     SID_CONFIG_SCC,
!     SID_CONFIG_SCS,
!     SID_CREATE_ROOT_AFS,
!     SID_START_CLIENT,
!     SID_SET_ROOT_ACL,
!     SID_CREATE_ROOT_CELL,
!     SID_MOUNT_ROOT_CELL_STANDARD,
!     SID_SET_ROOT_CELL_ACL,
!     SID_MOUNT_ROOT_CELL_RW,
!     SID_REPLICATE,
!     SID_ENABLE_AUTH_CHECKING,
!     SID_RESTART_SERVERS,
!     SID_ADD_TO_CELLSERVDB,
!     SID_RESTART_ALL_DB_SERVERS,
!     SID_VOS_OPEN_SERVER,
!     SID_UNCONFIG_DB,
!     SID_UNCONFIG_BAK,
!     SID_UNCONFIG_FS,
!     SID_UNCONFIG_SCS,
!     SID_UNCONFIG_SCC,
!     SID_POST_CONFIG,
!     SID_GET_CREDENTIALS,
      SID_GET_ROOT_VOLUME_INFO
  };
  
***************
*** 251,290 ****
   *	depends on exactly how the server is being configured.
   */
  static CONFIG_STEP STEPS[MAX_STEPS] = {
! 	{ SS_STEP_TO_BE_DONE, ConfigPartition,		0, 0, IDS_PARTITION_STEP,					IDS_PARTITION_STEP_DESC },
! 	{ SS_STEP_TO_BE_DONE, DefineCellForServer,	0, 0, IDS_DEFINE_CELL_NAME_STEP,			0 },
! 	{ SS_STEP_TO_BE_DONE, DefineCellForClient,	0, 0, IDS_DEFINE_CELL_MEMBERSHIP_STEP,		0 },
! 	{ SS_STEP_TO_BE_DONE, StartBosServer,		0, 0, IDS_START_BOS_SERVER_STEP,			0 },
! 	{ SS_STEP_TO_BE_DONE, StartAuthServer,		0, 0, IDS_START_AUTH_SERVER_STEP,			0 },
! 	{ SS_STEP_TO_BE_DONE, CreatePrincipalAndKey,0, 0, IDS_CREATE_PRINCIPAL_AND_KEY_STEP,	0 },
! 	{ SS_STEP_TO_BE_DONE, StartDbServers,		0, 0, IDS_START_DB_STEP,					IDS_DB_STEP_DESC },
! 	{ SS_STEP_TO_BE_DONE, StartDbServers,		0, 0, IDS_START_DB_AND_BK_STEP,				IDS_DB_AND_BK_STEP_DESC },
! 	{ SS_STEP_TO_BE_DONE, StartDbServers,		0, 0, IDS_START_BK_STEP,					IDS_BK_STEP_DESC },	
! 	{ SS_STEP_TO_BE_DONE, CreateAdminPrincipal,	0, 0, IDS_CREATE_ADMIN_PRINCIPAL_STEP,		0 },
! 	{ SS_STEP_TO_BE_DONE, StartFsVlAndSalvager,	0, 0, IDS_START_FS_STEP,					IDS_FS_STEP_DESC },
! 	{ SS_STEP_TO_BE_DONE, ConfigSCC,			0, 0, IDS_START_SCC_STEP,					IDS_SCC_STEP_DESC },
! 	{ SS_STEP_TO_BE_DONE, ConfigSCS,			0, 0, IDS_START_SCS_STEP,					IDS_SCS_STEP_DESC },
! 	{ SS_STEP_TO_BE_DONE, CreateRootAfs,		0, 0, IDS_CREATE_ROOT_AFS_STEP,				IDS_ROOT_AFS_STEP_DESC },
! 	{ SS_STEP_TO_BE_DONE, StartClient,			0, 0, IDS_START_CLIENT_STEP,				0 },
! 	{ SS_STEP_TO_BE_DONE, SetRootAcl,			0, 0, IDS_SET_ROOT_ACL_STEP,				0 },
! 	{ SS_STEP_TO_BE_DONE, CreateRootCell,		0, 0, IDS_CREATE_ROOT_CELL_STEP,			0 },
! 	{ SS_STEP_TO_BE_DONE, MountRootCellStandard,0, 0, IDS_MOUNT_ROOT_CELL_STANDARD_STEP,	0 },
! 	{ SS_STEP_TO_BE_DONE, SetRootCellAcl,		0, 0, IDS_SET_ROOT_CELL_ACL_STEP,			0 },
! 	{ SS_STEP_TO_BE_DONE, MountRootCellRW,		0, 0, IDS_MOUNT_ROOT_CELL_RW_STEP,			0 },
! 	{ SS_STEP_TO_BE_DONE, Replicate,			0, 0, IDS_REP_STEP,							IDS_REP_STEP_DESC },
! 	{ SS_STEP_TO_BE_DONE, EnableAuthChecking,	0, 0, IDS_ENABLE_AUTH_CHECKING_STEP,		0 },
! 	{ SS_STEP_TO_BE_DONE, RestartServers,		0, 0, IDS_RESTART_SERVERS_STEP,				0 },
! 	{ SS_STEP_TO_BE_DONE, AddToCellServDB,		0, 0, IDS_ADD_TO_CELLSERVDB_STEP,			0 },
! 	{ SS_STEP_TO_BE_DONE, RestartAllDbServers,	0, 0, IDS_RESTART_ALL_DB_SERVERS_STEP,		0 },
! 	{ SS_STEP_TO_BE_DONE, VosOpenServer,		0, 0, IDS_NO_MSG_STEP,						0 },
! 	{ SS_STEP_TO_BE_DONE, UnconfigDB,			0, 0, IDS_UNCONFIG_DB_STEP,					IDS_UNCONFIG_DB_STEP_DESC },
! 	{ SS_STEP_TO_BE_DONE, UnconfigBak,			0, 0, IDS_UNCONFIG_BK_STEP,					IDS_UNCONFIG_BK_STEP_DESC },	
! 	{ SS_STEP_TO_BE_DONE, UnconfigFS,			0, 0, IDS_UNCONFIG_FS_STEP,					IDS_UNCONFIG_FS_STEP_DESC },
! 	{ SS_STEP_TO_BE_DONE, UnconfigSCS,			0, 0, IDS_UNCONFIG_SCS_STEP,				IDS_UNCONFIG_SCS_STEP_DESC },
! 	{ SS_STEP_TO_BE_DONE, UnconfigSCC,			0, 0, IDS_UNCONFIG_SCC_STEP,				IDS_UNCONFIG_SCC_STEP_DESC },
! 	{ SS_STEP_TO_BE_DONE, PostConfig,           0, 0, IDS_NO_MSG_STEP,		                0 },
! 	{ SS_STEP_TO_BE_DONE, UpgradeLibHandles,	0, 0, IDS_GET_CREDENTIALS_STEP,				0 },
! 	{ SS_STEP_TO_BE_DONE, GetRootVolumeInfo,    0, 0, IDS_NO_MSG_STEP,		                0 },
  };
  
  
--- 254,293 ----
   *	depends on exactly how the server is being configured.
   */
  static CONFIG_STEP STEPS[MAX_STEPS] = {
!     { SS_STEP_TO_BE_DONE, ConfigPartition,	0, 0, IDS_PARTITION_STEP,		IDS_PARTITION_STEP_DESC },
!     { SS_STEP_TO_BE_DONE, DefineCellForServer,  0, 0, IDS_DEFINE_CELL_NAME_STEP,	0 },
!     { SS_STEP_TO_BE_DONE, DefineCellForClient,  0, 0, IDS_DEFINE_CELL_MEMBERSHIP_STEP,	0 },
!     { SS_STEP_TO_BE_DONE, StartBosServer,	0, 0, IDS_START_BOS_SERVER_STEP,	0 },
!     { SS_STEP_TO_BE_DONE, StartAuthServer,	0, 0, IDS_START_AUTH_SERVER_STEP,	0 },
!     { SS_STEP_TO_BE_DONE, CreatePrincipalAndKey,0, 0, IDS_CREATE_PRINCIPAL_AND_KEY_STEP,0 },
!     { SS_STEP_TO_BE_DONE, StartDbServers,	0, 0, IDS_START_DB_STEP,		IDS_DB_STEP_DESC },
!     { SS_STEP_TO_BE_DONE, StartDbServers,	0, 0, IDS_START_DB_AND_BK_STEP,		IDS_DB_AND_BK_STEP_DESC },
!     { SS_STEP_TO_BE_DONE, StartDbServers,	0, 0, IDS_START_BK_STEP,		IDS_BK_STEP_DESC },	
!     { SS_STEP_TO_BE_DONE, CreateAdminPrincipal, 0, 0, IDS_CREATE_ADMIN_PRINCIPAL_STEP,	0 },
!     { SS_STEP_TO_BE_DONE, StartFsVlAndSalvager, 0, 0, IDS_START_FS_STEP,		IDS_FS_STEP_DESC },
!     { SS_STEP_TO_BE_DONE, ConfigSCC,	    	0, 0, IDS_START_SCC_STEP,		IDS_SCC_STEP_DESC },
!     { SS_STEP_TO_BE_DONE, ConfigSCS,	    	0, 0, IDS_START_SCS_STEP,		IDS_SCS_STEP_DESC },
!     { SS_STEP_TO_BE_DONE, CreateRootAfs,	0, 0, IDS_CREATE_ROOT_AFS_STEP,		IDS_ROOT_AFS_STEP_DESC },
!     { SS_STEP_TO_BE_DONE, StartClient,	    	0, 0, IDS_START_CLIENT_STEP,		0 },
!     { SS_STEP_TO_BE_DONE, SetRootAcl,	    	0, 0, IDS_SET_ROOT_ACL_STEP,		0 },
!     { SS_STEP_TO_BE_DONE, CreateRootCell,	0, 0, IDS_CREATE_ROOT_CELL_STEP,	0 },
!     { SS_STEP_TO_BE_DONE, MountRootCellStandard,0, 0, IDS_MOUNT_ROOT_CELL_STANDARD_STEP,0 },
!     { SS_STEP_TO_BE_DONE, SetRootCellAcl,	0, 0, IDS_SET_ROOT_CELL_ACL_STEP,	0 },
!     { SS_STEP_TO_BE_DONE, MountRootCellRW,	0, 0, IDS_MOUNT_ROOT_CELL_RW_STEP,	0 },
!     { SS_STEP_TO_BE_DONE, Replicate,	    	0, 0, IDS_REP_STEP,			IDS_REP_STEP_DESC },
!     { SS_STEP_TO_BE_DONE, EnableAuthChecking,   0, 0, IDS_ENABLE_AUTH_CHECKING_STEP,	0 },
!     { SS_STEP_TO_BE_DONE, RestartServers,	0, 0, IDS_RESTART_SERVERS_STEP,		0 },
!     { SS_STEP_TO_BE_DONE, AddToCellServDB,	0, 0, IDS_ADD_TO_CELLSERVDB_STEP,	0 },
!     { SS_STEP_TO_BE_DONE, RestartAllDbServers,  0, 0, IDS_RESTART_ALL_DB_SERVERS_STEP,	0 },
!     { SS_STEP_TO_BE_DONE, VosOpenServer,	0, 0, IDS_NO_MSG_STEP,			0 },
!     { SS_STEP_TO_BE_DONE, UnconfigDB,	    	0, 0, IDS_UNCONFIG_DB_STEP,		IDS_UNCONFIG_DB_STEP_DESC },
!     { SS_STEP_TO_BE_DONE, UnconfigBak,	    	0, 0, IDS_UNCONFIG_BK_STEP,		IDS_UNCONFIG_BK_STEP_DESC },	
!     { SS_STEP_TO_BE_DONE, UnconfigFS,	    	0, 0, IDS_UNCONFIG_FS_STEP,		IDS_UNCONFIG_FS_STEP_DESC },
!     { SS_STEP_TO_BE_DONE, UnconfigSCS,	    	0, 0, IDS_UNCONFIG_SCS_STEP,		IDS_UNCONFIG_SCS_STEP_DESC },
!     { SS_STEP_TO_BE_DONE, UnconfigSCC,	    	0, 0, IDS_UNCONFIG_SCC_STEP,		IDS_UNCONFIG_SCC_STEP_DESC },
!     { SS_STEP_TO_BE_DONE, PostConfig,           0, 0, IDS_NO_MSG_STEP,		        0 },
!     { SS_STEP_TO_BE_DONE, UpgradeLibHandles,    0, 0, IDS_GET_CREDENTIALS_STEP,		0 },
!     { SS_STEP_TO_BE_DONE, GetRootVolumeInfo,    0, 0, IDS_NO_MSG_STEP,		        0 },
  };
  
  
***************
*** 292,381 ****
   *	These are the steps to perform when configuring the very first server.
   */
  static STEP_ID FirstServerSteps[] = {
! 	SID_CONFIG_PARTITION,
! 	SID_DEFINE_CELL_FOR_SERVER,
! 	SID_DEFINE_CELL_FOR_CLIENT,
! 	SID_START_BOS,
! 	SID_START_AUTH,
! 	SID_CREATE_PRINCIPAL_AND_KEY,
! 	SID_START_DB,
! 	SID_CREATE_ADMIN_PRINCIPAL,
! 	SID_START_FS_VL_AND_SALVAGER,
! 	SID_CONFIG_SCS,
! 	SID_VOS_OPEN_SERVER,
! 	SID_CREATE_ROOT_AFS,
! 	SID_START_CLIENT,
! 	SID_SET_ROOT_ACL,
! 	SID_CREATE_ROOT_CELL,
! 	SID_MOUNT_ROOT_CELL_STANDARD,
! 	SID_SET_ROOT_CELL_ACL,
! 	SID_MOUNT_ROOT_CELL_RW,
! 	SID_REPLICATE,
! 	SID_ENABLE_AUTH_CHECKING
! };
  
  static STEP_ID InvalidServerInfoSteps[] = {
! 	SID_DEFINE_CELL_FOR_SERVER,
! 	SID_START_BOS,
! 	SID_CREATE_PRINCIPAL_AND_KEY,
! 	SID_CREATE_ADMIN_PRINCIPAL,
! 	SID_ENABLE_AUTH_CHECKING
  };
  
  static STEP_ID InvalidClientInfoSteps[] = {
! 	SID_DEFINE_CELL_FOR_CLIENT,
! 	SID_START_CLIENT
  };
  
  static STEP_ID PreconfigSteps[] = {
! 	SID_GET_CREDENTIALS,    // Always do this so we will always have credentials - need this for the config manager.
      SID_VOS_OPEN_SERVER	    // We'll always do this step so we know we can make vos calls 
  };
  
  static STEP_ID UnconfigDbSteps[] = {
! 	SID_UNCONFIG_DB,
! 	SID_RESTART_ALL_DB_SERVERS
  };
  
  static STEP_ID UnconfigBakSteps[] = {
! 	SID_UNCONFIG_BAK,
! 	SID_GET_CREDENTIALS
! };
  
  static STEP_ID UnconfigFsSteps[] = {
! 	SID_UNCONFIG_FS
  };
  
  static STEP_ID UnconfigScsSteps[] = {
! 	SID_UNCONFIG_SCS
  };
  
  static STEP_ID UnconfigSccSteps[] = {
! 	SID_UNCONFIG_SCC
  };
  
  static STEP_ID FsSteps[] = {
! 	SID_START_FS_VL_AND_SALVAGER
  };
  
  static STEP_ID DbSteps[] = {
! 	SID_ADD_TO_CELLSERVDB,
! 	SID_START_DB,
! 	SID_RESTART_ALL_DB_SERVERS
! };
  
  static STEP_ID DbAndBakSteps[] = {
! 	SID_ADD_TO_CELLSERVDB,
! 	SID_START_DB_AND_BAK,
! 	SID_RESTART_ALL_DB_SERVERS
  };
  
  static STEP_ID BakOnlySteps[] = {
! 	SID_START_BAK,
  };
  
  static STEP_ID PartitionSteps[] = {
! 	SID_CONFIG_PARTITION
  };
  
  static STEP_ID CheckRootVolumesSteps[] = {
--- 295,384 ----
   *	These are the steps to perform when configuring the very first server.
   */
  static STEP_ID FirstServerSteps[] = {
!     SID_CONFIG_PARTITION,
!     SID_DEFINE_CELL_FOR_SERVER,
!     SID_DEFINE_CELL_FOR_CLIENT,
!     SID_START_BOS,
!     SID_START_AUTH,
!     SID_CREATE_PRINCIPAL_AND_KEY,
!     SID_START_DB,
!     SID_CREATE_ADMIN_PRINCIPAL,
!     SID_START_FS_VL_AND_SALVAGER,
!     SID_CONFIG_SCS,
!     SID_VOS_OPEN_SERVER,
!     SID_CREATE_ROOT_AFS,
!     SID_START_CLIENT,
!     SID_SET_ROOT_ACL,
!     SID_CREATE_ROOT_CELL,
!     SID_MOUNT_ROOT_CELL_STANDARD,
!     SID_SET_ROOT_CELL_ACL,
!     SID_MOUNT_ROOT_CELL_RW,
!     SID_REPLICATE,
!     SID_ENABLE_AUTH_CHECKING
! };	
  
  static STEP_ID InvalidServerInfoSteps[] = {
!     SID_DEFINE_CELL_FOR_SERVER,
!     SID_START_BOS,
!     SID_CREATE_PRINCIPAL_AND_KEY,
!     SID_CREATE_ADMIN_PRINCIPAL,
!     SID_ENABLE_AUTH_CHECKING
  };
  
  static STEP_ID InvalidClientInfoSteps[] = {
!     SID_DEFINE_CELL_FOR_CLIENT,
!     SID_START_CLIENT
  };
  
  static STEP_ID PreconfigSteps[] = {
!     SID_GET_CREDENTIALS,    // Always do this so we will always have credentials - need this for the config manager.
      SID_VOS_OPEN_SERVER	    // We'll always do this step so we know we can make vos calls 
  };
  
  static STEP_ID UnconfigDbSteps[] = {
!     SID_UNCONFIG_DB,
!     SID_RESTART_ALL_DB_SERVERS
  };
  
  static STEP_ID UnconfigBakSteps[] = {
!     SID_UNCONFIG_BAK,
!     SID_GET_CREDENTIALS
! };	
  
  static STEP_ID UnconfigFsSteps[] = {
!     SID_UNCONFIG_FS
  };
  
  static STEP_ID UnconfigScsSteps[] = {
!     SID_UNCONFIG_SCS
  };
  
  static STEP_ID UnconfigSccSteps[] = {
!     SID_UNCONFIG_SCC
  };
  
  static STEP_ID FsSteps[] = {
!     SID_START_FS_VL_AND_SALVAGER
  };
  
  static STEP_ID DbSteps[] = {
!     SID_ADD_TO_CELLSERVDB,
!     SID_START_DB,
!     SID_RESTART_ALL_DB_SERVERS
! };	
  
  static STEP_ID DbAndBakSteps[] = {
!     SID_ADD_TO_CELLSERVDB,
!     SID_START_DB_AND_BAK,
!     SID_RESTART_ALL_DB_SERVERS
  };
  
  static STEP_ID BakOnlySteps[] = {
!     SID_START_BAK,
  };
  
  static STEP_ID PartitionSteps[] = {
!     SID_CONFIG_PARTITION
  };
  
  static STEP_ID CheckRootVolumesSteps[] = {
***************
*** 383,411 ****
  };
  
  static STEP_ID RootVolumesSteps[] = {
! 	SID_CREATE_ROOT_AFS,
! 	SID_START_CLIENT,		// TODO:  Must check what happens if client started previously and failed because root.afs didn't exist.
! 	SID_SET_ROOT_ACL,
! 	SID_CREATE_ROOT_CELL,
! 	SID_MOUNT_ROOT_CELL_STANDARD,
! 	SID_SET_ROOT_CELL_ACL,
! 	SID_MOUNT_ROOT_CELL_RW,
  };
  
  static STEP_ID ReplicationSteps[] = {
! 	SID_REPLICATE
  };
  
  static STEP_ID ScsSteps[] = {
! 	SID_CONFIG_SCS
  };
  
  static STEP_ID SccSteps[] = {
! 	SID_CONFIG_SCC
  };
  
  static STEP_ID PostConfigSteps[] = {
! 	SID_POST_CONFIG
  };
  
  
--- 386,414 ----
  };
  
  static STEP_ID RootVolumesSteps[] = {
!     SID_CREATE_ROOT_AFS,
!     SID_START_CLIENT,		// TODO:  Must check what happens if client started previously and failed because root.afs didn't exist.
!     SID_SET_ROOT_ACL,
!     SID_CREATE_ROOT_CELL,
!     SID_MOUNT_ROOT_CELL_STANDARD,
!     SID_SET_ROOT_CELL_ACL,
!     SID_MOUNT_ROOT_CELL_RW,
  };
  
  static STEP_ID ReplicationSteps[] = {
!     SID_REPLICATE
  };
  
  static STEP_ID ScsSteps[] = {
!     SID_CONFIG_SCS
  };
  
  static STEP_ID SccSteps[] = {
!     SID_CONFIG_SCC
  };
  
  static STEP_ID PostConfigSteps[] = {
!     SID_POST_CONFIG
  };
  
  
***************
*** 416,426 ****
   */
  BOOL Configure(HWND hParent, BOOL& bMustExit)
  {	
! 	int nResult = ModalDialog(IDD_CONFIG_SERVER, hParent, (DLGPROC)ConfigServerPageDlgProc);
  
      bMustExit = m_bMustExit;
  
! 	return !m_bConfigFailed;
  }
  
  
--- 419,429 ----
   */
  BOOL Configure(HWND hParent, BOOL& bMustExit)
  {	
!     int nResult = ModalDialog(IDD_CONFIG_SERVER, hParent, (DLGPROC)ConfigServerPageDlgProc);
  
      bMustExit = m_bMustExit;
  
!     return !m_bConfigFailed;
  }
  
  
***************
*** 430,470 ****
   */
  BOOL CALLBACK ConfigServerPageDlgProc(HWND hwndDlg, UINT msg, WPARAM wp, LPARAM lp)
  {
! 	switch (msg) {
! 		case WM_INITDIALOG:
! 			OnInitDialog(hwndDlg);
! 			break;
! 
! 		case WM_COMMAND:
! 			switch (LOWORD(wp)) {
! 				case IDNEXT:
! 					OnConfig();
! 					break;
! 
! 				case IDBACK:
! 				   IF_WIZ(g_pWiz->SetState(sidSTEP_ELEVEN));
! 				   break;
! 
! 				case IDCANCEL:
! 					// If configuring, handle cancel here.
! 					// Otherwise, use common handler below.
! 					if (m_bConfiguring) {
! 						ShowCurrentStep(IDS_CANCEL_PENDING);
! 						m_bCheckCancel = TRUE;
! 						return FALSE;
! 					} else if (!g_pWiz)
! 						EndDialog(m_hDlg, m_bConfigured);
! 					break;
! 			}
! 			break;
  	}
  
! 	if (g_pWiz) {
! 		if (WizStep_Common_DlgProc (hwndDlg, msg, wp, lp))
! 			return FALSE;
! 	}
  
! 	return FALSE;
  }
  
  /*
--- 433,473 ----
   */
  BOOL CALLBACK ConfigServerPageDlgProc(HWND hwndDlg, UINT msg, WPARAM wp, LPARAM lp)
  {
!     switch (msg) {
!     case WM_INITDIALOG:
! 	OnInitDialog(hwndDlg);
! 	break;
! 
!     case WM_COMMAND:
! 	switch (LOWORD(wp)) {
! 	case IDNEXT:
! 	    OnConfig();
! 	    break;
! 
! 	case IDBACK:
! 	    IF_WIZ(g_pWiz->SetState(sidSTEP_ELEVEN));
! 	    break;
! 
! 	case IDCANCEL:
! 	    // If configuring, handle cancel here.
! 	    // Otherwise, use common handler below.
! 	    if (m_bConfiguring) {
! 		ShowCurrentStep(IDS_CANCEL_PENDING);
! 		m_bCheckCancel = TRUE;
! 		return FALSE;
! 	    } else if (!g_pWiz)
! 		EndDialog(m_hDlg, m_bConfigured);
! 	    break;
  	}
+ 	break;
+     }
  
!     if (g_pWiz) {
! 	if (WizStep_Common_DlgProc (hwndDlg, msg, wp, lp))
! 	    return FALSE;
!     }	
  
!     return FALSE;
  }
  
  /*
***************
*** 481,499 ****
   */
  static BOOL CALLBACK StepGrahpicDlgProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
  {
! 	// We only handle the paint message.  All other message are passed on to the
! 	// static control's normal window proc.
! 	if (uMsg == WM_PAINT) {
! 		for (int ii = 0; ii < m_nNumSteps; ii++) {
! 			// Find the step that corresponds to the window we are supposed to paint
! 			if (hwnd == GetDlgItem(m_hDlg, m_ConfigSteps[ii].nGraphicCtrlID)) {
! 				PaintStepGraphic(hwnd, m_ConfigSteps[ii].eState);	// Show the graphic for this step
! 				return 0;
! 			}
! 		}
! 	}		
  
! 	return CallWindowProc((WNDPROC)Subclass_FindNextHook(hwnd, StepGrahpicDlgProc), hwnd, uMsg, wParam, lParam);
  }
  
  
--- 484,502 ----
   */
  static BOOL CALLBACK StepGrahpicDlgProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
  {
!     // We only handle the paint message.  All other message are passed on to the
!     // static control's normal window proc.
!     if (uMsg == WM_PAINT) {
! 	for (int ii = 0; ii < m_nNumSteps; ii++) {
! 	    // Find the step that corresponds to the window we are supposed to paint
! 	    if (hwnd == GetDlgItem(m_hDlg, m_ConfigSteps[ii].nGraphicCtrlID)) {
! 		PaintStepGraphic(hwnd, m_ConfigSteps[ii].eState);	// Show the graphic for this step
! 		return 0;
! 	    }
! 	}
!     }		
  
!     return CallWindowProc((WNDPROC)Subclass_FindNextHook(hwnd, StepGrahpicDlgProc), hwnd, uMsg, wParam, lParam);
  }
  
  
***************
*** 504,649 ****
   */
  static void OnInitDialog(HWND hwndDlg)
  {
! 	m_hDlg = hwndDlg;
  
! 	// Initialize our global variables - only the ones that should not
! 	// preserve their state if the user leaves and returns to this page.
! 	m_bConfiguring = FALSE;
! 	m_bConfigured = FALSE;
! 	m_bConfigFailed = FALSE;
! 	m_bCheckCancel = FALSE;
! 	m_bCancel = FALSE;
! 	m_bMustChangeClientCell = FALSE;
! 	m_hvosServer = 0;
! 	m_nPartitionID = INVALID_PARTITION_ID;
! 	m_bCellServDbUpdateErr = FALSE;
! 	m_nServerUpdates = 0;
! 	m_pszCellDbHosts = 0;
! 	m_nNumSteps = 0;
! 	m_bNoAuthMode = !g_CfgData.bValidServerInfo;
! 	m_szVicepName[0] = 0;
! 	m_bMustExit = FALSE;
! 	m_bCfgInfoInvalidated = FALSE;
! 	m_bUnconfiguringLastDBServer = g_CfgData.bLastDBServer && ShouldUnconfig(g_CfgData.configDB);
      m_bClientTokensSet = FALSE;
      m_bRootAfsDriveMappingCreated = FALSE;
      m_bWeCreatedRootAfs = FALSE;
      m_bWeCreatedRootCell = FALSE;
  
! 	IF_WIZ(g_pWiz->EnableButtons(BACK_BUTTON));
! 	IF_WIZ(g_pWiz->SetButtonText(IDNEXT, IDS_CONFIGURE));
! 	IF_WIZ(g_pWiz->SetDefaultControl(IDNEXT));
! 
! 	TCHAR szMsg[cchRESOURCE] = TEXT("");
  
! 	// Show the cellname in the title
! 	ShowTitle();
  
! 	// If this is the wizard, then check if there is nothing to do and
! 	// inform the user.  If this is not the wizard, then we should
! 	// not even get to this point.  The config tool will not call
! 	// the config function if there is nothing to do.
! 	if (g_pWiz) {
! 		// Is everything already configured?
! 		if ((g_CfgData.configFS == CS_ALREADY_CONFIGURED) &&
! 		   (g_CfgData.configDB == CS_ALREADY_CONFIGURED) &&
! 		   (g_CfgData.configBak == CS_ALREADY_CONFIGURED) &&
! 		   (g_CfgData.configPartition == CS_ALREADY_CONFIGURED) &&
! 		   (g_CfgData.configRootVolumes == CS_ALREADY_CONFIGURED) &&
! 		   (g_CfgData.configRep == CS_ALREADY_CONFIGURED) &&
! 		   ((g_CfgData.configSCS == CS_ALREADY_CONFIGURED) ||
! 		   (g_CfgData.configSCC == CS_ALREADY_CONFIGURED)))
! 		{
! 			GetString(szMsg, IDS_ALREADY_CONFIGURED);
! 		}	
! 		// Is there nothing to configure?
! 		else if ((g_CfgData.configFS != CS_CONFIGURE) &&
! 		   (g_CfgData.configDB != CS_CONFIGURE) &&
! 		   (g_CfgData.configBak != CS_CONFIGURE) &&
! 		   (g_CfgData.configPartition != CS_CONFIGURE) &&
! 		   (g_CfgData.configRootVolumes != CS_CONFIGURE) &&
! 		   (g_CfgData.configRep != CS_CONFIGURE) &&
! 		   (g_CfgData.configSCS != CS_CONFIGURE) &&
! 		   (g_CfgData.configSCC != CS_CONFIGURE))
! 		{
! 			GetString(szMsg, IDS_NOTHING_TO_CONFIGURE);
! 		}
! 
! 		// If there's a can't configure message, then show it
! 		if (*szMsg) {
! 			// Hide all controls except for the message window
! 			ShowWnd(m_hDlg, IDC_ALL_NEEDED_MSG, FALSE);
! 			ShowWnd(m_hDlg, IDC_FOLLOWING_STEPS_MSG, FALSE);
! 
! 			for (int i = 0; i < sizeof(StepGuiCtrlIDs) / sizeof(StepGuiCtrlIDs[0]); i++) {
! 				ShowWnd(m_hDlg, StepGuiCtrlIDs[i].nDescCtrlID, FALSE);
! 				ShowWnd(m_hDlg, StepGuiCtrlIDs[i].nGraphicCtrlID, FALSE);
! 			}
! 			
! 			ShowWnd(m_hDlg, IDC_CURRENT_STEP_LABEL, FALSE);
! 			ShowWnd(m_hDlg, IDC_CURRENT_STEP, FALSE);
! 			ShowWnd(m_hDlg, IDC_CONFIG_PROGRESS, FALSE);
! 			ShowWnd(m_hDlg, IDC_PERCENT_COMPLETE_LABEL, FALSE);
! 			ShowWnd(m_hDlg, IDC_PERCENT_COMPLETE, FALSE);
! 			ShowWnd(m_hDlg, IDC_CANT_CONFIG_MSG, FALSE);
! 
! 			// Show the message
! 			SetWndText(m_hDlg, IDC_STATUS_MSG, szMsg);
! 
! 			return;
! 		}
  	}
  
! 	// Determine which steps to perform and which should be displayed
! 	SetupConfigSteps();
  
! 	if (!g_CfgData.bWizard) {
! 		OnConfig();
! 		return;
! 	}
  
! 	// This must be done after SetupConfigSteps(), which assings a nGraphicCtrlID
! 	// value to the appropriate steps.  After the following code is executed, the graphic
! 	// for each step will be drawn automatically whenever the dialog is repainted.
! 	for (UINT ii = 0; ii < MAX_STEPS; ii++) {
! 		if (m_ConfigSteps[ii].nGraphicCtrlID)
! 			Subclass_AddHook(GetDlgItem(m_hDlg, m_ConfigSteps[ii].nGraphicCtrlID), StepGrahpicDlgProc);
! 	}
  
! 	IF_WIZ(g_pWiz->EnableButtons(BACK_BUTTON | NEXT_BUTTON));
! }
  
  // User has pressed the Config (or Exit) button.
  static void OnConfig()
  {
! 	ASSERT(g_CfgData.szCellName[0]);
  
! 	// Has user pressed the Exit button?
! 	if (m_bConfigured) {
! 		IF_WIZ(g_pWiz->Show(FALSE));
! 		return;
! 	}
  
! 	// Has user pressed the View Log button?
! 	if (m_bConfigFailed) {
! 		ViewLog();
! 		return;
! 	}
  
! 	// Must we change the client's cell?  See if user minds...
! 	if (m_bMustChangeClientCell) {
! 		if (ShowWarning(m_hDlg, IDS_CLIENT_CELL_WILL_CHANGE) == IDCANCEL) {
! 			return;
! 		}
  	}
  
! 	// Create a thread to perform the configuration steps
! 	DWORD dwThreadID;
! 	
! 	// Start configuring...
! 	HANDLE hThread = CreateThread(0, 0, ConfigServer, 0, 0, &dwThreadID);
  
! 	CloseHandle(hThread);
  }
  
  
--- 507,652 ----
   */
  static void OnInitDialog(HWND hwndDlg)
  {
!     m_hDlg = hwndDlg;
  
!     // Initialize our global variables - only the ones that should not
!     // preserve their state if the user leaves and returns to this page.
!     m_bConfiguring = FALSE;
!     m_bConfigured = FALSE;
!     m_bConfigFailed = FALSE;
!     m_bCheckCancel = FALSE;
!     m_bCancel = FALSE;
!     m_bMustChangeClientCell = FALSE;
!     m_hvosServer = 0;
!     m_nPartitionID = INVALID_PARTITION_ID;
!     m_bCellServDbUpdateErr = FALSE;
!     m_nServerUpdates = 0;
!     m_pszCellDbHosts = 0;
!     m_nNumSteps = 0;
!     m_bNoAuthMode = !g_CfgData.bValidServerInfo;
!     m_szVicepName[0] = 0;
!     m_bMustExit = FALSE;
!     m_bCfgInfoInvalidated = FALSE;
!     m_bUnconfiguringLastDBServer = g_CfgData.bLastDBServer && ShouldUnconfig(g_CfgData.configDB);
      m_bClientTokensSet = FALSE;
      m_bRootAfsDriveMappingCreated = FALSE;
      m_bWeCreatedRootAfs = FALSE;
      m_bWeCreatedRootCell = FALSE;
  
!     IF_WIZ(g_pWiz->EnableButtons(BACK_BUTTON));
!     IF_WIZ(g_pWiz->SetButtonText(IDNEXT, IDS_CONFIGURE));
!     IF_WIZ(g_pWiz->SetDefaultControl(IDNEXT));
! 
!     TCHAR szMsg[cchRESOURCE] = TEXT("");
! 
!     // Show the cellname in the title
!     ShowTitle();
! 
!     // If this is the wizard, then check if there is nothing to do and
!     // inform the user.  If this is not the wizard, then we should
!     // not even get to this point.  The config tool will not call
!     // the config function if there is nothing to do.
!     if (g_pWiz) {
! 	// Is everything already configured?
! 	if ((g_CfgData.configFS == CS_ALREADY_CONFIGURED) &&
! 	     (g_CfgData.configDB == CS_ALREADY_CONFIGURED) &&
! 	     (g_CfgData.configBak == CS_ALREADY_CONFIGURED) &&
! 	     (g_CfgData.configPartition == CS_ALREADY_CONFIGURED) &&
! 	     (g_CfgData.configRootVolumes == CS_ALREADY_CONFIGURED) &&
! 	     (g_CfgData.configRep == CS_ALREADY_CONFIGURED) &&
! 	     ((g_CfgData.configSCS == CS_ALREADY_CONFIGURED) ||
! 	       (g_CfgData.configSCC == CS_ALREADY_CONFIGURED)))
! 	{
! 	    GetString(szMsg, IDS_ALREADY_CONFIGURED);
! 	}	
! 	// Is there nothing to configure?
! 	else if ((g_CfgData.configFS != CS_CONFIGURE) &&
! 		  (g_CfgData.configDB != CS_CONFIGURE) &&
! 		  (g_CfgData.configBak != CS_CONFIGURE) &&
! 		  (g_CfgData.configPartition != CS_CONFIGURE) &&
! 		  (g_CfgData.configRootVolumes != CS_CONFIGURE) &&
! 		  (g_CfgData.configRep != CS_CONFIGURE) &&
! 		  (g_CfgData.configSCS != CS_CONFIGURE) &&
! 		  (g_CfgData.configSCC != CS_CONFIGURE))
! 	{	
! 	    GetString(szMsg, IDS_NOTHING_TO_CONFIGURE);
! 	}
! 
! 	// If there's a can't configure message, then show it
! 	if (*szMsg) {
! 	    // Hide all controls except for the message window
! 	    ShowWnd(m_hDlg, IDC_ALL_NEEDED_MSG, FALSE);
! 	    ShowWnd(m_hDlg, IDC_FOLLOWING_STEPS_MSG, FALSE);
! 
! 	    for (int i = 0; i < sizeof(StepGuiCtrlIDs) / sizeof(StepGuiCtrlIDs[0]); i++) {
! 		ShowWnd(m_hDlg, StepGuiCtrlIDs[i].nDescCtrlID, FALSE);
! 		ShowWnd(m_hDlg, StepGuiCtrlIDs[i].nGraphicCtrlID, FALSE);
! 	    }
! 
! 	    ShowWnd(m_hDlg, IDC_CURRENT_STEP_LABEL, FALSE);
! 	    ShowWnd(m_hDlg, IDC_CURRENT_STEP, FALSE);
! 	    ShowWnd(m_hDlg, IDC_CONFIG_PROGRESS, FALSE);
! 	    ShowWnd(m_hDlg, IDC_PERCENT_COMPLETE_LABEL, FALSE);
! 	    ShowWnd(m_hDlg, IDC_PERCENT_COMPLETE, FALSE);
! 	    ShowWnd(m_hDlg, IDC_CANT_CONFIG_MSG, FALSE);
  
! 	    // Show the message
! 	    SetWndText(m_hDlg, IDC_STATUS_MSG, szMsg);
  
! 	    return;
  	}
+     }
  
!     // Determine which steps to perform and which should be displayed
!     SetupConfigSteps();
  
!     if (!g_CfgData.bWizard) {
! 	OnConfig();
! 	return;
!     }
  
!     // This must be done after SetupConfigSteps(), which assings a nGraphicCtrlID
!     // value to the appropriate steps.  After the following code is executed, the graphic
!     // for each step will be drawn automatically whenever the dialog is repainted.
!     for (UINT ii = 0; ii < MAX_STEPS; ii++) {
! 	if (m_ConfigSteps[ii].nGraphicCtrlID)
! 	    Subclass_AddHook(GetDlgItem(m_hDlg, m_ConfigSteps[ii].nGraphicCtrlID), StepGrahpicDlgProc);
!     }	
  
!     IF_WIZ(g_pWiz->EnableButtons(BACK_BUTTON | NEXT_BUTTON));
! }	
  
  // User has pressed the Config (or Exit) button.
  static void OnConfig()
  {
!     ASSERT(g_CfgData.szCellName[0]);
  
!     // Has user pressed the Exit button?
!     if (m_bConfigured) {
! 	IF_WIZ(g_pWiz->Show(FALSE));
! 	return;
!     }
  
!     // Has user pressed the View Log button?
!     if (m_bConfigFailed) {
! 	ViewLog();
! 	return;
!     }
  
!     // Must we change the client's cell?  See if user minds...
!     if (m_bMustChangeClientCell) {
! 	if (ShowWarning(m_hDlg, IDS_CLIENT_CELL_WILL_CHANGE) == IDCANCEL) {
! 	    return;
  	}
+     }
  
!     // Create a thread to perform the configuration steps
!     DWORD dwThreadID;
  
!     // Start configuring...
!     HANDLE hThread = CreateThread(0, 0, ConfigServer, 0, 0, &dwThreadID);
! 
!     CloseHandle(hThread);
  }
  
  
***************
*** 653,903 ****
   */
  static void ShowExitButton()
  {
! 	if (g_pWiz)
! 		g_pWiz->SetButtonText(IDNEXT, IDS_EXIT);
! 	else {
          if (m_bMustExit)
              SetWndText(m_hDlg, IDCANCEL, IDS_EXIT);
!         else
! 		    SetWndText(m_hDlg, IDCANCEL, IDS_CLOSE);
      }
  }
  
  static void ShowTitle()
  {
! 	ASSERT(g_CfgData.szCellName[0]);
  	
! 	TCHAR szMsg[cchRESOURCE];
  
! 	GetString(szMsg, IDS_CONFIG_INTO_CELL_MSG);
  
! 	lstrcat(szMsg, g_CfgData.szCellName);
! 	lstrcat(szMsg, TEXT("."));
  
! 	SetWndText(m_hDlg, IDC_TITLE, szMsg);
  }
  
  static BOOL Unconfiguring()
! {
! 	return	ShouldUnconfig(g_CfgData.configFS)  ||
! 			ShouldUnconfig(g_CfgData.configDB)  ||
! 			ShouldUnconfig(g_CfgData.configBak) ||
! 			ShouldUnconfig(g_CfgData.configSCS) ||
! 			ShouldUnconfig(g_CfgData.configSCC);
! }
  
  static void AddSteps(STEP_ID *pSteps, int nNumNewSteps)
  {
! 	ASSERT(pSteps);
! 	ASSERT(nNumNewSteps > 0);
  
! 	if (m_nNumSteps + nNumNewSteps > MAX_STEPS) {
! 		ASSERT(FALSE);
! 		return;
! 	}
  
! 	// Add the new steps to the array of steps
! 	for (int nNewStep = 0; nNewStep < nNumNewSteps; nNewStep++) {
! 		STEP_ID nStepID = pSteps[nNewStep];
  
! 		// Add the new step
! 		m_ConfigSteps[m_nNumSteps++] = STEPS[nStepID];
! 	}
! }
  
  static void GetStepsToPerform()
  {
  #define	NUM_STEPS(x)	(sizeof((x)) / sizeof(STEP_ID))
  
! 	// Is this the first server?
! 	if (g_CfgData.bFirstServer) {
! 		// We may have to change the FirstServerSteps, so loop over them
! 		// and only add the ones we need.  All of the FirstServerSteps
! 		// are required except for the ones for backup and sys control
! 		// machine.  If the user doesn't want those then we won't put
! 		// them into the array of steps to perform.  Also, we may not need
! 		// to make the AFS partition (if it already exists).
! 		for (int i = 0; i < NUM_STEPS(FirstServerSteps); i++) {
! 			STEP_ID curStep = FirstServerSteps[i];
! 
! 			if ((curStep == SID_START_DB) && ShouldConfig(g_CfgData.configBak))
! 				curStep = SID_START_DB_AND_BAK;
! 			else if ((curStep == SID_CONFIG_SCS) && !ShouldConfig(g_CfgData.configSCS))
! 				continue;
! 			else if ((curStep == SID_CONFIG_PARTITION) && !ShouldConfig(g_CfgData.configPartition))
! 				continue;
! 
! 			AddSteps(&curStep, 1);
! 		}
  
! 		return;
  	}
  
! 	// Make sure client info is valid
! 	if (!g_CfgData.bValidClientInfo || (lstrcmp(g_CfgData.szClientCellName, g_CfgData.szCellName) != 0)) {
!         m_bMustChangeClientCell = TRUE;
! 		AddSteps(InvalidClientInfoSteps, NUM_STEPS(InvalidClientInfoSteps));
      }
  
! 	// Make sure server info is valid
! 	if (!g_CfgData.bValidServerInfo)
! 		AddSteps(InvalidServerInfoSteps, NUM_STEPS(InvalidServerInfoSteps));
! 
! 	// Add steps that should always be performed
! 	AddSteps(PreconfigSteps, NUM_STEPS(PreconfigSteps));
  
! 	/*
! 	 *	Do unconfiguration first
! 	 */
! 
! 	// Unconfigure File Server?
! 	if (ShouldUnconfig(g_CfgData.configFS))
! 		AddSteps(UnconfigFsSteps, NUM_STEPS(UnconfigFsSteps));
! 
! 	// Unconfigure Database Server? Will also automatically unconfig backup server.
! 	if (ShouldUnconfig(g_CfgData.configDB))
! 		AddSteps(UnconfigDbSteps, NUM_STEPS(UnconfigDbSteps));
! 	// Unconfigure Backup Server?
! 	else if (ShouldUnconfig(g_CfgData.configBak))
! 		AddSteps(UnconfigBakSteps, NUM_STEPS(UnconfigBakSteps));
! 
! 	// Unconfigure System Control Server?
! 	if (ShouldUnconfig(g_CfgData.configSCS))
! 		AddSteps(UnconfigScsSteps, NUM_STEPS(UnconfigScsSteps));
! 
! 	// Unconfigure System Control Client?
! 	if (ShouldUnconfig(g_CfgData.configSCC))
! 		AddSteps(UnconfigSccSteps, NUM_STEPS(UnconfigSccSteps));
! 
! 	/*
! 	 *	Now do configuration
! 	 */
! 
! 	// AFS Partition
! 	if (ShouldConfig(g_CfgData.configPartition))
! 		AddSteps(PartitionSteps, NUM_STEPS(PartitionSteps));
! 
! 	// Database and backup server
! 	if (ShouldConfig(g_CfgData.configDB)) {
! 		if (ShouldConfig(g_CfgData.configBak))
! 			AddSteps(DbAndBakSteps, NUM_STEPS(DbAndBakSteps));
! 		else
! 			AddSteps(DbSteps, NUM_STEPS(DbSteps));
! 	} else if (ShouldConfig(g_CfgData.configBak))
! 		AddSteps(BakOnlySteps, NUM_STEPS(BakOnlySteps));
! 
! 	// File server
! 	if (ShouldConfig(g_CfgData.configFS))
! 		AddSteps(FsSteps, NUM_STEPS(FsSteps));
  
      if (!g_CfgData.bRootVolumesExistanceKnown || !g_CfgData.bRootVolumesReplicationKnown)
          AddSteps(CheckRootVolumesSteps, NUM_STEPS(CheckRootVolumesSteps));
  
! 	// Root volumes
! 	if (ShouldConfig(g_CfgData.configRootVolumes))
! 		AddSteps(RootVolumesSteps, NUM_STEPS(RootVolumesSteps));
! 
! 	// Replication
! 	if (ShouldConfig(g_CfgData.configRep))
! 		AddSteps(ReplicationSteps, NUM_STEPS(ReplicationSteps));
! 
! 	// System control server
! 	if (ShouldConfig(g_CfgData.configSCS))
! 		AddSteps(ScsSteps, NUM_STEPS(ScsSteps));
! 
! 	// System control client
! 	if (ShouldConfig(g_CfgData.configSCC))
! 		AddSteps(SccSteps, NUM_STEPS(SccSteps));
  
      // Perform any steps necessary after all normal configuration has finished.
      // For instance, if all servers were shut down, then we ask the user if they
      // want the config info invalidated.  Also, if the last db server was stopped,
      // then we will stop the client as well.
! 	AddSteps(PostConfigSteps, NUM_STEPS(PostConfigSteps));
  }
  
  // For steps that should have a place on the dialog, assign them the
  // next available position.
  static void SetupStepGUI(CONFIG_STEP& step, UINT& nDispPos)
  {
! 	step.eState = SS_STEP_TO_BE_DONE;
  
! 	// If this step has a msg ID then it is a step that gets displayed to the
! 	// user.  Show it in the dialog.
! 	if (step.nDescID) {
! 		// Give this step a position on the dialog in which to show its message
! 		step.nDescCtrlID = StepGuiCtrlIDs[nDispPos].nDescCtrlID;
! 		step.nGraphicCtrlID = StepGuiCtrlIDs[nDispPos].nGraphicCtrlID;
  
! 		// Show this step's text in the proper static control
! 		SetWndText(m_hDlg, step.nDescCtrlID, step.nDescID);
  
! 		// Show the static control
! 		ShowWnd(m_hDlg, step.nDescCtrlID);
  	
! 		// Show the graphic control
! 		ShowWnd(m_hDlg, step.nGraphicCtrlID);
  	
! 		nDispPos++;
! 	}
  }
  
  static void SetupConfigSteps()
  {
! 	UINT nDispPos = 0;	// Which StepGuiCtrlID to use, if applicable
! 	int nStep = 0;
  
! 	// Determine which steps are going to be performed.  For the ones that
! 	// will be, show their description message in the appropriate place on
! 	// the dialog.
! 	GetStepsToPerform();
! 	ASSERT(m_nNumSteps > 0);
! 
! 	// For steps that should have a place on the dialog, assign them the
! 	// next available position.
! 	for (int i = 0; i < m_nNumSteps; i++)
! 		SetupStepGUI(m_ConfigSteps[i], nDispPos);
  }
  
  static BOOL CheckResult(int nResult, int nStatus)
  {
! 	CHECK_CANCEL;
  
! 	if (nResult)
! 		return TRUE;
  
! 	ShowError(m_hDlg, nStatus, IDS_CONFIG_ERROR);
  
! 	return FALSE;
  }
  
  static BOOL CheckCancel()
  {
! 	// If we already know we are cancelling then return
! 	if (m_bCancel)
! 		return TRUE;
  
! 	// If user didn't press Cancel button, then return FALSE
! 	if (!m_bCheckCancel)
! 		return FALSE;
  
! 	ASSERT(m_bConfiguring);
  
! 	TCHAR szMsg[cchRESOURCE];
! 	TCHAR szTitle[cchRESOURCE];
  
! 	GetString(szMsg, IDS_CANCEL_CONFIG_MSG);
! 	GetString(szTitle, GetAppTitleID());
! 	
! 	// Ask user if they really want to cancel
! 	int nChoice = MessageBox(m_hDlg, szMsg, szTitle, MB_YESNO | MB_ICONQUESTION);
  	
! 	m_bCancel = (nChoice == IDYES);
  
! 	m_bCheckCancel = FALSE;
  
! 	return m_bCancel;
! }
  
  /*
   *	Show the current config step, UNLESS the user has pressed the Cancel
--- 656,906 ----
   */
  static void ShowExitButton()
  {
!     if (g_pWiz)
! 	g_pWiz->SetButtonText(IDNEXT, IDS_EXIT);
!     else {
          if (m_bMustExit)
              SetWndText(m_hDlg, IDCANCEL, IDS_EXIT);
!         else	
! 	    SetWndText(m_hDlg, IDCANCEL, IDS_CLOSE);
      }
  }
  
  static void ShowTitle()
  {
!     ASSERT(g_CfgData.szCellName[0]);
  	
!     TCHAR szMsg[cchRESOURCE];
  
!     GetString(szMsg, IDS_CONFIG_INTO_CELL_MSG);
  
!     lstrcat(szMsg, g_CfgData.szCellName);
!     lstrcat(szMsg, TEXT("."));
  
!     SetWndText(m_hDlg, IDC_TITLE, szMsg);
  }
  
  static BOOL Unconfiguring()
! {	
!     return ShouldUnconfig(g_CfgData.configFS)  ||
! 	   ShouldUnconfig(g_CfgData.configDB)  ||
! 	   ShouldUnconfig(g_CfgData.configBak) ||
! 	   ShouldUnconfig(g_CfgData.configSCS) ||
! 	   ShouldUnconfig(g_CfgData.configSCC);
! }	
  
  static void AddSteps(STEP_ID *pSteps, int nNumNewSteps)
  {
!     ASSERT(pSteps);
!     ASSERT(nNumNewSteps > 0);
  
!     if (m_nNumSteps + nNumNewSteps > MAX_STEPS) {
! 	ASSERT(FALSE);
! 	return;
!     }
  
!     // Add the new steps to the array of steps
!     for (int nNewStep = 0; nNewStep < nNumNewSteps; nNewStep++) {
! 	STEP_ID nStepID = pSteps[nNewStep];
  
! 	// Add the new step
! 	m_ConfigSteps[m_nNumSteps++] = STEPS[nStepID];
!     }
! }	
  
  static void GetStepsToPerform()
  {
  #define	NUM_STEPS(x)	(sizeof((x)) / sizeof(STEP_ID))
  
!     // Is this the first server?
!     if (g_CfgData.bFirstServer) {
! 	// We may have to change the FirstServerSteps, so loop over them
! 	// and only add the ones we need.  All of the FirstServerSteps
! 	// are required except for the ones for backup and sys control
! 	// machine.  If the user doesn't want those then we won't put
! 	// them into the array of steps to perform.  Also, we may not need
! 	// to make the AFS partition (if it already exists).
! 	for (int i = 0; i < NUM_STEPS(FirstServerSteps); i++) {
! 	    STEP_ID curStep = FirstServerSteps[i];
! 
! 	    if ((curStep == SID_START_DB) && ShouldConfig(g_CfgData.configBak))
! 		curStep = SID_START_DB_AND_BAK;
! 	    else if ((curStep == SID_CONFIG_SCS) && !ShouldConfig(g_CfgData.configSCS))
! 		continue;
! 	    else if ((curStep == SID_CONFIG_PARTITION) && !ShouldConfig(g_CfgData.configPartition))
! 		continue;
  
! 	    AddSteps(&curStep, 1);
  	}
  
! 	return;
      }
  
!     // Make sure client info is valid
!     if (!g_CfgData.bValidClientInfo || (lstrcmp(g_CfgData.szClientCellName, g_CfgData.szCellName) != 0)) {
!         m_bMustChangeClientCell = TRUE;
! 	AddSteps(InvalidClientInfoSteps, NUM_STEPS(InvalidClientInfoSteps));
!     }	
  
!     // Make sure server info is valid
!     if (!g_CfgData.bValidServerInfo)
! 	AddSteps(InvalidServerInfoSteps, NUM_STEPS(InvalidServerInfoSteps));
! 
!     // Add steps that should always be performed
!     AddSteps(PreconfigSteps, NUM_STEPS(PreconfigSteps));
! 
!     /*
!      *	Do unconfiguration first
!      */
! 
!     // Unconfigure File Server?
!     if (ShouldUnconfig(g_CfgData.configFS))
! 	AddSteps(UnconfigFsSteps, NUM_STEPS(UnconfigFsSteps));
! 
!     // Unconfigure Database Server? Will also automatically unconfig backup server.
!     if (ShouldUnconfig(g_CfgData.configDB))
! 	AddSteps(UnconfigDbSteps, NUM_STEPS(UnconfigDbSteps));
!     // Unconfigure Backup Server?
!     else if (ShouldUnconfig(g_CfgData.configBak))
! 	AddSteps(UnconfigBakSteps, NUM_STEPS(UnconfigBakSteps));
! 
!     // Unconfigure System Control Server?
!     if (ShouldUnconfig(g_CfgData.configSCS))
! 	AddSteps(UnconfigScsSteps, NUM_STEPS(UnconfigScsSteps));
! 
!     // Unconfigure System Control Client?
!     if (ShouldUnconfig(g_CfgData.configSCC))
! 	AddSteps(UnconfigSccSteps, NUM_STEPS(UnconfigSccSteps));
! 
!     /*
!      *	Now do configuration
!      */
! 
!     // AFS Partition
!     if (ShouldConfig(g_CfgData.configPartition))
! 	AddSteps(PartitionSteps, NUM_STEPS(PartitionSteps));
! 
!     // Database and backup server
!     if (ShouldConfig(g_CfgData.configDB)) {
! 	if (ShouldConfig(g_CfgData.configBak))
! 	    AddSteps(DbAndBakSteps, NUM_STEPS(DbAndBakSteps));
! 	else
! 	    AddSteps(DbSteps, NUM_STEPS(DbSteps));
!     } else if (ShouldConfig(g_CfgData.configBak))
! 	AddSteps(BakOnlySteps, NUM_STEPS(BakOnlySteps));
! 
!     // File server
!     if (ShouldConfig(g_CfgData.configFS))
! 	AddSteps(FsSteps, NUM_STEPS(FsSteps));
  
      if (!g_CfgData.bRootVolumesExistanceKnown || !g_CfgData.bRootVolumesReplicationKnown)
          AddSteps(CheckRootVolumesSteps, NUM_STEPS(CheckRootVolumesSteps));
  
!     // Root volumes
!     if (ShouldConfig(g_CfgData.configRootVolumes))
! 	AddSteps(RootVolumesSteps, NUM_STEPS(RootVolumesSteps));
! 
!     // Replication
!     if (ShouldConfig(g_CfgData.configRep))
! 	AddSteps(ReplicationSteps, NUM_STEPS(ReplicationSteps));
! 
!     // System control server
!     if (ShouldConfig(g_CfgData.configSCS))
! 	AddSteps(ScsSteps, NUM_STEPS(ScsSteps));
! 
!     // System control client
!     if (ShouldConfig(g_CfgData.configSCC))
! 	AddSteps(SccSteps, NUM_STEPS(SccSteps));
  
      // Perform any steps necessary after all normal configuration has finished.
      // For instance, if all servers were shut down, then we ask the user if they
      // want the config info invalidated.  Also, if the last db server was stopped,
      // then we will stop the client as well.
!     AddSteps(PostConfigSteps, NUM_STEPS(PostConfigSteps));
  }
  
  // For steps that should have a place on the dialog, assign them the
  // next available position.
  static void SetupStepGUI(CONFIG_STEP& step, UINT& nDispPos)
  {
!     step.eState = SS_STEP_TO_BE_DONE;
  
!     // If this step has a msg ID then it is a step that gets displayed to the
!     // user.  Show it in the dialog.
!     if (step.nDescID) {
! 	// Give this step a position on the dialog in which to show its message
! 	step.nDescCtrlID = StepGuiCtrlIDs[nDispPos].nDescCtrlID;
! 	step.nGraphicCtrlID = StepGuiCtrlIDs[nDispPos].nGraphicCtrlID;
  
! 	// Show this step's text in the proper static control
! 	SetWndText(m_hDlg, step.nDescCtrlID, step.nDescID);
  
! 	// Show the static control
! 	ShowWnd(m_hDlg, step.nDescCtrlID);
  	
! 	// Show the graphic control
! 	ShowWnd(m_hDlg, step.nGraphicCtrlID);
  	
! 	nDispPos++;
!     }
  }
  
  static void SetupConfigSteps()
  {
!     UINT nDispPos = 0;	// Which StepGuiCtrlID to use, if applicable
!     int nStep = 0;
  
!     // Determine which steps are going to be performed.  For the ones that
!     // will be, show their description message in the appropriate place on
!     // the dialog.
!     GetStepsToPerform();
!     ASSERT(m_nNumSteps > 0);
! 
!     // For steps that should have a place on the dialog, assign them the
!     // next available position.
!     for (int i = 0; i < m_nNumSteps; i++)
! 	SetupStepGUI(m_ConfigSteps[i], nDispPos);
  }
  
  static BOOL CheckResult(int nResult, int nStatus)
  {
!     CHECK_CANCEL;
  
!     if (nResult)
! 	return TRUE;
  
!     ShowError(m_hDlg, nStatus, IDS_CONFIG_ERROR);
  
!     return FALSE;
  }
  
  static BOOL CheckCancel()
  {
!     // If we already know we are cancelling then return
!     if (m_bCancel)
! 	return TRUE;
  
!     // If user didn't press Cancel button, then return FALSE
!     if (!m_bCheckCancel)
! 	return FALSE;
  
!     ASSERT(m_bConfiguring);
  
!     TCHAR szMsg[cchRESOURCE];
!     TCHAR szTitle[cchRESOURCE];
  
!     GetString(szMsg, IDS_CANCEL_CONFIG_MSG);
!     GetString(szTitle, GetAppTitleID());
! 
!     // Ask user if they really want to cancel
!     int nChoice = MessageBox(m_hDlg, szMsg, szTitle, MB_YESNO | MB_ICONQUESTION);
  	
!     m_bCancel = (nChoice == IDYES);
  
!     m_bCheckCancel = FALSE;
  
!     return m_bCancel;
! }	
  
  /*
   *	Show the current config step, UNLESS the user has pressed the Cancel
***************
*** 906,921 ****
   */
  static void ShowCurrentStep(UINT uiMsgID)
  {
! 	if (!m_bCheckCancel && uiMsgID) {
! 		SetWndText(m_hDlg, IDC_CURRENT_STEP, uiMsgID);
          ForceUpdateWindow(m_hDlg, IDC_CURRENT_STEP);
      }
  }
  
  static void ShowCurrentStep(TCHAR *pszMsg)
  {
! 	if (!m_bCheckCancel && pszMsg) {
! 		SetWndText(m_hDlg, IDC_CURRENT_STEP, pszMsg);
          ForceUpdateWindow(m_hDlg, IDC_CURRENT_STEP);
      }
  }
--- 909,924 ----
   */
  static void ShowCurrentStep(UINT uiMsgID)
  {
!     if (!m_bCheckCancel && uiMsgID) {
! 	SetWndText(m_hDlg, IDC_CURRENT_STEP, uiMsgID);
          ForceUpdateWindow(m_hDlg, IDC_CURRENT_STEP);
      }
  }
  
  static void ShowCurrentStep(TCHAR *pszMsg)
  {
!     if (!m_bCheckCancel && pszMsg) {
! 	SetWndText(m_hDlg, IDC_CURRENT_STEP, pszMsg);
          ForceUpdateWindow(m_hDlg, IDC_CURRENT_STEP);
      }
  }
***************
*** 923,941 ****
  // Set the range and step increment for the progress bar.
  static void InitProgressBar()
  {
! 	SendDlgItemMessage(m_hDlg, IDC_CONFIG_PROGRESS, PBM_SETRANGE, 0, MAKELPARAM(0, m_nNumSteps));
! 	SendDlgItemMessage(m_hDlg, IDC_CONFIG_PROGRESS, PBM_SETSTEP, 1, 0);
  }
  
  static char *GetVicepName()
  {
! 	ASSERT((lstrlen(g_CfgData.szPartitionName) == 1) || (lstrlen(g_CfgData.szPartitionName) == 2));
  
! 	// Construct the partition name
! 	if (!m_szVicepName[0]) 
! 		sprintf(m_szVicepName, "/vicep%s", GetPartitionNameA());
  
! 	return m_szVicepName;
  }
  
  
--- 926,944 ----
  // Set the range and step increment for the progress bar.
  static void InitProgressBar()
  {
!     SendDlgItemMessage(m_hDlg, IDC_CONFIG_PROGRESS, PBM_SETRANGE, 0, MAKELPARAM(0, m_nNumSteps));
!     SendDlgItemMessage(m_hDlg, IDC_CONFIG_PROGRESS, PBM_SETSTEP, 1, 0);
  }
  
  static char *GetVicepName()
  {
!     ASSERT((lstrlen(g_CfgData.szPartitionName) == 1) || (lstrlen(g_CfgData.szPartitionName) == 2));
  
!     // Construct the partition name
!     if (!m_szVicepName[0]) 
! 	sprintf(m_szVicepName, "/vicep%s", GetPartitionNameA());
  
!     return m_szVicepName;
  }
  
  
***************
*** 946,1051 ****
  
  static BOOL VosOpenServer()
  {
! 	ASSERT(m_hvosServer == 0);
! 	ASSERT(g_CfgData.szHostname[0]);
! 	ASSERT(g_hCell);
  
! 	g_LogFile.Write("Opening server %s.\r\n", GetHostnameA());
  
! 	m_nResult = vos_ServerOpen(g_hCell, GetHostnameA(), &m_hvosServer, &m_nStatus);
! 	CHECK_RESULT;
  
! 	return TRUE;
  }
  
  static BOOL ConfigPartition()
  {
! 	ASSERT(g_hServer);
! 	ASSERT(g_CfgData.chDeviceName);
  
! 	// Constuct the device name
! 	char szDevName[] = "?:";
! 	szDevName[0] = GetDeviceNameA();
  
! 	g_LogFile.Write("Adding an AFS partition on device '%s' with name '%s'.\r\n", szDevName, GetVicepName());
  
! 	m_nResult = cfg_HostPartitionTableAddEntry(g_hServer, GetVicepName(), szDevName, &m_nStatus);
! 	CHECK_RESULT;
! 	
! 	return TRUE;
  }
  
  static BOOL FreeCellServDB()
  {
! 	afs_status_t nIgnore;
  
! 	if (m_pszCellDbHosts) {
! 		cfg_StringDeallocate(m_pszCellDbHosts, &nIgnore);
! 		CHECK_RESULT;
! 	}
  
! 	return TRUE;
  }
  
  static BOOL GetCellServDB(char **ppszCellServDB)
  {
! 	ASSERT(g_CfgData.szCellServDbHostname[0]);
  
! 	afs_status_t nIgnore;
! 	char *pszCellname = 0;
  
! 	g_LogFile.Write("Getting CellServDB from host %s.\r\n", GetCellServDbHostnameA());
! 	m_nResult = cfg_CellServDbEnumerate(GetCellServDbHostnameA(), &pszCellname, ppszCellServDB, &m_nStatus);
! 	CHECK_RESULT;
  
! 	// The cell name from this call better match the cell name we got previously
! 	if (strcmp(GetCellNameA(), pszCellname) != 0) {
! 		ShowError(m_hDlg, 0, IDS_WRONG_CELL);
! 		m_nResult = 0;
! 		return FALSE;
! 	}
  
! 	cfg_StringDeallocate(pszCellname, &nIgnore);
  
! 	g_LogFile.WriteMultistring(*ppszCellServDB);
  
! 	return TRUE;
  }
  
  // Define cell name and cell membership for server
  static BOOL DefineCellForServer()
  {
! 	ASSERT(g_hServer);
! 	ASSERT(g_CfgData.szCellName[0]);
  
! 	// CellServDB entries
! 	char *pszEntries = 0;
  
! 	// If not first server, get list of other hosts
! 	if (!g_CfgData.bFirstServer) {
! 		if (!m_pszCellDbHosts) {
! 			m_nResult = GetCellServDB(&m_pszCellDbHosts);
! 			if (!m_nResult)
! 				return m_nResult;
! 		}
! 		pszEntries = m_pszCellDbHosts;
! 	} else {
! 		// Make the hostname a multistring
! 		_tcsncat(g_CfgData.szHostname, TEXT("\0"), MAX_PARTITION_NAME_LEN);
! 		pszEntries = GetHostnameA();
! 	}
  
! 	g_LogFile.Write("Putting this host in cell '%s'.\r\n", GetCellNameA());
  
! 	ASSERT(g_CfgData.szCellName[0]);
  		
! 	m_nResult = cfg_HostSetCell(g_hServer, GetCellNameA(), pszEntries, &m_nStatus);
! 	CHECK_RESULT;
  
! 	g_CfgData.bValidServerInfo = TRUE;
  
! 	return TRUE;
! }
  
  static BOOL StopClient()
  {
--- 949,1054 ----
  
  static BOOL VosOpenServer()
  {
!     ASSERT(m_hvosServer == 0);
!     ASSERT(g_CfgData.szHostname[0]);
!     ASSERT(g_hCell);
  
!     g_LogFile.Write("Opening server %s.\r\n", GetHostnameA());
  
!     m_nResult = vos_ServerOpen(g_hCell, GetHostnameA(), &m_hvosServer, &m_nStatus);
!     CHECK_RESULT;
  
!     return TRUE;
  }
  
  static BOOL ConfigPartition()
  {
!     ASSERT(g_hServer);
!     ASSERT(g_CfgData.chDeviceName);
  
!     // Constuct the device name
!     char szDevName[] = "?:";
!     szDevName[0] = GetDeviceNameA();
  
!     g_LogFile.Write("Adding an AFS partition on device '%s' with name '%s'.\r\n", szDevName, GetVicepName());
  
!     m_nResult = cfg_HostPartitionTableAddEntry(g_hServer, GetVicepName(), szDevName, &m_nStatus);
!     CHECK_RESULT;
! 
!     return TRUE;
  }
  
  static BOOL FreeCellServDB()
  {
!     afs_status_t nIgnore;
  
!     if (m_pszCellDbHosts) {
! 	cfg_StringDeallocate(m_pszCellDbHosts, &nIgnore);
! 	CHECK_RESULT;
!     }
  
!     return TRUE;
  }
  
  static BOOL GetCellServDB(char **ppszCellServDB)
  {
!     ASSERT(g_CfgData.szCellServDbHostname[0]);
  
!     afs_status_t nIgnore;
!     char *pszCellname = 0;
  
!     g_LogFile.Write("Getting CellServDB from host %s.\r\n", GetCellServDbHostnameA());
!     m_nResult = cfg_CellServDbEnumerate(GetCellServDbHostnameA(), &pszCellname, ppszCellServDB, &m_nStatus);
!     CHECK_RESULT;
  
!     // The cell name from this call better match the cell name we got previously
!     if (strcmp(GetCellNameA(), pszCellname) != 0) {
! 	ShowError(m_hDlg, 0, IDS_WRONG_CELL);
! 	m_nResult = 0;
! 	return FALSE;
!     }
  
!     cfg_StringDeallocate(pszCellname, &nIgnore);
  
!     g_LogFile.WriteMultistring(*ppszCellServDB);
  
!     return TRUE;
  }
  
  // Define cell name and cell membership for server
  static BOOL DefineCellForServer()
  {
!     ASSERT(g_hServer);
!     ASSERT(g_CfgData.szCellName[0]);
  
!     // CellServDB entries
!     char *pszEntries = 0;
  
!     // If not first server, get list of other hosts
!     if (!g_CfgData.bFirstServer) {
! 	if (!m_pszCellDbHosts) {
! 	    m_nResult = GetCellServDB(&m_pszCellDbHosts);
! 	    if (!m_nResult)
! 		return m_nResult;
! 	}
! 	pszEntries = m_pszCellDbHosts;
!     } else {
! 	// Make the hostname a multistring
! 	_tcsncat(g_CfgData.szHostname, TEXT("\0"), MAX_PARTITION_NAME_LEN);
! 	pszEntries = GetHostnameA();
!     }
  
!     g_LogFile.Write("Putting this host in cell '%s'.\r\n", GetCellNameA());
  
!     ASSERT(g_CfgData.szCellName[0]);
  		
!     m_nResult = cfg_HostSetCell(g_hServer, GetCellNameA(), pszEntries, &m_nStatus);
!     CHECK_RESULT;
  
!     g_CfgData.bValidServerInfo = TRUE;
  
!     return TRUE;
! }	
  
  static BOOL StopClient()
  {
***************
*** 1059,1148 ****
  
  static BOOL DefineCellForClient()
  {
! 	ASSERT(g_hClient);
! 	ASSERT(g_CfgData.szCellName[0]);
  
      // Stop the client
      if (!StopClient())
          return FALSE;
  
! 	// CellServDB entries
! 	char *pszEntries = 0;
  
! 	// If not first server, get list of other hosts
! 	if (!g_CfgData.bFirstServer) {
! 		if (!m_pszCellDbHosts) {
! 			m_nResult = GetCellServDB(&m_pszCellDbHosts);
! 			if (!m_nResult)
! 				return m_nResult;
! 		}
!     	pszEntries = m_pszCellDbHosts;
! 	} else {
! 		// Make the hostname a multistring
! 		_tcsncat(g_CfgData.szHostname, TEXT("\0"), MAX_PARTITION_NAME_LEN);
! 		pszEntries = GetHostnameA();
  	}
  
! 	g_LogFile.Write("Putting the AFS Client in this host's cell.\r\n");
  
! 	m_nResult = cfg_ClientSetCell(g_hClient, GetCellNameA(), pszEntries, &m_nStatus);
! 	CHECK_RESULT;
  
! 	// Update our state info about the client
! 	g_CfgData.bValidClientInfo = TRUE;
! 	lstrcpy(g_CfgData.szClientCellName, g_CfgData.szCellName);
! 
! 	if (!g_CfgData.bFirstServer) {
! 		if (!UpgradeLibHandles())
! 			return FALSE;
! 	}
  
! 	return TRUE;
! }
  
  static BOOL StartBosServer()
  {
! 	ASSERT(g_hServer);
  
! 	g_LogFile.Write("Starting the bos server in %s mode.\r\n", m_bNoAuthMode ? "no auth" : "auth");
! 	
! 	m_nResult = cfg_BosServerStart(g_hServer, m_bNoAuthMode, BOSSERVER_START_TIMEOUT, &m_nStatus);
! 	CHECK_RESULT;
  
! 	return TRUE;
  }
  
  static BOOL StartAuthServer()
  {
! 	ASSERT(g_hServer);
! 	ASSERT(g_CfgData.bFirstServer);
  
! 	g_LogFile.Write("Starting the authentication server.\r\n");
  
! 	m_nResult = cfg_AuthServerStart(g_hServer, &m_nStatus);
! 	CHECK_RESULT;
  
! 	g_CfgData.bAuthServerRunning = TRUE;
  
! 	return TRUE;
  }
  
  static BOOL CreatePrincipalAndKey()
  {
! 	ASSERT(g_hServer);
  
! 	if (!UpgradeLibHandles())
! 		return FALSE;
  
! 	// Create AFS server principal and put key in local Keyfile
! 	LPTSTR pszServerPW = 0;
  
! 	g_LogFile.Write("Setting the AFS Principal.\r\n");
  
! 	if (g_CfgData.bFirstServer) {
! 		ASSERT(g_CfgData.szServerPW[0]);
! 		pszServerPW = GetServerPW();
! 	}
  
      BOOL bDone = FALSE;
  
--- 1062,1151 ----
  
  static BOOL DefineCellForClient()
  {
!     ASSERT(g_hClient);
!     ASSERT(g_CfgData.szCellName[0]);
  
      // Stop the client
      if (!StopClient())
          return FALSE;
  
!     // CellServDB entries
!     char *pszEntries = 0;
  
!     // If not first server, get list of other hosts
!     if (!g_CfgData.bFirstServer) {
! 	if (!m_pszCellDbHosts) {
! 	    m_nResult = GetCellServDB(&m_pszCellDbHosts);
! 	    if (!m_nResult)
! 		return m_nResult;
  	}
+     	pszEntries = m_pszCellDbHosts;
+     } else {
+ 	// Make the hostname a multistring
+ 	_tcsncat(g_CfgData.szHostname, TEXT("\0"), MAX_PARTITION_NAME_LEN);
+ 	pszEntries = GetHostnameA();
+     }
  
!     g_LogFile.Write("Putting the AFS Client in this host's cell.\r\n");
  
!     m_nResult = cfg_ClientSetCell(g_hClient, GetCellNameA(), pszEntries, &m_nStatus);
!     CHECK_RESULT;
  
!     // Update our state info about the client
!     g_CfgData.bValidClientInfo = TRUE;
!     lstrcpy(g_CfgData.szClientCellName, g_CfgData.szCellName);
  
!     if (!g_CfgData.bFirstServer) {
! 	if (!UpgradeLibHandles())
! 	    return FALSE;
!     }	
! 
!     return TRUE;
! }	
  
  static BOOL StartBosServer()
  {
!     ASSERT(g_hServer);
  
!     g_LogFile.Write("Starting the bos server in %s mode.\r\n", m_bNoAuthMode ? "no auth" : "auth");
  
!     m_nResult = cfg_BosServerStart(g_hServer, m_bNoAuthMode, BOSSERVER_START_TIMEOUT, &m_nStatus);
!     CHECK_RESULT;
! 
!     return TRUE;
  }
  
  static BOOL StartAuthServer()
  {
!     ASSERT(g_hServer);
!     ASSERT(g_CfgData.bFirstServer);
  
!     g_LogFile.Write("Starting the authentication server.\r\n");
  
!     m_nResult = cfg_AuthServerStart(g_hServer, &m_nStatus);
!     CHECK_RESULT;
  
!     g_CfgData.bAuthServerRunning = TRUE;
  
!     return TRUE;
  }
  
  static BOOL CreatePrincipalAndKey()
  {
!     ASSERT(g_hServer);
  
!     if (!UpgradeLibHandles())
! 	return FALSE;
  
!     // Create AFS server principal and put key in local Keyfile
!     LPTSTR pszServerPW = 0;
  
!     g_LogFile.Write("Setting the AFS Principal.\r\n");
  
!     if (g_CfgData.bFirstServer) {
! 	ASSERT(g_CfgData.szServerPW[0]);
! 	pszServerPW = GetServerPW();
!     }
  
      BOOL bDone = FALSE;
  
***************
*** 1162,1280 ****
              bDone = TRUE;
      }
  
! 	CHECK_RESULT;
  
! 	return TRUE;
  }
  
  static BOOL StartDbServers()
  {
! 	ASSERT(g_hServer);
  
! 	g_LogFile.Write("Starting the following servers: Protection   Volume Location   ");
! 	if (IsStepEnabled(g_CfgData.configBak))
! 		g_LogFile.Write("Backup   ");
! 	if (!g_CfgData.bFirstServer)
! 		g_LogFile.Write("Authentication");
! 	g_LogFile.Write("\r\n");
  
! 	// Start Protection, Volume Location, and Backup (optional) database servers
! 	m_nResult = cfg_DbServersStart(g_hServer, ShouldConfig(g_CfgData.configBak), &m_nStatus);
! 	CHECK_RESULT;
  
! 	// Must wait for this now so we can then talk to them.
! 	if (g_CfgData.bFirstServer) {
! 		g_LogFile.Write("Waiting for database servers to reach quorum.\r\n");
! 		m_nResult = cfg_DbServersWaitForQuorum(g_hServer, QUORUM_WAIT_TIMEOUT, &m_nStatus);
! 		CHECK_RESULT;
! 	}
  
! 	return TRUE;
  }
  
  static BOOL CreateAdminPrincipal()
  {
! 	ASSERT(g_hServer);
! 	ASSERT(g_CfgData.szAdminName[0]);
  	
! 	// Create generic admin principal and put in local Userlist
! 	char *pszAdminPW = 0;
! 	int nUID = 0;
! 
! 	if (g_CfgData.bFirstServer) {
! 		ASSERT(g_CfgData.szAdminPW[0]);
! 		ASSERT(g_CfgData.szAdminUID[0]);
! 		pszAdminPW = GetAdminPWA();
! 		nUID = atoi(GetAdminUIDA());
! 		g_LogFile.Write("Setting Admin Principal to '%s' and UID to %d.\r\n", GetAdminNameA(), nUID);
! 	} else
! 		g_LogFile.Write("Setting Admin Principal to '%s'.\r\n", GetAdminNameA());
  
! 	m_nResult = cfg_HostSetAdminPrincipal(g_hServer, (short)g_CfgData.bFirstServer, GetAdminNameA(), pszAdminPW, nUID, &m_nStatus);
! 	CHECK_RESULT;
  
! 	g_CfgData.bAdminPrincipalCreated = TRUE;
  
! 	if (g_CfgData.bFirstServer) {
! 		if (!UpgradeLibHandles())
! 			return FALSE;
! 	}
  
! 	return TRUE;
! }
  
  static BOOL StartFsVlAndSalvager()
  {
! 	ASSERT(g_hServer);
  
! 	g_LogFile.Write("Starting the File Server.\r\n");
  
! 	m_nResult = cfg_FileServerStart(g_hServer, &m_nStatus);
! 	CHECK_RESULT;
                  
! 	return TRUE;
  }
  
  static BOOL ConfigSCS()
  {
! 	ASSERT(g_hServer);
  
! 	g_LogFile.Write("Configuring the System Control Server.\r\n");
  
! 	m_nResult = cfg_SysBinServerStart(g_hServer, TRUE, FALSE, &m_nStatus);
! 	CHECK_RESULT;
  
! 	return TRUE;
  }
  
  static BOOL ConfigSCC()
  {
! 	ASSERT(g_hServer);
! 	ASSERT(g_CfgData.szSysControlMachine[0]);
  	
! 	g_LogFile.Write("Configuring the System Control Client.\r\n");
  
! 	m_nResult = cfg_SysControlClientStart(g_hServer, GetSysControlMachineA(), &m_nStatus);
! 	CHECK_RESULT;
  
! 	return TRUE;
! }
  
  static BOOL GetPartitionID()
  {
! 	if (m_nPartitionID != INVALID_PARTITION_ID)
! 		return TRUE;
  
! 	g_LogFile.Write("Translating the parition name '%s' to an ID.\r\n", GetVicepName());
  
! 	m_nResult = vos_PartitionNameToId(GetVicepName(), &m_nPartitionID, &m_nStatus);
! 	CHECK_RESULT;
  
! 	g_LogFile.Write("The ID for partition '%s' is %d.\r\n", GetVicepName(), m_nPartitionID);
  
! 	ASSERT(m_nPartitionID != INVALID_PARTITION_ID);
  
! 	return TRUE;
  }
  
  static BOOL GetRootVolumeInfo()
--- 1165,1283 ----
              bDone = TRUE;
      }
  
!     CHECK_RESULT;
  
!     return TRUE;
  }
  
  static BOOL StartDbServers()
  {
!     ASSERT(g_hServer);
  
!     g_LogFile.Write("Starting the following servers: Protection   Volume Location   ");
!     if (IsStepEnabled(g_CfgData.configBak))
! 	g_LogFile.Write("Backup   ");
!     if (!g_CfgData.bFirstServer)
! 	g_LogFile.Write("Authentication");
!     g_LogFile.Write("\r\n");
  
!     // Start Protection, Volume Location, and Backup (optional) database servers
!     m_nResult = cfg_DbServersStart(g_hServer, ShouldConfig(g_CfgData.configBak), &m_nStatus);
!     CHECK_RESULT;
  
!     // Must wait for this now so we can then talk to them.
!     if (g_CfgData.bFirstServer) {
! 	g_LogFile.Write("Waiting for database servers to reach quorum.\r\n");
! 	m_nResult = cfg_DbServersWaitForQuorum(g_hServer, QUORUM_WAIT_TIMEOUT, &m_nStatus);
! 	CHECK_RESULT;
!     }
  
!     return TRUE;
  }
  
  static BOOL CreateAdminPrincipal()
  {
!     ASSERT(g_hServer);
!     ASSERT(g_CfgData.szAdminName[0]);
  	
!     // Create generic admin principal and put in local Userlist
!     char *pszAdminPW = 0;
!     int nUID = 0;
  
!     if (g_CfgData.bFirstServer) {
! 	ASSERT(g_CfgData.szAdminPW[0]);
! 	ASSERT(g_CfgData.szAdminUID[0]);
! 	pszAdminPW = GetAdminPWA();
! 	nUID = atoi(GetAdminUIDA());
! 	g_LogFile.Write("Setting Admin Principal to '%s' and UID to %d.\r\n", GetAdminNameA(), nUID);
!     } else
! 	g_LogFile.Write("Setting Admin Principal to '%s'.\r\n", GetAdminNameA());
  
!     m_nResult = cfg_HostSetAdminPrincipal(g_hServer, (short)g_CfgData.bFirstServer, GetAdminNameA(), pszAdminPW, nUID, &m_nStatus);
!     CHECK_RESULT;
  
!     g_CfgData.bAdminPrincipalCreated = TRUE;
  
!     if (g_CfgData.bFirstServer) {
! 	if (!UpgradeLibHandles())
! 	    return FALSE;
!     }	
! 
!     return TRUE;
! }	
  
  static BOOL StartFsVlAndSalvager()
  {
!     ASSERT(g_hServer);
  
!     g_LogFile.Write("Starting the File Server.\r\n");
  
!     m_nResult = cfg_FileServerStart(g_hServer, &m_nStatus);
!     CHECK_RESULT;
                  
!     return TRUE;
  }
  
  static BOOL ConfigSCS()
  {
!     ASSERT(g_hServer);
  
!     g_LogFile.Write("Configuring the System Control Server.\r\n");
  
!     m_nResult = cfg_SysBinServerStart(g_hServer, TRUE, FALSE, &m_nStatus);
!     CHECK_RESULT;
  
!     return TRUE;
  }
  
  static BOOL ConfigSCC()
  {
!     ASSERT(g_hServer);
!     ASSERT(g_CfgData.szSysControlMachine[0]);
  	
!     g_LogFile.Write("Configuring the System Control Client.\r\n");
  
!     m_nResult = cfg_SysControlClientStart(g_hServer, GetSysControlMachineA(), &m_nStatus);
!     CHECK_RESULT;
  
!     return TRUE;
! }	
  
  static BOOL GetPartitionID()
  {
!     if (m_nPartitionID != INVALID_PARTITION_ID)
! 	return TRUE;
  
!     g_LogFile.Write("Translating the parition name '%s' to an ID.\r\n", GetVicepName());
  
!     m_nResult = vos_PartitionNameToId(GetVicepName(), &m_nPartitionID, &m_nStatus);
!     CHECK_RESULT;
  
!     g_LogFile.Write("The ID for partition '%s' is %d.\r\n", GetVicepName(), m_nPartitionID);
  
!     ASSERT(m_nPartitionID != INVALID_PARTITION_ID);
  
!     return TRUE;
  }
  
  static BOOL GetRootVolumeInfo()
***************
*** 1302,1309 ****
  
  static BOOL CreateRootAfs()
  {
! 	ASSERT(g_hCell);
! 	ASSERT(m_hvosServer);
  
      // If the root.afs volume already exists, then just return.  We can get to this step
      // and root.afs already exist if:
--- 1305,1312 ----
  
  static BOOL CreateRootAfs()
  {
!     ASSERT(g_hCell);
!     ASSERT(m_hvosServer);
  
      // If the root.afs volume already exists, then just return.  We can get to this step
      // and root.afs already exist if:
***************
*** 1318,1358 ****
      //        we only create the one that doesn't exist.
      //
      if (g_CfgData.bRootAfsExists)
! 		return TRUE;
  
! 	if (!GetPartitionID())
! 		return FALSE;
      
      // If the client is running then stop it - creating root.afs will confuse it.
      // It will be started again after root.afs is created.
      if (!StopClient())
          return FALSE;
  
! 	g_LogFile.Write("Creating volume root.afs on partition %d with a quota of %d.\r\n", m_nPartitionID, ROOT_VOLUMES_QUOTA);
  
! 	m_nResult = vos_VolumeCreate(g_hCell, m_hvosServer, 0, m_nPartitionID, "root.afs", ROOT_VOLUMES_QUOTA, &g_CfgData.nRootAfsID, &m_nStatus);
  
! 	CHECK_RESULT;
  
! 	g_LogFile.Write("Volume root.afs was created with an ID of %d.\r\n", g_CfgData.nRootAfsID);
  
! 	g_CfgData.bRootAfsExists = TRUE;
  
      m_bWeCreatedRootAfs = TRUE;
  
! 	return TRUE;
! }
  
  static BOOL StartClient()
  {
! 	ASSERT(g_hClient);
      
! 	g_LogFile.Write("Starting the AFS Client.\r\n");
  
! 	m_nResult = cfg_ClientStart(g_hClient, CLIENT_START_TIMEOUT, &m_nStatus);
! 	CHECK_RESULT;
  	
! 	return TRUE;
  }
  
  static BOOL SetTokensInClient()
--- 1321,1361 ----
      //        we only create the one that doesn't exist.
      //
      if (g_CfgData.bRootAfsExists)
! 	return TRUE;
  
!     if (!GetPartitionID())
! 	return FALSE;
      
      // If the client is running then stop it - creating root.afs will confuse it.
      // It will be started again after root.afs is created.
      if (!StopClient())
          return FALSE;
  
!     g_LogFile.Write("Creating volume root.afs on partition %d with a quota of %d.\r\n", m_nPartitionID, ROOT_VOLUMES_QUOTA);
  
!     m_nResult = vos_VolumeCreate(g_hCell, m_hvosServer, 0, m_nPartitionID, "root.afs", ROOT_VOLUMES_QUOTA, &g_CfgData.nRootAfsID, &m_nStatus);
  
!     CHECK_RESULT;
  
!     g_LogFile.Write("Volume root.afs was created with an ID of %d.\r\n", g_CfgData.nRootAfsID);
  
!     g_CfgData.bRootAfsExists = TRUE;
  
      m_bWeCreatedRootAfs = TRUE;
  
!     return TRUE;
! }	
  
  static BOOL StartClient()
  {
!     ASSERT(g_hClient);
      
!     g_LogFile.Write("Starting the AFS Client.\r\n");
  
!     m_nResult = cfg_ClientStart(g_hClient, CLIENT_START_TIMEOUT, &m_nStatus);
!     CHECK_RESULT;
  	
!     return TRUE;
  }
  
  static BOOL SetTokensInClient()
***************
*** 1360,1366 ****
      if (m_bClientTokensSet)
          return TRUE;
  
! 	g_LogFile.Write("Putting our tokens into the AFS Client.\r\n");
  
      m_nResult = afsclient_TokenSet(g_hToken, &m_nStatus);
      CHECK_RESULT;
--- 1363,1369 ----
      if (m_bClientTokensSet)
          return TRUE;
  
!     g_LogFile.Write("Putting our tokens into the AFS Client.\r\n");
  
      m_nResult = afsclient_TokenSet(g_hToken, &m_nStatus);
      CHECK_RESULT;
***************
*** 1370,1385 ****
      return TRUE;
  }
  
! static BOOL CreateRootAfsDriveMapping()
  {
      if (m_bRootAfsDriveMappingCreated)
          return TRUE;
  
      g_LogFile.Write("Attempting to create a drive mapping into AFS.\r\n");
  
! 	char szAfsRootDir[_MAX_PATH];
! 	sprintf(szAfsRootDir, "\\\\%s\\all", GetClientNetbiosNameA());
  
      strcpy(m_szDriveToMapTo, "_:");
  
      // We will try all drives from D to Z.
--- 1373,1447 ----
      return TRUE;
  }
  
! static BOOL IsClientFreelance(void)
! {
!     HKEY  parmKey;
!     DWORD code;
!     DWORD dummyLen;
!     DWORD enabled = 0;
! 
!     code = RegOpenKeyEx(HKEY_LOCAL_MACHINE, AFSREG_CLT_SVC_PARAM_SUBKEY,
!                          0, KEY_QUERY_VALUE, &parmKey);
!     if (code == ERROR_SUCCESS) {
!         dummyLen = sizeof(enabled);
!         code = RegQueryValueEx(parmKey, "FreelanceClient", NULL, NULL,
!                             (BYTE *) &enabled, &dummyLen);
!         RegCloseKey (parmKey);
!     }
!     return (enabled?TRUE:FALSE);	
! }
! 
! static char space[2048];
! static BOOL IsRootAfsMountPoint(void)
! {
!     struct ViceIoctl blob;
!     afs_int32 code;
! 
!     blob.in = ".root.afs";
!     blob.in_size = 9L;
!     blob.out_size = sizeof(space);
!     blob.out = space;
!     memset(space, 0, sizeof(space));
! 
!     code = pioctl(GetClientNetbiosNameA(), VIOC_AFS_STAT_MT_PT, &blob, 1);
!     return (code == 0);
! }
! 
! static BOOL CreateFreelanceRootAfsMountPoint(char * path)
! {
!     struct ViceIoctl blob;
!     afs_int32 code;
!     
! 	if (IsRootAfsMountPoint())
! 		return TRUE;
! 
!     blob.in = "%root.afs";
!     blob.in_size = 10L;
!     blob.out_size = sizeof(space);
!     blob.out = space;
!     memset(space, 0, sizeof(space));
! 
!     code = pioctl(path, VIOC_AFS_CREATE_MT_PT, &blob, 1);
!     return (code == 0);
! }
! 
! static BOOL CreateRootAfsDriveMapping(void)
  {
      if (m_bRootAfsDriveMappingCreated)
          return TRUE;
  
      g_LogFile.Write("Attempting to create a drive mapping into AFS.\r\n");
  
!     char szAfsRootDir[_MAX_PATH];
  
+     if ( IsClientFreelance() )
+     {
+ 	sprintf(szAfsRootDir, "\\\\%s\\all\\.root.afs", GetClientNetbiosNameA());
+ 	if ( !CreateFreelanceRootAfsMountPoint(szAfsRootDir) )
+ 	    return FALSE;
+     } else {
+ 	sprintf(szAfsRootDir, "\\\\%s\\all", GetClientNetbiosNameA());
+     }
      strcpy(m_szDriveToMapTo, "_:");
  
      // We will try all drives from D to Z.
***************
*** 1389,1395 ****
      NETRESOURCE nr;
      memset (&nr, 0x00, sizeof(NETRESOURCE));
  
!     for (chDriveLetter = 'D'; (chDriveLetter <= 'Z') && !m_bRootAfsDriveMappingCreated; chDriveLetter++) {
          m_szDriveToMapTo[0] = chDriveLetter;
          g_LogFile.Write("Attempting to map %s to %s: ", m_szDriveToMapTo, szAfsRootDir);
  
--- 1451,1457 ----
      NETRESOURCE nr;
      memset (&nr, 0x00, sizeof(NETRESOURCE));
  
!     for (chDriveLetter = 'Z'; (chDriveLetter > 'C') && !m_bRootAfsDriveMappingCreated; chDriveLetter--) {
          m_szDriveToMapTo[0] = chDriveLetter;
          g_LogFile.Write("Attempting to map %s to %s: ", m_szDriveToMapTo, szAfsRootDir);
  
***************
*** 1425,1445 ****
      if (!CreateRootAfsDriveMapping())
          return FALSE;
  
! 	g_LogFile.Write("Setting the ACL on root.afs.\r\n");
  
! 	acl_t acl = { READ, NO_WRITE, LOOKUP, NO_DELETE, NO_INSERT, NO_LOCK, NO_ADMIN };
  
! 	m_nResult = afsclient_ACLEntryAdd(m_szDriveToMapTo, "system:anyuser", &acl, &m_nStatus);
! 	CHECK_RESULT;
! 	
! 	return TRUE;
  }
  
  
  static BOOL CreateRootCell()
  {
! 	ASSERT(g_hCell);
! 	ASSERT(m_hvosServer);
  
      // If the root.cell volume already exists, then just return.  We can get to this step
      // and root.cell already exist if:
--- 1487,1507 ----
      if (!CreateRootAfsDriveMapping())
          return FALSE;
  
!     g_LogFile.Write("Setting the ACL on root.afs.\r\n");
  
!     acl_t acl = { READ, NO_WRITE, LOOKUP, NO_DELETE, NO_INSERT, NO_LOCK, NO_ADMIN };
  
!     m_nResult = afsclient_ACLEntryAdd(m_szDriveToMapTo, "system:anyuser", &acl, &m_nStatus);
!     CHECK_RESULT;
! 
!     return TRUE;
  }
  
  
  static BOOL CreateRootCell()
  {
!     ASSERT(g_hCell);
!     ASSERT(m_hvosServer);
  
      // If the root.cell volume already exists, then just return.  We can get to this step
      // and root.cell already exist if:
***************
*** 1454,1512 ****
      //        we only create the one that doesn't exist.
      //
      if (g_CfgData.bRootCellExists)
! 		return TRUE;
  
      // If root.afs exists and we did not just create it, then we cannot make root.cell.  For
      // now, just pretend we succeeded.  TODO: We must handle this better in a future version.
      // We can't at this time because the program strings are frozen - we can't add new
      // error messages.
! 	if (g_CfgData.bRootAfsExists && !m_bWeCreatedRootAfs)
          return TRUE;
  	
! 	if (!GetPartitionID())
! 		return FALSE;
  
! 	g_LogFile.Write("Creating volume root.cell on partition %d with a quota of %d.\r\n", m_nPartitionID, ROOT_VOLUMES_QUOTA);
  
! 	m_nResult = vos_VolumeCreate(g_hCell, m_hvosServer, 0, m_nPartitionID, "root.cell", ROOT_VOLUMES_QUOTA, &g_CfgData.nRootCellID, &m_nStatus);
! 	CHECK_RESULT;
! 	
! 	g_LogFile.Write("Volume root.cell was created with an ID of %d.\r\n", g_CfgData.nRootCellID);
  
! 	g_CfgData.bRootCellExists = TRUE;
  
      m_bWeCreatedRootCell = TRUE;
  
! 	return TRUE;
! }
  
  static char *GetRootCellDir()
  {
! 	static char szDir[MAX_CELL_NAME_LEN + 5] = "";
  
! 	if (!szDir[0]) {
! 		ASSERT(g_CfgData.szCellName[0]);
! 		sprintf(szDir, "%s\\%s", m_szDriveToMapTo, GetCellNameA());
! 	}
  
! 	return szDir;
  }
  
  static char *GetRootCellReadWriteDir()
  {
! 	static char szDir[MAX_CELL_NAME_LEN + 5] = "";
  
! 	if (!szDir[0]) {
! 		ASSERT(g_CfgData.szCellName[0]);
! 		sprintf(szDir, "%s\\.%s", m_szDriveToMapTo, GetCellNameA());
! 	}
  
! 	return szDir;
! }
  
  static BOOL MountRootCellStandard()
  {
! 	ASSERT(g_CfgData.szCellName[0]);
  
      // Only do this if we just created root.cell
      if (!m_bWeCreatedRootCell)
--- 1516,1574 ----
      //        we only create the one that doesn't exist.
      //
      if (g_CfgData.bRootCellExists)
! 	return TRUE;
  
      // If root.afs exists and we did not just create it, then we cannot make root.cell.  For
      // now, just pretend we succeeded.  TODO: We must handle this better in a future version.
      // We can't at this time because the program strings are frozen - we can't add new
      // error messages.
!     if (g_CfgData.bRootAfsExists && !m_bWeCreatedRootAfs)
          return TRUE;
  	
!     if (!GetPartitionID())
! 	return FALSE;
  
!     g_LogFile.Write("Creating volume root.cell on partition %d with a quota of %d.\r\n", m_nPartitionID, ROOT_VOLUMES_QUOTA);
  
!     m_nResult = vos_VolumeCreate(g_hCell, m_hvosServer, 0, m_nPartitionID, "root.cell", ROOT_VOLUMES_QUOTA, &g_CfgData.nRootCellID, &m_nStatus);
!     CHECK_RESULT;
  
!     g_LogFile.Write("Volume root.cell was created with an ID of %d.\r\n", g_CfgData.nRootCellID);
! 
!     g_CfgData.bRootCellExists = TRUE;
  
      m_bWeCreatedRootCell = TRUE;
  
!     return TRUE;
! }	
  
  static char *GetRootCellDir()
  {
!     static char szDir[MAX_CELL_NAME_LEN + 5] = "";
  
!     if (!szDir[0]) {
! 	ASSERT(g_CfgData.szCellName[0]);
! 	sprintf(szDir, "%s\\%s", m_szDriveToMapTo, GetCellNameA());
!     }
  
!     return szDir;
  }
  
  static char *GetRootCellReadWriteDir()
  {
!     static char szDir[MAX_CELL_NAME_LEN + 5] = "";
  
!     if (!szDir[0]) {
! 	ASSERT(g_CfgData.szCellName[0]);
! 	sprintf(szDir, "%s\\.%s", m_szDriveToMapTo, GetCellNameA());
!     }
  
!     return szDir;
! }	
  
  static BOOL MountRootCellStandard()
  {
!     ASSERT(g_CfgData.szCellName[0]);
  
      // Only do this if we just created root.cell
      if (!m_bWeCreatedRootCell)
***************
*** 1518,1529 ****
      if (!CreateRootAfsDriveMapping())
          return FALSE;
  
! 	g_LogFile.Write("Mouting root.cell with a Standard mount point at path %s.\r\n", GetRootCellDir());
  	
! 	m_nResult = afsclient_MountPointCreate(g_hCell, GetRootCellDir(), "root.cell", READ_ONLY, CHECK_VOLUME, &m_nStatus);
! 	CHECK_RESULT;
  
! 	return TRUE;
  }
  
  static BOOL SetRootCellAcl()
--- 1580,1591 ----
      if (!CreateRootAfsDriveMapping())
          return FALSE;
  
!     g_LogFile.Write("Mouting root.cell with a Standard mount point at path %s.\r\n", GetRootCellDir());
  	
!     m_nResult = afsclient_MountPointCreate(g_hCell, GetRootCellDir(), "root.cell", READ_ONLY, CHECK_VOLUME, &m_nStatus);
!     CHECK_RESULT;
  
!     return TRUE;
  }
  
  static BOOL SetRootCellAcl()
***************
*** 1535,1553 ****
      if (!SetTokensInClient())
          return FALSE;
  
! 	g_LogFile.Write("Setting the ACL on root.cell (dir %s).\r\n", GetRootCellDir());
  
! 	acl_t acl = { READ, NO_WRITE, LOOKUP, NO_DELETE, NO_INSERT, NO_LOCK, NO_ADMIN };
  
! 	m_nResult = afsclient_ACLEntryAdd(GetRootCellDir(), "system:anyuser", &acl, &m_nStatus);
! 	CHECK_RESULT;
  
! 	return TRUE;
  }
  
  static BOOL MountRootCellRW()
  {
! 	ASSERT(g_CfgData.szCellName[0]);
  
      // Only do this if we just created root.cell
      if (!m_bWeCreatedRootCell)
--- 1597,1615 ----
      if (!SetTokensInClient())
          return FALSE;
  
!     g_LogFile.Write("Setting the ACL on root.cell (dir %s).\r\n", GetRootCellDir());
  
!     acl_t acl = { READ, NO_WRITE, LOOKUP, NO_DELETE, NO_INSERT, NO_LOCK, NO_ADMIN };
  
!     m_nResult = afsclient_ACLEntryAdd(GetRootCellDir(), "system:anyuser", &acl, &m_nStatus);
!     CHECK_RESULT;
  
!     return TRUE;
  }
  
  static BOOL MountRootCellRW()
  {
!     ASSERT(g_CfgData.szCellName[0]);
  
      // Only do this if we just created root.cell
      if (!m_bWeCreatedRootCell)
***************
*** 1559,1910 ****
      if (!CreateRootAfsDriveMapping())
          return FALSE;
  
! 	g_LogFile.Write("Mounting root.cell with a Read/Write mount point at path %s.\r\n", GetRootCellReadWriteDir());
  
! 	m_nResult = afsclient_MountPointCreate(g_hCell, GetRootCellReadWriteDir(), "root.cell", READ_WRITE, CHECK_VOLUME, &m_nStatus);
! 	CHECK_RESULT;
  
! 	return TRUE;
! }
  
  static BOOL Replicate()
  {
! 	ASSERT(g_hCell);
! 	ASSERT(m_hvosServer);
  
! 	if (!GetPartitionID())
! 		return FALSE;
  
! 	// If only one of the volumes is not replicated, then only replicate
! 	// that volume, or if we could not determine if they were replicated
      // until configuration began, and they are replicated, then do nothing.
  
! 	if (g_CfgData.bRootAfsExists && !g_CfgData.bRootAfsReplicated) {
! 		g_LogFile.Write("Creating a read only site for volume root.afs using partition ID %d and volume ID %d.\r\n", m_nPartitionID, g_CfgData.nRootAfsID);
  	
! 		m_nResult = vos_VLDBReadOnlySiteCreate(g_hCell, m_hvosServer, 0, m_nPartitionID, g_CfgData.nRootAfsID, &m_nStatus);
! 		CHECK_RESULT;
  	
! 		g_LogFile.Write("Releasing the root.afs volume using volume ID %d.\r\n", g_CfgData.nRootAfsID);
  	
! 		m_nResult = vos_VolumeRelease(g_hCell, 0, g_CfgData.nRootAfsID, VOS_NORMAL, &m_nStatus);
! 		CHECK_RESULT;
  
! 		g_CfgData.bRootAfsReplicated = TRUE;
! 	}
  
! 	if (g_CfgData.bRootCellExists && !g_CfgData.bRootCellReplicated) {
! 		g_LogFile.Write("Creating a read only site for volume root.cell using partition ID %d and volume ID %d.\r\n", m_nPartitionID, g_CfgData.nRootCellID);
  	
! 		m_nResult = vos_VLDBReadOnlySiteCreate(g_hCell, m_hvosServer, 0, m_nPartitionID, g_CfgData.nRootCellID, &m_nStatus);
! 		CHECK_RESULT;
  	
! 		g_LogFile.Write("Releasing the root.cell volume using volume ID %d.\r\n", g_CfgData.nRootCellID);
  	
! 		m_nResult = vos_VolumeRelease(g_hCell, 0, g_CfgData.nRootCellID, VOS_NORMAL, &m_nStatus);
! 		CHECK_RESULT;
  
! 		g_CfgData.bRootCellReplicated = TRUE;
! 	}
  
! 	return TRUE;
! }
  
  static BOOL EnableAuthChecking()
  {
! 	ASSERT(g_hCell);
! 	ASSERT(g_CfgData.szHostname[0]);
  
! 	void *hbosServer;
  
! 	g_LogFile.Write("Bos open of server '%s'.\r\n", GetHostnameA());
! 	m_nResult = bos_ServerOpen(g_hCell, GetHostnameA(), &hbosServer, &m_nStatus);
! 	CHECK_RESULT;
  
! 	ASSERT(hbosServer);
  
! 	g_LogFile.Write("Enabling auth checking.\r\n");
! 	m_nResult = bos_AuthSet(hbosServer, BOS_AUTH_REQUIRED, &m_nStatus);
! 	CHECK_RESULT;
  
! 	g_LogFile.Write("Closing bos server connection.\r\n");
! 	m_nResult = bos_ServerClose(hbosServer, &m_nStatus);
! 	CHECK_RESULT;
  
! 	return TRUE;
  }
  
  static BOOL UpgradeLibHandles()
  {
! 	ASSERT(g_CfgData.szCellName[0]);
! 	ASSERT(g_CfgData.szAdminName[0]);
! 	ASSERT(g_CfgData.szAdminPW[0]);
  
! 	g_LogFile.Write("Getting credentials in cell '%s' as admin '%s'.\r\n", GetCellNameA(), GetAdminNameA());
  
! 	m_nResult = GetLibHandles(&m_nStatus);
! 	CHECK_RESULT;
  
! 	return TRUE;
  }
  
  static BOOL RestartServers()
  {
! 	ASSERT(g_hCell);
  	
! 	void *hbosServer;
  
! 	g_LogFile.Write("Bos open of server '%s'.\r\n", GetHostnameA());
! 	m_nResult = bos_ServerOpen(g_hCell, GetHostnameA(), &hbosServer, &m_nStatus);
! 	CHECK_RESULT;
  
! 	ASSERT(hbosServer);
  
! 	g_LogFile.Write("Stopping and restarting all bos processes.\r\n");
! 	m_nResult = bos_ProcessAllStopAndRestart(hbosServer, BOS_RESTART_BOS_SERVER, &m_nStatus);
! 	CHECK_RESULT;
  
! 	g_LogFile.Write("Closing bos server connection.\r\n");
! 	m_nResult = bos_ServerClose(hbosServer, &m_nStatus);
! 	CHECK_RESULT;
  
! 	return TRUE;
! }
  
  void DbAddHostCallback(void *callBackId, cfg_cellServDbStatus_t *statusItemP, int status)
  {
! 	// Is this our call back ID?
! 	if (callBackId != (void *)&m_CallBackID)
! 		return;
! 
! 	// Update the var that tracks server updates so the main config thread won't
! 	// think we have timed out.
! 	EnterCriticalSection(&m_CritSec);
! 	m_nServerUpdates++;
! 	LeaveCriticalSection(&m_CritSec);
! 
! 	// Is this the last callback?
! 	if (!statusItemP) {
! 		m_nStatus = status;
! 		m_nResult = !status;
! 		SetEvent(m_hCellServDBUpdateEvent);		// Signal config thread that we are done
! 		return;
! 	}
! 
! 	UINT nStrID;
! 
! 	// Did the update of the current host succeed?
! 	if (statusItemP->status == 0)
! 		nStrID = IDS_UPDATING_CELLSERVDB_HOST_SUCCEEDED;
! 	else {
! 		m_bCellServDbUpdateErr = TRUE;
! 		nStrID = IDS_UPDATING_CELLSERVDB_HOST_FAILED;
! 	}
  
! 	TCHAR szMsg[cchRESOURCE];
! 	GetString(szMsg, nStrID);
! 	_tcscat(szMsg, A2S(statusItemP->fsDbHost));
! 	ShowCurrentStep(szMsg);
  
! 	g_LogFile.Write("Update of the CellServDB file on host %s %s.\r\n", statusItemP->fsDbHost, statusItemP->status ? "failed" : "succeeded");
  
! 	cfg_CellServDbStatusDeallocate(statusItemP, &m_nStatus);
! 	// We don't care if this fails
! }
  
  static BOOL UpdateCellServDB(BOOL bAdding)
  {
! 	ASSERT(g_hServer);
! 	ASSERT(g_CfgData.szCellName[0]);
! 
! 	int nMaxUpdates;				 
  
! 	cfg_cellServDbUpdateCallBack_t callBack = (cfg_cellServDbUpdateCallBack_t)DbAddHostCallback;
  
! 	// Create the event that the callback routine will use to tell us it is finished.
! 	// If we fail to create the event then don't use a callback routine.
! 	m_hCellServDBUpdateEvent = CreateEvent(NULL /* Sec */, FALSE /* Manual Reset */, FALSE /* Initial State */, m_pszCellServDBUpdateEventName);
! 	if (!m_hCellServDBUpdateEvent) {
! 		// Cause the CHECK_RESULT below to fail
! 		m_nResult = 0;
! 		m_nStatus = GetLastError();
! 	}
! 	CHECK_RESULT;
  
! 	// Create our critical section
! 	InitializeCriticalSection(&m_CritSec);
  
! 	// Update CellServDB via a SCM if the user specified one
! 	char *pszSCM = 0;
! 	if (g_CfgData.szSysControlMachine[0]) {
! 		pszSCM = GetSysControlMachineA();
! 		g_LogFile.Write("We will update CellServDB using Sys Control Machine %s.\r\n", pszSCM);
! 	}
  
! 	// Update CellServDB on all servers
! 	g_LogFile.Write("Updating CellServDB on all servers in the cell.\r\n");
! 	if (bAdding)	
! 		m_nResult = cfg_CellServDbAddHost(g_hServer, pszSCM, callBack, (void *)&m_CallBackID, &nMaxUpdates, &m_nStatus);
! 	else
! 		m_nResult = cfg_CellServDbRemoveHost(g_hServer, pszSCM, callBack, (void *)&m_CallBackID, &nMaxUpdates, &m_nStatus);
! 	CHECK_RESULT;
  
! 	// Update CellServDB for the client on this machine
! 	g_LogFile.Write("Updating the client's CellServDB.\r\n");
! 	if (bAdding)
! 		cfg_ClientCellServDbAdd(g_hClient, GetCellNameA(), GetHostnameA(), &m_nStatus);
! 	else
! 		cfg_ClientCellServDbRemove(g_hClient, GetCellNameA(), GetHostnameA(), &m_nStatus);
! 	CHECK_RESULT;
  
! 	BOOL bDone = FALSE;
  
! 	while (!bDone) {
! 		switch (WaitForSingleObject(m_hCellServDBUpdateEvent, CELLSERVDB_UPDATE_TIMEOUT))
! 		{
! 			case WAIT_OBJECT_0:	bDone = TRUE;	// The callback function signalled us that it is done.	
! 								break;
! 
! 			case WAIT_TIMEOUT: 
! 				// We timed out so see if a server was updated.  If it was then all is cool
! 				// and we can keep going (after clearing the server update count flag).
! 				EnterCriticalSection(&m_CritSec);
! 
! 				if (m_nServerUpdates)
! 					m_nServerUpdates = 0;
! 				else {
! 					// There were no server updates, so we really did timeout
! 					TCHAR szMsg[cchRESOURCE];
! 					GetString(szMsg, IDS_CELLSERVDB_UPDATE_PROBLEM);
! 					_tcscat(m_szCellServDbUpdateErrMsg, szMsg);
! 					bDone = TRUE;
! 				}
! 			
! 				LeaveCriticalSection(&m_CritSec);
  
! 				break;
! 			default:
! 				// No other return values are valid when waiting on an event object
! 				ASSERT(FALSE);
! 				break;
! 		}
  	}
  
! 	DeleteCriticalSection(&m_CritSec);
  
! 	CloseHandle(m_hCellServDBUpdateEvent);
  
! 	// See if a failure occurred in the callback
! 	CHECK_RESULT;
  
! 	return TRUE;
! }
  
  static BOOL AddToCellServDB()
  {
! 	return UpdateCellServDB(TRUE);
  }
  
  static BOOL RemoveFromCellServDB()
! {
! 	return UpdateCellServDB(FALSE);
  }
  
  static BOOL RestartAllDbServers()
! {
! 	ASSERT(g_hServer);
  
! 	if (m_bUnconfiguringLastDBServer)
! 		return TRUE;
  
! 	g_LogFile.Write("Restarting all DB servers.\r\n");
! 	m_nResult = cfg_DbServersRestartAll(g_hServer, &m_nStatus);
! 	CHECK_RESULT;
  
! 	g_LogFile.Write("Waiting for all DB servers to reach quorum.\r\n");
! 	m_nResult = cfg_DbServersWaitForQuorum(g_hServer, QUORUM_WAIT_TIMEOUT, &m_nStatus);
! 	CHECK_RESULT;
  
! 	m_bDbServersRestarted = TRUE;
  
! 	return TRUE;
! }
  
  static BOOL UnconfigDB()
  {
! 	ASSERT(g_hServer);
  
! 	m_nResult = RemoveFromCellServDB();
! 	CHECK_RESULT;
  
! 	m_nResult = cfg_DbServersStop(g_hServer, &m_nStatus);
! 	CHECK_RESULT;
  
! 	return TRUE;
  }
  
  static BOOL UnconfigBak()
  {
! 	ASSERT(g_hServer);
  	
! 	int nResult = cfg_DbServersStopAllBackup(g_hServer, &m_nStatus);
! 	CHECK_RESULT;
  
! 	return TRUE;
  }
  
  static BOOL UnconfigFS()
  {
! 	ASSERT(g_hServer);
  
! 	m_nResult = cfg_FileServerStop(g_hServer, &m_nStatus);
! 	CHECK_RESULT;
  
! 	return TRUE;
! }
  
  static BOOL UnconfigSCS()
! {
! 	ASSERT(g_hServer);
  
! 	m_nResult = cfg_UpdateServerStop(g_hServer, &m_nStatus);
! 	CHECK_RESULT;
  
      // Since we are no longer the SCS machine, we better null this guy.
      g_CfgData.szSysControlMachine[0] = 0;
  
! 	return TRUE;
  }
  
  static BOOL UnconfigSCC()
  {
! 	ASSERT(g_hServer);
  
! 	m_nResult = cfg_UpdateClientStop(g_hServer, cfg_upclientSysBosSuffix, &m_nStatus);
! 	CHECK_RESULT;
  
! 	return TRUE;
  }
  
  static BOOL AllServicesUnconfigured()
  {
  #define NOTCONFIGURED(x)	(((x) == CS_UNCONFIGURE) || ((x) == CS_NULL))
  
! 	return (NOTCONFIGURED(g_CfgData.configFS) &&
! 			NOTCONFIGURED(g_CfgData.configDB) &&
! 			NOTCONFIGURED(g_CfgData.configBak) &&
! 			NOTCONFIGURED(g_CfgData.configSCS) &&
! 			NOTCONFIGURED(g_CfgData.configSCC));
  }
  
  static BOOL PostConfig()
  {
! 	ASSERT(g_hServer);
  
! 	short isStarted = 0, bosProcsRunning = 0;
  
! 	if (!AllServicesUnconfigured())
! 		return TRUE;
  
      // If there is now no cell, then stop the client
      if (m_bUnconfiguringLastDBServer) {
--- 1621,1972 ----
      if (!CreateRootAfsDriveMapping())
          return FALSE;
  
!     g_LogFile.Write("Mounting root.cell with a Read/Write mount point at path %s.\r\n", GetRootCellReadWriteDir());
  
!     m_nResult = afsclient_MountPointCreate(g_hCell, GetRootCellReadWriteDir(), "root.cell", READ_WRITE, CHECK_VOLUME, &m_nStatus);
!     CHECK_RESULT;
  
!     return TRUE;
! }	
  
  static BOOL Replicate()
  {
!     ASSERT(g_hCell);
!     ASSERT(m_hvosServer);
  
!     if (!GetPartitionID())
! 	return FALSE;
  
!     // If only one of the volumes is not replicated, then only replicate
!     // that volume, or if we could not determine if they were replicated
      // until configuration began, and they are replicated, then do nothing.
  
!     if (g_CfgData.bRootAfsExists && !g_CfgData.bRootAfsReplicated) {
! 	g_LogFile.Write("Creating a read only site for volume root.afs using partition ID %d and volume ID %d.\r\n", m_nPartitionID, g_CfgData.nRootAfsID);
  	
! 	m_nResult = vos_VLDBReadOnlySiteCreate(g_hCell, m_hvosServer, 0, m_nPartitionID, g_CfgData.nRootAfsID, &m_nStatus);
! 	CHECK_RESULT;
  	
! 	g_LogFile.Write("Releasing the root.afs volume using volume ID %d.\r\n", g_CfgData.nRootAfsID);
  	
! 	m_nResult = vos_VolumeRelease(g_hCell, 0, g_CfgData.nRootAfsID, VOS_NORMAL, &m_nStatus);
! 	CHECK_RESULT;
  
! 	g_CfgData.bRootAfsReplicated = TRUE;
!     }
  
!     if (g_CfgData.bRootCellExists && !g_CfgData.bRootCellReplicated) {
! 	g_LogFile.Write("Creating a read only site for volume root.cell using partition ID %d and volume ID %d.\r\n", m_nPartitionID, g_CfgData.nRootCellID);
  	
! 	m_nResult = vos_VLDBReadOnlySiteCreate(g_hCell, m_hvosServer, 0, m_nPartitionID, g_CfgData.nRootCellID, &m_nStatus);
! 	CHECK_RESULT;
  	
! 	g_LogFile.Write("Releasing the root.cell volume using volume ID %d.\r\n", g_CfgData.nRootCellID);
  	
! 	m_nResult = vos_VolumeRelease(g_hCell, 0, g_CfgData.nRootCellID, VOS_NORMAL, &m_nStatus);
! 	CHECK_RESULT;
  
! 	g_CfgData.bRootCellReplicated = TRUE;
!     }
  
!     return TRUE;
! }	
  
  static BOOL EnableAuthChecking()
  {
!     ASSERT(g_hCell);
!     ASSERT(g_CfgData.szHostname[0]);
  
!     void *hbosServer;
  
!     g_LogFile.Write("Bos open of server '%s'.\r\n", GetHostnameA());
!     m_nResult = bos_ServerOpen(g_hCell, GetHostnameA(), &hbosServer, &m_nStatus);
!     CHECK_RESULT;
  
!     ASSERT(hbosServer);
  
!     g_LogFile.Write("Enabling auth checking.\r\n");
!     m_nResult = bos_AuthSet(hbosServer, BOS_AUTH_REQUIRED, &m_nStatus);
!     CHECK_RESULT;
  
!     g_LogFile.Write("Closing bos server connection.\r\n");
!     m_nResult = bos_ServerClose(hbosServer, &m_nStatus);
!     CHECK_RESULT;
  
!     return TRUE;
  }
  
  static BOOL UpgradeLibHandles()
  {
!     ASSERT(g_CfgData.szCellName[0]);
!     ASSERT(g_CfgData.szAdminName[0]);
!     ASSERT(g_CfgData.szAdminPW[0]);
  
!     g_LogFile.Write("Getting credentials in cell '%s' as admin '%s'.\r\n", GetCellNameA(), GetAdminNameA());
  
!     m_nResult = GetLibHandles(&m_nStatus);
!     CHECK_RESULT;
  
!     return TRUE;
  }
  
  static BOOL RestartServers()
  {
!     ASSERT(g_hCell);
  	
!     void *hbosServer;
  
!     g_LogFile.Write("Bos open of server '%s'.\r\n", GetHostnameA());
!     m_nResult = bos_ServerOpen(g_hCell, GetHostnameA(), &hbosServer, &m_nStatus);
!     CHECK_RESULT;
  
!     ASSERT(hbosServer);
  
!     g_LogFile.Write("Stopping and restarting all bos processes.\r\n");
!     m_nResult = bos_ProcessAllStopAndRestart(hbosServer, BOS_RESTART_BOS_SERVER, &m_nStatus);
!     CHECK_RESULT;
  
!     g_LogFile.Write("Closing bos server connection.\r\n");
!     m_nResult = bos_ServerClose(hbosServer, &m_nStatus);
!     CHECK_RESULT;
  
!     return TRUE;
! }	
  
  void DbAddHostCallback(void *callBackId, cfg_cellServDbStatus_t *statusItemP, int status)
  {
!     // Is this our call back ID?
!     if (callBackId != (void *)&m_CallBackID)
! 	return;
! 
!     // Update the var that tracks server updates so the main config thread won't
!     // think we have timed out.
!     EnterCriticalSection(&m_CritSec);
!     m_nServerUpdates++;
!     LeaveCriticalSection(&m_CritSec);
! 
!     // Is this the last callback?
!     if (!statusItemP) {
! 	m_nStatus = status;
! 	m_nResult = !status;
! 	SetEvent(m_hCellServDBUpdateEvent);		// Signal config thread that we are done
! 	return;
!     }
  
!     UINT nStrID;
  
!     // Did the update of the current host succeed?
!     if (statusItemP->status == 0)
! 	nStrID = IDS_UPDATING_CELLSERVDB_HOST_SUCCEEDED;
!     else {
! 	m_bCellServDbUpdateErr = TRUE;
! 	nStrID = IDS_UPDATING_CELLSERVDB_HOST_FAILED;
!     }
  
!     TCHAR szMsg[cchRESOURCE];
!     GetString(szMsg, nStrID);
!     _tcscat(szMsg, A2S(statusItemP->fsDbHost));
!     ShowCurrentStep(szMsg);
! 
!     g_LogFile.Write("Update of the CellServDB file on host %s %s.\r\n", statusItemP->fsDbHost, statusItemP->status ? "failed" : "succeeded");
! 
!     cfg_CellServDbStatusDeallocate(statusItemP, &m_nStatus);
!     // We don't care if this fails
! }	
  
  static BOOL UpdateCellServDB(BOOL bAdding)
  {
!     ASSERT(g_hServer);
!     ASSERT(g_CfgData.szCellName[0]);
  
!     int nMaxUpdates;				 
  
!     cfg_cellServDbUpdateCallBack_t callBack = (cfg_cellServDbUpdateCallBack_t)DbAddHostCallback;
  
!     // Create the event that the callback routine will use to tell us it is finished.
!     // If we fail to create the event then don't use a callback routine.
!     m_hCellServDBUpdateEvent = CreateEvent(NULL /* Sec */, FALSE /* Manual Reset */, FALSE /* Initial State */, m_pszCellServDBUpdateEventName);
!     if (!m_hCellServDBUpdateEvent) {
! 	// Cause the CHECK_RESULT below to fail
! 	m_nResult = 0;
! 	m_nStatus = GetLastError();
!     }
!     CHECK_RESULT;
  
!     // Create our critical section
!     InitializeCriticalSection(&m_CritSec);
  
!     // Update CellServDB via a SCM if the user specified one
!     char *pszSCM = 0;
!     if (g_CfgData.szSysControlMachine[0]) {
! 	pszSCM = GetSysControlMachineA();
! 	g_LogFile.Write("We will update CellServDB using Sys Control Machine %s.\r\n", pszSCM);
!     }
  
!     // Update CellServDB on all servers
!     g_LogFile.Write("Updating CellServDB on all servers in the cell.\r\n");
!     if (bAdding)	
! 	m_nResult = cfg_CellServDbAddHost(g_hServer, pszSCM, callBack, (void *)&m_CallBackID, &nMaxUpdates, &m_nStatus);
!     else
! 	m_nResult = cfg_CellServDbRemoveHost(g_hServer, pszSCM, callBack, (void *)&m_CallBackID, &nMaxUpdates, &m_nStatus);
!     CHECK_RESULT;
  
!     // Update CellServDB for the client on this machine
!     g_LogFile.Write("Updating the client's CellServDB.\r\n");
!     if (bAdding)
! 	cfg_ClientCellServDbAdd(g_hClient, GetCellNameA(), GetHostnameA(), &m_nStatus);
!     else
! 	cfg_ClientCellServDbRemove(g_hClient, GetCellNameA(), GetHostnameA(), &m_nStatus);
!     CHECK_RESULT;
  
!     BOOL bDone = FALSE;
  
!     while (!bDone) {
! 	switch (WaitForSingleObject(m_hCellServDBUpdateEvent, CELLSERVDB_UPDATE_TIMEOUT))
! 	{
! 	case WAIT_OBJECT_0:	bDone = TRUE;	// The callback function signalled us that it is done.	
! 	    break;
! 
! 	case WAIT_TIMEOUT: 
! 	    // We timed out so see if a server was updated.  If it was then all is cool
! 	    // and we can keep going (after clearing the server update count flag).
! 	    EnterCriticalSection(&m_CritSec);
! 
! 	    if (m_nServerUpdates)
! 		m_nServerUpdates = 0;
! 	    else {
! 		// There were no server updates, so we really did timeout
! 		TCHAR szMsg[cchRESOURCE];
! 		GetString(szMsg, IDS_CELLSERVDB_UPDATE_PROBLEM);
! 		_tcscat(m_szCellServDbUpdateErrMsg, szMsg);
! 		bDone = TRUE;
! 	    }
! 
! 	    LeaveCriticalSection(&m_CritSec);
! 
! 	    break;
! 	default:
! 	    // No other return values are valid when waiting on an event object
! 	    ASSERT(FALSE);
! 	    break;
  	}
+     }
  
!     DeleteCriticalSection(&m_CritSec);
  
!     CloseHandle(m_hCellServDBUpdateEvent);
  
!     // See if a failure occurred in the callback
!     CHECK_RESULT;
  
!     return TRUE;
! }	
  
  static BOOL AddToCellServDB()
  {
!     return UpdateCellServDB(TRUE);
  }
  
  static BOOL RemoveFromCellServDB()
! {	
!     return UpdateCellServDB(FALSE);
  }
  
  static BOOL RestartAllDbServers()
! {	
!     ASSERT(g_hServer);
  
!     if (m_bUnconfiguringLastDBServer)
! 	return TRUE;
  
!     g_LogFile.Write("Restarting all DB servers.\r\n");
!     m_nResult = cfg_DbServersRestartAll(g_hServer, &m_nStatus);
!     CHECK_RESULT;
  
!     g_LogFile.Write("Waiting for all DB servers to reach quorum.\r\n");
!     m_nResult = cfg_DbServersWaitForQuorum(g_hServer, QUORUM_WAIT_TIMEOUT, &m_nStatus);
!     CHECK_RESULT;
  
!     m_bDbServersRestarted = TRUE;
  
!     return TRUE;
! }	
  
  static BOOL UnconfigDB()
  {
!     ASSERT(g_hServer);
  
!     m_nResult = RemoveFromCellServDB();
!     CHECK_RESULT;
  
!     m_nResult = cfg_DbServersStop(g_hServer, &m_nStatus);
!     CHECK_RESULT;
  
!     return TRUE;
  }
  
  static BOOL UnconfigBak()
  {
!     ASSERT(g_hServer);
  	
!     int nResult = cfg_DbServersStopAllBackup(g_hServer, &m_nStatus);
!     CHECK_RESULT;
  
!     return TRUE;
  }
  
  static BOOL UnconfigFS()
  {
!     ASSERT(g_hServer);
  
!     m_nResult = cfg_FileServerStop(g_hServer, &m_nStatus);
!     CHECK_RESULT;
  
!     return TRUE;
! }	
  
  static BOOL UnconfigSCS()
! {	
!     ASSERT(g_hServer);
  
!     m_nResult = cfg_UpdateServerStop(g_hServer, &m_nStatus);
!     CHECK_RESULT;
  
      // Since we are no longer the SCS machine, we better null this guy.
      g_CfgData.szSysControlMachine[0] = 0;
  
!     return TRUE;
  }
  
  static BOOL UnconfigSCC()
  {
!     ASSERT(g_hServer);
  
!     m_nResult = cfg_UpdateClientStop(g_hServer, cfg_upclientSysBosSuffix, &m_nStatus);
!     CHECK_RESULT;
  
!     return TRUE;
  }
  
  static BOOL AllServicesUnconfigured()
  {
  #define NOTCONFIGURED(x)	(((x) == CS_UNCONFIGURE) || ((x) == CS_NULL))
  
!     return (NOTCONFIGURED(g_CfgData.configFS) &&
! 	    NOTCONFIGURED(g_CfgData.configDB) &&
! 	    NOTCONFIGURED(g_CfgData.configBak) &&
! 	    NOTCONFIGURED(g_CfgData.configSCS) &&
! 	    NOTCONFIGURED(g_CfgData.configSCC));
  }
  
  static BOOL PostConfig()
  {
!     ASSERT(g_hServer);
  
!     short isStarted = 0, bosProcsRunning = 0;
  
!     if (!AllServicesUnconfigured())
! 	return TRUE;
  
      // If there is now no cell, then stop the client
      if (m_bUnconfiguringLastDBServer) {
***************
*** 1914,2205 ****
      }
  
      // Ask user if the config info should be invalided
! 	g_LogFile.Write("No services are configured so we will ask the user if they want to invalidate the server config info.\r\n");
! 	int nChoice = Message(MB_OK | MB_YESNO, GetAppTitleID(), IDS_INVALIDATE_CFG_INFO);
! 	if (nChoice == IDNO) {
! 		g_LogFile.Write("User has chosen NOT to invalidate the server config info.\r\n");
! 		return TRUE;
! 	}
  
! 	ShowCurrentStep(IDS_INVALIDATE_CONFIG_INFO_STEP);
  	
      g_LogFile.Write("User has chosen to invalidate the server config info.\r\n");
  
! 	g_LogFile.Write("Stopping the bos server.\r\n");
! 	m_nResult = cfg_BosServerStop(g_hServer, BOSSERVER_STOP_TIMEOUT, &m_nStatus);
! 	CHECK_RESULT;
  
! 	g_LogFile.Write("Invalidating the config info.\r\n");
! 	m_nResult = cfg_HostInvalidate(g_hServer, &m_nStatus);
! 	CHECK_RESULT;
  
! 	m_bCfgInfoInvalidated = TRUE;
  
      m_bMustExit = TRUE;
  
! 	return TRUE;
! }
  
  static void VosCloseServer()
  {
! 	if (m_hvosServer) {
! 		g_LogFile.Write("Closing the connection to this server.\r\n");
! 		vos_ServerClose(m_hvosServer, &m_nStatus);
! 		m_hvosServer = 0;
! 	}
! }
  
  static void ShowConfigControls(BOOL bShow)
  {
! 	ShowWnd(m_hDlg, IDC_CURRENT_STEP_LABEL, bShow);
! 	ShowWnd(m_hDlg, IDC_CURRENT_STEP, bShow);
! 	ShowWnd(m_hDlg, IDC_CONFIG_PROGRESS, bShow);
! 	ShowWnd(m_hDlg, IDC_PERCENT_COMPLETE_LABEL, bShow);
! 	ShowWnd(m_hDlg, IDC_PERCENT_COMPLETE, bShow);
! 	ShowWnd(m_hDlg, IDC_STATUS_MSG, !bShow);
  }
  
  static void UpdateConfigProgress(int nStepNum)
  {
! 	// Update the progress bar
! 	SendDlgItemMessage(m_hDlg, IDC_CONFIG_PROGRESS, PBM_STEPIT, 0, 0);
  			
! 	// Update the percent complete
! 	TCHAR buf[16];
! 	_stprintf(buf, TEXT("%2d%%"), nStepNum * 100 / m_nNumSteps);
  
! 	SetWndText(m_hDlg, IDC_PERCENT_COMPLETE, buf);
! 	ForceUpdateWindow(m_hDlg, IDC_PERCENT_COMPLETE);
  }
  
  static void ViewLog()
  {
! 	char szCmdLine[MAX_PATH];
  
! 	if (_access(g_LogFile.GetPath(), 0) != 0) {
! 		ShowError(m_hDlg, 0, IDS_ERROR_NO_LOG_FILE);
! 		return;
! 	}
  
! 	sprintf(szCmdLine, "notepad.exe %s", g_LogFile.GetPath());
! 	
! 	UINT result = WinExec(szCmdLine, SW_SHOW);
! 	if (result < 32)
! 		ShowError(m_hDlg, result, IDS_VIEW_LOG_ERROR);
  }
  
  static void AssignFailure(int nCurStep, int nLastMainStep)
  {
! 	// A config step has failed, so we will first set its state to
! 	// failure.  If the step does not have a place on the dialog
! 	// the we must find some other control to show the red X that
! 	// indicates failure.
! 
! 	m_ConfigSteps[nCurStep].eState = SS_STEP_FAILED;
! 
! 	// Is the step displayed on the dialog?
! 	if (m_ConfigSteps[nCurStep].nDescID != 0)
! 		return;
! 
! 	// It isn't so find nearest one that is
! 	for (int ii = nCurStep + 1; ii < m_nNumSteps; ii++) {
! 		CONFIG_STEP& step = m_ConfigSteps[ii];
! 		if (step.nDescID != 0) {
! 			step.eState = SS_STEP_FAILED;
! 			IF_WIZ(ForceUpdateWindow(m_hDlg, step.nGraphicCtrlID));
! 			return;
! 		}
  	}
  
! 	// There is no step on the dialog that is after us, so
! 	// use the last one that is there.
! 	m_ConfigSteps[nLastMainStep].eState = SS_STEP_FAILED;
! 	IF_WIZ(ForceUpdateWindow(m_hDlg, m_ConfigSteps[nLastMainStep].nGraphicCtrlID));
! }
  
  static int GetLastMainStep()
  {
! 	for (int ii = m_nNumSteps - 1; ii >= 0; ii--) {
! 		if (m_ConfigSteps[ii].nDescID != 0)
! 			return ii;
! 	}
  
! 	ASSERT(FALSE);	// This should never happen!
  
! 	return 0;
! }
  
  static void ShowConfigFailedMsg()
  {
! 	LPTSTR pszMsg = FormatString(IDS_CONFIG_FAILED, TEXT("%hs%hs"), LOG_FILE_NAME, AFSDIR_SERVER_LOGS_DIRPATH);
  
! 	SetWndText(m_hDlg, IDC_STATUS_MSG, pszMsg);
  
! 	FreeString(pszMsg);
  }
  
  static void ShowViewLogButton()
  {
! 	if (g_pWiz)
! 		g_pWiz->SetButtonText(IDNEXT, IDS_VIEW_LOG);
! 	else {
! 		ShowAndEnable(m_hDlg, IDNEXT);
! 		MoveWnd(m_hDlg, IDCANCEL, -45, 0);
          // I had to add the code below because of a problem, where if config failed, the
          // error message dialog would display over our window, and when our window next got
          // fully displayed, the buttons would be misdrawn.
          ForceUpdateWindow(m_hDlg, IDNEXT);
          ForceUpdateWindow(m_hDlg, IDCANCEL);
! 	}
  }
  
  static DWORD WINAPI ConfigServer(LPVOID param)
  {
! 	HWND hLogo;
  	
! 	if (!g_pWiz) {
! 		hLogo = GetDlgItem(m_hDlg, IDC_LOGO);
! 		AfsAppLib_StartAnimation(hLogo);
! 	}
  
! 	// Disable all buttons (doesn't affect the Cancel button)
! 	IF_WIZ(g_pWiz->EnableButtons(0));
  
! 	g_LogFile.Write("Configuring server\r\n");
  
! 	m_bConfiguring = TRUE;
! 	m_bConfigured = FALSE;
! 	m_bDbServersRestarted = FALSE;
  
! 	// Hide the message window and show the config controls
! 	ShowConfigControls();
  
! 	InitProgressBar();
  
! 	BOOL bResult = TRUE;
! 	int nStepNum = 0;
  
      int nLastMainStep;
! 	IF_WIZ(nLastMainStep = GetLastMainStep());
  	
! 	// Loop over each config step performing the ones that are enabled.
! 	for (int nCurStep = 0; (nCurStep < m_nNumSteps) && bResult; nCurStep++) {
! 		CONFIG_STEP& step = m_ConfigSteps[nCurStep];
  
! 		nStepNum++;
  
! 		// Show this step's status message
! 		ShowCurrentStep(step.nMsgID);
  
! 		step.eState = SS_STEP_IN_PROGRESS;
  
! 		// If this is a displayed step, then update its display
! 		if (step.nGraphicCtrlID)
! 			IF_WIZ(ForceUpdateWindow(m_hDlg, step.nGraphicCtrlID));
  
! 		if (CheckCancel())
! 			break;
  
! 		// Perform the config function
! 		bResult = step.pFunc();
  
! 		if (bResult) {
              if (g_pWiz) {
!     			// Changing a step's state changes what picture is shown on the dialog
!     			// (if that state is displayed on the dialog).
!     			
!     			// If this is the last displayed step, then don't change its state
!     			// because there may still be more steps to perform.  We want to use
!     			// the last step's picture to indicate the final config state.
!     			
!     			// If not last step, then change state
!     			if (nCurStep != nLastMainStep)
!     				step.eState = SS_STEP_FINISHED;
!     
!     			// If last step then go ahead and show the state - but do it on the last
!     			// step displayed on the dialog (nLastMainStep).
!     			if (nCurStep == m_nNumSteps - 1) {
!     				m_ConfigSteps[nLastMainStep].eState = SS_STEP_FINISHED;
!     				// Do the next line so ForceUpdateWindow below will redraw the
!     				// correct control
!     				step = m_ConfigSteps[nLastMainStep];
!     			}
!             }
  
! 			UpdateConfigProgress(nStepNum);
! 		} else {
! 			// Show the 'X' error marker on the next unprocessed step, or on the
! 			// last step if there are no more.
! 			IF_WIZ(AssignFailure(nCurStep, nLastMainStep));
! 			step.eState = SS_STEP_FAILED;
  		}
  
! 		if (step.nGraphicCtrlID)
! 			IF_WIZ(ForceUpdateWindow(m_hDlg, step.nGraphicCtrlID));
! 	}
! 
! 	// Close m_hvosServer if it is open
! 	VosCloseServer();
! 
! 	// Hide the config controls and show the message window
! 	ShowConfigControls(FALSE);
! 
! 	// Did we succeed?
! 	if (CheckCancel()) {
! 		g_LogFile.Write("User has canceled configuration.\r\n");
! 		SetWndText(m_hDlg, IDC_STATUS_MSG, IDS_CONFIG_CANCELED);
! 		IF_WIZ(g_pWiz->EnableButtons(BACK_BUTTON));
! 		if (!g_pWiz)
! 			ShowExitButton();
! 	} else if (bResult) {
! 		g_LogFile.Write("Configuration succeeded.\r\n");
! 		if (g_CfgData.bFirstServer)
! 			SetWndText(m_hDlg, IDC_STATUS_MSG, IDS_CONFIG_SUCCEEDED_FIRST_SERVER);
! 		else if (m_bDbServersRestarted)
! 			SetWndText(m_hDlg, IDC_STATUS_MSG, IDS_CONFIG_SUCCEEDED_NEED_CELLSERVDB_UPDATE);
! 		else
! 			SetWndText(m_hDlg, IDC_STATUS_MSG, IDS_CONFIG_SUCCEEDED);
! 		IF_WIZ(g_pWiz->EnableButtons(NEXT_BUTTON));
! 		ShowExitButton();
! 		m_bConfigured = TRUE;
! 		
! 		// Disable cancel button
! 		IF_WIZ(SetEnable(g_pWiz->GetWindow(), IDCANCEL, ES_DISABLE));
! 	} else {
! 		g_LogFile.Write("Configuration has failed.\r\n");
! 		ShowConfigFailedMsg();
! 		// Prevent partial configuration
! 		if (!g_CfgData.bValidServerInfo)
! 			cfg_HostInvalidate(g_hServer, &m_nStatus);
! 		IF_WIZ(g_pWiz->EnableButtons(NEXT_BUTTON));
! 		ShowViewLogButton();
! 		m_bConfigFailed = TRUE;
! 	}
! 
  	if (!g_pWiz)
! 		AfsAppLib_StopAnimation(hLogo);
  
! 	IF_WIZ(g_pWiz->SetDefaultControl(IDNEXT));
  
! 	m_bConfiguring = FALSE;
  
      // Show the user any CellServDB update errors
      if (m_bCellServDbUpdateErr) {
! 		TCHAR szTitle[cchRESOURCE], szMsg[cchRESOURCE + MAX_PATH];
! 		GetString(szTitle, GetAppTitleID());
! 		GetString(szMsg, IDS_CELLSERVDB_UPDATE_ERRORS_ARE_IN_LOG_FILE);
! 		lstrcat(szMsg, A2S(g_LogFile.GetPath()));
! 		lstrcat(szMsg, TEXT("."));
! 		MessageBox(m_hDlg, szMsg, szTitle, MB_OK | MB_ICONEXCLAMATION);
! 	}
  
      // Warn the user if we are going to force the config manager to exit
! 	if (m_bMustExit) {
          if (m_bUnconfiguringLastDBServer)    
!     		MsgBox(m_hDlg, IDS_CELL_IS_GONE_MUST_EXIT, GetAppTitleID(), MB_OK | MB_ICONSTOP);
!         else
! 		    MsgBox(m_hDlg, IDS_CONFIG_INFO_INVALIDATED, GetAppTitleID(), MB_OK);
! 	}
  
      // Unmap the root afs drive if we had one
      if (m_bRootAfsDriveMappingCreated) {
--- 1976,2267 ----
      }
  
      // Ask user if the config info should be invalided
!     g_LogFile.Write("No services are configured so we will ask the user if they want to invalidate the server config info.\r\n");
!     int nChoice = Message(MB_OK | MB_YESNO, GetAppTitleID(), IDS_INVALIDATE_CFG_INFO);
!     if (nChoice == IDNO) {
! 	g_LogFile.Write("User has chosen NOT to invalidate the server config info.\r\n");
! 	return TRUE;
!     }
  
!     ShowCurrentStep(IDS_INVALIDATE_CONFIG_INFO_STEP);
  	
      g_LogFile.Write("User has chosen to invalidate the server config info.\r\n");
  
!     g_LogFile.Write("Stopping the bos server.\r\n");
!     m_nResult = cfg_BosServerStop(g_hServer, BOSSERVER_STOP_TIMEOUT, &m_nStatus);
!     CHECK_RESULT;
  
!     g_LogFile.Write("Invalidating the config info.\r\n");
!     m_nResult = cfg_HostInvalidate(g_hServer, &m_nStatus);
!     CHECK_RESULT;
  
!     m_bCfgInfoInvalidated = TRUE;
  
      m_bMustExit = TRUE;
  
!     return TRUE;
! }	
  
  static void VosCloseServer()
  {
!     if (m_hvosServer) {
! 	g_LogFile.Write("Closing the connection to this server.\r\n");
! 	vos_ServerClose(m_hvosServer, &m_nStatus);
! 	m_hvosServer = 0;
!     }
! }	
  
  static void ShowConfigControls(BOOL bShow)
  {
!     ShowWnd(m_hDlg, IDC_CURRENT_STEP_LABEL, bShow);
!     ShowWnd(m_hDlg, IDC_CURRENT_STEP, bShow);
!     ShowWnd(m_hDlg, IDC_CONFIG_PROGRESS, bShow);
!     ShowWnd(m_hDlg, IDC_PERCENT_COMPLETE_LABEL, bShow);
!     ShowWnd(m_hDlg, IDC_PERCENT_COMPLETE, bShow);
!     ShowWnd(m_hDlg, IDC_STATUS_MSG, !bShow);
  }
  
  static void UpdateConfigProgress(int nStepNum)
  {
!     // Update the progress bar
!     SendDlgItemMessage(m_hDlg, IDC_CONFIG_PROGRESS, PBM_STEPIT, 0, 0);
  			
!     // Update the percent complete
!     TCHAR buf[16];
!     _stprintf(buf, TEXT("%2d%%"), nStepNum * 100 / m_nNumSteps);
  
!     SetWndText(m_hDlg, IDC_PERCENT_COMPLETE, buf);
!     ForceUpdateWindow(m_hDlg, IDC_PERCENT_COMPLETE);
  }
  
  static void ViewLog()
  {
!     char szCmdLine[MAX_PATH];
  
!     if (_access(g_LogFile.GetPath(), 0) != 0) {
! 	ShowError(m_hDlg, 0, IDS_ERROR_NO_LOG_FILE);
! 	return;
!     }
  
!     sprintf(szCmdLine, "notepad.exe %s", g_LogFile.GetPath());
! 
!     UINT result = WinExec(szCmdLine, SW_SHOW);
!     if (result < 32)
! 	ShowError(m_hDlg, result, IDS_VIEW_LOG_ERROR);
  }
  
  static void AssignFailure(int nCurStep, int nLastMainStep)
  {
!     // A config step has failed, so we will first set its state to
!     // failure.  If the step does not have a place on the dialog
!     // the we must find some other control to show the red X that
!     // indicates failure.
! 
!     m_ConfigSteps[nCurStep].eState = SS_STEP_FAILED;
! 
!     // Is the step displayed on the dialog?
!     if (m_ConfigSteps[nCurStep].nDescID != 0)
! 	return;
! 
!     // It isn't so find nearest one that is
!     for (int ii = nCurStep + 1; ii < m_nNumSteps; ii++) {
! 	CONFIG_STEP& step = m_ConfigSteps[ii];
! 	if (step.nDescID != 0) {
! 	    step.eState = SS_STEP_FAILED;
! 	    IF_WIZ(ForceUpdateWindow(m_hDlg, step.nGraphicCtrlID));
! 	    return;
  	}
+     }
  
!     // There is no step on the dialog that is after us, so
!     // use the last one that is there.
!     m_ConfigSteps[nLastMainStep].eState = SS_STEP_FAILED;
!     IF_WIZ(ForceUpdateWindow(m_hDlg, m_ConfigSteps[nLastMainStep].nGraphicCtrlID));
! }	
  
  static int GetLastMainStep()
  {
!     for (int ii = m_nNumSteps - 1; ii >= 0; ii--) {
! 	if (m_ConfigSteps[ii].nDescID != 0)
! 	    return ii;
!     }	
  
!     ASSERT(FALSE);	// This should never happen!
  
!     return 0;
! }	
  
  static void ShowConfigFailedMsg()
  {
!     LPTSTR pszMsg = FormatString(IDS_CONFIG_FAILED, TEXT("%hs%hs"), LOG_FILE_NAME, AFSDIR_SERVER_LOGS_DIRPATH);
  
!     SetWndText(m_hDlg, IDC_STATUS_MSG, pszMsg);
  
!     FreeString(pszMsg);
  }
  
  static void ShowViewLogButton()
  {
!     if (g_pWiz)
! 	g_pWiz->SetButtonText(IDNEXT, IDS_VIEW_LOG);
!     else {
! 	ShowAndEnable(m_hDlg, IDNEXT);
! 	MoveWnd(m_hDlg, IDCANCEL, -45, 0);
          // I had to add the code below because of a problem, where if config failed, the
          // error message dialog would display over our window, and when our window next got
          // fully displayed, the buttons would be misdrawn.
          ForceUpdateWindow(m_hDlg, IDNEXT);
          ForceUpdateWindow(m_hDlg, IDCANCEL);
!     }
  }
  
  static DWORD WINAPI ConfigServer(LPVOID param)
  {
!     HWND hLogo;
  	
!     if (!g_pWiz) {
! 	hLogo = GetDlgItem(m_hDlg, IDC_LOGO);
! 	AfsAppLib_StartAnimation(hLogo);
!     }	
  
!     // Disable all buttons (doesn't affect the Cancel button)
!     IF_WIZ(g_pWiz->EnableButtons(0));
  
!     g_LogFile.Write("Configuring server\r\n");
  
!     m_bConfiguring = TRUE;
!     m_bConfigured = FALSE;
!     m_bDbServersRestarted = FALSE;
  
!     // Hide the message window and show the config controls
!     ShowConfigControls();
  
!     InitProgressBar();
  
!     BOOL bResult = TRUE;
!     int nStepNum = 0;
  
      int nLastMainStep;
!     IF_WIZ(nLastMainStep = GetLastMainStep());
  	
!     // Loop over each config step performing the ones that are enabled.
!     for (int nCurStep = 0; (nCurStep < m_nNumSteps) && bResult; nCurStep++) {
! 	CONFIG_STEP& step = m_ConfigSteps[nCurStep];
  
! 	nStepNum++;
  
! 	// Show this step's status message
! 	ShowCurrentStep(step.nMsgID);
  
! 	step.eState = SS_STEP_IN_PROGRESS;
  
! 	// If this is a displayed step, then update its display
! 	if (step.nGraphicCtrlID)
! 	    IF_WIZ(ForceUpdateWindow(m_hDlg, step.nGraphicCtrlID));
  
! 	if (CheckCancel())
! 	    break;
  
! 	// Perform the config function
! 	bResult = step.pFunc();
  
! 	if (bResult) {
              if (g_pWiz) {
! 		// Changing a step's state changes what picture is shown on the dialog
! 		// (if that state is displayed on the dialog).
  
! 		// If this is the last displayed step, then don't change its state
! 		// because there may still be more steps to perform.  We want to use
! 		// the last step's picture to indicate the final config state.
! 
! 		// If not last step, then change state
! 		if (nCurStep != nLastMainStep)
! 		    step.eState = SS_STEP_FINISHED;
! 
! 		// If last step then go ahead and show the state - but do it on the last
! 		// step displayed on the dialog (nLastMainStep).
! 		if (nCurStep == m_nNumSteps - 1) {
! 		    m_ConfigSteps[nLastMainStep].eState = SS_STEP_FINISHED;
! 		    // Do the next line so ForceUpdateWindow below will redraw the
! 		    // correct control
! 		    step = m_ConfigSteps[nLastMainStep];
  		}
+             }	
  
! 	    UpdateConfigProgress(nStepNum);
!         } else {
! 	    // Show the 'X' error marker on the next unprocessed step, or on the
! 	    // last step if there are no more.
! 	    IF_WIZ(AssignFailure(nCurStep, nLastMainStep));
! 	    step.eState = SS_STEP_FAILED;
! 	}
! 
! 	if (step.nGraphicCtrlID)
! 	    IF_WIZ(ForceUpdateWindow(m_hDlg, step.nGraphicCtrlID));
!     }		
! 
!     // Close m_hvosServer if it is open
!     VosCloseServer();
! 
!     // Hide the config controls and show the message window
!     ShowConfigControls(FALSE);
! 
!     // Did we succeed?
!     if (CheckCancel()) {
! 	g_LogFile.Write("User has canceled configuration.\r\n");
! 	SetWndText(m_hDlg, IDC_STATUS_MSG, IDS_CONFIG_CANCELED);
! 	IF_WIZ(g_pWiz->EnableButtons(BACK_BUTTON));
  	if (!g_pWiz)
! 	    ShowExitButton();
!     } else if (bResult) {
! 	g_LogFile.Write("Configuration succeeded.\r\n");
! 	if (g_CfgData.bFirstServer)
! 	    SetWndText(m_hDlg, IDC_STATUS_MSG, IDS_CONFIG_SUCCEEDED_FIRST_SERVER);
! 	else if (m_bDbServersRestarted)
! 	    SetWndText(m_hDlg, IDC_STATUS_MSG, IDS_CONFIG_SUCCEEDED_NEED_CELLSERVDB_UPDATE);
! 	else
! 	    SetWndText(m_hDlg, IDC_STATUS_MSG, IDS_CONFIG_SUCCEEDED);
! 	IF_WIZ(g_pWiz->EnableButtons(NEXT_BUTTON));
! 	ShowExitButton();
! 	m_bConfigured = TRUE;
! 
! 	// Disable cancel button
! 	IF_WIZ(SetEnable(g_pWiz->GetWindow(), IDCANCEL, ES_DISABLE));
!     } else {
! 	g_LogFile.Write("Configuration has failed.\r\n");
! 	ShowConfigFailedMsg();
! 	// Prevent partial configuration
! 	if (!g_CfgData.bValidServerInfo)
! 	    cfg_HostInvalidate(g_hServer, &m_nStatus);
! 	IF_WIZ(g_pWiz->EnableButtons(NEXT_BUTTON));
! 	ShowViewLogButton();
! 	m_bConfigFailed = TRUE;
!     }
! 
!     if (!g_pWiz)
! 	AfsAppLib_StopAnimation(hLogo);
  
!     IF_WIZ(g_pWiz->SetDefaultControl(IDNEXT));
  
!     m_bConfiguring = FALSE;
  
      // Show the user any CellServDB update errors
      if (m_bCellServDbUpdateErr) {
! 	TCHAR szTitle[cchRESOURCE], szMsg[cchRESOURCE + MAX_PATH];
! 	GetString(szTitle, GetAppTitleID());
! 	GetString(szMsg, IDS_CELLSERVDB_UPDATE_ERRORS_ARE_IN_LOG_FILE);
! 	lstrcat(szMsg, A2S(g_LogFile.GetPath()));
! 	lstrcat(szMsg, TEXT("."));
! 	MessageBox(m_hDlg, szMsg, szTitle, MB_OK | MB_ICONEXCLAMATION);
!     }
  
      // Warn the user if we are going to force the config manager to exit
!     if (m_bMustExit) {
          if (m_bUnconfiguringLastDBServer)    
! 	    MsgBox(m_hDlg, IDS_CELL_IS_GONE_MUST_EXIT, GetAppTitleID(), MB_OK | MB_ICONSTOP);
!         else	
! 	    MsgBox(m_hDlg, IDS_CONFIG_INFO_INVALIDATED, GetAppTitleID(), MB_OK);
!     }	
  
      // Unmap the root afs drive if we had one
      if (m_bRootAfsDriveMappingCreated) {
***************
*** 2208,2215 ****
          BOOL bCanceled = WNetCancelConnection(A2S(m_szDriveToMapTo), TRUE) == NO_ERROR;
          g_LogFile.Write(bCanceled ? "succeeded.\r\n" : "failed.\r\n");
          m_bRootAfsDriveMappingCreated = !bCanceled;
!     }
  
! 	return 0;
  }
  
--- 2270,2277 ----
          BOOL bCanceled = WNetCancelConnection(A2S(m_szDriveToMapTo), TRUE) == NO_ERROR;
          g_LogFile.Write(bCanceled ? "succeeded.\r\n" : "failed.\r\n");
          m_bRootAfsDriveMappingCreated = !bCanceled;
!     }	
  
!     return 0;
  }
  
Index: openafs/src/WINNT/afssvrcfg/create_partition_dlg.cpp
diff -c openafs/src/WINNT/afssvrcfg/create_partition_dlg.cpp:1.3 openafs/src/WINNT/afssvrcfg/create_partition_dlg.cpp:1.3.14.1
*** openafs/src/WINNT/afssvrcfg/create_partition_dlg.cpp:1.3	Sat Nov 29 15:23:31 2003
--- openafs/src/WINNT/afssvrcfg/create_partition_dlg.cpp	Tue Dec 26 15:22:28 2006
***************
*** 40,55 ****
  static TCHAR szSize[32];
  
  static rwWindowData arwDialog[] = {
! 	{ IDC_TITLE,		raSizeX | raRepaint,	0,	0 },
! 	{ IDC_DRIVE_LIST,	raSizeX | raSizeY, 	MAKELONG(350, 150), 0 },
! 	{ IDC_ARGS_FRAME,	raSizeX | raMoveY,	0,	0 },
! 	{ IDC_NAME_STATIC,	raMoveY | raRepaint,	0,	0 },
! 	{ IDC_VICEP_STATIC,	raMoveY | raRepaint,	0,	0 },
! 	{ IDC_PARTITION_NAME,	raMoveY | raRepaint,	0,	0 },
! 	{ IDC_CREATE,		raMoveX | raMoveY,	0,	0 },
! 	{ IDC_CLOSE,		raMoveX | raMoveY,	0,	0 },
! 	{ 9,			raMoveX | raMoveY,	0,	0 },
! 	{ idENDLIST,		0,			0,	0 }
  };
  
  
--- 40,55 ----
  static TCHAR szSize[32];
  
  static rwWindowData arwDialog[] = {
!     { IDC_TITLE,		raSizeX | raRepaint,	0,	0 },
!     { IDC_DRIVE_LIST,		raSizeX | raSizeY, 	MAKELONG(350, 150), 0 },
!     { IDC_ARGS_FRAME,		raSizeX | raMoveY,	0,	0 },
!     { IDC_NAME_STATIC,		raMoveY | raRepaint,	0,	0 },
!     { IDC_VICEP_STATIC,		raMoveY | raRepaint,	0,	0 },
!     { IDC_PARTITION_NAME,	raMoveY | raRepaint,	0,	0 },
!     { IDC_CREATE,		raMoveX | raMoveY,	0,	0 },
!     { IDC_CLOSE,		raMoveX | raMoveY,	0,	0 },
!     { 9,			raMoveX | raMoveY,	0,	0 },
!     { idENDLIST,		0,			0,	0 }
  };
  
  
***************
*** 72,80 ****
   */
  BOOL CreatePartition(HWND hParent)
  {	
! 	ModalDialog(IDD, hParent, (DLGPROC)DlgProc);
  
! 	return bCreated;
  }
  
  
--- 72,80 ----
   */
  BOOL CreatePartition(HWND hParent)
  {	
!     ModalDialog(IDD, hParent, (DLGPROC)DlgProc);
  
!     return bCreated;
  }
  
  
***************
*** 89,132 ****
   */
  static BOOL CALLBACK DlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
  {
! 	if (AfsAppLib_HandleHelp(IDD_CREATE_PARTITION, hwndDlg, uMsg, wParam, lParam))
! 		return TRUE;
  
! 	switch (uMsg) {
! 		case WM_INITDIALOG:	OnInitDialog(hwndDlg);
! 							break;
! 				
! 		case WM_COMMAND:	switch (LOWORD(wParam)) {
! 								case IDC_CLOSE:		OnClose();
! 													break;
! 
! 								case IDC_CREATE:	OnCreate();
! 													break;
! 
! 								case IDC_PARTITION_NAME:
! 									if (HIWORD(wParam) == EN_CHANGE) {
! 										OnPartitionName();
! 										SetFocus((HWND)lParam);
! 									}
! 									break;
! 							}
! 							break;
  	
! 		case WM_NCACTIVATE:	if (wParam)
! 								UpdateDriveList();
! 							break;
! 
! 		case WM_NOTIFY:	if ((((LPNMHDR)lParam)->code) == FLN_ITEMSELECT)
! 							OnListSelection((LPFLN_ITEMSELECT_PARAMS)lParam);
! 						break;
! 
! 		case WM_SIZE:	if (lParam != 0)
! 							ResizeWindow(hwndDlg, arwDialog, rwaFixupGuts);
! 						break;
  
! 	}
  
! 	return FALSE;
  }
  
  
--- 89,137 ----
   */
  static BOOL CALLBACK DlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
  {
!     if (AfsAppLib_HandleHelp(IDD_CREATE_PARTITION, hwndDlg, uMsg, wParam, lParam))
! 	return TRUE;
  
!     switch (uMsg) {
!     case WM_INITDIALOG:	OnInitDialog(hwndDlg);
! 	break;
! 
!     case WM_COMMAND:	
! 	switch (LOWORD(wParam)) {
! 	case IDC_CLOSE:		
! 	    OnClose();
! 	    break;
! 
! 	case IDC_CREATE:	
! 	    OnCreate();
! 	    break;
! 
! 	case IDC_PARTITION_NAME:
! 	    if (HIWORD(wParam) == EN_CHANGE) {
! 		OnPartitionName();
! 		SetFocus((HWND)lParam);
! 	    }
! 	    break;
! 	}
! 	break;
  	
!     case WM_NCACTIVATE:	if (wParam)
! 	UpdateDriveList();
! 	break;
! 
!     case WM_NOTIFY:	
! 	if ((((LPNMHDR)lParam)->code) == FLN_ITEMSELECT)
! 	    OnListSelection((LPFLN_ITEMSELECT_PARAMS)lParam);
! 	break;
! 
!     case WM_SIZE:	
! 	if (lParam != 0)
! 	    ResizeWindow(hwndDlg, arwDialog, rwaFixupGuts);
! 	break;
  
!     }
  
!     return FALSE;
  }
  
  
***************
*** 136,261 ****
   */
  static void OnInitDialog(HWND hwndDlg)
  {
! 	hDlg = hwndDlg;
  
! 	ResizeWindow(hDlg, arwDialog, rwaFixupGuts);
  
! 	hDriveList = GetDlgItem(hDlg, IDC_DRIVE_LIST);
  
! 	bAutoSetPartitionName = TRUE;
! 	hSelectedItem = 0;
  
! 	SetupDriveList(hDriveList);
  
! 	bCreated = FALSE;
  }
  
  static void OnClose()
  {
! 	EndDialog(hDlg, IDCANCEL);
  }
  
  static void OnCreate()
  {
! 	ASSERT(g_hServer);
  	
! 	HLISTITEM hItem = FastList_FindFirstSelected(hDriveList);
! 	_ASSERTE(hItem);
  
! 	GetWindowText(GetDlgItem(hDlg, IDC_PARTITION_NAME), szPartitionName, sizeof(szPartitionName));
      if (!Validation_IsValid(szPartitionName, VALID_AFS_PARTITION_NAME))
          return;
  
! 	lstrcpy(szDrive, FastList_GetItemText(hDriveList, hItem, 0));
! 	lstrcpy(szSize, FastList_GetItemText(hDriveList, hItem, 2));
  
! 	// Constuct the device name
! 	char szDevNameA[] = "?:";
! 	S2A drive(szDrive);
      szDevNameA[0] = ((char*)drive)[0];
  
! 	// Construct the partition name
! 	char szPartNameA[9] = "/vicep";
! 	strncat(szPartNameA, (char *)S2A(szPartitionName), 2);
! 
! 	if (DoesPartitionExist(A2S(szPartNameA))) {
! 		MsgBox(hDlg, IDS_PARTITION_EXISTS, GetAppTitleID(), MB_OK | MB_ICONSTOP);
! 		return;
! 	}
  
! 	g_LogFile.Write("Adding an AFS partition on device '%s' with name '%s'.\r\n", szDevNameA, szPartNameA);
  
! 	afs_status_t nStatus;
! 	int nResult = cfg_HostPartitionTableAddEntry(g_hServer, szPartNameA, szDevNameA, &nStatus);
! 	if (!nResult) {
! 		ShowError(hDlg, nStatus, IDS_CREATE_PARTITION_ERROR);
! 		return;
! 	}
  
! 	MsgBox(hDlg, IDS_PARTITION_CREATED, GetAppTitleID(), MB_OK);
  
! 	bCreated = TRUE;
  
! 	SetWndText(hDlg, IDC_PARTITION_NAME, TEXT(""));
  }
  
  static void OnPartitionName()
! {
! 	TCHAR szBuf[MAX_PARTITION_NAME_LEN];
! 	GetWindowText(GetDlgItem(hDlg, IDC_PARTITION_NAME), szBuf, MAX_PARTITION_NAME_LEN);
  
! 	bAutoSetPartitionName = szBuf[0] == 0;
! 	
! 	CheckEnableButtons();
  }
  
  static void OnListSelection(LPFLN_ITEMSELECT_PARAMS pItemParms)
  {
! 	ASSERT(pItemParms);
  
! 	hSelectedItem = 0;
  
! 	if (pItemParms->hItem) {
! 		LPARAM lParam = FastList_GetItemParam(hDriveList, pItemParms->hItem);
! 		if (lParam == 0) {
! 			hSelectedItem = pItemParms->hItem;
! 
! 			if (bAutoSetPartitionName) {
! 				TCHAR szName[2];
! 				LPCTSTR pDrive = FastList_GetItemText(hDriveList, hSelectedItem, 0);
! 				szName[0] = _totlower(pDrive[0]);
! 				szName[1] = 0;
! 				
! 				TCHAR szFullName[6] = TEXT("vice");
! 				lstrcat(szFullName, szName);
! 
! 				if (!DoesPartitionExist(szFullName)) {
! 					SetWndText(hDlg, IDC_PARTITION_NAME, szName);
! 
! 					// Must set this to true because the call to SetWndText will cause
! 					// a call to OnPartitionName, which would incorrectly think that the
! 					// Partition Name had been set by the user rather than by us, thus
! 					// setting bAutoSetPartitionName to false.
! 					bAutoSetPartitionName = TRUE;
! 				}
! 			}
  		}
  	}
  
! 	CheckEnableButtons();
! }
  
  static void CheckEnableButtons()
  {
! 	TCHAR szBuf[MAX_PARTITION_NAME_LEN];
  
! 	GetWindowText(GetDlgItem(hDlg, IDC_PARTITION_NAME), szBuf, MAX_PARTITION_NAME_LEN);
  	
! 	ENABLE_STATE es = ES_ENABLE;
  	
! 	if ((hSelectedItem == 0) || (szBuf[0] == 0))
! 		es = ES_DISABLE;
  
! 	SetEnable(hDlg, IDC_CREATE, es);
  }
  
--- 141,266 ----
   */
  static void OnInitDialog(HWND hwndDlg)
  {
!     hDlg = hwndDlg;
  
!     ResizeWindow(hDlg, arwDialog, rwaFixupGuts);
  
!     hDriveList = GetDlgItem(hDlg, IDC_DRIVE_LIST);
  
!     bAutoSetPartitionName = TRUE;
!     hSelectedItem = 0;
  
!     SetupDriveList(hDriveList);
  
!     bCreated = FALSE;
  }
  
  static void OnClose()
  {
!     EndDialog(hDlg, IDCANCEL);
  }
  
  static void OnCreate()
  {
!     ASSERT(g_hServer);
  	
!     HLISTITEM hItem = FastList_FindFirstSelected(hDriveList);
!     _ASSERTE(hItem);
  
!     GetWindowText(GetDlgItem(hDlg, IDC_PARTITION_NAME), szPartitionName, sizeof(szPartitionName));
      if (!Validation_IsValid(szPartitionName, VALID_AFS_PARTITION_NAME))
          return;
  
!     lstrcpy(szDrive, FastList_GetItemText(hDriveList, hItem, 0));
!     lstrcpy(szSize, FastList_GetItemText(hDriveList, hItem, 2));
  
!     // Constuct the device name
!     char szDevNameA[] = "?:";
!     S2A drive(szDrive);
      szDevNameA[0] = ((char*)drive)[0];
  
!     // Construct the partition name
!     char szPartNameA[9] = "/vicep";
!     strncat(szPartNameA, (char *)S2A(szPartitionName), 2);
  
!     if (DoesPartitionExist(A2S(szPartNameA))) {
! 	MsgBox(hDlg, IDS_PARTITION_EXISTS, GetAppTitleID(), MB_OK | MB_ICONSTOP);
! 	return;
!     }
  
!     g_LogFile.Write("Adding an AFS partition on device '%s' with name '%s'.\r\n", szDevNameA, szPartNameA);
! 
!     afs_status_t nStatus;
!     int nResult = cfg_HostPartitionTableAddEntry(g_hServer, szPartNameA, szDevNameA, &nStatus);
!     if (!nResult) {
! 	ShowError(hDlg, nStatus, IDS_CREATE_PARTITION_ERROR);
! 	return;
!     }
  
!     MsgBox(hDlg, IDS_PARTITION_CREATED, GetAppTitleID(), MB_OK);
  
!     bCreated = TRUE;
  
!     SetWndText(hDlg, IDC_PARTITION_NAME, TEXT(""));
  }
  
  static void OnPartitionName()
! {	
!     TCHAR szBuf[MAX_PARTITION_NAME_LEN];
!     GetWindowText(GetDlgItem(hDlg, IDC_PARTITION_NAME), szBuf, MAX_PARTITION_NAME_LEN);
  
!     bAutoSetPartitionName = szBuf[0] == 0;
! 
!     CheckEnableButtons();
  }
  
  static void OnListSelection(LPFLN_ITEMSELECT_PARAMS pItemParms)
  {
!     ASSERT(pItemParms);
  
!     hSelectedItem = 0;
  
!     if (pItemParms->hItem) {
! 	LPARAM lParam = FastList_GetItemParam(hDriveList, pItemParms->hItem);
! 	if (lParam == 0) {
! 	    hSelectedItem = pItemParms->hItem;
! 
! 	    if (bAutoSetPartitionName) {
! 		TCHAR szName[2];
! 		LPCTSTR pDrive = FastList_GetItemText(hDriveList, hSelectedItem, 0);
! 		szName[0] = _totlower(pDrive[0]);
! 		szName[1] = 0;
! 
! 		TCHAR szFullName[6] = TEXT("vice");
! 		lstrcat(szFullName, szName);
! 
! 		if (!DoesPartitionExist(szFullName)) {
! 		    SetWndText(hDlg, IDC_PARTITION_NAME, szName);
! 
! 		    // Must set this to true because the call to SetWndText will cause
! 		    // a call to OnPartitionName, which would incorrectly think that the
! 		    // Partition Name had been set by the user rather than by us, thus
! 		    // setting bAutoSetPartitionName to false.
! 		    bAutoSetPartitionName = TRUE;
  		}
+ 	    }
  	}
+     }
  
!     CheckEnableButtons();
! }	
  
  static void CheckEnableButtons()
  {
!     TCHAR szBuf[MAX_PARTITION_NAME_LEN];
  
!     GetWindowText(GetDlgItem(hDlg, IDC_PARTITION_NAME), szBuf, MAX_PARTITION_NAME_LEN);
  	
!     ENABLE_STATE es = ES_ENABLE;
  	
!     if ((hSelectedItem == 0) || (szBuf[0] == 0))
! 	es = ES_DISABLE;
  
!     SetEnable(hDlg, IDC_CREATE, es);
  }
  
Index: openafs/src/WINNT/afssvrcfg/db_server_page.cpp
diff -c openafs/src/WINNT/afssvrcfg/db_server_page.cpp:1.2 openafs/src/WINNT/afssvrcfg/db_server_page.cpp:1.2.32.1
*** openafs/src/WINNT/afssvrcfg/db_server_page.cpp:1.2	Sat Nov  4 05:01:51 2000
--- openafs/src/WINNT/afssvrcfg/db_server_page.cpp	Tue Dec 26 15:22:28 2006
***************
*** 49,90 ****
   */
  BOOL CALLBACK DBServerPageDlgProc(HWND hwndDlg, UINT msg, WPARAM wp, LPARAM lp)
  {
! 	if (WizStep_Common_DlgProc (hwndDlg, msg, wp, lp))
! 		return FALSE;
! 
! 	switch (msg) {
! 		case WM_INITDIALOG:
! 	         OnInitDialog(hwndDlg);
! 		     break;
! 
! 		case WM_COMMAND:
! 			switch (LOWORD(wp)) {
! 				case IDNEXT:
! 					SavePageInfo();
! 					g_pWiz->SetState(sidSTEP_SEVEN);
! 					break;
! 
! 				case IDBACK:
! 					SavePageInfo();
! 					g_pWiz->SetState(sidSTEP_FIVE);
! 					break;
! 
! 				case IDC_DONT_CONFIG_DB_SERVER:
! 					g_CfgData.configDB = CS_DONT_CONFIGURE;
! 					EnableSCM(ES_DISABLE);
! 					break;
! 
! 				case IDC_CONFIG_DB_SERVER:
! 					g_CfgData.configDB = CS_CONFIGURE;
! 					EnableSCM(ES_ENABLE);
! 					break;
! 			}
! 		break;
  
  	}
  
! 	return FALSE;
! }
  
  
  /*
--- 49,90 ----
   */
  BOOL CALLBACK DBServerPageDlgProc(HWND hwndDlg, UINT msg, WPARAM wp, LPARAM lp)
  {
!     if (WizStep_Common_DlgProc (hwndDlg, msg, wp, lp))
! 	return FALSE;
  
+     switch (msg) {
+     case WM_INITDIALOG:
+ 	OnInitDialog(hwndDlg);
+ 	break;
+ 
+     case WM_COMMAND:
+ 	switch (LOWORD(wp)) {
+ 	case IDNEXT:
+ 	    SavePageInfo();
+ 	    g_pWiz->SetState(sidSTEP_SEVEN);
+ 	    break;
+ 
+ 	case IDBACK:
+ 	    SavePageInfo();
+ 	    g_pWiz->SetState(sidSTEP_FIVE);
+ 	    break;
+ 
+ 	case IDC_DONT_CONFIG_DB_SERVER:
+ 	    g_CfgData.configDB = CS_DONT_CONFIGURE;
+ 	    EnableSCM(ES_DISABLE);
+ 	    break;
+ 
+ 	case IDC_CONFIG_DB_SERVER:
+ 	    g_CfgData.configDB = CS_CONFIGURE;
+ 	    EnableSCM(ES_ENABLE);
+ 	    break;
  	}
+ 	break;
  
!     }
! 
!     return FALSE;
! }	
  
  
  /*
***************
*** 98,134 ****
   */
  static void OnInitDialog(HWND hwndDlg)
  {
! 	hDlg = hwndDlg;
  
! 	g_pWiz->EnableButtons(BACK_BUTTON | NEXT_BUTTON);
! 	g_pWiz->SetButtonText(IDNEXT, IDS_NEXT);
! 	g_pWiz->SetDefaultControl(IDNEXT);
! 
! 	if (g_CfgData.bFirstServer) {
! 		ConfigMsg(IDS_MUST_CONFIG_DB);
! 		g_CfgData.configDB = CS_CONFIGURE;
! 		return;
! 	}
! 
! 	ShowPageInfo();
! 
! 	switch (g_CfgData.configDB) {
! 		case CS_ALREADY_CONFIGURED:
! 			ConfigMsg(IDS_ALREADY_A_DB_SERVER);
! 			break;
! 
! 		case CS_DONT_CONFIGURE:
! 			SetCheck(hDlg, IDC_DONT_CONFIG_DB_SERVER);
! 			EnableSCM(ES_DISABLE);
! 			break;
! 
! 		case CS_CONFIGURE:
! 		default:
! 			SetCheck(hDlg, IDC_CONFIG_DB_SERVER);
! 			EnableSCM(ES_ENABLE);
! 			break;
! 	}
! }
  
  
  /*
--- 98,134 ----
   */
  static void OnInitDialog(HWND hwndDlg)
  {
!     hDlg = hwndDlg;
  
!     g_pWiz->EnableButtons(BACK_BUTTON | NEXT_BUTTON);
!     g_pWiz->SetButtonText(IDNEXT, IDS_NEXT);
!     g_pWiz->SetDefaultControl(IDNEXT);
! 
!     if (g_CfgData.bFirstServer) {
! 	ConfigMsg(IDS_MUST_CONFIG_DB);
! 	g_CfgData.configDB = CS_CONFIGURE;
! 	return;
!     }
! 
!     ShowPageInfo();
! 
!     switch (g_CfgData.configDB) {
!     case CS_ALREADY_CONFIGURED:
! 	ConfigMsg(IDS_ALREADY_A_DB_SERVER);
! 	break;
! 
!     case CS_DONT_CONFIGURE:
! 	SetCheck(hDlg, IDC_DONT_CONFIG_DB_SERVER);
! 	EnableSCM(ES_DISABLE);
! 	break;
! 
!     case CS_CONFIGURE:
!     default:
! 	SetCheck(hDlg, IDC_CONFIG_DB_SERVER);
! 	EnableSCM(ES_ENABLE);
! 	break;
!     }
! }	
  
  
  /*
***************
*** 138,174 ****
  
  static void ConfigMsg(UINT nMsgID)
  {
! 	TCHAR szMsg[cchRESOURCE];
  
! 	GetString(szMsg, nMsgID);
  
! 	// Hide the controls that are at the same position as the message
! 	ShowWnd(hDlg, IDC_DB_SERVER_QUESTION, FALSE);
! 	ShowWnd(hDlg, IDC_CONFIG_DB_SERVER, FALSE);
! 	ShowWnd(hDlg, IDC_SCM_PROMPT, FALSE);
! 	ShowWnd(hDlg, IDC_SYS_CONTROL_MACHINE_LABEL, FALSE);
! 	ShowWnd(hDlg, IDC_SYS_CONTROL_MACHINE, FALSE);
! 	
! 	ShowWnd(hDlg, IDC_DONT_CONFIG_DB_SERVER, FALSE);
! 	
! 	SetWndText(hDlg, IDC_MSG, szMsg);
! 	ShowWnd(hDlg, IDC_MSG);
  }
  
  static void EnableSCM(ENABLE_STATE enable)
  {
! 	SetEnable(hDlg, IDC_SCM_PROMPT, enable);
! 	SetEnable(hDlg, IDC_SYS_CONTROL_MACHINE_LABEL, enable);
! 	SetEnable(hDlg, IDC_SYS_CONTROL_MACHINE, enable);
! }
  
  static void ShowPageInfo()
  {
! 	SetWndText(hDlg, IDC_SYS_CONTROL_MACHINE, g_CfgData.szSysControlMachine);
! }
  
  static void SavePageInfo()
  {
! 	GetWndText(hDlg, IDC_SYS_CONTROL_MACHINE, g_CfgData.szSysControlMachine);
! }
  
--- 138,174 ----
  
  static void ConfigMsg(UINT nMsgID)
  {
!     TCHAR szMsg[cchRESOURCE];
! 
!     GetString(szMsg, nMsgID);
! 
!     // Hide the controls that are at the same position as the message
!     ShowWnd(hDlg, IDC_DB_SERVER_QUESTION, FALSE);
!     ShowWnd(hDlg, IDC_CONFIG_DB_SERVER, FALSE);
!     ShowWnd(hDlg, IDC_SCM_PROMPT, FALSE);
!     ShowWnd(hDlg, IDC_SYS_CONTROL_MACHINE_LABEL, FALSE);
!     ShowWnd(hDlg, IDC_SYS_CONTROL_MACHINE, FALSE);
  
!     ShowWnd(hDlg, IDC_DONT_CONFIG_DB_SERVER, FALSE);
  
!     SetWndText(hDlg, IDC_MSG, szMsg);
!     ShowWnd(hDlg, IDC_MSG);
  }
  
  static void EnableSCM(ENABLE_STATE enable)
  {
!     SetEnable(hDlg, IDC_SCM_PROMPT, enable);
!     SetEnable(hDlg, IDC_SYS_CONTROL_MACHINE_LABEL, enable);
!     SetEnable(hDlg, IDC_SYS_CONTROL_MACHINE, enable);
! }	
  
  static void ShowPageInfo()
  {
!     SetWndText(hDlg, IDC_SYS_CONTROL_MACHINE, g_CfgData.szSysControlMachine);
! }	
  
  static void SavePageInfo()
  {
!     GetWndText(hDlg, IDC_SYS_CONTROL_MACHINE, g_CfgData.szSysControlMachine);
! }	
  
Index: openafs/src/WINNT/afssvrcfg/file_server_page.cpp
diff -c openafs/src/WINNT/afssvrcfg/file_server_page.cpp:1.2 openafs/src/WINNT/afssvrcfg/file_server_page.cpp:1.2.32.1
*** openafs/src/WINNT/afssvrcfg/file_server_page.cpp:1.2	Sat Nov  4 05:01:51 2000
--- openafs/src/WINNT/afssvrcfg/file_server_page.cpp	Tue Dec 26 15:22:28 2006
***************
*** 46,82 ****
   */
  BOOL CALLBACK FileServerPageDlgProc(HWND hwndDlg, UINT msg, WPARAM wp, LPARAM lp)
  {
! 	if (WizStep_Common_DlgProc (hwndDlg, msg, wp, lp))
! 		return FALSE;
! 
! 	switch (msg) {
! 		case WM_INITDIALOG:
! 	         OnInitDialog(hwndDlg);
! 		     break;
! 
! 		case WM_COMMAND:
! 			switch (LOWORD(wp)) {
! 				case IDNEXT:
! 					g_pWiz->SetState(sidSTEP_SIX);
! 					break;
! 
! 				case IDBACK:
! 				   g_pWiz->SetState(sidSTEP_FOUR);
! 				   break;
! 
! 				case IDC_DONT_CONFIG_FILE_SERVER:
! 					g_CfgData.configFS = CS_DONT_CONFIGURE;
! 					break;
! 
! 				case IDC_SHOULD_CONFIG_FILE_SERVER:
! 					g_CfgData.configFS = CS_CONFIGURE;
! 					break;
! 			}
! 		break;
  
  	}
  
! 	return FALSE;
  }
  
  
--- 46,82 ----
   */
  BOOL CALLBACK FileServerPageDlgProc(HWND hwndDlg, UINT msg, WPARAM wp, LPARAM lp)
  {
!     if (WizStep_Common_DlgProc (hwndDlg, msg, wp, lp))
! 	return FALSE;
  
+     switch (msg) {
+     case WM_INITDIALOG:
+ 	OnInitDialog(hwndDlg);
+ 	break;
+ 
+     case WM_COMMAND:
+ 	switch (LOWORD(wp)) {
+ 	case IDNEXT:
+ 	    g_pWiz->SetState(sidSTEP_SIX);
+ 	    break;
+ 
+ 	case IDBACK:
+ 	    g_pWiz->SetState(sidSTEP_FOUR);
+ 	    break;
+ 
+ 	case IDC_DONT_CONFIG_FILE_SERVER:
+ 	    g_CfgData.configFS = CS_DONT_CONFIGURE;
+ 	    break;
+ 
+ 	case IDC_SHOULD_CONFIG_FILE_SERVER:
+ 	    g_CfgData.configFS = CS_CONFIGURE;
+ 	    break;
  	}
+ 	break;
  
!     }
! 
!     return FALSE;
  }
  
  
***************
*** 91,122 ****
   */
  static void OnInitDialog(HWND hwndDlg)
  {
! 	hDlg = hwndDlg;
  
! 	g_pWiz->EnableButtons(BACK_BUTTON | NEXT_BUTTON);
! 	g_pWiz->SetButtonText(IDNEXT, IDS_NEXT);
! 	g_pWiz->SetDefaultControl(IDNEXT);
! 
! 	if (g_CfgData.bFirstServer) {
! 		ConfigMsg(IDS_MUST_CONFIG_FS);
! 		g_CfgData.configFS = CS_CONFIGURE;
! 		return;
! 	}
! 
! 	switch (g_CfgData.configFS) {
! 		case CS_ALREADY_CONFIGURED:
! 			ConfigMsg(IDS_ALREADY_A_FS_SERVER);
! 			break;
! 
! 		case CS_DONT_CONFIGURE:
! 			SetCheck(hDlg, IDC_DONT_CONFIG_FILE_SERVER);
! 			break;
! 
! 		case CS_CONFIGURE:
! 		default:
! 			SetCheck(hDlg, IDC_SHOULD_CONFIG_FILE_SERVER);
! 			break;
! 	}
  }
  
  
--- 91,122 ----
   */
  static void OnInitDialog(HWND hwndDlg)
  {
!     hDlg = hwndDlg;
  
!     g_pWiz->EnableButtons(BACK_BUTTON | NEXT_BUTTON);
!     g_pWiz->SetButtonText(IDNEXT, IDS_NEXT);
!     g_pWiz->SetDefaultControl(IDNEXT);
! 
!     if (g_CfgData.bFirstServer) {
! 	ConfigMsg(IDS_MUST_CONFIG_FS);
! 	g_CfgData.configFS = CS_CONFIGURE;
! 	return;
!     }
! 
!     switch (g_CfgData.configFS) {
!     case CS_ALREADY_CONFIGURED:
! 	ConfigMsg(IDS_ALREADY_A_FS_SERVER);
! 	break;
! 
!     case CS_DONT_CONFIGURE:
! 	SetCheck(hDlg, IDC_DONT_CONFIG_FILE_SERVER);
! 	break;
! 
!     case CS_CONFIGURE:
!     default:
! 	SetCheck(hDlg, IDC_SHOULD_CONFIG_FILE_SERVER);
! 	break;
!     }
  }
  
  
***************
*** 126,141 ****
   */
  static void ConfigMsg(UINT nMsgID)
  {
! 	TCHAR szMsg[cchRESOURCE];
  
! 	GetString(szMsg, nMsgID);
  
! 	// Hide the controls that are at the same position as the message
! 	ShowWnd(hDlg, IDC_CREATE_FS_QUESTION, FALSE);
! 	ShowWnd(hDlg, IDC_SHOULD_CONFIG_FILE_SERVER, FALSE);
! 	ShowWnd(hDlg, IDC_DONT_CONFIG_FILE_SERVER, FALSE);
  	
! 	SetWndText(hDlg, IDC_MSG, szMsg);
! 	ShowWnd(hDlg, IDC_MSG);
  }
  
--- 126,141 ----
   */
  static void ConfigMsg(UINT nMsgID)
  {
!     TCHAR szMsg[cchRESOURCE];
  
!     GetString(szMsg, nMsgID);
  
!     // Hide the controls that are at the same position as the message
!     ShowWnd(hDlg, IDC_CREATE_FS_QUESTION, FALSE);
!     ShowWnd(hDlg, IDC_SHOULD_CONFIG_FILE_SERVER, FALSE);
!     ShowWnd(hDlg, IDC_DONT_CONFIG_FILE_SERVER, FALSE);
  	
!     SetWndText(hDlg, IDC_MSG, szMsg);
!     ShowWnd(hDlg, IDC_MSG);
  }
  
Index: openafs/src/WINNT/afssvrcfg/get_cur_config.cpp
diff -c openafs/src/WINNT/afssvrcfg/get_cur_config.cpp:1.5 openafs/src/WINNT/afssvrcfg/get_cur_config.cpp:1.5.4.1
*** openafs/src/WINNT/afssvrcfg/get_cur_config.cpp:1.5	Wed Jul  6 20:23:24 2005
--- openafs/src/WINNT/afssvrcfg/get_cur_config.cpp	Tue Dec 26 15:22:28 2006
***************
*** 54,80 ****
   */
  int GetCurrentConfig(HWND hParent, BOOL& bCanceled)
  {
! 	pProg = 0;
! 	bCancel = FALSE;
! 	bBakConfigured = FALSE;
  
! 	pProg = New2 (PROGRESSDISPLAY,(hParent, IDD_GET_CURRENT_CONFIG, (DLGPROC)GetCurConfigDlgProc));
! 	pProg->SetProgressRange(0, MAX_STEPS);
  
! 	HWND hLogo = GetDlgItem(pProg->GetWindow(), IDC_LOGO);
! 	AfsAppLib_StartAnimation(hLogo);
  
! 	pProg->Show(GetCurrentConfigState, 0);
  
! 	AfsAppLib_StopAnimation(hLogo);
  
! 	int dwResult = pProg->GetStatus();
  
! 	pProg->Close();
  
! 	bCanceled = bCancel;
  
! 	return dwResult;
  }
  
  
--- 54,80 ----
   */
  int GetCurrentConfig(HWND hParent, BOOL& bCanceled)
  {
!     pProg = 0;
!     bCancel = FALSE;
!     bBakConfigured = FALSE;
  
!     pProg = New2 (PROGRESSDISPLAY,(hParent, IDD_GET_CURRENT_CONFIG, (DLGPROC)GetCurConfigDlgProc));
!     pProg->SetProgressRange(0, MAX_STEPS);
  
!     HWND hLogo = GetDlgItem(pProg->GetWindow(), IDC_LOGO);
!     AfsAppLib_StartAnimation(hLogo);
  
!     pProg->Show(GetCurrentConfigState, 0);
  
!     AfsAppLib_StopAnimation(hLogo);
  
!     int dwResult = pProg->GetStatus();
  
!     pProg->Close();
  
!     bCanceled = bCancel;
  
!     return dwResult;
  }
  
  
***************
*** 90,153 ****
   */
  static BOOL CALLBACK GetCurConfigDlgProc(HWND hwndDlg, UINT msg, WPARAM wp, LPARAM lp)
  {
! 	BOOL bOn = FALSE;
  	
! 	switch (msg) {
! 		case WM_INITDIALOG:
! 			bCancel = FALSE;
! 			break;
! 
! 		case WM_COMMAND:
! 			switch (LOWORD(wp))
! 			{
! 				case IDCANCEL:	if (QueryCancelWiz()) {
! 									bCancel = TRUE;
! 									ShowMsg(IDS_CANCEL_GET_CONFIG);
! 								}
! 								break;
! 			}
! 		break;
  	}
  
! 	return FALSE;
  }
  
  static BOOL IsClientConfigured(BOOL& bConfigured, afs_status_t& nStatus)
  {
! 	if (bCancel)
! 		return FALSE;
  
! 	bConfigured = FALSE;
  
! 	NextStep(IDS_CHECK_AFS_CLIENT);
  
! 	short isInstalled;
! 	afs_status_t configStatus;
! 	char *pszCellName = 0;
  
! 	g_LogFile.Write("Is the AFS Client installed on this machine: ");
! 	if (!cfg_ClientQueryStatus(GetHostnameA(), &isInstalled, &g_CfgData.nClientVersion, &configStatus, &pszCellName, &nStatus)) {
! 		ImmediateErrorDialog(nStatus, IDS_ERROR_AFS_CLIENT_CHECK);
! 		return FALSE;
! 	}
  
! 	g_LogFile.WriteBoolResult((BOOL)isInstalled);
  
! 	bConfigured = (BOOL)(configStatus == 0);
! 	if (bConfigured)
! 		lstrncpy(g_CfgData.szClientCellName, A2S(pszCellName), MAX_CELL_NAME_LEN);
! 	else
! 		g_LogFile.WriteError("The client configuration information on this host is not valid", configStatus);
! 
! 	if (!isInstalled) {
! 		g_LogFile.Write("ERROR:  AFS Client is not installed.  The AFS Server requires the AFS Client.\r\n");
! 		ImmediateErrorDialog(0, IDS_ERROR_AFS_CLIENT_NOT_INSTALLED);
! 		nStatus = -1;	// Just need something nonzero
! 		return FALSE;
! 	}
  
! 	return TRUE;
! }
  
  /*
   *	NOTE:	This function has an important side effect.  If this machine
--- 90,153 ----
   */
  static BOOL CALLBACK GetCurConfigDlgProc(HWND hwndDlg, UINT msg, WPARAM wp, LPARAM lp)
  {
!     BOOL bOn = FALSE;
  	
!     switch (msg) {
!     case WM_INITDIALOG:
! 	bCancel = FALSE;
! 	break;
! 
!     case WM_COMMAND:
! 	switch (LOWORD(wp))
! 	{
! 	case IDCANCEL:	if (QueryCancelWiz()) {
! 	    bCancel = TRUE;
! 	    ShowMsg(IDS_CANCEL_GET_CONFIG);
! 	}
! 	    break;
  	}
+ 	break;
+     }
  
!     return FALSE;
  }
  
  static BOOL IsClientConfigured(BOOL& bConfigured, afs_status_t& nStatus)
  {
!     if (bCancel)
! 	return FALSE;
  
!     bConfigured = FALSE;
  
!     NextStep(IDS_CHECK_AFS_CLIENT);
  
!     short isInstalled;
!     afs_status_t configStatus;
!     char *pszCellName = 0;
  
!     g_LogFile.Write("Is the AFS Client installed on this machine: ");
!     if (!cfg_ClientQueryStatus(GetHostnameA(), &isInstalled, &g_CfgData.nClientVersion, &configStatus, &pszCellName, &nStatus)) {
! 	ImmediateErrorDialog(nStatus, IDS_ERROR_AFS_CLIENT_CHECK);
! 	return FALSE;
!     }
  
!     g_LogFile.WriteBoolResult((BOOL)isInstalled);
  
!     bConfigured = (BOOL)(configStatus == 0);
!     if (bConfigured)
! 	lstrncpy(g_CfgData.szClientCellName, A2S(pszCellName), MAX_CELL_NAME_LEN);
!     else
! 	g_LogFile.WriteError("The client configuration information on this host is not valid", configStatus);
! 
!     if (!isInstalled) {
! 	g_LogFile.Write("ERROR:  AFS Client is not installed.  The AFS Server requires the AFS Client.\r\n");
! 	ImmediateErrorDialog(0, IDS_ERROR_AFS_CLIENT_NOT_INSTALLED);
! 	nStatus = -1;	// Just need something nonzero
! 	return FALSE;
!     }
  
!     return TRUE;
! }	
  
  /*
   *	NOTE:	This function has an important side effect.  If this machine
***************
*** 158,481 ****
   */
  static int IsConfigInfoValid(BOOL& bValid, afs_status_t& nStatus)
  {
! 	if (bCancel)
! 		return FALSE;
  	
! 	afs_status_t configStatus;
! 	char *pszCellName = 0;
  
! 	NextStep(IDS_CHECK_CONFIG_INFO);
  
! 	bValid = FALSE;
  
! 	g_LogFile.Write("Is there valid configuration information on this machine: ");
! 	int nResult = cfg_HostQueryStatus(GetHostnameA(), &configStatus, &pszCellName, &nStatus);
! 	if (!nResult)
! 		return FALSE;
  
! 	g_LogFile.WriteBoolResult((configStatus == 0));
  
! 	if (configStatus == 0)
! 		lstrncpy(g_CfgData.szCellName, A2S(pszCellName), MAX_CELL_NAME_LEN);
! 	else
! 		g_LogFile.WriteError("The configuration information on this host is not valid", configStatus);
  
! 	bValid = (BOOL)(configStatus == 0);
  
! 	return TRUE;
  }
  
  static int StartBosServer(afs_status_t& nStatus)
  {
! 	short isStarted;
! 	short isBosProc;
! 
! 	g_LogFile.Write("Checking if bos server is running.\r\n");
! 	int nResult = cfg_BosServerQueryStatus(g_hServer, &isStarted, &isBosProc, &nStatus);
! 	if (!nResult)
! 		return nResult;
! 
! 	if (!isStarted) {
! 		g_LogFile.Write("Starting the bos server in %s mode.\r\n", g_CfgData.bValidServerInfo ? "auth" : "no auth");
! 		nResult = cfg_BosServerStart(g_hServer, !g_CfgData.bValidServerInfo, BOSSERVER_START_TIMEOUT, &nStatus);
! 	}
  
  	return nResult;
! }
  
  static BOOL AreWeLastDBServer(BOOL& bLast, afs_status_t& nStatus)
  {
! 	ASSERT(g_CfgData.szHostname[0]);
  
! 	char *pszCellname = 0;
! 	char *pszCellServDB = 0;
  
! 	bLast = FALSE;
  
! 	g_LogFile.Write("Checking if this machine is the last DB server in the cell.\r\n");
  
! 	g_LogFile.Write("Getting CellServDB from host %s.\r\n", GetHostnameA());
! 	int nResult = cfg_CellServDbEnumerate(GetHostnameA(), &pszCellname, &pszCellServDB, &nStatus);
! 	if (!nResult)
! 		return FALSE;	
  
! 	if (!pszCellServDB) {
! 		g_LogFile.Write("There are no DB servers in CellServDB!!!!!");
! 		ASSERT(FALSE);		// This should not be possible
! 		return FALSE;
! 	}
  
! 	char *psz = pszCellServDB;
  
!         int i;
! 	for (i = 0; *psz; psz += strlen(psz) + 1)
! 		i++;
! 
! 	if (i == 1) {
! 		ASSERT(lstrcmp(g_CfgData.szHostname, A2S(pszCellServDB)) == 0);
! 		g_LogFile.Write("This machine IS the last DB server in the cell.\r\n");
! 		bLast = TRUE;
! 	} else
! 		g_LogFile.Write("This machine is NOT the last DB server in the cell.\r\n");
  
! 	return TRUE;
  }
  
  static afs_status_t IsFSConfigured(BOOL& bConfigured)
  {
! 	g_LogFile.Write("Is this machine a file server: ");
  	
! 	bConfigured = FALSE;
  
! 	short isStarted;
! 	afs_status_t nStatus;
  
! 	int nResult = cfg_FileServerQueryStatus(g_hServer, &isStarted, &nStatus);
! 	if (!nResult)
! 		return nStatus;
  
! 	bConfigured = isStarted;	
  	
! 	g_LogFile.WriteBoolResult(bConfigured);
  
! 	return 0;
! }
  
  static afs_status_t IsDBConfigured(BOOL& bConfigured)
  {
! 	g_LogFile.Write("Is this machine a db (or bak) server: ");
  
! 	bConfigured = FALSE;
  
! 	short isStarted, isBakStarted;
! 	afs_status_t nStatus;
  
! 	int nResult = cfg_DbServersQueryStatus(g_hServer, &isStarted, &isBakStarted, 0, &nStatus);
! 	if (!nResult)
! 		return nStatus;
  
! 	bConfigured = isStarted;
! 	bBakConfigured = isBakStarted;
  
! 	g_LogFile.Write(bConfigured ? "Yes DB" : "No DB");
! 	g_LogFile.Write(", %s.\r\n", bBakConfigured ? "Yes Bak" : "No Bak");
  
! 	return 0;
! }
  
  static afs_status_t IsBakConfigured(BOOL& bConfigured)
  {
! 	bConfigured = bBakConfigured;
  	
! 	return 0;
  }
  
  static afs_status_t DoesAPartitionExist(BOOL& bExists)
  {
! 	g_LogFile.Write("Does a partition exist on this machine: ");
  
! 	bExists = FALSE;
  
! 	afs_status_t nStatus;
  
! 	int nResult = ReadPartitionTable(&nStatus);
! 	if (!nResult)
! 		return nStatus;
  
! 	int nNumPartitions = 0;
  
! 	cfg_partitionEntry_t *pTable = GetPartitionTable(nNumPartitions);
  
! 	bExists = nNumPartitions > 0;
! 	if (bExists) {
! 		g_CfgData.chDeviceName = pTable->deviceName[0];
! 		lstrcpy(g_CfgData.szPartitionName, ((TCHAR *)A2S(pTable->partitionName)) + lstrlen(TEXT("/vicep")));
! 	}
  
! 	g_LogFile.WriteBoolResult(bExists);
  
! 	return 0;
! }
  
  afs_status_t DoRootVolumesExist(BOOL& bExists)
  {
! 	bExists = FALSE;
  
! 	afs_status_t nStatus;
  
! 	g_LogFile.Write("Do the root volumes exist: ");
  
! 	// Does root.afs exist?  If it does not, the call will fail with the VL_NOENT
! 	// status.  Any other error causes this function to fail.
! 	int nResult = vos_VLDBGet(g_hCell, 0, 0, "root.afs", &vldbRootAfsEntry, &nStatus);
! 	if (nResult) {
! 		g_CfgData.bRootAfsExists = TRUE;
          g_CfgData.nRootAfsID = vldbRootAfsEntry.volumeId[0];
! 	} else if (nStatus != VL_NOENT)
! 		return nStatus;
  
! 	// Does root.cell exist?
! 	nResult = vos_VLDBGet(g_hCell, 0, 0, "root.cell", &vldbRootCellEntry, &nStatus);
! 	if (nResult) {
! 		g_CfgData.bRootCellExists = TRUE;
          g_CfgData.nRootCellID = vldbRootCellEntry.volumeId[0];
! 	} else if (nStatus != VL_NOENT)
! 		return nStatus;
  
! 	bExists = g_CfgData.bRootAfsExists && g_CfgData.bRootCellExists;
  
! 	g_LogFile.WriteBoolResult(bExists);
  
! 	return 0;
  }
  
  static BOOL IsVolumeReplicated(vos_vldbEntry_t& vldbEntry)
  {
! 	if (vldbEntry.numServers <= 1)
! 		return FALSE;
  
! 	for (int i = 0; i < vldbEntry.numServers; i++) {
! 		if ((vldbEntry.volumeSites[i].serverFlags & VOS_VLDB_READ_ONLY) ||
! 			(vldbEntry.volumeSites[i].serverFlags & VOS_VLDB_NEW_REPSITE))
! 				return TRUE;
! 	}
  
! 	return FALSE;
  }
  
  afs_status_t AreRootVolumesReplicated(BOOL& bReplicated)
  {
! 	g_LogFile.Write("Are the root volumes replicated: ");
  
! 	// Is root.afs replicated?
! 	g_CfgData.bRootAfsReplicated = IsVolumeReplicated(vldbRootAfsEntry);
  
! 	// Is root.cell replicated?
! 	g_CfgData.bRootCellReplicated = IsVolumeReplicated(vldbRootCellEntry);
  
! 	bReplicated = g_CfgData.bRootAfsReplicated && g_CfgData.bRootCellReplicated;
  
! 	g_LogFile.WriteBoolResult(bReplicated);
  
! 	return 0;
! }
  
  static afs_status_t IsSCSConfigured(BOOL& bConfigured)
  {
! 	g_LogFile.Write("Is this machine a System Control Server: ");
  	
! 	bConfigured = FALSE;
  
! 	short isUpserver, isSC, isBin;
! 	afs_status_t nStatus;
  
! 	int nResult = cfg_UpdateServerQueryStatus(g_hServer, &isUpserver, &isSC, &isBin, &nStatus);
! 	if (!nResult)
! 		return nStatus;
  
! 	bConfigured = isUpserver && isSC;
  
! 	g_LogFile.WriteBoolResult(bConfigured);
  
! 	return 0;
  }
  
  static afs_status_t IsSCCConfigured(BOOL& bConfigured)
  {
! 	g_LogFile.Write("Is this machine a System Control Client: ");
  	
! 	bConfigured = FALSE;
  
! 	short isUpclient, isSCC, isBin;
! 	afs_status_t nStatus;
  
! 	int nResult = cfg_UpdateClientQueryStatus(g_hServer, &isUpclient, &isSCC, &isBin, &nStatus);
! 	if (!nResult)
! 		return nStatus;
  
! 	bConfigured = isUpclient && isSCC;
  
! 	g_LogFile.WriteBoolResult(bConfigured);
  
! 	return 0;
  }
  
  static void ShowMsg(UINT uiMsgID)
  {
! 	TCHAR szMsg[cchRESOURCE];
  
! 	GetString(szMsg, uiMsgID);
  	
! 	pProg->SetOperation(szMsg);
  }
  
  static void NextStep(UINT uiMsgID)
  {
! 	static int nCurStep = 1;
  
! 	if (bCancel)
! 		return;
  	
! 	ShowMsg(uiMsgID);
  
! 	pProg->SetProgress(nCurStep++);
  
! 	Sleep(50);
  }
  
  static BOOL CheckConfigState(afs_status_t (*ConfigCheckFunc)(BOOL&), CONFIG_STATE& state, afs_status_t& nStatus, UINT uiMsgID)
  {
! 	BOOL bState = FALSE;
  
! 	if (bCancel)
! 		return FALSE;
  
! 	NextStep(uiMsgID);
  
! 	nStatus = ConfigCheckFunc(bState);
! 	if (nStatus) {
! 		g_LogFile.WriteError("Config check failed", nStatus);
! 		return FALSE;
! 	}
  
! 	state = bState ? CS_ALREADY_CONFIGURED : CS_NULL;
  
! 	return TRUE;
  }
  		
  static DWORD CALLBACK GetCurrentConfigState(LPPROGRESSDISPLAY ppd, LPARAM lp)
  {
! 	afs_status_t nStatus = 0;
  
! 	ASSERT(pProg);
  
! 	g_LogFile.Write("Checking this machine's current configuration...\r\n");
  
! 	if (!IsClientConfigured(g_CfgData.bValidClientInfo, nStatus))
! 		return nStatus;
  
! 	if (!IsConfigInfoValid(g_CfgData.bValidServerInfo, nStatus))
! 		return nStatus;
  
      // If the server and client have good config info, and the client is in a 
      // different cell than the server, then the config routines will want to
--- 158,481 ----
   */
  static int IsConfigInfoValid(BOOL& bValid, afs_status_t& nStatus)
  {
!     if (bCancel)
! 	return FALSE;
  	
!     afs_status_t configStatus;
!     char *pszCellName = 0;
  
!     NextStep(IDS_CHECK_CONFIG_INFO);
  
!     bValid = FALSE;
  
!     g_LogFile.Write("Is there valid configuration information on this machine: ");
!     int nResult = cfg_HostQueryStatus(GetHostnameA(), &configStatus, &pszCellName, &nStatus);
!     if (!nResult)
! 	return FALSE;
  
!     g_LogFile.WriteBoolResult((configStatus == 0));
  
!     if (configStatus == 0)
! 	lstrncpy(g_CfgData.szCellName, A2S(pszCellName), MAX_CELL_NAME_LEN);
!     else
! 	g_LogFile.WriteError("The configuration information on this host is not valid", configStatus);
  
!     bValid = (BOOL)(configStatus == 0);
  
!     return TRUE;
  }
  
  static int StartBosServer(afs_status_t& nStatus)
  {
!     short isStarted;
!     short isBosProc;
  
+     g_LogFile.Write("Checking if bos server is running.\r\n");
+     int nResult = cfg_BosServerQueryStatus(g_hServer, &isStarted, &isBosProc, &nStatus);
+     if (!nResult)
  	return nResult;
! 
!     if (!isStarted) {
! 	g_LogFile.Write("Starting the bos server in %s mode.\r\n", g_CfgData.bValidServerInfo ? "auth" : "no auth");
! 	nResult = cfg_BosServerStart(g_hServer, !g_CfgData.bValidServerInfo, BOSSERVER_START_TIMEOUT, &nStatus);
!     }
! 
!     return nResult;
! }		
  
  static BOOL AreWeLastDBServer(BOOL& bLast, afs_status_t& nStatus)
  {
!     ASSERT(g_CfgData.szHostname[0]);
  
!     char *pszCellname = 0;
!     char *pszCellServDB = 0;
  
!     bLast = FALSE;
  
!     g_LogFile.Write("Checking if this machine is the last DB server in the cell.\r\n");
  
!     g_LogFile.Write("Getting CellServDB from host %s.\r\n", GetHostnameA());
!     int nResult = cfg_CellServDbEnumerate(GetHostnameA(), &pszCellname, &pszCellServDB, &nStatus);
!     if (!nResult)
! 	return FALSE;	
  
!     if (!pszCellServDB) {
! 	g_LogFile.Write("There are no DB servers in CellServDB!!!!!");
! 	ASSERT(FALSE);		// This should not be possible
! 	return FALSE;
!     }
  
!     char *psz = pszCellServDB;
  
!     int i;
!     for (i = 0; *psz; psz += strlen(psz) + 1)
! 	i++;
! 
!     if (i == 1) {
! 	ASSERT(lstrcmp(g_CfgData.szHostname, A2S(pszCellServDB)) == 0);
! 	g_LogFile.Write("This machine IS the last DB server in the cell.\r\n");
! 	bLast = TRUE;
!     } else
! 	g_LogFile.Write("This machine is NOT the last DB server in the cell.\r\n");
  
!     return TRUE;
  }
  
  static afs_status_t IsFSConfigured(BOOL& bConfigured)
  {
!     g_LogFile.Write("Is this machine a file server: ");
  	
!     bConfigured = FALSE;
  
!     short isStarted;
!     afs_status_t nStatus;
  
!     int nResult = cfg_FileServerQueryStatus(g_hServer, &isStarted, &nStatus);
!     if (!nResult)
! 	return nStatus;
  
!     bConfigured = isStarted;	
  	
!     g_LogFile.WriteBoolResult(bConfigured);
  
!     return 0;
! }	
  
  static afs_status_t IsDBConfigured(BOOL& bConfigured)
  {
!     g_LogFile.Write("Is this machine a db (or bak) server: ");
  
!     bConfigured = FALSE;
  
!     short isStarted, isBakStarted;
!     afs_status_t nStatus;
  
!     int nResult = cfg_DbServersQueryStatus(g_hServer, &isStarted, &isBakStarted, 0, &nStatus);
!     if (!nResult)
! 	return nStatus;
  
!     bConfigured = isStarted;
!     bBakConfigured = isBakStarted;
  
!     g_LogFile.Write(bConfigured ? "Yes DB" : "No DB");
!     g_LogFile.Write(", %s.\r\n", bBakConfigured ? "Yes Bak" : "No Bak");
  
!     return 0;
! }	
  
  static afs_status_t IsBakConfigured(BOOL& bConfigured)
  {
!     bConfigured = bBakConfigured;
  	
!     return 0;
  }
  
  static afs_status_t DoesAPartitionExist(BOOL& bExists)
  {
!     g_LogFile.Write("Does a partition exist on this machine: ");
  
!     bExists = FALSE;
  
!     afs_status_t nStatus;
  
!     int nResult = ReadPartitionTable(&nStatus);
!     if (!nResult)
! 	return nStatus;
  
!     int nNumPartitions = 0;
  
!     cfg_partitionEntry_t *pTable = GetPartitionTable(nNumPartitions);
  
!     bExists = nNumPartitions > 0;
!     if (bExists) {
! 	g_CfgData.chDeviceName = pTable->deviceName[0];
! 	lstrcpy(g_CfgData.szPartitionName, ((TCHAR *)A2S(pTable->partitionName)) + lstrlen(TEXT("/vicep")));
!     }
  
!     g_LogFile.WriteBoolResult(bExists);
  
!     return 0;
! }	
  
  afs_status_t DoRootVolumesExist(BOOL& bExists)
  {
!     bExists = FALSE;
  
!     afs_status_t nStatus;
  
!     g_LogFile.Write("Do the root volumes exist: ");
  
!     // Does root.afs exist?  If it does not, the call will fail with the VL_NOENT
!     // status.  Any other error causes this function to fail.
!     int nResult = vos_VLDBGet(g_hCell, 0, 0, "root.afs", &vldbRootAfsEntry, &nStatus);
!     if (nResult) {
! 	g_CfgData.bRootAfsExists = TRUE;
          g_CfgData.nRootAfsID = vldbRootAfsEntry.volumeId[0];
!     } else if (nStatus != VL_NOENT)
! 	return nStatus;
  
!     // Does root.cell exist?
!     nResult = vos_VLDBGet(g_hCell, 0, 0, "root.cell", &vldbRootCellEntry, &nStatus);
!     if (nResult) {
! 	g_CfgData.bRootCellExists = TRUE;
          g_CfgData.nRootCellID = vldbRootCellEntry.volumeId[0];
!     } else if (nStatus != VL_NOENT)
! 	return nStatus;
  
!     bExists = g_CfgData.bRootAfsExists && g_CfgData.bRootCellExists;
  
!     g_LogFile.WriteBoolResult(bExists);
  
!     return 0;
  }
  
  static BOOL IsVolumeReplicated(vos_vldbEntry_t& vldbEntry)
  {
!     if (vldbEntry.numServers <= 1)
! 	return FALSE;
  
!     for (int i = 0; i < vldbEntry.numServers; i++) {
! 	if ((vldbEntry.volumeSites[i].serverFlags & VOS_VLDB_READ_ONLY) ||
! 	     (vldbEntry.volumeSites[i].serverFlags & VOS_VLDB_NEW_REPSITE))
! 	    return TRUE;
!     }
  
!     return FALSE;
  }
  
  afs_status_t AreRootVolumesReplicated(BOOL& bReplicated)
  {
!     g_LogFile.Write("Are the root volumes replicated: ");
  
!     // Is root.afs replicated?
!     g_CfgData.bRootAfsReplicated = IsVolumeReplicated(vldbRootAfsEntry);
  
!     // Is root.cell replicated?
!     g_CfgData.bRootCellReplicated = IsVolumeReplicated(vldbRootCellEntry);
  
!     bReplicated = g_CfgData.bRootAfsReplicated && g_CfgData.bRootCellReplicated;
  
!     g_LogFile.WriteBoolResult(bReplicated);
  
!     return 0;
! }	
  
  static afs_status_t IsSCSConfigured(BOOL& bConfigured)
  {
!     g_LogFile.Write("Is this machine a System Control Server: ");
  	
!     bConfigured = FALSE;
  
!     short isUpserver, isSC, isBin;
!     afs_status_t nStatus;
  
!     int nResult = cfg_UpdateServerQueryStatus(g_hServer, &isUpserver, &isSC, &isBin, &nStatus);
!     if (!nResult)
! 	return nStatus;
  
!     bConfigured = isUpserver && isSC;
  
!     g_LogFile.WriteBoolResult(bConfigured);
  
!     return 0;
  }
  
  static afs_status_t IsSCCConfigured(BOOL& bConfigured)
  {
!     g_LogFile.Write("Is this machine a System Control Client: ");
  	
!     bConfigured = FALSE;
  
!     short isUpclient, isSCC, isBin;
!     afs_status_t nStatus;
  
!     int nResult = cfg_UpdateClientQueryStatus(g_hServer, &isUpclient, &isSCC, &isBin, &nStatus);
!     if (!nResult)
! 	return nStatus;
  
!     bConfigured = isUpclient && isSCC;
  
!     g_LogFile.WriteBoolResult(bConfigured);
  
!     return 0;
  }
  
  static void ShowMsg(UINT uiMsgID)
  {
!     TCHAR szMsg[cchRESOURCE];
  
!     GetString(szMsg, uiMsgID);
  	
!     pProg->SetOperation(szMsg);
  }
  
  static void NextStep(UINT uiMsgID)
  {
!     static int nCurStep = 1;
  
!     if (bCancel)
! 	return;
  	
!     ShowMsg(uiMsgID);
  
!     pProg->SetProgress(nCurStep++);
  
!     Sleep(50);
  }
  
  static BOOL CheckConfigState(afs_status_t (*ConfigCheckFunc)(BOOL&), CONFIG_STATE& state, afs_status_t& nStatus, UINT uiMsgID)
  {
!     BOOL bState = FALSE;
  
!     if (bCancel)
! 	return FALSE;
  
!     NextStep(uiMsgID);
  
!     nStatus = ConfigCheckFunc(bState);
!     if (nStatus) {
! 	g_LogFile.WriteError("Config check failed", nStatus);
! 	return FALSE;
!     }
  
!     state = bState ? CS_ALREADY_CONFIGURED : CS_NULL;
  
!     return TRUE;
  }
  		
  static DWORD CALLBACK GetCurrentConfigState(LPPROGRESSDISPLAY ppd, LPARAM lp)
  {
!     afs_status_t nStatus = 0;
  
!     ASSERT(pProg);
  
!     g_LogFile.Write("Checking this machine's current configuration...\r\n");
  
!     if (!IsClientConfigured(g_CfgData.bValidClientInfo, nStatus))
! 	return nStatus;
  
!     if (!IsConfigInfoValid(g_CfgData.bValidServerInfo, nStatus))
! 	return nStatus;
  
      // If the server and client have good config info, and the client is in a 
      // different cell than the server, then the config routines will want to
***************
*** 487,538 ****
          lstrcpy(g_CfgData.szCellServDbHostname, g_CfgData.szHostname);
      }
  
! 	if (!GetLibHandles(&nStatus))
! 		return nStatus;
  
! 	if (!CheckConfigState(DoesAPartitionExist, g_CfgData.configPartition, nStatus, IDS_CHECK_PARTITION))
! 		return nStatus;
  
! 	if (g_CfgData.bValidServerInfo) {
! 		// Must check if bos server is running, and start it if it isn't.  We can't determine
! 		// if the services are running except by asking the bosserver.
! 		if (!StartBosServer(nStatus))
! 			return nStatus;
! 
! 		if (!CheckConfigState(IsFSConfigured, g_CfgData.configFS, nStatus, IDS_CHECK_FS_CONFIG))
! 			return nStatus;
! 
! 		if (!CheckConfigState(IsDBConfigured, g_CfgData.configDB, nStatus, IDS_CHECK_DB_CONFIG))
! 			return nStatus;
! 
! 		if (g_CfgData.configDB == CS_ALREADY_CONFIGURED) {
! 			if (!AreWeLastDBServer(g_CfgData.bLastDBServer, nStatus))
! 				return nStatus;
! 		}
  
! 		if (!CheckConfigState(IsBakConfigured, g_CfgData.configBak, nStatus, IDS_CHECK_BAK_CONFIG))
! 			return nStatus;
  
! 		if (!CheckConfigState(DoRootVolumesExist, g_CfgData.configRootVolumes, nStatus, IDS_CHECK_ROOT_AFS))
              return nStatus;
  
          g_CfgData.bRootVolumesExistanceKnown = TRUE;
  
!    		if (!CheckConfigState(AreRootVolumesReplicated, g_CfgData.configRep, nStatus, IDS_CHECK_REP))
              return nStatus;
          
          g_CfgData.bRootVolumesReplicationKnown = TRUE;
  
! 		if (!CheckConfigState(IsSCSConfigured, g_CfgData.configSCS, nStatus, IDS_CHECK_SCS))
! 			return nStatus;
  
! 		if (!CheckConfigState(IsSCCConfigured, g_CfgData.configSCC, nStatus, IDS_CHECK_SCC))
! 			return nStatus;
! 	}
  
! 	if (!bCancel)
! 		pProg->SetProgress(MAX_STEPS);
  	
! 	return 0;
  }
  
--- 487,538 ----
          lstrcpy(g_CfgData.szCellServDbHostname, g_CfgData.szHostname);
      }
  
!     if (!GetLibHandles(&nStatus))
! 	return nStatus;
  
!     if (!CheckConfigState(DoesAPartitionExist, g_CfgData.configPartition, nStatus, IDS_CHECK_PARTITION))
! 	return nStatus;
! 
!     if (g_CfgData.bValidServerInfo) {
! 	// Must check if bos server is running, and start it if it isn't.  We can't determine
! 	// if the services are running except by asking the bosserver.
! 	if (!StartBosServer(nStatus))
! 	    return nStatus;
  
! 	if (!CheckConfigState(IsFSConfigured, g_CfgData.configFS, nStatus, IDS_CHECK_FS_CONFIG))
! 	    return nStatus;
  
! 	if (!CheckConfigState(IsDBConfigured, g_CfgData.configDB, nStatus, IDS_CHECK_DB_CONFIG))
! 	    return nStatus;
  
! 	if (g_CfgData.configDB == CS_ALREADY_CONFIGURED) {
! 	    if (!AreWeLastDBServer(g_CfgData.bLastDBServer, nStatus))
! 		return nStatus;
! 	}
! 
! 	if (!CheckConfigState(IsBakConfigured, g_CfgData.configBak, nStatus, IDS_CHECK_BAK_CONFIG))
! 	    return nStatus;
! 
! 	if (!CheckConfigState(DoRootVolumesExist, g_CfgData.configRootVolumes, nStatus, IDS_CHECK_ROOT_AFS))
              return nStatus;
  
          g_CfgData.bRootVolumesExistanceKnown = TRUE;
  
! 	if (!CheckConfigState(AreRootVolumesReplicated, g_CfgData.configRep, nStatus, IDS_CHECK_REP))
              return nStatus;
          
          g_CfgData.bRootVolumesReplicationKnown = TRUE;
  
! 	if (!CheckConfigState(IsSCSConfigured, g_CfgData.configSCS, nStatus, IDS_CHECK_SCS))
! 	    return nStatus;
  
! 	if (!CheckConfigState(IsSCCConfigured, g_CfgData.configSCC, nStatus, IDS_CHECK_SCC))
! 	    return nStatus;
!     }		
  
!     if (!bCancel)
! 	pProg->SetProgress(MAX_STEPS);
  	
!     return 0;
  }
  
Index: openafs/src/WINNT/afssvrcfg/get_pw_dlg.cpp
diff -c openafs/src/WINNT/afssvrcfg/get_pw_dlg.cpp:1.2 openafs/src/WINNT/afssvrcfg/get_pw_dlg.cpp:1.2.32.1
*** openafs/src/WINNT/afssvrcfg/get_pw_dlg.cpp:1.2	Sat Nov  4 05:01:51 2000
--- openafs/src/WINNT/afssvrcfg/get_pw_dlg.cpp	Tue Dec 26 15:22:28 2006
***************
*** 46,52 ****
   */
  BOOL GetAfsPrincipalPassword(HWND hParent, TCHAR *&pszServerPW)
  {	
! 	int nResult = ModalDialog(IDD_GET_PW, hParent, (DLGPROC)GetPwDlgProc);
      if (nResult == IDOK) {
      	pszServerPW = g_CfgData.szServerPW;
          return TRUE;
--- 46,52 ----
   */
  BOOL GetAfsPrincipalPassword(HWND hParent, TCHAR *&pszServerPW)
  {	
!     int nResult = ModalDialog(IDD_GET_PW, hParent, (DLGPROC)GetPwDlgProc);
      if (nResult == IDOK) {
      	pszServerPW = g_CfgData.szServerPW;
          return TRUE;
***************
*** 54,60 ****
  
      pszServerPW = 0;
  
! 	return FALSE;
  }
  
  
--- 54,60 ----
  
      pszServerPW = 0;
  
!     return FALSE;
  }
  
  
***************
*** 64,95 ****
   */
  BOOL CALLBACK GetPwDlgProc(HWND hwndDlg, UINT msg, WPARAM wp, LPARAM lp)
  {
! 	if (AfsAppLib_HandleHelp(IDD_GET_PW, hwndDlg, msg, wp, lp))
! 		return TRUE;
  
! 	switch (msg) {
! 		case WM_INITDIALOG:
! 			OnInitDialog(hwndDlg);
! 			break;
! 
! 		case WM_COMMAND:
! 			switch (LOWORD(wp)) {
! 				case IDC_PW:
! 					if (HIWORD(wp) == EN_CHANGE)
! 						CheckEnableButtons();
! 					break;
! 
! 				case IDCANCEL:
! 					EndDialog(hDlg, IDCANCEL);
! 					break;
! 					
! 
! 				case IDOK:
! 					SaveDlgInfo();
! 					EndDialog(hDlg, IDOK);
! 					break;
! 			}
! 		break;
      }
  
      return FALSE;
--- 64,94 ----
   */
  BOOL CALLBACK GetPwDlgProc(HWND hwndDlg, UINT msg, WPARAM wp, LPARAM lp)
  {
!     if (AfsAppLib_HandleHelp(IDD_GET_PW, hwndDlg, msg, wp, lp))
! 	return TRUE;
  
!     switch (msg) {
!     case WM_INITDIALOG:
! 	OnInitDialog(hwndDlg);
! 	break;
! 
!     case WM_COMMAND:
! 	switch (LOWORD(wp)) {
! 	case IDC_PW:
! 	    if (HIWORD(wp) == EN_CHANGE)
! 		CheckEnableButtons();
! 	    break;
! 
! 	case IDCANCEL:
! 	    EndDialog(hDlg, IDCANCEL);
! 	    break;
! 
! 	case IDOK:
! 	    SaveDlgInfo();
! 	    EndDialog(hDlg, IDOK);
! 	    break;
! 	}
! 	break;
      }
  
      return FALSE;
***************
*** 107,113 ****
   */
  static void OnInitDialog(HWND hwndDlg)
  {
! 	hDlg = hwndDlg;
  }
  
  
--- 106,112 ----
   */
  static void OnInitDialog(HWND hwndDlg)
  {
!     hDlg = hwndDlg;
  }
  
  
***************
*** 117,140 ****
   */
  static void CheckEnableButtons()
  {
! 	BOOL bDisable = FALSE;
  
! 	TCHAR szDummy[cchRESOURCE];
  
! 	bDisable |= lstrlen(GetWndText(hDlg, IDC_PW, szDummy)) == 0;
  
! 	SetEnable(hDlg, IDOK, (ENABLE_STATE)!bDisable);
  }
  
  static void SaveDlgInfo()
  {
! 	TCHAR szText[cchRESOURCE];
  	
! 	lstrncpy(g_CfgData.szServerPW, GetWndText(hDlg, IDC_PW, szText), MAX_SERVER_PW_LEN);
  }
  
  static void ShowPageInfo()
  {
! 	SetWndText(hDlg, IDC_PW, g_CfgData.szServerPW);
  }
  
--- 116,139 ----
   */
  static void CheckEnableButtons()
  {
!     BOOL bDisable = FALSE;
  
!     TCHAR szDummy[cchRESOURCE];
  
!     bDisable |= lstrlen(GetWndText(hDlg, IDC_PW, szDummy)) == 0;
  
!     SetEnable(hDlg, IDOK, (ENABLE_STATE)!bDisable);
  }
  
  static void SaveDlgInfo()
  {
!     TCHAR szText[cchRESOURCE];
  	
!     lstrncpy(g_CfgData.szServerPW, GetWndText(hDlg, IDC_PW, szText), MAX_SERVER_PW_LEN);
  }
  
  static void ShowPageInfo()
  {
!     SetWndText(hDlg, IDC_PW, g_CfgData.szServerPW);
  }
  
Index: openafs/src/WINNT/afssvrcfg/graphics.cpp
diff -c openafs/src/WINNT/afssvrcfg/graphics.cpp:1.2 openafs/src/WINNT/afssvrcfg/graphics.cpp:1.2.32.1
*** openafs/src/WINNT/afssvrcfg/graphics.cpp:1.2	Sat Nov  4 05:01:51 2000
--- openafs/src/WINNT/afssvrcfg/graphics.cpp	Tue Dec 26 15:22:28 2006
***************
*** 36,162 ****
   */
  static void EraseRect(HDC hdc, RECT rect)
  {
! 	HBRUSH hbr = CreateSolidBrush(GetSysColor(COLOR_BTNFACE));
! 	HGDIOBJ hbrOld = SelectObject(hdc, hbr);
  
! 	HPEN hPen = CreatePen(PS_SOLID, 1, GetSysColor(COLOR_BTNFACE));
! 	HGDIOBJ hOldPen = SelectObject(hdc, hPen);
  
! 	Rectangle(hdc, rect.left, rect.top, rect.right, rect.bottom);
! 	
! 	SelectObject(hdc, hOldPen);
! 	SelectObject(hdc, hbrOld);
  
! 	DeleteObject(hPen);
! 	DeleteObject(hbr);
! }
  
  static void DrawCircle(HDC hdc, RECT rect, COLORREF crCircleColor)
  {
! 	HBRUSH hBrush = CreateSolidBrush(crCircleColor);
! 	HGDIOBJ hOldBrush = SelectObject(hdc, hBrush);
  
! 	HPEN hPen = CreatePen(PS_SOLID, 1, crCircleColor);
! 	HGDIOBJ hOldPen = SelectObject(hdc, hPen);
  
! 	OffsetRect(&rect, 1, -1);
  
! 	int midX = rect.left + ((rect.right - rect.left) / 2);
! 	int midY = rect.top + ((rect.bottom - rect.top) / 2);
  	
! 	MoveToEx(hdc, midX - 1, midY - 2, 0);
! 	LineTo(hdc, midX + 2, midY - 2);
  
! 	MoveToEx(hdc, midX - 2, midY - 1, 0);
! 	LineTo(hdc, midX + 3, midY - 1);
  
! 	MoveToEx(hdc, midX - 2, midY, 0);
! 	LineTo(hdc, midX + 3, midY);
  
! 	MoveToEx(hdc, midX - 2, midY + 1, 0);
! 	LineTo(hdc, midX + 3, midY + 1);
  
! 	MoveToEx(hdc, midX - 1, midY + 2, 0);
! 	LineTo(hdc, midX + 2, midY + 2);
! 	
! 	SelectObject(hdc, hOldPen);
! 	SelectObject(hdc, hOldBrush);
  
! 	DeleteObject(hPen);
! 	DeleteObject(hBrush);
! }
  
  static void DrawCheckmark(HDC hdc, RECT rect)
  {
  #define cxCHECKBOX        (2+9+2)
  #define cyCHECKBOX        (2+9+2)
  	
! 	// Checkmark
! 	HPEN hpNew = CreatePen(PS_SOLID, 1, RGB(0,0,0));
! 	HGDIOBJ hpOld = (HPEN)SelectObject(hdc, hpNew);
! 
! 	POINT ptCheckbox;
! 	ptCheckbox.x = rect.left;
! 	ptCheckbox.y = rect.top + ((rect.bottom - rect.top) - cyCHECKBOX) / 2;
  	
! 	MoveToEx(hdc, ptCheckbox.x +3, ptCheckbox.y+5, NULL);
! 	LineTo(hdc, ptCheckbox.x +5, ptCheckbox.y+7);
! 	LineTo(hdc, ptCheckbox.x+10, ptCheckbox.y+2);
! 
! 	MoveToEx(hdc, ptCheckbox.x +3, ptCheckbox.y+6, NULL);
! 	LineTo(hdc, ptCheckbox.x +5, ptCheckbox.y+8);
! 	LineTo(hdc, ptCheckbox.x+10, ptCheckbox.y+3);
! 
! 	MoveToEx(hdc, ptCheckbox.x +3, ptCheckbox.y+7, NULL);
! 	LineTo(hdc, ptCheckbox.x +5, ptCheckbox.y+9);
! 	LineTo(hdc, ptCheckbox.x+10, ptCheckbox.y+4);
  
! 	SelectObject(hdc, hpOld);
! 	DeleteObject(hpNew);
  }
  
  static void DrawX(HDC hdc, RECT rect)
  {
! 	// Red X
! 	static COLORREF crXColor = 0X0000FF;
  
! 	HBRUSH hbrRed = CreateSolidBrush(crXColor);
! 	HGDIOBJ hbrOld = SelectObject(hdc, hbrRed);
  
! 	HPEN hPen = CreatePen(PS_SOLID, 1, crXColor);
! 	HGDIOBJ hOldPen = SelectObject(hdc, hPen);
  
! 	OffsetRect(&rect, 3, 0);
  
! 	rect.top++;
! 	rect.bottom++;
  
! 	int nLen = 7;
  
! 	MoveToEx(hdc, rect.left, rect.top, 0);
! 	LineTo(hdc, rect.left + nLen, rect.top + nLen);
  
! 	MoveToEx(hdc, rect.left, rect.top + 1, 0);
! 	LineTo(hdc, rect.left + nLen, rect.top + nLen + 1);
  
! 	MoveToEx(hdc, rect.left, rect.top - 1, 0);
! 	LineTo(hdc, rect.left + nLen, rect.top + nLen - 1);
  
  
! 	MoveToEx(hdc, rect.left + nLen - 1, rect.top, 0);
! 	LineTo(hdc, rect.left - 1, rect.top + nLen);
  
! 	MoveToEx(hdc, rect.left + nLen - 1, rect.top + 1, 0);
! 	LineTo(hdc, rect.left - 1, rect.top + nLen + 1);
  
! 	MoveToEx(hdc, rect.left + nLen - 1, rect.top - 1, 0);
! 	LineTo(hdc, rect.left - 1, rect.top + nLen - 1);
  
! 	SelectObject(hdc, hOldPen);
! 	SelectObject(hdc, hbrOld);
! 
! 	DeleteObject(hPen);
! 	DeleteObject(hbrRed);
  }
  
  
--- 36,161 ----
   */
  static void EraseRect(HDC hdc, RECT rect)
  {
!     HBRUSH hbr = CreateSolidBrush(GetSysColor(COLOR_BTNFACE));
!     HGDIOBJ hbrOld = SelectObject(hdc, hbr);
  
!     HPEN hPen = CreatePen(PS_SOLID, 1, GetSysColor(COLOR_BTNFACE));
!     HGDIOBJ hOldPen = SelectObject(hdc, hPen);
  
!     Rectangle(hdc, rect.left, rect.top, rect.right, rect.bottom);
  
!     SelectObject(hdc, hOldPen);
!     SelectObject(hdc, hbrOld);
! 
!     DeleteObject(hPen);
!     DeleteObject(hbr);
! }	
  
  static void DrawCircle(HDC hdc, RECT rect, COLORREF crCircleColor)
  {
!     HBRUSH hBrush = CreateSolidBrush(crCircleColor);
!     HGDIOBJ hOldBrush = SelectObject(hdc, hBrush);
  
!     HPEN hPen = CreatePen(PS_SOLID, 1, crCircleColor);
!     HGDIOBJ hOldPen = SelectObject(hdc, hPen);
  
!     OffsetRect(&rect, 1, -1);
  
!     int midX = rect.left + ((rect.right - rect.left) / 2);
!     int midY = rect.top + ((rect.bottom - rect.top) / 2);
  	
!     MoveToEx(hdc, midX - 1, midY - 2, 0);
!     LineTo(hdc, midX + 2, midY - 2);
  
!     MoveToEx(hdc, midX - 2, midY - 1, 0);
!     LineTo(hdc, midX + 3, midY - 1);
  
!     MoveToEx(hdc, midX - 2, midY, 0);
!     LineTo(hdc, midX + 3, midY);
  
!     MoveToEx(hdc, midX - 2, midY + 1, 0);
!     LineTo(hdc, midX + 3, midY + 1);
  
!     MoveToEx(hdc, midX - 1, midY + 2, 0);
!     LineTo(hdc, midX + 2, midY + 2);
  
!     SelectObject(hdc, hOldPen);
!     SelectObject(hdc, hOldBrush);
! 
!     DeleteObject(hPen);
!     DeleteObject(hBrush);
! }	
  
  static void DrawCheckmark(HDC hdc, RECT rect)
  {
  #define cxCHECKBOX        (2+9+2)
  #define cyCHECKBOX        (2+9+2)
  	
!     // Checkmark
!     HPEN hpNew = CreatePen(PS_SOLID, 1, RGB(0,0,0));
!     HGDIOBJ hpOld = (HPEN)SelectObject(hdc, hpNew);
! 
!     POINT ptCheckbox;
!     ptCheckbox.x = rect.left;
!     ptCheckbox.y = rect.top + ((rect.bottom - rect.top) - cyCHECKBOX) / 2;
  	
!     MoveToEx(hdc, ptCheckbox.x +3, ptCheckbox.y+5, NULL);
!     LineTo(hdc, ptCheckbox.x +5, ptCheckbox.y+7);
!     LineTo(hdc, ptCheckbox.x+10, ptCheckbox.y+2);
! 
!     MoveToEx(hdc, ptCheckbox.x +3, ptCheckbox.y+6, NULL);
!     LineTo(hdc, ptCheckbox.x +5, ptCheckbox.y+8);
!     LineTo(hdc, ptCheckbox.x+10, ptCheckbox.y+3);
! 
!     MoveToEx(hdc, ptCheckbox.x +3, ptCheckbox.y+7, NULL);
!     LineTo(hdc, ptCheckbox.x +5, ptCheckbox.y+9);
!     LineTo(hdc, ptCheckbox.x+10, ptCheckbox.y+4);
  
!     SelectObject(hdc, hpOld);
!     DeleteObject(hpNew);
  }
  
  static void DrawX(HDC hdc, RECT rect)
  {
!     // Red X
!     static COLORREF crXColor = 0X0000FF;
  
!     HBRUSH hbrRed = CreateSolidBrush(crXColor);
!     HGDIOBJ hbrOld = SelectObject(hdc, hbrRed);
  
!     HPEN hPen = CreatePen(PS_SOLID, 1, crXColor);
!     HGDIOBJ hOldPen = SelectObject(hdc, hPen);
  
!     OffsetRect(&rect, 3, 0);
  
!     rect.top++;
!     rect.bottom++;
  
!     int nLen = 7;
  
!     MoveToEx(hdc, rect.left, rect.top, 0);
!     LineTo(hdc, rect.left + nLen, rect.top + nLen);
  
!     MoveToEx(hdc, rect.left, rect.top + 1, 0);
!     LineTo(hdc, rect.left + nLen, rect.top + nLen + 1);
  
!     MoveToEx(hdc, rect.left, rect.top - 1, 0);
!     LineTo(hdc, rect.left + nLen, rect.top + nLen - 1);
  
+     MoveToEx(hdc, rect.left + nLen - 1, rect.top, 0);
+     LineTo(hdc, rect.left - 1, rect.top + nLen);
  
!     MoveToEx(hdc, rect.left + nLen - 1, rect.top + 1, 0);
!     LineTo(hdc, rect.left - 1, rect.top + nLen + 1);
  
!     MoveToEx(hdc, rect.left + nLen - 1, rect.top - 1, 0);
!     LineTo(hdc, rect.left - 1, rect.top + nLen - 1);
  
!     SelectObject(hdc, hOldPen);
!     SelectObject(hdc, hbrOld);
  
!     DeleteObject(hPen);
!     DeleteObject(hbrRed);
  }
  
  
***************
*** 166,200 ****
   */
  void PaintStepGraphic(HWND hwnd, STEP_STATE state)
  {
! 	PAINTSTRUCT ps;
  
! 	HDC hdc = BeginPaint(hwnd, &ps);
! 	_ASSERTE(hdc);
  
! 	RECT rect;
! 	GetClientRect(hwnd, &rect);
  
! 	InflateRect(&rect, -2, -2);
  
! 	// First erase the background
! 	EraseRect(hdc, rect);
  
! 	// Draw an image that corresponds to the state
! 	switch (state) {
! 		case SS_STEP_IN_PROGRESS:	DrawCircle(hdc, rect, STEP_IN_PROGRESS_COLOR);
! 									break;
  
! 		case SS_STEP_TO_BE_DONE:	DrawCircle(hdc, rect, STEP_TO_BE_DONE_COLOR);
! 									break;
! 		
! 		case SS_STEP_FINISHED:		DrawCheckmark(hdc, rect);
! 									break;
  
- 		case SS_STEP_FAILED:		DrawX(hdc, rect);
- 									break;
- 	}
  	
! 	EndPaint(hwnd, &ps);
  }
  
  
--- 165,204 ----
   */
  void PaintStepGraphic(HWND hwnd, STEP_STATE state)
  {
!     PAINTSTRUCT ps;
! 
!     HDC hdc = BeginPaint(hwnd, &ps);
!     _ASSERTE(hdc);
  
!     RECT rect;
!     GetClientRect(hwnd, &rect);
  
!     InflateRect(&rect, -2, -2);
  
!     // First erase the background
!     EraseRect(hdc, rect);
  
!     // Draw an image that corresponds to the state
!     switch (state) {
!     case SS_STEP_IN_PROGRESS:	
! 	DrawCircle(hdc, rect, STEP_IN_PROGRESS_COLOR);
! 	break;
  
!     case SS_STEP_TO_BE_DONE:	
! 	DrawCircle(hdc, rect, STEP_TO_BE_DONE_COLOR);
! 	break;
  
!     case SS_STEP_FINISHED:		
! 	DrawCheckmark(hdc, rect);
! 	break;
  
  	
!     case SS_STEP_FAILED: 
! 	DrawX(hdc, rect);
! 	break;
!     }
! 	
!     EndPaint(hwnd, &ps);
  }
  
  
***************
*** 217,382 ****
  
  void CALLBACK PaintPageGraphic(LPWIZARD pWiz, HDC hdc, LPRECT prTarget, HPALETTE hpal)
  {
! 	static HFONT hFont = AfsAppLib_CreateFont(IDS_GRAPHIC_FONT);
! 	static HPEN hPenWhite = CreatePen(PS_SOLID, 1, clrWHITE);
! 	static HPEN hPenHighlight = CreatePen(PS_SOLID, 1, clrHIGHLIGHT);
! 	static HPEN hPenShadow = CreatePen(PS_SOLID, 1, clrSHADOW);
! 	static HPEN hPenBlack = CreatePen(PS_SOLID, 1, clrBLACK);
! 	static HPEN hPenBarIntLeft = CreatePen(PS_SOLID, 1, clrBAR_INT_LEFT);
! 	static HPEN hPenBarIntRight = CreatePen(PS_SOLID, 1, clrBAR_INT_RIGHT);
! 	static HPEN hPenArrowInterior = CreatePen(PS_SOLID, 1, clrARROW_INTERIOR);
! 
! 	// First find out where we'll be drawing things.
! 	RECT rArea;
! 	rArea.top = prTarget->bottom - cyAREA - cyBOTTOM_MARGIN;
! 	rArea.bottom = prTarget->bottom - cyBOTTOM_MARGIN;
! 	rArea.left = prTarget->left + cxLEFT_MARGIN;
! 	rArea.right = prTarget->right - cxRIGHT_MARGIN;
! 
! 	// Draw the "Current Step:" text
! 	HGDIOBJ hFontOld = SelectObject(hdc, hFont);
! 	COLORREF clrTextOld = SetTextColor (hdc, clrTEXT_CURRENT);
! 	SetBkMode (hdc, TRANSPARENT);
! 
! 	TCHAR szText[cchRESOURCE];
! 	GetResString(IDS_CURRENT_STEP, szText);
! 
! 	RECT rText = rArea;
! 	DWORD dwFlags = DT_CENTER | DT_TOP | DT_SINGLELINE;
! 	DrawTextEx (hdc, szText, lstrlen(szText), &rText, dwFlags | DT_CALCRECT, NULL);
! 
! 	rText.right = rArea.right;
! 	DrawTextEx (hdc, szText, lstrlen(szText), &rText, dwFlags, NULL);
! 
! 	// Draw the progress bar; it should look like this:
! 	// wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww   // (w=white, b=black...
! 	// whhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhb   //  h=highlight, s=shadow...
! 	// whllllllllllllllllrrrrrrrrrrrrrrrsb   //  l=left/int, r=right/int)
! 	// whllllllllllllllllrrrrrrrrrrrrrrrsb   //  l=left/int, r=right/int)
! 	// whssssssssssssssssssssssssssssssssb   //  h=highlight, s=shadow...
! 	// wbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb   //  h=highlight, s=shadow...
! 
! 	// Oh--we'll need to know where the pointer's point should go. We'll
! 	// make that be where the leftmost dot of the pointer's tip, and the
! 	// rightmost dot that's colored "l". One state 0, we want the pointer
! 	// to be all the way to the left--and on state {g_nNumStates-1}, we want
! 	// it all the way to the right
! 
! 	RECT rBar = rArea;
! 	rBar.top = rText.bottom + cyBELOW_CURRENT;
! 	rBar.bottom = rBar.top + 6;
! 
! 	RECT rBarInterior = rBar;
! 	InflateRect (&rBarInterior, -2, -2);
! 
! 	int nStepSize = (rBarInterior.right - rBarInterior.left) / (g_nNumStates-1);
! 	int xCurPos = rBarInterior.left + (g_pWiz->GetState() * nStepSize);
! 	if (!g_pWiz->GetState())
! 	   xCurPos = rBarInterior.left-1;  // don't draw *any* green
! 	else if (g_pWiz->GetState() == (int)(g_nNumStates-1))
! 	   xCurPos = rBarInterior.right-1;  // don't draw *any* red
! 
! 	// Draw that bar!
! 	HGDIOBJ hPenOld = SelectObject (hdc, hPenWhite);
! 	MoveToEx (hdc, rBar.left, rBar.bottom-1, 0);
! 	LineTo (hdc, rBar.left, rBar.top);
! 	LineTo (hdc, rBar.right, rBar.top);
! 	MoveToEx (hdc, rBar.left, rBar.bottom, 0);
! 
! 	SelectObject (hdc, hPenHighlight);
! 	MoveToEx (hdc, rBar.left+1, rBar.bottom-2, 0);
! 	LineTo (hdc, rBar.left+1, rBar.top+1);
! 	LineTo (hdc, rBar.right-1, rBar.top+1);
! 
! 	SelectObject (hdc, hPenShadow);
! 	MoveToEx (hdc, rBar.left+2, rBar.bottom-2, 0);
! 	LineTo (hdc, rBar.right-2, rBar.bottom-2);
! 	LineTo (hdc, rBar.right-2, rBar.top+1);
! 
! 	SelectObject (hdc, hPenBlack);
! 	MoveToEx (hdc, rBar.left+1, rBar.bottom-1, 0);
! 	LineTo (hdc, rBar.right-1, rBar.bottom-1);
! 	LineTo (hdc, rBar.right-1, rBar.top);
! 
! 	if (xCurPos >= rBarInterior.left) {
! 		SelectObject (hdc, hPenBarIntLeft);
! 		MoveToEx (hdc, rBarInterior.left, rBarInterior.top, 0);
! 		LineTo (hdc, xCurPos+1, rBarInterior.top);
! 		MoveToEx (hdc, rBarInterior.left, rBarInterior.top+1, 0);
! 		LineTo (hdc, xCurPos+1, rBarInterior.top+1);
! 	}
! 
! 	if (xCurPos < rBarInterior.right-1) {
! 		SelectObject (hdc, hPenBarIntRight);
! 		MoveToEx (hdc, xCurPos+1, rBarInterior.top, 0);
! 		LineTo (hdc, rBarInterior.right, rBarInterior.top);
! 		MoveToEx (hdc, xCurPos+1, rBarInterior.top+1, 0);
! 		LineTo (hdc, rBarInterior.right, rBarInterior.top+1);
! 	}
! 	SelectObject (hdc, hPenOld);
! 
! 	// Draw the arrow underneath it; it should look like this:
! 	//             wb
! 	//            whsb
! 	//           whassb
! 	//          whaaassb
! 	//         whaaaaassb
! 	//        wssssssssssb
! 	// Remember that the topmost "w" is where xCurPos is.
! 
! 	RECT rArrow;
! 	rArrow.top = rBar.bottom +1;
! 	rArrow.bottom = rArrow.top +6;
! 	rArrow.left = xCurPos -5;
! 	rArrow.right = xCurPos +7;
! 
! 	hPenOld = SelectObject (hdc, hPenWhite);
! 	MoveToEx (hdc, rArrow.left, rArrow.bottom-1, 0);
! 	LineTo (hdc, xCurPos+1, rArrow.top-1);
! 
! 	SelectObject (hdc, hPenHighlight);
! 	MoveToEx (hdc, rArrow.left+2, rArrow.bottom-2, 0);
! 	LineTo (hdc, xCurPos+1, rArrow.top);
! 
! 	SelectObject (hdc, hPenShadow);
! 	MoveToEx (hdc, rArrow.left+1, rArrow.bottom-1, 0);
! 	LineTo (hdc, rArrow.right-1, rArrow.bottom-1);
! 	MoveToEx (hdc, xCurPos+1, rArrow.top+1, 0);
! 	LineTo (hdc, rArrow.right, rArrow.bottom);
! 	MoveToEx (hdc, xCurPos+1, rArrow.top+2, 0);
! 	LineTo (hdc, rArrow.right-1, rArrow.bottom);
! 
! 	SelectObject (hdc, hPenBlack);
! 	MoveToEx (hdc, xCurPos+1, rArrow.top, 0);
! 	LineTo (hdc, rArrow.right, rArrow.bottom);
! 
! 	//             wb
! 	//            whsb
! 	//           whassb
! 	//          whaaassb
! 	//         whaaaaassb
! 	//        wssssssssssb
! 
! 	SelectObject (hdc, hPenArrowInterior);
! 	MoveToEx (hdc, xCurPos, rArrow.top+2, 0);
! 	LineTo (hdc, xCurPos+1, rArrow.top+2);
! 	MoveToEx (hdc, xCurPos-1, rArrow.top+3, 0);
! 	LineTo (hdc, xCurPos+2, rArrow.top+3);
! 	MoveToEx (hdc, xCurPos-2, rArrow.top+4, 0);
! 	LineTo (hdc, xCurPos+3, rArrow.top+4);
! 
! 	SelectObject (hdc, hPenOld);
! 
! 	// Draw the description text
! 	SetTextColor (hdc, clrTEXT_STEP);
! 	GetResString(g_StateDesc[g_pWiz->GetState()], szText);
! 
! 	rText = rArea;
! 	rText.top = rArrow.bottom + cyBELOW_ARROW;
! 	dwFlags = DT_CENTER | DT_TOP | DT_WORDBREAK;
! 	DrawTextEx (hdc, szText, lstrlen(szText), &rText, dwFlags, NULL);
! 
! 	SetTextColor (hdc, clrTextOld);
! 	SelectObject (hdc, hFontOld);
! }
  
--- 221,386 ----
  
  void CALLBACK PaintPageGraphic(LPWIZARD pWiz, HDC hdc, LPRECT prTarget, HPALETTE hpal)
  {
!     static HFONT hFont = AfsAppLib_CreateFont(IDS_GRAPHIC_FONT);
!     static HPEN hPenWhite = CreatePen(PS_SOLID, 1, clrWHITE);
!     static HPEN hPenHighlight = CreatePen(PS_SOLID, 1, clrHIGHLIGHT);
!     static HPEN hPenShadow = CreatePen(PS_SOLID, 1, clrSHADOW);
!     static HPEN hPenBlack = CreatePen(PS_SOLID, 1, clrBLACK);
!     static HPEN hPenBarIntLeft = CreatePen(PS_SOLID, 1, clrBAR_INT_LEFT);
!     static HPEN hPenBarIntRight = CreatePen(PS_SOLID, 1, clrBAR_INT_RIGHT);
!     static HPEN hPenArrowInterior = CreatePen(PS_SOLID, 1, clrARROW_INTERIOR);
! 
!     // First find out where we'll be drawing things.
!     RECT rArea;
!     rArea.top = prTarget->bottom - cyAREA - cyBOTTOM_MARGIN;
!     rArea.bottom = prTarget->bottom - cyBOTTOM_MARGIN;
!     rArea.left = prTarget->left + cxLEFT_MARGIN;
!     rArea.right = prTarget->right - cxRIGHT_MARGIN;
! 
!     // Draw the "Current Step:" text
!     HGDIOBJ hFontOld = SelectObject(hdc, hFont);
!     COLORREF clrTextOld = SetTextColor (hdc, clrTEXT_CURRENT);
!     SetBkMode (hdc, TRANSPARENT);
! 
!     TCHAR szText[cchRESOURCE];
!     GetResString(IDS_CURRENT_STEP, szText);
! 
!     RECT rText = rArea;
!     DWORD dwFlags = DT_CENTER | DT_TOP | DT_SINGLELINE;
!     DrawTextEx (hdc, szText, lstrlen(szText), &rText, dwFlags | DT_CALCRECT, NULL);
! 
!     rText.right = rArea.right;
!     DrawTextEx (hdc, szText, lstrlen(szText), &rText, dwFlags, NULL);
! 
!     // Draw the progress bar; it should look like this:
!     // wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww   // (w=white, b=black...
!     // whhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhb   //  h=highlight, s=shadow...
!     // whllllllllllllllllrrrrrrrrrrrrrrrsb   //  l=left/int, r=right/int)
!     // whllllllllllllllllrrrrrrrrrrrrrrrsb   //  l=left/int, r=right/int)
!     // whssssssssssssssssssssssssssssssssb   //  h=highlight, s=shadow...
!     // wbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb   //  h=highlight, s=shadow...
! 
!     // Oh--we'll need to know where the pointer's point should go. We'll
!     // make that be where the leftmost dot of the pointer's tip, and the
!     // rightmost dot that's colored "l". One state 0, we want the pointer
!     // to be all the way to the left--and on state {g_nNumStates-1}, we want
!     // it all the way to the right
! 
!     RECT rBar = rArea;
!     rBar.top = rText.bottom + cyBELOW_CURRENT;
!     rBar.bottom = rBar.top + 6;
! 
!     RECT rBarInterior = rBar;
!     InflateRect (&rBarInterior, -2, -2);
! 
!     int nStepSize = (rBarInterior.right - rBarInterior.left) / (g_nNumStates-1);
!     int xCurPos = rBarInterior.left + (g_pWiz->GetState() * nStepSize);
!     if (!g_pWiz->GetState())
! 	xCurPos = rBarInterior.left-1;  // don't draw *any* green
!     else if (g_pWiz->GetState() == (int)(g_nNumStates-1))
! 	xCurPos = rBarInterior.right-1;  // don't draw *any* red
! 
!     // Draw that bar!
!     HGDIOBJ hPenOld = SelectObject (hdc, hPenWhite);
!     MoveToEx (hdc, rBar.left, rBar.bottom-1, 0);
!     LineTo (hdc, rBar.left, rBar.top);
!     LineTo (hdc, rBar.right, rBar.top);
!     MoveToEx (hdc, rBar.left, rBar.bottom, 0);
! 
!     SelectObject (hdc, hPenHighlight);
!     MoveToEx (hdc, rBar.left+1, rBar.bottom-2, 0);
!     LineTo (hdc, rBar.left+1, rBar.top+1);
!     LineTo (hdc, rBar.right-1, rBar.top+1);
! 
!     SelectObject (hdc, hPenShadow);
!     MoveToEx (hdc, rBar.left+2, rBar.bottom-2, 0);
!     LineTo (hdc, rBar.right-2, rBar.bottom-2);
!     LineTo (hdc, rBar.right-2, rBar.top+1);
! 
!     SelectObject (hdc, hPenBlack);
!     MoveToEx (hdc, rBar.left+1, rBar.bottom-1, 0);
!     LineTo (hdc, rBar.right-1, rBar.bottom-1);
!     LineTo (hdc, rBar.right-1, rBar.top);
! 
!     if (xCurPos >= rBarInterior.left) {
! 	SelectObject (hdc, hPenBarIntLeft);
! 	MoveToEx (hdc, rBarInterior.left, rBarInterior.top, 0);
! 	LineTo (hdc, xCurPos+1, rBarInterior.top);
! 	MoveToEx (hdc, rBarInterior.left, rBarInterior.top+1, 0);
! 	LineTo (hdc, xCurPos+1, rBarInterior.top+1);
!     }
! 
!     if (xCurPos < rBarInterior.right-1) {
! 	SelectObject (hdc, hPenBarIntRight);
! 	MoveToEx (hdc, xCurPos+1, rBarInterior.top, 0);
! 	LineTo (hdc, rBarInterior.right, rBarInterior.top);
! 	MoveToEx (hdc, xCurPos+1, rBarInterior.top+1, 0);
! 	LineTo (hdc, rBarInterior.right, rBarInterior.top+1);
!     }
!     SelectObject (hdc, hPenOld);
! 
!     // Draw the arrow underneath it; it should look like this:
!     //             wb
!     //            whsb
!     //           whassb
!     //          whaaassb
!     //         whaaaaassb
!     //        wssssssssssb
!     // Remember that the topmost "w" is where xCurPos is.
! 
!     RECT rArrow;
!     rArrow.top = rBar.bottom +1;
!     rArrow.bottom = rArrow.top +6;
!     rArrow.left = xCurPos -5;
!     rArrow.right = xCurPos +7;
! 
!     hPenOld = SelectObject (hdc, hPenWhite);
!     MoveToEx (hdc, rArrow.left, rArrow.bottom-1, 0);
!     LineTo (hdc, xCurPos+1, rArrow.top-1);
! 
!     SelectObject (hdc, hPenHighlight);
!     MoveToEx (hdc, rArrow.left+2, rArrow.bottom-2, 0);
!     LineTo (hdc, xCurPos+1, rArrow.top);
! 
!     SelectObject (hdc, hPenShadow);
!     MoveToEx (hdc, rArrow.left+1, rArrow.bottom-1, 0);
!     LineTo (hdc, rArrow.right-1, rArrow.bottom-1);
!     MoveToEx (hdc, xCurPos+1, rArrow.top+1, 0);
!     LineTo (hdc, rArrow.right, rArrow.bottom);
!     MoveToEx (hdc, xCurPos+1, rArrow.top+2, 0);
!     LineTo (hdc, rArrow.right-1, rArrow.bottom);
! 
!     SelectObject (hdc, hPenBlack);
!     MoveToEx (hdc, xCurPos+1, rArrow.top, 0);
!     LineTo (hdc, rArrow.right, rArrow.bottom);
! 
!     //             wb
!     //            whsb
!     //           whassb
!     //          whaaassb
!     //         whaaaaassb
!     //        wssssssssssb
! 
!     SelectObject (hdc, hPenArrowInterior);
!     MoveToEx (hdc, xCurPos, rArrow.top+2, 0);
!     LineTo (hdc, xCurPos+1, rArrow.top+2);
!     MoveToEx (hdc, xCurPos-1, rArrow.top+3, 0);
!     LineTo (hdc, xCurPos+2, rArrow.top+3);
!     MoveToEx (hdc, xCurPos-2, rArrow.top+4, 0);
!     LineTo (hdc, xCurPos+3, rArrow.top+4);
! 
!     SelectObject (hdc, hPenOld);
! 
!     // Draw the description text
!     SetTextColor (hdc, clrTEXT_STEP);
!     GetResString(g_StateDesc[g_pWiz->GetState()], szText);
! 
!     rText = rArea;
!     rText.top = rArrow.bottom + cyBELOW_ARROW;
!     dwFlags = DT_CENTER | DT_TOP | DT_WORDBREAK;
!     DrawTextEx (hdc, szText, lstrlen(szText), &rText, dwFlags, NULL);
! 
!     SetTextColor (hdc, clrTextOld);
!     SelectObject (hdc, hFontOld);
! }	
  
Index: openafs/src/WINNT/afssvrcfg/help.cpp
diff -c openafs/src/WINNT/afssvrcfg/help.cpp:1.2 openafs/src/WINNT/afssvrcfg/help.cpp:1.2.32.1
*** openafs/src/WINNT/afssvrcfg/help.cpp:1.2	Sat Nov  4 05:01:52 2000
--- openafs/src/WINNT/afssvrcfg/help.cpp	Tue Dec 26 15:22:28 2006
***************
*** 118,194 ****
  };
  
  static DWORD IDH_BACKUP_SERVER_CTX_HELP[] = {
! 	IDC_CONFIG_BACKUP_SERVER,		IDH_CONFIG_BACKUP_SERVER,
! 	IDC_DONT_CONFIG_BACKUP_SERVER,	IDH_DONT_CONFIG_BACKUP_SERVER,
      0,                              0
  };
  
  static DWORD IDH_FILE_SERVER_CTX_HELP[] = {
! 	IDC_SHOULD_CONFIG_FILE_SERVER,		IDH_SHOULD_CONFIG_FILE_SERVER,
! 	IDC_DONT_CONFIG_FILE_SERVER,		IDH_DONT_CONFIG_FILE_SERVER,
      0,                                  0
  };
  
  static DWORD IDH_CELL_AND_SERVER_INFO_CTX_HELP[] = {
! 	IDC_JOIN_EXISTING_CELL,	IDH_JOIN_EXISTING_CELL,
! 	IDC_FIRST_SERVER,		IDH_FIRST_SERVER,
! 	IDC_CELL_NAME,			IDH_CELL_NAME,
! 	IDC_PRINCIPAL,			IDH_PRINCIPAL,
! 	IDC_SERVER_PW,			IDH_SERVER_PW,
! 	IDC_VERIFY_PW,			IDH_VERIFY_PW,
      0,                      0
  };
  
  static DWORD IDH_FIRST_SERVER_CTX_HELP[] = {
! 	IDC_ADMIN_NAME,			IDH_ADMIN_NAME,
! 	IDC_ADMIN_PW,			IDH_ADMIN_PW,
! 	IDC_VERIFY_ADMIN_PW,	IDH_VERIFY_ADMIN_PW,
! 	IDC_USE_NEXT_UID,		IDH_USE_NEXT_UID,
! 	IDC_USE_THIS_UID,		IDH_USE_THIS_UID,
! 	IDC_AFS_UID,			IDH_AFS_UID,
! 	IDC_AFS_UID_SPINNER,	IDH_AFS_UID_SPINNER,
      0,                      0
! };
  
  static DWORD IDH_EXISTING_CELL_CTX_HELP[] = {
! 	IDC_ADMIN_NAME,		IDH_ADMIN_NAME2,
! 	IDC_ADMIN_PW,		IDH_ADMIN_PW2,
! 	IDC_HOSTNAME,		IDH_HOSTNAME,
      0,                  0
  };
  
  static DWORD IDH_DB_SERVER_CTX_HELP[] = {
! 	IDC_CONFIG_DB_SERVER,		IDH_CONFIG_DB_SERVER,
! 	IDC_DONT_CONFIG_DB_SERVER,	IDH_DONT_CONFIG_DB_SERVER,
! 	IDC_SYS_CONTROL_MACHINE,	IDH_SYS_CONTROL_MACHINE,
      0,                          0
  };
  
  static DWORD IDH_PARTITION_CTX_HELP[] = {
! 	IDC_CREATE_PARTITION,		IDH_CREATE_PARTITION,
! 	IDC_DRIVE_LIST,				IDH_DRIVE_LIST,
! 	IDC_PARTITION_NAME,			IDH_PARTITION_NAME,
! 	IDC_DONT_CREATE_PARTITION,	IDH_DONT_CREATE_PARTITION,
      0,                          0
  };
  
  static DWORD IDH_ROOT_VOLUMES_CTX_HELP[] = {
! 	IDC_CREATE_ROOT_VOLUMES,		IDH_CREATE_VOLUME,
! 	IDC_DONT_CREATE_ROOT_VOLUMES,	IDH_DONT_CREATE_ROOT_VOLUMES,
      0,                              0
  };
  
  static DWORD IDH_REPLICATION_CTX_HELP[] = {
! 	IDC_REPLICATE,		IDH_REPLICATE,
! 	IDC_DONT_REPLICATE,	IDH_DONT_REPLICATE,
      0,                  0
  };
  
  static DWORD IDH_SYS_CONTROL_CTX_HELP[] = {
! 	IDC_SYS_CONTROL_SERVER,		IDH_SYS_CONTROL_SERVER,
! 	IDC_SYS_CONTROL_CLIENT,		IDH_SYS_CONTROL_CLIENT,
! 	IDC_SYS_CONTROL_MACHINE,	IDH_SYS_CONTROL_MACHINE2,
! 	IDC_DONT_CONFIGURE,			IDH_DONT_CONFIGURE,
      0,                          0
  };
  
--- 118,194 ----
  };
  
  static DWORD IDH_BACKUP_SERVER_CTX_HELP[] = {
!     IDC_CONFIG_BACKUP_SERVER,		IDH_CONFIG_BACKUP_SERVER,
!     IDC_DONT_CONFIG_BACKUP_SERVER,	IDH_DONT_CONFIG_BACKUP_SERVER,
      0,                              0
  };
  
  static DWORD IDH_FILE_SERVER_CTX_HELP[] = {
!     IDC_SHOULD_CONFIG_FILE_SERVER,		IDH_SHOULD_CONFIG_FILE_SERVER,
!     IDC_DONT_CONFIG_FILE_SERVER,		IDH_DONT_CONFIG_FILE_SERVER,
      0,                                  0
  };
  
  static DWORD IDH_CELL_AND_SERVER_INFO_CTX_HELP[] = {
!     IDC_JOIN_EXISTING_CELL,	IDH_JOIN_EXISTING_CELL,
!     IDC_FIRST_SERVER,		IDH_FIRST_SERVER,
!     IDC_CELL_NAME,			IDH_CELL_NAME,
!     IDC_PRINCIPAL,			IDH_PRINCIPAL,
!     IDC_SERVER_PW,			IDH_SERVER_PW,
!     IDC_VERIFY_PW,			IDH_VERIFY_PW,
      0,                      0
  };
  
  static DWORD IDH_FIRST_SERVER_CTX_HELP[] = {
!     IDC_ADMIN_NAME,			IDH_ADMIN_NAME,
!     IDC_ADMIN_PW,			IDH_ADMIN_PW,
!     IDC_VERIFY_ADMIN_PW,	IDH_VERIFY_ADMIN_PW,
!     IDC_USE_NEXT_UID,		IDH_USE_NEXT_UID,
!     IDC_USE_THIS_UID,		IDH_USE_THIS_UID,
!     IDC_AFS_UID,			IDH_AFS_UID,
!     IDC_AFS_UID_SPINNER,	IDH_AFS_UID_SPINNER,
      0,                      0
! };	
  
  static DWORD IDH_EXISTING_CELL_CTX_HELP[] = {
!     IDC_ADMIN_NAME,		IDH_ADMIN_NAME2,
!     IDC_ADMIN_PW,		IDH_ADMIN_PW2,
!     IDC_HOSTNAME,		IDH_HOSTNAME,
      0,                  0
  };
  
  static DWORD IDH_DB_SERVER_CTX_HELP[] = {
!     IDC_CONFIG_DB_SERVER,		IDH_CONFIG_DB_SERVER,
!     IDC_DONT_CONFIG_DB_SERVER,	IDH_DONT_CONFIG_DB_SERVER,
!     IDC_SYS_CONTROL_MACHINE,	IDH_SYS_CONTROL_MACHINE,
      0,                          0
  };
  
  static DWORD IDH_PARTITION_CTX_HELP[] = {
!     IDC_CREATE_PARTITION,		IDH_CREATE_PARTITION,
!     IDC_DRIVE_LIST,				IDH_DRIVE_LIST,
!     IDC_PARTITION_NAME,			IDH_PARTITION_NAME,
!     IDC_DONT_CREATE_PARTITION,	IDH_DONT_CREATE_PARTITION,
      0,                          0
  };
  
  static DWORD IDH_ROOT_VOLUMES_CTX_HELP[] = {
!     IDC_CREATE_ROOT_VOLUMES,		IDH_CREATE_VOLUME,
!     IDC_DONT_CREATE_ROOT_VOLUMES,	IDH_DONT_CREATE_ROOT_VOLUMES,
      0,                              0
  };
  
  static DWORD IDH_REPLICATION_CTX_HELP[] = {
!     IDC_REPLICATE,		IDH_REPLICATE,
!     IDC_DONT_REPLICATE,	IDH_DONT_REPLICATE,
      0,                  0
  };
  
  static DWORD IDH_SYS_CONTROL_CTX_HELP[] = {
!     IDC_SYS_CONTROL_SERVER,		IDH_SYS_CONTROL_SERVER,
!     IDC_SYS_CONTROL_CLIENT,		IDH_SYS_CONTROL_CLIENT,
!     IDC_SYS_CONTROL_MACHINE,	IDH_SYS_CONTROL_MACHINE2,
!     IDC_DONT_CONFIGURE,			IDH_DONT_CONFIGURE,
      0,                          0
  };
  
***************
*** 256,293 ****
  */
  
  static DWORD IDH_CREATE_PARTITION_CTX_HELP[] = {
! 	IDC_DRIVE_LIST,			IDH_DRIVE_LIST,
! 	IDC_PARTITION_NAME,		IDH_CT_PARTITION_NAME,
! 	IDC_CREATE,				IDH_CREATE,
! 	IDC_CLOSE,				IDH_CLOSE,
      0,                      0
  };
  
  static DWORD IDH_PARTITIONS_CTX_HELP[] = {
! 	IDC_PARTITION_LIST,		IDH_PARTITIONS_LIST,
! 	IDC_CREATE_PARTITIONS,	IDH_CREATE_PARTITIONS,
! 	IDC_SALVAGE,			IDH_SALVAGE,
! 	IDC_REFORMAT,			IDH_REFORMAT,
! 	IDC_REMOVE,				IDH_REMOVE,
      0,                      0
  };
  
  static DWORD IDH_SERVICES_CTX_HELP[] = {
! 	IDC_FS_SERVICE,		IDH_FS_SERVICE,
! 	IDC_DB_SERVICE,		IDH_DB_SERVICE,
! 	IDC_DB_DETAILS,		IDH_DB_DETAILS,
! 	IDC_BK_SERVICE,		IDH_BK_SERVICE,
! 	IDC_SCS,			IDH_SCS,
! 	IDC_SCC,			IDH_SCC,
! 	IDC_SC_MACHINE,		IDH_SC_MACHINE,
      0,                  0
  };
  
  static DWORD IDH_ADMIN_INFO_CTX_HELP[] = {
! 	IDC_ADMIN_NAME,		IDH_CT_ADMIN_NAME,
! 	IDC_ADMIN_PW,		IDH_CT_ADMIN_PW,
! 	IDC_HOSTNAME,		IDH_CT_HOSTNAME,
! 	IDOK,				IDH_CONFIG,
      0,                  0
  };
  
--- 256,293 ----
  */
  
  static DWORD IDH_CREATE_PARTITION_CTX_HELP[] = {
!     IDC_DRIVE_LIST,			IDH_DRIVE_LIST,
!     IDC_PARTITION_NAME,		IDH_CT_PARTITION_NAME,
!     IDC_CREATE,				IDH_CREATE,
!     IDC_CLOSE,				IDH_CLOSE,
      0,                      0
  };
  
  static DWORD IDH_PARTITIONS_CTX_HELP[] = {
!     IDC_PARTITION_LIST,		IDH_PARTITIONS_LIST,
!     IDC_CREATE_PARTITIONS,	IDH_CREATE_PARTITIONS,
!     IDC_SALVAGE,			IDH_SALVAGE,
!     IDC_REFORMAT,			IDH_REFORMAT,
!     IDC_REMOVE,				IDH_REMOVE,
      0,                      0
  };
  
  static DWORD IDH_SERVICES_CTX_HELP[] = {
!     IDC_FS_SERVICE,		IDH_FS_SERVICE,
!     IDC_DB_SERVICE,		IDH_DB_SERVICE,
!     IDC_DB_DETAILS,		IDH_DB_DETAILS,
!     IDC_BK_SERVICE,		IDH_BK_SERVICE,
!     IDC_SCS,			IDH_SCS,
!     IDC_SCC,			IDH_SCC,
!     IDC_SC_MACHINE,		IDH_SC_MACHINE,
      0,                  0
  };
  
  static DWORD IDH_ADMIN_INFO_CTX_HELP[] = {
!     IDC_ADMIN_NAME,		IDH_CT_ADMIN_NAME,
!     IDC_ADMIN_PW,		IDH_CT_ADMIN_PW,
!     IDC_HOSTNAME,		IDH_CT_HOSTNAME,
!     IDOK,				IDH_CONFIG,
      0,                  0
  };
  
***************
*** 342,370 ****
   */
  void RegisterConfigToolHelp()
  {
! 	AfsAppLib_RegisterHelp(IDD_CREATE_PARTITION, IDH_CREATE_PARTITION_CTX_HELP, IDH_CREATE_PARTITION_DLG);
! 	AfsAppLib_RegisterHelp(IDD_PARTITIONS_PAGE, IDH_PARTITIONS_CTX_HELP, IDH_PARTITIONS_PAGE);
! 	AfsAppLib_RegisterHelp(IDD_SERVICES_PAGE, IDH_SERVICES_CTX_HELP, IDH_SERVICES_PAGE);
! 	AfsAppLib_RegisterHelp(IDD_ADMIN_INFO, IDH_ADMIN_INFO_CTX_HELP, IDH_ADMIN_INFO_DLG);
!    	AfsAppLib_RegisterHelp(IDD_GET_PW, IDH_GET_PW_CTX_HELP, IDH_GET_PW_DLG);
!    	AfsAppLib_RegisterHelp(IDD_SALVAGE, IDH_SALVAGE_CTX_HELP, IDH_SALVAGE_DLG);
!    	AfsAppLib_RegisterHelp(IDD_SALVAGE_RESULTS, IDH_SALVAGE_RESULTS_CTX_HELP, IDH_SALVAGE_RESULTS_DLG);
  }
  
  void RegisterWizardHelp()
  {
! 	AfsAppLib_RegisterHelp(IDD_INTRO_PAGE, IDH_INTRO_CTX_HELP, IDH_INTRO_PAGE);	
      AfsAppLib_RegisterHelp(IDD_INFO_PAGE, IDH_CELL_AND_SERVER_INFO_CTX_HELP, IDH_INFO_PAGE);
! 	AfsAppLib_RegisterHelp(IDD_INFO_PAGE2_FIRST_SERVER, IDH_FIRST_SERVER_CTX_HELP, IDH_FIRST_SERVER_PAGE);
! 	AfsAppLib_RegisterHelp(IDD_INFO_PAGE2_NOT_FIRST_SERVER, IDH_EXISTING_CELL_CTX_HELP, IDH_EXISTING_CELL_PAGE);
! 	AfsAppLib_RegisterHelp(IDD_FILE_SERVER_PAGE, IDH_FILE_SERVER_CTX_HELP, IDH_FILE_SERVER_PAGE);
! 	AfsAppLib_RegisterHelp(IDD_DB_SERVER_PAGE, IDH_DB_SERVER_CTX_HELP, IDH_DB_SERVER_PAGE);
! 	AfsAppLib_RegisterHelp(IDD_BACKUP_SERVER_PAGE, IDH_BACKUP_SERVER_CTX_HELP, IDH_BACKUP_SERVER_PAGE);
! 	AfsAppLib_RegisterHelp(IDD_PARTITION_PAGE, IDH_PARTITION_CTX_HELP, IDH_PARTITION_PAGE);
! 	AfsAppLib_RegisterHelp(IDD_ROOT_VOLUMES_PAGE, IDH_ROOT_VOLUMES_CTX_HELP, IDH_ROOT_VOLUMES_PAGE);
! 	AfsAppLib_RegisterHelp(IDD_REPLICATION_PAGE, IDH_REPLICATION_CTX_HELP, IDH_REPLICATION_PAGE);
! 	AfsAppLib_RegisterHelp(IDD_SYS_CONTROL_PAGE, IDH_SYS_CONTROL_CTX_HELP, IDH_SYS_CONTROL_PAGE);
!    	AfsAppLib_RegisterHelp(IDD_GET_PW, IDH_GET_PW_CTX_HELP, IDH_GET_PW_DLG);
      AfsAppLib_RegisterHelp(IDD_CONFIG_SERVER_PAGE, IDH_CONFIG_SERVER_CTX_HELP, IDH_CONFIG_SERVER_PAGE);	
  }
  
--- 342,370 ----
   */
  void RegisterConfigToolHelp()
  {
!     AfsAppLib_RegisterHelp(IDD_CREATE_PARTITION, IDH_CREATE_PARTITION_CTX_HELP, IDH_CREATE_PARTITION_DLG);
!     AfsAppLib_RegisterHelp(IDD_PARTITIONS_PAGE, IDH_PARTITIONS_CTX_HELP, IDH_PARTITIONS_PAGE);
!     AfsAppLib_RegisterHelp(IDD_SERVICES_PAGE, IDH_SERVICES_CTX_HELP, IDH_SERVICES_PAGE);
!     AfsAppLib_RegisterHelp(IDD_ADMIN_INFO, IDH_ADMIN_INFO_CTX_HELP, IDH_ADMIN_INFO_DLG);
!     AfsAppLib_RegisterHelp(IDD_GET_PW, IDH_GET_PW_CTX_HELP, IDH_GET_PW_DLG);
!     AfsAppLib_RegisterHelp(IDD_SALVAGE, IDH_SALVAGE_CTX_HELP, IDH_SALVAGE_DLG);
!     AfsAppLib_RegisterHelp(IDD_SALVAGE_RESULTS, IDH_SALVAGE_RESULTS_CTX_HELP, IDH_SALVAGE_RESULTS_DLG);
  }
  
  void RegisterWizardHelp()
  {
!     AfsAppLib_RegisterHelp(IDD_INTRO_PAGE, IDH_INTRO_CTX_HELP, IDH_INTRO_PAGE);	
      AfsAppLib_RegisterHelp(IDD_INFO_PAGE, IDH_CELL_AND_SERVER_INFO_CTX_HELP, IDH_INFO_PAGE);
!     AfsAppLib_RegisterHelp(IDD_INFO_PAGE2_FIRST_SERVER, IDH_FIRST_SERVER_CTX_HELP, IDH_FIRST_SERVER_PAGE);
!     AfsAppLib_RegisterHelp(IDD_INFO_PAGE2_NOT_FIRST_SERVER, IDH_EXISTING_CELL_CTX_HELP, IDH_EXISTING_CELL_PAGE);
!     AfsAppLib_RegisterHelp(IDD_FILE_SERVER_PAGE, IDH_FILE_SERVER_CTX_HELP, IDH_FILE_SERVER_PAGE);
!     AfsAppLib_RegisterHelp(IDD_DB_SERVER_PAGE, IDH_DB_SERVER_CTX_HELP, IDH_DB_SERVER_PAGE);
!     AfsAppLib_RegisterHelp(IDD_BACKUP_SERVER_PAGE, IDH_BACKUP_SERVER_CTX_HELP, IDH_BACKUP_SERVER_PAGE);
!     AfsAppLib_RegisterHelp(IDD_PARTITION_PAGE, IDH_PARTITION_CTX_HELP, IDH_PARTITION_PAGE);
!     AfsAppLib_RegisterHelp(IDD_ROOT_VOLUMES_PAGE, IDH_ROOT_VOLUMES_CTX_HELP, IDH_ROOT_VOLUMES_PAGE);
!     AfsAppLib_RegisterHelp(IDD_REPLICATION_PAGE, IDH_REPLICATION_CTX_HELP, IDH_REPLICATION_PAGE);
!     AfsAppLib_RegisterHelp(IDD_SYS_CONTROL_PAGE, IDH_SYS_CONTROL_CTX_HELP, IDH_SYS_CONTROL_PAGE);
!     AfsAppLib_RegisterHelp(IDD_GET_PW, IDH_GET_PW_CTX_HELP, IDH_GET_PW_DLG);
      AfsAppLib_RegisterHelp(IDD_CONFIG_SERVER_PAGE, IDH_CONFIG_SERVER_CTX_HELP, IDH_CONFIG_SERVER_PAGE);	
  }
  
Index: openafs/src/WINNT/afssvrcfg/info2_page.cpp
diff -c openafs/src/WINNT/afssvrcfg/info2_page.cpp:1.2 openafs/src/WINNT/afssvrcfg/info2_page.cpp:1.2.32.1
*** openafs/src/WINNT/afssvrcfg/info2_page.cpp:1.2	Sat Nov  4 05:01:52 2000
--- openafs/src/WINNT/afssvrcfg/info2_page.cpp	Tue Dec 26 15:22:28 2006
***************
*** 58,115 ****
      if (WizStep_Common_DlgProc (hRHS, msg, wp, lp))
          return FALSE;
  
! 	switch (msg) {
! 		case WM_INITDIALOG:
! 			OnInitDialog(hRHS);
! 			break;
! 
! 		case WM_COMMAND:
! 			switch (LOWORD(wp)) {
! 				case IDC_WIZARD:
! 					if (HIWORD(wp) == wcIS_STATE_DISABLED) {
! 						int nState = g_pWiz->GetState();
! 						
! 						// Disable step 3 if we are not the first server
! 						if (nState == sidSTEP_THREE)
! 							return !g_CfgData.bFirstServer;
! 
! 						// Disable step 4 if we are the first server
! 						if (nState == sidSTEP_FOUR)
! 							return g_CfgData.bFirstServer;
! 					}
! 					break;
! 
! 				case IDNEXT:
! 					SavePageInfo();
! 					g_pWiz->SetState (sidSTEP_FIVE);
! 					break;
! 
! 				case IDBACK:
! 					SavePageInfo();
! 					g_pWiz->SetState (sidSTEP_TWO);
! 					break;
! 
! 				case IDC_USE_NEXT_UID:
! 					UseNextUid(TRUE);
! 					CheckEnableButtons();
! 					break;
! 
! 				case IDC_USE_THIS_UID:
! 					UseNextUid(FALSE);
! 					CheckEnableButtons();
! 					break;
! 
! 				case IDC_ADMIN_NAME:
! 				case IDC_ADMIN_PW:
! 				case IDC_VERIFY_ADMIN_PW:
! 				case IDC_HOSTNAME:
! 					if (HIWORD(wp) == EN_CHANGE)
! 						CheckEnableButtons();
! 					break;
  
! 			}
! 		break;
!     }
  
      return FALSE;
  }
--- 58,115 ----
      if (WizStep_Common_DlgProc (hRHS, msg, wp, lp))
          return FALSE;
  
!     switch (msg) {
!     case WM_INITDIALOG:
! 	OnInitDialog(hRHS);
! 	break;
! 
!     case WM_COMMAND:
! 	switch (LOWORD(wp)) {
! 	case IDC_WIZARD:
! 	    if (HIWORD(wp) == wcIS_STATE_DISABLED) {
! 		int nState = g_pWiz->GetState();
! 
! 		// Disable step 3 if we are not the first server
! 		if (nState == sidSTEP_THREE)
! 		    return !g_CfgData.bFirstServer;
! 
! 		// Disable step 4 if we are the first server
! 		if (nState == sidSTEP_FOUR)
! 		    return g_CfgData.bFirstServer;
! 	    }
! 	    break;
! 
! 	case IDNEXT:
! 	    SavePageInfo();
! 	    g_pWiz->SetState (sidSTEP_FIVE);
! 	    break;
! 
! 	case IDBACK:
! 	    SavePageInfo();
! 	    g_pWiz->SetState (sidSTEP_TWO);
! 	    break;
! 
! 	case IDC_USE_NEXT_UID:
! 	    UseNextUid(TRUE);
! 	    CheckEnableButtons();
! 	    break;
! 
! 	case IDC_USE_THIS_UID:
! 	    UseNextUid(FALSE);
! 	    CheckEnableButtons();
! 	    break;
! 
! 	case IDC_ADMIN_NAME:
! 	case IDC_ADMIN_PW:
! 	case IDC_VERIFY_ADMIN_PW:
! 	case IDC_HOSTNAME:
! 	    if (HIWORD(wp) == EN_CHANGE)
! 		CheckEnableButtons();
! 	    break;
  
! 	}
! 	break;
!     }	
  
      return FALSE;
  }
***************
*** 125,139 ****
   */
  static void OnInitDialog(HWND hwndDlg)
  {
! 	hDlg = hwndDlg;
  
! 	g_pWiz->EnableButtons(BACK_BUTTON);
  
! 	SetUpDownRange(hDlg, IDC_AFS_UID_SPINNER, MIN_AFS_UID, MAX_AFS_UID);
  
! 	ShowPageInfo();
  
! 	g_pWiz->SetDefaultControl(IDC_ADMIN_NAME);
  }
  
  
--- 125,139 ----
   */
  static void OnInitDialog(HWND hwndDlg)
  {
!     hDlg = hwndDlg;
  
!     g_pWiz->EnableButtons(BACK_BUTTON);
  
!     SetUpDownRange(hDlg, IDC_AFS_UID_SPINNER, MIN_AFS_UID, MAX_AFS_UID);
  
!     ShowPageInfo();
  
!     g_pWiz->SetDefaultControl(IDC_ADMIN_NAME);
  }
  
  
***************
*** 142,214 ****
   *
   */
  static void CheckEnableButtons()
! {
! 	BOOL bDisable = FALSE;
  
! 	TCHAR szDummy[cchRESOURCE];
! 	TCHAR szPW[cchRESOURCE];
! 	TCHAR szVerifyPW[cchRESOURCE];
  
! 	bDisable |= lstrlen(GetWndText(hDlg, IDC_ADMIN_NAME, szDummy)) == 0;
  
! 	bDisable |= lstrlen(GetWndText(hDlg, IDC_ADMIN_PW, szPW)) == 0;
  
! 	if (IsWindowEnabled(GetDlgItem(hDlg, IDC_VERIFY_ADMIN_PW))) {
! 		GetWndText(hDlg, IDC_VERIFY_ADMIN_PW, szVerifyPW);
! 		bDisable |= !lstrlen(szVerifyPW) || lstrcmp(szPW, szVerifyPW);
! 	}
  
! 	if (IsWindowEnabled(GetDlgItem(hDlg, IDC_ADMIN_UID)))
! 		bDisable |= lstrlen(GetWndText(hDlg, IDC_ADMIN_UID, szDummy)) == 0;
  
! 	if (IsWindowEnabled(GetDlgItem(hDlg, IDC_HOSTNAME)))
! 		bDisable |= lstrlen(GetWndText(hDlg, IDC_HOSTNAME, szDummy)) == 0;
  
! 	if (bDisable)
! 		g_pWiz->EnableButtons(BACK_BUTTON);
! 	else
! 		g_pWiz->EnableButtons(BACK_BUTTON | NEXT_BUTTON);
! }
  
  static void SavePageInfo()
  {
! 	TCHAR szText[cchRESOURCE];
  	
! 	lstrncpy(g_CfgData.szAdminName, GetWndText(hDlg, IDC_ADMIN_NAME, szText), MAX_ADMIN_NAME_LEN);
! 	lstrncpy(g_CfgData.szAdminPW, GetWndText(hDlg, IDC_ADMIN_PW, szText), MAX_ADMIN_PW_LEN);
! 
! 	if (g_pWiz->GetState() == FIRST_SERVER_STEP) {
! 		g_CfgData.bUseNextUid = IsButtonChecked(hDlg, IDC_USE_NEXT_UID);
! 		if (!g_CfgData.bUseNextUid)
! 			lstrncpy(g_CfgData.szAdminUID, GetWndText(hDlg, IDC_ADMIN_UID, szText), MAX_UID_LEN);
! 	}
  
! 	if (g_pWiz->GetState() == NOT_FIRST_SERVER_STEP)
! 		lstrncpy(g_CfgData.szCellServDbHostname, GetWndText(hDlg, IDC_HOSTNAME, szText), MAX_MACHINE_NAME_LEN);
! }
  
  static void ShowPageInfo()
  {
! 	SetWndText(hDlg, IDC_ADMIN_NAME, g_CfgData.szAdminName);
! 	SetWndText(hDlg, IDC_ADMIN_PW, g_CfgData.szAdminPW);
! 	SetWndText(hDlg, IDC_VERIFY_ADMIN_PW, g_CfgData.szAdminPW);
! 	SetWndText(hDlg, IDC_HOSTNAME, g_CfgData.szCellServDbHostname);
! 
! 	if (g_pWiz->GetState() == FIRST_SERVER_STEP) {
! 		if (g_CfgData.bUseNextUid)
! 			SetCheck(hDlg, IDC_USE_NEXT_UID);
! 		else
! 			SetCheck(hDlg, IDC_USE_THIS_UID);
! 		UseNextUid(g_CfgData.bUseNextUid);
! 		SetWndText(hDlg, IDC_ADMIN_UID, g_CfgData.szAdminUID);
! 	}
  }
  
  static void UseNextUid(BOOL bUseNext)
  {
! 	ENABLE_STATE es = bUseNext ? ES_DISABLE : ES_ENABLE;
  	
! 	SetEnable(hDlg, IDC_ADMIN_UID, es);
! 	SetEnable(hDlg, IDC_AFS_UID_SPINNER, es);
  }
  
--- 142,214 ----
   *
   */
  static void CheckEnableButtons()
! {	
!     BOOL bDisable = FALSE;
  
!     TCHAR szDummy[cchRESOURCE];
!     TCHAR szPW[cchRESOURCE];
!     TCHAR szVerifyPW[cchRESOURCE];
  
!     bDisable |= lstrlen(GetWndText(hDlg, IDC_ADMIN_NAME, szDummy)) == 0;
  
!     bDisable |= lstrlen(GetWndText(hDlg, IDC_ADMIN_PW, szPW)) == 0;
  
!     if (IsWindowEnabled(GetDlgItem(hDlg, IDC_VERIFY_ADMIN_PW))) {
! 	GetWndText(hDlg, IDC_VERIFY_ADMIN_PW, szVerifyPW);
! 	bDisable |= !lstrlen(szVerifyPW) || lstrcmp(szPW, szVerifyPW);
!     }
  
!     if (IsWindowEnabled(GetDlgItem(hDlg, IDC_ADMIN_UID)))
! 	bDisable |= lstrlen(GetWndText(hDlg, IDC_ADMIN_UID, szDummy)) == 0;
  
!     if (IsWindowEnabled(GetDlgItem(hDlg, IDC_HOSTNAME)))
! 	bDisable |= lstrlen(GetWndText(hDlg, IDC_HOSTNAME, szDummy)) == 0;
  
!     if (bDisable)
! 	g_pWiz->EnableButtons(BACK_BUTTON);
!     else
! 	g_pWiz->EnableButtons(BACK_BUTTON | NEXT_BUTTON);
! }	
  
  static void SavePageInfo()
  {
!     TCHAR szText[cchRESOURCE];
  	
!     lstrncpy(g_CfgData.szAdminName, GetWndText(hDlg, IDC_ADMIN_NAME, szText), MAX_ADMIN_NAME_LEN);
!     lstrncpy(g_CfgData.szAdminPW, GetWndText(hDlg, IDC_ADMIN_PW, szText), MAX_ADMIN_PW_LEN);
  
!     if (g_pWiz->GetState() == FIRST_SERVER_STEP) {
! 	g_CfgData.bUseNextUid = IsButtonChecked(hDlg, IDC_USE_NEXT_UID);
! 	if (!g_CfgData.bUseNextUid)
! 	    lstrncpy(g_CfgData.szAdminUID, GetWndText(hDlg, IDC_ADMIN_UID, szText), MAX_UID_LEN);
!     }	
! 
!     if (g_pWiz->GetState() == NOT_FIRST_SERVER_STEP)
! 	lstrncpy(g_CfgData.szCellServDbHostname, GetWndText(hDlg, IDC_HOSTNAME, szText), MAX_MACHINE_NAME_LEN);
! }	
  
  static void ShowPageInfo()
  {
!     SetWndText(hDlg, IDC_ADMIN_NAME, g_CfgData.szAdminName);
!     SetWndText(hDlg, IDC_ADMIN_PW, g_CfgData.szAdminPW);
!     SetWndText(hDlg, IDC_VERIFY_ADMIN_PW, g_CfgData.szAdminPW);
!     SetWndText(hDlg, IDC_HOSTNAME, g_CfgData.szCellServDbHostname);
! 
!     if (g_pWiz->GetState() == FIRST_SERVER_STEP) {
! 	if (g_CfgData.bUseNextUid)
! 	    SetCheck(hDlg, IDC_USE_NEXT_UID);
! 	else
! 	    SetCheck(hDlg, IDC_USE_THIS_UID);
! 	UseNextUid(g_CfgData.bUseNextUid);
! 	SetWndText(hDlg, IDC_ADMIN_UID, g_CfgData.szAdminUID);
!     }
  }
  
  static void UseNextUid(BOOL bUseNext)
  {
!     ENABLE_STATE es = bUseNext ? ES_DISABLE : ES_ENABLE;
  	
!     SetEnable(hDlg, IDC_ADMIN_UID, es);
!     SetEnable(hDlg, IDC_AFS_UID_SPINNER, es);
  }
  
Index: openafs/src/WINNT/afssvrcfg/info_page.cpp
diff -c openafs/src/WINNT/afssvrcfg/info_page.cpp:1.2 openafs/src/WINNT/afssvrcfg/info_page.cpp:1.2.32.1
*** openafs/src/WINNT/afssvrcfg/info_page.cpp:1.2	Sat Nov  4 05:01:52 2000
--- openafs/src/WINNT/afssvrcfg/info_page.cpp	Tue Dec 26 15:22:28 2006
***************
*** 52,92 ****
      if (WizStep_Common_DlgProc (hRHS, msg, wp, lp))
          return FALSE;
  
! 	switch (msg) {
! 		case WM_INITDIALOG:
! 			OnInitDialog(hRHS);
! 			break;
! 
! 		case WM_COMMAND:
! 			switch (LOWORD(wp)) {
! 			case IDNEXT:
! 				if (SavePageInfo())
! 					g_pWiz->SetState (sidSTEP_THREE);
! 				break;
! 
! 			case IDBACK:
! 				if (SavePageInfo())
! 					g_pWiz->SetState (sidSTEP_ONE);
! 				break;
! 
! 			case IDC_FIRST_SERVER:
! 				IsFirstServer();
! 				break;
! 
! 			case IDC_JOIN_EXISTING_CELL:
! 				IsFirstServer(FALSE);
! 				break;
! 
! 			case IDC_CELL_NAME:
! 			case IDC_SERVER_PW:
! 			case IDC_VERIFY_PW:
! 				if (HIWORD(wp) == EN_CHANGE)
! 					CheckEnableButtons();
! 				break;
  
! 			}
! 		break;
!     }
  
      return FALSE;
  }
--- 52,92 ----
      if (WizStep_Common_DlgProc (hRHS, msg, wp, lp))
          return FALSE;
  
!     switch (msg) {
!     case WM_INITDIALOG:
! 	OnInitDialog(hRHS);
! 	break;
! 
!     case WM_COMMAND:
! 	switch (LOWORD(wp)) {
! 	case IDNEXT:
! 	    if (SavePageInfo())
! 		g_pWiz->SetState (sidSTEP_THREE);
! 	    break;
! 
! 	case IDBACK:
! 	    if (SavePageInfo())
! 		g_pWiz->SetState (sidSTEP_ONE);
! 	    break;
! 
! 	case IDC_FIRST_SERVER:
! 	    IsFirstServer();
! 	    break;
! 
! 	case IDC_JOIN_EXISTING_CELL:
! 	    IsFirstServer(FALSE);
! 	    break;
! 
! 	case IDC_CELL_NAME:
! 	case IDC_SERVER_PW:
! 	case IDC_VERIFY_PW:
! 	    if (HIWORD(wp) == EN_CHANGE)
! 		CheckEnableButtons();
! 	    break;
  
! 	}
! 	break;
!     }	
  
      return FALSE;
  }
***************
*** 102,117 ****
   */
  static void OnInitDialog(HWND hwndDlg)
  {
! 	hDlg = hwndDlg;
  
! 	g_pWiz->EnableButtons(BACK_BUTTON);
  
! 	ShowPageInfo();
  
! 	if (g_CfgData.bFirstServer)
! 		IsFirstServer();
  
! 	g_pWiz->SetDefaultControl(IDC_CELL_NAME);
  }
  
  
--- 102,117 ----
   */
  static void OnInitDialog(HWND hwndDlg)
  {
!     hDlg = hwndDlg;
  
!     g_pWiz->EnableButtons(BACK_BUTTON);
  
!     ShowPageInfo();
  
!     if (g_CfgData.bFirstServer)
! 	IsFirstServer();
  
!     g_pWiz->SetDefaultControl(IDC_CELL_NAME);
  }
  
  
***************
*** 121,194 ****
   */
  static void CheckEnableButtons()
  {
! 	BOOL bDisable = FALSE;
  
! 	TCHAR szCellName[cchRESOURCE];
! 	TCHAR szPW[cchRESOURCE];
! 	TCHAR szVerifyPW[cchRESOURCE];
  
! 	bDisable = lstrlen(GetWndText(hDlg, IDC_CELL_NAME, szCellName)) == 0;
  
! 	GetWndText(hDlg, IDC_SERVER_PW, szPW);
! 	GetWndText(hDlg, IDC_VERIFY_PW, szVerifyPW);
  
! 	if (IsButtonChecked(hDlg, IDC_FIRST_SERVER))
! 		bDisable |= !lstrlen(szPW) || !lstrlen(szVerifyPW) || lstrcmp(szPW, szVerifyPW);
  
! 	if (bDisable)
! 		g_pWiz->EnableButtons(BACK_BUTTON);
! 	else
! 		g_pWiz->EnableButtons(BACK_BUTTON | NEXT_BUTTON);
! }
  
  static BOOL SavePageInfo()
  {
! 	TCHAR szText[cchRESOURCE];
  	
! 	GetWndText(hDlg, IDC_CELL_NAME, szText);
! 	if (lstrlen(szText) > MAX_CELL_NAME_LEN) {
! 		MsgBox(hDlg, IDS_CELL_NAME_LEN_ERROR, GetAppTitleID(), MB_ICONSTOP | MB_OK);
! 		return FALSE;
! 	}
  
! 	lstrcpy(g_CfgData.szCellName, szText);
! 	lstrncpy(g_CfgData.szServerPW, GetWndText(hDlg, IDC_SERVER_PW, szText), MAX_SERVER_PW_LEN);
! 	g_CfgData.bFirstServer = IsButtonChecked(hDlg, IDC_FIRST_SERVER);
  
! 	return TRUE;
  }
  
  static void ShowPageInfo()
! {
! 	SetWndText(hDlg, IDC_CELL_NAME, g_CfgData.szCellName);
! 	SetWndText(hDlg, IDC_SERVER_PW, g_CfgData.szServerPW);
! 	SetWndText(hDlg, IDC_VERIFY_PW, g_CfgData.szServerPW);
! 
! 	if (g_CfgData.bFirstServer)
! 		SetCheck(hDlg, IDC_FIRST_SERVER);
! 	else
! 		SetCheck(hDlg, IDC_JOIN_EXISTING_CELL);
  }
  
  static void IsFirstServer(BOOL bIs)
  {
! 	ENABLE_STATE es;
  
! 	if (bIs)
! 		es = ES_ENABLE;
! 	else
! 		es = ES_DISABLE;
  
! 	SetEnable(hDlg, IDC_PRINCIPAL_LABEL, es);
! 	SetEnable(hDlg, IDC_PRINCIPAL, es);
  	
! 	SetEnable(hDlg, IDC_SERVER_PW_FRAME, es);
! 	SetEnable(hDlg, IDC_SERVER_PW_LABEL, es);
! 	SetEnable(hDlg, IDC_SERVER_PW_PROMPT, es);
! 	SetEnable(hDlg, IDC_SERVER_PW, es);
! 	SetEnable(hDlg, IDC_VERIFY_PW_LABEL, es);
! 	SetEnable(hDlg, IDC_VERIFY_PW, es);
  	
! 	CheckEnableButtons();
  }
  
--- 121,194 ----
   */
  static void CheckEnableButtons()
  {
!     BOOL bDisable = FALSE;
  
!     TCHAR szCellName[cchRESOURCE];
!     TCHAR szPW[cchRESOURCE];
!     TCHAR szVerifyPW[cchRESOURCE];
  
!     bDisable = lstrlen(GetWndText(hDlg, IDC_CELL_NAME, szCellName)) == 0;
  
!     GetWndText(hDlg, IDC_SERVER_PW, szPW);
!     GetWndText(hDlg, IDC_VERIFY_PW, szVerifyPW);
  
!     if (IsButtonChecked(hDlg, IDC_FIRST_SERVER))
! 	bDisable |= !lstrlen(szPW) || !lstrlen(szVerifyPW) || lstrcmp(szPW, szVerifyPW);
  
!     if (bDisable)
! 	g_pWiz->EnableButtons(BACK_BUTTON);
!     else
! 	g_pWiz->EnableButtons(BACK_BUTTON | NEXT_BUTTON);
! }	
  
  static BOOL SavePageInfo()
  {
!     TCHAR szText[cchRESOURCE];
  	
!     GetWndText(hDlg, IDC_CELL_NAME, szText);
!     if (lstrlen(szText) > MAX_CELL_NAME_LEN) {
! 	MsgBox(hDlg, IDS_CELL_NAME_LEN_ERROR, GetAppTitleID(), MB_ICONSTOP | MB_OK);
! 	return FALSE;
!     }
  
!     lstrcpy(g_CfgData.szCellName, szText);
!     lstrncpy(g_CfgData.szServerPW, GetWndText(hDlg, IDC_SERVER_PW, szText), MAX_SERVER_PW_LEN);
!     g_CfgData.bFirstServer = IsButtonChecked(hDlg, IDC_FIRST_SERVER);
  
!     return TRUE;
  }
  
  static void ShowPageInfo()
! {	
!     SetWndText(hDlg, IDC_CELL_NAME, g_CfgData.szCellName);
!     SetWndText(hDlg, IDC_SERVER_PW, g_CfgData.szServerPW);
!     SetWndText(hDlg, IDC_VERIFY_PW, g_CfgData.szServerPW);
! 
!     if (g_CfgData.bFirstServer)
! 	SetCheck(hDlg, IDC_FIRST_SERVER);
!     else
! 	SetCheck(hDlg, IDC_JOIN_EXISTING_CELL);
  }
  
  static void IsFirstServer(BOOL bIs)
  {
!     ENABLE_STATE es;
  
!     if (bIs)
! 	es = ES_ENABLE;
!     else
! 	es = ES_DISABLE;
  
!     SetEnable(hDlg, IDC_PRINCIPAL_LABEL, es);
!     SetEnable(hDlg, IDC_PRINCIPAL, es);
  	
!     SetEnable(hDlg, IDC_SERVER_PW_FRAME, es);
!     SetEnable(hDlg, IDC_SERVER_PW_LABEL, es);
!     SetEnable(hDlg, IDC_SERVER_PW_PROMPT, es);
!     SetEnable(hDlg, IDC_SERVER_PW, es);
!     SetEnable(hDlg, IDC_VERIFY_PW_LABEL, es);
!     SetEnable(hDlg, IDC_VERIFY_PW, es);
  	
!     CheckEnableButtons();
  }
  
Index: openafs/src/WINNT/afssvrcfg/intro_page.cpp
diff -c openafs/src/WINNT/afssvrcfg/intro_page.cpp:1.2 openafs/src/WINNT/afssvrcfg/intro_page.cpp:1.2.32.1
*** openafs/src/WINNT/afssvrcfg/intro_page.cpp:1.2	Sat Nov  4 05:01:52 2000
--- openafs/src/WINNT/afssvrcfg/intro_page.cpp	Tue Dec 26 15:22:28 2006
***************
*** 49,67 ****
      if (WizStep_Common_DlgProc (hRHS, msg, wp, lp))
          return FALSE;
  
! 	switch (msg) {
! 		case WM_INITDIALOG:
! 			OnInitDialog(hRHS);
! 			break;
! 
! 		case WM_COMMAND:
! 			switch (LOWORD(wp)) {
! 			case IDNEXT:
! 				g_pWiz->SetState(sidSTEP_TWO);
! 				break;
! 			}
! 		break;
!     }
  
      return FALSE;
  }
--- 49,67 ----
      if (WizStep_Common_DlgProc (hRHS, msg, wp, lp))
          return FALSE;
  
!     switch (msg) {
!     case WM_INITDIALOG:
! 	OnInitDialog(hRHS);
! 	break;
! 
!     case WM_COMMAND:
! 	switch (LOWORD(wp)) {
! 	case IDNEXT:
! 	    g_pWiz->SetState(sidSTEP_TWO);
! 	    break;
! 	}
! 	break;
!     }	
  
      return FALSE;
  }
***************
*** 78,87 ****
   */
  static BOOL OnInitDialog(HWND hwndDlg)
  {
! 	hDlg = hwndDlg;
  
! 	g_pWiz->EnableButtons(NEXT_BUTTON);
  
! 	return TRUE;
  }
  
--- 78,87 ----
   */
  static BOOL OnInitDialog(HWND hwndDlg)
  {
!     hDlg = hwndDlg;
  
!     g_pWiz->EnableButtons(NEXT_BUTTON);
  
!     return TRUE;
  }
  
Index: openafs/src/WINNT/afssvrcfg/logfile.cpp
diff -c openafs/src/WINNT/afssvrcfg/logfile.cpp:1.2 openafs/src/WINNT/afssvrcfg/logfile.cpp:1.2.32.1
*** openafs/src/WINNT/afssvrcfg/logfile.cpp:1.2	Sat Nov  4 05:01:52 2000
--- openafs/src/WINNT/afssvrcfg/logfile.cpp	Tue Dec 26 15:22:28 2006
***************
*** 33,183 ****
   */
  LOGFILE::LOGFILE()
  {
! 	m_fp = 0;
  }
  
  LOGFILE::~LOGFILE()
  {
! 	if (m_fp)
! 		Close();
  }
  
  BOOL LOGFILE::Open(const char *pszLogFilePath, 
! 				   LOGFILE_OPEN_MODE eOpenMode,	
! 				   LOGFILE_TIMESTAMP_MODE eTimeStampMode)
  {
! 	char *pszOpenMode;
  
! 	m_eTimeStampMode = eTimeStampMode;
  
! 	if (eOpenMode == OM_OVERWRITE)
! 		pszOpenMode = "w";
! 	else
! 		pszOpenMode = "a+";
  
! 	strcpy(m_szPath, pszLogFilePath);
! 	
! 	m_fp = fopen(pszLogFilePath, pszOpenMode);
! 	if (m_fp) {
! 		if (m_eTimeStampMode != TSM_NEVER)
! 			WriteTimeStamp();
! 		fprintf(m_fp, "Log file open.\r\n");
  
! 		return TRUE;
! 	}
  
! 	return FALSE;
! }
  
  BOOL LOGFILE::Close()
  {
! 	int nResult = 0;
  	
! 	if (m_fp) {
! 		if (m_eTimeStampMode != TSM_NEVER)
! 			WriteTimeStamp();
! 		fprintf(m_fp, "Closing log file.\r\n");
! 		nResult = fclose(m_fp);
! 		if (nResult == 0)
! 			m_fp = 0;
! 	}
  
! 	return (nResult == 0);
  }
  
  BOOL LOGFILE::Write(const char *pszEntry, ...)
  {
! 	static BOOL bTimestampNextLine = TRUE;
  
! 	if (!m_fp)
! 		return FALSE;
  
! 	if (bTimestampNextLine && (m_eTimeStampMode == TSM_EACH_ENTRY))
! 		WriteTimeStamp();
! 	
! 	va_list args;
! 	
! 	va_start(args, pszEntry);
  
! 	int nWritten = vfprintf(m_fp, pszEntry, args);
  
! 	va_end(args);
  
! 	fflush(m_fp);
  
! 	// Don't timestamp next line unless current line ended with a newline
! 	bTimestampNextLine = (pszEntry[strlen(pszEntry) - 1] == '\n');
  
! 	return (nWritten > 0);
! }
  
  BOOL LOGFILE::WriteError(const char *pszMsg, DWORD nErrorCode, ...)
  {
! 	if (!m_fp)
! 		return FALSE;
  
! 	if (m_eTimeStampMode == TSM_EACH_ENTRY)
! 		WriteTimeStamp();
! 	
! 	va_list args;
! 	
! 	va_start(args, nErrorCode);
  
! 	int nWritten = vfprintf(m_fp, pszMsg, args);
! 	va_end(args);
  
! 	if (nWritten < 1)
! 		return FALSE;
  
! 	afs_status_t nStatus;
! 	const char *pszErrorText;
  
! 	int nResult = util_AdminErrorCodeTranslate(nErrorCode, TaLocale_GetLanguage(), &pszErrorText, &nStatus);
! 	if (nResult)
! 		fprintf(m_fp, ":  (0x%lx), %s.\r\n", nErrorCode, pszErrorText);
! 	else
! 		fprintf(m_fp, ":  (0x%lx).\r\n", nErrorCode);
  
! 	fflush(m_fp);
  
! 	return (nWritten > 0);
! }
  
  BOOL LOGFILE::WriteTimeStamp()
  {
! 	if (!m_fp)
! 		return FALSE;
  
! 	char szTime[64], szDate[64];
  
! 	_strtime(szTime);
! 	_strdate(szDate);
  
! 	fprintf(m_fp, "%s %s:  ", szTime, szDate);
! 	
! 	return TRUE;
  }
  
  BOOL LOGFILE::WriteBoolResult(BOOL bResult)
  {
! 	if (!m_fp)
! 		return FALSE;
  
! 	fprintf(m_fp, "%s.\r\n", bResult ? "Yes" : "No");
  
! 	fflush(m_fp);
  
! 	return TRUE;
  }
  
  BOOL LOGFILE::WriteMultistring(const char *pszMultiStr)
  {
! 	if (!m_fp)
! 		return FALSE;
  
! 	for (const char *p = pszMultiStr; *p; p += strlen(p))
! 		Write("%s\r\n", p);
  
! 	return TRUE;
! }
  
--- 33,183 ----
   */
  LOGFILE::LOGFILE()
  {
!     m_fp = 0;
  }
  
  LOGFILE::~LOGFILE()
  {
!     if (m_fp)
! 	Close();
  }
  
  BOOL LOGFILE::Open(const char *pszLogFilePath, 
! 		   LOGFILE_OPEN_MODE eOpenMode,	
! 		   LOGFILE_TIMESTAMP_MODE eTimeStampMode)
  {
!     char *pszOpenMode;
  
!     m_eTimeStampMode = eTimeStampMode;
  
!     if (eOpenMode == OM_OVERWRITE)
! 	pszOpenMode = "w";
!     else
! 	pszOpenMode = "a+";
  
!     strcpy(m_szPath, pszLogFilePath);
  
!     m_fp = fopen(pszLogFilePath, pszOpenMode);
!     if (m_fp) {
! 	if (m_eTimeStampMode != TSM_NEVER)
! 	    WriteTimeStamp();
! 	fprintf(m_fp, "Log file open.\r\n");
  
! 	return TRUE;
!     }
! 
!     return FALSE;
! }	
  
  BOOL LOGFILE::Close()
  {
!     int nResult = 0;
  	
!     if (m_fp) {
! 	if (m_eTimeStampMode != TSM_NEVER)
! 	    WriteTimeStamp();
! 	fprintf(m_fp, "Closing log file.\r\n");
! 	nResult = fclose(m_fp);
! 	if (nResult == 0)
! 	    m_fp = 0;
!     }
  
!     return (nResult == 0);
  }
  
  BOOL LOGFILE::Write(const char *pszEntry, ...)
  {
!     static BOOL bTimestampNextLine = TRUE;
  
!     if (!m_fp)
! 	return FALSE;
  
!     if (bTimestampNextLine && (m_eTimeStampMode == TSM_EACH_ENTRY))
! 	WriteTimeStamp();
  
!     va_list args;
  
!     va_start(args, pszEntry);
  
!     int nWritten = vfprintf(m_fp, pszEntry, args);
  
!     va_end(args);
  
!     fflush(m_fp);
! 
!     // Don't timestamp next line unless current line ended with a newline
!     bTimestampNextLine = (pszEntry[strlen(pszEntry) - 1] == '\n');
! 
!     return (nWritten > 0);
! }	
  
  BOOL LOGFILE::WriteError(const char *pszMsg, DWORD nErrorCode, ...)
  {
!     if (!m_fp)
! 	return FALSE;
  
!     if (m_eTimeStampMode == TSM_EACH_ENTRY)
! 	WriteTimeStamp();
  
!     va_list args;
  
!     va_start(args, nErrorCode);
  
!     int nWritten = vfprintf(m_fp, pszMsg, args);
!     va_end(args);
  
!     if (nWritten < 1)
! 	return FALSE;
  
!     afs_status_t nStatus;
!     const char *pszErrorText;
  
!     int nResult = util_AdminErrorCodeTranslate(nErrorCode, TaLocale_GetLanguage(), &pszErrorText, &nStatus);
!     if (nResult)
! 	fprintf(m_fp, ":  (0x%lx), %s.\r\n", nErrorCode, pszErrorText);
!     else
! 	fprintf(m_fp, ":  (0x%lx).\r\n", nErrorCode);
! 
!     fflush(m_fp);
! 
!     return (nWritten > 0);
! }	
  
  BOOL LOGFILE::WriteTimeStamp()
  {
!     if (!m_fp)
! 	return FALSE;
  
!     char szTime[64], szDate[64];
  
!     _strtime(szTime);
!     _strdate(szDate);
  
!     fprintf(m_fp, "%s %s:  ", szTime, szDate);
! 
!     return TRUE;
  }
  
  BOOL LOGFILE::WriteBoolResult(BOOL bResult)
  {
!     if (!m_fp)
! 	return FALSE;
  
!     fprintf(m_fp, "%s.\r\n", bResult ? "Yes" : "No");
  
!     fflush(m_fp);
  
!     return TRUE;
  }
  
  BOOL LOGFILE::WriteMultistring(const char *pszMultiStr)
  {
!     if (!m_fp)
! 	return FALSE;
  
!     for (const char *p = pszMultiStr; *p; p += strlen(p))
! 	Write("%s\r\n", p);
  
!     return TRUE;
! }	
  
Index: openafs/src/WINNT/afssvrcfg/partition_page.cpp
diff -c openafs/src/WINNT/afssvrcfg/partition_page.cpp:1.2 openafs/src/WINNT/afssvrcfg/partition_page.cpp:1.2.32.1
*** openafs/src/WINNT/afssvrcfg/partition_page.cpp:1.2	Sat Nov  4 05:01:52 2000
--- openafs/src/WINNT/afssvrcfg/partition_page.cpp	Tue Dec 26 15:22:28 2006
***************
*** 70,141 ****
   */
  static BOOL CALLBACK WizardDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
  {
! 	if ((g_pWiz->GetState() == sidSTEP_EIGHT) && (uMsg == WM_ACTIVATEAPP) && wParam) {
! 		UpdateDriveList();
! 		ShowPartitionInfo();
! 	}		
  
! 	return CallWindowProc((WNDPROC)Subclass_FindNextHook(hwndDlg, WizardDlgProc), hwndDlg, uMsg, wParam, lParam);
  }
  
  BOOL CALLBACK PartitionPageDlgProc(HWND hwndDlg, UINT msg, WPARAM wp, LPARAM lp)
  {
! 	if (WizStep_Common_DlgProc (hwndDlg, msg, wp, lp))
! 		return FALSE;
  
! 	switch (msg) {
! 		case WM_INITDIALOG:
! 	         OnInitDialog(hwndDlg);
! 			 CheckEnableButtons();
! 		     break;
! 
! 		case WM_DESTROY_SHEET:	
! 			Subclass_RemoveHook(g_pWiz->GetWindow(), WizardDlgProc);
! 			break;
! 
! 		case WM_COMMAND:
! 			switch (LOWORD(wp)) {
! 				case IDNEXT:
! 					if (SavePartitionInfo(TRUE))
! 					    g_pWiz->SetState(sidSTEP_NINE);
! 					break;
! 
! 				case IDBACK:
! 					if (SavePartitionInfo(FALSE))
! 					    g_pWiz->SetState(sidSTEP_SEVEN);
! 					break;
! 
! 				case IDC_CREATE_PARTITION:
! 					g_CfgData.configPartition = CS_CONFIGURE;
! 					CheckEnableButtons();
! 					EnableDriveListCtrls();
! 					break;
! 
! 				case IDC_DONT_CREATE_PARTITION:
! 					g_CfgData.configPartition = CS_DONT_CONFIGURE;
! 					CheckEnableButtons();
! 					EnableDriveListCtrls(FALSE);
! 					break;
! 
! 				case IDC_PARTITION_NAME:
! 					if (HIWORD(wp) == EN_CHANGE) {
! 						OnPartitionName();
! 						SetFocus((HWND)lp);
! 					}
! 					break;
! 			}
! 			break;
! 
! 		case WM_NOTIFY:	
! 			switch (((LPNMHDR)lp)->code) {
! 				case FLN_ITEMSELECT:	OnListSelection((LPFLN_ITEMSELECT_PARAMS)lp);
! 			}
! 			break;
  
  	}
  
! 	return FALSE;
! }
  
  
  
--- 70,141 ----
   */
  static BOOL CALLBACK WizardDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
  {
!     if ((g_pWiz->GetState() == sidSTEP_EIGHT) && (uMsg == WM_ACTIVATEAPP) && wParam) {
! 	UpdateDriveList();
! 	ShowPartitionInfo();
!     }		
  
!     return CallWindowProc((WNDPROC)Subclass_FindNextHook(hwndDlg, WizardDlgProc), hwndDlg, uMsg, wParam, lParam);
  }
  
  BOOL CALLBACK PartitionPageDlgProc(HWND hwndDlg, UINT msg, WPARAM wp, LPARAM lp)
  {
!     if (WizStep_Common_DlgProc (hwndDlg, msg, wp, lp))
! 	return FALSE;
  
!     switch (msg) {
!     case WM_INITDIALOG:
! 	OnInitDialog(hwndDlg);
! 	CheckEnableButtons();
! 	break;
  
+     case WM_DESTROY_SHEET:	
+ 	Subclass_RemoveHook(g_pWiz->GetWindow(), WizardDlgProc);
+ 	break;
+ 
+     case WM_COMMAND:
+ 	switch (LOWORD(wp)) {
+ 	case IDNEXT:
+ 	    if (SavePartitionInfo(TRUE))
+ 		g_pWiz->SetState(sidSTEP_NINE);
+ 	    break;
+ 
+ 	case IDBACK:
+ 	    if (SavePartitionInfo(FALSE))
+ 		g_pWiz->SetState(sidSTEP_SEVEN);
+ 	    break;
+ 
+ 	case IDC_CREATE_PARTITION:
+ 	    g_CfgData.configPartition = CS_CONFIGURE;
+ 	    CheckEnableButtons();
+ 	    EnableDriveListCtrls();
+ 	    break;
+ 
+ 	case IDC_DONT_CREATE_PARTITION:
+ 	    g_CfgData.configPartition = CS_DONT_CONFIGURE;
+ 	    CheckEnableButtons();
+ 	    EnableDriveListCtrls(FALSE);
+ 	    break;
+ 
+ 	case IDC_PARTITION_NAME:
+ 	    if (HIWORD(wp) == EN_CHANGE) {
+ 		OnPartitionName();
+ 		SetFocus((HWND)lp);
+ 	    }
+ 	    break;
  	}
+ 	break;
  
!     case WM_NOTIFY:	
! 	switch (((LPNMHDR)lp)->code) {
! 	case FLN_ITEMSELECT:	OnListSelection((LPFLN_ITEMSELECT_PARAMS)lp);
! 	}
! 	break;
! 
!     }
! 
!     return FALSE;
! }	
  
  
  
***************
*** 150,240 ****
   */
  static void OnInitDialog(HWND hwndDlg)
  {
! 	HOURGLASS hg;
  
! 	hDlg = hwndDlg;
  
! 	hDriveList = GetDlgItem(hDlg, IDC_DRIVE_LIST);
  
! 	g_pWiz->SetButtonText(IDNEXT, IDS_NEXT);
! 	g_pWiz->SetDefaultControl(IDNEXT);
  
! 	if (g_CfgData.configPartition == CS_ALREADY_CONFIGURED) {
! 		CantMakePartition(IDS_PARTITION_ALREADY_CREATED);
! 		return;
! 	}
  
! 	// Should this step be disabled?  Yes, if this machine is
! 	// not configured as a file server.
! 	if (!ConfiguredOrConfiguring(g_CfgData.configFS)) {
! 		CantMakePartition(IDS_NOT_A_FS_SERVER);
! 		EnableStep(g_CfgData.configPartition, FALSE);
! 		return;
! 	}
  
! 	// Do this in case it was disabled the last time
! 	EnableStep(g_CfgData.configPartition);
  
! 	switch (g_CfgData.configPartition) {
! 		case CS_DONT_CONFIGURE:
! 			SetCheck(hDlg, IDC_DONT_CREATE_PARTITION);
! 			EnableDriveListCtrls(FALSE);
! 			break;
! 
! 		case CS_CONFIGURE:
! 		default:
! 			SetCheck(hDlg, IDC_CREATE_PARTITION);
! 			EnableDriveListCtrls();
! 			break;
! 	}
  
! 	Subclass_AddHook(g_pWiz->GetWindow(), WizardDlgProc);
  
! 	SetupDriveList(hDriveList);
! 	UpdateDriveList();
! 	ShowPartitionInfo();
  
! 	if (g_CfgData.bFirstServer)
! 		MustMakePartition();
  }	
  
  static void OnPartitionName()
  {
! 	TCHAR szBuf[MAX_PARTITION_NAME_LEN];
! 	GetWindowText(GetDlgItem(hDlg, IDC_PARTITION_NAME), szBuf, MAX_PARTITION_NAME_LEN);
  
! 	bAutoSetPartitionName = szBuf[0] == 0;
! 	
! 	CheckEnableButtons();
! }
  
  static void OnListSelection(LPFLN_ITEMSELECT_PARAMS pItemParms)
  {
! 	ASSERT(pItemParms);
  
! 	hSelectedItem = 0;
  
! 	if (pItemParms->hItem) {
! 		LPARAM lParam = FastList_GetItemParam(hDriveList, pItemParms->hItem);
! 		if (lParam == 0) {
! 			hSelectedItem = pItemParms->hItem;
! 
! 			if (bAutoSetPartitionName) {
! 				LPCTSTR pDrive = FastList_GetItemText(hDriveList, hSelectedItem, 0);
! 				g_CfgData.szPartitionName[0] = _totlower(pDrive[0]);
! 				g_CfgData.szPartitionName[1] = 0;
! 				SetWndText(hDlg, IDC_PARTITION_NAME, g_CfgData.szPartitionName);
! 
! 				// Must set this to true because the call to SetWndText will cause
! 				// a call to OnPartitionName, which would incorrectly think that the
! 				// Partition Name had been set by the user rather than by us, thus
! 				// setting bAutoSetPartitionName to false.
! 				bAutoSetPartitionName = TRUE;
! 			}
! 		}
  	}
  
! 	CheckEnableButtons();
  }
  
  
--- 150,240 ----
   */
  static void OnInitDialog(HWND hwndDlg)
  {
!     HOURGLASS hg;
  
!     hDlg = hwndDlg;
  
!     hDriveList = GetDlgItem(hDlg, IDC_DRIVE_LIST);
  
!     g_pWiz->SetButtonText(IDNEXT, IDS_NEXT);
!     g_pWiz->SetDefaultControl(IDNEXT);
  
!     if (g_CfgData.configPartition == CS_ALREADY_CONFIGURED) {
! 	CantMakePartition(IDS_PARTITION_ALREADY_CREATED);
! 	return;
!     }
  
!     // Should this step be disabled?  Yes, if this machine is
!     // not configured as a file server.
!     if (!ConfiguredOrConfiguring(g_CfgData.configFS)) {
! 	CantMakePartition(IDS_NOT_A_FS_SERVER);
! 	EnableStep(g_CfgData.configPartition, FALSE);
! 	return;
!     }
  
!     // Do this in case it was disabled the last time
!     EnableStep(g_CfgData.configPartition);
  
!     switch (g_CfgData.configPartition) {
!     case CS_DONT_CONFIGURE:
! 	SetCheck(hDlg, IDC_DONT_CREATE_PARTITION);
! 	EnableDriveListCtrls(FALSE);
! 	break;
! 
!     case CS_CONFIGURE:
!     default:
! 	SetCheck(hDlg, IDC_CREATE_PARTITION);
! 	EnableDriveListCtrls();
! 	break;
!     }
  
!     Subclass_AddHook(g_pWiz->GetWindow(), WizardDlgProc);
  
!     SetupDriveList(hDriveList);
!     UpdateDriveList();
!     ShowPartitionInfo();
  
!     if (g_CfgData.bFirstServer)
! 	MustMakePartition();
  }	
  
  static void OnPartitionName()
  {
!     TCHAR szBuf[MAX_PARTITION_NAME_LEN];
!     GetWindowText(GetDlgItem(hDlg, IDC_PARTITION_NAME), szBuf, MAX_PARTITION_NAME_LEN);
  
!     bAutoSetPartitionName = szBuf[0] == 0;
! 
!     CheckEnableButtons();
! }	
  
  static void OnListSelection(LPFLN_ITEMSELECT_PARAMS pItemParms)
  {
!     ASSERT(pItemParms);
! 
!     hSelectedItem = 0;
  
!     if (pItemParms->hItem) {
! 	LPARAM lParam = FastList_GetItemParam(hDriveList, pItemParms->hItem);
! 	if (lParam == 0) {
! 	    hSelectedItem = pItemParms->hItem;
  
! 	    if (bAutoSetPartitionName) {
! 		LPCTSTR pDrive = FastList_GetItemText(hDriveList, hSelectedItem, 0);
! 		g_CfgData.szPartitionName[0] = _totlower(pDrive[0]);
! 		g_CfgData.szPartitionName[1] = 0;
! 		SetWndText(hDlg, IDC_PARTITION_NAME, g_CfgData.szPartitionName);
! 
! 		// Must set this to true because the call to SetWndText will cause
! 		// a call to OnPartitionName, which would incorrectly think that the
! 		// Partition Name had been set by the user rather than by us, thus
! 		// setting bAutoSetPartitionName to false.
! 		bAutoSetPartitionName = TRUE;
! 	    }
  	}
+     }
  
!     CheckEnableButtons();
  }
  
  
***************
*** 244,309 ****
   */
  static void CantMakePartition(UINT nMsgID)
  {
! 	TCHAR szMsg[cchRESOURCE];
  
! 	GetString(szMsg, nMsgID);
  
! 	ShowWnd(hDlg, IDC_CREATE_PARTITION, FALSE);
! 	ShowWnd(hDlg, IDC_DONT_CREATE_PARTITION, FALSE);
! 	ShowWnd(hDlg, IDC_ASK_CREATE_PARTITION, FALSE);
! 	ShowWnd(hDlg, IDC_SELECT_DRIVE, FALSE);
! 	ShowWnd(hDlg, IDC_DRIVE_LIST, FALSE);
! 	ShowWnd(hDlg, IDC_NAME_LABEL, FALSE);
! 	ShowWnd(hDlg, IDC_PARTITION_NAME, FALSE);
! 
! 	ShowWnd(hDlg, IDC_PARTITION_COVER);
! 	HWND hMsg = GetDlgItem(hDlg, IDC_PARTITION_MSG);
! 	ShowWindow(hMsg, SW_SHOW);
! 	SetWindowText(hMsg, szMsg);
  
! 	bCantCreate = TRUE;
! }
  
  static void MustMakePartition()
  {
! 	TCHAR szMsg[cchRESOURCE];
  
! 	GetString(szMsg, IDS_MUST_MAKE_PARTITION);
! 	
! 	ShowWnd(hDlg, IDC_CREATE_PARTITION, FALSE);
! 	ShowWnd(hDlg, IDC_DONT_CREATE_PARTITION, FALSE);
  
! 	SetWndText(hDlg, IDC_ASK_CREATE_PARTITION, szMsg);
  }
  
  static void EnableDriveListCtrls(BOOL bEnable)
  {
! 	EnableWnd(hDlg, IDC_SELECT_DRIVE, bEnable);
! 	EnableWnd(hDlg, IDC_DRIVE_LIST, bEnable);
! 	EnableWnd(hDlg, IDC_NAME_LABEL, bEnable);
! 	EnableWnd(hDlg, IDC_PARTITION_NAME, bEnable);
  }
  
  static BOOL SavePartitionInfo(BOOL bValidate)
  {
! 	if (bCantCreate)
! 		return TRUE;
  
      if (GetButtonState(hDlg, IDC_CREATE_PARTITION) != BST_CHECKED) {
! 	    g_CfgData.szPartitionName[0] = 0;
! 	    bAutoSetPartitionName = TRUE;
! 	} else {
! 	    GetWindowText(GetDlgItem(hDlg, IDC_PARTITION_NAME), g_CfgData.szPartitionName, MAX_PARTITION_NAME_LEN);
          if (bValidate && !Validation_IsValid(g_CfgData.szPartitionName, VALID_AFS_PARTITION_NAME))
              return FALSE;
!     }
  
! 	if (hSelectedItem == 0)
! 		g_CfgData.chDeviceName = 0;
! 	else {
! 		LPCTSTR pDrive = FastList_GetItemText(hDriveList, hSelectedItem, 0);
! 		g_CfgData.chDeviceName = pDrive[0];
! 	}
  
      return TRUE;
  }
--- 244,309 ----
   */
  static void CantMakePartition(UINT nMsgID)
  {
!     TCHAR szMsg[cchRESOURCE];
  
!     GetString(szMsg, nMsgID);
  
!     ShowWnd(hDlg, IDC_CREATE_PARTITION, FALSE);
!     ShowWnd(hDlg, IDC_DONT_CREATE_PARTITION, FALSE);
!     ShowWnd(hDlg, IDC_ASK_CREATE_PARTITION, FALSE);
!     ShowWnd(hDlg, IDC_SELECT_DRIVE, FALSE);
!     ShowWnd(hDlg, IDC_DRIVE_LIST, FALSE);
!     ShowWnd(hDlg, IDC_NAME_LABEL, FALSE);
!     ShowWnd(hDlg, IDC_PARTITION_NAME, FALSE);
! 
!     ShowWnd(hDlg, IDC_PARTITION_COVER);
!     HWND hMsg = GetDlgItem(hDlg, IDC_PARTITION_MSG);
!     ShowWindow(hMsg, SW_SHOW);
!     SetWindowText(hMsg, szMsg);
  
!     bCantCreate = TRUE;
! }	
  
  static void MustMakePartition()
  {
!     TCHAR szMsg[cchRESOURCE];
  
!     GetString(szMsg, IDS_MUST_MAKE_PARTITION);
  
!     ShowWnd(hDlg, IDC_CREATE_PARTITION, FALSE);
!     ShowWnd(hDlg, IDC_DONT_CREATE_PARTITION, FALSE);
! 
!     SetWndText(hDlg, IDC_ASK_CREATE_PARTITION, szMsg);
  }
  
  static void EnableDriveListCtrls(BOOL bEnable)
  {
!     EnableWnd(hDlg, IDC_SELECT_DRIVE, bEnable);
!     EnableWnd(hDlg, IDC_DRIVE_LIST, bEnable);
!     EnableWnd(hDlg, IDC_NAME_LABEL, bEnable);
!     EnableWnd(hDlg, IDC_PARTITION_NAME, bEnable);
  }
  
  static BOOL SavePartitionInfo(BOOL bValidate)
  {
!     if (bCantCreate)
! 	return TRUE;
  
      if (GetButtonState(hDlg, IDC_CREATE_PARTITION) != BST_CHECKED) {
! 	g_CfgData.szPartitionName[0] = 0;
! 	bAutoSetPartitionName = TRUE;
!     } else {
! 	GetWindowText(GetDlgItem(hDlg, IDC_PARTITION_NAME), g_CfgData.szPartitionName, MAX_PARTITION_NAME_LEN);
          if (bValidate && !Validation_IsValid(g_CfgData.szPartitionName, VALID_AFS_PARTITION_NAME))
              return FALSE;
!     }	
  
!     if (hSelectedItem == 0)
! 	g_CfgData.chDeviceName = 0;
!     else {
! 	LPCTSTR pDrive = FastList_GetItemText(hDriveList, hSelectedItem, 0);
! 	g_CfgData.chDeviceName = pDrive[0];
!     }
  
      return TRUE;
  }
***************
*** 319,350 ****
      SetWndText(hDlg, IDC_PARTITION_NAME, g_CfgData.szPartitionName);
      bAutoSetPartitionName = bAutoSet;
  
! 	if (g_CfgData.chDeviceName != 0) {
! 		HLISTITEM hItem = NULL;
! 		while ((hItem = FastList_FindNext(hDriveList, hItem)) != NULL) {
! 			LPCTSTR pDrive = FastList_GetItemText(hDriveList, hItem, 0);
! 			if (pDrive[0] == g_CfgData.chDeviceName) {
! 				FastList_SelectItem(hDriveList, hItem, TRUE);
! 				hSelectedItem = hItem;
! 				break;
! 			}
! 		}
  	}
  }
  
  static void CheckEnableButtons()
  {
! 	if (IsButtonChecked(hDlg, IDC_CREATE_PARTITION)) {
! 		TCHAR szBuf[MAX_PARTITION_NAME_LEN];
  
! 		GetWindowText(GetDlgItem(hDlg, IDC_PARTITION_NAME), szBuf, MAX_PARTITION_NAME_LEN);
! 		if ((hSelectedItem == 0) || (szBuf[0] == 0)) {
! 			g_pWiz->EnableButtons(BACK_BUTTON);
! 			g_pWiz->SetDefaultControl(IDBACK);
! 			return;
! 		}
  	}
! 		
! 	g_pWiz->EnableButtons(BACK_BUTTON | NEXT_BUTTON);
  }
  
--- 319,350 ----
      SetWndText(hDlg, IDC_PARTITION_NAME, g_CfgData.szPartitionName);
      bAutoSetPartitionName = bAutoSet;
  
!     if (g_CfgData.chDeviceName != 0) {
! 	HLISTITEM hItem = NULL;
! 	while ((hItem = FastList_FindNext(hDriveList, hItem)) != NULL) {
! 	    LPCTSTR pDrive = FastList_GetItemText(hDriveList, hItem, 0);
! 	    if (pDrive[0] == g_CfgData.chDeviceName) {
! 		FastList_SelectItem(hDriveList, hItem, TRUE);
! 		hSelectedItem = hItem;
! 		break;
! 	    }
  	}
+     }
  }
  
  static void CheckEnableButtons()
  {
!     if (IsButtonChecked(hDlg, IDC_CREATE_PARTITION)) {
! 	TCHAR szBuf[MAX_PARTITION_NAME_LEN];
  
! 	GetWindowText(GetDlgItem(hDlg, IDC_PARTITION_NAME), szBuf, MAX_PARTITION_NAME_LEN);
! 	if ((hSelectedItem == 0) || (szBuf[0] == 0)) {
! 	    g_pWiz->EnableButtons(BACK_BUTTON);
! 	    g_pWiz->SetDefaultControl(IDBACK);
! 	    return;
  	}
!     }
! 
!     g_pWiz->EnableButtons(BACK_BUTTON | NEXT_BUTTON);
  }
  
Index: openafs/src/WINNT/afssvrcfg/partition_utils.cpp
diff -c openafs/src/WINNT/afssvrcfg/partition_utils.cpp:1.2 openafs/src/WINNT/afssvrcfg/partition_utils.cpp:1.2.32.1
*** openafs/src/WINNT/afssvrcfg/partition_utils.cpp:1.2	Sat Nov  4 05:01:53 2000
--- openafs/src/WINNT/afssvrcfg/partition_utils.cpp	Tue Dec 26 15:22:28 2006
***************
*** 35,101 ****
   */
  cfg_partitionEntry_t *GetPartitionTable(int &nNumPartitions)
  {
! 	nNumPartitions = cPartitions;
  
! 	return pTable;
  }
  
  int GetNumPartitions()
! {
! 	return cPartitions;
! }
  
  int ReadPartitionTable(afs_status_t *pStatus)
  {
! 	ASSERT(g_hServer);
  
! 	FreePartitionTable();
  
! 	cPartitions = 0;
! 	pTable = 0;
  	
! 	int nResult = cfg_HostPartitionTableEnumerate(g_hServer, &pTable, &cPartitions, pStatus);
  
! 	return nResult;
  }
  
  BOOL IsAnAfsPartition(LPCTSTR pszRootDir)
  {
! 	for (int ii = 0; ii < cPartitions; ii++) {
  
! 		TCHAR ch1 = pTable[ii].deviceName[0];
! 		if (_istupper(ch1))
! 			ch1 = _totlower(ch1);
  
! 		TCHAR ch2 = pszRootDir[0];
! 		if (_istupper(ch2))
! 			ch2 = _totlower(ch2);
  
! 		if (ch1 == ch2)
! 			return TRUE;
! 	}
  
! 	return FALSE;
  }
  
  BOOL DoesPartitionExist(LPCTSTR pszName)
  {
! 	for (int ii = 0; ii < cPartitions; ii++) {
! 		if (lstrcmp(A2S(pTable[ii].partitionName), pszName) == 0)
! 			return TRUE;
! 	}
  	
! 	return FALSE;
  }
  	
  void FreePartitionTable()
  {
! 	if (pTable) {
! 		afs_status_t nStatus;
! 		cfg_PartitionListDeallocate(pTable, &nStatus);
! 	}
! 	
! 	pTable = 0;
! 	cPartitions = 0;
! }
  
--- 35,101 ----
   */
  cfg_partitionEntry_t *GetPartitionTable(int &nNumPartitions)
  {
!     nNumPartitions = cPartitions;
  
!     return pTable;
  }
  
  int GetNumPartitions()
! {	
!     return cPartitions;
! }	
  
  int ReadPartitionTable(afs_status_t *pStatus)
  {
!     ASSERT(g_hServer);
  
!     FreePartitionTable();
  
!     cPartitions = 0;
!     pTable = 0;
  	
!     int nResult = cfg_HostPartitionTableEnumerate(g_hServer, &pTable, &cPartitions, pStatus);
  
!     return nResult;
  }
  
  BOOL IsAnAfsPartition(LPCTSTR pszRootDir)
  {
!     for (int ii = 0; ii < cPartitions; ii++) {
  
! 	TCHAR ch1 = pTable[ii].deviceName[0];
! 	if (_istupper(ch1))
! 	    ch1 = _totlower(ch1);
  
! 	TCHAR ch2 = pszRootDir[0];
! 	if (_istupper(ch2))
! 	    ch2 = _totlower(ch2);
  
! 	if (ch1 == ch2)
! 	    return TRUE;
!     }	
  
!     return FALSE;
  }
  
  BOOL DoesPartitionExist(LPCTSTR pszName)
  {
!     for (int ii = 0; ii < cPartitions; ii++) {
! 	if (lstrcmp(A2S(pTable[ii].partitionName), pszName) == 0)
! 	    return TRUE;
!     }	
  	
!     return FALSE;
  }
  	
  void FreePartitionTable()
  {
!     if (pTable) {
! 	afs_status_t nStatus;
! 	cfg_PartitionListDeallocate(pTable, &nStatus);
!     }
! 
!     pTable = 0;
!     cPartitions = 0;
! }	
  
Index: openafs/src/WINNT/afssvrcfg/partitions_page.cpp
diff -c openafs/src/WINNT/afssvrcfg/partitions_page.cpp:1.3 openafs/src/WINNT/afssvrcfg/partitions_page.cpp:1.3.14.1
*** openafs/src/WINNT/afssvrcfg/partitions_page.cpp:1.3	Sun Dec  7 17:49:14 2003
--- openafs/src/WINNT/afssvrcfg/partitions_page.cpp	Tue Dec 26 15:22:28 2006
***************
*** 84,124 ****
   */
  BOOL CALLBACK PartitionsPageDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
  {
! 	if (AfsAppLib_HandleHelp(IDD_PARTITIONS_PAGE, hwndDlg, uMsg, wParam, lParam))
! 		return TRUE;
  
! 	switch (uMsg) {
! 		case WM_INITDIALOG:	OnInitDialog(hwndDlg);
! 							break;
  	
! 		case WM_COMMAND:	switch (LOWORD(wParam)) {
! 								case IDINIT:		CheckShowPartitions();
! 													break;
! 
! 								case IDC_CREATE_PARTITIONS:	
! 													OnCreatePartitions();
! 													break;
! 							
! 								case IDC_REMOVE:	OnRemove();
! 													break;
! 
! 								case IDC_SALVAGE:	OnSalvage();
! 													break;
! 							}
! 							break;
! 
! 		case WM_NOTIFY:		if ((((LPNMHDR)lParam)->code) == FLN_ITEMSELECT)
! 								OnListSelection((LPFLN_ITEMSELECT_PARAMS)lParam);
! 							break;
  	}
  
! 	return FALSE;
! }
  
  void UpdatePartitionList()
  {
! 	ShowPartitions();
! 	CheckEnableSalvage();
  }
  
  
--- 84,130 ----
   */
  BOOL CALLBACK PartitionsPageDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
  {
!     if (AfsAppLib_HandleHelp(IDD_PARTITIONS_PAGE, hwndDlg, uMsg, wParam, lParam))
! 	return TRUE;
  
!     switch (uMsg) {
!     case WM_INITDIALOG:	
! 	OnInitDialog(hwndDlg);
! 	break;
  	
!     case WM_COMMAND:  
! 	switch (LOWORD(wParam)) {
! 	case IDINIT:
! 	    CheckShowPartitions();
! 	    break;
! 
! 	case IDC_CREATE_PARTITIONS:	
! 	    OnCreatePartitions();
! 	    break;
! 
! 	case IDC_REMOVE:  
! 	    OnRemove();
! 	    break;
! 
! 	case IDC_SALVAGE: 
! 	    OnSalvage();
! 	    break;
  	}
+ 	break;
  
!     case WM_NOTIFY:    
! 	if ((((LPNMHDR)lParam)->code) == FLN_ITEMSELECT)
! 	    OnListSelection((LPFLN_ITEMSELECT_PARAMS)lParam);
! 	break;
!     }
! 
!     return FALSE;
! }	
  
  void UpdatePartitionList()
  {
!     ShowPartitions();
!     CheckEnableSalvage();
  }
  
  
***************
*** 133,210 ****
   */
  static void OnInitDialog(HWND hwndDlg)
  {
! 	hDlg = hwndDlg;
  
! //	PropSheet_CancelToClose(GetParent(hDlg));
  
! 	hSelectedItem = 0;
  
! 	hPartitionList = GetDlgItem(hDlg, IDC_PARTITION_LIST);
! 	_ASSERTE(hPartitionList);
  
! 	SetupImageLists();
  
! 	GetString(szYes, IDS_YES);
! 	GetString(szNo, IDS_NO);
  
! 	SetupListCols();
  
! 	configFS = g_CfgData.configFS;
  
! 	ShowPartitions();
  
! 	CheckEnableSalvage();
! }
  
  static void OnCreatePartitions()
  {
! 	if (CreatePartition(hDlg))
! 		ShowPartitions();
  }
  
  static void OnListSelection(LPFLN_ITEMSELECT_PARAMS pItemParms)
  {
! 	ASSERT(pItemParms);
  
! 	hSelectedItem = pItemParms->hItem;
  
! 	ENABLE_STATE es = pItemParms->hItem ? ES_ENABLE : ES_DISABLE;
  
! 	SetEnable(hDlg, IDC_REMOVE, es);
! 	SetEnable(hDlg, IDC_REMOVE_MSG, es);
  }
  
  static void OnRemove()
  {
! 	ASSERT(hSelectedItem);
! 	ASSERT(g_hServer);
  	
! 	afs_status_t nStatus;
  
! 	BOOL bExported = (BOOL)FastList_GetItemParam(hPartitionList, hSelectedItem);
! 	if (bExported) {
! 		MsgBox(hDlg, IDS_CANT_DELETE_EXPORTED_PARTITION, GetAppTitleID(), MB_OK | MB_ICONSTOP);
! 		return;
! 	}
  
! 	LPCTSTR pszPartitionName = FastList_GetItemText(hPartitionList, hSelectedItem, 0);
! 	ASSERT(pszPartitionName);
  
! 	int nResult = Message(MB_ICONQUESTION | MB_YESNO, GetAppTitleID(), IDS_DELETE_PARTITION_PROMPT, TEXT("%s"), pszPartitionName);
! 	if (nResult == IDNO)
! 		return;
! 
! 	g_LogFile.Write("Removing partition '%s'.\r\n", (char *)S2A(pszPartitionName));
! 	nResult = cfg_HostPartitionTableRemoveEntry(g_hServer, S2A(pszPartitionName), &nStatus);
! 	if (!nResult) {
! 		ShowError(hDlg, nStatus, IDS_REMOVE_PARTITION_ERROR);
! 		return;
! 	}
  
! 	FastList_RemoveItem(hPartitionList, hSelectedItem);
  
! 	CheckEnableSalvage();
! }
  
  static void OnSalvage()
  {
--- 139,216 ----
   */
  static void OnInitDialog(HWND hwndDlg)
  {
!     hDlg = hwndDlg;
  
! //  PropSheet_CancelToClose(GetParent(hDlg));
  
!     hSelectedItem = 0;
  
!     hPartitionList = GetDlgItem(hDlg, IDC_PARTITION_LIST);
!     _ASSERTE(hPartitionList);
  
!     SetupImageLists();
  
!     GetString(szYes, IDS_YES);
!     GetString(szNo, IDS_NO);
  
!     SetupListCols();
  
!     configFS = g_CfgData.configFS;
  
!     ShowPartitions();
  
!     CheckEnableSalvage();
! }	
  
  static void OnCreatePartitions()
  {
!     if (CreatePartition(hDlg))
! 	ShowPartitions();
  }
  
  static void OnListSelection(LPFLN_ITEMSELECT_PARAMS pItemParms)
  {
!     ASSERT(pItemParms);
  
!     hSelectedItem = pItemParms->hItem;
  
!     ENABLE_STATE es = pItemParms->hItem ? ES_ENABLE : ES_DISABLE;
  
!     SetEnable(hDlg, IDC_REMOVE, es);
!     SetEnable(hDlg, IDC_REMOVE_MSG, es);
  }
  
  static void OnRemove()
  {
!     ASSERT(hSelectedItem);
!     ASSERT(g_hServer);
  	
!     afs_status_t nStatus;
  
!     BOOL bExported = (BOOL)FastList_GetItemParam(hPartitionList, hSelectedItem);
!     if (bExported) {
! 	MsgBox(hDlg, IDS_CANT_DELETE_EXPORTED_PARTITION, GetAppTitleID(), MB_OK | MB_ICONSTOP);
! 	return;
!     }
  
!     LPCTSTR pszPartitionName = FastList_GetItemText(hPartitionList, hSelectedItem, 0);
!     ASSERT(pszPartitionName);
  
!     int nResult = Message(MB_ICONQUESTION | MB_YESNO, GetAppTitleID(), IDS_DELETE_PARTITION_PROMPT, TEXT("%s"), pszPartitionName);
!     if (nResult == IDNO)
! 	return;
! 
!     g_LogFile.Write("Removing partition '%s'.\r\n", (char *)S2A(pszPartitionName));
!     nResult = cfg_HostPartitionTableRemoveEntry(g_hServer, S2A(pszPartitionName), &nStatus);
!     if (!nResult) {
! 	ShowError(hDlg, nStatus, IDS_REMOVE_PARTITION_ERROR);
! 	return;
!     }
  
!     FastList_RemoveItem(hPartitionList, hSelectedItem);
  
!     CheckEnableSalvage();
! }	
  
  static void OnSalvage()
  {
***************
*** 214,227 ****
          return;
      }
  
! 	LPCTSTR pszPartitionName = TEXT("");
  
! 	if (hSelectedItem) {
! 		pszPartitionName = FastList_GetItemText(hPartitionList, hSelectedItem, 0);
! 		ASSERT(pszPartitionName);
! 	}	
  
! 	if (!ShowSalvageDlg(hDlg, pszPartitionName))
          return;
  
      ShowSalvageResults(hDlg);
--- 220,233 ----
          return;
      }
  
!     LPCTSTR pszPartitionName = TEXT("");
  
!     if (hSelectedItem) {
! 	pszPartitionName = FastList_GetItemText(hPartitionList, hSelectedItem, 0);
! 	ASSERT(pszPartitionName);
!     }	
  
!     if (!ShowSalvageDlg(hDlg, pszPartitionName))
          return;
  
      ShowSalvageResults(hDlg);
***************
*** 240,462 ****
   */
  static BOOL CheckShowPartitions()
  {
! 	if (configFS != g_CfgData.configFS) {
! 		configFS = g_CfgData.configFS;
          UpdatePartitionList();
! 		return TRUE;
! 	}
  
! 	return FALSE;
  }
  
  static void SetupImageLists()
  {
! 	HIMAGELIST hiList = ImageList_Create(16, 16, TRUE, 1, 1);
  
! 	AfsAppLib_AddToImageList(hiList, IDI_AGGREGATE, FALSE);
! 	AfsAppLib_AddToImageList(hiList, IDI_DISABLED_DISK_DRIVE, FALSE);
  
! 	FastList_SetImageLists(hPartitionList, hiList, 0);
! }
  
  static void AddColumn(int nWidth, LPCTSTR pszTitle, DWORD dwFlags)
  {
! 	static int nCol = 1;
! 	FASTLISTCOLUMN col;
  	
! 	col.dwFlags = dwFlags;
! 	col.cxWidth = nWidth;
! 	lstrcpy(col.szText, pszTitle);
! 	
! 	FastList_SetColumn(hPartitionList, nCol++, &col);
  }
  
  static void SetupListCols()
  {
! 	TCHAR szMsg[cchRESOURCE];
  
! 	AddColumn(75, GetResString(IDS_NAME, szMsg));
! 	AddColumn(55, GetResString(IDS_DRIVE, szMsg));
! 	AddColumn(60, GetResString(IDS_EXPORTED, szMsg));
! 	AddColumn(75, GetResString(IDS_TOTAL, szMsg), FLCF_JUSTIFY_RIGHT);
! 	AddColumn(75, GetResString(IDS_FREE, szMsg), FLCF_JUSTIFY_RIGHT);
  }
  
  cfg_partitionEntry_t *GetPartitionTableFromRegistry(int& cEntries)
  {
! 	afs_status_t nStatus;
   
! 	// Read the parition table out of the registry
! 	int nResult = ReadPartitionTable(&nStatus);
! 	if (!nResult) {
! 		ShowError(hDlg, nStatus, IDS_READ_PARTITIONS_ERROR);
! 		return 0;
! 	}
  
! 	return GetPartitionTable(cEntries);
  }
  
  static vos_partitionEntry_t *GetPartitionTableFromVos(int &nNumPartitions)
  {
! 	ASSERT(g_hCell);
! 	ASSERT(g_CfgData.szHostname[0]);
  
! 	nNumPartitions = 0;
  
! 	if (g_CfgData.configFS != CS_ALREADY_CONFIGURED)
! 		return 0;
  
! 	static vos_partitionEntry_t aPartitions[MAX_PARTITIONS];
! 	afs_status_t nStatus, nIgnore;
! 	void *hServer = 0;
! 	int nNumParts = 0;
! 
! 	// Open this server
! 	g_LogFile.Write("Opening server %s.\r\n", GetHostnameA());
! 	int nResult = vos_ServerOpen(g_hCell, GetHostnameA(), &hServer, &nStatus);
  	if (nResult) {
! 		
! 		// Read the partition info
! 		g_LogFile.Write("Reading paritition information for this server.\r\n");
! 		void *iterID;
! 
! 		nResult = vos_PartitionGetBegin(g_hCell, hServer, 0, &iterID, &nStatus);
! 		if (nResult) {
! 			while (nNumParts < MAX_PARTITIONS) {
! 				nResult = vos_PartitionGetNext(iterID, &aPartitions[nNumParts], &nStatus);
! 				if (!nResult) {
! 					if (nStatus == ADMITERATORDONE) {
! 						nResult = 1;
! 						nStatus = 0;
! 					}
! 					break;
! 				}
! 
! 				nNumParts++;
! 			}
! 			vos_PartitionGetDone(iterID, &nIgnore);
  		}
! 		vos_ServerClose(hServer, &nIgnore);
! 	}
! 	
! 	if (!nResult) {
! 		ShowError(hDlg, nStatus, IDS_GET_PARTITION_LIST_ERROR);
! 		return 0;
  	}
  
! 	nNumPartitions = nNumParts;
  
! 	return aPartitions;
  }
  
  // Convert a disk space value in Kbytes into a string
  static LPTSTR DiskSpaceToString(int nSpace)
  {
! 	const float oneMB = 1024;	// in K bytes
! 	const double oneGB = oneMB * 1024;
! 	const double oneTB = oneGB * 1024;
! 
! 	static TCHAR szSpace[64];
! 	double space;
! 	LPTSTR pszUnits;
! 
! 	space = nSpace;	
! 
! 	if (space >= oneTB) {
! 		space /= oneTB;
! 		pszUnits = TEXT(" TB");
! 	} else if (space >= oneGB) {
! 		space /= oneGB;
! 		pszUnits = TEXT(" GB");
      } else if (space >= oneMB) {
! 		space /= oneMB;
! 		pszUnits = TEXT(" MB");
! 	} else
! 		pszUnits = TEXT(" KB");
! 
! 	int nNumDecimals = 0;
! 	if (space - double(int(space)) > 0)
! 		nNumDecimals = 2;
  
! 	_stprintf(szSpace, TEXT("%3.*f%s"), nNumDecimals, space, pszUnits);
  
! 	return szSpace;
! }
  
  static void ShowPartitions()
  {
! 	FastList_RemoveAll(hPartitionList);
  
! 	int cRegParts = 0, cVosParts = 0;
  
      // If we got nothing from the registry, then leave the list empty
! 	cfg_partitionEntry_t *pRegParts = GetPartitionTableFromRegistry(cRegParts);
      if (!pRegParts)
          return;
  
      // If we failed to get vos info, then only show the registry info
! 	vos_partitionEntry_t *pVosParts = GetPartitionTableFromVos(cVosParts);
      if (!pVosParts)
          cVosParts = 0;
  
! 	// We have two partition tables, one from the registry and one from the vos
! 	// library.  The one from the vos library tells us the partitions that are
! 	// currently exported.  The one from the registry tells us the partitions
! 	// that will be exported after the file server restarts.  The registry list
! 	// should always be at least as big as the vos list.  The vos list can be
! 	// smaller if one of the disks could not be exported.  To add a new partition,
! 	// an entry must be added to the registry table and then the file server must
! 	// be restarted.  To remove an entry, the partition must not be exported (due
! 	// to an error) or the file server must not be running, in which case nothing
! 	// will be exported.
! 
! 	// To display the partitions to the user, we use the list from the registry,
! 	// looking up each of its entries in the vos list to see if it is exported,
! 	// and if it is, to get its size info.
  
  
! 	for (int nCurRegPart = 0; nCurRegPart < cRegParts; nCurRegPart++) {
          LPTSTR pPartNameAsString = AnsiToString(pRegParts[nCurRegPart].partitionName);
  
          // Show the partition in the list
! 		FASTLISTADDITEM ai = { 0, DISK_DRIVE_IMAGE, IMAGE_NOIMAGE, pPartNameAsString, 0, 0 };
! 		HLISTITEM hItem = FastList_AddItem(hPartitionList, &ai);
  
          FreeString(pPartNameAsString);
  
! 		FastList_SetItemText(hPartitionList, hItem, 1, pRegParts[nCurRegPart].deviceName);
! 		
! 		// For the rest of the info we need to know if this guy is exported.
! 		// Look him up in the vos table.
! 		BOOL bExported = FALSE;
! 		int nTotalSpace = 0;
! 		int nFreeSpace = 0;
! 		
! 		for (int nCurVosPart = 0; nCurVosPart < cVosParts; nCurVosPart++) {
! 			if (stricmp(pVosParts[nCurVosPart].name, pRegParts[nCurRegPart].partitionName) == 0) {
! 				bExported = TRUE;
! 				nTotalSpace = pVosParts[nCurVosPart].totalSpace;
! 				nFreeSpace = pVosParts[nCurVosPart].totalFreeSpace;
! 				break;
! 			}
! 		}
  
! 		FastList_SetItemText(hPartitionList, hItem, 2, bExported ? szYes : szNo);
! 		FastList_SetItemText(hPartitionList, hItem, 3, bExported ? DiskSpaceToString(nTotalSpace) : TEXT(""));
! 		FastList_SetItemText(hPartitionList, hItem, 4, bExported ? DiskSpaceToString(nFreeSpace) : TEXT(""));
! 		
! 		// Set the item param to indicate that this partition is exported or not
! 		FastList_SetItemParam(hPartitionList, hItem, bExported);
! 	
!         
      }
  }
  
  static void CheckEnableSalvage()
  {
! 	ENABLE_STATE es = (FastList_GetItemCount(hPartitionList) > 0) ? ES_ENABLE : ES_DISABLE;
  
! 	SetEnable(hDlg, IDC_SALVAGE, es);
! 	SetEnable(hDlg, IDC_SALVAGE_MSG, es);
  }
  
--- 246,466 ----
   */
  static BOOL CheckShowPartitions()
  {
!     if (configFS != g_CfgData.configFS) {
! 	configFS = g_CfgData.configFS;
          UpdatePartitionList();
! 	return TRUE;
!     }
  
!     return FALSE;
  }
  
  static void SetupImageLists()
  {
!     HIMAGELIST hiList = ImageList_Create(16, 16, TRUE, 1, 1);
  
!     AfsAppLib_AddToImageList(hiList, IDI_AGGREGATE, FALSE);
!     AfsAppLib_AddToImageList(hiList, IDI_DISABLED_DISK_DRIVE, FALSE);
  
!     FastList_SetImageLists(hPartitionList, hiList, 0);
! }	
  
  static void AddColumn(int nWidth, LPCTSTR pszTitle, DWORD dwFlags)
  {
!     static int nCol = 1;
!     FASTLISTCOLUMN col;
  	
!     col.dwFlags = dwFlags;
!     col.cxWidth = nWidth;
!     lstrcpy(col.szText, pszTitle);
! 
!     FastList_SetColumn(hPartitionList, nCol++, &col);
  }
  
  static void SetupListCols()
  {
!     TCHAR szMsg[cchRESOURCE];
  
!     AddColumn(75, GetResString(IDS_NAME, szMsg));
!     AddColumn(55, GetResString(IDS_DRIVE, szMsg));
!     AddColumn(60, GetResString(IDS_EXPORTED, szMsg));
!     AddColumn(75, GetResString(IDS_TOTAL, szMsg), FLCF_JUSTIFY_RIGHT);
!     AddColumn(75, GetResString(IDS_FREE, szMsg), FLCF_JUSTIFY_RIGHT);
  }
  
  cfg_partitionEntry_t *GetPartitionTableFromRegistry(int& cEntries)
  {
!     afs_status_t nStatus;
   
!     // Read the parition table out of the registry
!     int nResult = ReadPartitionTable(&nStatus);
!     if (!nResult) {
! 	ShowError(hDlg, nStatus, IDS_READ_PARTITIONS_ERROR);
! 	return 0;
!     }
  
!     return GetPartitionTable(cEntries);
  }
  
  static vos_partitionEntry_t *GetPartitionTableFromVos(int &nNumPartitions)
  {
!     ASSERT(g_hCell);
!     ASSERT(g_CfgData.szHostname[0]);
! 
!     nNumPartitions = 0;
  
!     if (g_CfgData.configFS != CS_ALREADY_CONFIGURED)
! 	return 0;
  
!     static vos_partitionEntry_t aPartitions[MAX_PARTITIONS];
!     afs_status_t nStatus, nIgnore;
!     void *hServer = 0;
!     int nNumParts = 0;
  
!     // Open this server
!     g_LogFile.Write("Opening server %s.\r\n", GetHostnameA());
!     int nResult = vos_ServerOpen(g_hCell, GetHostnameA(), &hServer, &nStatus);
!     if (nResult) {
! 
! 	// Read the partition info
! 	g_LogFile.Write("Reading paritition information for this server.\r\n");
! 	void *iterID;
! 
! 	nResult = vos_PartitionGetBegin(g_hCell, hServer, 0, &iterID, &nStatus);
  	if (nResult) {
! 	    while (nNumParts < MAX_PARTITIONS) {
! 		nResult = vos_PartitionGetNext(iterID, &aPartitions[nNumParts], &nStatus);
! 		if (!nResult) {
! 		    if (nStatus == ADMITERATORDONE) {
! 			nResult = 1;
! 			nStatus = 0;
! 		    }
! 		    break;
  		}
! 
! 		nNumParts++;
! 	    }
! 	    vos_PartitionGetDone(iterID, &nIgnore);
  	}
+ 	vos_ServerClose(hServer, &nIgnore);
+     }
+ 
+     if (!nResult) {
+ 	ShowError(hDlg, nStatus, IDS_GET_PARTITION_LIST_ERROR);
+ 	return 0;
+     }
  
!     nNumPartitions = nNumParts;
  
!     return aPartitions;
  }
  
  // Convert a disk space value in Kbytes into a string
  static LPTSTR DiskSpaceToString(int nSpace)
  {
!     const float oneMB = 1024;	// in K bytes
!     const double oneGB = oneMB * 1024;
!     const double oneTB = oneGB * 1024;
! 
!     static TCHAR szSpace[64];
!     double space;
!     LPTSTR pszUnits;
! 
!     space = nSpace;	
! 
!     if (space >= oneTB) {
! 	space /= oneTB;
! 	pszUnits = TEXT(" TB");
!     } else if (space >= oneGB) {
! 	space /= oneGB;
! 	pszUnits = TEXT(" GB");
      } else if (space >= oneMB) {
! 	space /= oneMB;
! 	pszUnits = TEXT(" MB");
!     } else
! 	pszUnits = TEXT(" KB");
! 
!     int nNumDecimals = 0;
!     if (space - double(int(space)) > 0)
! 	nNumDecimals = 2;
  
!     _stprintf(szSpace, TEXT("%3.*f%s"), nNumDecimals, space, pszUnits);
  
!     return szSpace;
! }	
  
  static void ShowPartitions()
  {
!     FastList_RemoveAll(hPartitionList);
  
!     int cRegParts = 0, cVosParts = 0;
  
      // If we got nothing from the registry, then leave the list empty
!     cfg_partitionEntry_t *pRegParts = GetPartitionTableFromRegistry(cRegParts);
      if (!pRegParts)
          return;
  
      // If we failed to get vos info, then only show the registry info
!     vos_partitionEntry_t *pVosParts = GetPartitionTableFromVos(cVosParts);
      if (!pVosParts)
          cVosParts = 0;
  
!     // We have two partition tables, one from the registry and one from the vos
!     // library.  The one from the vos library tells us the partitions that are
!     // currently exported.  The one from the registry tells us the partitions
!     // that will be exported after the file server restarts.  The registry list
!     // should always be at least as big as the vos list.  The vos list can be
!     // smaller if one of the disks could not be exported.  To add a new partition,
!     // an entry must be added to the registry table and then the file server must
!     // be restarted.  To remove an entry, the partition must not be exported (due
!     // to an error) or the file server must not be running, in which case nothing
!     // will be exported.
! 
!     // To display the partitions to the user, we use the list from the registry,
!     // looking up each of its entries in the vos list to see if it is exported,
!     // and if it is, to get its size info.
  
  
!     for (int nCurRegPart = 0; nCurRegPart < cRegParts; nCurRegPart++) {
          LPTSTR pPartNameAsString = AnsiToString(pRegParts[nCurRegPart].partitionName);
  
          // Show the partition in the list
! 	FASTLISTADDITEM ai = { 0, DISK_DRIVE_IMAGE, IMAGE_NOIMAGE, pPartNameAsString, 0, 0 };
! 	HLISTITEM hItem = FastList_AddItem(hPartitionList, &ai);
  
          FreeString(pPartNameAsString);
  
! 	FastList_SetItemText(hPartitionList, hItem, 1, pRegParts[nCurRegPart].deviceName);
  
! 	// For the rest of the info we need to know if this guy is exported.
! 	// Look him up in the vos table.
! 	BOOL bExported = FALSE;
! 	int nTotalSpace = 0;
! 	int nFreeSpace = 0;
! 
! 	for (int nCurVosPart = 0; nCurVosPart < cVosParts; nCurVosPart++) {
! 	    if (stricmp(pVosParts[nCurVosPart].name, pRegParts[nCurRegPart].partitionName) == 0) {
! 		bExported = TRUE;
! 		nTotalSpace = pVosParts[nCurVosPart].totalSpace;
! 		nFreeSpace = pVosParts[nCurVosPart].totalFreeSpace;
! 		break;
! 	    }
! 	}
! 
! 	FastList_SetItemText(hPartitionList, hItem, 2, bExported ? szYes : szNo);
! 	FastList_SetItemText(hPartitionList, hItem, 3, bExported ? DiskSpaceToString(nTotalSpace) : TEXT(""));
! 	FastList_SetItemText(hPartitionList, hItem, 4, bExported ? DiskSpaceToString(nFreeSpace) : TEXT(""));
! 
! 	// Set the item param to indicate that this partition is exported or not
! 	FastList_SetItemParam(hPartitionList, hItem, bExported);
      }
  }
  
  static void CheckEnableSalvage()
  {
!     ENABLE_STATE es = (FastList_GetItemCount(hPartitionList) > 0) ? ES_ENABLE : ES_DISABLE;
  
!     SetEnable(hDlg, IDC_SALVAGE, es);
!     SetEnable(hDlg, IDC_SALVAGE_MSG, es);
  }
  
Index: openafs/src/WINNT/afssvrcfg/replicatition_page.cpp
diff -c openafs/src/WINNT/afssvrcfg/replicatition_page.cpp:1.2 openafs/src/WINNT/afssvrcfg/replicatition_page.cpp:1.2.32.1
*** openafs/src/WINNT/afssvrcfg/replicatition_page.cpp:1.2	Sat Nov  4 05:01:53 2000
--- openafs/src/WINNT/afssvrcfg/replicatition_page.cpp	Tue Dec 26 15:22:28 2006
***************
*** 46,82 ****
   */
  BOOL CALLBACK ReplicationPageDlgProc(HWND hwndDlg, UINT msg, WPARAM wp, LPARAM lp)
  {
! 	if (WizStep_Common_DlgProc (hwndDlg, msg, wp, lp))
! 		return FALSE;
! 
! 	switch (msg) {
! 		case WM_INITDIALOG:
! 	         OnInitDialog(hwndDlg);
! 		     break;
! 
! 		case WM_COMMAND:
! 			switch (LOWORD(wp)) {
! 				case IDNEXT:
! 					g_pWiz->SetState(sidSTEP_ELEVEN);
! 					break;
! 
! 				case IDBACK:
! 				   g_pWiz->SetState(sidSTEP_NINE);
! 				   break;
! 
! 				case IDC_DONT_REPLICATE:
! 					g_CfgData.configRep = CS_DONT_CONFIGURE;
! 					break;
! 
! 				case IDC_REPLICATE:
! 					g_CfgData.configRep = CS_CONFIGURE;
! 					break;
! 			}
! 		break;
  
  	}
  
! 	return FALSE;
  }
  
  
--- 46,82 ----
   */
  BOOL CALLBACK ReplicationPageDlgProc(HWND hwndDlg, UINT msg, WPARAM wp, LPARAM lp)
  {
!     if (WizStep_Common_DlgProc (hwndDlg, msg, wp, lp))
! 	return FALSE;
  
+     switch (msg) {
+     case WM_INITDIALOG:
+ 	OnInitDialog(hwndDlg);
+ 	break;
+ 
+     case WM_COMMAND:
+ 	switch (LOWORD(wp)) {
+ 	case IDNEXT:
+ 	    g_pWiz->SetState(sidSTEP_ELEVEN);
+ 	    break;
+ 
+ 	case IDBACK:
+ 	    g_pWiz->SetState(sidSTEP_NINE);
+ 	    break;
+ 
+ 	case IDC_DONT_REPLICATE:
+ 	    g_CfgData.configRep = CS_DONT_CONFIGURE;
+ 	    break;
+ 
+ 	case IDC_REPLICATE:
+ 	    g_CfgData.configRep = CS_CONFIGURE;
+ 	    break;
  	}
+ 	break;
  
!     }
! 
!     return FALSE;
  }
  
  
***************
*** 92,139 ****
   */
  static void OnInitDialog(HWND hwndDlg)
  {
! 	hDlg = hwndDlg;
  
! 	g_pWiz->EnableButtons(BACK_BUTTON | NEXT_BUTTON);
! 	g_pWiz->SetButtonText(IDNEXT, IDS_NEXT);
! 	g_pWiz->SetDefaultControl(IDNEXT);
! 
! 	if (g_CfgData.bFirstServer) {
! 		ShowStatusMsg(IDS_MUST_REPLICATE);
! 		g_CfgData.configRep = CS_CONFIGURE;
! 		return;
! 	}
  
! 	if (g_CfgData.configRep == CS_ALREADY_CONFIGURED) {
! 		ShowStatusMsg(IDS_ALREADY_REPLICATED);
          return;
! 	}
  
! 	// If the replication of the root volumes could not be determined, we'll
! 	// ask the user if they want to create them if they don't already exist.
! 	if (!g_CfgData.bRootVolumesReplicationKnown) {
! 		SetWndText(hDlg, IDC_REPLICATE_QUESTION, IDS_REP_ROOT_VOLUMES_IF_NECESSARY_PROMPT);
          g_CfgData.configRep = CS_CONFIGURE;
! 		SetCheck(hDlg, IDC_REPLICATE);
          return;
! 	}
! 
! 	// Should this step be disabled?  Yes, if this machine does
! 	// not have a root.afs volume.
! 	if (!ConfiguredOrConfiguring(g_CfgData.configRootVolumes)) {
! 		ShowStatusMsg(IDS_ROOT_AFS_DOESNT_EXIST);
! 		EnableStep(g_CfgData.configRep, FALSE);
! 		return;
! 	}
  
! 	// Must do this in case it was disabled on the last run through
! 	EnableStep(g_CfgData.configRep);
! 
! 	if (g_CfgData.configRep == CS_DONT_CONFIGURE)
! 		SetCheck(hDlg, IDC_DONT_REPLICATE);
! 	else if (g_CfgData.configRep == CS_CONFIGURE)
! 		SetCheck(hDlg, IDC_REPLICATE);
! }
  
  
  /*
--- 92,139 ----
   */
  static void OnInitDialog(HWND hwndDlg)
  {
!     hDlg = hwndDlg;
  
!     g_pWiz->EnableButtons(BACK_BUTTON | NEXT_BUTTON);
!     g_pWiz->SetButtonText(IDNEXT, IDS_NEXT);
!     g_pWiz->SetDefaultControl(IDNEXT);
! 
!     if (g_CfgData.bFirstServer) {
! 	ShowStatusMsg(IDS_MUST_REPLICATE);
! 	g_CfgData.configRep = CS_CONFIGURE;
! 	return;
!     }
  
!     if (g_CfgData.configRep == CS_ALREADY_CONFIGURED) {
! 	ShowStatusMsg(IDS_ALREADY_REPLICATED);
          return;
!     }
  
!     // If the replication of the root volumes could not be determined, we'll
!     // ask the user if they want to create them if they don't already exist.
!     if (!g_CfgData.bRootVolumesReplicationKnown) {
! 	SetWndText(hDlg, IDC_REPLICATE_QUESTION, IDS_REP_ROOT_VOLUMES_IF_NECESSARY_PROMPT);
          g_CfgData.configRep = CS_CONFIGURE;
! 	SetCheck(hDlg, IDC_REPLICATE);
          return;
!     }
  
!     // Should this step be disabled?  Yes, if this machine does
!     // not have a root.afs volume.
!     if (!ConfiguredOrConfiguring(g_CfgData.configRootVolumes)) {
! 	ShowStatusMsg(IDS_ROOT_AFS_DOESNT_EXIST);
! 	EnableStep(g_CfgData.configRep, FALSE);
! 	return;
!     }
! 
!     // Must do this in case it was disabled on the last run through
!     EnableStep(g_CfgData.configRep);
! 
!     if (g_CfgData.configRep == CS_DONT_CONFIGURE)
! 	SetCheck(hDlg, IDC_DONT_REPLICATE);
!     else if (g_CfgData.configRep == CS_CONFIGURE)
! 	SetCheck(hDlg, IDC_REPLICATE);
! }	
  
  
  /*
***************
*** 142,156 ****
   */
  static void ShowStatusMsg(UINT nMsgID)
  {
! 	TCHAR szMsg[cchRESOURCE];
  
! 	GetString(szMsg, nMsgID);
  
! 	ShowWnd(hDlg, IDC_REPLICATE_QUESTION, FALSE);
! 	ShowWnd(hDlg, IDC_REPLICATE, FALSE);
! 	ShowWnd(hDlg, IDC_DONT_REPLICATE, FALSE);
  
! 	ShowWnd(hDlg, IDC_CANT_REPLICATE_MSG);
! 	SetWndText(hDlg, IDC_CANT_REPLICATE_MSG, szMsg);
  }
  
--- 142,156 ----
   */
  static void ShowStatusMsg(UINT nMsgID)
  {
!     TCHAR szMsg[cchRESOURCE];
  
!     GetString(szMsg, nMsgID);
  
!     ShowWnd(hDlg, IDC_REPLICATE_QUESTION, FALSE);
!     ShowWnd(hDlg, IDC_REPLICATE, FALSE);
!     ShowWnd(hDlg, IDC_DONT_REPLICATE, FALSE);
  
!     ShowWnd(hDlg, IDC_CANT_REPLICATE_MSG);
!     SetWndText(hDlg, IDC_CANT_REPLICATE_MSG, szMsg);
  }
  
Index: openafs/src/WINNT/afssvrcfg/root_afs_page.cpp
diff -c openafs/src/WINNT/afssvrcfg/root_afs_page.cpp:1.2 openafs/src/WINNT/afssvrcfg/root_afs_page.cpp:1.2.32.1
*** openafs/src/WINNT/afssvrcfg/root_afs_page.cpp:1.2	Sat Nov  4 05:01:53 2000
--- openafs/src/WINNT/afssvrcfg/root_afs_page.cpp	Tue Dec 26 15:22:28 2006
***************
*** 46,83 ****
   */
  BOOL CALLBACK RootAfsPageDlgProc(HWND hwndDlg, UINT msg, WPARAM wp, LPARAM lp)
  {
! 	if (WizStep_Common_DlgProc (hwndDlg, msg, wp, lp))
! 		return FALSE;
  
! 	switch (msg) {
! 		case WM_INITDIALOG:
! 	         OnInitDialog(hwndDlg);
! 		     break;
! 
! 		case WM_COMMAND:
! 			switch (LOWORD(wp)) {
! 				case IDNEXT:
! 					g_pWiz->SetState(sidSTEP_TEN);
! 					break;
! 
! 				case IDBACK:
! 				   g_pWiz->SetState(sidSTEP_EIGHT);
! 				   break;
! 
! 				case IDC_DONT_CREATE_ROOT_VOLUMES:
! 					g_CfgData.configRootVolumes = CS_DONT_CONFIGURE;
! 					break;
! 
! 				case IDC_CREATE_ROOT_VOLUMES:
! 					g_CfgData.configRootVolumes = CS_CONFIGURE;
! 					break;
! 			}
! 		break;
  
! 	}
  
! 	return FALSE;
! }
  
  
  
--- 46,83 ----
   */
  BOOL CALLBACK RootAfsPageDlgProc(HWND hwndDlg, UINT msg, WPARAM wp, LPARAM lp)
  {
!     if (WizStep_Common_DlgProc (hwndDlg, msg, wp, lp))
! 	return FALSE;
  
!     switch (msg) {
!     case WM_INITDIALOG:
! 	OnInitDialog(hwndDlg);
! 	break;
! 
!     case WM_COMMAND:
! 	switch (LOWORD(wp)) {
! 	case IDNEXT:
! 	    g_pWiz->SetState(sidSTEP_TEN);
! 	    break;
! 
! 	case IDBACK:
! 	    g_pWiz->SetState(sidSTEP_EIGHT);
! 	    break;
! 
! 	case IDC_DONT_CREATE_ROOT_VOLUMES:
! 	    g_CfgData.configRootVolumes = CS_DONT_CONFIGURE;
! 	    break;
! 
! 	case IDC_CREATE_ROOT_VOLUMES:
! 	    g_CfgData.configRootVolumes = CS_CONFIGURE;
! 	    break;
! 	}	
! 	break;
  
!     }
  
!     return FALSE;
! }	
  
  
  
***************
*** 92,130 ****
   */
  static void OnInitDialog(HWND hwndDlg)
  {
! 	hDlg = hwndDlg;
  
! 	g_pWiz->EnableButtons(BACK_BUTTON | NEXT_BUTTON);
! 	g_pWiz->SetButtonText(IDNEXT, IDS_NEXT);
! 	g_pWiz->SetDefaultControl(IDNEXT);
! 
! 	if (g_CfgData.bFirstServer) {
! 		ShowStatusMsg(IDS_MUST_CREATE_ROOT_AFS);
! 		g_CfgData.configRootVolumes = CS_CONFIGURE;
! 		return;
! 	}
  
! 	if (g_CfgData.configRootVolumes == CS_ALREADY_CONFIGURED) {
! 		ShowStatusMsg(IDS_ROOT_AFS_ALREADY_EXISTS);
          return;
! 	}
  
! 	// If the existence of the root volumes could not be determined, we'll
! 	// ask the user if they want to create them if they don't already exist.
! 	if (!g_CfgData.bRootVolumesExistanceKnown) {
      	SetWndText(hDlg, IDC_ROOT_AFS_QUESTION, IDS_CREATE_ROOT_VOLUMES_IF_NECESSARY_PROMPT);
! 		SetCheck(hDlg, IDC_CREATE_ROOT_VOLUMES);
          g_CfgData.configRootVolumes = CS_CONFIGURE;
          return;
! 	}
  
! 	// Should this step be disabled?  Yes, if this machine does
! 	// not have a partition to make root.afs on.
! 	if (!ConfiguredOrConfiguring(g_CfgData.configPartition)) {
! 		ShowStatusMsg(IDS_NO_PARTITION_EXISTS);
! 		EnableStep(g_CfgData.configRootVolumes, FALSE);
! 		return;
! 	}
  
      // If root.afs exists already but root.cell does not exist, then 
      // the wizard cannot make root.cell and must disable this option.  
--- 92,130 ----
   */
  static void OnInitDialog(HWND hwndDlg)
  {
!     hDlg = hwndDlg;
  
!     g_pWiz->EnableButtons(BACK_BUTTON | NEXT_BUTTON);
!     g_pWiz->SetButtonText(IDNEXT, IDS_NEXT);
!     g_pWiz->SetDefaultControl(IDNEXT);
! 
!     if (g_CfgData.bFirstServer) {
! 	ShowStatusMsg(IDS_MUST_CREATE_ROOT_AFS);
! 	g_CfgData.configRootVolumes = CS_CONFIGURE;
! 	return;
!     }
  
!     if (g_CfgData.configRootVolumes == CS_ALREADY_CONFIGURED) {
! 	ShowStatusMsg(IDS_ROOT_AFS_ALREADY_EXISTS);
          return;
!     }
  
!     // If the existence of the root volumes could not be determined, we'll
!     // ask the user if they want to create them if they don't already exist.
!     if (!g_CfgData.bRootVolumesExistanceKnown) {
      	SetWndText(hDlg, IDC_ROOT_AFS_QUESTION, IDS_CREATE_ROOT_VOLUMES_IF_NECESSARY_PROMPT);
! 	SetCheck(hDlg, IDC_CREATE_ROOT_VOLUMES);
          g_CfgData.configRootVolumes = CS_CONFIGURE;
          return;
!     }
  
!     // Should this step be disabled?  Yes, if this machine does
!     // not have a partition to make root.afs on.
!     if (!ConfiguredOrConfiguring(g_CfgData.configPartition)) {
! 	ShowStatusMsg(IDS_NO_PARTITION_EXISTS);
! 	EnableStep(g_CfgData.configRootVolumes, FALSE);
! 	return;
!     }
  
      // If root.afs exists already but root.cell does not exist, then 
      // the wizard cannot make root.cell and must disable this option.  
***************
*** 133,153 ****
      // TODO:  We should handle this better in a future version where we can
      // add new messages.  The message catalog is frozen for this version
      // so we have to handle this case without adding new messages.
! 	if (g_CfgData.bRootAfsExists && !g_CfgData.bRootCellExists) {
          EnableWnd(hDlg, IDC_CREATE_ROOT_VOLUMES, FALSE);
! 		SetCheck(hDlg, IDC_DONT_CREATE_ROOT_VOLUMES);
          g_CfgData.configRootVolumes = CS_DONT_CONFIGURE;
          return;
! 	}
  
! 	// Must do this in case it was disabled on the last run through
! 	EnableStep(g_CfgData.configRootVolumes);
  
! 	if (g_CfgData.configRootVolumes == CS_DONT_CONFIGURE)
! 		SetCheck(hDlg, IDC_DONT_CREATE_ROOT_VOLUMES);
! 	else
! 		SetCheck(hDlg, IDC_CREATE_ROOT_VOLUMES);
! }
  
  
  /*
--- 133,153 ----
      // TODO:  We should handle this better in a future version where we can
      // add new messages.  The message catalog is frozen for this version
      // so we have to handle this case without adding new messages.
!     if (g_CfgData.bRootAfsExists && !g_CfgData.bRootCellExists) {
          EnableWnd(hDlg, IDC_CREATE_ROOT_VOLUMES, FALSE);
! 	SetCheck(hDlg, IDC_DONT_CREATE_ROOT_VOLUMES);
          g_CfgData.configRootVolumes = CS_DONT_CONFIGURE;
          return;
!     }
  
!     // Must do this in case it was disabled on the last run through
!     EnableStep(g_CfgData.configRootVolumes);
  
!     if (g_CfgData.configRootVolumes == CS_DONT_CONFIGURE)
! 	SetCheck(hDlg, IDC_DONT_CREATE_ROOT_VOLUMES);
!     else
! 	SetCheck(hDlg, IDC_CREATE_ROOT_VOLUMES);
! }	
  
  
  /*
***************
*** 156,171 ****
   */
  static void ShowStatusMsg(UINT nMsgID)
  {
! 	TCHAR szMsg[cchRESOURCE];
  
! 	GetString(szMsg, nMsgID);
  
! 	// Hide the controls that are at the same position as the message
! 	ShowWnd(hDlg, IDC_ROOT_AFS_QUESTION, FALSE);
! 	ShowWnd(hDlg, IDC_CREATE_ROOT_VOLUMES, FALSE);
! 	ShowWnd(hDlg, IDC_DONT_CREATE_ROOT_VOLUMES, FALSE);
  	
! 	SetWndText(hDlg, IDC_ROOT_AFS_MSG, szMsg);
! 	ShowWnd(hDlg, IDC_ROOT_AFS_MSG);
  }
  
--- 156,171 ----
   */
  static void ShowStatusMsg(UINT nMsgID)
  {
!     TCHAR szMsg[cchRESOURCE];
  
!     GetString(szMsg, nMsgID);
  
!     // Hide the controls that are at the same position as the message
!     ShowWnd(hDlg, IDC_ROOT_AFS_QUESTION, FALSE);
!     ShowWnd(hDlg, IDC_CREATE_ROOT_VOLUMES, FALSE);
!     ShowWnd(hDlg, IDC_DONT_CREATE_ROOT_VOLUMES, FALSE);
  	
!     SetWndText(hDlg, IDC_ROOT_AFS_MSG, szMsg);
!     ShowWnd(hDlg, IDC_ROOT_AFS_MSG);
  }
  
Index: openafs/src/WINNT/afssvrcfg/salvage_dlg.cpp
diff -c openafs/src/WINNT/afssvrcfg/salvage_dlg.cpp:1.3 openafs/src/WINNT/afssvrcfg/salvage_dlg.cpp:1.3.14.1
*** openafs/src/WINNT/afssvrcfg/salvage_dlg.cpp:1.3	Sun Dec  7 17:49:14 2003
--- openafs/src/WINNT/afssvrcfg/salvage_dlg.cpp	Tue Dec 26 15:22:28 2006
***************
*** 64,83 ****
   */
  BOOL ShowSalvageDlg(HWND hParent, LPCTSTR pszPartitionName)
  {	
! 	ASSERT(pszPartitionName);
  
! 	lstrcpy(szPartitionName, pszPartitionName);
  
! 	int nResult = ModalDialog(IDD_SALVAGE, hParent, (DLGPROC)SalvageDlgProc);
  
      if (nResult != IDOK)
          return FALSE;
  
! 	// Create a thread to perform the salvage
! 	DWORD dwThreadID;
! 	g_CfgData.hSalvageThread = CreateThread(0, 0, Salvage, 0, 0, &dwThreadID);
  
! 	return (g_CfgData.hSalvageThread != 0);
  }
  
  
--- 64,83 ----
   */
  BOOL ShowSalvageDlg(HWND hParent, LPCTSTR pszPartitionName)
  {	
!     ASSERT(pszPartitionName);
  
!     lstrcpy(szPartitionName, pszPartitionName);
  
!     int nResult = ModalDialog(IDD_SALVAGE, hParent, (DLGPROC)SalvageDlgProc);
  
      if (nResult != IDOK)
          return FALSE;
  
!     // Create a thread to perform the salvage
!     DWORD dwThreadID;
!     g_CfgData.hSalvageThread = CreateThread(0, 0, Salvage, 0, 0, &dwThreadID);
  
!     return (g_CfgData.hSalvageThread != 0);
  }
  
  
***************
*** 87,132 ****
   */
  BOOL CALLBACK SalvageDlgProc(HWND hwndDlg, UINT msg, WPARAM wp, LPARAM lp)
  {
! 	if (AfsAppLib_HandleHelp(IDD_SALVAGE, hwndDlg, msg, wp, lp))
! 		return TRUE;
  
! 	switch (msg) {
! 		case WM_INITDIALOG:
! 			OnInitDialog(hwndDlg);
! 			break;
! 
! 		case WM_COMMAND:
! 			switch (LOWORD(wp)) {
! 				case IDC_VOLUME_NAME:
! 				case IDC_NUM_PROCESSES:
! 				case IDC_LOG_FILE:
! 				case IDC_TEMP_DIR:
! 					if (HIWORD(wp) == EN_CHANGE)
! 						UpdateControls();
! 					break;
! 
! 				case IDC_SERVER:
! 				case IDC_PARTITION:
! 				case IDC_VOLUME:
! 				case IDC_NUM_PROCESSES_CHECKBOX:
! 					UpdateControls();
! 					break;
! 
! 				case IDC_ADVANCED:
! 					OnAdvanced();
! 					break;
! 
! 				case IDCANCEL:
! 					EndDialog(hDlg, IDCANCEL);
! 					break;
! 
! 				case IDOK:
!                     if (OnSalvage())
! 						EndDialog(hDlg, IDOK);
! 					break;
! 			}
! 		break;
!     }
  
      return FALSE;
  }
--- 87,132 ----
   */
  BOOL CALLBACK SalvageDlgProc(HWND hwndDlg, UINT msg, WPARAM wp, LPARAM lp)
  {
!     if (AfsAppLib_HandleHelp(IDD_SALVAGE, hwndDlg, msg, wp, lp))
! 	return TRUE;
  
!     switch (msg) {
!     case WM_INITDIALOG:
! 	OnInitDialog(hwndDlg);
! 	break;
! 
!     case WM_COMMAND:
! 	switch (LOWORD(wp)) {
! 	case IDC_VOLUME_NAME:
! 	case IDC_NUM_PROCESSES:
! 	case IDC_LOG_FILE:
! 	case IDC_TEMP_DIR:
! 	    if (HIWORD(wp) == EN_CHANGE)
! 		UpdateControls();
! 	    break;
! 
! 	case IDC_SERVER:
! 	case IDC_PARTITION:
! 	case IDC_VOLUME:
! 	case IDC_NUM_PROCESSES_CHECKBOX:
! 	    UpdateControls();
! 	    break;
! 
! 	case IDC_ADVANCED:
! 	    OnAdvanced();
! 	    break;
! 
! 	case IDCANCEL:
! 	    EndDialog(hDlg, IDCANCEL);
! 	    break;
! 
! 	case IDOK:
! 	    if (OnSalvage())
! 		EndDialog(hDlg, IDOK);
! 	    break;
! 	}
! 	break;
!     }		
  
      return FALSE;
  }
***************
*** 143,190 ****
   */
  static void OnInitDialog(HWND hwndDlg)
  {
! 	hDlg = hwndDlg;
  
! 	bAdvanced = TRUE;
  
! 	TCHAR szNumProcesses[32];
! 	_itot(DEFAULT_NUM_PROCESSES, szNumProcesses, 10);
  
! 	SetWndText(hDlg, IDC_NUM_PROCESSES, szNumProcesses);
! 	SetCheck(hDlg, IDC_NUM_PROCESSES_CHECKBOX);
! 	SetWndText(hDlg, IDC_LOG_FILE, A2S(DEFAULT_LOG_FILE));
! 
! 	// If a partition name isn't selected, then only allow the salvage server option
! 	if (szPartitionName[0] == 0) {
! 		SetEnable(hDlg, IDC_PARTITION, ES_DISABLE);
! 		SetEnable(hDlg, IDC_VOLUME, ES_DISABLE);
! 		SetCheck(hDlg, IDC_SERVER);
! 	} else
! 		SetCheck(hDlg, IDC_PARTITION);
  	
! 	// Close the Advanced portion of the dialog
! 	OnAdvanced();
  }
  
  static void OnAdvanced()
  {
      static int nOffset = 0;
  
! 	bAdvanced = !bAdvanced;
  
! 	ShowAndEnable(hDlg, IDC_ADVANCED_FRAME, bAdvanced);	
! 	ShowAndEnable(hDlg, IDC_LOG_FILE, bAdvanced);
! 	ShowAndEnable(hDlg, IDC_LOG_FILE_LABEL, bAdvanced);
! 	ShowAndEnable(hDlg, IDC_NUM_PROCESSES, bAdvanced);
! 	ShowAndEnable(hDlg, IDC_TEMP_DIR, bAdvanced);
! 	ShowAndEnable(hDlg, IDC_TEMP_DIR_LABEL, bAdvanced);
! 	ShowAndEnable(hDlg, IDC_NUM_PROCESSES_CHECKBOX, bAdvanced);
! 	ShowAndEnable(hDlg, IDC_DAMAGED_VOLUMES, bAdvanced);
! 	ShowAndEnable(hDlg, IDC_SMALL_BLOCK_READS, bAdvanced);
! 	ShowAndEnable(hDlg, IDC_FORCE_SALVAGE, bAdvanced);
! 	ShowAndEnable(hDlg, IDC_FORCE_REBUILD, bAdvanced);
! 	ShowAndEnable(hDlg, IDC_LIST_DAMAGED_INODES, bAdvanced);
! 	ShowAndEnable(hDlg, IDC_LIST_OWNED_INDOES, bAdvanced);
  
      // To show or hide the advanced section, we have to resize the dialog
  
--- 143,190 ----
   */
  static void OnInitDialog(HWND hwndDlg)
  {
!     hDlg = hwndDlg;
  
!     bAdvanced = TRUE;
  
!     TCHAR szNumProcesses[32];
!     _itot(DEFAULT_NUM_PROCESSES, szNumProcesses, 10);
  
!     SetWndText(hDlg, IDC_NUM_PROCESSES, szNumProcesses);
!     SetCheck(hDlg, IDC_NUM_PROCESSES_CHECKBOX);
!     SetWndText(hDlg, IDC_LOG_FILE, A2S(DEFAULT_LOG_FILE));
! 
!     // If a partition name isn't selected, then only allow the salvage server option
!     if (szPartitionName[0] == 0) {
! 	SetEnable(hDlg, IDC_PARTITION, ES_DISABLE);
! 	SetEnable(hDlg, IDC_VOLUME, ES_DISABLE);
! 	SetCheck(hDlg, IDC_SERVER);
!     } else
! 	SetCheck(hDlg, IDC_PARTITION);
  	
!     // Close the Advanced portion of the dialog
!     OnAdvanced();
  }
  
  static void OnAdvanced()
  {
      static int nOffset = 0;
  
!     bAdvanced = !bAdvanced;
  
!     ShowAndEnable(hDlg, IDC_ADVANCED_FRAME, bAdvanced);	
!     ShowAndEnable(hDlg, IDC_LOG_FILE, bAdvanced);
!     ShowAndEnable(hDlg, IDC_LOG_FILE_LABEL, bAdvanced);
!     ShowAndEnable(hDlg, IDC_NUM_PROCESSES, bAdvanced);
!     ShowAndEnable(hDlg, IDC_TEMP_DIR, bAdvanced);
!     ShowAndEnable(hDlg, IDC_TEMP_DIR_LABEL, bAdvanced);
!     ShowAndEnable(hDlg, IDC_NUM_PROCESSES_CHECKBOX, bAdvanced);
!     ShowAndEnable(hDlg, IDC_DAMAGED_VOLUMES, bAdvanced);
!     ShowAndEnable(hDlg, IDC_SMALL_BLOCK_READS, bAdvanced);
!     ShowAndEnable(hDlg, IDC_FORCE_SALVAGE, bAdvanced);
!     ShowAndEnable(hDlg, IDC_FORCE_REBUILD, bAdvanced);
!     ShowAndEnable(hDlg, IDC_LIST_DAMAGED_INODES, bAdvanced);
!     ShowAndEnable(hDlg, IDC_LIST_OWNED_INDOES, bAdvanced);
  
      // To show or hide the advanced section, we have to resize the dialog
  
***************
*** 205,249 ****
          nOffset = rectDlg.bottom - rectFrame.top - 3;
      }
  
! 	int nCurOffset = nOffset;
  
      if (!bAdvanced)
! 		nCurOffset *= -1;
  	
      // Adjust dialog position
! 	MoveWindow(hDlg, rectDlg.left, rectDlg.top, rectDlg.right - rectDlg.left, rectDlg.bottom - rectDlg.top + nCurOffset, TRUE);
  
! 	SetWndText(hDlg, IDC_ADVANCED, bAdvanced ? IDS_ADVANCED_OPEN : IDS_ADVANCED_CLOSED);
  }
  
  static void UpdateControls()
  {
! 	// Update volume name controls
! 	BOOL bVolume = IsButtonChecked(hDlg, IDC_VOLUME);
! 	ENABLE_STATE es = bVolume ? ES_ENABLE : ES_DISABLE;
! 	SetEnable(hDlg, IDC_VOLUME_NAME, es);
! 	SetEnable(hDlg, IDC_VOLUME_NAME_LABEL, es);
! 	GetWndText(hDlg, IDC_VOLUME_NAME, szVolumeName);
! 
! 	// Num processes edit control
! 	BOOL bParallel = IsButtonChecked(hDlg, IDC_NUM_PROCESSES_CHECKBOX);
! 	SetEnable(hDlg, IDC_NUM_PROCESSES, (ENABLE_STATE)bParallel);
! 	GetWndText(hDlg, IDC_NUM_PROCESSES, szNumProcesses, NUM_PROCS_BUF_SIZE);
! 
! 	GetWndText(hDlg, IDC_LOG_FILE, g_CfgData.szSalvageLogFileName, _MAX_PATH);
! 	GetWndText(hDlg, IDC_TEMP_DIR, szTempDir, _MAX_PATH);
! 
! 	// Should OK button be enabled or disabled?
! 	BOOL bEnable = TRUE;
  
! 	if (bVolume)
! 		bEnable = !!lstrlen(szVolumeName);
  
! 	if (bEnable && bParallel)
! 		bEnable = !!lstrlen(szNumProcesses);
  
! 	SetEnable(hDlg, IDOK, (ENABLE_STATE)bEnable);
! }
  
  /*
   * Utility Functions _________________________________________________________________
--- 205,249 ----
          nOffset = rectDlg.bottom - rectFrame.top - 3;
      }
  
!     int nCurOffset = nOffset;
  
      if (!bAdvanced)
! 	nCurOffset *= -1;
  	
      // Adjust dialog position
!     MoveWindow(hDlg, rectDlg.left, rectDlg.top, rectDlg.right - rectDlg.left, rectDlg.bottom - rectDlg.top + nCurOffset, TRUE);
  
!     SetWndText(hDlg, IDC_ADVANCED, bAdvanced ? IDS_ADVANCED_OPEN : IDS_ADVANCED_CLOSED);
  }
  
  static void UpdateControls()
  {
!     // Update volume name controls
!     BOOL bVolume = IsButtonChecked(hDlg, IDC_VOLUME);
!     ENABLE_STATE es = bVolume ? ES_ENABLE : ES_DISABLE;
!     SetEnable(hDlg, IDC_VOLUME_NAME, es);
!     SetEnable(hDlg, IDC_VOLUME_NAME_LABEL, es);
!     GetWndText(hDlg, IDC_VOLUME_NAME, szVolumeName);
! 
!     // Num processes edit control
!     BOOL bParallel = IsButtonChecked(hDlg, IDC_NUM_PROCESSES_CHECKBOX);
!     SetEnable(hDlg, IDC_NUM_PROCESSES, (ENABLE_STATE)bParallel);
!     GetWndText(hDlg, IDC_NUM_PROCESSES, szNumProcesses, NUM_PROCS_BUF_SIZE);
! 
!     GetWndText(hDlg, IDC_LOG_FILE, g_CfgData.szSalvageLogFileName, _MAX_PATH);
!     GetWndText(hDlg, IDC_TEMP_DIR, szTempDir, _MAX_PATH);
! 
!     // Should OK button be enabled or disabled?
!     BOOL bEnable = TRUE;
  
!     if (bVolume)
! 	bEnable = !!lstrlen(szVolumeName);
  
!     if (bEnable && bParallel)
! 	bEnable = !!lstrlen(szNumProcesses);
  
!     SetEnable(hDlg, IDOK, (ENABLE_STATE)bEnable);
! }	
  
  /*
   * Utility Functions _________________________________________________________________
***************
*** 251,309 ****
   */
  static BOOL OnSalvage()
  {
! 	if (IsButtonChecked(hDlg, IDC_SERVER)) {
! 		pszPartitionName = 0;
! 		pszVolumeName = 0;
! 	} else if (IsButtonChecked(hDlg, IDC_PARTITION)) {
! 		pszPartitionName = szPartitionName;
! 		pszVolumeName = 0;
! 	} else if (IsButtonChecked(hDlg, IDC_VOLUME)) {
! 		pszPartitionName = szPartitionName;
! 		pszVolumeName = szVolumeName;
! 	}
  
! 	nNumProcesses = DEFAULT_NUM_PROCESSES;
! 	if (IsButtonChecked(hDlg, IDC_NUM_PROCESSES_CHECKBOX)) {
! 		nNumProcesses = _ttoi(szNumProcesses);
! 		if ((nNumProcesses < MIN_NUM_PROCESSES) || (nNumProcesses > MAX_NUM_PROCESSES)) {
! 			ShowError(hDlg, 0, IDS_INVALID_NUM_SALVAGE_PROCESSSES);
! 			return FALSE;
! 		}
  	}
  
! 	if (!g_CfgData.bReuseAdminInfo) {
          if (!GetAdminInfo(hDlg, GAIO_LOGIN_ONLY))
!     		return FALSE;
  
          if (!GetHandles(hDlg))
              return FALSE;
!     }
  
! 	return TRUE;
  }
  
  static DWORD WINAPI Salvage(LPVOID param)
  {
! 	afs_status_t nStatus;
! 	void *hServer;
! 	int nResult; 
! 
! 	nResult = bos_ServerOpen(g_hCell, GetHostnameA(), &hServer, &nStatus);
! 	if (!nResult) {
! 		ShowError(hDlg, nStatus, IDS_BOS_OPEN_FAILED);
! 		return FALSE;
! 	}
  
! 	nResult = bos_Salvage(g_hCell, hServer, S2A(pszPartitionName), S2A(pszVolumeName), nNumProcesses, S2A(szTempDir), 0, VOS_NORMAL,
! 								BOS_SALVAGE_DAMAGED_VOLUMES, BOS_SALVAGE_DONT_WRITE_INODES, BOS_SALVAGE_DONT_WRITE_ROOT_INODES,
! 								BOS_SALVAGE_DONT_FORCE_DIRECTORIES, BOS_SALVAGE_DONT_FORCE_BLOCK_READS, &nStatus);
! 	if (!nResult)
      	ShowError(hDlg, nStatus, IDS_SALVAGE_ERROR);
  
      bos_ServerClose(hServer, &nStatus);
      
      g_CfgData.bReuseAdminInfo = nResult;
  
! 	return nResult;
  }
  
--- 251,309 ----
   */
  static BOOL OnSalvage()
  {
!     if (IsButtonChecked(hDlg, IDC_SERVER)) {
! 	pszPartitionName = 0;
! 	pszVolumeName = 0;
!     } else if (IsButtonChecked(hDlg, IDC_PARTITION)) {
! 	pszPartitionName = szPartitionName;
! 	pszVolumeName = 0;
!     } else if (IsButtonChecked(hDlg, IDC_VOLUME)) {
! 	pszPartitionName = szPartitionName;
! 	pszVolumeName = szVolumeName;
!     }
  
!     nNumProcesses = DEFAULT_NUM_PROCESSES;
!     if (IsButtonChecked(hDlg, IDC_NUM_PROCESSES_CHECKBOX)) {
! 	nNumProcesses = _ttoi(szNumProcesses);
! 	if ((nNumProcesses < MIN_NUM_PROCESSES) || (nNumProcesses > MAX_NUM_PROCESSES)) {
! 	    ShowError(hDlg, 0, IDS_INVALID_NUM_SALVAGE_PROCESSSES);
! 	    return FALSE;
  	}
+     }
  
!     if (!g_CfgData.bReuseAdminInfo) {
          if (!GetAdminInfo(hDlg, GAIO_LOGIN_ONLY))
! 	    return FALSE;
  
          if (!GetHandles(hDlg))
              return FALSE;
!     }	
  
!     return TRUE;
  }
  
  static DWORD WINAPI Salvage(LPVOID param)
  {
!     afs_status_t nStatus;
!     void *hServer;
!     int nResult; 
! 
!     nResult = bos_ServerOpen(g_hCell, GetHostnameA(), &hServer, &nStatus);
!     if (!nResult) {
! 	ShowError(hDlg, nStatus, IDS_BOS_OPEN_FAILED);
! 	return FALSE;
!     }
  
!     nResult = bos_Salvage(g_hCell, hServer, S2A(pszPartitionName), S2A(pszVolumeName), nNumProcesses, S2A(szTempDir), 0, VOS_NORMAL,
! 			   BOS_SALVAGE_DAMAGED_VOLUMES, BOS_SALVAGE_DONT_WRITE_INODES, BOS_SALVAGE_DONT_WRITE_ROOT_INODES,
! 			   BOS_SALVAGE_DONT_FORCE_DIRECTORIES, BOS_SALVAGE_DONT_FORCE_BLOCK_READS, &nStatus);
!     if (!nResult)
      	ShowError(hDlg, nStatus, IDS_SALVAGE_ERROR);
  
      bos_ServerClose(hServer, &nStatus);
      
      g_CfgData.bReuseAdminInfo = nResult;
  
!     return nResult;
  }
  
Index: openafs/src/WINNT/afssvrcfg/salvage_results_dlg.cpp
diff -c openafs/src/WINNT/afssvrcfg/salvage_results_dlg.cpp:1.3 openafs/src/WINNT/afssvrcfg/salvage_results_dlg.cpp:1.3.14.1
*** openafs/src/WINNT/afssvrcfg/salvage_results_dlg.cpp:1.3	Sat Nov 29 15:23:31 2003
--- openafs/src/WINNT/afssvrcfg/salvage_results_dlg.cpp	Tue Dec 26 15:22:28 2006
***************
*** 70,78 ****
   */
  BOOL ShowSalvageResults(HWND hParent)
  {	
! 	int nResult = ModalDialog(IDD_SALVAGE_RESULTS, hParent, (DLGPROC)SalvageResultsDlgProc);
  
! 	return (nResult == IDOK);
  }
  
  
--- 70,78 ----
   */
  BOOL ShowSalvageResults(HWND hParent)
  {	
!     int nResult = ModalDialog(IDD_SALVAGE_RESULTS, hParent, (DLGPROC)SalvageResultsDlgProc);
  
!     return (nResult == IDOK);
  }
  
  
***************
*** 82,115 ****
   */
  BOOL CALLBACK SalvageResultsDlgProc(HWND hwndDlg, UINT msg, WPARAM wp, LPARAM lp)
  {
! 	if (AfsAppLib_HandleHelp(IDD_SALVAGE_RESULTS, hwndDlg, msg, wp, lp))
! 		return TRUE;
  
! 	switch (msg) {
! 		case WM_INITDIALOG:
! 			OnInitDialog(hwndDlg);
! 			break;
! 
! 		case WM_COMMAND:
! 			switch (LOWORD(wp)) {
! 				case IDC_CLOSE:
!                     OnClose();
! 					break;
! 
!                 case IDCANCEL:
!                     if (bSalvageComplete)
!                         OnClose();
! 			}
! 		    break;
! 
! 		case WM_SIZE:	
! 			if (lp != 0)
! 				ResizeWindow(hwndDlg, arwDialog, rwaFixupGuts);
! 			break;
  	}
  
      return FALSE;
! }
  
  
  /*
--- 82,115 ----
   */
  BOOL CALLBACK SalvageResultsDlgProc(HWND hwndDlg, UINT msg, WPARAM wp, LPARAM lp)
  {
!     if (AfsAppLib_HandleHelp(IDD_SALVAGE_RESULTS, hwndDlg, msg, wp, lp))
! 	return TRUE;
  
!     switch (msg) {
!     case WM_INITDIALOG:
! 	OnInitDialog(hwndDlg);
! 	break;
! 
!     case WM_COMMAND:
! 	switch (LOWORD(wp)) {
! 	case IDC_CLOSE:
! 	    OnClose();
! 	    break;
! 
! 	case IDCANCEL:
! 	    if (bSalvageComplete)
! 		OnClose();
  	}
+ 	break;
+ 
+     case WM_SIZE:	
+ 	if (lp != 0)
+ 	    ResizeWindow(hwndDlg, arwDialog, rwaFixupGuts);
+ 	break;
+     }
  
      return FALSE;
! }	
  
  
  /*
***************
*** 123,129 ****
   */
  static void OnInitDialog(HWND hwndDlg)
  {
! 	hDlg = hwndDlg;
  
      bSalvageComplete = FALSE;
  
--- 123,129 ----
   */
  static void OnInitDialog(HWND hwndDlg)
  {
!     hDlg = hwndDlg;
  
      bSalvageComplete = FALSE;
  
***************
*** 135,145 ****
  
      SetMessages(IDS_SALVAGING, IDS_CURRENT_SALVAGE_LOG);
  
! 	nResult = bos_ServerOpen(g_hCell, GetHostnameA(), &hServer, &nStatus);
! 	if (!nResult) {
! 		ShowError(hDlg, nStatus, IDS_BOS_OPEN_FAILED);
! 		return;
! 	}
  
      // Remove the start menu - we do this so the user can't close
      // the dialog while salvage is being performed.
--- 135,145 ----
  
      SetMessages(IDS_SALVAGING, IDS_CURRENT_SALVAGE_LOG);
  
!     nResult = bos_ServerOpen(g_hCell, GetHostnameA(), &hServer, &nStatus);
!     if (!nResult) {
! 	ShowError(hDlg, nStatus, IDS_BOS_OPEN_FAILED);
! 	return;
!     }
  
      // Remove the start menu - we do this so the user can't close
      // the dialog while salvage is being performed.
***************
*** 148,162 ****
      dw &= ~WS_SYSMENU;
      SetWindowLong(hDlg, GWL_STYLE, dw);
  
! 	// Create a thread to keep the view of the log up to date
! 	DWORD dwThreadID;
! 	HANDLE hThread = CreateThread(0, 0, ShowResults, 0, 0, &dwThreadID);
! 	CloseHandle(hThread);
  }
  
  static void OnClose()
  {
! 	bos_ServerClose(hServer, &nStatus);
  
      EndDialog(hDlg, IDOK);
  }
--- 148,162 ----
      dw &= ~WS_SYSMENU;
      SetWindowLong(hDlg, GWL_STYLE, dw);
  
!     // Create a thread to keep the view of the log up to date
!     DWORD dwThreadID;
!     HANDLE hThread = CreateThread(0, 0, ShowResults, 0, 0, &dwThreadID);
!     CloseHandle(hThread);
  }
  
  static void OnClose()
  {
!     bos_ServerClose(hServer, &nStatus);
  
      EndDialog(hDlg, IDOK);
  }
***************
*** 186,192 ****
      while (*pInBuf) {
          if (*pInBuf == '\n')
              nNumNLs++;
! 		pInBuf++;
      }
  
      // Allocate enough memory for the log buffer plus CRs plus a NULL
--- 186,192 ----
      while (*pInBuf) {
          if (*pInBuf == '\n')
              nNumNLs++;
! 	pInBuf++;
      }
  
      // Allocate enough memory for the log buffer plus CRs plus a NULL
***************
*** 205,211 ****
          } else
              *pOutBuf++ = *pInBuf;
  		
! 		pInBuf++;
      }
  
      *pOutBuf = 0;
--- 205,211 ----
          } else
              *pOutBuf++ = *pInBuf;
  		
! 	pInBuf++;
      }
  
      *pOutBuf = 0;
***************
*** 231,238 ****
      while (*psz && (*psz != '\n'))
          psz++;
  
! 	if (*psz == '\n')
! 		psz++;
  
      return psz;
  }    
--- 231,238 ----
      while (*psz && (*psz != '\n'))
          psz++;
  
!     if (*psz == '\n')
! 	psz++;
  
      return psz;
  }    
***************
*** 258,272 ****
      if (!pszFileName[0])
          return;
  
! 	FILE *fp = fopen(pszFileName, "w");
! 	if (!fp) {
! 		ShowError(hDlg, 0, IDS_ERROR_SAVING_SALVAGE_LOG_TO_DISK);
! 		return;
! 	}
  
! 	fprintf(fp, "%s", pszLogBuf);
  
! 	fclose(fp);
  }
  
  static DWORD WINAPI ShowResults(LPVOID param)
--- 258,272 ----
      if (!pszFileName[0])
          return;
  
!     FILE *fp = fopen(pszFileName, "w");
!     if (!fp) {
! 	ShowError(hDlg, 0, IDS_ERROR_SAVING_SALVAGE_LOG_TO_DISK);
! 	return;
!     }
  
!     fprintf(fp, "%s", pszLogBuf);
  
!     fclose(fp);
  }
  
  static DWORD WINAPI ShowResults(LPVOID param)
***************
*** 289,295 ****
          // In either case, update the log display for the user
  
          // Get the salvage log as it currently exists
! getlog: nResult = bos_LogGet(hServer, "SalvageLog", &nLogSize, pszLogBuf, &nStatus);
          if (!nResult) {
              if (nStatus == ADMMOREDATA) {
                  // If salvage isn't done, then get a bigger buffer than we need to
--- 289,296 ----
          // In either case, update the log display for the user
  
          // Get the salvage log as it currently exists
!       getlog: 
! 	nResult = bos_LogGet(hServer, "SalvageLog", &nLogSize, pszLogBuf, &nStatus);
          if (!nResult) {
              if (nStatus == ADMMOREDATA) {
                  // If salvage isn't done, then get a bigger buffer than we need to
***************
*** 331,337 ****
  
      if (rc) {
          SetMessages(IDS_SALVAGE_COMPLETE, IDS_FINAL_SALVAGE_LOG);
! 		SaveLogToDisk(pszLogBufWithCRs, GetSalvageLogFileNameA());
          MsgBox(hDlg, IDS_SALVAGE_COMPLETE, GetAppTitleID(), MB_OK);
      } else {
          SetMessages(IDS_SALVAGING, IDS_CANT_GET_SALVAGE_LOG);
--- 332,338 ----
  
      if (rc) {
          SetMessages(IDS_SALVAGE_COMPLETE, IDS_FINAL_SALVAGE_LOG);
! 	SaveLogToDisk(pszLogBufWithCRs, GetSalvageLogFileNameA());
          MsgBox(hDlg, IDS_SALVAGE_COMPLETE, GetAppTitleID(), MB_OK);
      } else {
          SetMessages(IDS_SALVAGING, IDS_CANT_GET_SALVAGE_LOG);
Index: openafs/src/WINNT/afssvrcfg/services_page.cpp
diff -c openafs/src/WINNT/afssvrcfg/services_page.cpp:1.4 openafs/src/WINNT/afssvrcfg/services_page.cpp:1.4.14.1
*** openafs/src/WINNT/afssvrcfg/services_page.cpp:1.4	Mon Jul 26 16:39:43 2004
--- openafs/src/WINNT/afssvrcfg/services_page.cpp	Tue Dec 26 15:22:28 2006
***************
*** 86,129 ****
   */
  BOOL CALLBACK ServicesPageDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
  {
! 	if (AfsAppLib_HandleHelp(IDD_SERVICES_PAGE, hwndDlg, uMsg, wParam, lParam))
! 		return TRUE;
  
! 	switch (uMsg) {
! 		case WM_INITDIALOG:		OnInitDialog(hwndDlg);
! 								break;
   
! 		case WM_COMMAND:	switch (LOWORD(wParam)) {
! 								case IDC_DB_SERVICE:	OnDbService();
! 														break;
! 
! 								case IDC_BK_SERVICE:	OnBakService();
! 														break;
! 
! 								case IDC_FS_SERVICE:	OnFsService();
! 														break;
! 
! 								case IDC_SCC:			OnScClient();
! 														break;
! 
! 								case IDC_SCS:			OnScServer();
! 														break;
! 
! 								case IDC_SC_MACHINE:	if (HIWORD(wParam) == EN_CHANGE) {
! 															OnScMachineChange();
! 														}
! 														break;
! 							
! 								case IDAPPLY:			PrepareToConfig();
! 														break;
! 							}
! 							break;
  	}
  
! 	CheckEnableApply();
  
! 	return FALSE;
! }	
  
  
  /*
--- 86,138 ----
   */
  BOOL CALLBACK ServicesPageDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
  {
!     if (AfsAppLib_HandleHelp(IDD_SERVICES_PAGE, hwndDlg, uMsg, wParam, lParam))
! 	return TRUE;
  
!     switch (uMsg) {
!     case WM_INITDIALOG:
! 	OnInitDialog(hwndDlg);
! 	break;
   
!     case WM_COMMAND:
! 	switch (LOWORD(wParam)) {
! 	case IDC_DB_SERVICE: 
! 	    OnDbService();
! 	    break;
! 
! 	case IDC_BK_SERVICE:
! 	    OnBakService();
! 	    break;
! 
! 	case IDC_FS_SERVICE:
! 	    OnFsService();
! 	    break;
! 
! 	case IDC_SCC:
! 	    OnScClient();
! 	    break;
! 
! 	case IDC_SCS:  
! 	    OnScServer();
! 	    break;
! 
! 	case IDC_SC_MACHINE:
! 	    if (HIWORD(wParam) == EN_CHANGE) {
! 		OnScMachineChange();
! 	    }
! 	    break;
! 
! 	case IDAPPLY: 
! 	    PrepareToConfig();
! 	    break;
  	}
+ 	break;
+     }
  
!     CheckEnableApply();
  
!     return FALSE;
! }		
  
  
  /*
***************
*** 132,480 ****
   */
  static void OnInitDialog(HWND hwndDlg)
  {
! 	hDlg = hwndDlg;
  
! 	// Show the initial services config
! 	ShowInitialConfig();
! 	ShowServiceStates();
! 
! 	MakeBold(hDlg, IDC_DB_SERVICE);
! 	MakeBold(hDlg, IDC_FS_SERVICE);
! 	MakeBold(hDlg, IDC_BK_SERVICE);
! 	MakeBold(hDlg, IDC_SCC);
! 	MakeBold(hDlg, IDC_SCS);
  }
  
  static void EnableScMachine(BOOL bEnable)
! {
! 	SetEnable(hDlg, IDC_SC_MACHINE_LABEL, (ENABLE_STATE)bEnable);
! 	SetEnable(hDlg, IDC_SC_MACHINE, (ENABLE_STATE)bEnable);
! 
! 	bSettingScMachine = TRUE;
! 	SetWndText(hDlg, IDC_SC_MACHINE, bEnable ? szScMachine : TEXT(""));
! 	bSettingScMachine = FALSE;
! }
  
  static void ShowInitialConfig()
  {
! 	// FS
! 	bFsRunning = Configured(g_CfgData.configFS);
! 	if (bFsRunning) {
! 		SetCheck(hDlg, IDC_FS_SERVICE);
! 		SetWndText(hDlg, IDC_FS_STATUS_MSG, IDS_FS_RUNNING);
! 		SetWndText(hDlg, IDC_FS_ACTION_MSG, IDS_FS_HOW_TO_STOP);
! 	} else {
! 		SetCheck(hDlg, IDC_FS_SERVICE, FALSE);
! 		SetWndText(hDlg, IDC_FS_STATUS_MSG, IDS_FS_STOPPED);
! 		SetWndText(hDlg, IDC_FS_ACTION_MSG, IDS_FS_HOW_TO_RUN);
! 	}
  
! 	bFsOn = bFsRunning;
  
      // DB
! 	Set2State(hDlg, IDC_DB_SERVICE);
! 	
! 	bDbRunning = Configured(g_CfgData.configDB);
! 	if (bDbRunning) {
! 		SetCheck(hDlg, IDC_DB_SERVICE);
! 		SetWndText(hDlg, IDC_DB_STATUS_MSG, IDS_DB_RUNNING);
! 		SetWndText(hDlg, IDC_DB_ACTION_MSG, IDS_DB_HOW_TO_STOP);
! 	} else if (bDbParial) {
! 		SetCheck(hDlg, IDC_DB_SERVICE, BST_INDETERMINATE);
! 		SetWndText(hDlg, IDC_DB_STATUS_MSG, IDS_DB_PARTIAL_CONFIG);
! 		SetWndText(hDlg, IDC_DB_ACTION_MSG, IDS_DB_DETAILS);
! 		ShowWnd(hDlg, IDC_DB_DETAILS);
! 		Set3State(hDlg, IDC_DB_SERVICE);
! 	} else {
! 		SetCheck(hDlg, IDC_DB_SERVICE, FALSE);
! 		SetWndText(hDlg, IDC_DB_STATUS_MSG, IDS_DB_STOPPED);
! 		SetWndText(hDlg, IDC_DB_ACTION_MSG, IDS_DB_HOW_TO_RUN);
! 	}
  
! 	bDbOn = bDbRunning;
  
! 	// BK
! 	bBakRunning = Configured(g_CfgData.configBak);
! 	SetEnable(hDlg, IDC_BK_SERVICE, ES_ENABLE);
! 	if (bBakRunning) {
! 		SetCheck(hDlg, IDC_BK_SERVICE);
  		SetWndText(hDlg, IDC_BK_STATUS_MSG, IDS_BK_RUNNING);
  		SetWndText(hDlg, IDC_BK_ACTION_MSG, IDS_BK_HOW_TO_STOP);
  	} else {
! 		SetCheck(hDlg, IDC_BK_SERVICE, FALSE);
  		SetWndText(hDlg, IDC_BK_STATUS_MSG, IDS_BK_STOPPED);
  		SetWndText(hDlg, IDC_BK_ACTION_MSG, IDS_BK_HOW_TO_RUN);
  	}
  
! 	bBakOn = bBakRunning;
  
! 	// SC Server
! 	bScsRunning = Configured(g_CfgData.configSCS);
! 	SetEnable(hDlg, IDC_SCS, ES_ENABLE);
! 	if (bScsRunning) {
! 		SetCheck(hDlg, IDC_SCS);
  		SetWndText(hDlg, IDC_SCS_ACTION_MSG, IDS_SCS_HOW_TO_STOP);
  	} else {
! 		SetCheck(hDlg, IDC_SCS, FALSE);
  		SetWndText(hDlg, IDC_SCS_STATUS_MSG, IDS_SCS_STOPPED);
  		SetWndText(hDlg, IDC_SCS_ACTION_MSG, IDS_SCS_HOW_TO_RUN);
  	}
  
! 	bScsOn = bScsRunning;
! 
! 	// SC Client
! 	bSccRunning = Configured(g_CfgData.configSCC);
! 	SetEnable(hDlg, IDC_SCC, ES_ENABLE);
! 	if (bSccRunning) {
! 		SetCheck(hDlg, IDC_SCC);
  		SetWndText(hDlg, IDC_SCC_ACTION_MSG, IDS_SCC_HOW_TO_STOP);
! 		EnableScMachine();
! 		lstrcpy(szScMachine, g_CfgData.szSysControlMachine);
  	} else {
! 		SetCheck(hDlg, IDC_SCC, FALSE);
  		SetWndText(hDlg, IDC_SCC_STATUS_MSG, IDS_SCC_STOPPED);
  		SetWndText(hDlg, IDC_SCC_ACTION_MSG, IDS_SCC_HOW_TO_RUN);
! 		EnableScMachine(FALSE);
! 	}
! 
! 	bSccOn = bSccRunning;
! }
! 
! static void ShowServiceStates()
! {
! 	// FS
! 	if (bFsOn) {
! 		if (bFsRunning)
! 			SetWndText(hDlg, IDC_FS_ACTION_MSG, IDS_FS_HOW_TO_STOP);
! 		else
! 			SetWndText(hDlg, IDC_FS_ACTION_MSG, IDS_FS_WILL_RUN);
! 	} else {
! 		if (bFsRunning)
! 			SetWndText(hDlg, IDC_FS_ACTION_MSG, IDS_FS_WILL_STOP);
! 		else
! 			SetWndText(hDlg, IDC_FS_ACTION_MSG, IDS_FS_HOW_TO_RUN);
! 	}
! 
! 	// DB
! 	switch (GetButtonState(hDlg, IDC_DB_SERVICE)) {
! 		case BST_CHECKED:
! 				if (bDbRunning)
! 					SetWndText(hDlg, IDC_DB_ACTION_MSG, IDS_DB_HOW_TO_STOP);
! 				else
! 					SetWndText(hDlg, IDC_DB_ACTION_MSG, IDS_DB_WILL_RUN);
! 				break;
! 
! 		case BST_UNCHECKED:
! 				if (bDbRunning)
! 					SetWndText(hDlg, IDC_DB_ACTION_MSG, IDS_DB_WILL_STOP);
! 				else
! 					SetWndText(hDlg, IDC_DB_ACTION_MSG, IDS_DB_HOW_TO_RUN);
! 				break;
! 
! 		case BST_INDETERMINATE:
! 				SetWndText(hDlg, IDC_DB_ACTION_MSG, IDS_DB_DETAILS);
! 				break;
! 	}
! 
! 	// For the ones below, in addition to setting the action message, we also
! 	// set the status message.  This is because the status can change to the
! 	// disabled state depending on how other servers are configured.  The
! 	// servers before this cannot have their status change except by re-
! 	// configuring them.
! 
! 	// BK
! 	if (bDbOn) {
! 		if (IsButtonChecked(hDlg, IDC_BK_SERVICE)) {
! 			if (bBakRunning) {
! 				SetWndText(hDlg, IDC_BK_STATUS_MSG, IDS_BK_RUNNING);
! 				SetWndText(hDlg, IDC_BK_ACTION_MSG, IDS_BK_HOW_TO_STOP);
! 			} else {
! 				SetWndText(hDlg, IDC_BK_STATUS_MSG, IDS_BK_STOPPED);
! 				SetWndText(hDlg, IDC_BK_ACTION_MSG, IDS_BK_WILL_RUN);
! 			}
! 		} else {
! 			if (bBakRunning) {
! 				SetWndText(hDlg, IDC_BK_STATUS_MSG, IDS_BK_RUNNING);
! 				SetWndText(hDlg, IDC_BK_ACTION_MSG, IDS_BK_WILL_STOP);
! 			} else {
! 				SetWndText(hDlg, IDC_BK_STATUS_MSG, IDS_BK_STOPPED);
! 				SetWndText(hDlg, IDC_BK_ACTION_MSG, IDS_BK_HOW_TO_RUN);
! 			}
! 		}
! 	}
! 
! 	CheckEnableBak();
! 
! 	// SC Server
! 	if (bFsOn || bDbOn && !bSccOn) {
! 		if (bScsOn) {
! 			if (bScsRunning) {
! 				SetWndText(hDlg, IDC_SCS_STATUS_MSG, IDS_SCS_RUNNING);
! 				SetWndText(hDlg, IDC_SCS_ACTION_MSG, IDS_SCS_HOW_TO_STOP);
! 			} else {
! 				SetWndText(hDlg, IDC_SCS_STATUS_MSG, IDS_SCS_STOPPED);
! 				SetWndText(hDlg, IDC_SCS_ACTION_MSG, IDS_SCS_WILL_RUN);
! 			}
! 		} else {
! 			if (bScsRunning) {
! 				SetWndText(hDlg, IDC_SCS_STATUS_MSG, IDS_SCS_RUNNING);
! 				SetWndText(hDlg, IDC_SCS_ACTION_MSG, IDS_SCS_WILL_STOP);
! 			} else {
! 				SetWndText(hDlg, IDC_SCS_STATUS_MSG, IDS_SCS_STOPPED);
! 				SetWndText(hDlg, IDC_SCS_ACTION_MSG, IDS_SCS_HOW_TO_RUN);
! 			}
! 		}
! 	}
! 
! 	// SC Client
! 	if (bFsOn || bDbOn && !bScsOn) {
! 		if (bSccOn) {
! 			if (bSccRunning) {
! 				SetWndText(hDlg, IDC_SCC_STATUS_MSG, IDS_SCC_RUNNING);
! 				SetWndText(hDlg, IDC_SCC_ACTION_MSG, IDS_SCC_HOW_TO_STOP);
! 			} else {
! 				SetWndText(hDlg, IDC_SCC_STATUS_MSG, IDS_SCC_STOPPED);
! 				SetWndText(hDlg, IDC_SCC_ACTION_MSG, IDS_SCC_WILL_RUN);
! 			}
! 		} else {
! 			if (bSccRunning) {
! 				SetWndText(hDlg, IDC_SCC_STATUS_MSG, IDS_SCC_RUNNING);
! 				SetWndText(hDlg, IDC_SCC_ACTION_MSG, IDS_SCC_WILL_STOP);
! 			} else {
! 				SetWndText(hDlg, IDC_SCC_STATUS_MSG, IDS_SCC_STOPPED);
! 				SetWndText(hDlg, IDC_SCC_ACTION_MSG, IDS_SCC_HOW_TO_RUN);
! 			}
! 		}
! 
! 		
  	}
  
! 	CheckEnableSc();
  }
  
  static void OnDbService()
  {
! 	bDbOn = GetButtonState(hDlg, IDC_DB_SERVICE) == BST_CHECKED;
  
! 	CheckEnableBak();
! 	CheckEnableSc();
  
! 	ShowServiceStates();
! }
  
  static void OnBakService()
  {
! 	bBakOn = !bBakOn;
  
! 	ShowServiceStates();
! }
  
  static void OnFsService()
  {
! 	bFsOn = !bFsOn;
  
! 	CheckEnableSc();
  
! 	ShowServiceStates();
! }
  
  static void CheckEnableBak()
  {
! 	// Enable/disable bk service based on db service.
! 	if (!bDbOn) {
! 		SetCheck(hDlg, IDC_BK_SERVICE, FALSE);
! 		SetEnable(hDlg, IDC_BK_SERVICE, ES_DISABLE);
! 		SetWndText(hDlg, IDC_BK_STATUS_MSG, IDS_BK_DISABLED);
! 		SetWndText(hDlg, IDC_BK_ACTION_MSG, IDS_BK_ENABLE);
! 	} else {
! 		SetCheck(hDlg, IDC_BK_SERVICE, bBakOn);
! 		SetEnable(hDlg, IDC_BK_SERVICE, ES_ENABLE);
! 	}
  }
  
  static void CheckEnableSc()
  {
! 	BOOL bSccEnable = TRUE;
! 	UINT uiSccStatusMsg;
! 	UINT uiSccActionMsg;
! 	BOOL bScsEnable = TRUE;
! 	UINT uiScsStatusMsg;
! 	UINT uiScsActionMsg;
! 
! 	// Disable SCS and SCC?
! 	if (!bFsOn && !bDbOn) {
! 		bScsEnable = FALSE;
! 		uiScsStatusMsg = IDS_SC_DISABLED;
! 		uiScsActionMsg = IDS_SC_ENABLE;
! 
! 		bSccEnable = FALSE;
! 		uiSccStatusMsg = IDS_SC_DISABLED;
! 		uiSccActionMsg = IDS_SC_ENABLE;
! 		// Disable SCS?
! 	} else if (bSccOn) {
! 		bScsEnable = FALSE;
! 		uiScsStatusMsg = IDS_SC_DISABLED;
! 		uiScsActionMsg = IDS_SCS_ENABLE;
! 		// Disable SCC
! 	} else if (bScsOn) {
! 		bSccEnable = FALSE;
! 		uiSccStatusMsg = IDS_SC_DISABLED;
! 		uiSccActionMsg = IDS_SCC_ENABLE;
! 	}		
! 
! 	// Enable the sc server GUI
! 	if (bScsEnable) {
! 		SetEnable(hDlg, IDC_SCS, ES_ENABLE);
! 		SetCheck(hDlg, IDC_SCS, bScsOn);
! 	} else {	// Disable the sc server gui
! 		SetEnable(hDlg, IDC_SCS, ES_DISABLE);
! 		SetCheck(hDlg, IDC_SCS, FALSE);
! 		SetWndText(hDlg, IDC_SCS_STATUS_MSG, uiScsStatusMsg);
! 		SetWndText(hDlg, IDC_SCS_ACTION_MSG, uiScsActionMsg);
! 	}
  
! 	// Enable the sc client GUI
! 	if (bSccEnable) {
! 		SetEnable(hDlg, IDC_SCC, ES_ENABLE);
! 		SetCheck(hDlg, IDC_SCC, bSccOn);
! 		EnableScMachine(bSccOn);
! 	} else {	// Disable the sc client gui
! 		SetEnable(hDlg, IDC_SCC, ES_DISABLE);
! 		SetCheck(hDlg, IDC_SCC, FALSE);
! 		SetWndText(hDlg, IDC_SCC_STATUS_MSG, uiSccStatusMsg);
! 		SetWndText(hDlg, IDC_SCC_ACTION_MSG, uiSccActionMsg);
! 		EnableScMachine(FALSE);
! 	}
! }
  
  static void OnScServer()
  {
! 	bScsOn = !bScsOn;
  
! 	ShowServiceStates();
  }
  
  static void OnScClient()
! {
! 	bSccOn = !bSccOn;
  
! 	ShowServiceStates();
  }
  
  static void OnScMachineChange()
! {
! 	if (!bSettingScMachine && IsButtonChecked(hDlg, IDC_SCC))
! 		GetWndText(hDlg, IDC_SC_MACHINE, szScMachine, sizeof(szScMachine) / sizeof(szScMachine[0]));
  }
  
  static BOOL PrepareToConfig(CONFIG_STATE& state, BOOL bRunning, BOOL bOn, UINT uiCtrlID)
  {
! 	BOOL bEnabled = IsWindowEnabled(GetDlgItem(hDlg, uiCtrlID));
  
! 	if (bRunning && (!bOn || !bEnabled))
! 		state = CS_UNCONFIGURE;
! 	else if (!bRunning && (bOn && bEnabled))
! 		state = CS_CONFIGURE;
  
      return (state == CS_UNCONFIGURE) || (state == CS_CONFIGURE);
  }
--- 141,487 ----
   */
  static void OnInitDialog(HWND hwndDlg)
  {
!     hDlg = hwndDlg;
  
!     // Show the initial services config
!     ShowInitialConfig();
!     ShowServiceStates();
! 
!     MakeBold(hDlg, IDC_DB_SERVICE);
!     MakeBold(hDlg, IDC_FS_SERVICE);
!     MakeBold(hDlg, IDC_BK_SERVICE);
!     MakeBold(hDlg, IDC_SCC);
!     MakeBold(hDlg, IDC_SCS);
  }
  
  static void EnableScMachine(BOOL bEnable)
! {	
!     SetEnable(hDlg, IDC_SC_MACHINE_LABEL, (ENABLE_STATE)bEnable);
!     SetEnable(hDlg, IDC_SC_MACHINE, (ENABLE_STATE)bEnable);
! 
!     bSettingScMachine = TRUE;
!     SetWndText(hDlg, IDC_SC_MACHINE, bEnable ? szScMachine : TEXT(""));
!     bSettingScMachine = FALSE;
! }		
  
  static void ShowInitialConfig()
  {
!     // FS
!     bFsRunning = Configured(g_CfgData.configFS);
!     if (bFsRunning) {
! 	SetCheck(hDlg, IDC_FS_SERVICE);
! 	SetWndText(hDlg, IDC_FS_STATUS_MSG, IDS_FS_RUNNING);
! 	SetWndText(hDlg, IDC_FS_ACTION_MSG, IDS_FS_HOW_TO_STOP);
!     } else {
! 	SetCheck(hDlg, IDC_FS_SERVICE, FALSE);
! 	SetWndText(hDlg, IDC_FS_STATUS_MSG, IDS_FS_STOPPED);
! 	SetWndText(hDlg, IDC_FS_ACTION_MSG, IDS_FS_HOW_TO_RUN);
!     }
  
!     bFsOn = bFsRunning;
  
      // DB
!     Set2State(hDlg, IDC_DB_SERVICE);
  
!     bDbRunning = Configured(g_CfgData.configDB);
!     if (bDbRunning) {
! 	SetCheck(hDlg, IDC_DB_SERVICE);
! 	SetWndText(hDlg, IDC_DB_STATUS_MSG, IDS_DB_RUNNING);
! 	SetWndText(hDlg, IDC_DB_ACTION_MSG, IDS_DB_HOW_TO_STOP);
!     } else if (bDbParial) {
! 	SetCheck(hDlg, IDC_DB_SERVICE, BST_INDETERMINATE);
! 	SetWndText(hDlg, IDC_DB_STATUS_MSG, IDS_DB_PARTIAL_CONFIG);
! 	SetWndText(hDlg, IDC_DB_ACTION_MSG, IDS_DB_DETAILS);
! 	ShowWnd(hDlg, IDC_DB_DETAILS);
! 	Set3State(hDlg, IDC_DB_SERVICE);
!     } else {
! 	SetCheck(hDlg, IDC_DB_SERVICE, FALSE);
! 	SetWndText(hDlg, IDC_DB_STATUS_MSG, IDS_DB_STOPPED);
! 	SetWndText(hDlg, IDC_DB_ACTION_MSG, IDS_DB_HOW_TO_RUN);
!     }
  
!     bDbOn = bDbRunning;
! 
!     // BK
!     bBakRunning = Configured(g_CfgData.configBak);
!     SetEnable(hDlg, IDC_BK_SERVICE, ES_ENABLE);
!     if (bBakRunning) {
! 	SetCheck(hDlg, IDC_BK_SERVICE);
! 	SetWndText(hDlg, IDC_BK_STATUS_MSG, IDS_BK_RUNNING);
! 	SetWndText(hDlg, IDC_BK_ACTION_MSG, IDS_BK_HOW_TO_STOP);
!     } else {
! 	SetCheck(hDlg, IDC_BK_SERVICE, FALSE);
! 	SetWndText(hDlg, IDC_BK_STATUS_MSG, IDS_BK_STOPPED);
! 	SetWndText(hDlg, IDC_BK_ACTION_MSG, IDS_BK_HOW_TO_RUN);
!     }
! 
!     bBakOn = bBakRunning;
! 
!     // SC Server
!     bScsRunning = Configured(g_CfgData.configSCS);
!     SetEnable(hDlg, IDC_SCS, ES_ENABLE);
!     if (bScsRunning) {
! 	SetCheck(hDlg, IDC_SCS);
! 	SetWndText(hDlg, IDC_SCS_ACTION_MSG, IDS_SCS_HOW_TO_STOP);
!     } else {
! 	SetCheck(hDlg, IDC_SCS, FALSE);
! 	SetWndText(hDlg, IDC_SCS_STATUS_MSG, IDS_SCS_STOPPED);
! 	SetWndText(hDlg, IDC_SCS_ACTION_MSG, IDS_SCS_HOW_TO_RUN);
!     }
! 
!     bScsOn = bScsRunning;
! 
!     // SC Client
!     bSccRunning = Configured(g_CfgData.configSCC);
!     SetEnable(hDlg, IDC_SCC, ES_ENABLE);
!     if (bSccRunning) {
! 	SetCheck(hDlg, IDC_SCC);
! 	SetWndText(hDlg, IDC_SCC_ACTION_MSG, IDS_SCC_HOW_TO_STOP);
! 	EnableScMachine();
! 	lstrcpy(szScMachine, g_CfgData.szSysControlMachine);
!     } else {
! 	SetCheck(hDlg, IDC_SCC, FALSE);
! 	SetWndText(hDlg, IDC_SCC_STATUS_MSG, IDS_SCC_STOPPED);
! 	SetWndText(hDlg, IDC_SCC_ACTION_MSG, IDS_SCC_HOW_TO_RUN);
! 	EnableScMachine(FALSE);
!     }
! 
!     bSccOn = bSccRunning;
! }	
! 
! static void ShowServiceStates()
! {
!     // FS
!     if (bFsOn) {
! 	if (bFsRunning)
! 	    SetWndText(hDlg, IDC_FS_ACTION_MSG, IDS_FS_HOW_TO_STOP);
! 	else
! 	    SetWndText(hDlg, IDC_FS_ACTION_MSG, IDS_FS_WILL_RUN);
!     } else {
! 	if (bFsRunning)
! 	    SetWndText(hDlg, IDC_FS_ACTION_MSG, IDS_FS_WILL_STOP);
! 	else	
! 	    SetWndText(hDlg, IDC_FS_ACTION_MSG, IDS_FS_HOW_TO_RUN);
!     }	
! 
!     // DB
!     switch (GetButtonState(hDlg, IDC_DB_SERVICE)) {
!     case BST_CHECKED:
! 	if (bDbRunning)
! 	    SetWndText(hDlg, IDC_DB_ACTION_MSG, IDS_DB_HOW_TO_STOP);
! 	else
! 	    SetWndText(hDlg, IDC_DB_ACTION_MSG, IDS_DB_WILL_RUN);
! 	break;
! 
!     case BST_UNCHECKED:
! 	if (bDbRunning)
! 	    SetWndText(hDlg, IDC_DB_ACTION_MSG, IDS_DB_WILL_STOP);
! 	else
! 	    SetWndText(hDlg, IDC_DB_ACTION_MSG, IDS_DB_HOW_TO_RUN);
! 	break;
! 
!     case BST_INDETERMINATE:
! 	SetWndText(hDlg, IDC_DB_ACTION_MSG, IDS_DB_DETAILS);
! 	break;
!     }
! 
!     // For the ones below, in addition to setting the action message, we also
!     // set the status message.  This is because the status can change to the
!     // disabled state depending on how other servers are configured.  The
!     // servers before this cannot have their status change except by re-
!     // configuring them.
! 
!     // BK
!     if (bDbOn) {
! 	if (IsButtonChecked(hDlg, IDC_BK_SERVICE)) {
! 	    if (bBakRunning) {
  		SetWndText(hDlg, IDC_BK_STATUS_MSG, IDS_BK_RUNNING);
  		SetWndText(hDlg, IDC_BK_ACTION_MSG, IDS_BK_HOW_TO_STOP);
+ 	    } else {
+ 		SetWndText(hDlg, IDC_BK_STATUS_MSG, IDS_BK_STOPPED);
+ 		SetWndText(hDlg, IDC_BK_ACTION_MSG, IDS_BK_WILL_RUN);
+ 	    }
  	} else {
! 	    if (bBakRunning) {
! 		SetWndText(hDlg, IDC_BK_STATUS_MSG, IDS_BK_RUNNING);
! 		SetWndText(hDlg, IDC_BK_ACTION_MSG, IDS_BK_WILL_STOP);
! 	    } else {
  		SetWndText(hDlg, IDC_BK_STATUS_MSG, IDS_BK_STOPPED);
  		SetWndText(hDlg, IDC_BK_ACTION_MSG, IDS_BK_HOW_TO_RUN);
+ 	    }
  	}
+     }
  
!     CheckEnableBak();
  
!     // SC Server
!     if (bFsOn || bDbOn && !bSccOn) {
! 	if (bScsOn) {
! 	    if (bScsRunning) {
! 		SetWndText(hDlg, IDC_SCS_STATUS_MSG, IDS_SCS_RUNNING);
  		SetWndText(hDlg, IDC_SCS_ACTION_MSG, IDS_SCS_HOW_TO_STOP);
+ 	    } else {
+ 		SetWndText(hDlg, IDC_SCS_STATUS_MSG, IDS_SCS_STOPPED);
+ 		SetWndText(hDlg, IDC_SCS_ACTION_MSG, IDS_SCS_WILL_RUN);
+ 	    }
  	} else {
! 	    if (bScsRunning) {
! 		SetWndText(hDlg, IDC_SCS_STATUS_MSG, IDS_SCS_RUNNING);
! 		SetWndText(hDlg, IDC_SCS_ACTION_MSG, IDS_SCS_WILL_STOP);
! 	    } else {
  		SetWndText(hDlg, IDC_SCS_STATUS_MSG, IDS_SCS_STOPPED);
  		SetWndText(hDlg, IDC_SCS_ACTION_MSG, IDS_SCS_HOW_TO_RUN);
+ 	    }
  	}
+     }
  
!     // SC Client
!     if (bFsOn || bDbOn && !bScsOn) {
! 	if (bSccOn) {
! 	    if (bSccRunning) {
! 		SetWndText(hDlg, IDC_SCC_STATUS_MSG, IDS_SCC_RUNNING);
  		SetWndText(hDlg, IDC_SCC_ACTION_MSG, IDS_SCC_HOW_TO_STOP);
! 	    } else {
! 		SetWndText(hDlg, IDC_SCC_STATUS_MSG, IDS_SCC_STOPPED);
! 		SetWndText(hDlg, IDC_SCC_ACTION_MSG, IDS_SCC_WILL_RUN);
! 	    }
  	} else {
! 	    if (bSccRunning) {
! 		SetWndText(hDlg, IDC_SCC_STATUS_MSG, IDS_SCC_RUNNING);
! 		SetWndText(hDlg, IDC_SCC_ACTION_MSG, IDS_SCC_WILL_STOP);
! 	    } else {
  		SetWndText(hDlg, IDC_SCC_STATUS_MSG, IDS_SCC_STOPPED);
  		SetWndText(hDlg, IDC_SCC_ACTION_MSG, IDS_SCC_HOW_TO_RUN);
! 	    }
  	}
+     }
  
!     CheckEnableSc();
  }
  
  static void OnDbService()
  {
!     bDbOn = GetButtonState(hDlg, IDC_DB_SERVICE) == BST_CHECKED;
  
!     CheckEnableBak();
!     CheckEnableSc();
  
!     ShowServiceStates();
! }	
  
  static void OnBakService()
  {
!     bBakOn = !bBakOn;
  
!     ShowServiceStates();
! }	
  
  static void OnFsService()
  {
!     bFsOn = !bFsOn;
  
!     CheckEnableSc();
  
!     ShowServiceStates();
! }	
  
  static void CheckEnableBak()
  {
!     // Enable/disable bk service based on db service.
!     if (!bDbOn) {
! 	SetCheck(hDlg, IDC_BK_SERVICE, FALSE);
! 	SetEnable(hDlg, IDC_BK_SERVICE, ES_DISABLE);
! 	SetWndText(hDlg, IDC_BK_STATUS_MSG, IDS_BK_DISABLED);
! 	SetWndText(hDlg, IDC_BK_ACTION_MSG, IDS_BK_ENABLE);
!     } else {
! 	SetCheck(hDlg, IDC_BK_SERVICE, bBakOn);
! 	SetEnable(hDlg, IDC_BK_SERVICE, ES_ENABLE);
!     }
  }
  
  static void CheckEnableSc()
  {
!     BOOL bSccEnable = TRUE;
!     UINT uiSccStatusMsg;
!     UINT uiSccActionMsg;
!     BOOL bScsEnable = TRUE;
!     UINT uiScsStatusMsg;
!     UINT uiScsActionMsg;
! 
!     // Disable SCS and SCC?
!     if (!bFsOn && !bDbOn) {
! 	bScsEnable = FALSE;
! 	uiScsStatusMsg = IDS_SC_DISABLED;
! 	uiScsActionMsg = IDS_SC_ENABLE;
! 
! 	bSccEnable = FALSE;
! 	uiSccStatusMsg = IDS_SC_DISABLED;
! 	uiSccActionMsg = IDS_SC_ENABLE;
! 	// Disable SCS?
!     } else if (bSccOn) {
! 	bScsEnable = FALSE;
! 	uiScsStatusMsg = IDS_SC_DISABLED;
! 	uiScsActionMsg = IDS_SCS_ENABLE;
! 	// Disable SCC
!     } else if (bScsOn) {
! 	bSccEnable = FALSE;
! 	uiSccStatusMsg = IDS_SC_DISABLED;
! 	uiSccActionMsg = IDS_SCC_ENABLE;
!     }		
  
!     // Enable the sc server GUI
!     if (bScsEnable) {
! 	SetEnable(hDlg, IDC_SCS, ES_ENABLE);
! 	SetCheck(hDlg, IDC_SCS, bScsOn);
!     } else {	// Disable the sc server gui
! 	SetEnable(hDlg, IDC_SCS, ES_DISABLE);
! 	SetCheck(hDlg, IDC_SCS, FALSE);
! 	SetWndText(hDlg, IDC_SCS_STATUS_MSG, uiScsStatusMsg);
! 	SetWndText(hDlg, IDC_SCS_ACTION_MSG, uiScsActionMsg);
!     }
! 
!     // Enable the sc client GUI
!     if (bSccEnable) {
! 	SetEnable(hDlg, IDC_SCC, ES_ENABLE);
! 	SetCheck(hDlg, IDC_SCC, bSccOn);
! 	EnableScMachine(bSccOn);
!     } else {	// Disable the sc client gui
! 	SetEnable(hDlg, IDC_SCC, ES_DISABLE);
! 	SetCheck(hDlg, IDC_SCC, FALSE);
! 	SetWndText(hDlg, IDC_SCC_STATUS_MSG, uiSccStatusMsg);
! 	SetWndText(hDlg, IDC_SCC_ACTION_MSG, uiSccActionMsg);
! 	EnableScMachine(FALSE);
!     }
! }	
  
  static void OnScServer()
  {
!     bScsOn = !bScsOn;
  
!     ShowServiceStates();
  }
  
  static void OnScClient()
! {	
!     bSccOn = !bSccOn;
  
!     ShowServiceStates();
  }
  
  static void OnScMachineChange()
! {	
!     if (!bSettingScMachine && IsButtonChecked(hDlg, IDC_SCC))
! 	GetWndText(hDlg, IDC_SC_MACHINE, szScMachine, sizeof(szScMachine) / sizeof(szScMachine[0]));
  }
  
  static BOOL PrepareToConfig(CONFIG_STATE& state, BOOL bRunning, BOOL bOn, UINT uiCtrlID)
  {
!     BOOL bEnabled = IsWindowEnabled(GetDlgItem(hDlg, uiCtrlID));
  
!     if (bRunning && (!bOn || !bEnabled))
! 	state = CS_UNCONFIGURE;
!     else if (!bRunning && (bOn && bEnabled))
! 	state = CS_CONFIGURE;
  
      return (state == CS_UNCONFIGURE) || (state == CS_CONFIGURE);
  }
***************
*** 487,607 ****
      // or unconfigured.  We do this so that if the user cancels for some reason,
      // the real config state will still be what the user expects (what was
      // previously read from the system plus the user's changes).
! 	CONFIG_STATE configFS = g_CfgData.configFS;     // File server
! 	CONFIG_STATE configDB = g_CfgData.configDB;     // Database server
! 	CONFIG_STATE configBak = g_CfgData.configBak;   // Backup server
! 	CONFIG_STATE configSCS = g_CfgData.configSCS;   // System Control server
! 	CONFIG_STATE configSCC = g_CfgData.configSCC;   // System Control client
  
      BOOL bWorkToDo = FALSE;
  
! 	bWorkToDo |= PrepareToConfig(configFS, bFsRunning, bFsOn, IDC_FS_SERVICE);
! 	bWorkToDo |= PrepareToConfig(configDB, bDbRunning, bDbOn, IDC_DB_SERVICE);
      bWorkToDo |= PrepareToConfig(configBak, bBakRunning, bBakOn, IDC_BK_SERVICE);
! 	bWorkToDo |= PrepareToConfig(configSCS, bScsRunning, bScsOn, IDC_SCS);
! 	bWorkToDo |= PrepareToConfig(configSCC, bSccRunning, bSccOn, IDC_SCC);
  
      // If there is nothing to do, then just return TRUE.
      if (!bWorkToDo)
          return TRUE;
  
! 	// If we are unconfiguring the last DB server:
! 	//		1) Warn user and ask for confirmation
! 	//		2) Unconfigure all other servers that are running on this machine
! 	//		3) Tell them (after unconfiguring) that they must run the Wizard if they
! 	//		   wish to reconfigure the machine, then exit the program.
! 	if (configDB == CS_UNCONFIGURE) {
! 		if (g_CfgData.bLastDBServer) {
! 			int nChoice = MsgBox(hDlg, IDS_LAST_DB_SERVER, GetAppTitleID(), MB_YESNO | MB_ICONEXCLAMATION);
! 			if (nChoice == IDNO)
! 				return FALSE;
! 	
! 			// Make sure these all get unconfigured as well.  If they are not configured, then
! 			// nothing bad will happen because the config calls are idempotent.
! 			configFS = CS_UNCONFIGURE;
! 			configBak = CS_UNCONFIGURE;
! 			configSCS = CS_UNCONFIGURE;
! 			configSCC = CS_UNCONFIGURE;
! 		}
  	}
  
! 	// Get additional needed information from the user
! 	GET_ADMIN_INFO_OPTIONS eOptions;
! 	BOOL bDB = (ShouldConfig(configDB) || ShouldUnconfig(configDB));
! 
! 	// Use this as our default
! 	eOptions = GAIO_LOGIN_ONLY;
! 
! 	// If we already have a sys control machine, then we don't need to ask for it
! 	if (ShouldConfig(configSCC)) {
! 		if (szScMachine[0] == 0) {
! 			ShowWarning(hDlg, IDS_MUST_ENTER_SCS_NAME);
! 			return FALSE;
! 		}
! 		lstrcpy(g_CfgData.szSysControlMachine, szScMachine);
! 	} else if (bDB && !g_CfgData.bLastDBServer) {
          // We need to know the name of the SCM machine.  Are we the SCM machine?
          if (bScsRunning)
              lstrcpy(g_CfgData.szSysControlMachine, g_CfgData.szHostname);
!         else
! 		    eOptions = GAIO_GET_SCS;
!     }
  
      // If doing a login only and the admin info is reusable
      if ((eOptions != GAIO_LOGIN_ONLY) || !g_CfgData.bReuseAdminInfo) {
      	if (!GetAdminInfo(hDlg, eOptions))
! 	    	return FALSE;
  
          // Use the admin info to get new handles
          if (!GetHandles(hDlg))
              return FALSE;
!     }
  
      // Now that we are ready to configure, copy our local config info
      // into the structure that the config engine uses.
! 	g_CfgData.configFS = configFS;
      g_CfgData.configDB = configDB;
! 	g_CfgData.configBak = configBak;
! 	g_CfgData.configSCS = configSCS;
! 	g_CfgData.configSCC = configSCC;
  
! 	// Configure the server
! 	BOOL bConfigSucceeded = Configure(hDlg, bMustExit);
      if (bConfigSucceeded) {
          if (bMustExit) {
! 		    PostQuitMessage(0);
! 		    return TRUE;
! 	    }
          g_CfgData.bReuseAdminInfo = TRUE;
      } else
          g_CfgData.szAdminPW[0] = 0;
  
! 	// Get current config status
! 	BOOL bCanceled = FALSE;
! 	DWORD dwStatus = GetCurrentConfig(hDlg, bCanceled);
! 	if (dwStatus || bCanceled) {
! 		if (!bCanceled)
! 			ErrorDialog(dwStatus, IDS_CONFIG_CHECK_FAILED);
! 	}
! 
! 	// Show the initial services config
! 	ShowInitialConfig();
! 	ShowServiceStates();
  
! 	return TRUE;
  }
  
  static void CheckEnableApply()
  {
! 	BOOL bEnable = FALSE;
  	
! 	bEnable = (bFsRunning != bFsOn) || (bDbRunning != bDbOn) || (bBakRunning != bBakOn) ||
! 				(bScsRunning != bScsOn) || (bSccRunning != bSccOn);
  
! 	if (bEnable)
! 		PropSheet_Changed(GetParent(hDlg), hDlg);
! 	else
! 		PropSheet_UnChanged(GetParent(hDlg), hDlg);
! }
  
  
--- 494,614 ----
      // or unconfigured.  We do this so that if the user cancels for some reason,
      // the real config state will still be what the user expects (what was
      // previously read from the system plus the user's changes).
!     CONFIG_STATE configFS = g_CfgData.configFS;     // File server
!     CONFIG_STATE configDB = g_CfgData.configDB;     // Database server
!     CONFIG_STATE configBak = g_CfgData.configBak;   // Backup server
!     CONFIG_STATE configSCS = g_CfgData.configSCS;   // System Control server
!     CONFIG_STATE configSCC = g_CfgData.configSCC;   // System Control client
  
      BOOL bWorkToDo = FALSE;
  
!     bWorkToDo |= PrepareToConfig(configFS, bFsRunning, bFsOn, IDC_FS_SERVICE);
!     bWorkToDo |= PrepareToConfig(configDB, bDbRunning, bDbOn, IDC_DB_SERVICE);
      bWorkToDo |= PrepareToConfig(configBak, bBakRunning, bBakOn, IDC_BK_SERVICE);
!     bWorkToDo |= PrepareToConfig(configSCS, bScsRunning, bScsOn, IDC_SCS);
!     bWorkToDo |= PrepareToConfig(configSCC, bSccRunning, bSccOn, IDC_SCC);
  
      // If there is nothing to do, then just return TRUE.
      if (!bWorkToDo)
          return TRUE;
  
!     // If we are unconfiguring the last DB server:
!     //		1) Warn user and ask for confirmation
!     //		2) Unconfigure all other servers that are running on this machine
!     //		3) Tell them (after unconfiguring) that they must run the Wizard if they
!     //		   wish to reconfigure the machine, then exit the program.
!     if (configDB == CS_UNCONFIGURE) {
! 	if (g_CfgData.bLastDBServer) {
! 	    int nChoice = MsgBox(hDlg, IDS_LAST_DB_SERVER, GetAppTitleID(), MB_YESNO | MB_ICONEXCLAMATION);
! 	    if (nChoice == IDNO)
! 		return FALSE;
! 
! 	    // Make sure these all get unconfigured as well.  If they are not configured, then
! 	    // nothing bad will happen because the config calls are idempotent.
! 	    configFS = CS_UNCONFIGURE;
! 	    configBak = CS_UNCONFIGURE;
! 	    configSCS = CS_UNCONFIGURE;
! 	    configSCC = CS_UNCONFIGURE;
  	}
+     }
  
!     // Get additional needed information from the user
!     GET_ADMIN_INFO_OPTIONS eOptions;
!     BOOL bDB = (ShouldConfig(configDB) || ShouldUnconfig(configDB));
! 
!     // Use this as our default
!     eOptions = GAIO_LOGIN_ONLY;
! 
!     // If we already have a sys control machine, then we don't need to ask for it
!     if (ShouldConfig(configSCC)) {
! 	if (szScMachine[0] == 0) {
! 	    ShowWarning(hDlg, IDS_MUST_ENTER_SCS_NAME);
! 	    return FALSE;
! 	}
! 	lstrcpy(g_CfgData.szSysControlMachine, szScMachine);
!     } else if (bDB && !g_CfgData.bLastDBServer) {
          // We need to know the name of the SCM machine.  Are we the SCM machine?
          if (bScsRunning)
              lstrcpy(g_CfgData.szSysControlMachine, g_CfgData.szHostname);
!         else	
! 	    eOptions = GAIO_GET_SCS;
!     }	
  
      // If doing a login only and the admin info is reusable
      if ((eOptions != GAIO_LOGIN_ONLY) || !g_CfgData.bReuseAdminInfo) {
      	if (!GetAdminInfo(hDlg, eOptions))
! 	    return FALSE;
  
          // Use the admin info to get new handles
          if (!GetHandles(hDlg))
              return FALSE;
!     }	
  
      // Now that we are ready to configure, copy our local config info
      // into the structure that the config engine uses.
!     g_CfgData.configFS = configFS;
      g_CfgData.configDB = configDB;
!     g_CfgData.configBak = configBak;
!     g_CfgData.configSCS = configSCS;
!     g_CfgData.configSCC = configSCC;
  
!     // Configure the server
!     BOOL bConfigSucceeded = Configure(hDlg, bMustExit);
      if (bConfigSucceeded) {
          if (bMustExit) {
! 	    PostQuitMessage(0);
! 	    return TRUE;
! 	}
          g_CfgData.bReuseAdminInfo = TRUE;
      } else
          g_CfgData.szAdminPW[0] = 0;
  
!     // Get current config status
!     BOOL bCanceled = FALSE;
!     DWORD dwStatus = GetCurrentConfig(hDlg, bCanceled);
!     if (dwStatus || bCanceled) {
! 	if (!bCanceled)
! 	    ErrorDialog(dwStatus, IDS_CONFIG_CHECK_FAILED);
!     }	
! 
!     // Show the initial services config
!     ShowInitialConfig();
!     ShowServiceStates();
  
!     return TRUE;
  }
  
  static void CheckEnableApply()
  {
!     BOOL bEnable = FALSE;
  	
!     bEnable = (bFsRunning != bFsOn) || (bDbRunning != bDbOn) || (bBakRunning != bBakOn) ||
! 	(bScsRunning != bScsOn) || (bSccRunning != bSccOn);
  
!     if (bEnable)
! 	PropSheet_Changed(GetParent(hDlg), hDlg);
!     else
! 	PropSheet_UnChanged(GetParent(hDlg), hDlg);
! }	
  
  
Index: openafs/src/WINNT/afssvrcfg/sys_control_page.cpp
diff -c openafs/src/WINNT/afssvrcfg/sys_control_page.cpp:1.2 openafs/src/WINNT/afssvrcfg/sys_control_page.cpp:1.2.32.1
*** openafs/src/WINNT/afssvrcfg/sys_control_page.cpp:1.2	Sat Nov  4 05:01:54 2000
--- openafs/src/WINNT/afssvrcfg/sys_control_page.cpp	Tue Dec 26 15:22:28 2006
***************
*** 50,102 ****
   */
  BOOL CALLBACK SysControlPageDlgProc(HWND hwndDlg, UINT msg, WPARAM wp, LPARAM lp)
  {
! 	if (WizStep_Common_DlgProc (hwndDlg, msg, wp, lp))
! 		return FALSE;
! 
! 	switch (msg) {
! 		case WM_INITDIALOG:
! 	         OnInitDialog(hwndDlg);
! 		     break;
! 
! 		case WM_COMMAND:
! 			switch (LOWORD(wp)) {
! 				case IDNEXT:
! 					g_pWiz->SetState(sidSTEP_TWELVE);
! 					break;
! 
! 				case IDBACK:
! 					g_pWiz->SetState(sidSTEP_TEN);
! 					break;
! 
! 				case IDC_SYS_CONTROL_SERVER:
! 					g_CfgData.configSCS = CS_CONFIGURE;
! 					g_CfgData.configSCC = CS_DONT_CONFIGURE;
! 					EnableSysControlMachine(FALSE);
! 					break;
! 
! 				case IDC_SYS_CONTROL_CLIENT:
! 					g_CfgData.configSCS = CS_DONT_CONFIGURE;
! 					g_CfgData.configSCC = CS_CONFIGURE;
! 					EnableSysControlMachine(TRUE);
! 					SetFocus(GetDlgItem(hDlg, IDC_SYS_CONTROL_MACHINE));
! 					break;
! 
! 				case IDC_DONT_CONFIGURE:
! 					g_CfgData.configSCS = CS_DONT_CONFIGURE;
! 					g_CfgData.configSCC = CS_DONT_CONFIGURE;
! 					EnableSysControlMachine(FALSE);
! 					break;
! 
! 				case IDC_SYS_CONTROL_MACHINE:
! 					if (HIWORD(wp) == EN_CHANGE)
! 						CheckEnableNextButton();
! 					break;
! 			}
! 		break;
  
  	}
  
! 	return FALSE;
  }
  
  /*
--- 50,101 ----
   */
  BOOL CALLBACK SysControlPageDlgProc(HWND hwndDlg, UINT msg, WPARAM wp, LPARAM lp)
  {
!     if (WizStep_Common_DlgProc (hwndDlg, msg, wp, lp))
! 	return FALSE;
  
+     switch (msg) {
+     case WM_INITDIALOG:
+ 	OnInitDialog(hwndDlg);
+ 	break;
+ 
+     case WM_COMMAND:
+ 	switch (LOWORD(wp)) {
+ 	case IDNEXT:
+ 	    g_pWiz->SetState(sidSTEP_TWELVE);
+ 	    break;
+ 
+ 	case IDBACK:
+ 	    g_pWiz->SetState(sidSTEP_TEN);
+ 	    break;
+ 
+ 	case IDC_SYS_CONTROL_SERVER:
+ 	    g_CfgData.configSCS = CS_CONFIGURE;
+ 	    g_CfgData.configSCC = CS_DONT_CONFIGURE;
+ 	    EnableSysControlMachine(FALSE);
+ 	    break;
+ 
+ 	case IDC_SYS_CONTROL_CLIENT:
+ 	    g_CfgData.configSCS = CS_DONT_CONFIGURE;
+ 	    g_CfgData.configSCC = CS_CONFIGURE;
+ 	    EnableSysControlMachine(TRUE);
+ 	    SetFocus(GetDlgItem(hDlg, IDC_SYS_CONTROL_MACHINE));
+ 	    break;
+ 
+ 	case IDC_DONT_CONFIGURE:
+ 	    g_CfgData.configSCS = CS_DONT_CONFIGURE;
+ 	    g_CfgData.configSCC = CS_DONT_CONFIGURE;
+ 	    EnableSysControlMachine(FALSE);
+ 	    break;
+ 
+ 	case IDC_SYS_CONTROL_MACHINE:
+ 	    if (HIWORD(wp) == EN_CHANGE)
+ 		CheckEnableNextButton();
+ 	    break;
  	}
+ 	break;
+     }
  
!     return FALSE;
  }
  
  /*
***************
*** 110,155 ****
   */
  static void OnInitDialog(HWND hwndDlg)
  {
! 	hDlg = hwndDlg;
! 
! 	g_pWiz->EnableButtons(BACK_BUTTON | NEXT_BUTTON);
! 	g_pWiz->SetButtonText(IDNEXT, IDS_NEXT);
! 	g_pWiz->SetDefaultControl(IDNEXT);
  
! 	if (g_CfgData.configSCS == CS_ALREADY_CONFIGURED) {
! 		CantConfig(IDS_ALREADY_A_SYS_CONTROL_SERVER);
! 		return;
! 	} else if (g_CfgData.configSCC == CS_ALREADY_CONFIGURED) {
! 		CantConfig(IDS_ALREADY_A_SYS_CONTROL_CLIENT);
! 		return;
! 	}
! 
! 	// Should this step be disabled?  Yes, if this machine
! 	// is not configured as a database or file server.
! 	if (!ConfiguredOrConfiguring(g_CfgData.configFS) && !ConfiguredOrConfiguring(g_CfgData.configDB)) {
! 		CantConfig(IDS_SC_NOT_A_DB_OR_FS_SERVER);
! 		EnableStep(g_CfgData.configSCS, FALSE);
! 		EnableStep(g_CfgData.configSCC, FALSE);
! 		return;
! 	}
  
! 	// Do this in case they were disabled on the last run through
! 	EnableStep(g_CfgData.configSCS);
! 	EnableStep(g_CfgData.configSCC);
! 
! 	// If this is the first server, then it can't be a SCC
! 	if (g_CfgData.bFirstServer) {
! 		// Disable the SCC step
! 		EnableStep(g_CfgData.configSCC, FALSE);
! 		
! 		// Hide the SCC controls
! 		ShowWnd(hDlg, IDC_SYS_CONTROL_CLIENT_DESC, FALSE);
! 		ShowWnd(hDlg, IDC_SYS_CONTROL_CLIENT, FALSE);
! 		ShowWnd(hDlg, IDC_SYS_CONTROL_MACHINE_LABEL, FALSE);
! 		ShowWnd(hDlg, IDC_SYS_CONTROL_MACHINE, FALSE);
  
! 		// Move remaining controls to fill the holes left from
! 		// hiding the SCC controls
          
          // Get position of the "Do not configure" option button; we will position
          // the other controls relative to this one
--- 109,154 ----
   */
  static void OnInitDialog(HWND hwndDlg)
  {
!     hDlg = hwndDlg;
  
!     g_pWiz->EnableButtons(BACK_BUTTON | NEXT_BUTTON);
!     g_pWiz->SetButtonText(IDNEXT, IDS_NEXT);
!     g_pWiz->SetDefaultControl(IDNEXT);
! 
!     if (g_CfgData.configSCS == CS_ALREADY_CONFIGURED) {
! 	CantConfig(IDS_ALREADY_A_SYS_CONTROL_SERVER);
! 	return;
!     } else if (g_CfgData.configSCC == CS_ALREADY_CONFIGURED) {
! 	CantConfig(IDS_ALREADY_A_SYS_CONTROL_CLIENT);
! 	return;
!     }
! 
!     // Should this step be disabled?  Yes, if this machine
!     // is not configured as a database or file server.
!     if (!ConfiguredOrConfiguring(g_CfgData.configFS) && !ConfiguredOrConfiguring(g_CfgData.configDB)) {
! 	CantConfig(IDS_SC_NOT_A_DB_OR_FS_SERVER);
! 	EnableStep(g_CfgData.configSCS, FALSE);
! 	EnableStep(g_CfgData.configSCC, FALSE);
! 	return;
!     }
! 
!     // Do this in case they were disabled on the last run through
!     EnableStep(g_CfgData.configSCS);
!     EnableStep(g_CfgData.configSCC);
! 
!     // If this is the first server, then it can't be a SCC
!     if (g_CfgData.bFirstServer) {
! 	// Disable the SCC step
! 	EnableStep(g_CfgData.configSCC, FALSE);
  
! 	// Hide the SCC controls
! 	ShowWnd(hDlg, IDC_SYS_CONTROL_CLIENT_DESC, FALSE);
! 	ShowWnd(hDlg, IDC_SYS_CONTROL_CLIENT, FALSE);
! 	ShowWnd(hDlg, IDC_SYS_CONTROL_MACHINE_LABEL, FALSE);
! 	ShowWnd(hDlg, IDC_SYS_CONTROL_MACHINE, FALSE);
  
! 	// Move remaining controls to fill the holes left from
! 	// hiding the SCC controls
          
          // Get position of the "Do not configure" option button; we will position
          // the other controls relative to this one
***************
*** 167,188 ****
          nOffset -= nOptionButtonSeparationHeight;
  
          // Move the controls
! 		MoveWnd(hDlg, IDC_SYS_CONTROL_MACHINE_QUESTION, 0, nOffset);
! 		MoveWnd(hDlg, IDC_SYS_CONTROL_SERVER, 0, nOffset);
  
! 		SetWndText(hDlg, IDC_TITLE, IDS_CONFIG_SCS);
! 		SetWndText(hDlg, IDC_SYS_CONTROL_MACHINE_QUESTION, IDS_SYS_CONTROL_SERVER_ONLY_MSG);
! 		SetWndText(hDlg, IDC_DONT_CONFIGURE, IDS_DONT_CONFIG_SYS_CONTROL_SERVER_MSG);
! 	}
! 
! 	if (g_CfgData.configSCS == CS_CONFIGURE)
! 		SetCheck(hDlg, IDC_SYS_CONTROL_SERVER);
! 	else if (g_CfgData.configSCC == CS_CONFIGURE) {
! 		SetCheck(hDlg, IDC_SYS_CONTROL_CLIENT);
! 		EnableSysControlMachine(TRUE);
! 	} else
! 		SetCheck(hDlg, IDC_DONT_CONFIGURE);
! }
  
  /*
   * Utility Functions _________________________________________________________________
--- 166,187 ----
          nOffset -= nOptionButtonSeparationHeight;
  
          // Move the controls
! 	MoveWnd(hDlg, IDC_SYS_CONTROL_MACHINE_QUESTION, 0, nOffset);
! 	MoveWnd(hDlg, IDC_SYS_CONTROL_SERVER, 0, nOffset);
  
! 	SetWndText(hDlg, IDC_TITLE, IDS_CONFIG_SCS);
! 	SetWndText(hDlg, IDC_SYS_CONTROL_MACHINE_QUESTION, IDS_SYS_CONTROL_SERVER_ONLY_MSG);
! 	SetWndText(hDlg, IDC_DONT_CONFIGURE, IDS_DONT_CONFIG_SYS_CONTROL_SERVER_MSG);
!     }
! 
!     if (g_CfgData.configSCS == CS_CONFIGURE)
! 	SetCheck(hDlg, IDC_SYS_CONTROL_SERVER);
!     else if (g_CfgData.configSCC == CS_CONFIGURE) {
! 	SetCheck(hDlg, IDC_SYS_CONTROL_CLIENT);
! 	EnableSysControlMachine(TRUE);
!     } else
! 	SetCheck(hDlg, IDC_DONT_CONFIGURE);
! }	
  
  /*
   * Utility Functions _________________________________________________________________
***************
*** 190,242 ****
   */
  static void CantConfig(UINT nMsgID)
  {
! 	TCHAR szMsg[cchRESOURCE];
  
! 	GetString(szMsg, nMsgID);
  
! 	ShowWnd(hDlg, IDC_SYS_CONTROL_MACHINE_QUESTION, FALSE);
! 	ShowWnd(hDlg, IDC_SYS_CONTROL_SERVER, FALSE);
! 	ShowWnd(hDlg, IDC_SYS_CONTROL_CLIENT, FALSE);
! 	ShowWnd(hDlg, IDC_SYS_CONTROL_MACHINE_LABEL, FALSE);
! 	ShowWnd(hDlg, IDC_SYS_CONTROL_MACHINE, FALSE);
! 	ShowWnd(hDlg, IDC_DONT_CONFIGURE, FALSE);
  
! 	ShowWnd(hDlg, IDC_CANT_CONFIG_MSG);
! 	SetWndText(hDlg, IDC_CANT_CONFIG_MSG, szMsg);
  }
  
  static void EnableSysControlMachine(BOOL bEnable)
  {
! 	EnableWnd(hDlg, IDC_SYS_CONTROL_MACHINE_LABEL, bEnable);
! 	EnableWnd(hDlg, IDC_SYS_CONTROL_MACHINE, bEnable);
  
! 	if (bEnable)
! 		ShowSysControlMachine(g_CfgData.szSysControlMachine);
! 	else
! 		ShowSysControlMachine(TEXT(""));
  
! 	CheckEnableNextButton();
  }
  
  static void ShowSysControlMachine(TCHAR *pszSysControlMachine)
  {
! 	SetWndText(hDlg, IDC_SYS_CONTROL_MACHINE, pszSysControlMachine);
  }
  
  static void CheckEnableNextButton()
  {
! 	BOOL bEnable = TRUE;
  
! 	if (IsButtonChecked(hDlg, IDC_SYS_CONTROL_CLIENT)) {
! 		GetWndText(hDlg, IDC_SYS_CONTROL_MACHINE, g_CfgData.szSysControlMachine, MAX_MACHINE_NAME_LEN);
  
! 		if (lstrlen(g_CfgData.szSysControlMachine) == 0)
! 			bEnable = FALSE;
! 	}
  
! 	if (bEnable)
! 		g_pWiz->EnableButtons(BACK_BUTTON | NEXT_BUTTON);
! 	else
! 		g_pWiz->EnableButtons(BACK_BUTTON);
  }
  
--- 189,241 ----
   */
  static void CantConfig(UINT nMsgID)
  {
!     TCHAR szMsg[cchRESOURCE];
  
!     GetString(szMsg, nMsgID);
  
!     ShowWnd(hDlg, IDC_SYS_CONTROL_MACHINE_QUESTION, FALSE);
!     ShowWnd(hDlg, IDC_SYS_CONTROL_SERVER, FALSE);
!     ShowWnd(hDlg, IDC_SYS_CONTROL_CLIENT, FALSE);
!     ShowWnd(hDlg, IDC_SYS_CONTROL_MACHINE_LABEL, FALSE);
!     ShowWnd(hDlg, IDC_SYS_CONTROL_MACHINE, FALSE);
!     ShowWnd(hDlg, IDC_DONT_CONFIGURE, FALSE);
  
!     ShowWnd(hDlg, IDC_CANT_CONFIG_MSG);
!     SetWndText(hDlg, IDC_CANT_CONFIG_MSG, szMsg);
  }
  
  static void EnableSysControlMachine(BOOL bEnable)
  {
!     EnableWnd(hDlg, IDC_SYS_CONTROL_MACHINE_LABEL, bEnable);
!     EnableWnd(hDlg, IDC_SYS_CONTROL_MACHINE, bEnable);
  
!     if (bEnable)
! 	ShowSysControlMachine(g_CfgData.szSysControlMachine);
!     else
! 	ShowSysControlMachine(TEXT(""));
  
!     CheckEnableNextButton();
  }
  
  static void ShowSysControlMachine(TCHAR *pszSysControlMachine)
  {
!     SetWndText(hDlg, IDC_SYS_CONTROL_MACHINE, pszSysControlMachine);
  }
  
  static void CheckEnableNextButton()
  {
!     BOOL bEnable = TRUE;
  
!     if (IsButtonChecked(hDlg, IDC_SYS_CONTROL_CLIENT)) {
! 	GetWndText(hDlg, IDC_SYS_CONTROL_MACHINE, g_CfgData.szSysControlMachine, MAX_MACHINE_NAME_LEN);
  
! 	if (lstrlen(g_CfgData.szSysControlMachine) == 0)
! 	    bEnable = FALSE;
!     }	
  
!     if (bEnable)
! 	g_pWiz->EnableButtons(BACK_BUTTON | NEXT_BUTTON);
!     else
! 	g_pWiz->EnableButtons(BACK_BUTTON);
  }
  
Index: openafs/src/WINNT/afssvrcfg/toolbox.cpp
diff -c openafs/src/WINNT/afssvrcfg/toolbox.cpp:1.2 openafs/src/WINNT/afssvrcfg/toolbox.cpp:1.2.32.1
*** openafs/src/WINNT/afssvrcfg/toolbox.cpp:1.2	Sat Nov  4 05:01:54 2000
--- openafs/src/WINNT/afssvrcfg/toolbox.cpp	Tue Dec 26 15:22:28 2006
***************
*** 28,257 ****
   */
  void SetEnable(HWND hDlg, UINT nControl, ENABLE_STATE eState)
  {
! 	HWND hControl = GetDlgItem(hDlg, nControl);
  
! 	BOOL bEnable;
  
! 	switch (eState) {
! 		case ES_ENABLE:		bEnable = TRUE;
! 							break;
  
! 		case ES_DISABLE:	bEnable = FALSE;
! 							break;
  
! 		case ES_TOGGLE:		bEnable = !IsWindowEnabled(hControl);
! 							break;
! 	}
! 	
! 	EnableWindow(hControl, bEnable);
  }
  
  void SetElapsedTime(HWND hwnd, DWORD nCtrlID, ULONG ulMin, ULONG ulMax, ULONG ulTime)
  {
! 	SYSTEMTIME stMin;
! 	SET_ELAPSED_TIME_FROM_SECONDS (&stMin, ulMin);
  
! 	SYSTEMTIME stMax;
! 	SET_ELAPSED_TIME_FROM_SECONDS (&stMax, ulMax);
  
! 	SYSTEMTIME st;
! 	SET_ELAPSED_TIME_FROM_SECONDS (&st, ulTime);
  
! 	HWND hElapsed = ::GetDlgItem(hwnd, nCtrlID);
! 	EL_SetRange (hElapsed, &stMin, &stMax);
! 	EL_SetTime (hElapsed, &st);
  }
  
  void GetElapsedTime(HWND hwnd, DWORD nCtrlID, DWORD& dwTime)
  {
! 	SYSTEMTIME stFinal;
  	
! 	HWND hElapsed = ::GetDlgItem(hwnd, nCtrlID);
! 	EL_GetTime (hElapsed, &stFinal);
  	
! 	dwTime = GET_SECONDS_FROM_ELAPSED_TIME(&stFinal);
  }
  
  LPCTSTR SecondsToElapsedTime(UINT uiNumSeconds)
  {
! 	static TCHAR szTime[64], sz[32];
  
! 	*szTime = 0;
! 	*sz = 0;
  
! 	int nHours, nMinutes, nSeconds;
  
! 	nHours = uiNumSeconds / 3600;
! 	nMinutes = (uiNumSeconds % 3600) / 60;
! 	nSeconds = (uiNumSeconds % 3600) % 60;
  
! 	if (nHours)
! 		_stprintf(szTime, TEXT("%d hours"), nHours);
  
! 	if (nMinutes) {
! 		if (nHours)
! 			lstrcat(szTime, TEXT(", "));
! 		_stprintf(sz, TEXT("%d minutes"), nMinutes); 
! 		lstrcat(szTime, sz);
! 	}
! 
! 	if (nSeconds) {
! 		if (nHours || nMinutes)
! 			lstrcat(szTime, TEXT(", "));
! 		_stprintf(sz, TEXT("%d seconds"), nSeconds);
! 		lstrcat(szTime, sz);
! 	}
  
! 	return szTime;
  }
  
  BOOL IsButtonChecked(HWND hDlg, UINT uiCtrlID)
  {
! 	return SendMessage(GetDlgItem(hDlg, uiCtrlID), BM_GETCHECK, 0, 0) == BST_CHECKED;
  }
  
  int GetButtonState(HWND hDlg, UINT uiCtrlID)
! {
! 	return SendMessage(GetDlgItem(hDlg, uiCtrlID), BM_GETCHECK, 0, 0);
  }
  
  void SetCheck(HWND hDlg, UINT uiCtrlID, int nChecked)
  {
! 	SendMessage(GetDlgItem(hDlg, uiCtrlID), BM_SETCHECK, nChecked, 0);
  }
  
  TCHAR *GetResString(UINT nMsgID, TCHAR *pszMsg, UINT nLen)
  {
! 	GetString(pszMsg, nMsgID, nLen);
  
! 	return pszMsg;
  }
  
  void ShowWnd(HWND hDlg, UINT uiCtrlID, BOOL bShow)
  {
! 	ShowWindow(GetDlgItem(hDlg, uiCtrlID), bShow ? SW_SHOW : SW_HIDE);
  }
  
  void EnableWnd(HWND hDlg, UINT uiCtrlID, BOOL bEnable)
  {
! 	EnableWindow(GetDlgItem(hDlg, uiCtrlID), bEnable);
  }
  
  void SetWndText(HWND hDlg, UINT uiCtrlID, LPCTSTR pszMsg)
  {
! 	SetWindowText(GetDlgItem(hDlg, uiCtrlID), pszMsg);
  }
  
  void SetWndText(HWND hDlg, UINT uiCtrlID, UINT nMsgID)
  {
! 	TCHAR szMsg[cchRESOURCE];
  
! 	GetString(szMsg, nMsgID);
  	
! 	SetWndText(hDlg, uiCtrlID, szMsg);
  }
  
  TCHAR *GetWndText(HWND hDlg, UINT uiCtrlID, TCHAR *pszTextBuffer, int nTextLen)
  {
! 	GetWindowText(GetDlgItem(hDlg, uiCtrlID), pszTextBuffer, nTextLen);
  
! 	return pszTextBuffer;
  }
  
  void ForceUpdateWindow(HWND hWnd)
  {
! 	InvalidateRect(hWnd, 0, TRUE);
! 	UpdateWindow(hWnd);
  }
  
  void ForceUpdateWindow(HWND hDlg, UINT uiCtrlID)
  {
! 	ForceUpdateWindow(GetDlgItem(hDlg, uiCtrlID));
  }
  
  int AddLBString(HWND hDlg, UINT uiCtrlID, LPCTSTR pszString)
  {
! 	return SendMessage(GetDlgItem(hDlg, uiCtrlID), LB_ADDSTRING, 0, (LONG)pszString);
  }
  
  int ClearListBox(HWND hDlg, UINT uiCtrlID)
  {
! 	return SendMessage(GetDlgItem(hDlg, uiCtrlID), LB_RESETCONTENT, 0, 0);
  }
  
  void SetUpDownRange(HWND hDlg, UINT uiCtrlID, int nMinVal, int nMaxVal)
  {
! 	SendMessage(GetDlgItem(hDlg, uiCtrlID), UDM_SETRANGE, 0, (LPARAM)MAKELONG((short)nMaxVal, (short)nMinVal));
  }
  
  void MakeBold(HWND hWnd)
  {
! 	HFONT hFont = (HFONT)SendMessage(hWnd, WM_GETFONT, 0, 0);
  
! 	LOGFONT logFont;
! 	
! 	GetObject(hFont, sizeof(LOGFONT), &logFont);
  
! 	logFont.lfWeight = FW_BOLD;
  
! 	HFONT hNewFont = CreateFontIndirect(&logFont);
! 	ASSERT(hNewFont);
  
! 	SendMessage(hWnd, WM_SETFONT, (WPARAM)hNewFont, MAKELPARAM(TRUE, 0));
  }
  
  int MsgBox(HWND hParent, UINT uiTextID, UINT uiCaptionID, UINT uType)
  {
! 	TCHAR szText[cchRESOURCE];
! 	TCHAR szCaption[cchRESOURCE];
  
! 	GetString(szText, uiTextID);
! 	GetString(szCaption, uiCaptionID);
  
! 	return MessageBox(hParent, szText, szCaption, uType);
  }
  
  void HideAndDisable(HWND hDlg, UINT uiCtrlID)
  {
! 	ShowWnd(hDlg, uiCtrlID, SW_HIDE);
! 	SetEnable(hDlg, uiCtrlID, ES_DISABLE);
  }
  
  void ShowAndEnable(HWND hDlg, UINT uiCtrlID, BOOL bShowAndEnable)
  {
! 	int nShow = SW_SHOW;
! 	ENABLE_STATE es = ES_ENABLE;
  
! 	if (!bShowAndEnable) {
! 		nShow = SW_HIDE;
! 		es = ES_DISABLE;
! 	}
  
! 	ShowWnd(hDlg, uiCtrlID, nShow);
! 	SetEnable(hDlg, uiCtrlID, es);
  }
  
  void MoveWnd(HWND hDlg, UINT nCtrlID, int xOffset, int yOffset)
  {
! 	HWND hCtrl = GetDlgItem(hDlg, nCtrlID);
  	
! 	RECT rect;
! 	GetWindowRect(hCtrl, &rect);
  	
! 	POINT p1, p2;
! 	p1.x = rect.left;
! 	p1.y = rect.top;
! 	p2.x = rect.right;
! 	p2.y = rect.bottom;
! 	
! 	ScreenToClient(hDlg, &p1);
! 	ScreenToClient(hDlg, &p2);
! 
! 	rect.left = p1.x;
! 	rect.top = p1.y;
! 	rect.right = p2.x;
! 	rect.bottom = p2.y;
  
! 	MoveWindow(hCtrl, rect.left + xOffset, rect.top + yOffset, rect.right - rect.left, rect.bottom - rect.top, TRUE);
  }
  
--- 28,260 ----
   */
  void SetEnable(HWND hDlg, UINT nControl, ENABLE_STATE eState)
  {
!     HWND hControl = GetDlgItem(hDlg, nControl);
  
!     BOOL bEnable;
  
!     switch (eState) {
!     case ES_ENABLE:
! 	bEnable = TRUE;
! 	break;
  
!     case ES_DISABLE:
! 	bEnable = FALSE;
! 	break;
  
!     case ES_TOGGLE:
! 	bEnable = !IsWindowEnabled(hControl);
! 	break;
!     }
! 
!     EnableWindow(hControl, bEnable);
  }
  
  void SetElapsedTime(HWND hwnd, DWORD nCtrlID, ULONG ulMin, ULONG ulMax, ULONG ulTime)
  {
!     SYSTEMTIME stMin;
!     SET_ELAPSED_TIME_FROM_SECONDS (&stMin, ulMin);
  
!     SYSTEMTIME stMax;
!     SET_ELAPSED_TIME_FROM_SECONDS (&stMax, ulMax);
  
!     SYSTEMTIME st;
!     SET_ELAPSED_TIME_FROM_SECONDS (&st, ulTime);
  
!     HWND hElapsed = ::GetDlgItem(hwnd, nCtrlID);
!     EL_SetRange (hElapsed, &stMin, &stMax);
!     EL_SetTime (hElapsed, &st);
  }
  
  void GetElapsedTime(HWND hwnd, DWORD nCtrlID, DWORD& dwTime)
  {
!     SYSTEMTIME stFinal;
  	
!     HWND hElapsed = ::GetDlgItem(hwnd, nCtrlID);
!     EL_GetTime (hElapsed, &stFinal);
  	
!     dwTime = GET_SECONDS_FROM_ELAPSED_TIME(&stFinal);
  }
  
  LPCTSTR SecondsToElapsedTime(UINT uiNumSeconds)
  {
!     static TCHAR szTime[64], sz[32];
  
!     *szTime = 0;
!     *sz = 0;
  
!     int nHours, nMinutes, nSeconds;
  
!     nHours = uiNumSeconds / 3600;
!     nMinutes = (uiNumSeconds % 3600) / 60;
!     nSeconds = (uiNumSeconds % 3600) % 60;
  
!     if (nHours)
! 	_stprintf(szTime, TEXT("%d hours"), nHours);
  
!     if (nMinutes) {
! 	if (nHours)
! 	    lstrcat(szTime, TEXT(", "));
! 	_stprintf(sz, TEXT("%d minutes"), nMinutes); 
! 	lstrcat(szTime, sz);
!     }
! 
!     if (nSeconds) {
! 	if (nHours || nMinutes)
! 	    lstrcat(szTime, TEXT(", "));
! 	_stprintf(sz, TEXT("%d seconds"), nSeconds);
! 	lstrcat(szTime, sz);
!     }
  
!     return szTime;
  }
  
  BOOL IsButtonChecked(HWND hDlg, UINT uiCtrlID)
  {
!     return SendMessage(GetDlgItem(hDlg, uiCtrlID), BM_GETCHECK, 0, 0) == BST_CHECKED;
  }
  
  int GetButtonState(HWND hDlg, UINT uiCtrlID)
! {	
!     return SendMessage(GetDlgItem(hDlg, uiCtrlID), BM_GETCHECK, 0, 0);
  }
  
  void SetCheck(HWND hDlg, UINT uiCtrlID, int nChecked)
  {
!     SendMessage(GetDlgItem(hDlg, uiCtrlID), BM_SETCHECK, nChecked, 0);
  }
  
  TCHAR *GetResString(UINT nMsgID, TCHAR *pszMsg, UINT nLen)
  {
!     GetString(pszMsg, nMsgID, nLen);
  
!     return pszMsg;
  }
  
  void ShowWnd(HWND hDlg, UINT uiCtrlID, BOOL bShow)
  {
!     ShowWindow(GetDlgItem(hDlg, uiCtrlID), bShow ? SW_SHOW : SW_HIDE);
  }
  
  void EnableWnd(HWND hDlg, UINT uiCtrlID, BOOL bEnable)
  {
!     EnableWindow(GetDlgItem(hDlg, uiCtrlID), bEnable);
  }
  
  void SetWndText(HWND hDlg, UINT uiCtrlID, LPCTSTR pszMsg)
  {
!     SetWindowText(GetDlgItem(hDlg, uiCtrlID), pszMsg);
  }
  
  void SetWndText(HWND hDlg, UINT uiCtrlID, UINT nMsgID)
  {
!     TCHAR szMsg[cchRESOURCE];
  
!     GetString(szMsg, nMsgID);
  	
!     SetWndText(hDlg, uiCtrlID, szMsg);
  }
  
  TCHAR *GetWndText(HWND hDlg, UINT uiCtrlID, TCHAR *pszTextBuffer, int nTextLen)
  {
!     GetWindowText(GetDlgItem(hDlg, uiCtrlID), pszTextBuffer, nTextLen);
  
!     return pszTextBuffer;
  }
  
  void ForceUpdateWindow(HWND hWnd)
  {
!     InvalidateRect(hWnd, 0, TRUE);
!     UpdateWindow(hWnd);
  }
  
  void ForceUpdateWindow(HWND hDlg, UINT uiCtrlID)
  {
!     ForceUpdateWindow(GetDlgItem(hDlg, uiCtrlID));
  }
  
  int AddLBString(HWND hDlg, UINT uiCtrlID, LPCTSTR pszString)
  {
!     return SendMessage(GetDlgItem(hDlg, uiCtrlID), LB_ADDSTRING, 0, (LONG)pszString);
  }
  
  int ClearListBox(HWND hDlg, UINT uiCtrlID)
  {
!     return SendMessage(GetDlgItem(hDlg, uiCtrlID), LB_RESETCONTENT, 0, 0);
  }
  
  void SetUpDownRange(HWND hDlg, UINT uiCtrlID, int nMinVal, int nMaxVal)
  {
!     SendMessage(GetDlgItem(hDlg, uiCtrlID), UDM_SETRANGE, 0, (LPARAM)MAKELONG((short)nMaxVal, (short)nMinVal));
  }
  
  void MakeBold(HWND hWnd)
  {
!     HFONT hFont = (HFONT)SendMessage(hWnd, WM_GETFONT, 0, 0);
  
!     LOGFONT logFont;
! 
!     GetObject(hFont, sizeof(LOGFONT), &logFont);
  
!     logFont.lfWeight = FW_BOLD;
  
!     HFONT hNewFont = CreateFontIndirect(&logFont);
!     ASSERT(hNewFont);
  
!     SendMessage(hWnd, WM_SETFONT, (WPARAM)hNewFont, MAKELPARAM(TRUE, 0));
  }
  
  int MsgBox(HWND hParent, UINT uiTextID, UINT uiCaptionID, UINT uType)
  {
!     TCHAR szText[cchRESOURCE];
!     TCHAR szCaption[cchRESOURCE];
  
!     GetString(szText, uiTextID);
!     GetString(szCaption, uiCaptionID);
  
!     return MessageBox(hParent, szText, szCaption, uType);
  }
  
  void HideAndDisable(HWND hDlg, UINT uiCtrlID)
  {
!     ShowWnd(hDlg, uiCtrlID, SW_HIDE);
!     SetEnable(hDlg, uiCtrlID, ES_DISABLE);
  }
  
  void ShowAndEnable(HWND hDlg, UINT uiCtrlID, BOOL bShowAndEnable)
  {
!     int nShow = SW_SHOW;
!     ENABLE_STATE es = ES_ENABLE;
  
!     if (!bShowAndEnable) {
! 	nShow = SW_HIDE;
! 	es = ES_DISABLE;
!     }
  
!     ShowWnd(hDlg, uiCtrlID, nShow);
!     SetEnable(hDlg, uiCtrlID, es);
  }
  
  void MoveWnd(HWND hDlg, UINT nCtrlID, int xOffset, int yOffset)
  {
!     HWND hCtrl = GetDlgItem(hDlg, nCtrlID);
  	
!     RECT rect;
!     GetWindowRect(hCtrl, &rect);
  	
!     POINT p1, p2;
!     p1.x = rect.left;
!     p1.y = rect.top;
!     p2.x = rect.right;
!     p2.y = rect.bottom;
! 
!     ScreenToClient(hDlg, &p1);
!     ScreenToClient(hDlg, &p2);
! 
!     rect.left = p1.x;
!     rect.top = p1.y;
!     rect.right = p2.x;
!     rect.bottom = p2.y;
  
!     MoveWindow(hCtrl, rect.left + xOffset, rect.top + yOffset, rect.right - rect.left, rect.bottom - rect.top, TRUE);
  }
  
Index: openafs/src/WINNT/afssvrcfg/validation.cpp
diff -c openafs/src/WINNT/afssvrcfg/validation.cpp:1.4 openafs/src/WINNT/afssvrcfg/validation.cpp:1.4.14.1
*** openafs/src/WINNT/afssvrcfg/validation.cpp:1.4	Sun Dec  7 17:49:14 2003
--- openafs/src/WINNT/afssvrcfg/validation.cpp	Tue Dec 26 15:22:28 2006
***************
*** 43,74 ****
      BOOL bValid;
      int nErrorMsgResID;
  
! 	switch (type) {
! 		case VALID_AFS_PARTITION_NAME:	bValid = CheckAfsPartitionName(pszInput, nErrorMsgResID);
!                                         break;
! 
!         case VALID_AFS_CELL_NAME:		bValid = CheckAfsCellName(pszInput, nErrorMsgResID);
!                                         break;
! 
! 		case VALID_AFS_PASSWORD:		bValid = CheckAfsPassword(pszInput, nErrorMsgResID);
!                                         break;
! 
! 		case VALID_AFS_UID:				bValid = CheckAfsUid(pszInput, nErrorMsgResID);
!                                         break;
! 
! 		case VALID_AFS_SERVER_NAME:		bValid = CheckAfsServerName(pszInput, nErrorMsgResID);
!                                         break;
! 
! 		default:						nErrorMsgResID = 0;
! 										ASSERT(FALSE);
! 										return FALSE;
! 	}
  
      if (!bValid && bShowError)
          ShowError(nErrorMsgResID);
  
      return bValid;
! }
  
  
  
--- 43,80 ----
      BOOL bValid;
      int nErrorMsgResID;
  
!     switch (type) {
!     case VALID_AFS_PARTITION_NAME:
! 	bValid = CheckAfsPartitionName(pszInput, nErrorMsgResID);
! 	break;
! 
!     case VALID_AFS_CELL_NAME: 
! 	bValid = CheckAfsCellName(pszInput, nErrorMsgResID);
! 	break;
! 
!     case VALID_AFS_PASSWORD:	 
! 	bValid = CheckAfsPassword(pszInput, nErrorMsgResID);
! 	break;
! 
!     case VALID_AFS_UID:
! 	bValid = CheckAfsUid(pszInput, nErrorMsgResID);
! 	break;
! 
!     case VALID_AFS_SERVER_NAME:
! 	bValid = CheckAfsServerName(pszInput, nErrorMsgResID);
! 	break;
! 
!     default:
! 	nErrorMsgResID = 0;
! 	ASSERT(FALSE);
! 	return FALSE;
!     }
  
      if (!bValid && bShowError)
          ShowError(nErrorMsgResID);
  
      return bValid;
! }	
  
  
  
***************
*** 103,137 ****
  
      delete pszName;
  
! 	return bIsValid;
  }
  
  static BOOL CheckAfsCellName(TCHAR *pszInput, int &nErrorMsgResID)
! {
! 	nErrorMsgResID = 0;
  
! 	return TRUE;
  }
  
  static BOOL CheckAfsPassword(TCHAR *pszInput, int &nErrorMsgResID)
  {
! 	nErrorMsgResID = 0;
  
! 	return TRUE;
! }
  
  static BOOL CheckAfsUid(TCHAR *pszInput, int &nErrorMsgResID)
  {
! 	nErrorMsgResID = 0;
  
! 	return TRUE;
  }
  
  static BOOL CheckAfsServerName(TCHAR *pszInput, int &nErrorMsgResID)
  {
! 	nErrorMsgResID = 0;
  
! 	return TRUE;
  }
  
  static void ShowError(int nErrorMsgResID)
--- 109,143 ----
  
      delete pszName;
  
!     return bIsValid;
  }
  
  static BOOL CheckAfsCellName(TCHAR *pszInput, int &nErrorMsgResID)
! {	
!     nErrorMsgResID = 0;
  
!     return TRUE;
  }
  
  static BOOL CheckAfsPassword(TCHAR *pszInput, int &nErrorMsgResID)
  {
!     nErrorMsgResID = 0;
  
!     return TRUE;
! }	
  
  static BOOL CheckAfsUid(TCHAR *pszInput, int &nErrorMsgResID)
  {
!     nErrorMsgResID = 0;
  
!     return TRUE;
  }
  
  static BOOL CheckAfsServerName(TCHAR *pszInput, int &nErrorMsgResID)
  {
!     nErrorMsgResID = 0;
  
!     return TRUE;
  }
  
  static void ShowError(int nErrorMsgResID)
Index: openafs/src/WINNT/afssvrcfg/volume_utils.cpp
diff -c openafs/src/WINNT/afssvrcfg/volume_utils.cpp:1.3 openafs/src/WINNT/afssvrcfg/volume_utils.cpp:1.3.14.1
*** openafs/src/WINNT/afssvrcfg/volume_utils.cpp:1.3	Sun Dec  7 17:49:14 2003
--- openafs/src/WINNT/afssvrcfg/volume_utils.cpp	Tue Dec 26 15:22:28 2006
***************
*** 38,49 ****
  
  struct DRIVE_INFO
  {
! 	TCHAR szRootDir[4];		// Drive letter plus colon plus slash, ex: "c:\"
! 	TCHAR szVolName[256];
! 	TCHAR szSize[32];		// Drive size in megabytes
! 	DWORD dwFlags;
! 	BOOL bDisabled;			// Disabled is TRUE if partition not suitable for AFS
! 	UINT nImage;			// Image to show in the FastList
  };
  
  
--- 38,49 ----
  
  struct DRIVE_INFO
  {
!     TCHAR szRootDir[4];		// Drive letter plus colon plus slash, ex: "c:\"
!     TCHAR szVolName[256];
!     TCHAR szSize[32];		// Drive size in megabytes
!     DWORD dwFlags;
!     BOOL bDisabled;		// Disabled is TRUE if partition not suitable for AFS
!     UINT nImage;		// Image to show in the FastList
  };
  
  
***************
*** 59,338 ****
   */
  LPTSTR GetString(UINT nStrID)
  {
! 	static TCHAR szText[cchRESOURCE];
  
! 	GetString(szText, nStrID);
  
! 	return szText;
  }
  
  static BOOL SetupImageLists()
  {
! 	HIMAGELIST hiList = ImageList_Create(16, 16, TRUE, 1, 1);
  
! 	AfsAppLib_AddToImageList(hiList, IDI_DISK_DRIVE, FALSE);
! 	AfsAppLib_AddToImageList(hiList, IDI_DISABLED_DISK_DRIVE, FALSE);
! 	AfsAppLib_AddToImageList(hiList, IDI_DISK_DRIVE_WITH_WARNING, FALSE);
! 	AfsAppLib_AddToImageList(hiList, IDI_AGGREGATE, FALSE);
  
! 	FastList_SetImageLists(m_hDriveList, hiList, 0);
  
! 	return TRUE;
  }
  
  static void AddColumn(int nWidth, LPCTSTR pszTitle)
  {
! 	static int nCol = 1;
! 	FASTLISTCOLUMN col;
  	
! 	col.dwFlags = FLCF_JUSTIFY_LEFT;
! 	col.cxWidth = nWidth;
! 	lstrcpy(col.szText, pszTitle);
  	
! 	FastList_SetColumn(m_hDriveList, nCol++, &col);
  }
  
  static void SetupDriveListCols()
  {
! 	// Set width of cols based on width of the list		
! 	RECT rect;
! 	GetClientRect(m_hDriveList, &rect);
! 	
! 	int nWidth = rect.right - rect.left;
! 
! 	// If the width of the list is too small to show all
! 	// three cols in a reasonable size that will fit without
! 	// scrolling, then set the width to the ideal size and
! 	// make the user scroll.
! 	if (nWidth < 150)	// Minimum we will accept
! 		nWidth = 370;	// The ideal size
! 
! 	AddColumn(50, GetString(IDS_DRIVE));
! 	AddColumn(nWidth - 100, GetString(IDS_NAME_OR_ERROR));
! 	AddColumn(50, GetString(IDS_SIZE));
! }
  
  static LPCTSTR GetDriveSizeAsString(LPCTSTR pszRootDir)
  {
! 	_ASSERTE(pszRootDir != 0);
  
! 	ULARGE_INTEGER liDummy;
! 	ULARGE_INTEGER liSize;
! 	static TCHAR szSize[64];
  
! 	*szSize = 0;
! 	
! 	// Get partition size in bytes	
! 	if (GetDiskFreeSpaceEx(pszRootDir, &liDummy, &liSize, &liDummy)) {
! 		// Covert to megabytes
! 		ULONG nSize = (ULONG)(liSize.QuadPart / (1024 * 1024));
! 		// Convert to a string
! 		_ultot(nSize, szSize, 10);
! 		lstrcat(szSize, TEXT(" MB"));
! 	}
! 
! 	return szSize;
! }
  
  static BOOL DoesDriveContainData(LPCTSTR pszDriveRootDir)
  {
! 	TCHAR szSearchSpec[16];
! 	WIN32_FIND_DATA findData;
  
! 	_stprintf(szSearchSpec, TEXT("%s*.*"), pszDriveRootDir);
  
! 	HANDLE hFind = FindFirstFile(szSearchSpec, &findData);
! 	if (hFind == INVALID_HANDLE_VALUE)
! 		return FALSE;
  
! 	FindClose(hFind);
  
! 	return TRUE;
! }
  
  static BOOL OnlyHasFolder(LPCTSTR pszRootDir, LPCTSTR pszFolder)
  {
! 	TCHAR szSearchSpec[MAX_PATH];
! 	WIN32_FIND_DATA findData;
! 	BOOL bFound = FALSE;
! 
! 	_stprintf(szSearchSpec, TEXT("%s*.*"), pszRootDir);
! 
! 	// If there is nothing in the root dir, then return FALSE
! 	HANDLE hFind = FindFirstFile(szSearchSpec, &findData);
! 	if (hFind == INVALID_HANDLE_VALUE)
! 		return bFound;
! 
! 	// Is the first thing on the disk the recycle bin?  If not
! 	// the the recycle bin is not the only thing on the disk.
! 	if (_tcsicmp(findData.cFileName, pszFolder) == 0) {
! 		// Is anything else on the disk?
! 		if (!FindNextFile(hFind, &findData))
! 			bFound = TRUE;
! 	}
  
! 	FindClose(hFind);
  
! 	return bFound;
! }
  
  static BOOL DriveHasRecycleBin(LPCTSTR pszDriveRootDir)
  {
! 	if (OnlyHasFolder(pszDriveRootDir, TEXT("Recycled")))
! 		return TRUE;
  	
! 	if (OnlyHasFolder(pszDriveRootDir, TEXT("Recycle Bin")))
! 		return TRUE;
  
! 	if (OnlyHasFolder(pszDriveRootDir, TEXT("Recycler")))
! 		return TRUE;
  
! 	return FALSE;
  }
  
  static BOOL DoesDriveContainNT(LPCTSTR pszDriveRootDir)
  {
! 	UINT nBufSize = MAX_PATH;
! 	LPTSTR pszWinDir = 0;
  
! 	while (!pszWinDir) {
! 		pszWinDir = new TCHAR[nBufSize];
  
! 		UINT nWinDirLen = GetWindowsDirectory(pszWinDir, nBufSize);
  
! 		if (nWinDirLen > nBufSize) {
! 			nBufSize = nWinDirLen;
! 			delete [] pszWinDir;
! 			pszWinDir = 0;
! 		}
  	}
  
! 	BOOL bNT = (_tcsncmp(pszDriveRootDir, pszWinDir, 3) == 0);
  
! 	delete [] pszWinDir;
  
! 	return bNT;
  }
  
  static BOOL ValidateDrive(BOOL bInvalid, UINT uiErrorMsgID, LPTSTR pszErrorStr)
  {
! 	if (!bInvalid)
! 		return FALSE;
  
! 	if (*pszErrorStr)
! 		lstrcat(pszErrorStr, GetString(IDS_ERROR_SEP));
! 	lstrcat(pszErrorStr, GetString(uiErrorMsgID));
  
! 	return TRUE;
  }
  
  static BOOL GetDriveInfo(TCHAR chDrive, DRIVE_INFO& di)
  {
! 	DWORD dwDummy;
! 	TCHAR szFileSys[64];
! 	DWORD dwDriveFlags;
  
! 	_stprintf(di.szRootDir, TEXT("%c:\\"), chDrive);
  	
! 	if (GetDriveType(di.szRootDir) != DRIVE_FIXED)
! 		return FALSE;
  
! 	if (!GetVolumeInformation(di.szRootDir, di.szVolName, sizeof(di.szVolName), 0, &dwDummy, &dwDriveFlags, szFileSys, sizeof(szFileSys)))
! 		return FALSE;
  
! 	TCHAR szError[256] = TEXT("");
  
! 	BOOL bInvalid = FALSE, bHasData = FALSE;
! 	BOOL bIsAfs = ValidateDrive(IsAnAfsPartition(di.szRootDir), IDS_ERROR_DRIVE_ALREADY_HAS_AFS, szError);
! 	if (!bIsAfs) {
! 		bInvalid |= ValidateDrive(dwDriveFlags & FS_VOL_IS_COMPRESSED, IDS_ERROR_DRIVE_COMPRESSED, szError);
! 		bInvalid |= ValidateDrive(lstrcmp(szFileSys, TEXT("NTFS")) != 0, IDS_ERROR_FS_IS_NOT_NTFS, szError);
! 
!             /* 
!              *  We are no longer going to require that afs drives be empty; we will give a warning instead.
!              *
! 	     *	bInvalid |= ValidateDrive(DoesDriveContainNT(di.szRootDir), IDS_ERROR_DRIVE_CONTAINS_NT, szError);
! 	     *	bRecycle = ValidateDrive(DriveHasRecycleBin(di.szRootDir), IDS_WARNING_DRIVE_HAS_RECYCLE_BIN, szError);
! 	     */
! 	     	if (!bInvalid)
! 	     		bHasData = ValidateDrive(DoesDriveContainData(di.szRootDir), IDS_ERROR_DRIVE_HAS_DATA, szError);
! 	}
  
! 	if (*szError) {
! 		lstrcpy(di.szVolName, szError);
! 		
! 		if (bIsAfs)
! 			di.nImage = AFS_DISK_DRIVE_IMAGE;
! 		else if (bHasData)
! 			di.nImage = DISK_DRIVE_WITH_WARNING_IMAGE;      // Treat this as a warning
! 		else
! 			di.nImage = DISABLED_DISK_DRIVE_IMAGE;
! 		
! 		if (bIsAfs || bInvalid) {
! 			di.bDisabled = TRUE;
! 			di.dwFlags |= FLIF_DISALLOW_SELECT;
! 		}
! 	} else {
! 		di.nImage = DISK_DRIVE_IMAGE;
! 		
! 		if (lstrlen(di.szVolName) == 0)
! 			GetString(di.szVolName, IDS_VOLUME_HAS_NO_NAME);
  	}
  
! 	lstrncpy(di.szSize, GetDriveSizeAsString(di.szRootDir), sizeof(di.szSize));
  
! 	return TRUE;
  }
  
  static BOOL FillDriveList()
  {
! 	DRIVE_INFO di;
  
! 	TCHAR chDrive = TEXT('A');
! 	DWORD dwDrives = GetLogicalDrives();
  
! 	// This failing is not fatal to this function
! 	// Make sure the partition table is up to date
! 	afs_status_t nStatus;
! 	int nResult = ReadPartitionTable(&nStatus);
! 	ASSERT(nResult);
! 
! 	while (dwDrives) {
! 		if (dwDrives & 1) {
! 			memset(&di, 0, sizeof(di));
! 			
! 			if (GetDriveInfo(chDrive, di)) {
! 				FASTLISTADDITEM ai = { 0, di.nImage, IMAGE_NOIMAGE, di.szRootDir, di.bDisabled, di.dwFlags };
! 				HLISTITEM hItem = FastList_AddItem(m_hDriveList, &ai);
! 				FastList_SetItemText(m_hDriveList, hItem, 1, di.szVolName);
! 				FastList_SetItemText(m_hDriveList, hItem, 2, di.szSize);
! 			}
! 		}
! 
! 		chDrive++;
! 		dwDrives >>= 1;
  	}
  
! 	return TRUE;
  }
  
  static int CALLBACK DriveListSortFunc(HWND hList, HLISTITEM hItem1, LPARAM lpItem1, HLISTITEM hItem2, LPARAM lpItem2)
  {
! 	_ASSERTE(hList == m_hDriveList);
  
! 	// Ignore the first call which is only used to initialize static data
! 	if (!hItem1 && !hItem2)
! 		return 0;
  
! 	// The lpItem vars contain 1 if the item is disabled, 0 if not
! 	// Show enabled items before disabled items
! 	if (lpItem1 != lpItem2)
! 		return lpItem1 - lpItem2;
  
! 	LPCTSTR pszItem1 = FastList_GetItemText(m_hDriveList, hItem1, 0);
! 	LPCTSTR pszItem2 = FastList_GetItemText(m_hDriveList, hItem2, 0);
  
! 	return lstrcmp(pszItem1, pszItem2);
  }
  
  
--- 59,338 ----
   */
  LPTSTR GetString(UINT nStrID)
  {
!     static TCHAR szText[cchRESOURCE];
  
!     GetString(szText, nStrID);
  
!     return szText;
  }
  
  static BOOL SetupImageLists()
  {
!     HIMAGELIST hiList = ImageList_Create(16, 16, TRUE, 1, 1);
  
!     AfsAppLib_AddToImageList(hiList, IDI_DISK_DRIVE, FALSE);
!     AfsAppLib_AddToImageList(hiList, IDI_DISABLED_DISK_DRIVE, FALSE);
!     AfsAppLib_AddToImageList(hiList, IDI_DISK_DRIVE_WITH_WARNING, FALSE);
!     AfsAppLib_AddToImageList(hiList, IDI_AGGREGATE, FALSE);
  
!     FastList_SetImageLists(m_hDriveList, hiList, 0);
  
!     return TRUE;
  }
  
  static void AddColumn(int nWidth, LPCTSTR pszTitle)
  {
!     static int nCol = 1;
!     FASTLISTCOLUMN col;
  	
!     col.dwFlags = FLCF_JUSTIFY_LEFT;
!     col.cxWidth = nWidth;
!     lstrcpy(col.szText, pszTitle);
  	
!     FastList_SetColumn(m_hDriveList, nCol++, &col);
  }
  
  static void SetupDriveListCols()
  {
!     // Set width of cols based on width of the list		
!     RECT rect;
!     GetClientRect(m_hDriveList, &rect);
! 
!     int nWidth = rect.right - rect.left;
! 
!     // If the width of the list is too small to show all
!     // three cols in a reasonable size that will fit without
!     // scrolling, then set the width to the ideal size and
!     // make the user scroll.
!     if (nWidth < 150)	// Minimum we will accept
! 	nWidth = 370;	// The ideal size
! 
!     AddColumn(50, GetString(IDS_DRIVE));
!     AddColumn(nWidth - 100, GetString(IDS_NAME_OR_ERROR));
!     AddColumn(50, GetString(IDS_SIZE));
! }	
  
  static LPCTSTR GetDriveSizeAsString(LPCTSTR pszRootDir)
  {
!     _ASSERTE(pszRootDir != 0);
  
!     ULARGE_INTEGER liDummy;
!     ULARGE_INTEGER liSize;
!     static TCHAR szSize[64];
! 
!     *szSize = 0;
! 
!     // Get partition size in bytes	
!     if (GetDiskFreeSpaceEx(pszRootDir, &liDummy, &liSize, &liDummy)) {
! 	// Covert to megabytes
! 	ULONG nSize = (ULONG)(liSize.QuadPart / (1024 * 1024));
! 	// Convert to a string
! 	_ultot(nSize, szSize, 10);
! 	lstrcat(szSize, TEXT(" MB"));
!     }
  
!     return szSize;
! }	
  
  static BOOL DoesDriveContainData(LPCTSTR pszDriveRootDir)
  {
!     TCHAR szSearchSpec[16];
!     WIN32_FIND_DATA findData;
  
!     _stprintf(szSearchSpec, TEXT("%s*.*"), pszDriveRootDir);
  
!     HANDLE hFind = FindFirstFile(szSearchSpec, &findData);
!     if (hFind == INVALID_HANDLE_VALUE)
! 	return FALSE;
  
!     FindClose(hFind);
  
!     return TRUE;
! }	
  
  static BOOL OnlyHasFolder(LPCTSTR pszRootDir, LPCTSTR pszFolder)
  {
!     TCHAR szSearchSpec[MAX_PATH];
!     WIN32_FIND_DATA findData;
!     BOOL bFound = FALSE;
! 
!     _stprintf(szSearchSpec, TEXT("%s*.*"), pszRootDir);
! 
!     // If there is nothing in the root dir, then return FALSE
!     HANDLE hFind = FindFirstFile(szSearchSpec, &findData);
!     if (hFind == INVALID_HANDLE_VALUE)
! 	return bFound;
  
!     // Is the first thing on the disk the recycle bin?  If not
!     // the the recycle bin is not the only thing on the disk.
!     if (_tcsicmp(findData.cFileName, pszFolder) == 0) {
! 	// Is anything else on the disk?
! 	if (!FindNextFile(hFind, &findData))
! 	    bFound = TRUE;
!     }	
  
!     FindClose(hFind);
! 
!     return bFound;
! }	
  
  static BOOL DriveHasRecycleBin(LPCTSTR pszDriveRootDir)
  {
!     if (OnlyHasFolder(pszDriveRootDir, TEXT("Recycled")))
! 	return TRUE;
  	
!     if (OnlyHasFolder(pszDriveRootDir, TEXT("Recycle Bin")))
! 	return TRUE;
  
!     if (OnlyHasFolder(pszDriveRootDir, TEXT("Recycler")))
! 	return TRUE;
  
!     return FALSE;
  }
  
  static BOOL DoesDriveContainNT(LPCTSTR pszDriveRootDir)
  {
!     UINT nBufSize = MAX_PATH;
!     LPTSTR pszWinDir = 0;
  
!     while (!pszWinDir) {
! 	pszWinDir = new TCHAR[nBufSize];
  
! 	UINT nWinDirLen = GetWindowsDirectory(pszWinDir, nBufSize);
  
! 	if (nWinDirLen > nBufSize) {
! 	    nBufSize = nWinDirLen;
! 	    delete [] pszWinDir;
! 	    pszWinDir = 0;
  	}
+     }
  
!     BOOL bNT = (_tcsncmp(pszDriveRootDir, pszWinDir, 3) == 0);
  
!     delete [] pszWinDir;
  
!     return bNT;
  }
  
  static BOOL ValidateDrive(BOOL bInvalid, UINT uiErrorMsgID, LPTSTR pszErrorStr)
  {
!     if (!bInvalid)
! 	return FALSE;
  
!     if (*pszErrorStr)
! 	lstrcat(pszErrorStr, GetString(IDS_ERROR_SEP));
!     lstrcat(pszErrorStr, GetString(uiErrorMsgID));
  
!     return TRUE;
  }
  
  static BOOL GetDriveInfo(TCHAR chDrive, DRIVE_INFO& di)
  {
!     DWORD dwDummy;
!     TCHAR szFileSys[64];
!     DWORD dwDriveFlags;
  
!     _stprintf(di.szRootDir, TEXT("%c:\\"), chDrive);
  	
!     if (GetDriveType(di.szRootDir) != DRIVE_FIXED)
! 	return FALSE;
  
!     if (!GetVolumeInformation(di.szRootDir, di.szVolName, sizeof(di.szVolName), 0, &dwDummy, &dwDriveFlags, szFileSys, sizeof(szFileSys)))
! 	return FALSE;
  
!     TCHAR szError[256] = TEXT("");
  
!     BOOL bInvalid = FALSE, bHasData = FALSE;
!     BOOL bIsAfs = ValidateDrive(IsAnAfsPartition(di.szRootDir), IDS_ERROR_DRIVE_ALREADY_HAS_AFS, szError);
!     if (!bIsAfs) {
! 	bInvalid |= ValidateDrive(dwDriveFlags & FS_VOL_IS_COMPRESSED, IDS_ERROR_DRIVE_COMPRESSED, szError);
! 	bInvalid |= ValidateDrive(lstrcmp(szFileSys, TEXT("NTFS")) != 0, IDS_ERROR_FS_IS_NOT_NTFS, szError);
! 
! 	/* 
! 	 *  We are no longer going to require that afs drives be empty; we will give a warning instead.
! 	 *
! 	 *	bInvalid |= ValidateDrive(DoesDriveContainNT(di.szRootDir), IDS_ERROR_DRIVE_CONTAINS_NT, szError);
! 	 *	bRecycle = ValidateDrive(DriveHasRecycleBin(di.szRootDir), IDS_WARNING_DRIVE_HAS_RECYCLE_BIN, szError);
! 	 */
! 	if (!bInvalid)
! 	    bHasData = ValidateDrive(DoesDriveContainData(di.szRootDir), IDS_ERROR_DRIVE_HAS_DATA, szError);
!     }	
! 
!     if (*szError) {
! 	lstrcpy(di.szVolName, szError);
  
! 	if (bIsAfs)
! 	    di.nImage = AFS_DISK_DRIVE_IMAGE;
! 	else if (bHasData)
! 	    di.nImage = DISK_DRIVE_WITH_WARNING_IMAGE;      // Treat this as a warning
! 	else
! 	    di.nImage = DISABLED_DISK_DRIVE_IMAGE;
! 
! 	if (bIsAfs || bInvalid) {
! 	    di.bDisabled = TRUE;
! 	    di.dwFlags |= FLIF_DISALLOW_SELECT;
  	}
+     } else {
+ 	di.nImage = DISK_DRIVE_IMAGE;
  
! 	if (lstrlen(di.szVolName) == 0)
! 	    GetString(di.szVolName, IDS_VOLUME_HAS_NO_NAME);
!     }	
  
!     lstrncpy(di.szSize, GetDriveSizeAsString(di.szRootDir), sizeof(di.szSize));
! 
!     return TRUE;
  }
  
  static BOOL FillDriveList()
  {
!     DRIVE_INFO di;
  
!     TCHAR chDrive = TEXT('A');
!     DWORD dwDrives = GetLogicalDrives();
  
!     // This failing is not fatal to this function
!     // Make sure the partition table is up to date
!     afs_status_t nStatus;
!     int nResult = ReadPartitionTable(&nStatus);
!     ASSERT(nResult);
! 
!     while (dwDrives) {
! 	if (dwDrives & 1) {
! 	    memset(&di, 0, sizeof(di));
! 
! 	    if (GetDriveInfo(chDrive, di)) {
! 		FASTLISTADDITEM ai = { 0, di.nImage, IMAGE_NOIMAGE, di.szRootDir, di.bDisabled, di.dwFlags };
! 		HLISTITEM hItem = FastList_AddItem(m_hDriveList, &ai);
! 		FastList_SetItemText(m_hDriveList, hItem, 1, di.szVolName);
! 		FastList_SetItemText(m_hDriveList, hItem, 2, di.szSize);
! 	    }
  	}
  
! 	chDrive++;
! 	dwDrives >>= 1;
!     }
! 
!     return TRUE;
  }
  
  static int CALLBACK DriveListSortFunc(HWND hList, HLISTITEM hItem1, LPARAM lpItem1, HLISTITEM hItem2, LPARAM lpItem2)
  {
!     _ASSERTE(hList == m_hDriveList);
  
!     // Ignore the first call which is only used to initialize static data
!     if (!hItem1 && !hItem2)
! 	return 0;
  
!     // The lpItem vars contain 1 if the item is disabled, 0 if not
!     // Show enabled items before disabled items
!     if (lpItem1 != lpItem2)
! 	return lpItem1 - lpItem2;
  
!     LPCTSTR pszItem1 = FastList_GetItemText(m_hDriveList, hItem1, 0);
!     LPCTSTR pszItem2 = FastList_GetItemText(m_hDriveList, hItem2, 0);
  
!     return lstrcmp(pszItem1, pszItem2);
  }
  
  
***************
*** 342,360 ****
   */
  void SetupDriveList(HWND driveList)
  {
! 	m_hDriveList = driveList;
  
! 	SetupImageLists();
  
! 	SetupDriveListCols();
  
! 	FastList_SetSortFunction(m_hDriveList, DriveListSortFunc);
  }
  
  BOOL UpdateDriveList()
  {
! 	FastList_RemoveAll(m_hDriveList);
  
! 	return FillDriveList();
! }
  
--- 342,360 ----
   */
  void SetupDriveList(HWND driveList)
  {
!     m_hDriveList = driveList;
  
!     SetupImageLists();
  
!     SetupDriveListCols();
  
!     FastList_SetSortFunction(m_hDriveList, DriveListSortFunc);
  }
  
  BOOL UpdateDriveList()
  {
!     FastList_RemoveAll(m_hDriveList);
  
!     return FillDriveList();
! }	
  
Index: openafs/src/WINNT/afssvrcfg/lang/de_DE/afscfg.rc
diff -c openafs/src/WINNT/afssvrcfg/lang/de_DE/afscfg.rc:1.4 openafs/src/WINNT/afssvrcfg/lang/de_DE/afscfg.rc:1.4.6.1
*** openafs/src/WINNT/afssvrcfg/lang/de_DE/afscfg.rc:1.4	Fri Mar 11 00:33:37 2005
--- openafs/src/WINNT/afssvrcfg/lang/de_DE/afscfg.rc	Tue Dec 12 15:40:55 2006
***************
*** 61,67 ****
  BEGIN
      CONTROL         "&Ja, eine Partition erstellen.",IDC_CREATE_PARTITION,
                      "Button",BS_AUTORADIOBUTTON | WS_GROUP,0,94,105,10
!     CONTROL         "",IDC_DRIVE_LIST,"FastList",WS_TABSTOP | 0x8b,12,116,
                      186,52,WS_EX_CLIENTEDGE
      EDITTEXT        IDC_PARTITION_NAME,101,172,20,12,ES_AUTOHSCROLL
      CONTROL         "&Nein, keine Partition erstellen.",
--- 61,67 ----
  BEGIN
      CONTROL         "&Ja, eine Partition erstellen.",IDC_CREATE_PARTITION,
                      "Button",BS_AUTORADIOBUTTON | WS_GROUP,0,94,105,10
!     CONTROL         "",IDC_DRIVE_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x8b,12,116,
                      186,52,WS_EX_CLIENTEDGE
      EDITTEXT        IDC_PARTITION_NAME,101,172,20,12,ES_AUTOHSCROLL
      CONTROL         "&Nein, keine Partition erstellen.",
***************
*** 461,467 ****
                      IDC_REMOVE_MSG,30,235,253,17,WS_DISABLED
      PUSHBUTTON      "&Entfernen",IDC_REMOVE,17,217,53,14,WS_DISABLED
      GROUPBOX        "Partitionen",IDC_AGGR_FRAME,7,103,281,155
!     CONTROL         "",IDC_PARTITION_LIST,"FastList",WS_TABSTOP | 0x83,7,16,
                      281,79,WS_EX_CLIENTEDGE
      LTEXT           "Um auf diesem Server eine neue Partition zu erstellen, klicken Sie auf die obige Schaltfläche.",
                      IDC_CREATE_MSG,30,136,254,16
--- 461,467 ----
                      IDC_REMOVE_MSG,30,235,253,17,WS_DISABLED
      PUSHBUTTON      "&Entfernen",IDC_REMOVE,17,217,53,14,WS_DISABLED
      GROUPBOX        "Partitionen",IDC_AGGR_FRAME,7,103,281,155
!     CONTROL         "",IDC_PARTITION_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x83,7,16,
                      281,79,WS_EX_CLIENTEDGE
      LTEXT           "Um auf diesem Server eine neue Partition zu erstellen, klicken Sie auf die obige Schaltfläche.",
                      IDC_CREATE_MSG,30,136,254,16
***************
*** 480,486 ****
      PUSHBUTTON      "&Schließen",IDC_CLOSE,152,158,50,14
      PUSHBUTTON      "Hilfe",9,207,158,50,14
      GROUPBOX        "Parameter der Partition",IDC_ARGS_FRAME,7,117,250,33
!     CONTROL         "",IDC_DRIVE_LIST,"FastList",WS_TABSTOP | 0x8b,7,25,250,
                      85,WS_EX_CLIENTEDGE
      LTEXT           "/vicep",IDC_VICEP_STATIC,99,131,22,8
  END
--- 480,486 ----
      PUSHBUTTON      "&Schließen",IDC_CLOSE,152,158,50,14
      PUSHBUTTON      "Hilfe",9,207,158,50,14
      GROUPBOX        "Parameter der Partition",IDC_ARGS_FRAME,7,117,250,33
!     CONTROL         "",IDC_DRIVE_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x8b,7,25,250,
                      85,WS_EX_CLIENTEDGE
      LTEXT           "/vicep",IDC_VICEP_STATIC,99,131,22,8
  END
Index: openafs/src/WINNT/afssvrcfg/lang/en_US/afscfg.rc
diff -c openafs/src/WINNT/afssvrcfg/lang/en_US/afscfg.rc:1.3 openafs/src/WINNT/afssvrcfg/lang/en_US/afscfg.rc:1.3.14.1
*** openafs/src/WINNT/afssvrcfg/lang/en_US/afscfg.rc:1.3	Thu Jun 19 15:00:54 2003
--- openafs/src/WINNT/afssvrcfg/lang/en_US/afscfg.rc	Tue Dec 12 15:40:55 2006
***************
*** 62,68 ****
  BEGIN
      CONTROL         "&Yes, create a partition.",IDC_CREATE_PARTITION,"Button",
                      BS_AUTORADIOBUTTON | WS_GROUP,0,94,87,10
!     CONTROL         "",IDC_DRIVE_LIST,"FastList",WS_TABSTOP | 0x8b,12,116,
                      186,52,WS_EX_CLIENTEDGE
      EDITTEXT        IDC_PARTITION_NAME,101,172,20,12,ES_AUTOHSCROLL
      CONTROL         "N&o, do not create a partition.",
--- 62,68 ----
  BEGIN
      CONTROL         "&Yes, create a partition.",IDC_CREATE_PARTITION,"Button",
                      BS_AUTORADIOBUTTON | WS_GROUP,0,94,87,10
!     CONTROL         "",IDC_DRIVE_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x8b,12,116,
                      186,52,WS_EX_CLIENTEDGE
      EDITTEXT        IDC_PARTITION_NAME,101,172,20,12,ES_AUTOHSCROLL
      CONTROL         "N&o, do not create a partition.",
***************
*** 457,463 ****
                      IDC_REMOVE_MSG,30,235,253,8,WS_DISABLED
      PUSHBUTTON      "Re&move",IDC_REMOVE,17,217,53,14,WS_DISABLED
      GROUPBOX        "Partitions",IDC_AGGR_FRAME,7,103,281,155
!     CONTROL         "",IDC_PARTITION_LIST,"FastList",WS_TABSTOP | 0x83,7,16,
                      281,79,WS_EX_CLIENTEDGE
      LTEXT           "To create a new partition on this server, click the button above.",
                      IDC_CREATE_MSG,30,136,254,8
--- 457,463 ----
                      IDC_REMOVE_MSG,30,235,253,8,WS_DISABLED
      PUSHBUTTON      "Re&move",IDC_REMOVE,17,217,53,14,WS_DISABLED
      GROUPBOX        "Partitions",IDC_AGGR_FRAME,7,103,281,155
!     CONTROL         "",IDC_PARTITION_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x83,7,16,
                      281,79,WS_EX_CLIENTEDGE
      LTEXT           "To create a new partition on this server, click the button above.",
                      IDC_CREATE_MSG,30,136,254,8
***************
*** 476,482 ****
      PUSHBUTTON      "Cl&ose",IDC_CLOSE,152,158,50,14
      PUSHBUTTON      "Help",9,207,158,50,14
      GROUPBOX        "Partition Parameters",IDC_ARGS_FRAME,7,117,250,33
!     CONTROL         "",IDC_DRIVE_LIST,"FastList",WS_TABSTOP | 0x8b,7,15,250,
                      95,WS_EX_CLIENTEDGE
      LTEXT           "/vicep",IDC_VICEP_STATIC,90,131,22,8
  END
--- 476,482 ----
      PUSHBUTTON      "Cl&ose",IDC_CLOSE,152,158,50,14
      PUSHBUTTON      "Help",9,207,158,50,14
      GROUPBOX        "Partition Parameters",IDC_ARGS_FRAME,7,117,250,33
!     CONTROL         "",IDC_DRIVE_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x8b,7,15,250,
                      95,WS_EX_CLIENTEDGE
      LTEXT           "/vicep",IDC_VICEP_STATIC,90,131,22,8
  END
Index: openafs/src/WINNT/afssvrcfg/lang/es_ES/afscfg.rc
diff -c openafs/src/WINNT/afssvrcfg/lang/es_ES/afscfg.rc:1.4 openafs/src/WINNT/afssvrcfg/lang/es_ES/afscfg.rc:1.4.6.1
*** openafs/src/WINNT/afssvrcfg/lang/es_ES/afscfg.rc:1.4	Fri Mar 11 00:33:39 2005
--- openafs/src/WINNT/afssvrcfg/lang/es_ES/afscfg.rc	Tue Dec 12 15:40:56 2006
***************
*** 61,67 ****
  BEGIN
      CONTROL         "Sí, &crear una partición.",IDC_CREATE_PARTITION,"Button",
                      BS_AUTORADIOBUTTON | WS_GROUP,0,91,191,8
!     CONTROL         "",IDC_DRIVE_LIST,"FastList",WS_TABSTOP | 0x8b,12,114,
                      186,52,WS_EX_CLIENTEDGE
      EDITTEXT        IDC_PARTITION_NAME,132,175,20,12,ES_AUTOHSCROLL
      CONTROL         "N&o, no crear una partición.",IDC_DONT_CREATE_PARTITION,
--- 61,67 ----
  BEGIN
      CONTROL         "Sí, &crear una partición.",IDC_CREATE_PARTITION,"Button",
                      BS_AUTORADIOBUTTON | WS_GROUP,0,91,191,8
!     CONTROL         "",IDC_DRIVE_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x8b,12,114,
                      186,52,WS_EX_CLIENTEDGE
      EDITTEXT        IDC_PARTITION_NAME,132,175,20,12,ES_AUTOHSCROLL
      CONTROL         "N&o, no crear una partición.",IDC_DONT_CREATE_PARTITION,
***************
*** 460,466 ****
                      IDC_REMOVE_MSG,30,235,253,17,WS_DISABLED
      PUSHBUTTON      "Eli&minar",IDC_REMOVE,17,217,53,14,WS_DISABLED
      GROUPBOX        "Particiones",IDC_AGGR_FRAME,7,103,281,155
!     CONTROL         "",IDC_PARTITION_LIST,"FastList",WS_TABSTOP | 0x83,7,16,
                      281,79,WS_EX_CLIENTEDGE
      LTEXT           "Para crear una nueva partición en este servidor, pulse el botón anterior.",
                      IDC_CREATE_MSG,30,136,254,8
--- 460,466 ----
                      IDC_REMOVE_MSG,30,235,253,17,WS_DISABLED
      PUSHBUTTON      "Eli&minar",IDC_REMOVE,17,217,53,14,WS_DISABLED
      GROUPBOX        "Particiones",IDC_AGGR_FRAME,7,103,281,155
!     CONTROL         "",IDC_PARTITION_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x83,7,16,
                      281,79,WS_EX_CLIENTEDGE
      LTEXT           "Para crear una nueva partición en este servidor, pulse el botón anterior.",
                      IDC_CREATE_MSG,30,136,254,8
***************
*** 480,486 ****
      PUSHBUTTON      "C&errar",IDC_CLOSE,152,175,50,14
      PUSHBUTTON      "Ayuda",9,207,175,50,14
      GROUPBOX        "Parámetros de partición",IDC_ARGS_FRAME,7,129,250,33
!     CONTROL         "",IDC_DRIVE_LIST,"FastList",WS_TABSTOP | 0x8b,7,28,250,
                      95,WS_EX_CLIENTEDGE
      LTEXT           "/vicep",IDC_VICEP_STATIC,112,144,28,8
  END
--- 480,486 ----
      PUSHBUTTON      "C&errar",IDC_CLOSE,152,175,50,14
      PUSHBUTTON      "Ayuda",9,207,175,50,14
      GROUPBOX        "Parámetros de partición",IDC_ARGS_FRAME,7,129,250,33
!     CONTROL         "",IDC_DRIVE_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x8b,7,28,250,
                      95,WS_EX_CLIENTEDGE
      LTEXT           "/vicep",IDC_VICEP_STATIC,112,144,28,8
  END
Index: openafs/src/WINNT/afssvrcfg/lang/ja_JP/afscfg.rc
diff -c openafs/src/WINNT/afssvrcfg/lang/ja_JP/afscfg.rc:1.4 openafs/src/WINNT/afssvrcfg/lang/ja_JP/afscfg.rc:1.4.6.1
*** openafs/src/WINNT/afssvrcfg/lang/ja_JP/afscfg.rc:1.4	Fri Mar 11 00:33:41 2005
--- openafs/src/WINNT/afssvrcfg/lang/ja_JP/afscfg.rc	Tue Dec 12 15:40:57 2006
***************
*** 62,68 ****
      CONTROL         "‚Í‚¢Aƒp[ƒeƒBƒVƒ‡ƒ“‚ðì¬‚µ‚Ü‚·B(&Y)",
                      IDC_CREATE_PARTITION,"Button",BS_AUTORADIOBUTTON | 
                      WS_GROUP,2,88,162,10
!     CONTROL         "",IDC_DRIVE_LIST,"FastList",WS_TABSTOP | 0x8b,3,116,210,
                      49,WS_EX_CLIENTEDGE
      EDITTEXT        IDC_PARTITION_NAME,155,180,20,12,ES_AUTOHSCROLL
      CONTROL         "‚¢‚¢‚¦Aƒp[ƒeƒBƒVƒ‡ƒ“‚ðì¬‚µ‚Ü‚¹‚ñB(&O)",
--- 62,68 ----
      CONTROL         "‚Í‚¢Aƒp[ƒeƒBƒVƒ‡ƒ“‚ðì¬‚µ‚Ü‚·B(&Y)",
                      IDC_CREATE_PARTITION,"Button",BS_AUTORADIOBUTTON | 
                      WS_GROUP,2,88,162,10
!     CONTROL         "",IDC_DRIVE_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x8b,3,116,210,
                      49,WS_EX_CLIENTEDGE
      EDITTEXT        IDC_PARTITION_NAME,155,180,20,12,ES_AUTOHSCROLL
      CONTROL         "‚¢‚¢‚¦Aƒp[ƒeƒBƒVƒ‡ƒ“‚ðì¬‚µ‚Ü‚¹‚ñB(&O)",
***************
*** 460,466 ****
                      IDC_REMOVE_MSG,30,238,241,12,WS_DISABLED
      PUSHBUTTON      "íœ(&M)",IDC_REMOVE,17,217,66,14,WS_DISABLED
      GROUPBOX        "ƒp[ƒeƒBƒVƒ‡ƒ“",IDC_AGGR_FRAME,7,103,281,155
!     CONTROL         "",IDC_PARTITION_LIST,"FastList",WS_TABSTOP | 0x83,7,23,
                      281,72,WS_EX_CLIENTEDGE
      LTEXT           "‚±‚ÌƒT[ƒo[‚Å‚ÌV‹Kƒp[ƒeƒBƒVƒ‡ƒ“ì¬‚ÍAã‚Ìƒ{ƒ^ƒ“‚ðƒNƒŠƒbƒNB",
                      IDC_CREATE_MSG,30,139,250,8
--- 460,466 ----
                      IDC_REMOVE_MSG,30,238,241,12,WS_DISABLED
      PUSHBUTTON      "íœ(&M)",IDC_REMOVE,17,217,66,14,WS_DISABLED
      GROUPBOX        "ƒp[ƒeƒBƒVƒ‡ƒ“",IDC_AGGR_FRAME,7,103,281,155
!     CONTROL         "",IDC_PARTITION_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x83,7,23,
                      281,72,WS_EX_CLIENTEDGE
      LTEXT           "‚±‚ÌƒT[ƒo[‚Å‚ÌV‹Kƒp[ƒeƒBƒVƒ‡ƒ“ì¬‚ÍAã‚Ìƒ{ƒ^ƒ“‚ðƒNƒŠƒbƒNB",
                      IDC_CREATE_MSG,30,139,250,8
***************
*** 480,486 ****
      PUSHBUTTON      "ƒwƒ‹ƒv",9,210,158,40,14
      GROUPBOX        "ƒp[ƒeƒBƒVƒ‡ƒ“Eƒpƒ‰ƒ[ƒ^[",IDC_ARGS_FRAME,7,117,250,
                      33
!     CONTROL         "",IDC_DRIVE_LIST,"FastList",WS_TABSTOP | 0x8b,7,21,250,
                      89,WS_EX_CLIENTEDGE
      LTEXT           "/vicep",IDC_VICEP_STATIC,102,131,22,8
  END
--- 480,486 ----
      PUSHBUTTON      "ƒwƒ‹ƒv",9,210,158,40,14
      GROUPBOX        "ƒp[ƒeƒBƒVƒ‡ƒ“Eƒpƒ‰ƒ[ƒ^[",IDC_ARGS_FRAME,7,117,250,
                      33
!     CONTROL         "",IDC_DRIVE_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x8b,7,21,250,
                      89,WS_EX_CLIENTEDGE
      LTEXT           "/vicep",IDC_VICEP_STATIC,102,131,22,8
  END
Index: openafs/src/WINNT/afssvrcfg/lang/ko_KR/afscfg.rc
diff -c openafs/src/WINNT/afssvrcfg/lang/ko_KR/afscfg.rc:1.4 openafs/src/WINNT/afssvrcfg/lang/ko_KR/afscfg.rc:1.4.6.1
*** openafs/src/WINNT/afssvrcfg/lang/ko_KR/afscfg.rc:1.4	Fri Mar 11 00:33:42 2005
--- openafs/src/WINNT/afssvrcfg/lang/ko_KR/afscfg.rc	Tue Dec 12 15:40:58 2006
***************
*** 61,67 ****
  BEGIN
      CONTROL         "ÆÄÆ¼¼Ç ÀÛ¼º(&Y)",IDC_CREATE_PARTITION,"Button",
                      BS_AUTORADIOBUTTON | WS_GROUP,0,81,87,10
!     CONTROL         "",IDC_DRIVE_LIST,"FastList",WS_TABSTOP | 0x8b,12,104,
                      186,52,WS_EX_CLIENTEDGE
      EDITTEXT        IDC_PARTITION_NAME,93,172,20,12,ES_AUTOHSCROLL
      CONTROL         "ÆÄÆ¼¼ÇÀ» ÀÛ¼ºÇÏÁö ¾ÊÀ½(&O)",IDC_DONT_CREATE_PARTITION,
--- 61,67 ----
  BEGIN
      CONTROL         "ÆÄÆ¼¼Ç ÀÛ¼º(&Y)",IDC_CREATE_PARTITION,"Button",
                      BS_AUTORADIOBUTTON | WS_GROUP,0,81,87,10
!     CONTROL         "",IDC_DRIVE_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x8b,12,104,
                      186,52,WS_EX_CLIENTEDGE
      EDITTEXT        IDC_PARTITION_NAME,93,172,20,12,ES_AUTOHSCROLL
      CONTROL         "ÆÄÆ¼¼ÇÀ» ÀÛ¼ºÇÏÁö ¾ÊÀ½(&O)",IDC_DONT_CREATE_PARTITION,
***************
*** 443,449 ****
                      IDC_REMOVE_MSG,30,235,253,8,WS_DISABLED
      PUSHBUTTON      "Á¦°Å(&M)",IDC_REMOVE,17,217,53,14,WS_DISABLED
      GROUPBOX        "ÆÄÆ¼¼Ç",IDC_AGGR_FRAME,7,103,281,155
!     CONTROL         "",IDC_PARTITION_LIST,"FastList",WS_TABSTOP | 0x83,7,16,
                      281,79,WS_EX_CLIENTEDGE
      LTEXT           "ÀÌ ¼­¹ö¿¡ »õ ÆÄÆ¼¼ÇÀ» ÀÛ¼ºÇÏ·Á¸é, À§ÀÇ ´ÜÃß¸¦ ´©¸£½Ê½Ã¿À.",
                      IDC_CREATE_MSG,30,136,254,8
--- 443,449 ----
                      IDC_REMOVE_MSG,30,235,253,8,WS_DISABLED
      PUSHBUTTON      "Á¦°Å(&M)",IDC_REMOVE,17,217,53,14,WS_DISABLED
      GROUPBOX        "ÆÄÆ¼¼Ç",IDC_AGGR_FRAME,7,103,281,155
!     CONTROL         "",IDC_PARTITION_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x83,7,16,
                      281,79,WS_EX_CLIENTEDGE
      LTEXT           "ÀÌ ¼­¹ö¿¡ »õ ÆÄÆ¼¼ÇÀ» ÀÛ¼ºÇÏ·Á¸é, À§ÀÇ ´ÜÃß¸¦ ´©¸£½Ê½Ã¿À.",
                      IDC_CREATE_MSG,30,136,254,8
***************
*** 462,468 ****
      PUSHBUTTON      "´Ý±â(&O)",IDC_CLOSE,152,158,50,14
      PUSHBUTTON      "µµ¿ò¸»",9,207,158,50,14
      GROUPBOX        "ÆÄÆ¼¼Ç ¸Å°³º¯¼ö",IDC_ARGS_FRAME,7,117,250,33
!     CONTROL         "",IDC_DRIVE_LIST,"FastList",WS_TABSTOP | 0x8b,7,15,250,
                      95,WS_EX_CLIENTEDGE
      LTEXT           "/vicep",IDC_VICEP_STATIC,90,131,22,8
  END
--- 462,468 ----
      PUSHBUTTON      "´Ý±â(&O)",IDC_CLOSE,152,158,50,14
      PUSHBUTTON      "µµ¿ò¸»",9,207,158,50,14
      GROUPBOX        "ÆÄÆ¼¼Ç ¸Å°³º¯¼ö",IDC_ARGS_FRAME,7,117,250,33
!     CONTROL         "",IDC_DRIVE_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x8b,7,15,250,
                      95,WS_EX_CLIENTEDGE
      LTEXT           "/vicep",IDC_VICEP_STATIC,90,131,22,8
  END
Index: openafs/src/WINNT/afssvrcfg/lang/pt_BR/afscfg.rc
diff -c openafs/src/WINNT/afssvrcfg/lang/pt_BR/afscfg.rc:1.4 openafs/src/WINNT/afssvrcfg/lang/pt_BR/afscfg.rc:1.4.6.1
*** openafs/src/WINNT/afssvrcfg/lang/pt_BR/afscfg.rc:1.4	Fri Mar 11 00:33:44 2005
--- openafs/src/WINNT/afssvrcfg/lang/pt_BR/afscfg.rc	Tue Dec 12 15:40:58 2006
***************
*** 61,67 ****
  BEGIN
      CONTROL         "&Sim, crie uma partição.",IDC_CREATE_PARTITION,"Button",
                      BS_AUTORADIOBUTTON | WS_GROUP,0,94,87,10
!     CONTROL         "",IDC_DRIVE_LIST,"FastList",WS_TABSTOP | 0x8b,12,116,
                      186,52,WS_EX_CLIENTEDGE
      EDITTEXT        IDC_PARTITION_NAME,101,177,20,12,ES_AUTOHSCROLL
      CONTROL         "&Não, não crie uma partição.",IDC_DONT_CREATE_PARTITION,
--- 61,67 ----
  BEGIN
      CONTROL         "&Sim, crie uma partição.",IDC_CREATE_PARTITION,"Button",
                      BS_AUTORADIOBUTTON | WS_GROUP,0,94,87,10
!     CONTROL         "",IDC_DRIVE_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x8b,12,116,
                      186,52,WS_EX_CLIENTEDGE
      EDITTEXT        IDC_PARTITION_NAME,101,177,20,12,ES_AUTOHSCROLL
      CONTROL         "&Não, não crie uma partição.",IDC_DONT_CREATE_PARTITION,
***************
*** 456,462 ****
                      IDC_REMOVE_MSG,30,235,253,16,WS_DISABLED
      PUSHBUTTON      "Re&mover",IDC_REMOVE,17,217,53,14,WS_DISABLED
      GROUPBOX        "Partições",IDC_AGGR_FRAME,7,103,281,155
!     CONTROL         "",IDC_PARTITION_LIST,"FastList",WS_TABSTOP | 0x83,7,16,
                      281,79,WS_EX_CLIENTEDGE
      LTEXT           "Para criar uma nova partição neste servidor, clique no botão acima.",
                      IDC_CREATE_MSG,30,136,254,8
--- 456,462 ----
                      IDC_REMOVE_MSG,30,235,253,16,WS_DISABLED
      PUSHBUTTON      "Re&mover",IDC_REMOVE,17,217,53,14,WS_DISABLED
      GROUPBOX        "Partições",IDC_AGGR_FRAME,7,103,281,155
!     CONTROL         "",IDC_PARTITION_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x83,7,16,
                      281,79,WS_EX_CLIENTEDGE
      LTEXT           "Para criar uma nova partição neste servidor, clique no botão acima.",
                      IDC_CREATE_MSG,30,136,254,8
***************
*** 475,481 ****
      PUSHBUTTON      "&Fechar",IDC_CLOSE,190,158,50,14
      PUSHBUTTON      "Ajuda",9,245,158,50,14
      GROUPBOX        "Parâmetros da Partição",IDC_ARGS_FRAME,7,117,293,33
!     CONTROL         "",IDC_DRIVE_LIST,"FastList",WS_TABSTOP | 0x8b,7,15,293,
                      95,WS_EX_CLIENTEDGE
      LTEXT           "/vicep",IDC_VICEP_STATIC,90,131,22,8
  END
--- 475,481 ----
      PUSHBUTTON      "&Fechar",IDC_CLOSE,190,158,50,14
      PUSHBUTTON      "Ajuda",9,245,158,50,14
      GROUPBOX        "Parâmetros da Partição",IDC_ARGS_FRAME,7,117,293,33
!     CONTROL         "",IDC_DRIVE_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x8b,7,15,293,
                      95,WS_EX_CLIENTEDGE
      LTEXT           "/vicep",IDC_VICEP_STATIC,90,131,22,8
  END
Index: openafs/src/WINNT/afssvrcfg/lang/zh_CN/afscfg.rc
diff -c openafs/src/WINNT/afssvrcfg/lang/zh_CN/afscfg.rc:1.4 openafs/src/WINNT/afssvrcfg/lang/zh_CN/afscfg.rc:1.4.6.1
*** openafs/src/WINNT/afssvrcfg/lang/zh_CN/afscfg.rc:1.4	Fri Mar 11 00:33:46 2005
--- openafs/src/WINNT/afssvrcfg/lang/zh_CN/afscfg.rc	Tue Dec 12 15:41:00 2006
***************
*** 61,67 ****
  BEGIN
      CONTROL         "ÊÇ£¬´´½¨·ÖÇø(&Y)",IDC_CREATE_PARTITION,"Button",
                      BS_AUTORADIOBUTTON | WS_GROUP,0,94,87,10
!     CONTROL         "",IDC_DRIVE_LIST,"FastList",WS_TABSTOP | 0x8b,12,116,
                      186,41,WS_EX_CLIENTEDGE
      EDITTEXT        IDC_PARTITION_NAME,101,175,20,12,ES_AUTOHSCROLL
      CONTROL         "·ñ£¬²»Òª´´½¨·ÖÇø(&O)",IDC_DONT_CREATE_PARTITION,"Button",
--- 61,67 ----
  BEGIN
      CONTROL         "ÊÇ£¬´´½¨·ÖÇø(&Y)",IDC_CREATE_PARTITION,"Button",
                      BS_AUTORADIOBUTTON | WS_GROUP,0,94,87,10
!     CONTROL         "",IDC_DRIVE_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x8b,12,116,
                      186,41,WS_EX_CLIENTEDGE
      EDITTEXT        IDC_PARTITION_NAME,101,175,20,12,ES_AUTOHSCROLL
      CONTROL         "·ñ£¬²»Òª´´½¨·ÖÇø(&O)",IDC_DONT_CREATE_PARTITION,"Button",
***************
*** 431,437 ****
                      IDC_REMOVE_MSG,30,235,253,8,WS_DISABLED
      PUSHBUTTON      "³ýÈ¥(&M)",IDC_REMOVE,17,217,53,14,WS_DISABLED
      GROUPBOX        "·ÖÇø",IDC_AGGR_FRAME,7,103,281,155
!     CONTROL         "",IDC_PARTITION_LIST,"FastList",WS_TABSTOP | 0x83,7,16,
                      281,79,WS_EX_CLIENTEDGE
      LTEXT           "ÒªÔÚ¸Ã·þÎñÆ÷ÉÏÐÂ½¨·ÖÇø£¬µ¥»÷ÉÏÃæµÄ°´Å¥¡£",
                      IDC_CREATE_MSG,30,136,254,8
--- 431,437 ----
                      IDC_REMOVE_MSG,30,235,253,8,WS_DISABLED
      PUSHBUTTON      "³ýÈ¥(&M)",IDC_REMOVE,17,217,53,14,WS_DISABLED
      GROUPBOX        "·ÖÇø",IDC_AGGR_FRAME,7,103,281,155
!     CONTROL         "",IDC_PARTITION_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x83,7,16,
                      281,79,WS_EX_CLIENTEDGE
      LTEXT           "ÒªÔÚ¸Ã·þÎñÆ÷ÉÏÐÂ½¨·ÖÇø£¬µ¥»÷ÉÏÃæµÄ°´Å¥¡£",
                      IDC_CREATE_MSG,30,136,254,8
***************
*** 450,456 ****
      PUSHBUTTON      "¹Ø±Õ(&O)",IDC_CLOSE,152,158,50,14
      PUSHBUTTON      "°ïÖú",9,207,158,50,14
      GROUPBOX        "·ÖÇø²ÎÊý",IDC_ARGS_FRAME,7,117,250,33
!     CONTROL         "",IDC_DRIVE_LIST,"FastList",WS_TABSTOP | 0x8b,7,15,250,
                      95,WS_EX_CLIENTEDGE
      LTEXT           "/vicep",IDC_VICEP_STATIC,90,131,24,8
  END
--- 450,456 ----
      PUSHBUTTON      "¹Ø±Õ(&O)",IDC_CLOSE,152,158,50,14
      PUSHBUTTON      "°ïÖú",9,207,158,50,14
      GROUPBOX        "·ÖÇø²ÎÊý",IDC_ARGS_FRAME,7,117,250,33
!     CONTROL         "",IDC_DRIVE_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x8b,7,15,250,
                      95,WS_EX_CLIENTEDGE
      LTEXT           "/vicep",IDC_VICEP_STATIC,90,131,24,8
  END
Index: openafs/src/WINNT/afssvrcfg/lang/zh_TW/afscfg.rc
diff -c openafs/src/WINNT/afssvrcfg/lang/zh_TW/afscfg.rc:1.4 openafs/src/WINNT/afssvrcfg/lang/zh_TW/afscfg.rc:1.4.6.1
*** openafs/src/WINNT/afssvrcfg/lang/zh_TW/afscfg.rc:1.4	Fri Mar 11 00:33:48 2005
--- openafs/src/WINNT/afssvrcfg/lang/zh_TW/afscfg.rc	Tue Dec 12 15:41:00 2006
***************
*** 61,67 ****
  BEGIN
      CONTROL         "¬O(&Y)¡A«Ø¥ß¤À³Î°Ï¡C",IDC_CREATE_PARTITION,"Button",
                      BS_AUTORADIOBUTTON | WS_GROUP,0,94,87,10
!     CONTROL         "",IDC_DRIVE_LIST,"FastList",WS_TABSTOP | 0x8b,12,121,
                      186,38,WS_EX_CLIENTEDGE
      EDITTEXT        IDC_PARTITION_NAME,124,165,33,12,ES_AUTOHSCROLL
      CONTROL         "§_(&O)¡A¤£­n«Ø¥ß¤À³Î°Ï¡C",IDC_DONT_CREATE_PARTITION,
--- 61,67 ----
  BEGIN
      CONTROL         "¬O(&Y)¡A«Ø¥ß¤À³Î°Ï¡C",IDC_CREATE_PARTITION,"Button",
                      BS_AUTORADIOBUTTON | WS_GROUP,0,94,87,10
!     CONTROL         "",IDC_DRIVE_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x8b,12,121,
                      186,38,WS_EX_CLIENTEDGE
      EDITTEXT        IDC_PARTITION_NAME,124,165,33,12,ES_AUTOHSCROLL
      CONTROL         "§_(&O)¡A¤£­n«Ø¥ß¤À³Î°Ï¡C",IDC_DONT_CREATE_PARTITION,
***************
*** 437,443 ****
                      IDC_REMOVE_MSG,30,235,253,8,WS_DISABLED
      PUSHBUTTON      "²¾°£(&M)",IDC_REMOVE,17,217,53,14,WS_DISABLED
      GROUPBOX        "¤À³Î°Ï",IDC_AGGR_FRAME,7,103,281,155
!     CONTROL         "",IDC_PARTITION_LIST,"FastList",WS_TABSTOP | 0x83,7,16,
                      281,79,WS_EX_CLIENTEDGE
      LTEXT           "¦p­n¦b¦¹¦øªA¾¹¤W«Ø¥ß·sªº¤À³Î°Ï¡A½Ð«ö¤W­±ªº«ö¶s¡C",
                      IDC_CREATE_MSG,30,136,254,8
--- 437,443 ----
                      IDC_REMOVE_MSG,30,235,253,8,WS_DISABLED
      PUSHBUTTON      "²¾°£(&M)",IDC_REMOVE,17,217,53,14,WS_DISABLED
      GROUPBOX        "¤À³Î°Ï",IDC_AGGR_FRAME,7,103,281,155
!     CONTROL         "",IDC_PARTITION_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x83,7,16,
                      281,79,WS_EX_CLIENTEDGE
      LTEXT           "¦p­n¦b¦¹¦øªA¾¹¤W«Ø¥ß·sªº¤À³Î°Ï¡A½Ð«ö¤W­±ªº«ö¶s¡C",
                      IDC_CREATE_MSG,30,136,254,8
***************
*** 456,462 ****
      PUSHBUTTON      "Ãö³¬(&O)",IDC_CLOSE,152,158,50,14
      PUSHBUTTON      "»¡©ú",9,207,158,50,14
      GROUPBOX        "¤À³Î°Ï°Ñ¼Æ",IDC_ARGS_FRAME,7,117,250,33
!     CONTROL         "",IDC_DRIVE_LIST,"FastList",WS_TABSTOP | 0x8b,7,15,250,
                      95,WS_EX_CLIENTEDGE
      LTEXT           "/vicep",IDC_VICEP_STATIC,90,131,22,8
  END
--- 456,462 ----
      PUSHBUTTON      "Ãö³¬(&O)",IDC_CLOSE,152,158,50,14
      PUSHBUTTON      "»¡©ú",9,207,158,50,14
      GROUPBOX        "¤À³Î°Ï°Ñ¼Æ",IDC_ARGS_FRAME,7,117,250,33
!     CONTROL         "",IDC_DRIVE_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x8b,7,15,250,
                      95,WS_EX_CLIENTEDGE
      LTEXT           "/vicep",IDC_VICEP_STATIC,90,131,22,8
  END
Index: openafs/src/WINNT/afssvrmgr/lang/de_DE/svrmgr.rc
diff -c openafs/src/WINNT/afssvrmgr/lang/de_DE/svrmgr.rc:1.4 openafs/src/WINNT/afssvrmgr/lang/de_DE/svrmgr.rc:1.4.14.1
*** openafs/src/WINNT/afssvrmgr/lang/de_DE/svrmgr.rc:1.4	Thu Apr  1 14:09:44 2004
--- openafs/src/WINNT/afssvrmgr/lang/de_DE/svrmgr.rc	Tue Dec 12 15:41:02 2006
***************
*** 814,820 ****
  FONT 9, "MS Shell Dlg", 0, 0, 0x1
  BEGIN
      LTEXT           "Services:",IDC_SVC_DESC,0,5,179,8
!     CONTROL         "",IDC_SVC_LIST,"FastList",WS_TABSTOP | 0x303,0,17,179,
                      61,WS_EX_STATICEDGE
      PUSHBUTTON      "&Erstellen...",IDC_SVC_CREATE,44,80,39,12
      PUSHBUTTON      "&Löschen",IDC_SVC_DELETE,86,80,39,12
--- 814,820 ----
  FONT 9, "MS Shell Dlg", 0, 0, 0x1
  BEGIN
      LTEXT           "Services:",IDC_SVC_DESC,0,5,179,8
!     CONTROL         "",IDC_SVC_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,0,17,179,
                      61,WS_EX_STATICEDGE
      PUSHBUTTON      "&Erstellen...",IDC_SVC_CREATE,44,80,39,12
      PUSHBUTTON      "&Löschen",IDC_SVC_DELETE,86,80,39,12
***************
*** 826,832 ****
  FONT 9, "MS Shell Dlg", 0, 0, 0x1
  BEGIN
      LTEXT           "Partitionen:",IDC_AGG_DESC,0,5,165,8
!     CONTROL         "",IDC_AGG_LIST,"FastList",WS_TABSTOP | 0x303,0,17,165,
                      53,WS_EX_STATICEDGE
      PUSHBUTTON      "Volume &erstellen...",IDC_AGG_CREATESET,102,72,63,12
  END
--- 826,832 ----
  FONT 9, "MS Shell Dlg", 0, 0, 0x1
  BEGIN
      LTEXT           "Partitionen:",IDC_AGG_DESC,0,5,165,8
!     CONTROL         "",IDC_AGG_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,0,17,165,
                      53,WS_EX_STATICEDGE
      PUSHBUTTON      "Volume &erstellen...",IDC_AGG_CREATESET,102,72,63,12
  END
***************
*** 836,842 ****
  FONT 9, "MS Shell Dlg", 0, 0, 0x1
  BEGIN
      LTEXT           "Volumes:",IDC_SET_DESC,0,5,194,8
!     CONTROL         "",IDC_SET_LIST,"FastList",WS_TABSTOP | 0x303,0,17,194,
                      61,WS_EX_STATICEDGE
      PUSHBUTTON      "&Erstellen...",IDC_SET_CREATE,1,80,39,12
      PUSHBUTTON      "&Löschen",IDC_SET_DELETE,41,80,39,12
--- 836,842 ----
  FONT 9, "MS Shell Dlg", 0, 0, 0x1
  BEGIN
      LTEXT           "Volumes:",IDC_SET_DESC,0,5,194,8
!     CONTROL         "",IDC_SET_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,0,17,194,
                      61,WS_EX_STATICEDGE
      PUSHBUTTON      "&Erstellen...",IDC_SET_CREATE,1,80,39,12
      PUSHBUTTON      "&Löschen",IDC_SET_DELETE,41,80,39,12
***************
*** 848,854 ****
  STYLE WS_CHILD
  FONT 9, "MS Shell Dlg"
  BEGIN
!     CONTROL         "",IDC_LIST_LIST,"FastList",WS_TABSTOP | 0x11,5,22,216,
                      135,WS_EX_CLIENTEDGE
      PUSHBUTTON      "&Administrator hinzufügen",IDC_LIST_ADD,51,160,87,14
      PUSHBUTTON      "Administ&rator entfernen",IDC_LIST_REMOVE,141,160,80,14
--- 848,854 ----
  STYLE WS_CHILD
  FONT 9, "MS Shell Dlg"
  BEGIN
!     CONTROL         "",IDC_LIST_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x11,5,22,216,
                      135,WS_EX_CLIENTEDGE
      PUSHBUTTON      "&Administrator hinzufügen",IDC_LIST_ADD,51,160,87,14
      PUSHBUTTON      "Administ&rator entfernen",IDC_LIST_REMOVE,141,160,80,14
***************
*** 1036,1042 ****
                      9
      LTEXT           "AFS-Token:",IDC_STATIC,2,19,55,8
      LTEXT           "%2:%1 (Token laufen %3 ab)",IDC_AFS_ID,69,19,208,9
!     CONTROL         "",IDC_SERVERS,"FastList",WS_TABSTOP | 0x301,2,31,313,
                      193,WS_EX_CLIENTEDGE
      CONTROL         "",IDC_CELL_BORDER,"Static",SS_ETCHEDHORZ,1,2,315,1
      ICON            IDI_MAIN,IDC_ANIMATE,292,7,20,20,SS_REALSIZEIMAGE | 
--- 1036,1042 ----
                      9
      LTEXT           "AFS-Token:",IDC_STATIC,2,19,55,8
      LTEXT           "%2:%1 (Token laufen %3 ab)",IDC_AFS_ID,69,19,208,9
!     CONTROL         "",IDC_SERVERS,"OpenAFS_FastList",WS_TABSTOP | 0x301,2,31,313,
                      193,WS_EX_CLIENTEDGE
      CONTROL         "",IDC_CELL_BORDER,"Static",SS_ETCHEDHORZ,1,2,315,1
      ICON            IDI_MAIN,IDC_ANIMATE,292,7,20,20,SS_REALSIZEIMAGE | 
***************
*** 1094,1100 ****
  STYLE WS_CHILD
  FONT 9, "MS Shell Dlg"
  BEGIN
!     CONTROL         "",IDC_SET_REP_LIST,"FastList",WS_TABSTOP | 0x303,11,80,
                      199,58,WS_EX_CLIENTEDGE
      PUSHBUTTON      "Jetzt f&reigeben",IDC_SET_RELEASE,11,143,56,14
      PUSHBUTTON      "&Erstellen...",IDC_SET_REPSITE_ADD,129,143,38,14
--- 1094,1100 ----
  STYLE WS_CHILD
  FONT 9, "MS Shell Dlg"
  BEGIN
!     CONTROL         "",IDC_SET_REP_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,11,80,
                      199,58,WS_EX_CLIENTEDGE
      PUSHBUTTON      "Jetzt f&reigeben",IDC_SET_RELEASE,11,143,56,14
      PUSHBUTTON      "&Erstellen...",IDC_SET_REPSITE_ADD,129,143,38,14
***************
*** 1230,1236 ****
      COMBOBOX        IDC_SET_SERVER,46,82,116,107,CBS_DROPDOWNLIST | CBS_SORT | 
                      WS_VSCROLL | WS_TABSTOP
      LTEXT           "&Partition:",IDC_STATIC,4,102,39,8
!     CONTROL         "",IDC_AGG_LIST,"FastList",WS_TABSTOP | 0x303,46,102,271,
                      75,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "OK",IDOK,156,191,50,14
      PUSHBUTTON      "Abbrechen",IDCANCEL,211,191,50,14
--- 1230,1236 ----
      COMBOBOX        IDC_SET_SERVER,46,82,116,107,CBS_DROPDOWNLIST | CBS_SORT | 
                      WS_VSCROLL | WS_TABSTOP
      LTEXT           "&Partition:",IDC_STATIC,4,102,39,8
!     CONTROL         "",IDC_AGG_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,46,102,271,
                      75,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "OK",IDOK,156,191,50,14
      PUSHBUTTON      "Abbrechen",IDCANCEL,211,191,50,14
***************
*** 1338,1344 ****
  BEGIN
      COMBOBOX        IDC_MOVESET_SERVER,4,54,116,104,CBS_DROPDOWNLIST | 
                      CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     CONTROL         "",IDC_AGG_LIST,"FastList",WS_TABSTOP | 0x303,4,70,269,
                      75,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "OK",IDOK,115,156,50,14
      PUSHBUTTON      "Abbrechen",IDCANCEL,169,156,50,14
--- 1338,1344 ----
  BEGIN
      COMBOBOX        IDC_MOVESET_SERVER,4,54,116,104,CBS_DROPDOWNLIST | 
                      CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     CONTROL         "",IDC_AGG_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,4,70,269,
                      75,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "OK",IDOK,115,156,50,14
      PUSHBUTTON      "Abbrechen",IDCANCEL,169,156,50,14
***************
*** 1433,1439 ****
  BEGIN
      LTEXT           "Die folgenden Operationen sind momentan aktiv:",
                      IDC_ACTION_DESC,2,2,232,8
!     CONTROL         "",IDC_ACTION_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x3,2,14,232,43
  END
  
--- 1433,1439 ----
  BEGIN
      LTEXT           "Die folgenden Operationen sind momentan aktiv:",
                      IDC_ACTION_DESC,2,2,232,8
!     CONTROL         "",IDC_ACTION_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x3,2,14,232,43
  END
  
***************
*** 1461,1467 ****
  BEGIN
      COMBOBOX        IDC_SET_SERVER,4,46,116,104,CBS_DROPDOWNLIST | CBS_SORT | 
                      WS_VSCROLL | WS_TABSTOP
!     CONTROL         "",IDC_AGG_LIST,"FastList",WS_TABSTOP | 0x303,4,62,269,
                      75,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "OK",IDOK,115,153,50,14
      PUSHBUTTON      "Abbrechen",IDCANCEL,169,153,50,14
--- 1461,1467 ----
  BEGIN
      COMBOBOX        IDC_SET_SERVER,4,46,116,104,CBS_DROPDOWNLIST | CBS_SORT | 
                      WS_VSCROLL | WS_TABSTOP
!     CONTROL         "",IDC_AGG_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,4,62,269,
                      75,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "OK",IDOK,115,153,50,14
      PUSHBUTTON      "Abbrechen",IDCANCEL,169,153,50,14
***************
*** 1670,1676 ****
      COMBOBOX        IDC_RESTORE_SERVER,51,143,116,104,CBS_DROPDOWNLIST | 
                      CBS_SORT | WS_VSCROLL | WS_TABSTOP
      LTEXT           "&Partition:",IDC_STATIC,11,162,36,8
!     CONTROL         "",IDC_AGG_LIST,"FastList",WS_TABSTOP | 0x303,50,161,231,
                      55,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "OK",IDOK,128,230,50,14
      PUSHBUTTON      "Abbrechen",IDCANCEL,183,230,50,14
--- 1670,1676 ----
      COMBOBOX        IDC_RESTORE_SERVER,51,143,116,104,CBS_DROPDOWNLIST | 
                      CBS_SORT | WS_VSCROLL | WS_TABSTOP
      LTEXT           "&Partition:",IDC_STATIC,11,162,36,8
!     CONTROL         "",IDC_AGG_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,50,161,231,
                      55,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "OK",IDOK,128,230,50,14
      PUSHBUTTON      "Abbrechen",IDCANCEL,183,230,50,14
***************
*** 1781,1787 ****
                      ES_READONLY | NOT WS_TABSTOP
      PUSHBUTTON      "Ö&ffnen...",IDC_SUBSET_LOAD,185,75,39,14
      PUSHBUTTON      "&Speichern...",IDC_SUBSET_SAVE,229,75,41,14
!     CONTROL         "",IDC_SUBSET_LIST,"CheckList",WS_BORDER | WS_VSCROLL | 
                      WS_TABSTOP | 0x153,12,111,193,58,WS_EX_CLIENTEDGE
      PUSHBUTTON      "&Alle überwachen",IDC_SUBSET_ALL,209,122,64,14
      PUSHBUTTON      "Kei&ne überwachen",IDC_SUBSET_NONE,209,140,64,14
--- 1781,1787 ----
                      ES_READONLY | NOT WS_TABSTOP
      PUSHBUTTON      "Ö&ffnen...",IDC_SUBSET_LOAD,185,75,39,14
      PUSHBUTTON      "&Speichern...",IDC_SUBSET_SAVE,229,75,41,14
!     CONTROL         "",IDC_SUBSET_LIST,"OpenAFS_CheckList",WS_BORDER | WS_VSCROLL | 
                      WS_TABSTOP | 0x153,12,111,193,58,WS_EX_CLIENTEDGE
      PUSHBUTTON      "&Alle überwachen",IDC_SUBSET_ALL,209,122,64,14
      PUSHBUTTON      "Kei&ne überwachen",IDC_SUBSET_NONE,209,140,64,14
***************
*** 1909,1915 ****
  STYLE WS_CHILD
  FONT 9, "MS Shell Dlg"
  BEGIN
!     CONTROL         "",IDC_KEY_LIST,"FastList",WS_TABSTOP | 0x30b,5,22,216,
                      135,WS_EX_CLIENTEDGE
      PUSHBUTTON      "Server-Schlüssel &hinzufügen",IDC_KEY_ADD,29,160,96,14
      PUSHBUTTON      "Server-Schlüssel entfe&rnen",IDC_KEY_REMOVE,129,160,93,
--- 1909,1915 ----
  STYLE WS_CHILD
  FONT 9, "MS Shell Dlg"
  BEGIN
!     CONTROL         "",IDC_KEY_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x30b,5,22,216,
                      135,WS_EX_CLIENTEDGE
      PUSHBUTTON      "Server-Schlüssel &hinzufügen",IDC_KEY_ADD,29,160,96,14
      PUSHBUTTON      "Server-Schlüssel entfe&rnen",IDC_KEY_REMOVE,129,160,93,
***************
*** 2085,2091 ****
      PUSHBUTTON      "Host-Server entfe&rnen",IDC_HOST_REMOVE,141,160,80,14
      LTEXT           "Vom Server erkannte Datenbank-Host-Server:",
                      IDC_HOST_TITLE,5,7,216,8
!     CONTROL         "",IDC_HOST_LIST,"FastList",WS_TABSTOP | 0x11,5,22,216,
                      135,WS_EX_CLIENTEDGE
  END
  
--- 2085,2091 ----
      PUSHBUTTON      "Host-Server entfe&rnen",IDC_HOST_REMOVE,141,160,80,14
      LTEXT           "Vom Server erkannte Datenbank-Host-Server:",
                      IDC_HOST_TITLE,5,7,216,8
!     CONTROL         "",IDC_HOST_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x11,5,22,216,
                      135,WS_EX_CLIENTEDGE
  END
  
Index: openafs/src/WINNT/afssvrmgr/lang/en_US/svrmgr.rc
diff -c openafs/src/WINNT/afssvrmgr/lang/en_US/svrmgr.rc:1.4 openafs/src/WINNT/afssvrmgr/lang/en_US/svrmgr.rc:1.4.14.1
*** openafs/src/WINNT/afssvrmgr/lang/en_US/svrmgr.rc:1.4	Thu Apr  1 14:09:45 2004
--- openafs/src/WINNT/afssvrmgr/lang/en_US/svrmgr.rc	Tue Dec 12 15:41:02 2006
***************
*** 815,821 ****
  FONT 9, "MS Shell Dlg", 0, 0, 0x1
  BEGIN
      LTEXT           "Services:",IDC_SVC_DESC,0,5,179,8
!     CONTROL         "",IDC_SVC_LIST,"FastList",WS_TABSTOP | 0x303,0,17,179,
                      61,WS_EX_STATICEDGE
      PUSHBUTTON      "&Create...",IDC_SVC_CREATE,56,80,39,12
      PUSHBUTTON      "De&lete",IDC_SVC_DELETE,98,80,39,12
--- 815,821 ----
  FONT 9, "MS Shell Dlg", 0, 0, 0x1
  BEGIN
      LTEXT           "Services:",IDC_SVC_DESC,0,5,179,8
!     CONTROL         "",IDC_SVC_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,0,17,179,
                      61,WS_EX_STATICEDGE
      PUSHBUTTON      "&Create...",IDC_SVC_CREATE,56,80,39,12
      PUSHBUTTON      "De&lete",IDC_SVC_DELETE,98,80,39,12
***************
*** 827,833 ****
  FONT 9, "MS Shell Dlg", 0, 0, 0x1
  BEGIN
      LTEXT           "Partitions:",IDC_AGG_DESC,0,5,165,8
!     CONTROL         "",IDC_AGG_LIST,"FastList",WS_TABSTOP | 0x303,0,17,165,
                      53,WS_EX_STATICEDGE
      PUSHBUTTON      "&Create Volume...",IDC_AGG_CREATESET,102,72,63,12
  END
--- 827,833 ----
  FONT 9, "MS Shell Dlg", 0, 0, 0x1
  BEGIN
      LTEXT           "Partitions:",IDC_AGG_DESC,0,5,165,8
!     CONTROL         "",IDC_AGG_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,0,17,165,
                      53,WS_EX_STATICEDGE
      PUSHBUTTON      "&Create Volume...",IDC_AGG_CREATESET,102,72,63,12
  END
***************
*** 837,843 ****
  FONT 9, "MS Shell Dlg", 0, 0, 0x1
  BEGIN
      LTEXT           "Volumes:",IDC_SET_DESC,0,5,194,8
!     CONTROL         "",IDC_SET_LIST,"FastList",WS_TABSTOP | 0x303,0,17,194,
                      61,WS_EX_STATICEDGE
      PUSHBUTTON      "&Create...",IDC_SET_CREATE,6,80,39,12
      PUSHBUTTON      "De&lete",IDC_SET_DELETE,48,80,39,12
--- 837,843 ----
  FONT 9, "MS Shell Dlg", 0, 0, 0x1
  BEGIN
      LTEXT           "Volumes:",IDC_SET_DESC,0,5,194,8
!     CONTROL         "",IDC_SET_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,0,17,194,
                      61,WS_EX_STATICEDGE
      PUSHBUTTON      "&Create...",IDC_SET_CREATE,6,80,39,12
      PUSHBUTTON      "De&lete",IDC_SET_DELETE,48,80,39,12
***************
*** 849,855 ****
  STYLE WS_CHILD
  FONT 9, "MS Shell Dlg", 0, 0, 0x1
  BEGIN
!     CONTROL         "",IDC_LIST_LIST,"FastList",WS_TABSTOP | 0x11,5,22,216,
                      135,WS_EX_CLIENTEDGE
      PUSHBUTTON      "&Add Administrator",IDC_LIST_ADD,72,160,65,14
      PUSHBUTTON      "&Remove Administrator",IDC_LIST_REMOVE,141,160,80,14
--- 849,855 ----
  STYLE WS_CHILD
  FONT 9, "MS Shell Dlg", 0, 0, 0x1
  BEGIN
!     CONTROL         "",IDC_LIST_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x11,5,22,216,
                      135,WS_EX_CLIENTEDGE
      PUSHBUTTON      "&Add Administrator",IDC_LIST_ADD,72,160,65,14
      PUSHBUTTON      "&Remove Administrator",IDC_LIST_REMOVE,141,160,80,14
***************
*** 1031,1037 ****
      LTEXT           "(cell name will be placed here)",IDC_CELL,62,8,208,9
      LTEXT           "AFS Tokens:",IDC_STATIC,2,19,55,8
      LTEXT           "%2:%1 (tokens will expire %3)",IDC_AFS_ID,62,19,208,9
!     CONTROL         "",IDC_SERVERS,"FastList",WS_TABSTOP | 0x301,2,31,313,
                      193,WS_EX_CLIENTEDGE
      CONTROL         "",IDC_CELL_BORDER,"Static",SS_ETCHEDHORZ,1,2,315,1
      ICON            IDI_MAIN,IDC_ANIMATE,292,7,20,20,SS_REALSIZEIMAGE | 
--- 1031,1037 ----
      LTEXT           "(cell name will be placed here)",IDC_CELL,62,8,208,9
      LTEXT           "AFS Tokens:",IDC_STATIC,2,19,55,8
      LTEXT           "%2:%1 (tokens will expire %3)",IDC_AFS_ID,62,19,208,9
!     CONTROL         "",IDC_SERVERS,"OpenAFS_FastList",WS_TABSTOP | 0x301,2,31,313,
                      193,WS_EX_CLIENTEDGE
      CONTROL         "",IDC_CELL_BORDER,"Static",SS_ETCHEDHORZ,1,2,315,1
      ICON            IDI_MAIN,IDC_ANIMATE,292,7,20,20,SS_REALSIZEIMAGE | 
***************
*** 1088,1094 ****
  STYLE WS_CHILD
  FONT 9, "MS Shell Dlg", 0, 0, 0x1
  BEGIN
!     CONTROL         "",IDC_SET_REP_LIST,"FastList",WS_TABSTOP | 0x303,11,80,
                      199,58,WS_EX_CLIENTEDGE
      PUSHBUTTON      "&Release Now",IDC_SET_RELEASE,11,143,52,14
      PUSHBUTTON      "&Create...",IDC_SET_REPSITE_ADD,129,143,38,14
--- 1088,1094 ----
  STYLE WS_CHILD
  FONT 9, "MS Shell Dlg", 0, 0, 0x1
  BEGIN
!     CONTROL         "",IDC_SET_REP_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,11,80,
                      199,58,WS_EX_CLIENTEDGE
      PUSHBUTTON      "&Release Now",IDC_SET_RELEASE,11,143,52,14
      PUSHBUTTON      "&Create...",IDC_SET_REPSITE_ADD,129,143,38,14
***************
*** 1223,1229 ****
      COMBOBOX        IDC_SET_SERVER,46,82,116,107,CBS_DROPDOWNLIST | CBS_SORT | 
                      WS_VSCROLL | WS_TABSTOP
      LTEXT           "&Partition:",IDC_STATIC,4,102,39,8
!     CONTROL         "",IDC_AGG_LIST,"FastList",WS_TABSTOP | 0x303,46,102,271,
                      75,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "OK",IDOK,156,191,50,14
      PUSHBUTTON      "Cancel",IDCANCEL,211,191,50,14
--- 1223,1229 ----
      COMBOBOX        IDC_SET_SERVER,46,82,116,107,CBS_DROPDOWNLIST | CBS_SORT | 
                      WS_VSCROLL | WS_TABSTOP
      LTEXT           "&Partition:",IDC_STATIC,4,102,39,8
!     CONTROL         "",IDC_AGG_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,46,102,271,
                      75,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "OK",IDOK,156,191,50,14
      PUSHBUTTON      "Cancel",IDCANCEL,211,191,50,14
***************
*** 1331,1337 ****
  BEGIN
      COMBOBOX        IDC_MOVESET_SERVER,4,54,116,104,CBS_DROPDOWNLIST | 
                      CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     CONTROL         "",IDC_AGG_LIST,"FastList",WS_TABSTOP | 0x303,4,70,269,
                      75,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "OK",IDOK,115,156,50,14
      PUSHBUTTON      "Cancel",IDCANCEL,169,156,50,14
--- 1331,1337 ----
  BEGIN
      COMBOBOX        IDC_MOVESET_SERVER,4,54,116,104,CBS_DROPDOWNLIST | 
                      CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     CONTROL         "",IDC_AGG_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,4,70,269,
                      75,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "OK",IDOK,115,156,50,14
      PUSHBUTTON      "Cancel",IDCANCEL,169,156,50,14
***************
*** 1425,1431 ****
  BEGIN
      LTEXT           "The following operations are currently in progress:",
                      IDC_ACTION_DESC,2,2,232,8
!     CONTROL         "",IDC_ACTION_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x3,2,14,232,43
  END
  
--- 1425,1431 ----
  BEGIN
      LTEXT           "The following operations are currently in progress:",
                      IDC_ACTION_DESC,2,2,232,8
!     CONTROL         "",IDC_ACTION_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x3,2,14,232,43
  END
  
***************
*** 1451,1457 ****
  BEGIN
      COMBOBOX        IDC_SET_SERVER,4,46,116,104,CBS_DROPDOWNLIST | CBS_SORT | 
                      WS_VSCROLL | WS_TABSTOP
!     CONTROL         "",IDC_AGG_LIST,"FastList",WS_TABSTOP | 0x303,4,62,269,
                      75,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "OK",IDOK,115,153,50,14
      PUSHBUTTON      "Cancel",IDCANCEL,169,153,50,14
--- 1451,1457 ----
  BEGIN
      COMBOBOX        IDC_SET_SERVER,4,46,116,104,CBS_DROPDOWNLIST | CBS_SORT | 
                      WS_VSCROLL | WS_TABSTOP
!     CONTROL         "",IDC_AGG_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,4,62,269,
                      75,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "OK",IDOK,115,153,50,14
      PUSHBUTTON      "Cancel",IDCANCEL,169,153,50,14
***************
*** 1654,1660 ****
      COMBOBOX        IDC_RESTORE_SERVER,51,143,116,104,CBS_DROPDOWNLIST | 
                      CBS_SORT | WS_VSCROLL | WS_TABSTOP
      LTEXT           "&Partition:",IDC_STATIC,11,162,36,8
!     CONTROL         "",IDC_AGG_LIST,"FastList",WS_TABSTOP | 0x303,50,161,231,
                      55,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "OK",IDOK,128,230,50,14
      PUSHBUTTON      "Cancel",IDCANCEL,183,230,50,14
--- 1654,1660 ----
      COMBOBOX        IDC_RESTORE_SERVER,51,143,116,104,CBS_DROPDOWNLIST | 
                      CBS_SORT | WS_VSCROLL | WS_TABSTOP
      LTEXT           "&Partition:",IDC_STATIC,11,162,36,8
!     CONTROL         "",IDC_AGG_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,50,161,231,
                      55,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "OK",IDOK,128,230,50,14
      PUSHBUTTON      "Cancel",IDCANCEL,183,230,50,14
***************
*** 1764,1770 ****
                      ES_READONLY | NOT WS_TABSTOP
      PUSHBUTTON      "&Open...",IDC_SUBSET_LOAD,185,75,39,14
      PUSHBUTTON      "&Save...",IDC_SUBSET_SAVE,229,75,39,14
!     CONTROL         "",IDC_SUBSET_LIST,"CheckList",WS_BORDER | WS_VSCROLL | 
                      WS_TABSTOP | 0x153,12,111,193,58,WS_EX_CLIENTEDGE
      PUSHBUTTON      "Monitor &All",IDC_SUBSET_ALL,211,122,57,14
      PUSHBUTTON      "Monitor &None",IDC_SUBSET_NONE,211,140,57,14
--- 1764,1770 ----
                      ES_READONLY | NOT WS_TABSTOP
      PUSHBUTTON      "&Open...",IDC_SUBSET_LOAD,185,75,39,14
      PUSHBUTTON      "&Save...",IDC_SUBSET_SAVE,229,75,39,14
!     CONTROL         "",IDC_SUBSET_LIST,"OpenAFS_CheckList",WS_BORDER | WS_VSCROLL | 
                      WS_TABSTOP | 0x153,12,111,193,58,WS_EX_CLIENTEDGE
      PUSHBUTTON      "Monitor &All",IDC_SUBSET_ALL,211,122,57,14
      PUSHBUTTON      "Monitor &None",IDC_SUBSET_NONE,211,140,57,14
***************
*** 1891,1897 ****
  STYLE WS_CHILD
  FONT 9, "MS Shell Dlg", 0, 0, 0x1
  BEGIN
!     CONTROL         "",IDC_KEY_LIST,"FastList",WS_TABSTOP | 0x30b,5,22,216,
                      135,WS_EX_CLIENTEDGE
      PUSHBUTTON      "&Add Server Key",IDC_KEY_ADD,72,160,65,14
      PUSHBUTTON      "&Remove Server Key",IDC_KEY_REMOVE,141,160,80,14
--- 1891,1897 ----
  STYLE WS_CHILD
  FONT 9, "MS Shell Dlg", 0, 0, 0x1
  BEGIN
!     CONTROL         "",IDC_KEY_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x30b,5,22,216,
                      135,WS_EX_CLIENTEDGE
      PUSHBUTTON      "&Add Server Key",IDC_KEY_ADD,72,160,65,14
      PUSHBUTTON      "&Remove Server Key",IDC_KEY_REMOVE,141,160,80,14
***************
*** 2063,2069 ****
      PUSHBUTTON      "&Remove Host Server",IDC_HOST_REMOVE,141,160,80,14
      LTEXT           "Database host servers recognized by server:",
                      IDC_HOST_TITLE,5,7,216,8
!     CONTROL         "",IDC_HOST_LIST,"FastList",WS_TABSTOP | 0x11,5,22,216,
                      135,WS_EX_CLIENTEDGE
  END
  
--- 2063,2069 ----
      PUSHBUTTON      "&Remove Host Server",IDC_HOST_REMOVE,141,160,80,14
      LTEXT           "Database host servers recognized by server:",
                      IDC_HOST_TITLE,5,7,216,8
!     CONTROL         "",IDC_HOST_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x11,5,22,216,
                      135,WS_EX_CLIENTEDGE
  END
  
Index: openafs/src/WINNT/afssvrmgr/lang/es_ES/svrmgr.rc
diff -c openafs/src/WINNT/afssvrmgr/lang/es_ES/svrmgr.rc:1.4 openafs/src/WINNT/afssvrmgr/lang/es_ES/svrmgr.rc:1.4.14.1
*** openafs/src/WINNT/afssvrmgr/lang/es_ES/svrmgr.rc:1.4	Thu Apr  1 14:09:46 2004
--- openafs/src/WINNT/afssvrmgr/lang/es_ES/svrmgr.rc	Tue Dec 12 15:41:03 2006
***************
*** 815,821 ****
  FONT 9, "MS Shell Dlg", 0, 0, 0x1
  BEGIN
      LTEXT           "Servicios:",IDC_SVC_DESC,0,5,179,8
!     CONTROL         "",IDC_SVC_LIST,"FastList",WS_TABSTOP | 0x303,0,17,179,
                      61,WS_EX_STATICEDGE
      PUSHBUTTON      "&Crear...",IDC_SVC_CREATE,56,80,39,12
      PUSHBUTTON      "Su&primir",IDC_SVC_DELETE,98,80,39,12
--- 815,821 ----
  FONT 9, "MS Shell Dlg", 0, 0, 0x1
  BEGIN
      LTEXT           "Servicios:",IDC_SVC_DESC,0,5,179,8
!     CONTROL         "",IDC_SVC_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,0,17,179,
                      61,WS_EX_STATICEDGE
      PUSHBUTTON      "&Crear...",IDC_SVC_CREATE,56,80,39,12
      PUSHBUTTON      "Su&primir",IDC_SVC_DELETE,98,80,39,12
***************
*** 827,833 ****
  FONT 9, "MS Shell Dlg", 0, 0, 0x1
  BEGIN
      LTEXT           "Particiones:",IDC_AGG_DESC,0,5,165,8
!     CONTROL         "",IDC_AGG_LIST,"FastList",WS_TABSTOP | 0x303,0,17,165,
                      53,WS_EX_STATICEDGE
      PUSHBUTTON      "&Crear volumen...",IDC_AGG_CREATESET,102,72,63,12
  END
--- 827,833 ----
  FONT 9, "MS Shell Dlg", 0, 0, 0x1
  BEGIN
      LTEXT           "Particiones:",IDC_AGG_DESC,0,5,165,8
!     CONTROL         "",IDC_AGG_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,0,17,165,
                      53,WS_EX_STATICEDGE
      PUSHBUTTON      "&Crear volumen...",IDC_AGG_CREATESET,102,72,63,12
  END
***************
*** 837,843 ****
  FONT 9, "MS Shell Dlg", 0, 0, 0x1
  BEGIN
      LTEXT           "Volúmenes:",IDC_SET_DESC,0,5,194,8
!     CONTROL         "",IDC_SET_LIST,"FastList",WS_TABSTOP | 0x303,0,17,194,
                      61,WS_EX_STATICEDGE
      PUSHBUTTON      "&Crear...",IDC_SET_CREATE,4,80,34,12
      PUSHBUTTON      "Su&primir",IDC_SET_DELETE,40,80,36,12
--- 837,843 ----
  FONT 9, "MS Shell Dlg", 0, 0, 0x1
  BEGIN
      LTEXT           "Volúmenes:",IDC_SET_DESC,0,5,194,8
!     CONTROL         "",IDC_SET_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,0,17,194,
                      61,WS_EX_STATICEDGE
      PUSHBUTTON      "&Crear...",IDC_SET_CREATE,4,80,34,12
      PUSHBUTTON      "Su&primir",IDC_SET_DELETE,40,80,36,12
***************
*** 849,855 ****
  STYLE WS_CHILD
  FONT 9, "MS Shell Dlg", 0, 0, 0x1
  BEGIN
!     CONTROL         "",IDC_LIST_LIST,"FastList",WS_TABSTOP | 0x11,5,22,216,
                      135,WS_EX_CLIENTEDGE
      PUSHBUTTON      "&Añadir administrador",IDC_LIST_ADD,66,160,71,14
      PUSHBUTTON      "&Eliminar administrador",IDC_LIST_REMOVE,141,160,80,14
--- 849,855 ----
  STYLE WS_CHILD
  FONT 9, "MS Shell Dlg", 0, 0, 0x1
  BEGIN
!     CONTROL         "",IDC_LIST_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x11,5,22,216,
                      135,WS_EX_CLIENTEDGE
      PUSHBUTTON      "&Añadir administrador",IDC_LIST_ADD,66,160,71,14
      PUSHBUTTON      "&Eliminar administrador",IDC_LIST_REMOVE,141,160,80,14
***************
*** 1038,1044 ****
      LTEXT           "Señales de AFS:",IDC_STATIC,2,19,55,8
      LTEXT           "%2:%1 (caducarán las señales %3)",IDC_AFS_ID,74,19,208,
                      9
!     CONTROL         "",IDC_SERVERS,"FastList",WS_TABSTOP | 0x301,2,31,313,
                      193,WS_EX_CLIENTEDGE
      CONTROL         "",IDC_CELL_BORDER,"Static",SS_ETCHEDHORZ,1,2,315,1
      ICON            IDI_MAIN,IDC_ANIMATE,292,7,20,20,SS_REALSIZEIMAGE | 
--- 1038,1044 ----
      LTEXT           "Señales de AFS:",IDC_STATIC,2,19,55,8
      LTEXT           "%2:%1 (caducarán las señales %3)",IDC_AFS_ID,74,19,208,
                      9
!     CONTROL         "",IDC_SERVERS,"OpenAFS_FastList",WS_TABSTOP | 0x301,2,31,313,
                      193,WS_EX_CLIENTEDGE
      CONTROL         "",IDC_CELL_BORDER,"Static",SS_ETCHEDHORZ,1,2,315,1
      ICON            IDI_MAIN,IDC_ANIMATE,292,7,20,20,SS_REALSIZEIMAGE | 
***************
*** 1097,1103 ****
  STYLE WS_CHILD
  FONT 9, "MS Shell Dlg", 0, 0, 0x1
  BEGIN
!     CONTROL         "",IDC_SET_REP_LIST,"FastList",WS_TABSTOP | 0x303,11,80,
                      199,58,WS_EX_CLIENTEDGE
      PUSHBUTTON      "&Liberar ahora",IDC_SET_RELEASE,11,143,52,14
      PUSHBUTTON      "&Crear...",IDC_SET_REPSITE_ADD,129,143,38,14
--- 1097,1103 ----
  STYLE WS_CHILD
  FONT 9, "MS Shell Dlg", 0, 0, 0x1
  BEGIN
!     CONTROL         "",IDC_SET_REP_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,11,80,
                      199,58,WS_EX_CLIENTEDGE
      PUSHBUTTON      "&Liberar ahora",IDC_SET_RELEASE,11,143,52,14
      PUSHBUTTON      "&Crear...",IDC_SET_REPSITE_ADD,129,143,38,14
***************
*** 1233,1239 ****
      COMBOBOX        IDC_SET_SERVER,46,82,116,107,CBS_DROPDOWNLIST | CBS_SORT | 
                      WS_VSCROLL | WS_TABSTOP
      LTEXT           "&Partición:",IDC_STATIC,4,102,39,8
!     CONTROL         "",IDC_AGG_LIST,"FastList",WS_TABSTOP | 0x303,46,102,271,
                      75,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "Aceptar",IDOK,156,191,50,14
      PUSHBUTTON      "Cancelar",IDCANCEL,211,191,50,14
--- 1233,1239 ----
      COMBOBOX        IDC_SET_SERVER,46,82,116,107,CBS_DROPDOWNLIST | CBS_SORT | 
                      WS_VSCROLL | WS_TABSTOP
      LTEXT           "&Partición:",IDC_STATIC,4,102,39,8
!     CONTROL         "",IDC_AGG_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,46,102,271,
                      75,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "Aceptar",IDOK,156,191,50,14
      PUSHBUTTON      "Cancelar",IDCANCEL,211,191,50,14
***************
*** 1344,1350 ****
  BEGIN
      COMBOBOX        IDC_MOVESET_SERVER,4,54,116,104,CBS_DROPDOWNLIST | 
                      CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     CONTROL         "",IDC_AGG_LIST,"FastList",WS_TABSTOP | 0x303,4,70,269,
                      75,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "Aceptar",IDOK,115,156,50,14
      PUSHBUTTON      "Cancelar",IDCANCEL,169,156,50,14
--- 1344,1350 ----
  BEGIN
      COMBOBOX        IDC_MOVESET_SERVER,4,54,116,104,CBS_DROPDOWNLIST | 
                      CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     CONTROL         "",IDC_AGG_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,4,70,269,
                      75,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "Aceptar",IDOK,115,156,50,14
      PUSHBUTTON      "Cancelar",IDCANCEL,169,156,50,14
***************
*** 1441,1447 ****
  BEGIN
      LTEXT           "La operaciones siguientes están actualmente en curso:",
                      IDC_ACTION_DESC,2,2,232,8
!     CONTROL         "",IDC_ACTION_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x3,2,14,232,43
  END
  
--- 1441,1447 ----
  BEGIN
      LTEXT           "La operaciones siguientes están actualmente en curso:",
                      IDC_ACTION_DESC,2,2,232,8
!     CONTROL         "",IDC_ACTION_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x3,2,14,232,43
  END
  
***************
*** 1469,1475 ****
  BEGIN
      COMBOBOX        IDC_SET_SERVER,4,46,116,104,CBS_DROPDOWNLIST | CBS_SORT | 
                      WS_VSCROLL | WS_TABSTOP
!     CONTROL         "",IDC_AGG_LIST,"FastList",WS_TABSTOP | 0x303,4,62,269,
                      75,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "Aceptar",IDOK,115,153,50,14
      PUSHBUTTON      "Cancelar",IDCANCEL,169,153,50,14
--- 1469,1475 ----
  BEGIN
      COMBOBOX        IDC_SET_SERVER,4,46,116,104,CBS_DROPDOWNLIST | CBS_SORT | 
                      WS_VSCROLL | WS_TABSTOP
!     CONTROL         "",IDC_AGG_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,4,62,269,
                      75,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "Aceptar",IDOK,115,153,50,14
      PUSHBUTTON      "Cancelar",IDCANCEL,169,153,50,14
***************
*** 1679,1685 ****
      COMBOBOX        IDC_RESTORE_SERVER,53,143,116,104,CBS_DROPDOWNLIST | 
                      CBS_SORT | WS_VSCROLL | WS_TABSTOP
      LTEXT           "&Partición:",IDC_STATIC,11,162,36,8
!     CONTROL         "",IDC_AGG_LIST,"FastList",WS_TABSTOP | 0x303,52,161,231,
                      55,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "Aceptar",IDOK,128,229,50,14
      PUSHBUTTON      "Cancelar",IDCANCEL,183,229,50,14
--- 1679,1685 ----
      COMBOBOX        IDC_RESTORE_SERVER,53,143,116,104,CBS_DROPDOWNLIST | 
                      CBS_SORT | WS_VSCROLL | WS_TABSTOP
      LTEXT           "&Partición:",IDC_STATIC,11,162,36,8
!     CONTROL         "",IDC_AGG_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,52,161,231,
                      55,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "Aceptar",IDOK,128,229,50,14
      PUSHBUTTON      "Cancelar",IDCANCEL,183,229,50,14
***************
*** 1792,1798 ****
                      ES_READONLY | NOT WS_TABSTOP
      PUSHBUTTON      "&Abrir...",IDC_SUBSET_LOAD,214,75,39,14
      PUSHBUTTON      "&Guardar...",IDC_SUBSET_SAVE,257,75,39,14
!     CONTROL         "",IDC_SUBSET_LIST,"CheckList",WS_BORDER | WS_VSCROLL | 
                      WS_TABSTOP | 0x153,12,111,193,58,WS_EX_CLIENTEDGE
      PUSHBUTTON      "Supervisar &todos",IDC_SUBSET_ALL,216,122,77,14
      PUSHBUTTON      "No supervisar &ninguno",IDC_SUBSET_NONE,216,140,77,14
--- 1792,1798 ----
                      ES_READONLY | NOT WS_TABSTOP
      PUSHBUTTON      "&Abrir...",IDC_SUBSET_LOAD,214,75,39,14
      PUSHBUTTON      "&Guardar...",IDC_SUBSET_SAVE,257,75,39,14
!     CONTROL         "",IDC_SUBSET_LIST,"OpenAFS_CheckList",WS_BORDER | WS_VSCROLL | 
                      WS_TABSTOP | 0x153,12,111,193,58,WS_EX_CLIENTEDGE
      PUSHBUTTON      "Supervisar &todos",IDC_SUBSET_ALL,216,122,77,14
      PUSHBUTTON      "No supervisar &ninguno",IDC_SUBSET_NONE,216,140,77,14
***************
*** 1920,1926 ****
  STYLE WS_CHILD
  FONT 9, "MS Shell Dlg", 0, 0, 0x1
  BEGIN
!     CONTROL         "",IDC_KEY_LIST,"FastList",WS_TABSTOP | 0x30b,5,22,216,
                      135,WS_EX_CLIENTEDGE
      PUSHBUTTON      "&Añadir clave de servidor",IDC_KEY_ADD,46,160,82,14
      PUSHBUTTON      "&Eliminar clave de servidor",IDC_KEY_REMOVE,133,160,87,
--- 1920,1926 ----
  STYLE WS_CHILD
  FONT 9, "MS Shell Dlg", 0, 0, 0x1
  BEGIN
!     CONTROL         "",IDC_KEY_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x30b,5,22,216,
                      135,WS_EX_CLIENTEDGE
      PUSHBUTTON      "&Añadir clave de servidor",IDC_KEY_ADD,46,160,82,14
      PUSHBUTTON      "&Eliminar clave de servidor",IDC_KEY_REMOVE,133,160,87,
***************
*** 2098,2104 ****
                      IDC_HOST_REMOVE,123,160,118,14
      LTEXT           "Servidores de sistemas principales de base de datos reconocidos por el servidor:",
                      IDC_HOST_TITLE,5,5,223,17
!     CONTROL         "",IDC_HOST_LIST,"FastList",WS_TABSTOP | 0x11,5,22,236,
                      135,WS_EX_CLIENTEDGE
  END
  
--- 2098,2104 ----
                      IDC_HOST_REMOVE,123,160,118,14
      LTEXT           "Servidores de sistemas principales de base de datos reconocidos por el servidor:",
                      IDC_HOST_TITLE,5,5,223,17
!     CONTROL         "",IDC_HOST_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x11,5,22,236,
                      135,WS_EX_CLIENTEDGE
  END
  
Index: openafs/src/WINNT/afssvrmgr/lang/ja_JP/svrmgr.rc
diff -c openafs/src/WINNT/afssvrmgr/lang/ja_JP/svrmgr.rc:1.4 openafs/src/WINNT/afssvrmgr/lang/ja_JP/svrmgr.rc:1.4.14.1
*** openafs/src/WINNT/afssvrmgr/lang/ja_JP/svrmgr.rc:1.4	Thu Apr  1 14:09:47 2004
--- openafs/src/WINNT/afssvrmgr/lang/ja_JP/svrmgr.rc	Tue Dec 12 15:41:05 2006
***************
*** 807,813 ****
  FONT 9, "‚l‚r ‚oƒSƒVƒbƒN", 0, 0, 0x1
  BEGIN
      LTEXT           "ƒT[ƒrƒX:",IDC_SVC_DESC,0,5,179,8
!     CONTROL         "",IDC_SVC_LIST,"FastList",WS_TABSTOP | 0x303,0,17,179,
                      55,WS_EX_STATICEDGE
      PUSHBUTTON      "ì¬(&C)...",IDC_SVC_CREATE,44,78,42,12
      PUSHBUTTON      "íœ(&L)",IDC_SVC_DELETE,88,78,39,12
--- 807,813 ----
  FONT 9, "‚l‚r ‚oƒSƒVƒbƒN", 0, 0, 0x1
  BEGIN
      LTEXT           "ƒT[ƒrƒX:",IDC_SVC_DESC,0,5,179,8
!     CONTROL         "",IDC_SVC_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,0,17,179,
                      55,WS_EX_STATICEDGE
      PUSHBUTTON      "ì¬(&C)...",IDC_SVC_CREATE,44,78,42,12
      PUSHBUTTON      "íœ(&L)",IDC_SVC_DELETE,88,78,39,12
***************
*** 819,825 ****
  FONT 9, "‚l‚r ‚oƒSƒVƒbƒN", 0, 0, 0x1
  BEGIN
      LTEXT           "ƒp[ƒeƒBƒVƒ‡ƒ“:",IDC_AGG_DESC,0,5,159,8
!     CONTROL         "",IDC_AGG_LIST,"FastList",WS_TABSTOP | 0x303,0,16,165,
                      47,WS_EX_STATICEDGE
      PUSHBUTTON      "ƒ{ƒŠƒ…[ƒ€‚Ìì¬(&C)...",IDC_AGG_CREATESET,71,70,90,12
  END
--- 819,825 ----
  FONT 9, "‚l‚r ‚oƒSƒVƒbƒN", 0, 0, 0x1
  BEGIN
      LTEXT           "ƒp[ƒeƒBƒVƒ‡ƒ“:",IDC_AGG_DESC,0,5,159,8
!     CONTROL         "",IDC_AGG_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,0,16,165,
                      47,WS_EX_STATICEDGE
      PUSHBUTTON      "ƒ{ƒŠƒ…[ƒ€‚Ìì¬(&C)...",IDC_AGG_CREATESET,71,70,90,12
  END
***************
*** 829,835 ****
  FONT 9, "‚l‚r ‚oƒSƒVƒbƒN", 0, 0, 0x1
  BEGIN
      LTEXT           "ƒ{ƒŠƒ…[ƒ€:",IDC_SET_DESC,0,5,224,8
!     CONTROL         "",IDC_SET_LIST,"FastList",WS_TABSTOP | 0x303,0,17,224,
                      51,WS_EX_STATICEDGE
      PUSHBUTTON      "ì¬(&C)...",IDC_SET_CREATE,1,77,42,12
      PUSHBUTTON      "íœ(&L)",IDC_SET_DELETE,45,77,39,12
--- 829,835 ----
  FONT 9, "‚l‚r ‚oƒSƒVƒbƒN", 0, 0, 0x1
  BEGIN
      LTEXT           "ƒ{ƒŠƒ…[ƒ€:",IDC_SET_DESC,0,5,224,8
!     CONTROL         "",IDC_SET_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,0,17,224,
                      51,WS_EX_STATICEDGE
      PUSHBUTTON      "ì¬(&C)...",IDC_SET_CREATE,1,77,42,12
      PUSHBUTTON      "íœ(&L)",IDC_SET_DELETE,45,77,39,12
***************
*** 841,847 ****
  STYLE WS_CHILD
  FONT 9, "‚l‚r ‚oƒSƒVƒbƒN"
  BEGIN
!     CONTROL         "",IDC_LIST_LIST,"FastList",WS_TABSTOP | 0x11,5,23,216,
                      129,WS_EX_CLIENTEDGE
      PUSHBUTTON      "ŠÇ—ŽÒ‚Ì’Ç‰Á(&A)",IDC_LIST_ADD,69,157,69,14
      PUSHBUTTON      "ŠÇ—ŽÒ‚Ìíœ(&R)",IDC_LIST_REMOVE,138,157,80,14
--- 841,847 ----
  STYLE WS_CHILD
  FONT 9, "‚l‚r ‚oƒSƒVƒbƒN"
  BEGIN
!     CONTROL         "",IDC_LIST_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x11,5,23,216,
                      129,WS_EX_CLIENTEDGE
      PUSHBUTTON      "ŠÇ—ŽÒ‚Ì’Ç‰Á(&A)",IDC_LIST_ADD,69,157,69,14
      PUSHBUTTON      "ŠÇ—ŽÒ‚Ìíœ(&R)",IDC_LIST_REMOVE,138,157,80,14
***************
*** 1025,1031 ****
      LTEXT           "AFS ƒg[ƒNƒ“:",IDC_STATIC,2,21,50,8
      LTEXT           "%2:%1 (ƒg[ƒNƒ“‚ÌŠúŒÀ %3 ‚ÉØ‚ê‚Ü‚·)",IDC_AFS_ID,62,21,
                      218,16
!     CONTROL         "",IDC_SERVERS,"FastList",WS_TABSTOP | 0x301,2,43,313,
                      181,WS_EX_CLIENTEDGE
      CONTROL         "",IDC_CELL_BORDER,"Static",SS_ETCHEDHORZ,1,2,315,1
      ICON            IDI_MAIN,IDC_ANIMATE,292,7,20,20,SS_REALSIZEIMAGE | 
--- 1025,1031 ----
      LTEXT           "AFS ƒg[ƒNƒ“:",IDC_STATIC,2,21,50,8
      LTEXT           "%2:%1 (ƒg[ƒNƒ“‚ÌŠúŒÀ %3 ‚ÉØ‚ê‚Ü‚·)",IDC_AFS_ID,62,21,
                      218,16
!     CONTROL         "",IDC_SERVERS,"OpenAFS_FastList",WS_TABSTOP | 0x301,2,43,313,
                      181,WS_EX_CLIENTEDGE
      CONTROL         "",IDC_CELL_BORDER,"Static",SS_ETCHEDHORZ,1,2,315,1
      ICON            IDI_MAIN,IDC_ANIMATE,292,7,20,20,SS_REALSIZEIMAGE | 
***************
*** 1081,1087 ****
  STYLE WS_CHILD
  FONT 9, "‚l‚r ‚oƒSƒVƒbƒN"
  BEGIN
!     CONTROL         "",IDC_SET_REP_LIST,"FastList",WS_TABSTOP | 0x303,11,80,
                      199,58,WS_EX_CLIENTEDGE
      PUSHBUTTON      "‘¦Žž‰ð•ú(&R)",IDC_SET_RELEASE,11,145,53,14
      PUSHBUTTON      "ì¬(&C)...",IDC_SET_REPSITE_ADD,126,145,42,14
--- 1081,1087 ----
  STYLE WS_CHILD
  FONT 9, "‚l‚r ‚oƒSƒVƒbƒN"
  BEGIN
!     CONTROL         "",IDC_SET_REP_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,11,80,
                      199,58,WS_EX_CLIENTEDGE
      PUSHBUTTON      "‘¦Žž‰ð•ú(&R)",IDC_SET_RELEASE,11,145,53,14
      PUSHBUTTON      "ì¬(&C)...",IDC_SET_REPSITE_ADD,126,145,42,14
***************
*** 1215,1221 ****
      COMBOBOX        IDC_SET_SERVER,76,82,116,107,CBS_DROPDOWNLIST | CBS_SORT | 
                      WS_VSCROLL | WS_TABSTOP
      LTEXT           "ƒp[ƒeƒBƒVƒ‡ƒ“(&P):",IDC_STATIC,6,100,73,8
!     CONTROL         "",IDC_AGG_LIST,"FastList",WS_TABSTOP | 0x303,46,112,271,
                      70,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "—¹‰ð",IDOK,152,188,50,14
      PUSHBUTTON      "ŽæÁ‚µ",IDCANCEL,207,188,50,14
--- 1215,1221 ----
      COMBOBOX        IDC_SET_SERVER,76,82,116,107,CBS_DROPDOWNLIST | CBS_SORT | 
                      WS_VSCROLL | WS_TABSTOP
      LTEXT           "ƒp[ƒeƒBƒVƒ‡ƒ“(&P):",IDC_STATIC,6,100,73,8
!     CONTROL         "",IDC_AGG_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,46,112,271,
                      70,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "—¹‰ð",IDOK,152,188,50,14
      PUSHBUTTON      "ŽæÁ‚µ",IDCANCEL,207,188,50,14
***************
*** 1325,1331 ****
  BEGIN
      COMBOBOX        IDC_MOVESET_SERVER,4,54,116,104,CBS_DROPDOWNLIST | 
                      CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     CONTROL         "",IDC_AGG_LIST,"FastList",WS_TABSTOP | 0x303,4,72,269,
                      75,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "—¹‰ð",IDOK,115,153,50,14
      PUSHBUTTON      "ŽæÁ‚µ",IDCANCEL,167,153,50,14
--- 1325,1331 ----
  BEGIN
      COMBOBOX        IDC_MOVESET_SERVER,4,54,116,104,CBS_DROPDOWNLIST | 
                      CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     CONTROL         "",IDC_AGG_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,4,72,269,
                      75,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "—¹‰ð",IDOK,115,153,50,14
      PUSHBUTTON      "ŽæÁ‚µ",IDCANCEL,167,153,50,14
***************
*** 1420,1426 ****
  FONT 9, "‚l‚r ‚oƒSƒVƒbƒN", 0, 0, 0x1
  BEGIN
      LTEXT           "ŽŸ‚Ì‘€ì‚ªŒ»Ýis’†‚Å‚·:",IDC_ACTION_DESC,2,2,232,8
!     CONTROL         "",IDC_ACTION_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x3,2,14,232,43
  END
  
--- 1420,1426 ----
  FONT 9, "‚l‚r ‚oƒSƒVƒbƒN", 0, 0, 0x1
  BEGIN
      LTEXT           "ŽŸ‚Ì‘€ì‚ªŒ»Ýis’†‚Å‚·:",IDC_ACTION_DESC,2,2,232,8
!     CONTROL         "",IDC_ACTION_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x3,2,14,232,43
  END
  
***************
*** 1446,1452 ****
  BEGIN
      COMBOBOX        IDC_SET_SERVER,4,46,116,104,CBS_DROPDOWNLIST | CBS_SORT | 
                      WS_VSCROLL | WS_TABSTOP
!     CONTROL         "",IDC_AGG_LIST,"FastList",WS_TABSTOP | 0x303,4,67,269,
                      75,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "—¹‰ð",IDOK,112,150,50,14
      PUSHBUTTON      "ŽæÁ‚µ",IDCANCEL,166,150,50,14
--- 1446,1452 ----
  BEGIN
      COMBOBOX        IDC_SET_SERVER,4,46,116,104,CBS_DROPDOWNLIST | CBS_SORT | 
                      WS_VSCROLL | WS_TABSTOP
!     CONTROL         "",IDC_AGG_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,4,67,269,
                      75,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "—¹‰ð",IDOK,112,150,50,14
      PUSHBUTTON      "ŽæÁ‚µ",IDCANCEL,166,150,50,14
***************
*** 1651,1657 ****
      COMBOBOX        IDC_RESTORE_SERVER,75,145,116,104,CBS_DROPDOWNLIST | 
                      CBS_SORT | WS_VSCROLL | WS_TABSTOP
      LTEXT           "ƒp[ƒeƒBƒVƒ‡ƒ“(&P):",IDC_STATIC,11,161,55,8
!     CONTROL         "",IDC_AGG_LIST,"FastList",WS_TABSTOP | 0x303,50,176,231,
                      42,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "—¹‰ð",IDOK,125,229,50,14
      PUSHBUTTON      "ŽæÁ‚µ",IDCANCEL,180,229,50,14
--- 1651,1657 ----
      COMBOBOX        IDC_RESTORE_SERVER,75,145,116,104,CBS_DROPDOWNLIST | 
                      CBS_SORT | WS_VSCROLL | WS_TABSTOP
      LTEXT           "ƒp[ƒeƒBƒVƒ‡ƒ“(&P):",IDC_STATIC,11,161,55,8
!     CONTROL         "",IDC_AGG_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,50,176,231,
                      42,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "—¹‰ð",IDOK,125,229,50,14
      PUSHBUTTON      "ŽæÁ‚µ",IDCANCEL,180,229,50,14
***************
*** 1762,1768 ****
                      ES_READONLY | NOT WS_TABSTOP
      PUSHBUTTON      "ƒI[ƒvƒ“(&O)...",IDC_SUBSET_LOAD,171,84,58,14
      PUSHBUTTON      "•ÛŠÇ(&S)...",IDC_SUBSET_SAVE,230,84,42,14
!     CONTROL         "",IDC_SUBSET_LIST,"CheckList",WS_BORDER | WS_VSCROLL | 
                      WS_TABSTOP | 0x153,7,111,182,58,WS_EX_CLIENTEDGE
      PUSHBUTTON      "‚·‚×‚Äƒ‚ƒjƒ^[(&A)",IDC_SUBSET_ALL,196,122,77,14
      PUSHBUTTON      "ƒ‚ƒjƒ^[‚µ‚È‚¢(&N)",IDC_SUBSET_NONE,196,140,77,14
--- 1762,1768 ----
                      ES_READONLY | NOT WS_TABSTOP
      PUSHBUTTON      "ƒI[ƒvƒ“(&O)...",IDC_SUBSET_LOAD,171,84,58,14
      PUSHBUTTON      "•ÛŠÇ(&S)...",IDC_SUBSET_SAVE,230,84,42,14
!     CONTROL         "",IDC_SUBSET_LIST,"OpenAFS_CheckList",WS_BORDER | WS_VSCROLL | 
                      WS_TABSTOP | 0x153,7,111,182,58,WS_EX_CLIENTEDGE
      PUSHBUTTON      "‚·‚×‚Äƒ‚ƒjƒ^[(&A)",IDC_SUBSET_ALL,196,122,77,14
      PUSHBUTTON      "ƒ‚ƒjƒ^[‚µ‚È‚¢(&N)",IDC_SUBSET_NONE,196,140,77,14
***************
*** 1890,1896 ****
  STYLE WS_CHILD
  FONT 9, "‚l‚r ‚oƒSƒVƒbƒN"
  BEGIN
!     CONTROL         "",IDC_KEY_LIST,"FastList",WS_TABSTOP | 0x30b,5,23,216,
                      129,WS_EX_CLIENTEDGE
      PUSHBUTTON      "ƒT[ƒo[Œ®‚Ì’Ç‰Á(&A)",IDC_KEY_ADD,46,157,85,14
      PUSHBUTTON      "ƒT[ƒo[Œ®‚Ìíœ(&R)",IDC_KEY_REMOVE,133,157,85,14
--- 1890,1896 ----
  STYLE WS_CHILD
  FONT 9, "‚l‚r ‚oƒSƒVƒbƒN"
  BEGIN
!     CONTROL         "",IDC_KEY_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x30b,5,23,216,
                      129,WS_EX_CLIENTEDGE
      PUSHBUTTON      "ƒT[ƒo[Œ®‚Ì’Ç‰Á(&A)",IDC_KEY_ADD,46,157,85,14
      PUSHBUTTON      "ƒT[ƒo[Œ®‚Ìíœ(&R)",IDC_KEY_REMOVE,133,157,85,14
***************
*** 2062,2068 ****
                      14
      LTEXT           "ƒT[ƒo[‚ª”FŽ¯‚·‚éƒf[ƒ^ƒx[ƒXEƒzƒXƒgEƒT[ƒo[:",
                      IDC_HOST_TITLE,5,7,216,13
!     CONTROL         "",IDC_HOST_LIST,"FastList",WS_TABSTOP | 0x11,5,26,216,
                      126,WS_EX_CLIENTEDGE
  END
  
--- 2062,2068 ----
                      14
      LTEXT           "ƒT[ƒo[‚ª”FŽ¯‚·‚éƒf[ƒ^ƒx[ƒXEƒzƒXƒgEƒT[ƒo[:",
                      IDC_HOST_TITLE,5,7,216,13
!     CONTROL         "",IDC_HOST_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x11,5,26,216,
                      126,WS_EX_CLIENTEDGE
  END
  
Index: openafs/src/WINNT/afssvrmgr/lang/ko_KR/svrmgr.rc
diff -c openafs/src/WINNT/afssvrmgr/lang/ko_KR/svrmgr.rc:1.4 openafs/src/WINNT/afssvrmgr/lang/ko_KR/svrmgr.rc:1.4.14.1
*** openafs/src/WINNT/afssvrmgr/lang/ko_KR/svrmgr.rc:1.4	Thu Apr  1 14:09:49 2004
--- openafs/src/WINNT/afssvrmgr/lang/ko_KR/svrmgr.rc	Tue Dec 12 15:41:06 2006
***************
*** 814,820 ****
  FONT 9, "±¼¸²", 0, 0, 0x1
  BEGIN
      LTEXT           "¼­ºñ½º:",IDC_SVC_DESC,0,5,179,8
!     CONTROL         "",IDC_SVC_LIST,"FastList",WS_TABSTOP | 0x303,0,17,179,
                      61,WS_EX_STATICEDGE
      PUSHBUTTON      "ÀÛ¼º(&C)...",IDC_SVC_CREATE,56,80,39,12
      PUSHBUTTON      "»èÁ¦(&L)",IDC_SVC_DELETE,98,80,39,12
--- 814,820 ----
  FONT 9, "±¼¸²", 0, 0, 0x1
  BEGIN
      LTEXT           "¼­ºñ½º:",IDC_SVC_DESC,0,5,179,8
!     CONTROL         "",IDC_SVC_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,0,17,179,
                      61,WS_EX_STATICEDGE
      PUSHBUTTON      "ÀÛ¼º(&C)...",IDC_SVC_CREATE,56,80,39,12
      PUSHBUTTON      "»èÁ¦(&L)",IDC_SVC_DELETE,98,80,39,12
***************
*** 826,832 ****
  FONT 9, "±¼¸²", 0, 0, 0x1
  BEGIN
      LTEXT           "ÆÄÆ¼¼Ç:",IDC_AGG_DESC,0,5,165,8
!     CONTROL         "",IDC_AGG_LIST,"FastList",WS_TABSTOP | 0x303,0,17,165,
                      53,WS_EX_STATICEDGE
      PUSHBUTTON      "º¼·ý ÀÛ¼º(&C)...",IDC_AGG_CREATESET,102,72,63,12
  END
--- 826,832 ----
  FONT 9, "±¼¸²", 0, 0, 0x1
  BEGIN
      LTEXT           "ÆÄÆ¼¼Ç:",IDC_AGG_DESC,0,5,165,8
!     CONTROL         "",IDC_AGG_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,0,17,165,
                      53,WS_EX_STATICEDGE
      PUSHBUTTON      "º¼·ý ÀÛ¼º(&C)...",IDC_AGG_CREATESET,102,72,63,12
  END
***************
*** 836,842 ****
  FONT 9, "±¼¸²", 0, 0, 0x1
  BEGIN
      LTEXT           "º¼·ý:",IDC_SET_DESC,0,5,194,8
!     CONTROL         "",IDC_SET_LIST,"FastList",WS_TABSTOP | 0x303,0,17,194,
                      61,WS_EX_STATICEDGE
      PUSHBUTTON      "ÀÛ¼º(&C)...",IDC_SET_CREATE,3,80,39,12
      PUSHBUTTON      "»èÁ¦(&L)",IDC_SET_DELETE,45,80,39,12
--- 836,842 ----
  FONT 9, "±¼¸²", 0, 0, 0x1
  BEGIN
      LTEXT           "º¼·ý:",IDC_SET_DESC,0,5,194,8
!     CONTROL         "",IDC_SET_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,0,17,194,
                      61,WS_EX_STATICEDGE
      PUSHBUTTON      "ÀÛ¼º(&C)...",IDC_SET_CREATE,3,80,39,12
      PUSHBUTTON      "»èÁ¦(&L)",IDC_SET_DELETE,45,80,39,12
***************
*** 848,854 ****
  STYLE WS_CHILD
  FONT 9, "±¼¸²", 0, 0, 0x1
  BEGIN
!     CONTROL         "",IDC_LIST_LIST,"FastList",WS_TABSTOP | 0x11,5,22,216,
                      135,WS_EX_CLIENTEDGE
      PUSHBUTTON      "°ü¸®ÀÚ Ãß°¡(&A)",IDC_LIST_ADD,72,160,65,14
      PUSHBUTTON      "°ü¸®ÀÚ Á¦°Å(&R)",IDC_LIST_REMOVE,141,160,80,14
--- 848,854 ----
  STYLE WS_CHILD
  FONT 9, "±¼¸²", 0, 0, 0x1
  BEGIN
!     CONTROL         "",IDC_LIST_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x11,5,22,216,
                      135,WS_EX_CLIENTEDGE
      PUSHBUTTON      "°ü¸®ÀÚ Ãß°¡(&A)",IDC_LIST_ADD,72,160,65,14
      PUSHBUTTON      "°ü¸®ÀÚ Á¦°Å(&R)",IDC_LIST_REMOVE,141,160,80,14
***************
*** 1026,1032 ****
      LTEXT           "(¼¿ ÀÌ¸§Àº ¿©±â¿¡ À§Ä¡ÇÕ´Ï´Ù)",IDC_CELL,62,8,208,9
      LTEXT           "AFS ÅäÅ«:",IDC_STATIC,2,19,55,8
      LTEXT           "%2:%1(ÅäÅ«Àº %3¿¡ ¸¸±âµË´Ï´Ù)",IDC_AFS_ID,62,19,217,9
!     CONTROL         "",IDC_SERVERS,"FastList",WS_TABSTOP | 0x301,2,31,313,
                      193,WS_EX_CLIENTEDGE
      CONTROL         "",IDC_CELL_BORDER,"Static",SS_ETCHEDHORZ,1,2,315,1
      ICON            IDI_MAIN,IDC_ANIMATE,292,7,20,20,SS_REALSIZEIMAGE | 
--- 1026,1032 ----
      LTEXT           "(¼¿ ÀÌ¸§Àº ¿©±â¿¡ À§Ä¡ÇÕ´Ï´Ù)",IDC_CELL,62,8,208,9
      LTEXT           "AFS ÅäÅ«:",IDC_STATIC,2,19,55,8
      LTEXT           "%2:%1(ÅäÅ«Àº %3¿¡ ¸¸±âµË´Ï´Ù)",IDC_AFS_ID,62,19,217,9
!     CONTROL         "",IDC_SERVERS,"OpenAFS_FastList",WS_TABSTOP | 0x301,2,31,313,
                      193,WS_EX_CLIENTEDGE
      CONTROL         "",IDC_CELL_BORDER,"Static",SS_ETCHEDHORZ,1,2,315,1
      ICON            IDI_MAIN,IDC_ANIMATE,292,7,20,20,SS_REALSIZEIMAGE | 
***************
*** 1083,1089 ****
  STYLE WS_CHILD
  FONT 9, "±¼¸²", 0, 0, 0x1
  BEGIN
!     CONTROL         "",IDC_SET_REP_LIST,"FastList",WS_TABSTOP | 0x303,11,80,
                      199,58,WS_EX_CLIENTEDGE
      PUSHBUTTON      "Áö±Ý ÇØÁ¦(&R)",IDC_SET_RELEASE,11,143,52,14
      PUSHBUTTON      "ÀÛ¼º(&C)...",IDC_SET_REPSITE_ADD,129,143,38,14
--- 1083,1089 ----
  STYLE WS_CHILD
  FONT 9, "±¼¸²", 0, 0, 0x1
  BEGIN
!     CONTROL         "",IDC_SET_REP_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,11,80,
                      199,58,WS_EX_CLIENTEDGE
      PUSHBUTTON      "Áö±Ý ÇØÁ¦(&R)",IDC_SET_RELEASE,11,143,52,14
      PUSHBUTTON      "ÀÛ¼º(&C)...",IDC_SET_REPSITE_ADD,129,143,38,14
***************
*** 1215,1221 ****
      COMBOBOX        IDC_SET_SERVER,46,82,116,107,CBS_DROPDOWNLIST | CBS_SORT | 
                      WS_VSCROLL | WS_TABSTOP
      LTEXT           "ÆÄÆ¼¼Ç(&P):",IDC_STATIC,4,102,39,8
!     CONTROL         "",IDC_AGG_LIST,"FastList",WS_TABSTOP | 0x303,46,102,271,
                      75,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "È®ÀÎ",IDOK,156,191,50,14
      PUSHBUTTON      "Ãë¼Ò",IDCANCEL,211,191,50,14
--- 1215,1221 ----
      COMBOBOX        IDC_SET_SERVER,46,82,116,107,CBS_DROPDOWNLIST | CBS_SORT | 
                      WS_VSCROLL | WS_TABSTOP
      LTEXT           "ÆÄÆ¼¼Ç(&P):",IDC_STATIC,4,102,39,8
!     CONTROL         "",IDC_AGG_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,46,102,271,
                      75,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "È®ÀÎ",IDOK,156,191,50,14
      PUSHBUTTON      "Ãë¼Ò",IDCANCEL,211,191,50,14
***************
*** 1323,1329 ****
  BEGIN
      COMBOBOX        IDC_MOVESET_SERVER,4,54,116,104,CBS_DROPDOWNLIST | 
                      CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     CONTROL         "",IDC_AGG_LIST,"FastList",WS_TABSTOP | 0x303,4,70,269,
                      75,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "È®ÀÎ",IDOK,115,156,50,14
      PUSHBUTTON      "Ãë¼Ò",IDCANCEL,169,156,50,14
--- 1323,1329 ----
  BEGIN
      COMBOBOX        IDC_MOVESET_SERVER,4,54,116,104,CBS_DROPDOWNLIST | 
                      CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     CONTROL         "",IDC_AGG_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,4,70,269,
                      75,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "È®ÀÎ",IDOK,115,156,50,14
      PUSHBUTTON      "Ãë¼Ò",IDCANCEL,169,156,50,14
***************
*** 1417,1423 ****
  BEGIN
      LTEXT           "´ÙÀ½ Á¶ÀÛÀÌ ÇöÀç ÁøÇà ÁßÀÔ´Ï´Ù.",IDC_ACTION_DESC,2,2,
                      232,8
!     CONTROL         "",IDC_ACTION_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x3,2,14,232,43
  END
  
--- 1417,1423 ----
  BEGIN
      LTEXT           "´ÙÀ½ Á¶ÀÛÀÌ ÇöÀç ÁøÇà ÁßÀÔ´Ï´Ù.",IDC_ACTION_DESC,2,2,
                      232,8
!     CONTROL         "",IDC_ACTION_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x3,2,14,232,43
  END
  
***************
*** 1443,1449 ****
  BEGIN
      COMBOBOX        IDC_SET_SERVER,4,46,116,104,CBS_DROPDOWNLIST | CBS_SORT | 
                      WS_VSCROLL | WS_TABSTOP
!     CONTROL         "",IDC_AGG_LIST,"FastList",WS_TABSTOP | 0x303,4,62,269,
                      75,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "È®ÀÎ",IDOK,115,153,50,14
      PUSHBUTTON      "Ãë¼Ò",IDCANCEL,169,153,50,14
--- 1443,1449 ----
  BEGIN
      COMBOBOX        IDC_SET_SERVER,4,46,116,104,CBS_DROPDOWNLIST | CBS_SORT | 
                      WS_VSCROLL | WS_TABSTOP
!     CONTROL         "",IDC_AGG_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,4,62,269,
                      75,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "È®ÀÎ",IDOK,115,153,50,14
      PUSHBUTTON      "Ãë¼Ò",IDCANCEL,169,153,50,14
***************
*** 1644,1650 ****
      COMBOBOX        IDC_RESTORE_SERVER,51,143,116,104,CBS_DROPDOWNLIST | 
                      CBS_SORT | WS_VSCROLL | WS_TABSTOP
      LTEXT           "ÆÄÆ¼¼Ç(&P):",IDC_STATIC,11,162,36,8
!     CONTROL         "",IDC_AGG_LIST,"FastList",WS_TABSTOP | 0x303,50,161,231,
                      55,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "È®ÀÎ",IDOK,128,230,50,14
      PUSHBUTTON      "Ãë¼Ò",IDCANCEL,183,230,50,14
--- 1644,1650 ----
      COMBOBOX        IDC_RESTORE_SERVER,51,143,116,104,CBS_DROPDOWNLIST | 
                      CBS_SORT | WS_VSCROLL | WS_TABSTOP
      LTEXT           "ÆÄÆ¼¼Ç(&P):",IDC_STATIC,11,162,36,8
!     CONTROL         "",IDC_AGG_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,50,161,231,
                      55,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "È®ÀÎ",IDOK,128,230,50,14
      PUSHBUTTON      "Ãë¼Ò",IDCANCEL,183,230,50,14
***************
*** 1755,1761 ****
                      ES_READONLY | NOT WS_TABSTOP
      PUSHBUTTON      "¿­±â(&O)...",IDC_SUBSET_LOAD,185,75,39,14
      PUSHBUTTON      "ÀúÀå(&S)...",IDC_SUBSET_SAVE,229,75,39,14
!     CONTROL         "",IDC_SUBSET_LIST,"CheckList",WS_BORDER | WS_VSCROLL | 
                      WS_TABSTOP | 0x153,12,111,193,58,WS_EX_CLIENTEDGE
      PUSHBUTTON      "ÀüºÎ ¸ð´ÏÅÍÇÔ(&A)",IDC_SUBSET_ALL,211,122,57,14
      PUSHBUTTON      "¸ð´ÏÅÍ ¾ÈÇÔ(&N)",IDC_SUBSET_NONE,211,140,57,14
--- 1755,1761 ----
                      ES_READONLY | NOT WS_TABSTOP
      PUSHBUTTON      "¿­±â(&O)...",IDC_SUBSET_LOAD,185,75,39,14
      PUSHBUTTON      "ÀúÀå(&S)...",IDC_SUBSET_SAVE,229,75,39,14
!     CONTROL         "",IDC_SUBSET_LIST,"OpenAFS_CheckList",WS_BORDER | WS_VSCROLL | 
                      WS_TABSTOP | 0x153,12,111,193,58,WS_EX_CLIENTEDGE
      PUSHBUTTON      "ÀüºÎ ¸ð´ÏÅÍÇÔ(&A)",IDC_SUBSET_ALL,211,122,57,14
      PUSHBUTTON      "¸ð´ÏÅÍ ¾ÈÇÔ(&N)",IDC_SUBSET_NONE,211,140,57,14
***************
*** 1880,1886 ****
  STYLE WS_CHILD
  FONT 9, "±¼¸²", 0, 0, 0x1
  BEGIN
!     CONTROL         "",IDC_KEY_LIST,"FastList",WS_TABSTOP | 0x30b,5,22,216,
                      135,WS_EX_CLIENTEDGE
      PUSHBUTTON      "¼­¹ö Å° Ãß°¡(&A)",IDC_KEY_ADD,72,160,65,14
      PUSHBUTTON      "¼­¹ö Å° Á¦°Å(&R)",IDC_KEY_REMOVE,141,160,80,14
--- 1880,1886 ----
  STYLE WS_CHILD
  FONT 9, "±¼¸²", 0, 0, 0x1
  BEGIN
!     CONTROL         "",IDC_KEY_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x30b,5,22,216,
                      135,WS_EX_CLIENTEDGE
      PUSHBUTTON      "¼­¹ö Å° Ãß°¡(&A)",IDC_KEY_ADD,72,160,65,14
      PUSHBUTTON      "¼­¹ö Å° Á¦°Å(&R)",IDC_KEY_REMOVE,141,160,80,14
***************
*** 2046,2052 ****
      PUSHBUTTON      "È£½ºÆ® ¼­¹ö Á¦°Å(&R)",IDC_HOST_REMOVE,141,160,80,14
      LTEXT           "¼­¹ö¿¡¼­ ÀÎ½ÄµÇ´Â µ¥ÀÌÅÍº£ÀÌ½º È£½ºÆ® ¼­¹ö:",
                      IDC_HOST_TITLE,5,7,216,8
!     CONTROL         "",IDC_HOST_LIST,"FastList",WS_TABSTOP | 0x11,5,22,216,
                      135,WS_EX_CLIENTEDGE
  END
  
--- 2046,2052 ----
      PUSHBUTTON      "È£½ºÆ® ¼­¹ö Á¦°Å(&R)",IDC_HOST_REMOVE,141,160,80,14
      LTEXT           "¼­¹ö¿¡¼­ ÀÎ½ÄµÇ´Â µ¥ÀÌÅÍº£ÀÌ½º È£½ºÆ® ¼­¹ö:",
                      IDC_HOST_TITLE,5,7,216,8
!     CONTROL         "",IDC_HOST_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x11,5,22,216,
                      135,WS_EX_CLIENTEDGE
  END
  
Index: openafs/src/WINNT/afssvrmgr/lang/pt_BR/svrmgr.rc
diff -c openafs/src/WINNT/afssvrmgr/lang/pt_BR/svrmgr.rc:1.4 openafs/src/WINNT/afssvrmgr/lang/pt_BR/svrmgr.rc:1.4.14.1
*** openafs/src/WINNT/afssvrmgr/lang/pt_BR/svrmgr.rc:1.4	Thu Apr  1 14:09:50 2004
--- openafs/src/WINNT/afssvrmgr/lang/pt_BR/svrmgr.rc	Tue Dec 12 15:41:06 2006
***************
*** 814,820 ****
  FONT 9, "MS Shell Dlg", 0, 0, 0x1
  BEGIN
      LTEXT           "Serviços:",IDC_SVC_DESC,0,5,179,8
!     CONTROL         "",IDC_SVC_LIST,"FastList",WS_TABSTOP | 0x303,0,17,179,
                      61,WS_EX_STATICEDGE
      PUSHBUTTON      "&Criar...",IDC_SVC_CREATE,56,80,39,12
      PUSHBUTTON      "E&xcluir",IDC_SVC_DELETE,98,80,39,12
--- 814,820 ----
  FONT 9, "MS Shell Dlg", 0, 0, 0x1
  BEGIN
      LTEXT           "Serviços:",IDC_SVC_DESC,0,5,179,8
!     CONTROL         "",IDC_SVC_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,0,17,179,
                      61,WS_EX_STATICEDGE
      PUSHBUTTON      "&Criar...",IDC_SVC_CREATE,56,80,39,12
      PUSHBUTTON      "E&xcluir",IDC_SVC_DELETE,98,80,39,12
***************
*** 826,832 ****
  FONT 9, "MS Shell Dlg", 0, 0, 0x1
  BEGIN
      LTEXT           "Partições:",IDC_AGG_DESC,0,5,165,8
!     CONTROL         "",IDC_AGG_LIST,"FastList",WS_TABSTOP | 0x303,0,17,165,
                      53,WS_EX_STATICEDGE
      PUSHBUTTON      "&Criar Volume...",IDC_AGG_CREATESET,102,72,63,12
  END
--- 826,832 ----
  FONT 9, "MS Shell Dlg", 0, 0, 0x1
  BEGIN
      LTEXT           "Partições:",IDC_AGG_DESC,0,5,165,8
!     CONTROL         "",IDC_AGG_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,0,17,165,
                      53,WS_EX_STATICEDGE
      PUSHBUTTON      "&Criar Volume...",IDC_AGG_CREATESET,102,72,63,12
  END
***************
*** 836,842 ****
  FONT 9, "MS Shell Dlg", 0, 0, 0x1
  BEGIN
      LTEXT           "Volumes:",IDC_SET_DESC,0,5,194,8
!     CONTROL         "",IDC_SET_LIST,"FastList",WS_TABSTOP | 0x303,0,17,194,
                      61,WS_EX_STATICEDGE
      PUSHBUTTON      "&Criar...",IDC_SET_CREATE,6,80,39,12
      PUSHBUTTON      "E&xcluir",IDC_SET_DELETE,48,80,39,12
--- 836,842 ----
  FONT 9, "MS Shell Dlg", 0, 0, 0x1
  BEGIN
      LTEXT           "Volumes:",IDC_SET_DESC,0,5,194,8
!     CONTROL         "",IDC_SET_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,0,17,194,
                      61,WS_EX_STATICEDGE
      PUSHBUTTON      "&Criar...",IDC_SET_CREATE,6,80,39,12
      PUSHBUTTON      "E&xcluir",IDC_SET_DELETE,48,80,39,12
***************
*** 848,854 ****
  STYLE WS_CHILD
  FONT 9, "MS Shell Dlg", 0, 0, 0x1
  BEGIN
!     CONTROL         "",IDC_LIST_LIST,"FastList",WS_TABSTOP | 0x11,5,22,216,
                      135,WS_EX_CLIENTEDGE
      PUSHBUTTON      "&Incluir Administrador",IDC_LIST_ADD,61,160,72,14
      PUSHBUTTON      "&Remover Administrador",IDC_LIST_REMOVE,141,160,80,14
--- 848,854 ----
  STYLE WS_CHILD
  FONT 9, "MS Shell Dlg", 0, 0, 0x1
  BEGIN
!     CONTROL         "",IDC_LIST_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x11,5,22,216,
                      135,WS_EX_CLIENTEDGE
      PUSHBUTTON      "&Incluir Administrador",IDC_LIST_ADD,61,160,72,14
      PUSHBUTTON      "&Remover Administrador",IDC_LIST_REMOVE,141,160,80,14
***************
*** 1036,1042 ****
                      9
      LTEXT           "Tokens do AFS:",IDC_STATIC,2,19,55,8
      LTEXT           "%2:%1 (tokens expiram em %3)",IDC_AFS_ID,62,19,208,9
!     CONTROL         "",IDC_SERVERS,"FastList",WS_TABSTOP | 0x301,2,31,313,
                      193,WS_EX_CLIENTEDGE
      CONTROL         "",IDC_CELL_BORDER,"Static",SS_ETCHEDHORZ,1,2,315,1
      ICON            IDI_MAIN,IDC_ANIMATE,292,7,20,20,SS_REALSIZEIMAGE | 
--- 1036,1042 ----
                      9
      LTEXT           "Tokens do AFS:",IDC_STATIC,2,19,55,8
      LTEXT           "%2:%1 (tokens expiram em %3)",IDC_AFS_ID,62,19,208,9
!     CONTROL         "",IDC_SERVERS,"OpenAFS_FastList",WS_TABSTOP | 0x301,2,31,313,
                      193,WS_EX_CLIENTEDGE
      CONTROL         "",IDC_CELL_BORDER,"Static",SS_ETCHEDHORZ,1,2,315,1
      ICON            IDI_MAIN,IDC_ANIMATE,292,7,20,20,SS_REALSIZEIMAGE | 
***************
*** 1094,1100 ****
  STYLE WS_CHILD
  FONT 9, "MS Shell Dlg", 0, 0, 0x1
  BEGIN
!     CONTROL         "",IDC_SET_REP_LIST,"FastList",WS_TABSTOP | 0x303,11,80,
                      199,58,WS_EX_CLIENTEDGE
      PUSHBUTTON      "&Liberar Agora",IDC_SET_RELEASE,11,143,52,14
      PUSHBUTTON      "&Criar...",IDC_SET_REPSITE_ADD,129,143,38,14
--- 1094,1100 ----
  STYLE WS_CHILD
  FONT 9, "MS Shell Dlg", 0, 0, 0x1
  BEGIN
!     CONTROL         "",IDC_SET_REP_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,11,80,
                      199,58,WS_EX_CLIENTEDGE
      PUSHBUTTON      "&Liberar Agora",IDC_SET_RELEASE,11,143,52,14
      PUSHBUTTON      "&Criar...",IDC_SET_REPSITE_ADD,129,143,38,14
***************
*** 1231,1237 ****
      COMBOBOX        IDC_SET_SERVER,46,82,116,107,CBS_DROPDOWNLIST | CBS_SORT | 
                      WS_VSCROLL | WS_TABSTOP
      LTEXT           "&Partição:",IDC_STATIC,4,102,39,8
!     CONTROL         "",IDC_AGG_LIST,"FastList",WS_TABSTOP | 0x303,46,102,271,
                      75,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "OK",IDOK,156,191,50,14
      PUSHBUTTON      "Cancelar",IDCANCEL,211,191,50,14
--- 1231,1237 ----
      COMBOBOX        IDC_SET_SERVER,46,82,116,107,CBS_DROPDOWNLIST | CBS_SORT | 
                      WS_VSCROLL | WS_TABSTOP
      LTEXT           "&Partição:",IDC_STATIC,4,102,39,8
!     CONTROL         "",IDC_AGG_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,46,102,271,
                      75,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "OK",IDOK,156,191,50,14
      PUSHBUTTON      "Cancelar",IDCANCEL,211,191,50,14
***************
*** 1341,1347 ****
  BEGIN
      COMBOBOX        IDC_MOVESET_SERVER,4,54,116,104,CBS_DROPDOWNLIST | 
                      CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     CONTROL         "",IDC_AGG_LIST,"FastList",WS_TABSTOP | 0x303,4,70,269,
                      75,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "OK",IDOK,115,156,50,14
      PUSHBUTTON      "Cancelar",IDCANCEL,169,156,50,14
--- 1341,1347 ----
  BEGIN
      COMBOBOX        IDC_MOVESET_SERVER,4,54,116,104,CBS_DROPDOWNLIST | 
                      CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     CONTROL         "",IDC_AGG_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,4,70,269,
                      75,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "OK",IDOK,115,156,50,14
      PUSHBUTTON      "Cancelar",IDCANCEL,169,156,50,14
***************
*** 1437,1443 ****
  BEGIN
      LTEXT           "As seguintes operações estão em andamento:",
                      IDC_ACTION_DESC,2,2,232,8
!     CONTROL         "",IDC_ACTION_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x3,2,14,232,43
  END
  
--- 1437,1443 ----
  BEGIN
      LTEXT           "As seguintes operações estão em andamento:",
                      IDC_ACTION_DESC,2,2,232,8
!     CONTROL         "",IDC_ACTION_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x3,2,14,232,43
  END
  
***************
*** 1463,1469 ****
  BEGIN
      COMBOBOX        IDC_SET_SERVER,4,46,116,104,CBS_DROPDOWNLIST | CBS_SORT | 
                      WS_VSCROLL | WS_TABSTOP
!     CONTROL         "",IDC_AGG_LIST,"FastList",WS_TABSTOP | 0x303,4,62,269,
                      75,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "OK",IDOK,115,153,50,14
      PUSHBUTTON      "Cancelar",IDCANCEL,169,153,50,14
--- 1463,1469 ----
  BEGIN
      COMBOBOX        IDC_SET_SERVER,4,46,116,104,CBS_DROPDOWNLIST | CBS_SORT | 
                      WS_VSCROLL | WS_TABSTOP
!     CONTROL         "",IDC_AGG_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,4,62,269,
                      75,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "OK",IDOK,115,153,50,14
      PUSHBUTTON      "Cancelar",IDCANCEL,169,153,50,14
***************
*** 1670,1676 ****
      COMBOBOX        IDC_RESTORE_SERVER,51,143,116,104,CBS_DROPDOWNLIST | 
                      CBS_SORT | WS_VSCROLL | WS_TABSTOP
      LTEXT           "&Partição:",IDC_STATIC,11,162,36,8
!     CONTROL         "",IDC_AGG_LIST,"FastList",WS_TABSTOP | 0x303,50,161,231,
                      55,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "OK",IDOK,128,230,50,14
      PUSHBUTTON      "Cancelar",IDCANCEL,183,230,50,14
--- 1670,1676 ----
      COMBOBOX        IDC_RESTORE_SERVER,51,143,116,104,CBS_DROPDOWNLIST | 
                      CBS_SORT | WS_VSCROLL | WS_TABSTOP
      LTEXT           "&Partição:",IDC_STATIC,11,162,36,8
!     CONTROL         "",IDC_AGG_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,50,161,231,
                      55,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "OK",IDOK,128,230,50,14
      PUSHBUTTON      "Cancelar",IDCANCEL,183,230,50,14
***************
*** 1782,1788 ****
                      ES_READONLY | NOT WS_TABSTOP
      PUSHBUTTON      "&Abrir...",IDC_SUBSET_LOAD,204,75,39,14
      PUSHBUTTON      "&Salvar...",IDC_SUBSET_SAVE,248,75,39,14
!     CONTROL         "",IDC_SUBSET_LIST,"CheckList",WS_BORDER | WS_VSCROLL | 
                      WS_TABSTOP | 0x153,12,111,193,58,WS_EX_CLIENTEDGE
      PUSHBUTTON      "Monitorar &Todos",IDC_SUBSET_ALL,211,122,78,14
      PUSHBUTTON      "Não Monitorar &Nenhum",IDC_SUBSET_NONE,211,140,78,14
--- 1782,1788 ----
                      ES_READONLY | NOT WS_TABSTOP
      PUSHBUTTON      "&Abrir...",IDC_SUBSET_LOAD,204,75,39,14
      PUSHBUTTON      "&Salvar...",IDC_SUBSET_SAVE,248,75,39,14
!     CONTROL         "",IDC_SUBSET_LIST,"OpenAFS_CheckList",WS_BORDER | WS_VSCROLL | 
                      WS_TABSTOP | 0x153,12,111,193,58,WS_EX_CLIENTEDGE
      PUSHBUTTON      "Monitorar &Todos",IDC_SUBSET_ALL,211,122,78,14
      PUSHBUTTON      "Não Monitorar &Nenhum",IDC_SUBSET_NONE,211,140,78,14
***************
*** 1910,1916 ****
  STYLE WS_CHILD
  FONT 9, "MS Shell Dlg", 0, 0, 0x1
  BEGIN
!     CONTROL         "",IDC_KEY_LIST,"FastList",WS_TABSTOP | 0x30b,5,22,216,
                      135,WS_EX_CLIENTEDGE
      PUSHBUTTON      "&Incluir Chave do Servidor",IDC_KEY_ADD,17,160,98,14
      PUSHBUTTON      "&Remover Chave do Servidor",IDC_KEY_REMOVE,123,160,98,
--- 1910,1916 ----
  STYLE WS_CHILD
  FONT 9, "MS Shell Dlg", 0, 0, 0x1
  BEGIN
!     CONTROL         "",IDC_KEY_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x30b,5,22,216,
                      135,WS_EX_CLIENTEDGE
      PUSHBUTTON      "&Incluir Chave do Servidor",IDC_KEY_ADD,17,160,98,14
      PUSHBUTTON      "&Remover Chave do Servidor",IDC_KEY_REMOVE,123,160,98,
***************
*** 2088,2094 ****
      PUSHBUTTON      "&Remover Servidor Host",IDC_HOST_REMOVE,141,160,80,14
      LTEXT           "Servidores host de banco de dados reconhecidos pelo servidor:",
                      IDC_HOST_TITLE,5,7,216,8
!     CONTROL         "",IDC_HOST_LIST,"FastList",WS_TABSTOP | 0x11,5,22,216,
                      135,WS_EX_CLIENTEDGE
  END
  
--- 2088,2094 ----
      PUSHBUTTON      "&Remover Servidor Host",IDC_HOST_REMOVE,141,160,80,14
      LTEXT           "Servidores host de banco de dados reconhecidos pelo servidor:",
                      IDC_HOST_TITLE,5,7,216,8
!     CONTROL         "",IDC_HOST_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x11,5,22,216,
                      135,WS_EX_CLIENTEDGE
  END
  
Index: openafs/src/WINNT/afssvrmgr/lang/zh_CN/svrmgr.rc
diff -c openafs/src/WINNT/afssvrmgr/lang/zh_CN/svrmgr.rc:1.4 openafs/src/WINNT/afssvrmgr/lang/zh_CN/svrmgr.rc:1.4.14.1
*** openafs/src/WINNT/afssvrmgr/lang/zh_CN/svrmgr.rc:1.4	Thu Apr  1 14:09:51 2004
--- openafs/src/WINNT/afssvrmgr/lang/zh_CN/svrmgr.rc	Tue Dec 12 15:41:07 2006
***************
*** 814,820 ****
  FONT 9, "ËÎÌå", 0, 0, 0x1
  BEGIN
      LTEXT           "·þÎñ£º",IDC_SVC_DESC,0,5,179,8
!     CONTROL         "",IDC_SVC_LIST,"FastList",WS_TABSTOP | 0x303,0,17,179,
                      61,WS_EX_STATICEDGE
      PUSHBUTTON      "´´½¨(&C)...",IDC_SVC_CREATE,37,80,46,12
      PUSHBUTTON      "É¾³ý(&L)",IDC_SVC_DELETE,86,80,39,12
--- 814,820 ----
  FONT 9, "ËÎÌå", 0, 0, 0x1
  BEGIN
      LTEXT           "·þÎñ£º",IDC_SVC_DESC,0,5,179,8
!     CONTROL         "",IDC_SVC_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,0,17,179,
                      61,WS_EX_STATICEDGE
      PUSHBUTTON      "´´½¨(&C)...",IDC_SVC_CREATE,37,80,46,12
      PUSHBUTTON      "É¾³ý(&L)",IDC_SVC_DELETE,86,80,39,12
***************
*** 826,832 ****
  FONT 9, "ËÎÌå", 0, 0, 0x1
  BEGIN
      LTEXT           "·ÖÇø£º",IDC_AGG_DESC,0,5,165,8
!     CONTROL         "",IDC_AGG_LIST,"FastList",WS_TABSTOP | 0x303,0,17,165,
                      53,WS_EX_STATICEDGE
      PUSHBUTTON      "´´½¨¾í(&C)...",IDC_AGG_CREATESET,102,72,63,12
  END
--- 826,832 ----
  FONT 9, "ËÎÌå", 0, 0, 0x1
  BEGIN
      LTEXT           "·ÖÇø£º",IDC_AGG_DESC,0,5,165,8
!     CONTROL         "",IDC_AGG_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,0,17,165,
                      53,WS_EX_STATICEDGE
      PUSHBUTTON      "´´½¨¾í(&C)...",IDC_AGG_CREATESET,102,72,63,12
  END
***************
*** 836,842 ****
  FONT 9, "ËÎÌå", 0, 0, 0x1
  BEGIN
      LTEXT           "¾í£º",IDC_SET_DESC,0,5,194,8
!     CONTROL         "",IDC_SET_LIST,"FastList",WS_TABSTOP | 0x303,0,17,194,
                      61,WS_EX_STATICEDGE
      PUSHBUTTON      "´´½¨(&C)...",IDC_SET_CREATE,1,80,42,12
      PUSHBUTTON      "É¾³ý(&L)",IDC_SET_DELETE,45,80,36,12
--- 836,842 ----
  FONT 9, "ËÎÌå", 0, 0, 0x1
  BEGIN
      LTEXT           "¾í£º",IDC_SET_DESC,0,5,194,8
!     CONTROL         "",IDC_SET_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,0,17,194,
                      61,WS_EX_STATICEDGE
      PUSHBUTTON      "´´½¨(&C)...",IDC_SET_CREATE,1,80,42,12
      PUSHBUTTON      "É¾³ý(&L)",IDC_SET_DELETE,45,80,36,12
***************
*** 848,854 ****
  STYLE WS_CHILD
  FONT 9, "ËÎÌå", 0, 0, 0x1
  BEGIN
!     CONTROL         "",IDC_LIST_LIST,"FastList",WS_TABSTOP | 0x11,5,22,216,
                      135,WS_EX_CLIENTEDGE
      PUSHBUTTON      "Ìí¼Ó¹ÜÀíÔ±(&A)",IDC_LIST_ADD,72,160,65,14
      PUSHBUTTON      "³ýÈ¥¹ÜÀíÔ±(&R)",IDC_LIST_REMOVE,141,160,80,14
--- 848,854 ----
  STYLE WS_CHILD
  FONT 9, "ËÎÌå", 0, 0, 0x1
  BEGIN
!     CONTROL         "",IDC_LIST_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x11,5,22,216,
                      135,WS_EX_CLIENTEDGE
      PUSHBUTTON      "Ìí¼Ó¹ÜÀíÔ±(&A)",IDC_LIST_ADD,72,160,65,14
      PUSHBUTTON      "³ýÈ¥¹ÜÀíÔ±(&R)",IDC_LIST_REMOVE,141,160,80,14
***************
*** 1020,1026 ****
      LTEXT           "(µ¥ÔªÃû½«·ÅÓÚ´Ë)",IDC_CELL,62,8,222,9
      LTEXT           "AFS ÁîÅÆ£º",IDC_STATIC,2,19,55,8
      LTEXT           "%2:%1(ÁîÅÆ½«ÔÚ %3 µ½ÆÚ)",IDC_AFS_ID,62,19,222,9
!     CONTROL         "",IDC_SERVERS,"FastList",WS_TABSTOP | 0x301,2,31,313,
                      193,WS_EX_CLIENTEDGE
      CONTROL         "",IDC_CELL_BORDER,"Static",SS_ETCHEDHORZ,1,2,315,1
      ICON            IDI_MAIN,IDC_ANIMATE,292,7,20,20,SS_REALSIZEIMAGE | 
--- 1020,1026 ----
      LTEXT           "(µ¥ÔªÃû½«·ÅÓÚ´Ë)",IDC_CELL,62,8,222,9
      LTEXT           "AFS ÁîÅÆ£º",IDC_STATIC,2,19,55,8
      LTEXT           "%2:%1(ÁîÅÆ½«ÔÚ %3 µ½ÆÚ)",IDC_AFS_ID,62,19,222,9
!     CONTROL         "",IDC_SERVERS,"OpenAFS_FastList",WS_TABSTOP | 0x301,2,31,313,
                      193,WS_EX_CLIENTEDGE
      CONTROL         "",IDC_CELL_BORDER,"Static",SS_ETCHEDHORZ,1,2,315,1
      ICON            IDI_MAIN,IDC_ANIMATE,292,7,20,20,SS_REALSIZEIMAGE | 
***************
*** 1076,1082 ****
  STYLE WS_CHILD
  FONT 9, "ËÎÌå", 0, 0, 0x1
  BEGIN
!     CONTROL         "",IDC_SET_REP_LIST,"FastList",WS_TABSTOP | 0x303,11,80,
                      199,58,WS_EX_CLIENTEDGE
      PUSHBUTTON      "ÏÖÔÚÊÍ·Å(&R)",IDC_SET_RELEASE,11,143,52,14
      PUSHBUTTON      "´´½¨(&C)...",IDC_SET_REPSITE_ADD,108,143,47,14
--- 1076,1082 ----
  STYLE WS_CHILD
  FONT 9, "ËÎÌå", 0, 0, 0x1
  BEGIN
!     CONTROL         "",IDC_SET_REP_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,11,80,
                      199,58,WS_EX_CLIENTEDGE
      PUSHBUTTON      "ÏÖÔÚÊÍ·Å(&R)",IDC_SET_RELEASE,11,143,52,14
      PUSHBUTTON      "´´½¨(&C)...",IDC_SET_REPSITE_ADD,108,143,47,14
***************
*** 1205,1211 ****
      COMBOBOX        IDC_SET_SERVER,50,82,116,107,CBS_DROPDOWNLIST | CBS_SORT | 
                      WS_VSCROLL | WS_TABSTOP
      LTEXT           "·ÖÇø(&P)£º",IDC_STATIC,4,102,39,8
!     CONTROL         "",IDC_AGG_LIST,"FastList",WS_TABSTOP | 0x303,46,102,271,
                      75,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "È·¶¨",IDOK,156,191,50,14
      PUSHBUTTON      "È¡Ïû",IDCANCEL,211,191,50,14
--- 1205,1211 ----
      COMBOBOX        IDC_SET_SERVER,50,82,116,107,CBS_DROPDOWNLIST | CBS_SORT | 
                      WS_VSCROLL | WS_TABSTOP
      LTEXT           "·ÖÇø(&P)£º",IDC_STATIC,4,102,39,8
!     CONTROL         "",IDC_AGG_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,46,102,271,
                      75,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "È·¶¨",IDOK,156,191,50,14
      PUSHBUTTON      "È¡Ïû",IDCANCEL,211,191,50,14
***************
*** 1312,1318 ****
  BEGIN
      COMBOBOX        IDC_MOVESET_SERVER,4,54,116,104,CBS_DROPDOWNLIST | 
                      CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     CONTROL         "",IDC_AGG_LIST,"FastList",WS_TABSTOP | 0x303,4,70,269,
                      75,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "È·¶¨",IDOK,115,156,50,14
      PUSHBUTTON      "È¡Ïû",IDCANCEL,169,156,50,14
--- 1312,1318 ----
  BEGIN
      COMBOBOX        IDC_MOVESET_SERVER,4,54,116,104,CBS_DROPDOWNLIST | 
                      CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     CONTROL         "",IDC_AGG_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,4,70,269,
                      75,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "È·¶¨",IDOK,115,156,50,14
      PUSHBUTTON      "È¡Ïû",IDCANCEL,169,156,50,14
***************
*** 1404,1410 ****
  FONT 9, "ËÎÌå", 0, 0, 0x1
  BEGIN
      LTEXT           "ÏÂÁÐ²Ù×÷ÕýÔÚ½øÐÐ£º",IDC_ACTION_DESC,2,2,232,8
!     CONTROL         "",IDC_ACTION_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x3,2,14,232,43
  END
  
--- 1404,1410 ----
  FONT 9, "ËÎÌå", 0, 0, 0x1
  BEGIN
      LTEXT           "ÏÂÁÐ²Ù×÷ÕýÔÚ½øÐÐ£º",IDC_ACTION_DESC,2,2,232,8
!     CONTROL         "",IDC_ACTION_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x3,2,14,232,43
  END
  
***************
*** 1430,1436 ****
  BEGIN
      COMBOBOX        IDC_SET_SERVER,4,46,116,104,CBS_DROPDOWNLIST | CBS_SORT | 
                      WS_VSCROLL | WS_TABSTOP
!     CONTROL         "",IDC_AGG_LIST,"FastList",WS_TABSTOP | 0x303,4,62,269,
                      75,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "È·¶¨",IDOK,115,153,50,14
      PUSHBUTTON      "È¡Ïû",IDCANCEL,169,153,50,14
--- 1430,1436 ----
  BEGIN
      COMBOBOX        IDC_SET_SERVER,4,46,116,104,CBS_DROPDOWNLIST | CBS_SORT | 
                      WS_VSCROLL | WS_TABSTOP
!     CONTROL         "",IDC_AGG_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,4,62,269,
                      75,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "È·¶¨",IDOK,115,153,50,14
      PUSHBUTTON      "È¡Ïû",IDCANCEL,169,153,50,14
***************
*** 1623,1629 ****
      COMBOBOX        IDC_RESTORE_SERVER,57,143,116,104,CBS_DROPDOWNLIST | 
                      CBS_SORT | WS_VSCROLL | WS_TABSTOP
      LTEXT           "·ÖÇø(&P)£º",IDC_STATIC,11,162,36,8
!     CONTROL         "",IDC_AGG_LIST,"FastList",WS_TABSTOP | 0x303,50,161,231,
                      55,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "È·¶¨",IDOK,128,230,50,14
      PUSHBUTTON      "È¡Ïû",IDCANCEL,183,230,50,14
--- 1623,1629 ----
      COMBOBOX        IDC_RESTORE_SERVER,57,143,116,104,CBS_DROPDOWNLIST | 
                      CBS_SORT | WS_VSCROLL | WS_TABSTOP
      LTEXT           "·ÖÇø(&P)£º",IDC_STATIC,11,162,36,8
!     CONTROL         "",IDC_AGG_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,50,161,231,
                      55,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "È·¶¨",IDOK,128,230,50,14
      PUSHBUTTON      "È¡Ïû",IDCANCEL,183,230,50,14
***************
*** 1733,1739 ****
                      ES_READONLY | NOT WS_TABSTOP
      PUSHBUTTON      "´ò¿ª(&O)...",IDC_SUBSET_LOAD,181,75,47,14
      PUSHBUTTON      "±£´æ(&S)...",IDC_SUBSET_SAVE,231,75,43,14
!     CONTROL         "",IDC_SUBSET_LIST,"CheckList",WS_BORDER | WS_VSCROLL | 
                      WS_TABSTOP | 0x153,12,111,193,58,WS_EX_CLIENTEDGE
      PUSHBUTTON      "¼àÊÓËùÓÐ(&A)",IDC_SUBSET_ALL,211,122,57,14
      PUSHBUTTON      "²»¼àÊÓ(&N)",IDC_SUBSET_NONE,211,140,57,14
--- 1733,1739 ----
                      ES_READONLY | NOT WS_TABSTOP
      PUSHBUTTON      "´ò¿ª(&O)...",IDC_SUBSET_LOAD,181,75,47,14
      PUSHBUTTON      "±£´æ(&S)...",IDC_SUBSET_SAVE,231,75,43,14
!     CONTROL         "",IDC_SUBSET_LIST,"OpenAFS_CheckList",WS_BORDER | WS_VSCROLL | 
                      WS_TABSTOP | 0x153,12,111,193,58,WS_EX_CLIENTEDGE
      PUSHBUTTON      "¼àÊÓËùÓÐ(&A)",IDC_SUBSET_ALL,211,122,57,14
      PUSHBUTTON      "²»¼àÊÓ(&N)",IDC_SUBSET_NONE,211,140,57,14
***************
*** 1855,1861 ****
  STYLE WS_CHILD
  FONT 9, "ËÎÌå", 0, 0, 0x1
  BEGIN
!     CONTROL         "",IDC_KEY_LIST,"FastList",WS_TABSTOP | 0x30b,5,22,216,
                      135,WS_EX_CLIENTEDGE
      PUSHBUTTON      "Ìí¼Ó·þÎñÆ÷ÃÜÔ¿(&A)",IDC_KEY_ADD,58,160,80,14
      PUSHBUTTON      "³ýÈ¥·þÎñÆ÷ÃÜÔ¿(&R)",IDC_KEY_REMOVE,141,160,80,14
--- 1855,1861 ----
  STYLE WS_CHILD
  FONT 9, "ËÎÌå", 0, 0, 0x1
  BEGIN
!     CONTROL         "",IDC_KEY_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x30b,5,22,216,
                      135,WS_EX_CLIENTEDGE
      PUSHBUTTON      "Ìí¼Ó·þÎñÆ÷ÃÜÔ¿(&A)",IDC_KEY_ADD,58,160,80,14
      PUSHBUTTON      "³ýÈ¥·þÎñÆ÷ÃÜÔ¿(&R)",IDC_KEY_REMOVE,141,160,80,14
***************
*** 2020,2026 ****
      PUSHBUTTON      "³ýÈ¥Ö÷»ú·þÎñÆ÷(&R)",IDC_HOST_REMOVE,141,160,80,14
      LTEXT           "·þÎñÆ÷Ê¶±ðµÄÊý¾Ý¿âÖ÷»ú·þÎñÆ÷£º",IDC_HOST_TITLE,5,7,216,
                      8
!     CONTROL         "",IDC_HOST_LIST,"FastList",WS_TABSTOP | 0x11,5,22,216,
                      135,WS_EX_CLIENTEDGE
  END
  
--- 2020,2026 ----
      PUSHBUTTON      "³ýÈ¥Ö÷»ú·þÎñÆ÷(&R)",IDC_HOST_REMOVE,141,160,80,14
      LTEXT           "·þÎñÆ÷Ê¶±ðµÄÊý¾Ý¿âÖ÷»ú·þÎñÆ÷£º",IDC_HOST_TITLE,5,7,216,
                      8
!     CONTROL         "",IDC_HOST_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x11,5,22,216,
                      135,WS_EX_CLIENTEDGE
  END
  
Index: openafs/src/WINNT/afssvrmgr/lang/zh_TW/svrmgr.rc
diff -c openafs/src/WINNT/afssvrmgr/lang/zh_TW/svrmgr.rc:1.4 openafs/src/WINNT/afssvrmgr/lang/zh_TW/svrmgr.rc:1.4.14.1
*** openafs/src/WINNT/afssvrmgr/lang/zh_TW/svrmgr.rc:1.4	Thu Apr  1 14:09:52 2004
--- openafs/src/WINNT/afssvrmgr/lang/zh_TW/svrmgr.rc	Tue Dec 12 15:41:08 2006
***************
*** 817,823 ****
  FONT 9, "·s²Ó©úÅé", 0, 0, 0x1
  BEGIN
      LTEXT           "ªA°È¡G",IDC_SVC_DESC,6,5,150,8
!     CONTROL         "",IDC_SVC_LIST,"FastList",WS_TABSTOP | 0x303,3,17,169,
                      61,WS_EX_STATICEDGE
      PUSHBUTTON      "«Ø¥ß(&C)...",IDC_SVC_CREATE,20,83,47,12
      PUSHBUTTON      "§R°£(&L)",IDC_SVC_DELETE,72,83,47,12
--- 817,823 ----
  FONT 9, "·s²Ó©úÅé", 0, 0, 0x1
  BEGIN
      LTEXT           "ªA°È¡G",IDC_SVC_DESC,6,5,150,8
!     CONTROL         "",IDC_SVC_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,3,17,169,
                      61,WS_EX_STATICEDGE
      PUSHBUTTON      "«Ø¥ß(&C)...",IDC_SVC_CREATE,20,83,47,12
      PUSHBUTTON      "§R°£(&L)",IDC_SVC_DELETE,72,83,47,12
***************
*** 829,835 ****
  FONT 9, "·s²Ó©úÅé", 0, 0, 0x1
  BEGIN
      LTEXT           "¤À³Î°Ï¡G",IDC_AGG_DESC,2,5,154,8
!     CONTROL         "",IDC_AGG_LIST,"FastList",WS_TABSTOP | 0x303,1,17,164,
                      53,WS_EX_STATICEDGE
      PUSHBUTTON      "«Ø¥ß®eÅé(&C)...",IDC_AGG_CREATESET,102,75,63,12
  END
--- 829,835 ----
  FONT 9, "·s²Ó©úÅé", 0, 0, 0x1
  BEGIN
      LTEXT           "¤À³Î°Ï¡G",IDC_AGG_DESC,2,5,154,8
!     CONTROL         "",IDC_AGG_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,1,17,164,
                      53,WS_EX_STATICEDGE
      PUSHBUTTON      "«Ø¥ß®eÅé(&C)...",IDC_AGG_CREATESET,102,75,63,12
  END
***************
*** 839,845 ****
  FONT 9, "·s²Ó©úÅé", 0, 0, 0x1
  BEGIN
      LTEXT           "®eÅé¡G",IDC_SET_DESC,6,5,166,8
!     CONTROL         "",IDC_SET_LIST,"FastList",WS_TABSTOP | 0x303,5,17,184,
                      61,WS_EX_STATICEDGE
      PUSHBUTTON      "«Ø¥ß(&C)...",IDC_SET_CREATE,4,82,39,12
      PUSHBUTTON      "§R°£(&L)",IDC_SET_DELETE,47,82,39,12
--- 839,845 ----
  FONT 9, "·s²Ó©úÅé", 0, 0, 0x1
  BEGIN
      LTEXT           "®eÅé¡G",IDC_SET_DESC,6,5,166,8
!     CONTROL         "",IDC_SET_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,5,17,184,
                      61,WS_EX_STATICEDGE
      PUSHBUTTON      "«Ø¥ß(&C)...",IDC_SET_CREATE,4,82,39,12
      PUSHBUTTON      "§R°£(&L)",IDC_SET_DELETE,47,82,39,12
***************
*** 851,857 ****
  STYLE WS_CHILD
  FONT 9, "·s²Ó©úÅé", 0, 0, 0x1
  BEGIN
!     CONTROL         "",IDC_LIST_LIST,"FastList",WS_TABSTOP | 0x11,5,22,216,
                      135,WS_EX_CLIENTEDGE
      PUSHBUTTON      "·s¼WºÞ²z­û(&A)",IDC_LIST_ADD,55,160,80,14
      PUSHBUTTON      "²¾°£ºÞ²z­û(&R)",IDC_LIST_REMOVE,141,160,80,14
--- 851,857 ----
  STYLE WS_CHILD
  FONT 9, "·s²Ó©úÅé", 0, 0, 0x1
  BEGIN
!     CONTROL         "",IDC_LIST_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x11,5,22,216,
                      135,WS_EX_CLIENTEDGE
      PUSHBUTTON      "·s¼WºÞ²z­û(&A)",IDC_LIST_ADD,55,160,80,14
      PUSHBUTTON      "²¾°£ºÞ²z­û(&R)",IDC_LIST_REMOVE,141,160,80,14
***************
*** 1028,1034 ****
      LTEXT           "¡]±N·|§â Cell ¦WºÙ©ñ¦b¦¹³B¡^",IDC_CELL,62,8,208,9
      LTEXT           "AFS °O¸¹¡G",IDC_STATIC,2,19,55,8
      LTEXT           "%2:%1¡]°O¸¹±N¹L´Á %3¡^",IDC_AFS_ID,62,19,208,9
!     CONTROL         "",IDC_SERVERS,"FastList",WS_TABSTOP | 0x301,2,31,313,
                      193,WS_EX_CLIENTEDGE
      CONTROL         "",IDC_CELL_BORDER,"Static",SS_ETCHEDHORZ,1,2,315,1
      ICON            IDI_MAIN,IDC_ANIMATE,292,7,20,20,SS_REALSIZEIMAGE |
--- 1028,1034 ----
      LTEXT           "¡]±N·|§â Cell ¦WºÙ©ñ¦b¦¹³B¡^",IDC_CELL,62,8,208,9
      LTEXT           "AFS °O¸¹¡G",IDC_STATIC,2,19,55,8
      LTEXT           "%2:%1¡]°O¸¹±N¹L´Á %3¡^",IDC_AFS_ID,62,19,208,9
!     CONTROL         "",IDC_SERVERS,"OpenAFS_FastList",WS_TABSTOP | 0x301,2,31,313,
                      193,WS_EX_CLIENTEDGE
      CONTROL         "",IDC_CELL_BORDER,"Static",SS_ETCHEDHORZ,1,2,315,1
      ICON            IDI_MAIN,IDC_ANIMATE,292,7,20,20,SS_REALSIZEIMAGE |
***************
*** 1085,1091 ****
  STYLE WS_CHILD
  FONT 9, "·s²Ó©úÅé", 0, 0, 0x1
  BEGIN
!     CONTROL         "",IDC_SET_REP_LIST,"FastList",WS_TABSTOP | 0x303,11,80,
                      199,58,WS_EX_CLIENTEDGE
      PUSHBUTTON      "¥ß§YÄÀ©ñ(&R)",IDC_SET_RELEASE,11,143,52,14
      PUSHBUTTON      "«Ø¥ß(&C)...",IDC_SET_REPSITE_ADD,129,143,38,14
--- 1085,1091 ----
  STYLE WS_CHILD
  FONT 9, "·s²Ó©úÅé", 0, 0, 0x1
  BEGIN
!     CONTROL         "",IDC_SET_REP_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,11,80,
                      199,58,WS_EX_CLIENTEDGE
      PUSHBUTTON      "¥ß§YÄÀ©ñ(&R)",IDC_SET_RELEASE,11,143,52,14
      PUSHBUTTON      "«Ø¥ß(&C)...",IDC_SET_REPSITE_ADD,129,143,38,14
***************
*** 1215,1221 ****
      COMBOBOX        IDC_SET_SERVER,52,82,115,107,CBS_DROPDOWNLIST | CBS_SORT |
                      WS_VSCROLL | WS_TABSTOP
      LTEXT           "¤À³Î°Ï(&P)¡G",IDC_STATIC,4,102,45,8
!     CONTROL         "",IDC_AGG_LIST,"FastList",WS_TABSTOP | 0x303,51,102,266,
                      75,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "½T©w",IDOK,156,191,50,14
      PUSHBUTTON      "¨ú®ø",IDCANCEL,211,191,50,14
--- 1215,1221 ----
      COMBOBOX        IDC_SET_SERVER,52,82,115,107,CBS_DROPDOWNLIST | CBS_SORT |
                      WS_VSCROLL | WS_TABSTOP
      LTEXT           "¤À³Î°Ï(&P)¡G",IDC_STATIC,4,102,45,8
!     CONTROL         "",IDC_AGG_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,51,102,266,
                      75,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "½T©w",IDOK,156,191,50,14
      PUSHBUTTON      "¨ú®ø",IDCANCEL,211,191,50,14
***************
*** 1323,1329 ****
  BEGIN
      COMBOBOX        IDC_MOVESET_SERVER,4,54,116,104,CBS_DROPDOWNLIST |
                      CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     CONTROL         "",IDC_AGG_LIST,"FastList",WS_TABSTOP | 0x303,4,70,269,
                      75,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "½T©w",IDOK,115,156,50,14
      PUSHBUTTON      "¨ú®ø",IDCANCEL,169,156,50,14
--- 1323,1329 ----
  BEGIN
      COMBOBOX        IDC_MOVESET_SERVER,4,54,116,104,CBS_DROPDOWNLIST |
                      CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     CONTROL         "",IDC_AGG_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,4,70,269,
                      75,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "½T©w",IDOK,115,156,50,14
      PUSHBUTTON      "¨ú®ø",IDCANCEL,169,156,50,14
***************
*** 1415,1421 ****
  FONT 9, "·s²Ó©úÅé", 0, 0, 0x1
  BEGIN
      LTEXT           "¥Ø«e¥¿¦b¶i¦æ¥H¤Uªº§@·~¡G",IDC_ACTION_DESC,2,2,232,8
!     CONTROL         "",IDC_ACTION_LIST,"FastList",WS_BORDER | WS_TABSTOP |
                      0x3,2,14,232,43
  END
  
--- 1415,1421 ----
  FONT 9, "·s²Ó©úÅé", 0, 0, 0x1
  BEGIN
      LTEXT           "¥Ø«e¥¿¦b¶i¦æ¥H¤Uªº§@·~¡G",IDC_ACTION_DESC,2,2,232,8
!     CONTROL         "",IDC_ACTION_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP |
                      0x3,2,14,232,43
  END
  
***************
*** 1441,1447 ****
  BEGIN
      COMBOBOX        IDC_SET_SERVER,4,46,116,104,CBS_DROPDOWNLIST | CBS_SORT |
                      WS_VSCROLL | WS_TABSTOP
!     CONTROL         "",IDC_AGG_LIST,"FastList",WS_TABSTOP | 0x303,4,62,269,
                      75,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "½T©w",IDOK,115,153,50,14
      PUSHBUTTON      "¨ú®ø",IDCANCEL,169,153,50,14
--- 1441,1447 ----
  BEGIN
      COMBOBOX        IDC_SET_SERVER,4,46,116,104,CBS_DROPDOWNLIST | CBS_SORT |
                      WS_VSCROLL | WS_TABSTOP
!     CONTROL         "",IDC_AGG_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,4,62,269,
                      75,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "½T©w",IDOK,115,153,50,14
      PUSHBUTTON      "¨ú®ø",IDCANCEL,169,153,50,14
***************
*** 1636,1642 ****
      COMBOBOX        IDC_RESTORE_SERVER,55,143,116,104,CBS_DROPDOWNLIST |
                      CBS_SORT | WS_VSCROLL | WS_TABSTOP
      LTEXT           "¤À³Î°Ï(&P)¡G",IDC_STATIC,11,162,44,8
!     CONTROL         "",IDC_AGG_LIST,"FastList",WS_TABSTOP | 0x303,56,161,225,
                      55,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "½T©w",IDOK,128,230,50,14
      PUSHBUTTON      "¨ú®ø",IDCANCEL,183,230,50,14
--- 1636,1642 ----
      COMBOBOX        IDC_RESTORE_SERVER,55,143,116,104,CBS_DROPDOWNLIST |
                      CBS_SORT | WS_VSCROLL | WS_TABSTOP
      LTEXT           "¤À³Î°Ï(&P)¡G",IDC_STATIC,11,162,44,8
!     CONTROL         "",IDC_AGG_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x303,56,161,225,
                      55,WS_EX_CLIENTEDGE
      DEFPUSHBUTTON   "½T©w",IDOK,128,230,50,14
      PUSHBUTTON      "¨ú®ø",IDCANCEL,183,230,50,14
***************
*** 1747,1753 ****
                      ES_READONLY | NOT WS_TABSTOP
      PUSHBUTTON      "¶}±Ò(&O)...",IDC_SUBSET_LOAD,188,75,39,14
      PUSHBUTTON      "Àx¦s(&S)...",IDC_SUBSET_SAVE,233,75,39,14
!     CONTROL         "",IDC_SUBSET_LIST,"CheckList",WS_BORDER | WS_VSCROLL |
                      WS_TABSTOP | 0x153,12,111,193,58,WS_EX_CLIENTEDGE
      PUSHBUTTON      "¥þ³¡ºÊµø(&A)",IDC_SUBSET_ALL,211,122,57,14
      PUSHBUTTON      "¤£ºÊµø(&N)",IDC_SUBSET_NONE,211,140,57,14
--- 1747,1753 ----
                      ES_READONLY | NOT WS_TABSTOP
      PUSHBUTTON      "¶}±Ò(&O)...",IDC_SUBSET_LOAD,188,75,39,14
      PUSHBUTTON      "Àx¦s(&S)...",IDC_SUBSET_SAVE,233,75,39,14
!     CONTROL         "",IDC_SUBSET_LIST,"OpenAFS_CheckList",WS_BORDER | WS_VSCROLL |
                      WS_TABSTOP | 0x153,12,111,193,58,WS_EX_CLIENTEDGE
      PUSHBUTTON      "¥þ³¡ºÊµø(&A)",IDC_SUBSET_ALL,211,122,57,14
      PUSHBUTTON      "¤£ºÊµø(&N)",IDC_SUBSET_NONE,211,140,57,14
***************
*** 1870,1876 ****
  STYLE WS_CHILD
  FONT 9, "·s²Ó©úÅé", 0, 0, 0x1
  BEGIN
!     CONTROL         "",IDC_KEY_LIST,"FastList",WS_TABSTOP | 0x30b,5,22,216,
                      135,WS_EX_CLIENTEDGE
      PUSHBUTTON      "·s¼W¦øªA¾¹ª÷Æ_(&A)",IDC_KEY_ADD,58,160,79,14
      PUSHBUTTON      "²¾°£¦øªA¾¹ª÷Æ_(&R)",IDC_KEY_REMOVE,141,160,79,14
--- 1870,1876 ----
  STYLE WS_CHILD
  FONT 9, "·s²Ó©úÅé", 0, 0, 0x1
  BEGIN
!     CONTROL         "",IDC_KEY_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x30b,5,22,216,
                      135,WS_EX_CLIENTEDGE
      PUSHBUTTON      "·s¼W¦øªA¾¹ª÷Æ_(&A)",IDC_KEY_ADD,58,160,79,14
      PUSHBUTTON      "²¾°£¦øªA¾¹ª÷Æ_(&R)",IDC_KEY_REMOVE,141,160,79,14
***************
*** 2036,2042 ****
      PUSHBUTTON      "²¾°£¥D¹q¸£¦øªA¾¹(&R)",IDC_HOST_REMOVE,138,160,80,14
      LTEXT           "¦øªA¾¹©Ò¿ëÃÑªº¸ê®Æ®w¥D¹q¸£¦øªA¾¹",IDC_HOST_TITLE,5,7,
                      216,8
!     CONTROL         "",IDC_HOST_LIST,"FastList",WS_TABSTOP | 0x11,5,22,216,
                      135,WS_EX_CLIENTEDGE
  END
  
--- 2036,2042 ----
      PUSHBUTTON      "²¾°£¥D¹q¸£¦øªA¾¹(&R)",IDC_HOST_REMOVE,138,160,80,14
      LTEXT           "¦øªA¾¹©Ò¿ëÃÑªº¸ê®Æ®w¥D¹q¸£¦øªA¾¹",IDC_HOST_TITLE,5,7,
                      216,8
!     CONTROL         "",IDC_HOST_LIST,"OpenAFS_FastList",WS_TABSTOP | 0x11,5,22,216,
                      135,WS_EX_CLIENTEDGE
  END
  
Index: openafs/src/WINNT/afsusrmgr/lang/de_DE/AfsUsrMgr.rc
diff -c openafs/src/WINNT/afsusrmgr/lang/de_DE/AfsUsrMgr.rc:1.4 openafs/src/WINNT/afsusrmgr/lang/de_DE/AfsUsrMgr.rc:1.4.6.1
*** openafs/src/WINNT/afsusrmgr/lang/de_DE/AfsUsrMgr.rc:1.4	Fri Mar 11 00:34:06 2005
--- openafs/src/WINNT/afsusrmgr/lang/de_DE/AfsUsrMgr.rc	Tue Dec 12 15:41:09 2006
***************
*** 67,73 ****
      RTEXT           "Muster:",IDC_USERS_PATTERN_PROMPT,152,6,28,8
      LTEXT           "Abfrage läuft; bitte warten...",IDC_USERS_TITLE,4,6,142,
                      8
!     CONTROL         "",IDC_USERS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x313,4,21,234,103
      PUSHBUTTON      "&Erstellen...",M_USER_CREATE,65,126,55,14
      PUSHBUTTON      "&Zugehörigkeit...",M_MEMBERSHIP,124,126,55,14
--- 67,73 ----
      RTEXT           "Muster:",IDC_USERS_PATTERN_PROMPT,152,6,28,8
      LTEXT           "Abfrage läuft; bitte warten...",IDC_USERS_TITLE,4,6,142,
                      8
!     CONTROL         "",IDC_USERS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x313,4,21,234,103
      PUSHBUTTON      "&Erstellen...",M_USER_CREATE,65,126,55,14
      PUSHBUTTON      "&Zugehörigkeit...",M_MEMBERSHIP,124,126,55,14
***************
*** 83,89 ****
      RTEXT           "Muster:",IDC_GROUPS_PATTERN_PROMPT,163,6,28,8
      LTEXT           "Abfrage läuft; bitte warten...",IDC_GROUPS_TITLE,4,6,
                      142,8
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x313,4,21,234,103
      PUSHBUTTON      "&Erstellen...",M_GROUP_CREATE,65,126,55,14
      PUSHBUTTON      "&Mitglieder...",M_MEMBERSHIP,124,126,55,14
--- 83,89 ----
      RTEXT           "Muster:",IDC_GROUPS_PATTERN_PROMPT,163,6,28,8
      LTEXT           "Abfrage läuft; bitte warten...",IDC_GROUPS_TITLE,4,6,
                      142,8
!     CONTROL         "",IDC_GROUPS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x313,4,21,234,103
      PUSHBUTTON      "&Erstellen...",M_GROUP_CREATE,65,126,55,14
      PUSHBUTTON      "&Mitglieder...",M_MEMBERSHIP,124,126,55,14
***************
*** 99,105 ****
  BEGIN
      LTEXT           "Abfrage läuft; bitte warten...",IDC_ACTION_DESC,2,2,232,
                      8
!     CONTROL         "",IDC_ACTION_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x3,2,14,232,43
  END
  
--- 99,105 ----
  BEGIN
      LTEXT           "Abfrage läuft; bitte warten...",IDC_ACTION_DESC,2,2,232,
                      8
!     CONTROL         "",IDC_ACTION_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x3,2,14,232,43
  END
  
***************
*** 292,298 ****
      GROUPBOX        "Gruppen",IDC_STATIC,5,31,220,160
      LTEXT           "Diese Einstellungen ermöglichen die Änderung der Liste der Gruppen, zu denen dieser Benutzer gehört, sowie der Liste der Gruppen, deren Eigner dieser Benutzer ist.",
                      IDC_STATIC,5,5,220,24
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "&Entfernen",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "&Hinzufügen...",IDC_MEMBER_ADD,113,169,50,14
--- 292,298 ----
      GROUPBOX        "Gruppen",IDC_STATIC,5,31,220,160
      LTEXT           "Diese Einstellungen ermöglichen die Änderung der Liste der Gruppen, zu denen dieser Benutzer gehört, sowie der Liste der Gruppen, deren Eigner dieser Benutzer ist.",
                      IDC_STATIC,5,5,220,24
!     CONTROL         "",IDC_GROUPS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "&Entfernen",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "&Hinzufügen...",IDC_MEMBER_ADD,113,169,50,14
***************
*** 314,320 ****
      GROUPBOX        "Gruppenzugehörigkeit",IDC_STATIC,5,31,220,160
      LTEXT           "Diese Einstellungen ermöglichen die Auswahl der Mitglieder dieser Gruppe sowie die Auswahl der Gruppen, deren Eigner diese Gruppe sein soll.",
                      IDC_STATIC,5,3,220,23
!     CONTROL         "",IDC_USERS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "&Entfernen",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "&Hinzufügen...",IDC_MEMBER_ADD,113,169,50,14
--- 314,320 ----
      GROUPBOX        "Gruppenzugehörigkeit",IDC_STATIC,5,31,220,160
      LTEXT           "Diese Einstellungen ermöglichen die Auswahl der Mitglieder dieser Gruppe sowie die Auswahl der Gruppen, deren Eigner diese Gruppe sein soll.",
                      IDC_STATIC,5,3,220,23
!     CONTROL         "",IDC_USERS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "&Entfernen",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "&Hinzufügen...",IDC_MEMBER_ADD,113,169,50,14
***************
*** 347,353 ****
                      WS_TABSTOP
      RTEXT           "Muster:",IDC_GROUPS_PATTERN_PROMPT,198,8,29,8
      EDITTEXT        IDC_BROWSE_PATTERN,233,6,41,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x12,7,23,267,84
  END
  
--- 347,353 ----
                      WS_TABSTOP
      RTEXT           "Muster:",IDC_GROUPS_PATTERN_PROMPT,198,8,29,8
      EDITTEXT        IDC_BROWSE_PATTERN,233,6,41,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x12,7,23,267,84
  END
  
***************
*** 423,429 ****
                      WS_TABSTOP
      RTEXT           "Muster:",IDC_GROUPS_PATTERN_PROMPT,199,8,28,8
      EDITTEXT        IDC_BROWSE_PATTERN,233,6,41,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x12,7,23,267,84
  END
  
--- 423,429 ----
                      WS_TABSTOP
      RTEXT           "Muster:",IDC_GROUPS_PATTERN_PROMPT,199,8,28,8
      EDITTEXT        IDC_BROWSE_PATTERN,233,6,41,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x12,7,23,267,84
  END
  
***************
*** 449,455 ****
                      WS_TABSTOP
      RTEXT           "Muster:",IDC_GROUPS_PATTERN_PROMPT,199,8,28,8
      EDITTEXT        IDC_BROWSE_PATTERN,233,6,41,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x12,7,23,267,84
  END
  
--- 449,455 ----
                      WS_TABSTOP
      RTEXT           "Muster:",IDC_GROUPS_PATTERN_PROMPT,199,8,28,8
      EDITTEXT        IDC_BROWSE_PATTERN,233,6,41,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x12,7,23,267,84
  END
  
***************
*** 461,467 ****
      GROUPBOX        "Gruppen",IDC_STATIC,5,31,220,160
      LTEXT           "Diese Einstellungen ermöglichen die Änderung der ersten Liste der Gruppen, zu denen dieser Benutzer gehören wird, sowie der Gruppen, deren Eigner dieser Benutzer wird.",
                      IDC_STATIC,5,4,220,24
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "&Entfernen",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "&Hinzufügen...",IDC_MEMBER_ADD,113,169,50,14
--- 461,467 ----
      GROUPBOX        "Gruppen",IDC_STATIC,5,31,220,160
      LTEXT           "Diese Einstellungen ermöglichen die Änderung der ersten Liste der Gruppen, zu denen dieser Benutzer gehören wird, sowie der Gruppen, deren Eigner dieser Benutzer wird.",
                      IDC_STATIC,5,4,220,24
!     CONTROL         "",IDC_GROUPS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "&Entfernen",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "&Hinzufügen...",IDC_MEMBER_ADD,113,169,50,14
***************
*** 543,549 ****
      GROUPBOX        "Gruppenzugehörigkeit",IDC_STATIC,5,31,220,160
      LTEXT           "Diese Einstellungen ermöglichen die Auswahl der ersten Mitglieder dieser Gruppe sowie die Auswahl der Gruppen, deren Eigner diese Gruppe sein soll.",
                      IDC_STATIC,5,3,220,24
!     CONTROL         "",IDC_USERS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "&Entfernen",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "&Hinzufügen...",IDC_MEMBER_ADD,113,169,50,14
--- 543,549 ----
      GROUPBOX        "Gruppenzugehörigkeit",IDC_STATIC,5,31,220,160
      LTEXT           "Diese Einstellungen ermöglichen die Auswahl der ersten Mitglieder dieser Gruppe sowie die Auswahl der Gruppen, deren Eigner diese Gruppe sein soll.",
                      IDC_STATIC,5,3,220,24
!     CONTROL         "",IDC_USERS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "&Entfernen",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "&Hinzufügen...",IDC_MEMBER_ADD,113,169,50,14
***************
*** 721,727 ****
      RTEXT           "Muster:",IDC_MACHINES_PATTERN_PROMPT,163,6,28,8
      LTEXT           "Abfrage läuft; bitte warten...",IDC_MACHINES_TITLE,4,6,
                      142,8
!     CONTROL         "",IDC_MACHINES_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x313,4,21,234,103
      PUSHBUTTON      "&Erstellen...",M_MACHINE_CREATE,65,126,55,14
      PUSHBUTTON      "&Zugehörigkeit...",M_MEMBERSHIP,124,126,55,14
--- 721,727 ----
      RTEXT           "Muster:",IDC_MACHINES_PATTERN_PROMPT,163,6,28,8
      LTEXT           "Abfrage läuft; bitte warten...",IDC_MACHINES_TITLE,4,6,
                      142,8
!     CONTROL         "",IDC_MACHINES_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x313,4,21,234,103
      PUSHBUTTON      "&Erstellen...",M_MACHINE_CREATE,65,126,55,14
      PUSHBUTTON      "&Zugehörigkeit...",M_MEMBERSHIP,124,126,55,14
***************
*** 736,742 ****
      GROUPBOX        "Gruppen",IDC_STATIC,5,33,220,158
      LTEXT           "Diese Einstellungen ermöglichen die Änderung der ersten Liste der Gruppen, zu denen dieses Konto gehören wird, sowie der Gruppen, deren Eigner dieses Konto wird.",
                      IDC_STATIC,5,5,220,24,NOT WS_GROUP
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "&Entfernen",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "&Hinzufügen...",IDC_MEMBER_ADD,113,169,50,14
--- 736,742 ----
      GROUPBOX        "Gruppen",IDC_STATIC,5,33,220,158
      LTEXT           "Diese Einstellungen ermöglichen die Änderung der ersten Liste der Gruppen, zu denen dieses Konto gehören wird, sowie der Gruppen, deren Eigner dieses Konto wird.",
                      IDC_STATIC,5,5,220,24,NOT WS_GROUP
!     CONTROL         "",IDC_GROUPS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "&Entfernen",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "&Hinzufügen...",IDC_MEMBER_ADD,113,169,50,14
***************
*** 841,847 ****
      GROUPBOX        "Gruppen",IDC_STATIC,5,31,220,160
      LTEXT           "Diese Einstellungen ermöglichen die Änderung der Liste der Gruppen, zu denen dieses Konto gehört, sowie der Liste der Gruppen, deren Eigner dieses Konto ist.",
                      IDC_STATIC,5,5,220,25,NOT WS_GROUP
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "&Entfernen",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "&Hinzufügen...",IDC_MEMBER_ADD,113,169,50,14
--- 841,847 ----
      GROUPBOX        "Gruppen",IDC_STATIC,5,31,220,160
      LTEXT           "Diese Einstellungen ermöglichen die Änderung der Liste der Gruppen, zu denen dieses Konto gehört, sowie der Liste der Gruppen, deren Eigner dieses Konto ist.",
                      IDC_STATIC,5,5,220,25,NOT WS_GROUP
!     CONTROL         "",IDC_GROUPS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "&Entfernen",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "&Hinzufügen...",IDC_MEMBER_ADD,113,169,50,14
Index: openafs/src/WINNT/afsusrmgr/lang/en_US/AfsUsrMgr.rc
diff -c openafs/src/WINNT/afsusrmgr/lang/en_US/AfsUsrMgr.rc:1.3 openafs/src/WINNT/afsusrmgr/lang/en_US/AfsUsrMgr.rc:1.3.14.1
*** openafs/src/WINNT/afsusrmgr/lang/en_US/AfsUsrMgr.rc:1.3	Thu Jun 19 15:01:20 2003
--- openafs/src/WINNT/afsusrmgr/lang/en_US/AfsUsrMgr.rc	Tue Dec 12 15:41:11 2006
***************
*** 67,73 ****
      EDITTEXT        IDC_USERS_PATTERN,185,4,41,13,ES_AUTOHSCROLL
      RTEXT           "Pattern:",IDC_USERS_PATTERN_PROMPT,152,6,28,8
      LTEXT           "Querying; please wait...",IDC_USERS_TITLE,4,6,142,8
!     CONTROL         "",IDC_USERS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x313,4,21,234,103
      PUSHBUTTON      "&Create...",M_USER_CREATE,65,126,55,14
      PUSHBUTTON      "&Membership...",M_MEMBERSHIP,124,126,55,14
--- 67,73 ----
      EDITTEXT        IDC_USERS_PATTERN,185,4,41,13,ES_AUTOHSCROLL
      RTEXT           "Pattern:",IDC_USERS_PATTERN_PROMPT,152,6,28,8
      LTEXT           "Querying; please wait...",IDC_USERS_TITLE,4,6,142,8
!     CONTROL         "",IDC_USERS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x313,4,21,234,103
      PUSHBUTTON      "&Create...",M_USER_CREATE,65,126,55,14
      PUSHBUTTON      "&Membership...",M_MEMBERSHIP,124,126,55,14
***************
*** 82,88 ****
      EDITTEXT        IDC_GROUPS_PATTERN,197,4,41,13,ES_AUTOHSCROLL
      RTEXT           "Pattern:",IDC_GROUPS_PATTERN_PROMPT,163,6,28,8
      LTEXT           "Querying; please wait...",IDC_GROUPS_TITLE,4,6,142,8
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x313,4,21,234,103
      PUSHBUTTON      "&Create...",M_GROUP_CREATE,65,126,55,14
      PUSHBUTTON      "&Members...",M_MEMBERSHIP,124,126,55,14
--- 82,88 ----
      EDITTEXT        IDC_GROUPS_PATTERN,197,4,41,13,ES_AUTOHSCROLL
      RTEXT           "Pattern:",IDC_GROUPS_PATTERN_PROMPT,163,6,28,8
      LTEXT           "Querying; please wait...",IDC_GROUPS_TITLE,4,6,142,8
!     CONTROL         "",IDC_GROUPS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x313,4,21,234,103
      PUSHBUTTON      "&Create...",M_GROUP_CREATE,65,126,55,14
      PUSHBUTTON      "&Members...",M_MEMBERSHIP,124,126,55,14
***************
*** 97,103 ****
  FONT 9, "MS Shell Dlg", 0, 0, 0x1
  BEGIN
      LTEXT           "Querying; please wait...",IDC_ACTION_DESC,2,2,232,8
!     CONTROL         "",IDC_ACTION_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x3,2,14,232,43
  END
  
--- 97,103 ----
  FONT 9, "MS Shell Dlg", 0, 0, 0x1
  BEGIN
      LTEXT           "Querying; please wait...",IDC_ACTION_DESC,2,2,232,8
!     CONTROL         "",IDC_ACTION_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x3,2,14,232,43
  END
  
***************
*** 284,290 ****
      GROUPBOX        "Groups",IDC_STATIC,5,31,220,160
      LTEXT           "These settings allow you to change the list of groups to which this user belongs, as well as the list of groups which this user owns.",
                      IDC_STATIC,5,5,220,17
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "&Remove",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "&Add...",IDC_MEMBER_ADD,113,169,50,14
--- 284,290 ----
      GROUPBOX        "Groups",IDC_STATIC,5,31,220,160
      LTEXT           "These settings allow you to change the list of groups to which this user belongs, as well as the list of groups which this user owns.",
                      IDC_STATIC,5,5,220,17
!     CONTROL         "",IDC_GROUPS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "&Remove",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "&Add...",IDC_MEMBER_ADD,113,169,50,14
***************
*** 306,312 ****
      GROUPBOX        "Group Membership",IDC_STATIC,5,31,220,160
      LTEXT           "These settings allow you to choose the members of this group, as well as to choose the groups which this group should own.",
                      IDC_STATIC,5,5,220,18
!     CONTROL         "",IDC_USERS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "&Remove",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "&Add...",IDC_MEMBER_ADD,113,169,50,14
--- 306,312 ----
      GROUPBOX        "Group Membership",IDC_STATIC,5,31,220,160
      LTEXT           "These settings allow you to choose the members of this group, as well as to choose the groups which this group should own.",
                      IDC_STATIC,5,5,220,18
!     CONTROL         "",IDC_USERS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "&Remove",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "&Add...",IDC_MEMBER_ADD,113,169,50,14
***************
*** 337,343 ****
                      WS_TABSTOP
      RTEXT           "Pattern:",IDC_GROUPS_PATTERN_PROMPT,198,8,29,8
      EDITTEXT        IDC_BROWSE_PATTERN,233,6,41,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x12,7,23,267,84
  END
  
--- 337,343 ----
                      WS_TABSTOP
      RTEXT           "Pattern:",IDC_GROUPS_PATTERN_PROMPT,198,8,29,8
      EDITTEXT        IDC_BROWSE_PATTERN,233,6,41,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x12,7,23,267,84
  END
  
***************
*** 412,418 ****
                      WS_TABSTOP
      RTEXT           "Pattern:",IDC_GROUPS_PATTERN_PROMPT,199,8,28,8
      EDITTEXT        IDC_BROWSE_PATTERN,233,6,41,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x12,7,23,267,84
  END
  
--- 412,418 ----
                      WS_TABSTOP
      RTEXT           "Pattern:",IDC_GROUPS_PATTERN_PROMPT,199,8,28,8
      EDITTEXT        IDC_BROWSE_PATTERN,233,6,41,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x12,7,23,267,84
  END
  
***************
*** 438,444 ****
                      WS_TABSTOP
      RTEXT           "Pattern:",IDC_GROUPS_PATTERN_PROMPT,199,8,28,8
      EDITTEXT        IDC_BROWSE_PATTERN,233,6,41,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x12,7,23,267,84
  END
  
--- 438,444 ----
                      WS_TABSTOP
      RTEXT           "Pattern:",IDC_GROUPS_PATTERN_PROMPT,199,8,28,8
      EDITTEXT        IDC_BROWSE_PATTERN,233,6,41,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x12,7,23,267,84
  END
  
***************
*** 450,456 ****
      GROUPBOX        "Groups",IDC_STATIC,5,31,220,160
      LTEXT           "These settings allow you to change the initial list of groups to which this user will belong, as well as the groups which this user will own.",
                      IDC_STATIC,5,5,220,17
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "&Remove",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "&Add...",IDC_MEMBER_ADD,113,169,50,14
--- 450,456 ----
      GROUPBOX        "Groups",IDC_STATIC,5,31,220,160
      LTEXT           "These settings allow you to change the initial list of groups to which this user will belong, as well as the groups which this user will own.",
                      IDC_STATIC,5,5,220,17
!     CONTROL         "",IDC_GROUPS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "&Remove",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "&Add...",IDC_MEMBER_ADD,113,169,50,14
***************
*** 529,535 ****
      GROUPBOX        "Group Membership",IDC_STATIC,5,31,220,160
      LTEXT           "These settings allow you to choose the initial members of this group, as well as to choose the groups which this group should own.",
                      IDC_STATIC,5,5,220,18
!     CONTROL         "",IDC_USERS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "&Remove",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "&Add...",IDC_MEMBER_ADD,113,169,50,14
--- 529,535 ----
      GROUPBOX        "Group Membership",IDC_STATIC,5,31,220,160
      LTEXT           "These settings allow you to choose the initial members of this group, as well as to choose the groups which this group should own.",
                      IDC_STATIC,5,5,220,18
!     CONTROL         "",IDC_USERS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "&Remove",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "&Add...",IDC_MEMBER_ADD,113,169,50,14
***************
*** 699,705 ****
      EDITTEXT        IDC_MACHINES_PATTERN,197,4,41,13,ES_AUTOHSCROLL
      RTEXT           "Pattern:",IDC_MACHINES_PATTERN_PROMPT,163,6,28,8
      LTEXT           "Querying; please wait...",IDC_MACHINES_TITLE,4,6,142,8
!     CONTROL         "",IDC_MACHINES_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x313,4,21,234,103
      PUSHBUTTON      "&Create...",M_MACHINE_CREATE,65,126,55,14
      PUSHBUTTON      "&Membership...",M_MEMBERSHIP,124,126,55,14
--- 699,705 ----
      EDITTEXT        IDC_MACHINES_PATTERN,197,4,41,13,ES_AUTOHSCROLL
      RTEXT           "Pattern:",IDC_MACHINES_PATTERN_PROMPT,163,6,28,8
      LTEXT           "Querying; please wait...",IDC_MACHINES_TITLE,4,6,142,8
!     CONTROL         "",IDC_MACHINES_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x313,4,21,234,103
      PUSHBUTTON      "&Create...",M_MACHINE_CREATE,65,126,55,14
      PUSHBUTTON      "&Membership...",M_MEMBERSHIP,124,126,55,14
***************
*** 714,720 ****
      GROUPBOX        "Groups",IDC_STATIC,5,31,220,160
      LTEXT           "These settings allow you to select the initial list of groups to which this account will belong, as well as the groups which it will own.",
                      IDC_STATIC,5,5,220,17,NOT WS_GROUP
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "&Remove",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "&Add...",IDC_MEMBER_ADD,113,169,50,14
--- 714,720 ----
      GROUPBOX        "Groups",IDC_STATIC,5,31,220,160
      LTEXT           "These settings allow you to select the initial list of groups to which this account will belong, as well as the groups which it will own.",
                      IDC_STATIC,5,5,220,17,NOT WS_GROUP
!     CONTROL         "",IDC_GROUPS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "&Remove",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "&Add...",IDC_MEMBER_ADD,113,169,50,14
***************
*** 817,823 ****
      GROUPBOX        "Groups",IDC_STATIC,5,31,220,160
      LTEXT           "These settings allow you to change the list of groups to which this account belongs, as well as the groups which this account owns.",
                      IDC_STATIC,5,5,220,17,NOT WS_GROUP
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "&Remove",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "&Add...",IDC_MEMBER_ADD,113,169,50,14
--- 817,823 ----
      GROUPBOX        "Groups",IDC_STATIC,5,31,220,160
      LTEXT           "These settings allow you to change the list of groups to which this account belongs, as well as the groups which this account owns.",
                      IDC_STATIC,5,5,220,17,NOT WS_GROUP
!     CONTROL         "",IDC_GROUPS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "&Remove",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "&Add...",IDC_MEMBER_ADD,113,169,50,14
Index: openafs/src/WINNT/afsusrmgr/lang/es_ES/AfsUsrMgr.rc
diff -c openafs/src/WINNT/afsusrmgr/lang/es_ES/AfsUsrMgr.rc:1.4 openafs/src/WINNT/afsusrmgr/lang/es_ES/AfsUsrMgr.rc:1.4.6.1
*** openafs/src/WINNT/afsusrmgr/lang/es_ES/AfsUsrMgr.rc:1.4	Fri Mar 11 00:34:09 2005
--- openafs/src/WINNT/afsusrmgr/lang/es_ES/AfsUsrMgr.rc	Tue Dec 12 15:41:12 2006
***************
*** 67,73 ****
      RTEXT           "Patrón:",IDC_USERS_PATTERN_PROMPT,152,6,28,8
      LTEXT           "Consultando; espere por favor...",IDC_USERS_TITLE,4,6,
                      142,8
!     CONTROL         "",IDC_USERS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x313,4,21,234,103
      PUSHBUTTON      "&Crear...",M_USER_CREATE,65,126,55,14
      PUSHBUTTON      "&Pertenencia...",M_MEMBERSHIP,124,126,55,14
--- 67,73 ----
      RTEXT           "Patrón:",IDC_USERS_PATTERN_PROMPT,152,6,28,8
      LTEXT           "Consultando; espere por favor...",IDC_USERS_TITLE,4,6,
                      142,8
!     CONTROL         "",IDC_USERS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x313,4,21,234,103
      PUSHBUTTON      "&Crear...",M_USER_CREATE,65,126,55,14
      PUSHBUTTON      "&Pertenencia...",M_MEMBERSHIP,124,126,55,14
***************
*** 83,89 ****
      RTEXT           "Patrón:",IDC_GROUPS_PATTERN_PROMPT,163,6,28,8
      LTEXT           "Consultando; espere por favor...",IDC_GROUPS_TITLE,4,6,
                      142,8
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x313,4,21,234,103
      PUSHBUTTON      "&Crear...",M_GROUP_CREATE,65,126,55,14
      PUSHBUTTON      "&Miembros...",M_MEMBERSHIP,124,126,55,14
--- 83,89 ----
      RTEXT           "Patrón:",IDC_GROUPS_PATTERN_PROMPT,163,6,28,8
      LTEXT           "Consultando; espere por favor...",IDC_GROUPS_TITLE,4,6,
                      142,8
!     CONTROL         "",IDC_GROUPS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x313,4,21,234,103
      PUSHBUTTON      "&Crear...",M_GROUP_CREATE,65,126,55,14
      PUSHBUTTON      "&Miembros...",M_MEMBERSHIP,124,126,55,14
***************
*** 99,105 ****
  BEGIN
      LTEXT           "Consultando; espere por favor...",IDC_ACTION_DESC,2,2,
                      232,8
!     CONTROL         "",IDC_ACTION_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x3,2,14,232,43
  END
  
--- 99,105 ----
  BEGIN
      LTEXT           "Consultando; espere por favor...",IDC_ACTION_DESC,2,2,
                      232,8
!     CONTROL         "",IDC_ACTION_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x3,2,14,232,43
  END
  
***************
*** 291,297 ****
      GROUPBOX        "Grupos",IDC_STATIC,5,31,220,160
      LTEXT           "Estos valores le permiten cambiar la lista de grupos a los que pertenece este usuario, así como la lista de grupos que posee este usuario.",
                      IDC_STATIC,5,5,220,25
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "&Eliminar",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "&Añadir...",IDC_MEMBER_ADD,113,169,50,14
--- 291,297 ----
      GROUPBOX        "Grupos",IDC_STATIC,5,31,220,160
      LTEXT           "Estos valores le permiten cambiar la lista de grupos a los que pertenece este usuario, así como la lista de grupos que posee este usuario.",
                      IDC_STATIC,5,5,220,25
!     CONTROL         "",IDC_GROUPS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "&Eliminar",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "&Añadir...",IDC_MEMBER_ADD,113,169,50,14
***************
*** 313,319 ****
      GROUPBOX        "Pertenencia a grupo",IDC_STATIC,5,31,220,160
      LTEXT           "Estos valores le permiten elegir los miembros de este grupo, así como elegir los grupos que debe poseer este grupo.",
                      IDC_STATIC,5,5,220,18
!     CONTROL         "",IDC_USERS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "&Eliminar",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "&Añadir...",IDC_MEMBER_ADD,113,169,50,14
--- 313,319 ----
      GROUPBOX        "Pertenencia a grupo",IDC_STATIC,5,31,220,160
      LTEXT           "Estos valores le permiten elegir los miembros de este grupo, así como elegir los grupos que debe poseer este grupo.",
                      IDC_STATIC,5,5,220,18
!     CONTROL         "",IDC_USERS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "&Eliminar",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "&Añadir...",IDC_MEMBER_ADD,113,169,50,14
***************
*** 347,353 ****
                      WS_TABSTOP
      RTEXT           "Patrón:",IDC_GROUPS_PATTERN_PROMPT,231,8,29,8
      EDITTEXT        IDC_BROWSE_PATTERN,268,6,41,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x12,7,23,302,84
  END
  
--- 347,353 ----
                      WS_TABSTOP
      RTEXT           "Patrón:",IDC_GROUPS_PATTERN_PROMPT,231,8,29,8
      EDITTEXT        IDC_BROWSE_PATTERN,268,6,41,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x12,7,23,302,84
  END
  
***************
*** 424,430 ****
                      WS_TABSTOP
      RTEXT           "Patrón:",IDC_GROUPS_PATTERN_PROMPT,233,8,28,8
      EDITTEXT        IDC_BROWSE_PATTERN,266,6,41,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x12,7,23,300,84
  END
  
--- 424,430 ----
                      WS_TABSTOP
      RTEXT           "Patrón:",IDC_GROUPS_PATTERN_PROMPT,233,8,28,8
      EDITTEXT        IDC_BROWSE_PATTERN,266,6,41,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x12,7,23,300,84
  END
  
***************
*** 451,457 ****
                      WS_TABSTOP
      RTEXT           "Patrón:",IDC_GROUPS_PATTERN_PROMPT,227,8,28,8
      EDITTEXT        IDC_BROWSE_PATTERN,260,6,41,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x12,7,23,294,84
  END
  
--- 451,457 ----
                      WS_TABSTOP
      RTEXT           "Patrón:",IDC_GROUPS_PATTERN_PROMPT,227,8,28,8
      EDITTEXT        IDC_BROWSE_PATTERN,260,6,41,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x12,7,23,294,84
  END
  
***************
*** 463,469 ****
      GROUPBOX        "Grupos",IDC_STATIC,5,31,220,160
      LTEXT           "Estos valores le permiten cambiar la lista inicial de grupos a los que pertenecerá este usuario, así como los grupos que poseerá este usuario.",
                      IDC_STATIC,5,5,220,26
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "&Eliminar",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "&Añadir...",IDC_MEMBER_ADD,113,169,50,14
--- 463,469 ----
      GROUPBOX        "Grupos",IDC_STATIC,5,31,220,160
      LTEXT           "Estos valores le permiten cambiar la lista inicial de grupos a los que pertenecerá este usuario, así como los grupos que poseerá este usuario.",
                      IDC_STATIC,5,5,220,26
!     CONTROL         "",IDC_GROUPS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "&Eliminar",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "&Añadir...",IDC_MEMBER_ADD,113,169,50,14
***************
*** 545,551 ****
      GROUPBOX        "Pertenencia a grupo",IDC_STATIC,5,31,220,160
      LTEXT           "Estos valores le permiten elegir los miembros iniciales de este grupo, así como elegir los grupos que debe poseer este grupo.",
                      IDC_STATIC,5,5,220,18
!     CONTROL         "",IDC_USERS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "&Eliminar",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "&Añadir...",IDC_MEMBER_ADD,113,169,50,14
--- 545,551 ----
      GROUPBOX        "Pertenencia a grupo",IDC_STATIC,5,31,220,160
      LTEXT           "Estos valores le permiten elegir los miembros iniciales de este grupo, así como elegir los grupos que debe poseer este grupo.",
                      IDC_STATIC,5,5,220,18
!     CONTROL         "",IDC_USERS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "&Eliminar",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "&Añadir...",IDC_MEMBER_ADD,113,169,50,14
***************
*** 724,730 ****
      RTEXT           "Patrón:",IDC_MACHINES_PATTERN_PROMPT,163,6,28,8
      LTEXT           "Consultando; espere por favor...",IDC_MACHINES_TITLE,4,
                      6,142,8
!     CONTROL         "",IDC_MACHINES_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x313,4,21,234,103
      PUSHBUTTON      "&Crear...",M_MACHINE_CREATE,65,126,55,14
      PUSHBUTTON      "&Pertenencia...",M_MEMBERSHIP,124,126,55,14
--- 724,730 ----
      RTEXT           "Patrón:",IDC_MACHINES_PATTERN_PROMPT,163,6,28,8
      LTEXT           "Consultando; espere por favor...",IDC_MACHINES_TITLE,4,
                      6,142,8
!     CONTROL         "",IDC_MACHINES_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x313,4,21,234,103
      PUSHBUTTON      "&Crear...",M_MACHINE_CREATE,65,126,55,14
      PUSHBUTTON      "&Pertenencia...",M_MEMBERSHIP,124,126,55,14
***************
*** 739,745 ****
      GROUPBOX        "Grupos",IDC_STATIC,5,31,220,160
      LTEXT           "Estos valores le permiten seleccionar la lista inicial de grupos a los que pertenecerá esta cuenta, así como los grupos que poseerá.",
                      IDC_STATIC,5,5,220,17,NOT WS_GROUP
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "&Eliminar",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "&Añadir...",IDC_MEMBER_ADD,113,169,50,14
--- 739,745 ----
      GROUPBOX        "Grupos",IDC_STATIC,5,31,220,160
      LTEXT           "Estos valores le permiten seleccionar la lista inicial de grupos a los que pertenecerá esta cuenta, así como los grupos que poseerá.",
                      IDC_STATIC,5,5,220,17,NOT WS_GROUP
!     CONTROL         "",IDC_GROUPS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "&Eliminar",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "&Añadir...",IDC_MEMBER_ADD,113,169,50,14
***************
*** 843,849 ****
      GROUPBOX        "Grupos",IDC_STATIC,5,31,220,160
      LTEXT           "Estos valores le permiten cambiar la lista de grupos a los que pertenece esta cuenta, así como los grupos que posee esta cuenta.",
                      IDC_STATIC,5,5,220,25,NOT WS_GROUP
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "&Eliminar",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "&Añadir...",IDC_MEMBER_ADD,113,169,50,14
--- 843,849 ----
      GROUPBOX        "Grupos",IDC_STATIC,5,31,220,160
      LTEXT           "Estos valores le permiten cambiar la lista de grupos a los que pertenece esta cuenta, así como los grupos que posee esta cuenta.",
                      IDC_STATIC,5,5,220,25,NOT WS_GROUP
!     CONTROL         "",IDC_GROUPS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "&Eliminar",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "&Añadir...",IDC_MEMBER_ADD,113,169,50,14
Index: openafs/src/WINNT/afsusrmgr/lang/ja_JP/AfsUsrMgr.rc
diff -c openafs/src/WINNT/afsusrmgr/lang/ja_JP/AfsUsrMgr.rc:1.4 openafs/src/WINNT/afsusrmgr/lang/ja_JP/AfsUsrMgr.rc:1.4.6.1
*** openafs/src/WINNT/afsusrmgr/lang/ja_JP/AfsUsrMgr.rc:1.4	Fri Mar 11 00:34:12 2005
--- openafs/src/WINNT/afsusrmgr/lang/ja_JP/AfsUsrMgr.rc	Tue Dec 12 15:41:12 2006
***************
*** 67,73 ****
      RTEXT           "ƒpƒ^[ƒ“:",IDC_USERS_PATTERN_PROMPT,138,6,34,8
      LTEXT           "Æ‰ï’†‚Å‚·B‚¨‘Ò‚¿‚­‚¾‚³‚¢...",IDC_USERS_TITLE,4,6,100,
                      8
!     CONTROL         "",IDC_USERS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x313,4,21,234,99
      PUSHBUTTON      "ì¬(&C)...",M_USER_CREATE,17,126,55,14
      PUSHBUTTON      "ƒƒ“ƒo[ƒVƒbƒv(&M)...",M_MEMBERSHIP,76,126,83,14
--- 67,73 ----
      RTEXT           "ƒpƒ^[ƒ“:",IDC_USERS_PATTERN_PROMPT,138,6,34,8
      LTEXT           "Æ‰ï’†‚Å‚·B‚¨‘Ò‚¿‚­‚¾‚³‚¢...",IDC_USERS_TITLE,4,6,100,
                      8
!     CONTROL         "",IDC_USERS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x313,4,21,234,99
      PUSHBUTTON      "ì¬(&C)...",M_USER_CREATE,17,126,55,14
      PUSHBUTTON      "ƒƒ“ƒo[ƒVƒbƒv(&M)...",M_MEMBERSHIP,76,126,83,14
***************
*** 83,89 ****
      RTEXT           "ƒpƒ^[ƒ“:",IDC_GROUPS_PATTERN_PROMPT,155,6,34,8
      LTEXT           "Æ‰ï’†‚Å‚·B‚¨‘Ò‚¿‚­‚¾‚³‚¢...",IDC_GROUPS_TITLE,4,6,142,
                      8
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x313,4,21,234,96
      PUSHBUTTON      "ì¬(&C)...",M_GROUP_CREATE,41,125,55,14
      PUSHBUTTON      "ƒƒ“ƒo[(&M)...",M_MEMBERSHIP,100,125,59,14
--- 83,89 ----
      RTEXT           "ƒpƒ^[ƒ“:",IDC_GROUPS_PATTERN_PROMPT,155,6,34,8
      LTEXT           "Æ‰ï’†‚Å‚·B‚¨‘Ò‚¿‚­‚¾‚³‚¢...",IDC_GROUPS_TITLE,4,6,142,
                      8
!     CONTROL         "",IDC_GROUPS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x313,4,21,234,96
      PUSHBUTTON      "ì¬(&C)...",M_GROUP_CREATE,41,125,55,14
      PUSHBUTTON      "ƒƒ“ƒo[(&M)...",M_MEMBERSHIP,100,125,59,14
***************
*** 99,105 ****
  BEGIN
      LTEXT           "Æ‰ï’†‚Å‚·B‚¨‘Ò‚¿‚­‚¾‚³‚¢...",IDC_ACTION_DESC,2,2,232,
                      8
!     CONTROL         "",IDC_ACTION_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x3,2,14,232,43
  END
  
--- 99,105 ----
  BEGIN
      LTEXT           "Æ‰ï’†‚Å‚·B‚¨‘Ò‚¿‚­‚¾‚³‚¢...",IDC_ACTION_DESC,2,2,232,
                      8
!     CONTROL         "",IDC_ACTION_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x3,2,14,232,43
  END
  
***************
*** 285,291 ****
      GROUPBOX        "ƒOƒ‹[ƒv",IDC_STATIC,5,31,220,160
      LTEXT           "ˆÈ‰º‚ÌÝ’è‚ðŽg—p‚µ‚ÄA‚±‚Ìƒ†[ƒU[‚ª‘®‚µ‚Ä‚¢‚éƒOƒ‹[ƒv‚ÌƒŠƒXƒg‚ÆA‚±‚Ìƒ†[ƒU[‚ªŠ—L‚µ‚Ä‚¢‚éƒOƒ‹[ƒv‚ÌƒŠƒXƒg‚ð•ÏX‚·‚é‚±‚Æ‚ª‚Å‚«‚Ü‚·B",
                      IDC_STATIC,5,3,220,22
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "íœ(&R)",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "’Ç‰Á(&A)...",IDC_MEMBER_ADD,113,169,50,14
--- 285,291 ----
      GROUPBOX        "ƒOƒ‹[ƒv",IDC_STATIC,5,31,220,160
      LTEXT           "ˆÈ‰º‚ÌÝ’è‚ðŽg—p‚µ‚ÄA‚±‚Ìƒ†[ƒU[‚ª‘®‚µ‚Ä‚¢‚éƒOƒ‹[ƒv‚ÌƒŠƒXƒg‚ÆA‚±‚Ìƒ†[ƒU[‚ªŠ—L‚µ‚Ä‚¢‚éƒOƒ‹[ƒv‚ÌƒŠƒXƒg‚ð•ÏX‚·‚é‚±‚Æ‚ª‚Å‚«‚Ü‚·B",
                      IDC_STATIC,5,3,220,22
!     CONTROL         "",IDC_GROUPS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "íœ(&R)",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "’Ç‰Á(&A)...",IDC_MEMBER_ADD,113,169,50,14
***************
*** 307,313 ****
      GROUPBOX        "ƒOƒ‹[ƒvEƒƒ“ƒo[ƒVƒbƒv",IDC_STATIC,5,31,220,160
      LTEXT           "ˆÈ‰º‚ÌÝ’è‚ðŽg—p‚µ‚ÄA‚±‚ÌƒOƒ‹[ƒv‚Ìƒƒ“ƒo[‚ÆA‚±‚ÌƒOƒ‹[ƒv‚ªŠ—L‚·‚éƒOƒ‹[ƒv‚ð‘I‘ð‚·‚é‚±‚Æ‚ª‚Å‚«‚Ü‚·B",
                      IDC_STATIC,5,5,220,18
!     CONTROL         "",IDC_USERS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,85,205,82
      PUSHBUTTON      "íœ(&R)",IDC_MEMBER_REMOVE,167,172,50,14
      PUSHBUTTON      "’Ç‰Á(&A)...",IDC_MEMBER_ADD,113,172,50,14
--- 307,313 ----
      GROUPBOX        "ƒOƒ‹[ƒvEƒƒ“ƒo[ƒVƒbƒv",IDC_STATIC,5,31,220,160
      LTEXT           "ˆÈ‰º‚ÌÝ’è‚ðŽg—p‚µ‚ÄA‚±‚ÌƒOƒ‹[ƒv‚Ìƒƒ“ƒo[‚ÆA‚±‚ÌƒOƒ‹[ƒv‚ªŠ—L‚·‚éƒOƒ‹[ƒv‚ð‘I‘ð‚·‚é‚±‚Æ‚ª‚Å‚«‚Ü‚·B",
                      IDC_STATIC,5,5,220,18
!     CONTROL         "",IDC_USERS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,85,205,82
      PUSHBUTTON      "íœ(&R)",IDC_MEMBER_REMOVE,167,172,50,14
      PUSHBUTTON      "’Ç‰Á(&A)...",IDC_MEMBER_ADD,113,172,50,14
***************
*** 339,345 ****
                      WS_TABSTOP
      RTEXT           "ƒpƒ^[ƒ“:",IDC_GROUPS_PATTERN_PROMPT,198,8,34,8
      EDITTEXT        IDC_BROWSE_PATTERN,235,6,41,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x12,7,23,267,84
  END
  
--- 339,345 ----
                      WS_TABSTOP
      RTEXT           "ƒpƒ^[ƒ“:",IDC_GROUPS_PATTERN_PROMPT,198,8,34,8
      EDITTEXT        IDC_BROWSE_PATTERN,235,6,41,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x12,7,23,267,84
  END
  
***************
*** 414,420 ****
                      WS_TABSTOP
      RTEXT           "ƒpƒ^[ƒ“:",IDC_GROUPS_PATTERN_PROMPT,198,8,28,8
      EDITTEXT        IDC_BROWSE_PATTERN,233,6,39,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x12,7,23,267,84
  END
  
--- 414,420 ----
                      WS_TABSTOP
      RTEXT           "ƒpƒ^[ƒ“:",IDC_GROUPS_PATTERN_PROMPT,198,8,28,8
      EDITTEXT        IDC_BROWSE_PATTERN,233,6,39,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x12,7,23,267,84
  END
  
***************
*** 440,446 ****
                      WS_TABSTOP
      RTEXT           "ƒpƒ^[ƒ“:",IDC_GROUPS_PATTERN_PROMPT,199,8,28,8
      EDITTEXT        IDC_BROWSE_PATTERN,235,6,33,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x12,7,23,267,84
  END
  
--- 440,446 ----
                      WS_TABSTOP
      RTEXT           "ƒpƒ^[ƒ“:",IDC_GROUPS_PATTERN_PROMPT,199,8,28,8
      EDITTEXT        IDC_BROWSE_PATTERN,235,6,33,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x12,7,23,267,84
  END
  
***************
*** 452,458 ****
      GROUPBOX        "ƒOƒ‹[ƒv",IDC_STATIC,5,31,220,160
      LTEXT           "ˆÈ‰º‚ÌÝ’è‚ðŽg—p‚µ‚ÄA‚±‚Ìƒ†[ƒU[‚ª‘®‚·‚é‰ŠúƒOƒ‹[ƒv‚ÌƒŠƒXƒg‚ÆA‚±‚Ìƒ†[ƒU[‚ªŠ—L‚·‚éƒOƒ‹[ƒv‚ð•ÏX‚·‚é‚±‚Æ‚ª‚Å‚«‚Ü‚·B",
                      IDC_STATIC,5,3,220,22
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "íœ(&R)",IDC_MEMBER_REMOVE,167,171,50,14
      PUSHBUTTON      "’Ç‰Á(&A)...",IDC_MEMBER_ADD,113,171,50,14
--- 452,458 ----
      GROUPBOX        "ƒOƒ‹[ƒv",IDC_STATIC,5,31,220,160
      LTEXT           "ˆÈ‰º‚ÌÝ’è‚ðŽg—p‚µ‚ÄA‚±‚Ìƒ†[ƒU[‚ª‘®‚·‚é‰ŠúƒOƒ‹[ƒv‚ÌƒŠƒXƒg‚ÆA‚±‚Ìƒ†[ƒU[‚ªŠ—L‚·‚éƒOƒ‹[ƒv‚ð•ÏX‚·‚é‚±‚Æ‚ª‚Å‚«‚Ü‚·B",
                      IDC_STATIC,5,3,220,22
!     CONTROL         "",IDC_GROUPS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "íœ(&R)",IDC_MEMBER_REMOVE,167,171,50,14
      PUSHBUTTON      "’Ç‰Á(&A)...",IDC_MEMBER_ADD,113,171,50,14
***************
*** 531,537 ****
      GROUPBOX        "ƒOƒ‹[ƒvEƒƒ“ƒo[ƒVƒbƒv",IDC_STATIC,5,31,220,160
      LTEXT           "ˆÈ‰º‚ÌÝ’è‚ðŽg—p‚µ‚ÄA‚±‚ÌƒOƒ‹[ƒv‚Ì‰Šúƒƒ“ƒo[‚ÆA‚±‚ÌƒOƒ‹[ƒv‚ªŠ—L‚·‚éƒOƒ‹[ƒv‚ð‘I‘ð‚·‚é‚±‚Æ‚ª‚Å‚«‚Ü‚·B",
                      IDC_STATIC,5,5,220,18
!     CONTROL         "",IDC_USERS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "íœ(&R)",IDC_MEMBER_REMOVE,167,170,50,14
      PUSHBUTTON      "’Ç‰Á(&A)...",IDC_MEMBER_ADD,113,170,50,14
--- 531,537 ----
      GROUPBOX        "ƒOƒ‹[ƒvEƒƒ“ƒo[ƒVƒbƒv",IDC_STATIC,5,31,220,160
      LTEXT           "ˆÈ‰º‚ÌÝ’è‚ðŽg—p‚µ‚ÄA‚±‚ÌƒOƒ‹[ƒv‚Ì‰Šúƒƒ“ƒo[‚ÆA‚±‚ÌƒOƒ‹[ƒv‚ªŠ—L‚·‚éƒOƒ‹[ƒv‚ð‘I‘ð‚·‚é‚±‚Æ‚ª‚Å‚«‚Ü‚·B",
                      IDC_STATIC,5,5,220,18
!     CONTROL         "",IDC_USERS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "íœ(&R)",IDC_MEMBER_REMOVE,167,170,50,14
      PUSHBUTTON      "’Ç‰Á(&A)...",IDC_MEMBER_ADD,113,170,50,14
***************
*** 702,708 ****
      RTEXT           "ƒpƒ^[ƒ“:",IDC_MACHINES_PATTERN_PROMPT,155,6,34,8
      LTEXT           "Æ‰ï’†‚Å‚·B‚¨‘Ò‚¿‚­‚¾‚³‚¢...",IDC_MACHINES_TITLE,4,6,
                      142,8
!     CONTROL         "",IDC_MACHINES_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x313,4,21,234,98
      PUSHBUTTON      "ì¬(&C)...",M_MACHINE_CREATE,15,126,55,14
      PUSHBUTTON      "ƒƒ“ƒo[ƒVƒbƒv(&M)...",M_MEMBERSHIP,74,126,83,14
--- 702,708 ----
      RTEXT           "ƒpƒ^[ƒ“:",IDC_MACHINES_PATTERN_PROMPT,155,6,34,8
      LTEXT           "Æ‰ï’†‚Å‚·B‚¨‘Ò‚¿‚­‚¾‚³‚¢...",IDC_MACHINES_TITLE,4,6,
                      142,8
!     CONTROL         "",IDC_MACHINES_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x313,4,21,234,98
      PUSHBUTTON      "ì¬(&C)...",M_MACHINE_CREATE,15,126,55,14
      PUSHBUTTON      "ƒƒ“ƒo[ƒVƒbƒv(&M)...",M_MEMBERSHIP,74,126,83,14
***************
*** 717,723 ****
      GROUPBOX        "ƒOƒ‹[ƒv",IDC_STATIC,5,31,220,160
      LTEXT           "ˆÈ‰º‚ÌÝ’è‚ðŽg—p‚µ‚ÄA‚±‚ÌƒAƒJƒEƒ“ƒg‚ª‘®‚·‚é‰ŠúƒOƒ‹[ƒv‚ÌƒŠƒXƒg‚ÆA‚±‚ÌƒAƒJƒEƒ“ƒg‚ªŠ—L‚·‚éƒOƒ‹[ƒv‚ð‘I‘ð‚·‚é‚±‚Æ‚ª‚Å‚«‚Ü‚·B",
                      IDC_STATIC,5,3,220,25,NOT WS_GROUP
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "íœ(&R)",IDC_MEMBER_REMOVE,167,170,50,14
      PUSHBUTTON      "’Ç‰Á(&A)...",IDC_MEMBER_ADD,113,170,50,14
--- 717,723 ----
      GROUPBOX        "ƒOƒ‹[ƒv",IDC_STATIC,5,31,220,160
      LTEXT           "ˆÈ‰º‚ÌÝ’è‚ðŽg—p‚µ‚ÄA‚±‚ÌƒAƒJƒEƒ“ƒg‚ª‘®‚·‚é‰ŠúƒOƒ‹[ƒv‚ÌƒŠƒXƒg‚ÆA‚±‚ÌƒAƒJƒEƒ“ƒg‚ªŠ—L‚·‚éƒOƒ‹[ƒv‚ð‘I‘ð‚·‚é‚±‚Æ‚ª‚Å‚«‚Ü‚·B",
                      IDC_STATIC,5,3,220,25,NOT WS_GROUP
!     CONTROL         "",IDC_GROUPS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "íœ(&R)",IDC_MEMBER_REMOVE,167,170,50,14
      PUSHBUTTON      "’Ç‰Á(&A)...",IDC_MEMBER_ADD,113,170,50,14
***************
*** 822,828 ****
      GROUPBOX        "ƒOƒ‹[ƒv",IDC_STATIC,5,31,220,160
      LTEXT           "ˆÈ‰º‚ÌÝ’è‚ðŽg—p‚µ‚ÄA‚±‚ÌƒAƒJƒEƒ“ƒg‚ª‘®‚µ‚Ä‚¢‚éƒOƒ‹[ƒv‚ÌƒŠƒXƒg‚ÆA‚±‚ÌƒAƒJƒEƒ“ƒg‚ªŠ—L‚µ‚Ä‚¢‚éƒOƒ‹[ƒv‚ð•ÏX‚·‚é‚±‚Æ‚ª‚Å‚«‚Ü‚·B",
                      IDC_STATIC,5,4,220,21,NOT WS_GROUP
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "íœ(&R)",IDC_MEMBER_REMOVE,167,171,50,14
      PUSHBUTTON      "’Ç‰Á(&A)...",IDC_MEMBER_ADD,113,171,50,14
--- 822,828 ----
      GROUPBOX        "ƒOƒ‹[ƒv",IDC_STATIC,5,31,220,160
      LTEXT           "ˆÈ‰º‚ÌÝ’è‚ðŽg—p‚µ‚ÄA‚±‚ÌƒAƒJƒEƒ“ƒg‚ª‘®‚µ‚Ä‚¢‚éƒOƒ‹[ƒv‚ÌƒŠƒXƒg‚ÆA‚±‚ÌƒAƒJƒEƒ“ƒg‚ªŠ—L‚µ‚Ä‚¢‚éƒOƒ‹[ƒv‚ð•ÏX‚·‚é‚±‚Æ‚ª‚Å‚«‚Ü‚·B",
                      IDC_STATIC,5,4,220,21,NOT WS_GROUP
!     CONTROL         "",IDC_GROUPS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "íœ(&R)",IDC_MEMBER_REMOVE,167,171,50,14
      PUSHBUTTON      "’Ç‰Á(&A)...",IDC_MEMBER_ADD,113,171,50,14
Index: openafs/src/WINNT/afsusrmgr/lang/ko_KR/AfsUsrMgr.rc
diff -c openafs/src/WINNT/afsusrmgr/lang/ko_KR/AfsUsrMgr.rc:1.4 openafs/src/WINNT/afsusrmgr/lang/ko_KR/AfsUsrMgr.rc:1.4.6.1
*** openafs/src/WINNT/afsusrmgr/lang/ko_KR/AfsUsrMgr.rc:1.4	Fri Mar 11 00:34:15 2005
--- openafs/src/WINNT/afsusrmgr/lang/ko_KR/AfsUsrMgr.rc	Tue Dec 12 15:41:13 2006
***************
*** 67,73 ****
      RTEXT           "ÆÐÅÏ:",IDC_USERS_PATTERN_PROMPT,152,6,28,8
      LTEXT           "Á¶È¸ ÁßÀÔ´Ï´Ù. Àá½Ã ±â´Ù¸®½Ê½Ã¿À...",IDC_USERS_TITLE,4,
                      6,142,8
!     CONTROL         "",IDC_USERS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x313,4,21,234,103
      PUSHBUTTON      "ÀÛ¼º(&C)...",M_USER_CREATE,65,126,55,14
      PUSHBUTTON      "¸â¹ö½±(&M)...",M_MEMBERSHIP,124,126,55,14
--- 67,73 ----
      RTEXT           "ÆÐÅÏ:",IDC_USERS_PATTERN_PROMPT,152,6,28,8
      LTEXT           "Á¶È¸ ÁßÀÔ´Ï´Ù. Àá½Ã ±â´Ù¸®½Ê½Ã¿À...",IDC_USERS_TITLE,4,
                      6,142,8
!     CONTROL         "",IDC_USERS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x313,4,21,234,103
      PUSHBUTTON      "ÀÛ¼º(&C)...",M_USER_CREATE,65,126,55,14
      PUSHBUTTON      "¸â¹ö½±(&M)...",M_MEMBERSHIP,124,126,55,14
***************
*** 83,89 ****
      RTEXT           "ÆÐÅÏ:",IDC_GROUPS_PATTERN_PROMPT,163,6,28,8
      LTEXT           "Á¶È¸ ÁßÀÔ´Ï´Ù. Àá½Ã ±â´Ù¸®½Ê½Ã¿À...",IDC_GROUPS_TITLE,4,
                      6,142,8
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x313,4,21,234,103
      PUSHBUTTON      "ÀÛ¼º(&C)...",M_GROUP_CREATE,65,126,55,14
      PUSHBUTTON      "±¸¼º¿ø(&M)...",M_MEMBERSHIP,124,126,55,14
--- 83,89 ----
      RTEXT           "ÆÐÅÏ:",IDC_GROUPS_PATTERN_PROMPT,163,6,28,8
      LTEXT           "Á¶È¸ ÁßÀÔ´Ï´Ù. Àá½Ã ±â´Ù¸®½Ê½Ã¿À...",IDC_GROUPS_TITLE,4,
                      6,142,8
!     CONTROL         "",IDC_GROUPS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x313,4,21,234,103
      PUSHBUTTON      "ÀÛ¼º(&C)...",M_GROUP_CREATE,65,126,55,14
      PUSHBUTTON      "±¸¼º¿ø(&M)...",M_MEMBERSHIP,124,126,55,14
***************
*** 99,105 ****
  BEGIN
      LTEXT           "Á¶È¸ ÁßÀÔ´Ï´Ù. Àá½Ã ±â´Ù¸®½Ê½Ã¿À...",IDC_ACTION_DESC,2,
                      2,232,8
!     CONTROL         "",IDC_ACTION_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x3,2,14,232,43
  END
  
--- 99,105 ----
  BEGIN
      LTEXT           "Á¶È¸ ÁßÀÔ´Ï´Ù. Àá½Ã ±â´Ù¸®½Ê½Ã¿À...",IDC_ACTION_DESC,2,
                      2,232,8
!     CONTROL         "",IDC_ACTION_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x3,2,14,232,43
  END
  
***************
*** 283,289 ****
      GROUPBOX        "±×·ì",IDC_STATIC,5,31,220,160
      LTEXT           "ÀÌ ¼³Á¤À» »ç¿ëÇÏ¸é ÀÌ »ç¿ëÀÚ°¡ ¼ÒÀ¯ÇÑ ±×·ì ¸ñ·Ï »Ó¸¸ ¾Æ´Ï¶ó ÀÌ »ç¿ëÀÚ°¡ ¼ÓÇÑ ±×·ì ¸ñ·Ïµµ º¯°æÇÒ ¼ö ÀÖ½À´Ï´Ù.",
                      IDC_STATIC,5,5,220,17
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "Á¦°Å(&R)",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "Ãß°¡(&A)...",IDC_MEMBER_ADD,113,169,50,14
--- 283,289 ----
      GROUPBOX        "±×·ì",IDC_STATIC,5,31,220,160
      LTEXT           "ÀÌ ¼³Á¤À» »ç¿ëÇÏ¸é ÀÌ »ç¿ëÀÚ°¡ ¼ÒÀ¯ÇÑ ±×·ì ¸ñ·Ï »Ó¸¸ ¾Æ´Ï¶ó ÀÌ »ç¿ëÀÚ°¡ ¼ÓÇÑ ±×·ì ¸ñ·Ïµµ º¯°æÇÒ ¼ö ÀÖ½À´Ï´Ù.",
                      IDC_STATIC,5,5,220,17
!     CONTROL         "",IDC_GROUPS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "Á¦°Å(&R)",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "Ãß°¡(&A)...",IDC_MEMBER_ADD,113,169,50,14
***************
*** 303,309 ****
      GROUPBOX        "±×·ì ¸â¹ö½±",IDC_STATIC,5,31,220,160
      LTEXT           "ÀÌ ¼³Á¤À» »ç¿ëÇÏ¸é ÀÌ ±×·ìÀÌ ¼ÒÀ¯ÇØ¾ß ÇÏ´Â ±×·ìÀ» ¼±ÅÃÇÒ ¼ö ÀÖÀ» »Ó¸¸ ¾Æ´Ï¶ó ÀÌ ±×·ìÀÇ ±¸¼º¿øÀ» ¼±ÅÃÇÒ ¼ö ÀÖ½À´Ï´Ù.",
                      IDC_STATIC,5,5,220,18
!     CONTROL         "",IDC_USERS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "Á¦°Å(&R)",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "Ãß°¡(&A)...",IDC_MEMBER_ADD,113,169,50,14
--- 303,309 ----
      GROUPBOX        "±×·ì ¸â¹ö½±",IDC_STATIC,5,31,220,160
      LTEXT           "ÀÌ ¼³Á¤À» »ç¿ëÇÏ¸é ÀÌ ±×·ìÀÌ ¼ÒÀ¯ÇØ¾ß ÇÏ´Â ±×·ìÀ» ¼±ÅÃÇÒ ¼ö ÀÖÀ» »Ó¸¸ ¾Æ´Ï¶ó ÀÌ ±×·ìÀÇ ±¸¼º¿øÀ» ¼±ÅÃÇÒ ¼ö ÀÖ½À´Ï´Ù.",
                      IDC_STATIC,5,5,220,18
!     CONTROL         "",IDC_USERS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "Á¦°Å(&R)",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "Ãß°¡(&A)...",IDC_MEMBER_ADD,113,169,50,14
***************
*** 334,340 ****
                      WS_TABSTOP
      RTEXT           "ÆÐÅÏ:",IDC_GROUPS_PATTERN_PROMPT,198,8,29,8
      EDITTEXT        IDC_BROWSE_PATTERN,233,6,41,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x12,7,23,267,84
  END
  
--- 334,340 ----
                      WS_TABSTOP
      RTEXT           "ÆÐÅÏ:",IDC_GROUPS_PATTERN_PROMPT,198,8,29,8
      EDITTEXT        IDC_BROWSE_PATTERN,233,6,41,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x12,7,23,267,84
  END
  
***************
*** 409,415 ****
                      WS_TABSTOP
      RTEXT           "ÆÐÅÏ:",IDC_GROUPS_PATTERN_PROMPT,199,8,28,8
      EDITTEXT        IDC_BROWSE_PATTERN,233,6,41,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x12,7,23,267,84
  END
  
--- 409,415 ----
                      WS_TABSTOP
      RTEXT           "ÆÐÅÏ:",IDC_GROUPS_PATTERN_PROMPT,199,8,28,8
      EDITTEXT        IDC_BROWSE_PATTERN,233,6,41,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x12,7,23,267,84
  END
  
***************
*** 435,441 ****
                      WS_TABSTOP
      RTEXT           "ÆÐÅÏ:",IDC_GROUPS_PATTERN_PROMPT,199,8,28,8
      EDITTEXT        IDC_BROWSE_PATTERN,233,6,41,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x12,7,23,267,84
  END
  
--- 435,441 ----
                      WS_TABSTOP
      RTEXT           "ÆÐÅÏ:",IDC_GROUPS_PATTERN_PROMPT,199,8,28,8
      EDITTEXT        IDC_BROWSE_PATTERN,233,6,41,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x12,7,23,267,84
  END
  
***************
*** 447,453 ****
      GROUPBOX        "±×·ì",IDC_STATIC,5,31,220,160
      LTEXT           "ÀÌ ¼³Á¤À» »ç¿ëÇÏ¸é ÀÌ »ç¿ëÀÚ°¡ ¼ÒÀ¯ÇÒ ±×·ì»Ó¸¸ ¾Æ´Ï¶ó ÀÌ »ç¿ëÀÚ°¡ ¼ÓÇÒ ÃÊ±â ±×·ì ¸ñ·ÏÀ» º¯°æÇÒ ¼ö ÀÖ½À´Ï´Ù.",
                      IDC_STATIC,5,5,220,17
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "Á¦°Å(&R)",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "Ãß°¡(&A)...",IDC_MEMBER_ADD,113,169,50,14
--- 447,453 ----
      GROUPBOX        "±×·ì",IDC_STATIC,5,31,220,160
      LTEXT           "ÀÌ ¼³Á¤À» »ç¿ëÇÏ¸é ÀÌ »ç¿ëÀÚ°¡ ¼ÒÀ¯ÇÒ ±×·ì»Ó¸¸ ¾Æ´Ï¶ó ÀÌ »ç¿ëÀÚ°¡ ¼ÓÇÒ ÃÊ±â ±×·ì ¸ñ·ÏÀ» º¯°æÇÒ ¼ö ÀÖ½À´Ï´Ù.",
                      IDC_STATIC,5,5,220,17
!     CONTROL         "",IDC_GROUPS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "Á¦°Å(&R)",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "Ãß°¡(&A)...",IDC_MEMBER_ADD,113,169,50,14
***************
*** 524,530 ****
      GROUPBOX        "±×·ì ¸â¹ö½±",IDC_STATIC,5,31,220,160
      LTEXT           "ÀÌ ¼³Á¤À» »ç¿ëÇÏ¸é ÀÌ ±×·ìÀÌ ¼ÒÀ¯ÇØ¾ß ÇÏ´Â ±×·ìÀ» ¼±ÅÃÇÒ ¼ö ÀÖÀ» »Ó¸¸ ¾Æ´Ï¶ó ÀÌ ±×·ìÀÇ ÃÊ±â ±¸¼º¿øÀ» ¼±ÅÃÇÒ ¼ö ÀÖ½À´Ï´Ù.",
                      IDC_STATIC,5,5,220,18
!     CONTROL         "",IDC_USERS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "Á¦°Å(&R)",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "Ãß°¡(&A)...",IDC_MEMBER_ADD,113,169,50,14
--- 524,530 ----
      GROUPBOX        "±×·ì ¸â¹ö½±",IDC_STATIC,5,31,220,160
      LTEXT           "ÀÌ ¼³Á¤À» »ç¿ëÇÏ¸é ÀÌ ±×·ìÀÌ ¼ÒÀ¯ÇØ¾ß ÇÏ´Â ±×·ìÀ» ¼±ÅÃÇÒ ¼ö ÀÖÀ» »Ó¸¸ ¾Æ´Ï¶ó ÀÌ ±×·ìÀÇ ÃÊ±â ±¸¼º¿øÀ» ¼±ÅÃÇÒ ¼ö ÀÖ½À´Ï´Ù.",
                      IDC_STATIC,5,5,220,18
!     CONTROL         "",IDC_USERS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "Á¦°Å(&R)",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "Ãß°¡(&A)...",IDC_MEMBER_ADD,113,169,50,14
***************
*** 691,697 ****
      RTEXT           "ÆÐÅÏ:",IDC_MACHINES_PATTERN_PROMPT,163,6,28,8
      LTEXT           "Á¶È¸ ÁßÀÔ´Ï´Ù. Àá½Ã ±â´Ù¸®½Ê½Ã¿À...",IDC_MACHINES_TITLE,
                      4,6,142,8
!     CONTROL         "",IDC_MACHINES_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x313,4,21,234,103
      PUSHBUTTON      "ÀÛ¼º(&C)...",M_MACHINE_CREATE,65,126,55,14
      PUSHBUTTON      "¸â¹ö½±(&M)...",M_MEMBERSHIP,124,126,55,14
--- 691,697 ----
      RTEXT           "ÆÐÅÏ:",IDC_MACHINES_PATTERN_PROMPT,163,6,28,8
      LTEXT           "Á¶È¸ ÁßÀÔ´Ï´Ù. Àá½Ã ±â´Ù¸®½Ê½Ã¿À...",IDC_MACHINES_TITLE,
                      4,6,142,8
!     CONTROL         "",IDC_MACHINES_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x313,4,21,234,103
      PUSHBUTTON      "ÀÛ¼º(&C)...",M_MACHINE_CREATE,65,126,55,14
      PUSHBUTTON      "¸â¹ö½±(&M)...",M_MEMBERSHIP,124,126,55,14
***************
*** 706,712 ****
      GROUPBOX        "±×·ì",IDC_STATIC,5,31,220,160
      LTEXT           "ÀÌ ¼³Á¤À» »ç¿ëÇÏ¸é ÇØ´ç °èÁ¤ÀÌ ¼ÒÀ¯ÇÒ ±×·ì»Ó¸¸ ¾Æ´Ï¶ó ¼ÓÇÒ ÃÊ±â ±×·ì ¸ñ·Ïµµ ¼±ÅÃÇÒ ¼ö ÀÖ½À´Ï´Ù.",
                      IDC_STATIC,5,5,220,17,NOT WS_GROUP
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "Á¦°Å(&R)",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "Ãß°¡(&A)...",IDC_MEMBER_ADD,113,169,50,14
--- 706,712 ----
      GROUPBOX        "±×·ì",IDC_STATIC,5,31,220,160
      LTEXT           "ÀÌ ¼³Á¤À» »ç¿ëÇÏ¸é ÇØ´ç °èÁ¤ÀÌ ¼ÒÀ¯ÇÒ ±×·ì»Ó¸¸ ¾Æ´Ï¶ó ¼ÓÇÒ ÃÊ±â ±×·ì ¸ñ·Ïµµ ¼±ÅÃÇÒ ¼ö ÀÖ½À´Ï´Ù.",
                      IDC_STATIC,5,5,220,17,NOT WS_GROUP
!     CONTROL         "",IDC_GROUPS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "Á¦°Å(&R)",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "Ãß°¡(&A)...",IDC_MEMBER_ADD,113,169,50,14
***************
*** 806,812 ****
      GROUPBOX        "±×·ì",IDC_STATIC,5,31,220,160
      LTEXT           "ÀÌ ¼³Á¤À» »ç¿ëÇÏ¸é ÇØ´ç °èÁ¤ÀÌ ¼ÒÀ¯ÇÏ´Â ±×·ì»Ó¸¸ ¾Æ´Ï¶ó ¼ÓÇÑ ±×·ì ¸ñ·ÏÀ» º¯°æÇÒ ¼ö ÀÖ½À´Ï´Ù.",
                      IDC_STATIC,5,5,220,17,NOT WS_GROUP
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "Á¦°Å(&R)",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "Ãß°¡(&A)...",IDC_MEMBER_ADD,113,169,50,14
--- 806,812 ----
      GROUPBOX        "±×·ì",IDC_STATIC,5,31,220,160
      LTEXT           "ÀÌ ¼³Á¤À» »ç¿ëÇÏ¸é ÇØ´ç °èÁ¤ÀÌ ¼ÒÀ¯ÇÏ´Â ±×·ì»Ó¸¸ ¾Æ´Ï¶ó ¼ÓÇÑ ±×·ì ¸ñ·ÏÀ» º¯°æÇÒ ¼ö ÀÖ½À´Ï´Ù.",
                      IDC_STATIC,5,5,220,17,NOT WS_GROUP
!     CONTROL         "",IDC_GROUPS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "Á¦°Å(&R)",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "Ãß°¡(&A)...",IDC_MEMBER_ADD,113,169,50,14
Index: openafs/src/WINNT/afsusrmgr/lang/pt_BR/AfsUsrMgr.rc
diff -c openafs/src/WINNT/afsusrmgr/lang/pt_BR/AfsUsrMgr.rc:1.4 openafs/src/WINNT/afsusrmgr/lang/pt_BR/AfsUsrMgr.rc:1.4.6.1
*** openafs/src/WINNT/afsusrmgr/lang/pt_BR/AfsUsrMgr.rc:1.4	Fri Mar 11 00:34:18 2005
--- openafs/src/WINNT/afsusrmgr/lang/pt_BR/AfsUsrMgr.rc	Tue Dec 12 15:41:13 2006
***************
*** 66,72 ****
      EDITTEXT        IDC_USERS_PATTERN,185,4,41,13,ES_AUTOHSCROLL
      RTEXT           "Padrão:",IDC_USERS_PATTERN_PROMPT,152,6,28,8
      LTEXT           "Consultando: aguarde...",IDC_USERS_TITLE,4,6,142,8
!     CONTROL         "",IDC_USERS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x313,4,21,234,103
      PUSHBUTTON      "&Criar...",M_USER_CREATE,65,126,55,14
      PUSHBUTTON      "&Membros...",M_MEMBERSHIP,124,126,55,14
--- 66,72 ----
      EDITTEXT        IDC_USERS_PATTERN,185,4,41,13,ES_AUTOHSCROLL
      RTEXT           "Padrão:",IDC_USERS_PATTERN_PROMPT,152,6,28,8
      LTEXT           "Consultando: aguarde...",IDC_USERS_TITLE,4,6,142,8
!     CONTROL         "",IDC_USERS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x313,4,21,234,103
      PUSHBUTTON      "&Criar...",M_USER_CREATE,65,126,55,14
      PUSHBUTTON      "&Membros...",M_MEMBERSHIP,124,126,55,14
***************
*** 81,87 ****
      EDITTEXT        IDC_GROUPS_PATTERN,197,4,41,13,ES_AUTOHSCROLL
      RTEXT           "Padrão:",IDC_GROUPS_PATTERN_PROMPT,163,6,28,8
      LTEXT           "Consultando: aguarde...",IDC_GROUPS_TITLE,4,6,142,8
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x313,4,21,234,103
      PUSHBUTTON      "&Criar...",M_GROUP_CREATE,65,126,55,14
      PUSHBUTTON      "&Membros...",M_MEMBERSHIP,124,126,55,14
--- 81,87 ----
      EDITTEXT        IDC_GROUPS_PATTERN,197,4,41,13,ES_AUTOHSCROLL
      RTEXT           "Padrão:",IDC_GROUPS_PATTERN_PROMPT,163,6,28,8
      LTEXT           "Consultando: aguarde...",IDC_GROUPS_TITLE,4,6,142,8
!     CONTROL         "",IDC_GROUPS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x313,4,21,234,103
      PUSHBUTTON      "&Criar...",M_GROUP_CREATE,65,126,55,14
      PUSHBUTTON      "&Membros...",M_MEMBERSHIP,124,126,55,14
***************
*** 96,102 ****
  FONT 9, "MS Shell Dlg", 0, 0, 0x1
  BEGIN
      LTEXT           "Consultando: aguarde...",IDC_ACTION_DESC,2,2,232,8
!     CONTROL         "",IDC_ACTION_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x3,2,14,232,43
  END
  
--- 96,102 ----
  FONT 9, "MS Shell Dlg", 0, 0, 0x1
  BEGIN
      LTEXT           "Consultando: aguarde...",IDC_ACTION_DESC,2,2,232,8
!     CONTROL         "",IDC_ACTION_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x3,2,14,232,43
  END
  
***************
*** 285,291 ****
      GROUPBOX        "Grupos",IDC_STATIC,5,31,220,160
      LTEXT           "Estas definições permitem alterar a lista dos grupos aos quais este usuário pertence, bem como a lista de grupos dos quais o usuário é proprietário.",
                      IDC_STATIC,5,5,220,26
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "&Remover",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "&Incluir...",IDC_MEMBER_ADD,113,169,50,14
--- 285,291 ----
      GROUPBOX        "Grupos",IDC_STATIC,5,31,220,160
      LTEXT           "Estas definições permitem alterar a lista dos grupos aos quais este usuário pertence, bem como a lista de grupos dos quais o usuário é proprietário.",
                      IDC_STATIC,5,5,220,26
!     CONTROL         "",IDC_GROUPS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "&Remover",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "&Incluir...",IDC_MEMBER_ADD,113,169,50,14
***************
*** 306,312 ****
      GROUPBOX        "Membros do Grupo",IDC_STATIC,5,31,220,160
      LTEXT           "Estas definições permitem escolher os membros deste grupo, bem como escolher os grupos dos quais este grupo deve ser proprietário.",
                      IDC_STATIC,5,5,220,18
!     CONTROL         "",IDC_USERS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "&Remover",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "&Incluir...",IDC_MEMBER_ADD,113,169,50,14
--- 306,312 ----
      GROUPBOX        "Membros do Grupo",IDC_STATIC,5,31,220,160
      LTEXT           "Estas definições permitem escolher os membros deste grupo, bem como escolher os grupos dos quais este grupo deve ser proprietário.",
                      IDC_STATIC,5,5,220,18
!     CONTROL         "",IDC_USERS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "&Remover",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "&Incluir...",IDC_MEMBER_ADD,113,169,50,14
***************
*** 337,343 ****
                      WS_TABSTOP
      RTEXT           "Padrão:",IDC_GROUPS_PATTERN_PROMPT,215,8,29,8
      EDITTEXT        IDC_BROWSE_PATTERN,249,6,41,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x12,7,23,283,84
  END
  
--- 337,343 ----
                      WS_TABSTOP
      RTEXT           "Padrão:",IDC_GROUPS_PATTERN_PROMPT,215,8,29,8
      EDITTEXT        IDC_BROWSE_PATTERN,249,6,41,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x12,7,23,283,84
  END
  
***************
*** 412,418 ****
                      WS_TABSTOP
      RTEXT           "Padrão:",IDC_GROUPS_PATTERN_PROMPT,215,8,28,8
      EDITTEXT        IDC_BROWSE_PATTERN,246,6,41,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x12,7,23,280,84
  END
  
--- 412,418 ----
                      WS_TABSTOP
      RTEXT           "Padrão:",IDC_GROUPS_PATTERN_PROMPT,215,8,28,8
      EDITTEXT        IDC_BROWSE_PATTERN,246,6,41,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x12,7,23,280,84
  END
  
***************
*** 438,444 ****
                      WS_TABSTOP
      RTEXT           "Padrão:",IDC_GROUPS_PATTERN_PROMPT,218,8,28,8
      EDITTEXT        IDC_BROWSE_PATTERN,251,6,41,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x12,7,23,285,84
  END
  
--- 438,444 ----
                      WS_TABSTOP
      RTEXT           "Padrão:",IDC_GROUPS_PATTERN_PROMPT,218,8,28,8
      EDITTEXT        IDC_BROWSE_PATTERN,251,6,41,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x12,7,23,285,84
  END
  
***************
*** 450,456 ****
      GROUPBOX        "Grupos",IDC_STATIC,5,31,220,160
      LTEXT           "Estas definições permitem alterar a lista inicial dos grupos aos quais este usuário irá pertencer, bem como os grupos dos quais o usuário será proprietário.",
                      IDC_STATIC,5,5,220,24
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "&Remover",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "&Incluir...",IDC_MEMBER_ADD,113,169,50,14
--- 450,456 ----
      GROUPBOX        "Grupos",IDC_STATIC,5,31,220,160
      LTEXT           "Estas definições permitem alterar a lista inicial dos grupos aos quais este usuário irá pertencer, bem como os grupos dos quais o usuário será proprietário.",
                      IDC_STATIC,5,5,220,24
!     CONTROL         "",IDC_GROUPS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "&Remover",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "&Incluir...",IDC_MEMBER_ADD,113,169,50,14
***************
*** 531,537 ****
      GROUPBOX        "Membros do Grupo",IDC_STATIC,5,31,220,160
      LTEXT           "Estas definições permitem escolher os membros iniciais deste grupo, bem como escolher os grupos dos quais este grupo deve ser proprietário.",
                      IDC_STATIC,5,5,220,25
!     CONTROL         "",IDC_USERS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "&Remover",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "&Incluir...",IDC_MEMBER_ADD,113,169,50,14
--- 531,537 ----
      GROUPBOX        "Membros do Grupo",IDC_STATIC,5,31,220,160
      LTEXT           "Estas definições permitem escolher os membros iniciais deste grupo, bem como escolher os grupos dos quais este grupo deve ser proprietário.",
                      IDC_STATIC,5,5,220,25
!     CONTROL         "",IDC_USERS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "&Remover",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "&Incluir...",IDC_MEMBER_ADD,113,169,50,14
***************
*** 705,711 ****
      EDITTEXT        IDC_MACHINES_PATTERN,197,4,41,13,ES_AUTOHSCROLL
      RTEXT           "Padrão:",IDC_MACHINES_PATTERN_PROMPT,163,6,28,8
      LTEXT           "Consultando: aguarde...",IDC_MACHINES_TITLE,4,6,142,8
!     CONTROL         "",IDC_MACHINES_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x313,4,21,234,103
      PUSHBUTTON      "&Criar...",M_MACHINE_CREATE,65,126,55,14
      PUSHBUTTON      "&Membros...",M_MEMBERSHIP,124,126,55,14
--- 705,711 ----
      EDITTEXT        IDC_MACHINES_PATTERN,197,4,41,13,ES_AUTOHSCROLL
      RTEXT           "Padrão:",IDC_MACHINES_PATTERN_PROMPT,163,6,28,8
      LTEXT           "Consultando: aguarde...",IDC_MACHINES_TITLE,4,6,142,8
!     CONTROL         "",IDC_MACHINES_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x313,4,21,234,103
      PUSHBUTTON      "&Criar...",M_MACHINE_CREATE,65,126,55,14
      PUSHBUTTON      "&Membros...",M_MEMBERSHIP,124,126,55,14
***************
*** 720,726 ****
      GROUPBOX        "Grupos",IDC_STATIC,5,31,220,160
      LTEXT           "Estas definições permitem alterar a lista inicial dos grupos aos quais esta conta irá pertencer, bem como os grupos dos quais a conta será proprietária.",
                      IDC_STATIC,5,5,220,25,NOT WS_GROUP
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "&Remover",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "&Incluir...",IDC_MEMBER_ADD,113,169,50,14
--- 720,726 ----
      GROUPBOX        "Grupos",IDC_STATIC,5,31,220,160
      LTEXT           "Estas definições permitem alterar a lista inicial dos grupos aos quais esta conta irá pertencer, bem como os grupos dos quais a conta será proprietária.",
                      IDC_STATIC,5,5,220,25,NOT WS_GROUP
!     CONTROL         "",IDC_GROUPS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "&Remover",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "&Incluir...",IDC_MEMBER_ADD,113,169,50,14
***************
*** 823,829 ****
      GROUPBOX        "Grupos",IDC_STATIC,5,31,220,160
      LTEXT           "Estas definições permitem alterar a lista dos grupos aos quais esta conta pertence, bem como a lista de grupos dos quais a conta é proprietária.",
                      IDC_STATIC,5,5,220,24,NOT WS_GROUP
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "&Remover",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "&Incluir...",IDC_MEMBER_ADD,113,169,50,14
--- 823,829 ----
      GROUPBOX        "Grupos",IDC_STATIC,5,31,220,160
      LTEXT           "Estas definições permitem alterar a lista dos grupos aos quais esta conta pertence, bem como a lista de grupos dos quais a conta é proprietária.",
                      IDC_STATIC,5,5,220,24,NOT WS_GROUP
!     CONTROL         "",IDC_GROUPS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "&Remover",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "&Incluir...",IDC_MEMBER_ADD,113,169,50,14
Index: openafs/src/WINNT/afsusrmgr/lang/zh_CN/AfsUsrMgr.rc
diff -c openafs/src/WINNT/afsusrmgr/lang/zh_CN/AfsUsrMgr.rc:1.4 openafs/src/WINNT/afsusrmgr/lang/zh_CN/AfsUsrMgr.rc:1.4.6.1
*** openafs/src/WINNT/afsusrmgr/lang/zh_CN/AfsUsrMgr.rc:1.4	Fri Mar 11 00:34:21 2005
--- openafs/src/WINNT/afsusrmgr/lang/zh_CN/AfsUsrMgr.rc	Tue Dec 12 15:41:14 2006
***************
*** 66,72 ****
      EDITTEXT        IDC_USERS_PATTERN,185,4,41,13,ES_AUTOHSCROLL
      RTEXT           "Ä£Ê½£º",IDC_USERS_PATTERN_PROMPT,152,6,28,8
      LTEXT           "ÕýÔÚ²éÑ¯£»ÇëÉÔºò...",IDC_USERS_TITLE,4,6,142,8
!     CONTROL         "",IDC_USERS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x313,4,21,234,103
      PUSHBUTTON      "´´½¨(&C)...",M_USER_CREATE,41,126,64,14
      PUSHBUTTON      "³ÉÔ±×Ê¸ñ(&M)...",M_MEMBERSHIP,107,126,64,14
--- 66,72 ----
      EDITTEXT        IDC_USERS_PATTERN,185,4,41,13,ES_AUTOHSCROLL
      RTEXT           "Ä£Ê½£º",IDC_USERS_PATTERN_PROMPT,152,6,28,8
      LTEXT           "ÕýÔÚ²éÑ¯£»ÇëÉÔºò...",IDC_USERS_TITLE,4,6,142,8
!     CONTROL         "",IDC_USERS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x313,4,21,234,103
      PUSHBUTTON      "´´½¨(&C)...",M_USER_CREATE,41,126,64,14
      PUSHBUTTON      "³ÉÔ±×Ê¸ñ(&M)...",M_MEMBERSHIP,107,126,64,14
***************
*** 81,87 ****
      EDITTEXT        IDC_GROUPS_PATTERN,197,4,41,13,ES_AUTOHSCROLL
      RTEXT           "Ä£Ê½£º",IDC_GROUPS_PATTERN_PROMPT,163,6,28,8
      LTEXT           "ÕýÔÚ²éÑ¯£»ÇëÉÔºò...",IDC_GROUPS_TITLE,4,6,142,8
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x313,4,21,234,103
      PUSHBUTTON      "´´½¨(&C)...",M_GROUP_CREATE,65,126,55,14
      PUSHBUTTON      "³ÉÔ±(&M)...",M_MEMBERSHIP,124,126,55,14
--- 81,87 ----
      EDITTEXT        IDC_GROUPS_PATTERN,197,4,41,13,ES_AUTOHSCROLL
      RTEXT           "Ä£Ê½£º",IDC_GROUPS_PATTERN_PROMPT,163,6,28,8
      LTEXT           "ÕýÔÚ²éÑ¯£»ÇëÉÔºò...",IDC_GROUPS_TITLE,4,6,142,8
!     CONTROL         "",IDC_GROUPS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x313,4,21,234,103
      PUSHBUTTON      "´´½¨(&C)...",M_GROUP_CREATE,65,126,55,14
      PUSHBUTTON      "³ÉÔ±(&M)...",M_MEMBERSHIP,124,126,55,14
***************
*** 96,102 ****
  FONT 9, "ËÎÌå", 0, 0, 0x1
  BEGIN
      LTEXT           "ÕýÔÚ²éÑ¯£»ÇëÉÔºò...",IDC_ACTION_DESC,2,2,232,8
!     CONTROL         "",IDC_ACTION_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x3,2,14,232,43
  END
  
--- 96,102 ----
  FONT 9, "ËÎÌå", 0, 0, 0x1
  BEGIN
      LTEXT           "ÕýÔÚ²éÑ¯£»ÇëÉÔºò...",IDC_ACTION_DESC,2,2,232,8
!     CONTROL         "",IDC_ACTION_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x3,2,14,232,43
  END
  
***************
*** 279,285 ****
      GROUPBOX        "×é",IDC_STATIC,5,31,220,160
      LTEXT           "ÕâÐ©ÉèÖÃÔÊÐíÄú¸ü¸Ä¸ÃÓÃ»§ËùÊô×éµÄÁÐ±í¼°¸ÃÓÃ»§ËùÓµÓÐµÄ×éµÄÁÐ±í¡£",
                      IDC_STATIC,5,5,220,17
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "³ýÈ¥(&R)",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "Ìí¼Ó(&A)...",IDC_MEMBER_ADD,113,169,50,14
--- 279,285 ----
      GROUPBOX        "×é",IDC_STATIC,5,31,220,160
      LTEXT           "ÕâÐ©ÉèÖÃÔÊÐíÄú¸ü¸Ä¸ÃÓÃ»§ËùÊô×éµÄÁÐ±í¼°¸ÃÓÃ»§ËùÓµÓÐµÄ×éµÄÁÐ±í¡£",
                      IDC_STATIC,5,5,220,17
!     CONTROL         "",IDC_GROUPS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "³ýÈ¥(&R)",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "Ìí¼Ó(&A)...",IDC_MEMBER_ADD,113,169,50,14
***************
*** 298,304 ****
      GROUPBOX        "×é³ÉÔ±×Ê¸ñ",IDC_STATIC,5,31,220,160
      LTEXT           "ÕâÐ©ÉèÖÃÔÊÐíÄúÑ¡Ôñ¸Ã×éµÄ³ÉÔ±¼°¸Ã×éÓµÓÐµÄ×é¡£",
                      IDC_STATIC,5,5,220,18
!     CONTROL         "",IDC_USERS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "³ýÈ¥(&R)",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "Ìí¼Ó(&A)...",IDC_MEMBER_ADD,113,169,50,14
--- 298,304 ----
      GROUPBOX        "×é³ÉÔ±×Ê¸ñ",IDC_STATIC,5,31,220,160
      LTEXT           "ÕâÐ©ÉèÖÃÔÊÐíÄúÑ¡Ôñ¸Ã×éµÄ³ÉÔ±¼°¸Ã×éÓµÓÐµÄ×é¡£",
                      IDC_STATIC,5,5,220,18
!     CONTROL         "",IDC_USERS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "³ýÈ¥(&R)",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "Ìí¼Ó(&A)...",IDC_MEMBER_ADD,113,169,50,14
***************
*** 328,334 ****
                      WS_TABSTOP
      RTEXT           "Ä£Ê½£º",IDC_GROUPS_PATTERN_PROMPT,198,8,29,8
      EDITTEXT        IDC_BROWSE_PATTERN,233,6,41,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x12,7,23,267,84
  END
  
--- 328,334 ----
                      WS_TABSTOP
      RTEXT           "Ä£Ê½£º",IDC_GROUPS_PATTERN_PROMPT,198,8,29,8
      EDITTEXT        IDC_BROWSE_PATTERN,233,6,41,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x12,7,23,267,84
  END
  
***************
*** 402,408 ****
                      WS_TABSTOP
      RTEXT           "Ä£Ê½£º",IDC_GROUPS_PATTERN_PROMPT,199,8,28,8
      EDITTEXT        IDC_BROWSE_PATTERN,233,6,41,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x12,7,23,267,84
  END
  
--- 402,408 ----
                      WS_TABSTOP
      RTEXT           "Ä£Ê½£º",IDC_GROUPS_PATTERN_PROMPT,199,8,28,8
      EDITTEXT        IDC_BROWSE_PATTERN,233,6,41,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x12,7,23,267,84
  END
  
***************
*** 428,434 ****
                      WS_TABSTOP
      RTEXT           "Ä£Ê½£º",IDC_GROUPS_PATTERN_PROMPT,199,8,28,8
      EDITTEXT        IDC_BROWSE_PATTERN,233,6,41,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x12,7,23,267,84
  END
  
--- 428,434 ----
                      WS_TABSTOP
      RTEXT           "Ä£Ê½£º",IDC_GROUPS_PATTERN_PROMPT,199,8,28,8
      EDITTEXT        IDC_BROWSE_PATTERN,233,6,41,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x12,7,23,267,84
  END
  
***************
*** 440,446 ****
      GROUPBOX        "×é",IDC_STATIC,5,31,220,160
      LTEXT           "ÕâÐ©ÉèÖÃÔÊÐíÄú¸ü¸Ä¸ÃÓÃ»§½«ÊôÓÚ×éµÄ³õÊ¼ÁÐ±í¼°¸ÃÓÃ»§½«ÓµÓÐµÄ×éµÄÁÐ±í¡£",
                      IDC_STATIC,5,5,220,17
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "³ýÈ¥(&R)",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "Ìí¼Ó(&A)...",IDC_MEMBER_ADD,113,169,50,14
--- 440,446 ----
      GROUPBOX        "×é",IDC_STATIC,5,31,220,160
      LTEXT           "ÕâÐ©ÉèÖÃÔÊÐíÄú¸ü¸Ä¸ÃÓÃ»§½«ÊôÓÚ×éµÄ³õÊ¼ÁÐ±í¼°¸ÃÓÃ»§½«ÓµÓÐµÄ×éµÄÁÐ±í¡£",
                      IDC_STATIC,5,5,220,17
!     CONTROL         "",IDC_GROUPS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "³ýÈ¥(&R)",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "Ìí¼Ó(&A)...",IDC_MEMBER_ADD,113,169,50,14
***************
*** 515,521 ****
      GROUPBOX        "×é³ÉÔ±×Ê¸ñ",IDC_STATIC,5,31,220,160
      LTEXT           "ÕâÐ©ÉèÖÃÔÊÐíÄúÑ¡Ôñ¸Ã×éµÄ³õÊ¼³ÉÔ±¼°¸Ã×éÓ¦¸ÃÓµÓÐµÄ×é¡£",
                      IDC_STATIC,5,5,220,18
!     CONTROL         "",IDC_USERS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "³ýÈ¥(&R)",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "Ìí¼Ó(&A)...",IDC_MEMBER_ADD,113,169,50,14
--- 515,521 ----
      GROUPBOX        "×é³ÉÔ±×Ê¸ñ",IDC_STATIC,5,31,220,160
      LTEXT           "ÕâÐ©ÉèÖÃÔÊÐíÄúÑ¡Ôñ¸Ã×éµÄ³õÊ¼³ÉÔ±¼°¸Ã×éÓ¦¸ÃÓµÓÐµÄ×é¡£",
                      IDC_STATIC,5,5,220,18
!     CONTROL         "",IDC_USERS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "³ýÈ¥(&R)",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "Ìí¼Ó(&A)...",IDC_MEMBER_ADD,113,169,50,14
***************
*** 676,682 ****
      EDITTEXT        IDC_MACHINES_PATTERN,197,4,41,13,ES_AUTOHSCROLL
      RTEXT           "Ä£Ê½£º",IDC_MACHINES_PATTERN_PROMPT,163,6,28,8
      LTEXT           "ÕýÔÚ²éÑ¯£»ÇëÉÔºò...",IDC_MACHINES_TITLE,4,6,142,8
!     CONTROL         "",IDC_MACHINES_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x313,4,21,234,103
      PUSHBUTTON      "´´½¨(&C)...",M_MACHINE_CREATE,42,126,64,14
      PUSHBUTTON      "³ÉÔ±×Ê¸ñ(&M)...",M_MEMBERSHIP,108,126,64,14
--- 676,682 ----
      EDITTEXT        IDC_MACHINES_PATTERN,197,4,41,13,ES_AUTOHSCROLL
      RTEXT           "Ä£Ê½£º",IDC_MACHINES_PATTERN_PROMPT,163,6,28,8
      LTEXT           "ÕýÔÚ²éÑ¯£»ÇëÉÔºò...",IDC_MACHINES_TITLE,4,6,142,8
!     CONTROL         "",IDC_MACHINES_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x313,4,21,234,103
      PUSHBUTTON      "´´½¨(&C)...",M_MACHINE_CREATE,42,126,64,14
      PUSHBUTTON      "³ÉÔ±×Ê¸ñ(&M)...",M_MEMBERSHIP,108,126,64,14
***************
*** 691,697 ****
      GROUPBOX        "×é",IDC_STATIC,5,31,220,160
      LTEXT           "ÕâÐ©ÉèÖÃÔÊÐíÄúÑ¡Ôñ¸ÃÓÃ»§½«ÊôÓÚµÄ×é¼°Æä½«ÓµÓÐµÄ×éµÄ³õÊ¼ÁÐ±í¡£",
                      IDC_STATIC,5,5,220,17,NOT WS_GROUP
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "³ýÈ¥(&R)",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "Ìí¼Ó(&A)...",IDC_MEMBER_ADD,113,169,50,14
--- 691,697 ----
      GROUPBOX        "×é",IDC_STATIC,5,31,220,160
      LTEXT           "ÕâÐ©ÉèÖÃÔÊÐíÄúÑ¡Ôñ¸ÃÓÃ»§½«ÊôÓÚµÄ×é¼°Æä½«ÓµÓÐµÄ×éµÄ³õÊ¼ÁÐ±í¡£",
                      IDC_STATIC,5,5,220,17,NOT WS_GROUP
!     CONTROL         "",IDC_GROUPS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "³ýÈ¥(&R)",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "Ìí¼Ó(&A)...",IDC_MEMBER_ADD,113,169,50,14
***************
*** 789,795 ****
      GROUPBOX        "×é",IDC_STATIC,5,31,220,160
      LTEXT           "ÕâÐ©ÉèÖÃÔÊÐíÄú¸ü¸Ä¸ÃÕÊ»§ËùÊôµÄ×é¼°ÆäÓµÓÐµÄ×éµÄÁÐ±í¡£",
                      IDC_STATIC,5,5,220,17,NOT WS_GROUP
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "³ýÈ¥(&R)",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "Ìí¼Ó(&A)...",IDC_MEMBER_ADD,113,169,50,14
--- 789,795 ----
      GROUPBOX        "×é",IDC_STATIC,5,31,220,160
      LTEXT           "ÕâÐ©ÉèÖÃÔÊÐíÄú¸ü¸Ä¸ÃÕÊ»§ËùÊôµÄ×é¼°ÆäÓµÓÐµÄ×éµÄÁÐ±í¡£",
                      IDC_STATIC,5,5,220,17,NOT WS_GROUP
!     CONTROL         "",IDC_GROUPS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "³ýÈ¥(&R)",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "Ìí¼Ó(&A)...",IDC_MEMBER_ADD,113,169,50,14
Index: openafs/src/WINNT/afsusrmgr/lang/zh_TW/AfsUsrMgr.rc
diff -c openafs/src/WINNT/afsusrmgr/lang/zh_TW/AfsUsrMgr.rc:1.4 openafs/src/WINNT/afsusrmgr/lang/zh_TW/AfsUsrMgr.rc:1.4.6.1
*** openafs/src/WINNT/afsusrmgr/lang/zh_TW/AfsUsrMgr.rc:1.4	Fri Mar 11 00:34:24 2005
--- openafs/src/WINNT/afsusrmgr/lang/zh_TW/AfsUsrMgr.rc	Tue Dec 12 15:41:14 2006
***************
*** 66,72 ****
      EDITTEXT        IDC_USERS_PATTERN,185,4,40,13,ES_AUTOHSCROLL
      RTEXT           "«¬¼Ë¡G",IDC_USERS_PATTERN_PROMPT,152,6,28,8
      LTEXT           "¬d¸ß¤¤¡F½Ðµy­Ô...",IDC_USERS_TITLE,4,6,142,8
!     CONTROL         "",IDC_USERS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x313,4,21,234,103
      PUSHBUTTON      "«Ø¥ß(&C)...",M_USER_CREATE,65,126,55,14
      PUSHBUTTON      "¦¨­û¸ê®æ(&M)...",M_MEMBERSHIP,124,126,55,14
--- 66,72 ----
      EDITTEXT        IDC_USERS_PATTERN,185,4,40,13,ES_AUTOHSCROLL
      RTEXT           "«¬¼Ë¡G",IDC_USERS_PATTERN_PROMPT,152,6,28,8
      LTEXT           "¬d¸ß¤¤¡F½Ðµy­Ô...",IDC_USERS_TITLE,4,6,142,8
!     CONTROL         "",IDC_USERS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x313,4,21,234,103
      PUSHBUTTON      "«Ø¥ß(&C)...",M_USER_CREATE,65,126,55,14
      PUSHBUTTON      "¦¨­û¸ê®æ(&M)...",M_MEMBERSHIP,124,126,55,14
***************
*** 81,87 ****
      EDITTEXT        IDC_GROUPS_PATTERN,197,4,41,13,ES_AUTOHSCROLL
      RTEXT           "«¬¼Ë¡G",IDC_GROUPS_PATTERN_PROMPT,163,6,28,8
      LTEXT           "¬d¸ß¤¤¡F½Ðµy­Ô...",IDC_GROUPS_TITLE,4,6,142,8
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x313,4,21,234,103
      PUSHBUTTON      "«Ø¥ß(&C)...",M_GROUP_CREATE,65,126,55,14
      PUSHBUTTON      "¦¨­û(&M)...",M_MEMBERSHIP,124,126,55,14
--- 81,87 ----
      EDITTEXT        IDC_GROUPS_PATTERN,197,4,41,13,ES_AUTOHSCROLL
      RTEXT           "«¬¼Ë¡G",IDC_GROUPS_PATTERN_PROMPT,163,6,28,8
      LTEXT           "¬d¸ß¤¤¡F½Ðµy­Ô...",IDC_GROUPS_TITLE,4,6,142,8
!     CONTROL         "",IDC_GROUPS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x313,4,21,234,103
      PUSHBUTTON      "«Ø¥ß(&C)...",M_GROUP_CREATE,65,126,55,14
      PUSHBUTTON      "¦¨­û(&M)...",M_MEMBERSHIP,124,126,55,14
***************
*** 96,102 ****
  FONT 9, "·s²Ó©úÅé", 0, 0, 0x1
  BEGIN
      LTEXT           "¬d¸ß¤¤¡F½Ðµy­Ô...",IDC_ACTION_DESC,2,2,232,8
!     CONTROL         "",IDC_ACTION_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x3,2,14,232,43
  END
  
--- 96,102 ----
  FONT 9, "·s²Ó©úÅé", 0, 0, 0x1
  BEGIN
      LTEXT           "¬d¸ß¤¤¡F½Ðµy­Ô...",IDC_ACTION_DESC,2,2,232,8
!     CONTROL         "",IDC_ACTION_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x3,2,14,232,43
  END
  
***************
*** 280,286 ****
      GROUPBOX        "¸s²Õ",IDC_STATIC,5,31,220,160
      LTEXT           "³o¨Ç³]©wÅý±zÅÜ§ó³o¦ì¨Ï¥ÎªÌ©ÒÄÝªº¸s²Õ²M³æ¡A¥H¤Î³o¦ì¨Ï¥ÎªÌ¾Ö¦³ªº¸s²Õ²M³æ¡C",
                      IDC_STATIC,5,5,220,17
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "²¾°£(&R)",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "·s¼W(&A)...",IDC_MEMBER_ADD,113,169,50,14
--- 280,286 ----
      GROUPBOX        "¸s²Õ",IDC_STATIC,5,31,220,160
      LTEXT           "³o¨Ç³]©wÅý±zÅÜ§ó³o¦ì¨Ï¥ÎªÌ©ÒÄÝªº¸s²Õ²M³æ¡A¥H¤Î³o¦ì¨Ï¥ÎªÌ¾Ö¦³ªº¸s²Õ²M³æ¡C",
                      IDC_STATIC,5,5,220,17
!     CONTROL         "",IDC_GROUPS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "²¾°£(&R)",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "·s¼W(&A)...",IDC_MEMBER_ADD,113,169,50,14
***************
*** 299,305 ****
      GROUPBOX        "¸s²Õ¦¨­û¸ê®æ",IDC_STATIC,5,31,220,160
      LTEXT           "³o¨Ç³]©wÅý±z¿ï¾Ü¦¹¸s²Õªº¦¨­û¡A¥H¤Î¸s²ÕÀ³¾Ö¦³ªº¸s²Õ¡C",
                      IDC_STATIC,5,5,220,18
!     CONTROL         "",IDC_USERS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "²¾°£(&R)",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "·s¼W(&A)...",IDC_MEMBER_ADD,113,169,50,14
--- 299,305 ----
      GROUPBOX        "¸s²Õ¦¨­û¸ê®æ",IDC_STATIC,5,31,220,160
      LTEXT           "³o¨Ç³]©wÅý±z¿ï¾Ü¦¹¸s²Õªº¦¨­û¡A¥H¤Î¸s²ÕÀ³¾Ö¦³ªº¸s²Õ¡C",
                      IDC_STATIC,5,5,220,18
!     CONTROL         "",IDC_USERS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "²¾°£(&R)",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "·s¼W(&A)...",IDC_MEMBER_ADD,113,169,50,14
***************
*** 329,335 ****
                      WS_TABSTOP
      RTEXT           "«¬¼Ë¡G",IDC_GROUPS_PATTERN_PROMPT,198,8,29,8
      EDITTEXT        IDC_BROWSE_PATTERN,233,6,41,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x12,7,23,267,84
  END
  
--- 329,335 ----
                      WS_TABSTOP
      RTEXT           "«¬¼Ë¡G",IDC_GROUPS_PATTERN_PROMPT,198,8,29,8
      EDITTEXT        IDC_BROWSE_PATTERN,233,6,41,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x12,7,23,267,84
  END
  
***************
*** 403,409 ****
                      WS_TABSTOP
      RTEXT           "«¬¼Ë¡G",IDC_GROUPS_PATTERN_PROMPT,199,8,28,8
      EDITTEXT        IDC_BROWSE_PATTERN,233,6,41,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x12,7,23,267,84
  END
  
--- 403,409 ----
                      WS_TABSTOP
      RTEXT           "«¬¼Ë¡G",IDC_GROUPS_PATTERN_PROMPT,199,8,28,8
      EDITTEXT        IDC_BROWSE_PATTERN,233,6,41,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x12,7,23,267,84
  END
  
***************
*** 429,435 ****
                      WS_TABSTOP
      RTEXT           "«¬¼Ë¡G",IDC_GROUPS_PATTERN_PROMPT,199,8,28,8
      EDITTEXT        IDC_BROWSE_PATTERN,233,6,41,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x12,7,23,267,84
  END
  
--- 429,435 ----
                      WS_TABSTOP
      RTEXT           "«¬¼Ë¡G",IDC_GROUPS_PATTERN_PROMPT,199,8,28,8
      EDITTEXT        IDC_BROWSE_PATTERN,233,6,41,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x12,7,23,267,84
  END
  
***************
*** 441,447 ****
      GROUPBOX        "¸s²Õ",IDC_STATIC,5,31,220,160
      LTEXT           "³o¨Ç³]©wÅý±zÅÜ§ó¦¹¨Ï¥ÎªÌ©ÒÄÝªº°_©l¸s²Õ²M³æ¡A¥H¤Î¦¹¨Ï¥ÎªÌ¾Ö¦³ªº¸s²Õ¡C",
                      IDC_STATIC,5,5,220,17
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "²¾°£(&R)",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "·s¼W(&A)...",IDC_MEMBER_ADD,113,169,50,14
--- 441,447 ----
      GROUPBOX        "¸s²Õ",IDC_STATIC,5,31,220,160
      LTEXT           "³o¨Ç³]©wÅý±zÅÜ§ó¦¹¨Ï¥ÎªÌ©ÒÄÝªº°_©l¸s²Õ²M³æ¡A¥H¤Î¦¹¨Ï¥ÎªÌ¾Ö¦³ªº¸s²Õ¡C",
                      IDC_STATIC,5,5,220,17
!     CONTROL         "",IDC_GROUPS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "²¾°£(&R)",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "·s¼W(&A)...",IDC_MEMBER_ADD,113,169,50,14
***************
*** 516,522 ****
      GROUPBOX        "¸s²Õ¦¨­û¸ê®æ",IDC_STATIC,5,31,220,160
      LTEXT           "³o¨Ç³]©wÅý±z¿ï¾Ü¦¹¸s²Õªº°_©l¦¨­û¡A¥H¤Î¦¹¸s²ÕÀ³¾Ö¦³ªº¸s²Õ¡C",
                      IDC_STATIC,5,5,210,18
!     CONTROL         "",IDC_USERS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "²¾°£(&R)",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "·s¼W(&A)...",IDC_MEMBER_ADD,113,169,50,14
--- 516,522 ----
      GROUPBOX        "¸s²Õ¦¨­û¸ê®æ",IDC_STATIC,5,31,220,160
      LTEXT           "³o¨Ç³]©wÅý±z¿ï¾Ü¦¹¸s²Õªº°_©l¦¨­û¡A¥H¤Î¦¹¸s²ÕÀ³¾Ö¦³ªº¸s²Õ¡C",
                      IDC_STATIC,5,5,210,18
!     CONTROL         "",IDC_USERS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "²¾°£(&R)",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "·s¼W(&A)...",IDC_MEMBER_ADD,113,169,50,14
***************
*** 678,684 ****
      EDITTEXT        IDC_MACHINES_PATTERN,197,4,41,13,ES_AUTOHSCROLL
      RTEXT           "«¬¼Ë¡G",IDC_MACHINES_PATTERN_PROMPT,163,6,28,8
      LTEXT           "¬d¸ß¤¤¡F½Ðµy­Ô...",IDC_MACHINES_TITLE,4,6,142,8
!     CONTROL         "",IDC_MACHINES_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x313,4,21,234,103
      PUSHBUTTON      "«Ø¥ß(&C)...",M_MACHINE_CREATE,65,126,55,14
      PUSHBUTTON      "¦¨­û¸ê®æ(&M)...",M_MEMBERSHIP,124,126,55,14
--- 678,684 ----
      EDITTEXT        IDC_MACHINES_PATTERN,197,4,41,13,ES_AUTOHSCROLL
      RTEXT           "«¬¼Ë¡G",IDC_MACHINES_PATTERN_PROMPT,163,6,28,8
      LTEXT           "¬d¸ß¤¤¡F½Ðµy­Ô...",IDC_MACHINES_TITLE,4,6,142,8
!     CONTROL         "",IDC_MACHINES_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x313,4,21,234,103
      PUSHBUTTON      "«Ø¥ß(&C)...",M_MACHINE_CREATE,65,126,55,14
      PUSHBUTTON      "¦¨­û¸ê®æ(&M)...",M_MEMBERSHIP,124,126,55,14
***************
*** 693,699 ****
      GROUPBOX        "¸s²Õ",IDC_STATIC,5,31,220,160
      LTEXT           "³o¨Ç³]©wÅý±z¿ï¨ú¦¹±b¤á©ÒÄÝªº°_©l¸s²Õ²M³æ¡A¥H¤Î¸Ó±b¤á¾Ö¦³ªº¸s²Õ¡C",
                      IDC_STATIC,5,5,220,17,NOT WS_GROUP
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "²¾°£(&R)",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "·s¼W(&A)...",IDC_MEMBER_ADD,113,169,50,14
--- 693,699 ----
      GROUPBOX        "¸s²Õ",IDC_STATIC,5,31,220,160
      LTEXT           "³o¨Ç³]©wÅý±z¿ï¨ú¦¹±b¤á©ÒÄÝªº°_©l¸s²Õ²M³æ¡A¥H¤Î¸Ó±b¤á¾Ö¦³ªº¸s²Õ¡C",
                      IDC_STATIC,5,5,220,17,NOT WS_GROUP
!     CONTROL         "",IDC_GROUPS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "²¾°£(&R)",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "·s¼W(&A)...",IDC_MEMBER_ADD,113,169,50,14
***************
*** 791,797 ****
      GROUPBOX        "¸s²Õ",IDC_STATIC,5,31,220,160
      LTEXT           "³o¨Ç³]©wÅý±zÅÜ§ó¦¹±b¤á©ÒÄÝªº¸s²Õ²M³æ¡A¥H¤Î¦¹±b¤á¾Ö¦³ªº¸s²Õ¡C",
                      IDC_STATIC,5,5,220,17,NOT WS_GROUP
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "²¾°£(&R)",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "·s¼W(&A)...",IDC_MEMBER_ADD,113,169,50,14
--- 791,797 ----
      GROUPBOX        "¸s²Õ",IDC_STATIC,5,31,220,160
      LTEXT           "³o¨Ç³]©wÅý±zÅÜ§ó¦¹±b¤á©ÒÄÝªº¸s²Õ²M³æ¡A¥H¤Î¦¹±b¤á¾Ö¦³ªº¸s²Õ¡C",
                      IDC_STATIC,5,5,220,17,NOT WS_GROUP
!     CONTROL         "",IDC_GROUPS_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 
                      0x312,12,84,205,82
      PUSHBUTTON      "²¾°£(&R)",IDC_MEMBER_REMOVE,167,169,50,14
      PUSHBUTTON      "·s¼W(&A)...",IDC_MEMBER_ADD,113,169,50,14
Index: openafs/src/WINNT/client_config/NTMakefile
diff -c openafs/src/WINNT/client_config/NTMakefile:1.11.4.1 openafs/src/WINNT/client_config/NTMakefile:1.11.4.3
*** openafs/src/WINNT/client_config/NTMakefile:1.11.4.1	Tue Oct 10 11:49:33 2006
--- openafs/src/WINNT/client_config/NTMakefile	Tue Dec 12 19:26:35 2006
***************
*** 58,70 ****
      netapi32.lib
  
  EXELIBS = \
! 	$(DESTDIR)\lib\afs\TaLocale.lib \
  	$(DESTDIR)\lib\afsrpc.lib \
  	$(DESTDIR)\lib\afsauthent.lib \
  	$(DESTDIR)\lib\libosi.lib \
  	$(DESTDIR)\lib\libafsconf.lib \
!     $(DESTDIR)\lib\lanahelper.lib \
!     $(DESTDIR)\lib\afs\afsreg.lib
  
  ############################################################################
  #
--- 58,70 ----
      netapi32.lib
  
  EXELIBS = \
! 	$(DESTDIR)\lib\afs\TaAfsAppLib.lib \
  	$(DESTDIR)\lib\afsrpc.lib \
  	$(DESTDIR)\lib\afsauthent.lib \
  	$(DESTDIR)\lib\libosi.lib \
  	$(DESTDIR)\lib\libafsconf.lib \
! 	$(DESTDIR)\lib\lanahelper.lib \
! 	$(DESTDIR)\lib\afs\afsreg.lib
  
  ############################################################################
  #
***************
*** 86,106 ****
  	$(DESTDIR)\include\WINNT\resize.h \
  	$(DESTDIR)\include\WINNT\subclass.h
  
- AFSAPPLIBOBJS= \
- 	$(OUT)\hashlist.obj \
- 	$(OUT)\resize.obj \
- 	$(OUT)\subclass.obj \
- 	$(OUT)\fastlist.obj \
- 	$(OUT)\dialog.obj \
- 	$(OUT)\ctl_sockaddr.obj \
- 	$(OUT)\ctl_spinner.obj \
- 	$(OUT)\checklist.obj
- 
  AFSAPPLIB=..\afsapplib
  
- $(AFSAPPLIBOBJS): $(AFSAPPLIB)\$$(@B).cpp
- 	$(C2OBJ) -I$(AFSAPPLIB) $**
- 
  $(AFSDOBJS): $(AFSD)\$$(@B).c
  	$(C2OBJ) -I$(AFSD) $**
  
--- 86,93 ----
***************
*** 118,124 ****
  
  ############################################################################
  
! $(EXEFILE) : $(EXEOBJS) $(EXEOBJSc) $(EXERES) $(AFSAPPLIBOBJS) $(AFSDOBJS) $(EXELIBS)
  	$(EXEGUILINK) $(VCLIBS)
          $(_VC_MANIFEST_EMBED_EXE)
  	$(EXEPREP) 
--- 105,111 ----
  
  ############################################################################
  
! $(EXEFILE) : $(EXEOBJS) $(EXEOBJSc) $(EXERES) $(AFSDOBJS) $(EXELIBS)
  	$(EXEGUILINK) $(VCLIBS)
          $(_VC_MANIFEST_EMBED_EXE)
  	$(EXEPREP) 
Index: openafs/src/WINNT/client_config/lang/de_DE/afs_config.rc
diff -c openafs/src/WINNT/client_config/lang/de_DE/afs_config.rc:1.5.6.1 openafs/src/WINNT/client_config/lang/de_DE/afs_config.rc:1.5.6.2
*** openafs/src/WINNT/client_config/lang/de_DE/afs_config.rc:1.5.6.1	Wed Sep 13 13:51:57 2006
--- openafs/src/WINNT/client_config/lang/de_DE/afs_config.rc	Tue Dec 12 15:41:15 2006
***************
*** 96,102 ****
                      BS_AUTORADIOBUTTON,13,21,193,10
      CONTROL         "Vorgaben für &Volume Location Server anzeigen",
                      IDC_SHOW_VLS,"Button",BS_AUTORADIOBUTTON,13,34,193,10
!     CONTROL         "",IDC_LIST,"FastList",WS_BORDER | WS_TABSTOP | 0xb,13,
                      49,173,120
      PUSHBUTTON      "&Hinzufügen...",IDC_ADD,84,172,50,14
      PUSHBUTTON      "Ä&ndern...",IDC_EDIT,137,172,50,14
--- 96,102 ----
                      BS_AUTORADIOBUTTON,13,21,193,10
      CONTROL         "Vorgaben für &Volume Location Server anzeigen",
                      IDC_SHOW_VLS,"Button",BS_AUTORADIOBUTTON,13,34,193,10
!     CONTROL         "",IDC_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 0xb,13,
                      49,173,120
      PUSHBUTTON      "&Hinzufügen...",IDC_ADD,84,172,50,14
      PUSHBUTTON      "Ä&ndern...",IDC_EDIT,137,172,50,14
***************
*** 113,119 ****
  FONT 9, "MS Shell Dlg"
  BEGIN
      GROUPBOX        "AFS-Zellen",IDC_STATIC,7,7,206,211
!     CONTROL         "",IDC_LIST,"FastList",WS_BORDER | WS_TABSTOP | 0x11b,13,
                      21,193,168
      PUSHBUTTON      "&Hinzufügen...",IDC_ADD,51,195,50,14
      PUSHBUTTON      "Ä&ndern...",IDC_EDIT,104,195,50,14
--- 113,119 ----
  FONT 9, "MS Shell Dlg"
  BEGIN
      GROUPBOX        "AFS-Zellen",IDC_STATIC,7,7,206,211
!     CONTROL         "",IDC_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 0x11b,13,
                      21,193,168
      PUSHBUTTON      "&Hinzufügen...",IDC_ADD,51,195,50,14
      PUSHBUTTON      "Ä&ndern...",IDC_EDIT,104,195,50,14
***************
*** 126,132 ****
  FONT 9, "MS Shell Dlg"
  BEGIN
      GROUPBOX        "Laufwerkbuchstaben",IDC_STATIC,7,7,206,211
!     CONTROL         "",IDC_LIST,"CheckList",WS_BORDER | WS_TABSTOP | 0x153,
                      13,32,193,135
      PUSHBUTTON      "&Hinzufügen...",IDC_ADD,70,171,47,14
      PUSHBUTTON      "Ä&ndern...",IDC_EDIT,120,171,42,14
--- 126,132 ----
  FONT 9, "MS Shell Dlg"
  BEGIN
      GROUPBOX        "Laufwerkbuchstaben",IDC_STATIC,7,7,206,211
!     CONTROL         "",IDC_LIST,"OpenAFS_CheckList",WS_BORDER | WS_TABSTOP | 0x153,
                      13,32,193,135
      PUSHBUTTON      "&Hinzufügen...",IDC_ADD,70,171,47,14
      PUSHBUTTON      "Ä&ndern...",IDC_EDIT,120,171,42,14
***************
*** 201,207 ****
      LTEXT           "&Beschreibung:",IDC_STATIC,4,44,43,8
      EDITTEXT        IDC_COMMENT,51,42,181,13,ES_AUTOHSCROLL
      GROUPBOX        "Server",IDC_STATIC,4,61,236,158
!     CONTROL         "",IDC_LIST,"FastList",WS_BORDER | WS_TABSTOP | 0x1b,13,
                      76,217,117
      PUSHBUTTON      "&Hinzufügen...",IDC_ADD,75,198,50,14
      PUSHBUTTON      "Ä&ndern...",IDC_EDIT,128,198,50,14
--- 201,207 ----
      LTEXT           "&Beschreibung:",IDC_STATIC,4,44,43,8
      EDITTEXT        IDC_COMMENT,51,42,181,13,ES_AUTOHSCROLL
      GROUPBOX        "Server",IDC_STATIC,4,61,236,158
!     CONTROL         "",IDC_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 0x1b,13,
                      76,217,117
      PUSHBUTTON      "&Hinzufügen...",IDC_ADD,75,198,50,14
      PUSHBUTTON      "Ä&ndern...",IDC_EDIT,128,198,50,14
***************
*** 263,269 ****
      GROUPBOX        "Submounts",IDC_STATIC,4,26,236,168
      LTEXT           "Die folgenden Submounts sind von diesem Computer abgetrennt:",
                      IDC_STATIC,10,42,221,8
!     CONTROL         "",IDC_LIST,"FastList",WS_BORDER | WS_TABSTOP | 0x413,10,
                      54,223,115
      PUSHBUTTON      "&Hinzufügen...",IDC_ADD,78,173,50,14
      PUSHBUTTON      "Ä&ndern...",IDC_EDIT,131,173,50,14
--- 263,269 ----
      GROUPBOX        "Submounts",IDC_STATIC,4,26,236,168
      LTEXT           "Die folgenden Submounts sind von diesem Computer abgetrennt:",
                      IDC_STATIC,10,42,221,8
!     CONTROL         "",IDC_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 0x413,10,
                      54,223,115
      PUSHBUTTON      "&Hinzufügen...",IDC_ADD,78,173,50,14
      PUSHBUTTON      "Ä&ndern...",IDC_EDIT,131,173,50,14
***************
*** 294,300 ****
  FONT 9, "MS Shell Dlg"
  BEGIN
      GROUPBOX        "Laufwerkbuchstaben",IDC_STATIC,7,7,231,131
!     CONTROL         "",IDC_LIST,"CheckList",WS_BORDER | WS_TABSTOP | 0x153,
                      13,32,219,60
      PUSHBUTTON      "&Hinzufügen...",IDC_ADD,90,95,52,14
      PUSHBUTTON      "Ä&ndern...",IDC_EDIT,145,95,42,14
--- 294,300 ----
  FONT 9, "MS Shell Dlg"
  BEGIN
      GROUPBOX        "Laufwerkbuchstaben",IDC_STATIC,7,7,231,131
!     CONTROL         "",IDC_LIST,"OpenAFS_CheckList",WS_BORDER | WS_TABSTOP | 0x153,
                      13,32,219,60
      PUSHBUTTON      "&Hinzufügen...",IDC_ADD,90,95,52,14
      PUSHBUTTON      "Ä&ndern...",IDC_EDIT,145,95,42,14
***************
*** 311,317 ****
  FONT 9, "MS Shell Dlg"
  BEGIN
      GROUPBOX        "AFS-Zellen",IDC_STATIC,7,7,231,131
!     CONTROL         "",IDC_LIST,"FastList",WS_BORDER | WS_TABSTOP | 0x11b,13,
                      19,218,94
      PUSHBUTTON      "&Hinzufügen...",IDC_ADD,75,116,50,14
      PUSHBUTTON      "Ä&ndern...",IDC_EDIT,128,116,50,14
--- 311,317 ----
  FONT 9, "MS Shell Dlg"
  BEGIN
      GROUPBOX        "AFS-Zellen",IDC_STATIC,7,7,231,131
!     CONTROL         "",IDC_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 0x11b,13,
                      19,218,94
      PUSHBUTTON      "&Hinzufügen...",IDC_ADD,75,116,50,14
      PUSHBUTTON      "Ä&ndern...",IDC_EDIT,128,116,50,14
***************
*** 343,349 ****
      LTEXT           "Standardzelle:",IDC_STATIC,14,40,51,8
      EDITTEXT        IDC_CELL,67,38,139,14,ES_LOWERCASE | ES_AUTOHSCROLL
      GROUPBOX        "AFS-Zellen",IDC_STATIC,7,69,206,180
!     CONTROL         "",IDC_LIST,"FastList",WS_BORDER | WS_TABSTOP | 0x11b,13,
                      84,193,137
      PUSHBUTTON      "&Hinzufügen...",IDC_ADD,51,227,50,14
      PUSHBUTTON      "Ä&ndern...",IDC_EDIT,104,227,50,14
--- 343,349 ----
      LTEXT           "Standardzelle:",IDC_STATIC,14,40,51,8
      EDITTEXT        IDC_CELL,67,38,139,14,ES_LOWERCASE | ES_AUTOHSCROLL
      GROUPBOX        "AFS-Zellen",IDC_STATIC,7,69,206,180
!     CONTROL         "",IDC_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 0x11b,13,
                      84,193,137
      PUSHBUTTON      "&Hinzufügen...",IDC_ADD,51,227,50,14
      PUSHBUTTON      "Ä&ndern...",IDC_EDIT,104,227,50,14
***************
*** 428,434 ****
      PUSHBUTTON      "&Hinzufügen",IDC_ADD,108,117,42,14
      GROUPBOX        "Global zugeordnete AFS-Laufwerke",IDC_STATIC,7,7,239,
                      133
!     CONTROL         "",IDC_GLOBAL_DRIVE_LIST,"FastList",WS_BORDER | 
                      WS_TABSTOP | 0x1b,14,20,226,89
      PUSHBUTTON      "Ä&ndern",IDC_CHANGE,153,117,42,14
      PUSHBUTTON      "&Entfernen",IDC_REMOVE,198,117,42,14
--- 428,434 ----
      PUSHBUTTON      "&Hinzufügen",IDC_ADD,108,117,42,14
      GROUPBOX        "Global zugeordnete AFS-Laufwerke",IDC_STATIC,7,7,239,
                      133
!     CONTROL         "",IDC_GLOBAL_DRIVE_LIST,"OpenAFS_FastList",WS_BORDER | 
                      WS_TABSTOP | 0x1b,14,20,226,89
      PUSHBUTTON      "Ä&ndern",IDC_CHANGE,153,117,42,14
      PUSHBUTTON      "&Entfernen",IDC_REMOVE,198,117,42,14
Index: openafs/src/WINNT/client_config/lang/en_US/afs_config.rc
diff -c openafs/src/WINNT/client_config/lang/en_US/afs_config.rc:1.7.6.1 openafs/src/WINNT/client_config/lang/en_US/afs_config.rc:1.7.6.2
*** openafs/src/WINNT/client_config/lang/en_US/afs_config.rc:1.7.6.1	Wed Sep 13 13:51:57 2006
--- openafs/src/WINNT/client_config/lang/en_US/afs_config.rc	Tue Dec 12 15:41:15 2006
***************
*** 92,98 ****
                      BS_AUTORADIOBUTTON,13,21,193,10
      CONTROL         "Show &Volume Location Server preferences",IDC_SHOW_VLS,
                      "Button",BS_AUTORADIOBUTTON,13,34,193,10
!     CONTROL         "",IDC_LIST,"FastList",WS_BORDER | WS_TABSTOP | 0xb,13,
                      49,173,120
      PUSHBUTTON      "&Add...",IDC_ADD,84,172,50,14
      PUSHBUTTON      "&Change...",IDC_EDIT,137,172,50,14
--- 92,98 ----
                      BS_AUTORADIOBUTTON,13,21,193,10
      CONTROL         "Show &Volume Location Server preferences",IDC_SHOW_VLS,
                      "Button",BS_AUTORADIOBUTTON,13,34,193,10
!     CONTROL         "",IDC_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 0xb,13,
                      49,173,120
      PUSHBUTTON      "&Add...",IDC_ADD,84,172,50,14
      PUSHBUTTON      "&Change...",IDC_EDIT,137,172,50,14
***************
*** 109,115 ****
  FONT 9, "MS Shell Dlg"
  BEGIN
      GROUPBOX        "AFS Cells",IDC_STATIC,7,7,206,211
!     CONTROL         "",IDC_LIST,"FastList",WS_BORDER | WS_TABSTOP | 0x11b,13,
                      21,193,168
      PUSHBUTTON      "&Add...",IDC_ADD,51,195,50,14
      PUSHBUTTON      "&Change...",IDC_EDIT,104,195,50,14
--- 109,115 ----
  FONT 9, "MS Shell Dlg"
  BEGIN
      GROUPBOX        "AFS Cells",IDC_STATIC,7,7,206,211
!     CONTROL         "",IDC_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 0x11b,13,
                      21,193,168
      PUSHBUTTON      "&Add...",IDC_ADD,51,195,50,14
      PUSHBUTTON      "&Change...",IDC_EDIT,104,195,50,14
***************
*** 122,128 ****
  FONT 9, "MS Shell Dlg"
  BEGIN
      GROUPBOX        "Drive Letters",IDC_STATIC,7,7,206,211
!     CONTROL         "",IDC_LIST,"CheckList",WS_BORDER | WS_TABSTOP | 0x153,
                      13,32,193,135
      PUSHBUTTON      "&Add...",IDC_ADD,75,171,42,14
      PUSHBUTTON      "&Change...",IDC_EDIT,120,171,42,14
--- 122,128 ----
  FONT 9, "MS Shell Dlg"
  BEGIN
      GROUPBOX        "Drive Letters",IDC_STATIC,7,7,206,211
!     CONTROL         "",IDC_LIST,"OpenAFS_CheckList",WS_BORDER | WS_TABSTOP | 0x153,
                      13,32,193,135
      PUSHBUTTON      "&Add...",IDC_ADD,75,171,42,14
      PUSHBUTTON      "&Change...",IDC_EDIT,120,171,42,14
***************
*** 200,206 ****
      LTEXT           "&Submount:",IDC_STATIC,4,41,38,8
      EDITTEXT        IDC_COMMENT,50,39,181,13,ES_AUTOHSCROLL
      GROUPBOX        "Servers",IDC_STATIC,4,61,236,158
!     CONTROL         "",IDC_LIST,"FastList",WS_BORDER | WS_TABSTOP | 0x1b,13,
                      76,217,117
      PUSHBUTTON      "&Add...",IDC_ADD,75,198,50,14
      PUSHBUTTON      "&Change...",IDC_EDIT,128,198,50,14
--- 200,206 ----
      LTEXT           "&Submount:",IDC_STATIC,4,41,38,8
      EDITTEXT        IDC_COMMENT,50,39,181,13,ES_AUTOHSCROLL
      GROUPBOX        "Servers",IDC_STATIC,4,61,236,158
!     CONTROL         "",IDC_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 0x1b,13,
                      76,217,117
      PUSHBUTTON      "&Add...",IDC_ADD,75,198,50,14
      PUSHBUTTON      "&Change...",IDC_EDIT,128,198,50,14
***************
*** 261,267 ****
      GROUPBOX        "Submounts",IDC_STATIC,4,26,236,168
      LTEXT           "The following submounts are shared from this computer:",
                      IDC_STATIC,10,42,176,8
!     CONTROL         "",IDC_LIST,"FastList",WS_BORDER | WS_TABSTOP | 0x413,10,
                      54,223,115
      PUSHBUTTON      "&Add...",IDC_ADD,78,173,50,14
      PUSHBUTTON      "&Change...",IDC_EDIT,131,173,50,14
--- 261,267 ----
      GROUPBOX        "Submounts",IDC_STATIC,4,26,236,168
      LTEXT           "The following submounts are shared from this computer:",
                      IDC_STATIC,10,42,176,8
!     CONTROL         "",IDC_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 0x413,10,
                      54,223,115
      PUSHBUTTON      "&Add...",IDC_ADD,78,173,50,14
      PUSHBUTTON      "&Change...",IDC_EDIT,131,173,50,14
***************
*** 292,298 ****
  FONT 9, "MS Shell Dlg"
  BEGIN
      GROUPBOX        "Drive Letters",IDC_STATIC,7,7,231,131
!     CONTROL         "",IDC_LIST,"CheckList",WS_BORDER | WS_TABSTOP | 0x153,
                      13,32,219,60
      PUSHBUTTON      "&Add...",IDC_ADD,100,95,42,14
      PUSHBUTTON      "&Change...",IDC_EDIT,145,95,42,14
--- 292,298 ----
  FONT 9, "MS Shell Dlg"
  BEGIN
      GROUPBOX        "Drive Letters",IDC_STATIC,7,7,231,131
!     CONTROL         "",IDC_LIST,"OpenAFS_CheckList",WS_BORDER | WS_TABSTOP | 0x153,
                      13,32,219,60
      PUSHBUTTON      "&Add...",IDC_ADD,100,95,42,14
      PUSHBUTTON      "&Change...",IDC_EDIT,145,95,42,14
***************
*** 309,315 ****
  FONT 9, "MS Shell Dlg"
  BEGIN
      GROUPBOX        "AFS Cells",IDC_STATIC,7,7,231,131
!     CONTROL         "",IDC_LIST,"FastList",WS_BORDER | WS_TABSTOP | 0x11b,13,
                      19,218,94
      PUSHBUTTON      "&Add...",IDC_ADD,75,116,50,14
      PUSHBUTTON      "&Change...",IDC_EDIT,128,116,50,14
--- 309,315 ----
  FONT 9, "MS Shell Dlg"
  BEGIN
      GROUPBOX        "AFS Cells",IDC_STATIC,7,7,231,131
!     CONTROL         "",IDC_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 0x11b,13,
                      19,218,94
      PUSHBUTTON      "&Add...",IDC_ADD,75,116,50,14
      PUSHBUTTON      "&Change...",IDC_EDIT,128,116,50,14
***************
*** 341,347 ****
      LTEXT           "Default Cell:",IDC_STATIC,14,37,39,8
      EDITTEXT        IDC_CELL,59,35,147,14,ES_LOWERCASE | ES_AUTOHSCROLL
      GROUPBOX        "AFS Cells",IDC_STATIC,7,69,206,180
!     CONTROL         "",IDC_LIST,"FastList",WS_BORDER | WS_TABSTOP | 0x11b,13,
                      84,193,137
      PUSHBUTTON      "&Add...",IDC_ADD,51,227,50,14
      PUSHBUTTON      "&Change...",IDC_EDIT,104,227,50,14
--- 341,347 ----
      LTEXT           "Default Cell:",IDC_STATIC,14,37,39,8
      EDITTEXT        IDC_CELL,59,35,147,14,ES_LOWERCASE | ES_AUTOHSCROLL
      GROUPBOX        "AFS Cells",IDC_STATIC,7,69,206,180
!     CONTROL         "",IDC_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 0x11b,13,
                      84,193,137
      PUSHBUTTON      "&Add...",IDC_ADD,51,227,50,14
      PUSHBUTTON      "&Change...",IDC_EDIT,104,227,50,14
***************
*** 420,426 ****
      PUSHBUTTON      "Help",9,196,148,50,14
      PUSHBUTTON      "&Add",IDC_ADD,108,117,42,14
      GROUPBOX        "Globally Mapped AFS Drives",IDC_STATIC,7,7,239,133
!     CONTROL         "",IDC_GLOBAL_DRIVE_LIST,"FastList",WS_BORDER | 
                      WS_TABSTOP | 0x1b,14,20,226,89
      PUSHBUTTON      "&Change",IDC_CHANGE,153,117,42,14
      PUSHBUTTON      "&Remove",IDC_REMOVE,198,117,42,14
--- 420,426 ----
      PUSHBUTTON      "Help",9,196,148,50,14
      PUSHBUTTON      "&Add",IDC_ADD,108,117,42,14
      GROUPBOX        "Globally Mapped AFS Drives",IDC_STATIC,7,7,239,133
!     CONTROL         "",IDC_GLOBAL_DRIVE_LIST,"OpenAFS_FastList",WS_BORDER | 
                      WS_TABSTOP | 0x1b,14,20,226,89
      PUSHBUTTON      "&Change",IDC_CHANGE,153,117,42,14
      PUSHBUTTON      "&Remove",IDC_REMOVE,198,117,42,14
Index: openafs/src/WINNT/client_config/lang/es_ES/afs_config.rc
diff -c openafs/src/WINNT/client_config/lang/es_ES/afs_config.rc:1.5.6.1 openafs/src/WINNT/client_config/lang/es_ES/afs_config.rc:1.5.6.2
*** openafs/src/WINNT/client_config/lang/es_ES/afs_config.rc:1.5.6.1	Wed Sep 13 13:51:58 2006
--- openafs/src/WINNT/client_config/lang/es_ES/afs_config.rc	Tue Dec 12 15:41:15 2006
***************
*** 95,101 ****
                      IDC_SHOW_FS,"Button",BS_AUTORADIOBUTTON,13,21,193,10
      CONTROL         "Mostrar preferencias de servidor de ubicación de &volumen",
                      IDC_SHOW_VLS,"Button",BS_AUTORADIOBUTTON,13,34,194,10
!     CONTROL         "",IDC_LIST,"FastList",WS_BORDER | WS_TABSTOP | 0xb,13,
                      49,173,120
      PUSHBUTTON      "&Añadir...",IDC_ADD,84,172,50,14
      PUSHBUTTON      "&Cambiar...",IDC_EDIT,137,172,50,14
--- 95,101 ----
                      IDC_SHOW_FS,"Button",BS_AUTORADIOBUTTON,13,21,193,10
      CONTROL         "Mostrar preferencias de servidor de ubicación de &volumen",
                      IDC_SHOW_VLS,"Button",BS_AUTORADIOBUTTON,13,34,194,10
!     CONTROL         "",IDC_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 0xb,13,
                      49,173,120
      PUSHBUTTON      "&Añadir...",IDC_ADD,84,172,50,14
      PUSHBUTTON      "&Cambiar...",IDC_EDIT,137,172,50,14
***************
*** 112,118 ****
  FONT 9, "MS Shell Dlg"
  BEGIN
      GROUPBOX        "Células de AFS",IDC_STATIC,7,7,206,211
!     CONTROL         "",IDC_LIST,"FastList",WS_BORDER | WS_TABSTOP | 0x11b,13,
                      21,193,168
      PUSHBUTTON      "&Añadir...",IDC_ADD,51,195,50,14
      PUSHBUTTON      "&Cambiar...",IDC_EDIT,104,195,50,14
--- 112,118 ----
  FONT 9, "MS Shell Dlg"
  BEGIN
      GROUPBOX        "Células de AFS",IDC_STATIC,7,7,206,211
!     CONTROL         "",IDC_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 0x11b,13,
                      21,193,168
      PUSHBUTTON      "&Añadir...",IDC_ADD,51,195,50,14
      PUSHBUTTON      "&Cambiar...",IDC_EDIT,104,195,50,14
***************
*** 125,131 ****
  FONT 9, "MS Shell Dlg"
  BEGIN
      GROUPBOX        "Letras de unidad",IDC_STATIC,7,7,206,233
!     CONTROL         "",IDC_LIST,"CheckList",WS_BORDER | WS_TABSTOP | 0x153,
                      13,40,193,135
      PUSHBUTTON      "&Añadir...",IDC_ADD,75,182,42,14
      PUSHBUTTON      "&Cambiar...",IDC_EDIT,120,182,42,14
--- 125,131 ----
  FONT 9, "MS Shell Dlg"
  BEGIN
      GROUPBOX        "Letras de unidad",IDC_STATIC,7,7,206,233
!     CONTROL         "",IDC_LIST,"OpenAFS_CheckList",WS_BORDER | WS_TABSTOP | 0x153,
                      13,40,193,135
      PUSHBUTTON      "&Añadir...",IDC_ADD,75,182,42,14
      PUSHBUTTON      "&Cambiar...",IDC_EDIT,120,182,42,14
***************
*** 200,206 ****
      LTEXT           "&Descripción:",IDC_STATIC,4,41,44,8
      EDITTEXT        IDC_COMMENT,55,39,181,13,ES_AUTOHSCROLL
      GROUPBOX        "Servidores",IDC_STATIC,4,61,236,158
!     CONTROL         "",IDC_LIST,"FastList",WS_BORDER | WS_TABSTOP | 0x1b,13,
                      76,217,117
      PUSHBUTTON      "A&ñadir...",IDC_ADD,75,198,50,14
      PUSHBUTTON      "&Cambiar...",IDC_EDIT,128,198,50,14
--- 200,206 ----
      LTEXT           "&Descripción:",IDC_STATIC,4,41,44,8
      EDITTEXT        IDC_COMMENT,55,39,181,13,ES_AUTOHSCROLL
      GROUPBOX        "Servidores",IDC_STATIC,4,61,236,158
!     CONTROL         "",IDC_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 0x1b,13,
                      76,217,117
      PUSHBUTTON      "A&ñadir...",IDC_ADD,75,198,50,14
      PUSHBUTTON      "&Cambiar...",IDC_EDIT,128,198,50,14
***************
*** 262,268 ****
      GROUPBOX        "Submontajes",IDC_STATIC,4,26,236,168
      LTEXT           "Los siguientes submontajes se comparten desde este sistema:",
                      IDC_STATIC,10,42,219,8
!     CONTROL         "",IDC_LIST,"FastList",WS_BORDER | WS_TABSTOP | 0x413,10,
                      54,223,115
      PUSHBUTTON      "&Añadir...",IDC_ADD,78,173,50,14
      PUSHBUTTON      "&Cambiar...",IDC_EDIT,131,173,50,14
--- 262,268 ----
      GROUPBOX        "Submontajes",IDC_STATIC,4,26,236,168
      LTEXT           "Los siguientes submontajes se comparten desde este sistema:",
                      IDC_STATIC,10,42,219,8
!     CONTROL         "",IDC_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 0x413,10,
                      54,223,115
      PUSHBUTTON      "&Añadir...",IDC_ADD,78,173,50,14
      PUSHBUTTON      "&Cambiar...",IDC_EDIT,131,173,50,14
***************
*** 293,299 ****
  FONT 9, "MS Shell Dlg"
  BEGIN
      GROUPBOX        "Letras de unidad",IDC_STATIC,7,7,231,131
!     CONTROL         "",IDC_LIST,"CheckList",WS_BORDER | WS_TABSTOP | 0x153,
                      13,28,219,60
      PUSHBUTTON      "&Añadir...",IDC_ADD,100,91,42,14
      PUSHBUTTON      "&Cambiar...",IDC_EDIT,145,91,42,14
--- 293,299 ----
  FONT 9, "MS Shell Dlg"
  BEGIN
      GROUPBOX        "Letras de unidad",IDC_STATIC,7,7,231,131
!     CONTROL         "",IDC_LIST,"OpenAFS_CheckList",WS_BORDER | WS_TABSTOP | 0x153,
                      13,28,219,60
      PUSHBUTTON      "&Añadir...",IDC_ADD,100,91,42,14
      PUSHBUTTON      "&Cambiar...",IDC_EDIT,145,91,42,14
***************
*** 310,316 ****
  FONT 9, "MS Shell Dlg"
  BEGIN
      GROUPBOX        "Células de AFS",IDC_STATIC,7,7,231,131
!     CONTROL         "",IDC_LIST,"FastList",WS_BORDER | WS_TABSTOP | 0x11b,13,
                      19,218,94
      PUSHBUTTON      "&Añadir...",IDC_ADD,75,116,50,14
      PUSHBUTTON      "&Cambiar...",IDC_EDIT,128,116,50,14
--- 310,316 ----
  FONT 9, "MS Shell Dlg"
  BEGIN
      GROUPBOX        "Células de AFS",IDC_STATIC,7,7,231,131
!     CONTROL         "",IDC_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 0x11b,13,
                      19,218,94
      PUSHBUTTON      "&Añadir...",IDC_ADD,75,116,50,14
      PUSHBUTTON      "&Cambiar...",IDC_EDIT,128,116,50,14
***************
*** 342,348 ****
      LTEXT           "Célula por omisión:",IDC_STATIC,14,33,39,16
      EDITTEXT        IDC_CELL,59,35,147,14,ES_LOWERCASE | ES_AUTOHSCROLL
      GROUPBOX        "Células de AFS",IDC_STATIC,7,69,206,180
!     CONTROL         "",IDC_LIST,"FastList",WS_BORDER | WS_TABSTOP | 0x11b,13,
                      84,193,137
      PUSHBUTTON      "&Añadir...",IDC_ADD,51,227,50,14
      PUSHBUTTON      "&Cambiar...",IDC_EDIT,104,227,50,14
--- 342,348 ----
      LTEXT           "Célula por omisión:",IDC_STATIC,14,33,39,16
      EDITTEXT        IDC_CELL,59,35,147,14,ES_LOWERCASE | ES_AUTOHSCROLL
      GROUPBOX        "Células de AFS",IDC_STATIC,7,69,206,180
!     CONTROL         "",IDC_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 0x11b,13,
                      84,193,137
      PUSHBUTTON      "&Añadir...",IDC_ADD,51,227,50,14
      PUSHBUTTON      "&Cambiar...",IDC_EDIT,104,227,50,14
***************
*** 430,436 ****
      PUSHBUTTON      "&Añadir",IDC_ADD,108,117,42,14
      GROUPBOX        "Unidades de AFS correlacionadas globalmente",IDC_STATIC,
                      7,7,239,133
!     CONTROL         "",IDC_GLOBAL_DRIVE_LIST,"FastList",WS_BORDER | 
                      WS_TABSTOP | 0x1b,14,20,226,89
      PUSHBUTTON      "&Cambiar",IDC_CHANGE,153,117,42,14
      PUSHBUTTON      "&Eliminar",IDC_REMOVE,198,117,42,14
--- 430,436 ----
      PUSHBUTTON      "&Añadir",IDC_ADD,108,117,42,14
      GROUPBOX        "Unidades de AFS correlacionadas globalmente",IDC_STATIC,
                      7,7,239,133
!     CONTROL         "",IDC_GLOBAL_DRIVE_LIST,"OpenAFS_FastList",WS_BORDER | 
                      WS_TABSTOP | 0x1b,14,20,226,89
      PUSHBUTTON      "&Cambiar",IDC_CHANGE,153,117,42,14
      PUSHBUTTON      "&Eliminar",IDC_REMOVE,198,117,42,14
Index: openafs/src/WINNT/client_config/lang/ja_JP/afs_config.rc
diff -c openafs/src/WINNT/client_config/lang/ja_JP/afs_config.rc:1.5.6.1 openafs/src/WINNT/client_config/lang/ja_JP/afs_config.rc:1.5.6.2
*** openafs/src/WINNT/client_config/lang/ja_JP/afs_config.rc:1.5.6.1	Wed Sep 13 13:51:58 2006
--- openafs/src/WINNT/client_config/lang/ja_JP/afs_config.rc	Tue Dec 12 15:41:16 2006
***************
*** 95,101 ****
                      BS_AUTORADIOBUTTON,10,21,193,10
      CONTROL         "ƒ{ƒŠƒ…[ƒ€EƒƒP[ƒVƒ‡ƒ“EƒT[ƒo[Ý’è‚Ì•\Ž¦(&V)",
                      IDC_SHOW_VLS,"Button",BS_AUTORADIOBUTTON,10,36,193,10
!     CONTROL         "",IDC_LIST,"FastList",WS_BORDER | WS_TABSTOP | 0xb,13,
                      54,173,115
      PUSHBUTTON      "’Ç‰Á(&A)...",IDC_ADD,81,173,50,14
      PUSHBUTTON      "•ÏX(&C)...",IDC_EDIT,137,173,50,14
--- 95,101 ----
                      BS_AUTORADIOBUTTON,10,21,193,10
      CONTROL         "ƒ{ƒŠƒ…[ƒ€EƒƒP[ƒVƒ‡ƒ“EƒT[ƒo[Ý’è‚Ì•\Ž¦(&V)",
                      IDC_SHOW_VLS,"Button",BS_AUTORADIOBUTTON,10,36,193,10
!     CONTROL         "",IDC_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 0xb,13,
                      54,173,115
      PUSHBUTTON      "’Ç‰Á(&A)...",IDC_ADD,81,173,50,14
      PUSHBUTTON      "•ÏX(&C)...",IDC_EDIT,137,173,50,14
***************
*** 112,118 ****
  FONT 9, "‚l‚r ‚oƒSƒVƒbƒN"
  BEGIN
      GROUPBOX        "AFS ƒZƒ‹",IDC_STATIC,7,7,206,211
!     CONTROL         "",IDC_LIST,"FastList",WS_BORDER | WS_TABSTOP | 0x11b,13,
                      21,193,168
      PUSHBUTTON      "’Ç‰Á(&A)...",IDC_ADD,51,195,50,14
      PUSHBUTTON      "•ÏX(&C)...",IDC_EDIT,104,195,50,14
--- 112,118 ----
  FONT 9, "‚l‚r ‚oƒSƒVƒbƒN"
  BEGIN
      GROUPBOX        "AFS ƒZƒ‹",IDC_STATIC,7,7,206,211
!     CONTROL         "",IDC_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 0x11b,13,
                      21,193,168
      PUSHBUTTON      "’Ç‰Á(&A)...",IDC_ADD,51,195,50,14
      PUSHBUTTON      "•ÏX(&C)...",IDC_EDIT,104,195,50,14
***************
*** 125,131 ****
  FONT 9, "‚l‚r ‚oƒSƒVƒbƒN"
  BEGIN
      GROUPBOX        "ƒhƒ‰ƒCƒu–¼",IDC_STATIC,7,7,206,211
!     CONTROL         "",IDC_LIST,"CheckList",WS_BORDER | WS_TABSTOP | 0x153,
                      13,32,193,135
      PUSHBUTTON      "’Ç‰Á(&A)...",IDC_ADD,75,171,42,14
      PUSHBUTTON      "•ÏX(&C)...",IDC_EDIT,120,171,42,14
--- 125,131 ----
  FONT 9, "‚l‚r ‚oƒSƒVƒbƒN"
  BEGIN
      GROUPBOX        "ƒhƒ‰ƒCƒu–¼",IDC_STATIC,7,7,206,211
!     CONTROL         "",IDC_LIST,"OpenAFS_CheckList",WS_BORDER | WS_TABSTOP | 0x153,
                      13,32,193,135
      PUSHBUTTON      "’Ç‰Á(&A)...",IDC_ADD,75,171,42,14
      PUSHBUTTON      "•ÏX(&C)...",IDC_EDIT,120,171,42,14
***************
*** 199,205 ****
      LTEXT           "‹Lq(&D):",IDC_STATIC,4,41,38,8
      EDITTEXT        IDC_COMMENT,64,39,176,13,ES_AUTOHSCROLL
      GROUPBOX        "ƒT[ƒo[",IDC_STATIC,4,61,236,158
!     CONTROL         "",IDC_LIST,"FastList",WS_BORDER | WS_TABSTOP | 0x1b,13,
                      76,217,117
      PUSHBUTTON      "’Ç‰Á(&A)...",IDC_ADD,75,198,50,14
      PUSHBUTTON      "•ÏX(&C)...",IDC_EDIT,128,198,50,14
--- 199,205 ----
      LTEXT           "‹Lq(&D):",IDC_STATIC,4,41,38,8
      EDITTEXT        IDC_COMMENT,64,39,176,13,ES_AUTOHSCROLL
      GROUPBOX        "ƒT[ƒo[",IDC_STATIC,4,61,236,158
!     CONTROL         "",IDC_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 0x1b,13,
                      76,217,117
      PUSHBUTTON      "’Ç‰Á(&A)...",IDC_ADD,75,198,50,14
      PUSHBUTTON      "•ÏX(&C)...",IDC_EDIT,128,198,50,14
***************
*** 260,266 ****
      GROUPBOX        "ƒTƒuƒ}ƒEƒ“ƒg",IDC_STATIC,4,26,236,168
      LTEXT           "ˆÈ‰º‚ÌƒTƒuƒ}ƒEƒ“ƒg‚ª‚±‚ÌƒRƒ“ƒsƒ…[ƒ^[‚©‚ç‹¤—p‚³‚ê‚Ü‚·:",
                      IDC_STATIC,10,42,223,8
!     CONTROL         "",IDC_LIST,"FastList",WS_BORDER | WS_TABSTOP | 0x413,10,
                      55,223,115
      PUSHBUTTON      "’Ç‰Á(&A)...",IDC_ADD,78,175,50,14
      PUSHBUTTON      "•ÏX(&C)...",IDC_EDIT,131,175,50,14
--- 260,266 ----
      GROUPBOX        "ƒTƒuƒ}ƒEƒ“ƒg",IDC_STATIC,4,26,236,168
      LTEXT           "ˆÈ‰º‚ÌƒTƒuƒ}ƒEƒ“ƒg‚ª‚±‚ÌƒRƒ“ƒsƒ…[ƒ^[‚©‚ç‹¤—p‚³‚ê‚Ü‚·:",
                      IDC_STATIC,10,42,223,8
!     CONTROL         "",IDC_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 0x413,10,
                      55,223,115
      PUSHBUTTON      "’Ç‰Á(&A)...",IDC_ADD,78,175,50,14
      PUSHBUTTON      "•ÏX(&C)...",IDC_EDIT,131,175,50,14
***************
*** 291,297 ****
  FONT 9, "‚l‚r ‚oƒSƒVƒbƒN"
  BEGIN
      GROUPBOX        "ƒhƒ‰ƒCƒu–¼",IDC_STATIC,7,7,231,131
!     CONTROL         "",IDC_LIST,"CheckList",WS_BORDER | WS_TABSTOP | 0x153,
                      13,32,219,60
      PUSHBUTTON      "’Ç‰Á(&A)...",IDC_ADD,100,95,42,14
      PUSHBUTTON      "•ÏX(&C)...",IDC_EDIT,145,95,42,14
--- 291,297 ----
  FONT 9, "‚l‚r ‚oƒSƒVƒbƒN"
  BEGIN
      GROUPBOX        "ƒhƒ‰ƒCƒu–¼",IDC_STATIC,7,7,231,131
!     CONTROL         "",IDC_LIST,"OpenAFS_CheckList",WS_BORDER | WS_TABSTOP | 0x153,
                      13,32,219,60
      PUSHBUTTON      "’Ç‰Á(&A)...",IDC_ADD,100,95,42,14
      PUSHBUTTON      "•ÏX(&C)...",IDC_EDIT,145,95,42,14
***************
*** 308,314 ****
  FONT 9, "‚l‚r ‚oƒSƒVƒbƒN"
  BEGIN
      GROUPBOX        "AFS ƒZƒ‹",IDC_STATIC,7,7,231,131
!     CONTROL         "",IDC_LIST,"FastList",WS_BORDER | WS_TABSTOP | 0x11b,13,
                      21,218,94
      PUSHBUTTON      "’Ç‰Á(&A)...",IDC_ADD,75,119,50,14
      PUSHBUTTON      "•ÏX(&C)...",IDC_EDIT,128,119,50,14
--- 308,314 ----
  FONT 9, "‚l‚r ‚oƒSƒVƒbƒN"
  BEGIN
      GROUPBOX        "AFS ƒZƒ‹",IDC_STATIC,7,7,231,131
!     CONTROL         "",IDC_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 0x11b,13,
                      21,218,94
      PUSHBUTTON      "’Ç‰Á(&A)...",IDC_ADD,75,119,50,14
      PUSHBUTTON      "•ÏX(&C)...",IDC_EDIT,128,119,50,14
***************
*** 340,346 ****
      LTEXT           "ƒfƒtƒHƒ‹ƒgEƒZƒ‹:",IDC_STATIC,8,37,50,8
      EDITTEXT        IDC_CELL,68,45,143,14,ES_LOWERCASE | ES_AUTOHSCROLL
      GROUPBOX        "AFS ƒZƒ‹",IDC_STATIC,7,69,206,180
!     CONTROL         "",IDC_LIST,"FastList",WS_BORDER | WS_TABSTOP | 0x11b,13,
                      84,193,137
      PUSHBUTTON      "’Ç‰Á(&A)...",IDC_ADD,51,227,50,14
      PUSHBUTTON      "•ÏX(&C)...",IDC_EDIT,104,227,50,14
--- 340,346 ----
      LTEXT           "ƒfƒtƒHƒ‹ƒgEƒZƒ‹:",IDC_STATIC,8,37,50,8
      EDITTEXT        IDC_CELL,68,45,143,14,ES_LOWERCASE | ES_AUTOHSCROLL
      GROUPBOX        "AFS ƒZƒ‹",IDC_STATIC,7,69,206,180
!     CONTROL         "",IDC_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 0x11b,13,
                      84,193,137
      PUSHBUTTON      "’Ç‰Á(&A)...",IDC_ADD,51,227,50,14
      PUSHBUTTON      "•ÏX(&C)...",IDC_EDIT,104,227,50,14
***************
*** 422,428 ****
      PUSHBUTTON      "’Ç‰Á(&A)",IDC_ADD,108,119,42,14
      GROUPBOX        "ƒOƒ[ƒoƒ‹‚Éƒ}ƒbƒsƒ“ƒO‚³‚ê‚é AFS ƒhƒ‰ƒCƒu",IDC_STATIC,7,
                      7,239,133
!     CONTROL         "",IDC_GLOBAL_DRIVE_LIST,"FastList",WS_BORDER | 
                      WS_TABSTOP | 0x1b,14,22,226,89
      PUSHBUTTON      "•ÏX(&C)",IDC_CHANGE,153,119,42,14
      PUSHBUTTON      "íœ(&R)",IDC_REMOVE,198,119,42,14
--- 422,428 ----
      PUSHBUTTON      "’Ç‰Á(&A)",IDC_ADD,108,119,42,14
      GROUPBOX        "ƒOƒ[ƒoƒ‹‚Éƒ}ƒbƒsƒ“ƒO‚³‚ê‚é AFS ƒhƒ‰ƒCƒu",IDC_STATIC,7,
                      7,239,133
!     CONTROL         "",IDC_GLOBAL_DRIVE_LIST,"OpenAFS_FastList",WS_BORDER | 
                      WS_TABSTOP | 0x1b,14,22,226,89
      PUSHBUTTON      "•ÏX(&C)",IDC_CHANGE,153,119,42,14
      PUSHBUTTON      "íœ(&R)",IDC_REMOVE,198,119,42,14
Index: openafs/src/WINNT/client_config/lang/ko_KR/afs_config.rc
diff -c openafs/src/WINNT/client_config/lang/ko_KR/afs_config.rc:1.5.6.1 openafs/src/WINNT/client_config/lang/ko_KR/afs_config.rc:1.5.6.2
*** openafs/src/WINNT/client_config/lang/ko_KR/afs_config.rc:1.5.6.1	Wed Sep 13 13:51:59 2006
--- openafs/src/WINNT/client_config/lang/ko_KR/afs_config.rc	Tue Dec 12 15:41:17 2006
***************
*** 92,98 ****
                      BS_AUTORADIOBUTTON,13,21,193,10
      CONTROL         "º¼·ý À§Ä¡ ¼­¹ö È¯°æ ¼³Á¤ Ç¥½Ã(&V)",IDC_SHOW_VLS,"Button",
                      BS_AUTORADIOBUTTON,13,34,193,10
!     CONTROL         "",IDC_LIST,"FastList",WS_BORDER | WS_TABSTOP | 0xb,13,
                      49,173,120
      PUSHBUTTON      "Ãß°¡(&A)...",IDC_ADD,84,172,50,14
      PUSHBUTTON      "º¯°æ(&C)...",IDC_EDIT,137,172,50,14
--- 92,98 ----
                      BS_AUTORADIOBUTTON,13,21,193,10
      CONTROL         "º¼·ý À§Ä¡ ¼­¹ö È¯°æ ¼³Á¤ Ç¥½Ã(&V)",IDC_SHOW_VLS,"Button",
                      BS_AUTORADIOBUTTON,13,34,193,10
!     CONTROL         "",IDC_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 0xb,13,
                      49,173,120
      PUSHBUTTON      "Ãß°¡(&A)...",IDC_ADD,84,172,50,14
      PUSHBUTTON      "º¯°æ(&C)...",IDC_EDIT,137,172,50,14
***************
*** 109,115 ****
  FONT 9, "±¼¸²"
  BEGIN
      GROUPBOX        "AFS ¼¿",IDC_STATIC,7,7,206,211
!     CONTROL         "",IDC_LIST,"FastList",WS_BORDER | WS_TABSTOP | 0x11b,13,
                      21,193,168
      PUSHBUTTON      "Ãß°¡(&A)...",IDC_ADD,51,195,50,14
      PUSHBUTTON      "º¯°æ(&C)...",IDC_EDIT,104,195,50,14
--- 109,115 ----
  FONT 9, "±¼¸²"
  BEGIN
      GROUPBOX        "AFS ¼¿",IDC_STATIC,7,7,206,211
!     CONTROL         "",IDC_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 0x11b,13,
                      21,193,168
      PUSHBUTTON      "Ãß°¡(&A)...",IDC_ADD,51,195,50,14
      PUSHBUTTON      "º¯°æ(&C)...",IDC_EDIT,104,195,50,14
***************
*** 122,128 ****
  FONT 9, "±¼¸²"
  BEGIN
      GROUPBOX        "µå¶óÀÌºê ÀÌ¸§",IDC_STATIC,7,7,206,211
!     CONTROL         "",IDC_LIST,"CheckList",WS_BORDER | WS_TABSTOP | 0x153,
                      13,32,193,135
      PUSHBUTTON      "Ãß°¡(&A)...",IDC_ADD,75,171,42,14
      PUSHBUTTON      "º¯°æ(&C)...",IDC_EDIT,120,171,42,14
--- 122,128 ----
  FONT 9, "±¼¸²"
  BEGIN
      GROUPBOX        "µå¶óÀÌºê ÀÌ¸§",IDC_STATIC,7,7,206,211
!     CONTROL         "",IDC_LIST,"OpenAFS_CheckList",WS_BORDER | WS_TABSTOP | 0x153,
                      13,32,193,135
      PUSHBUTTON      "Ãß°¡(&A)...",IDC_ADD,75,171,42,14
      PUSHBUTTON      "º¯°æ(&C)...",IDC_EDIT,120,171,42,14
***************
*** 194,200 ****
      LTEXT           "¼³¸í(&D):",IDC_STATIC,4,41,38,8
      EDITTEXT        IDC_COMMENT,50,39,181,13,ES_AUTOHSCROLL
      GROUPBOX        "¼­¹ö",IDC_STATIC,4,61,236,158
!     CONTROL         "",IDC_LIST,"FastList",WS_BORDER | WS_TABSTOP | 0x1b,13,
                      76,217,117
      PUSHBUTTON      "Ãß°¡(&A)...",IDC_ADD,75,198,50,14
      PUSHBUTTON      "º¯°æ(&C)...",IDC_EDIT,128,198,50,14
--- 194,200 ----
      LTEXT           "¼³¸í(&D):",IDC_STATIC,4,41,38,8
      EDITTEXT        IDC_COMMENT,50,39,181,13,ES_AUTOHSCROLL
      GROUPBOX        "¼­¹ö",IDC_STATIC,4,61,236,158
!     CONTROL         "",IDC_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 0x1b,13,
                      76,217,117
      PUSHBUTTON      "Ãß°¡(&A)...",IDC_ADD,75,198,50,14
      PUSHBUTTON      "º¯°æ(&C)...",IDC_EDIT,128,198,50,14
***************
*** 255,261 ****
      GROUPBOX        "¼­ºê¸¶¿îÆ®",IDC_STATIC,4,26,236,168
      LTEXT           "ÀÌ ÄÄÇ»ÅÍ¿¡¼­´Â ´ÙÀ½°ú °°Àº ¼­ºê¸¶¿îÆ®°¡ °øÀ¯µË´Ï´Ù.",
                      IDC_STATIC,10,42,176,8
!     CONTROL         "",IDC_LIST,"FastList",WS_BORDER | WS_TABSTOP | 0x413,10,
                      54,223,115
      PUSHBUTTON      "Ãß°¡(&A)...",IDC_ADD,78,173,50,14
      PUSHBUTTON      "º¯°æ(&C)...",IDC_EDIT,131,173,50,14
--- 255,261 ----
      GROUPBOX        "¼­ºê¸¶¿îÆ®",IDC_STATIC,4,26,236,168
      LTEXT           "ÀÌ ÄÄÇ»ÅÍ¿¡¼­´Â ´ÙÀ½°ú °°Àº ¼­ºê¸¶¿îÆ®°¡ °øÀ¯µË´Ï´Ù.",
                      IDC_STATIC,10,42,176,8
!     CONTROL         "",IDC_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 0x413,10,
                      54,223,115
      PUSHBUTTON      "Ãß°¡(&A)...",IDC_ADD,78,173,50,14
      PUSHBUTTON      "º¯°æ(&C)...",IDC_EDIT,131,173,50,14
***************
*** 286,292 ****
  FONT 9, "±¼¸²"
  BEGIN
      GROUPBOX        "µå¶óÀÌºê ÀÌ¸§",IDC_STATIC,7,7,231,131
!     CONTROL         "",IDC_LIST,"CheckList",WS_BORDER | WS_TABSTOP | 0x153,
                      13,32,219,60
      PUSHBUTTON      "Ãß°¡(&A)...",IDC_ADD,100,95,42,14
      PUSHBUTTON      "º¯°æ(&C)...",IDC_EDIT,145,95,42,14
--- 286,292 ----
  FONT 9, "±¼¸²"
  BEGIN
      GROUPBOX        "µå¶óÀÌºê ÀÌ¸§",IDC_STATIC,7,7,231,131
!     CONTROL         "",IDC_LIST,"OpenAFS_CheckList",WS_BORDER | WS_TABSTOP | 0x153,
                      13,32,219,60
      PUSHBUTTON      "Ãß°¡(&A)...",IDC_ADD,100,95,42,14
      PUSHBUTTON      "º¯°æ(&C)...",IDC_EDIT,145,95,42,14
***************
*** 303,309 ****
  FONT 9, "±¼¸²"
  BEGIN
      GROUPBOX        "AFS ¼¿",IDC_STATIC,7,7,231,131
!     CONTROL         "",IDC_LIST,"FastList",WS_BORDER | WS_TABSTOP | 0x11b,13,
                      19,218,94
      PUSHBUTTON      "Ãß°¡(&A)...",IDC_ADD,75,116,50,14
      PUSHBUTTON      "º¯°æ(&C)...",IDC_EDIT,128,116,50,14
--- 303,309 ----
  FONT 9, "±¼¸²"
  BEGIN
      GROUPBOX        "AFS ¼¿",IDC_STATIC,7,7,231,131
!     CONTROL         "",IDC_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 0x11b,13,
                      19,218,94
      PUSHBUTTON      "Ãß°¡(&A)...",IDC_ADD,75,116,50,14
      PUSHBUTTON      "º¯°æ(&C)...",IDC_EDIT,128,116,50,14
***************
*** 335,341 ****
      LTEXT           "±âº» ¼¿:",IDC_STATIC,14,37,39,8
      EDITTEXT        IDC_CELL,59,35,147,14,ES_LOWERCASE | ES_AUTOHSCROLL
      GROUPBOX        "AFS ¼¿",IDC_STATIC,7,69,206,180
!     CONTROL         "",IDC_LIST,"FastList",WS_BORDER | WS_TABSTOP | 0x11b,13,
                      84,193,137
      PUSHBUTTON      "Ãß°¡(&A)...",IDC_ADD,51,227,50,14
      PUSHBUTTON      "º¯°æ(&C)...",IDC_EDIT,104,227,50,14
--- 335,341 ----
      LTEXT           "±âº» ¼¿:",IDC_STATIC,14,37,39,8
      EDITTEXT        IDC_CELL,59,35,147,14,ES_LOWERCASE | ES_AUTOHSCROLL
      GROUPBOX        "AFS ¼¿",IDC_STATIC,7,69,206,180
!     CONTROL         "",IDC_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 0x11b,13,
                      84,193,137
      PUSHBUTTON      "Ãß°¡(&A)...",IDC_ADD,51,227,50,14
      PUSHBUTTON      "º¯°æ(&C)...",IDC_EDIT,104,227,50,14
***************
*** 416,422 ****
      PUSHBUTTON      "µµ¿ò¸»",9,196,148,50,14
      PUSHBUTTON      "Ãß°¡(&A)",IDC_ADD,108,117,42,14
      GROUPBOX        "Àü¿ªÀ¸·Î ´ëÀÀµÇ´Â AFS µå¶óÀÌºê",IDC_STATIC,7,7,239,133
!     CONTROL         "",IDC_GLOBAL_DRIVE_LIST,"FastList",WS_BORDER | 
                      WS_TABSTOP | 0x1b,14,20,226,89
      PUSHBUTTON      "º¯°æ(&C)",IDC_CHANGE,153,117,42,14
      PUSHBUTTON      "Á¦°Å(&R)",IDC_REMOVE,198,117,42,14
--- 416,422 ----
      PUSHBUTTON      "µµ¿ò¸»",9,196,148,50,14
      PUSHBUTTON      "Ãß°¡(&A)",IDC_ADD,108,117,42,14
      GROUPBOX        "Àü¿ªÀ¸·Î ´ëÀÀµÇ´Â AFS µå¶óÀÌºê",IDC_STATIC,7,7,239,133
!     CONTROL         "",IDC_GLOBAL_DRIVE_LIST,"OpenAFS_FastList",WS_BORDER | 
                      WS_TABSTOP | 0x1b,14,20,226,89
      PUSHBUTTON      "º¯°æ(&C)",IDC_CHANGE,153,117,42,14
      PUSHBUTTON      "Á¦°Å(&R)",IDC_REMOVE,198,117,42,14
Index: openafs/src/WINNT/client_config/lang/pt_BR/afs_config.rc
diff -c openafs/src/WINNT/client_config/lang/pt_BR/afs_config.rc:1.5.6.1 openafs/src/WINNT/client_config/lang/pt_BR/afs_config.rc:1.5.6.2
*** openafs/src/WINNT/client_config/lang/pt_BR/afs_config.rc:1.5.6.1	Wed Sep 13 13:51:59 2006
--- openafs/src/WINNT/client_config/lang/pt_BR/afs_config.rc	Tue Dec 12 15:41:17 2006
***************
*** 95,101 ****
                      IDC_SHOW_FS,"Button",BS_AUTORADIOBUTTON,9,18,193,10
      CONTROL         "Mostrar Preferências de Servidor de Localização de &Volumes",
                      IDC_SHOW_VLS,"Button",BS_AUTORADIOBUTTON,9,31,204,10
!     CONTROL         "",IDC_LIST,"FastList",WS_BORDER | WS_TABSTOP | 0xb,13,
                      52,173,120
      PUSHBUTTON      "&Incluir...",IDC_ADD,84,175,50,14
      PUSHBUTTON      "Al&terar...",IDC_EDIT,137,175,50,14
--- 95,101 ----
                      IDC_SHOW_FS,"Button",BS_AUTORADIOBUTTON,9,18,193,10
      CONTROL         "Mostrar Preferências de Servidor de Localização de &Volumes",
                      IDC_SHOW_VLS,"Button",BS_AUTORADIOBUTTON,9,31,204,10
!     CONTROL         "",IDC_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 0xb,13,
                      52,173,120
      PUSHBUTTON      "&Incluir...",IDC_ADD,84,175,50,14
      PUSHBUTTON      "Al&terar...",IDC_EDIT,137,175,50,14
***************
*** 112,118 ****
  FONT 9, "MS Shell Dlg"
  BEGIN
      GROUPBOX        "Células do AFS",IDC_STATIC,7,7,206,211
!     CONTROL         "",IDC_LIST,"FastList",WS_BORDER | WS_TABSTOP | 0x11b,13,
                      21,193,168
      PUSHBUTTON      "&Incluir...",IDC_ADD,51,195,50,14
      PUSHBUTTON      "Al&terar...",IDC_EDIT,104,195,50,14
--- 112,118 ----
  FONT 9, "MS Shell Dlg"
  BEGIN
      GROUPBOX        "Células do AFS",IDC_STATIC,7,7,206,211
!     CONTROL         "",IDC_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 0x11b,13,
                      21,193,168
      PUSHBUTTON      "&Incluir...",IDC_ADD,51,195,50,14
      PUSHBUTTON      "Al&terar...",IDC_EDIT,104,195,50,14
***************
*** 125,131 ****
  FONT 9, "MS Shell Dlg"
  BEGIN
      GROUPBOX        "Letras de Unidades",IDC_STATIC,7,7,206,211
!     CONTROL         "",IDC_LIST,"CheckList",WS_BORDER | WS_TABSTOP | 0x153,
                      13,28,193,135
      PUSHBUTTON      "&Incluir...",IDC_ADD,75,166,42,14
      PUSHBUTTON      "Al&terar...",IDC_EDIT,120,166,42,14
--- 125,131 ----
  FONT 9, "MS Shell Dlg"
  BEGIN
      GROUPBOX        "Letras de Unidades",IDC_STATIC,7,7,206,211
!     CONTROL         "",IDC_LIST,"OpenAFS_CheckList",WS_BORDER | WS_TABSTOP | 0x153,
                      13,28,193,135
      PUSHBUTTON      "&Incluir...",IDC_ADD,75,166,42,14
      PUSHBUTTON      "Al&terar...",IDC_EDIT,120,166,42,14
***************
*** 200,206 ****
      LTEXT           "&Descrição:",IDC_STATIC,4,44,38,8
      EDITTEXT        IDC_COMMENT,55,42,176,13,ES_AUTOHSCROLL
      GROUPBOX        "Servidores",IDC_STATIC,4,61,236,158
!     CONTROL         "",IDC_LIST,"FastList",WS_BORDER | WS_TABSTOP | 0x1b,13,
                      76,217,117
      PUSHBUTTON      "&Incluir...",IDC_ADD,75,198,50,14
      PUSHBUTTON      "Al&terar...",IDC_EDIT,128,198,50,14
--- 200,206 ----
      LTEXT           "&Descrição:",IDC_STATIC,4,44,38,8
      EDITTEXT        IDC_COMMENT,55,42,176,13,ES_AUTOHSCROLL
      GROUPBOX        "Servidores",IDC_STATIC,4,61,236,158
!     CONTROL         "",IDC_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 0x1b,13,
                      76,217,117
      PUSHBUTTON      "&Incluir...",IDC_ADD,75,198,50,14
      PUSHBUTTON      "Al&terar...",IDC_EDIT,128,198,50,14
***************
*** 262,268 ****
      GROUPBOX        "Submontagens",IDC_STATIC,4,22,236,168
      LTEXT           "As seguintes submontagens são compartilhadas a partir deste computador:",
                      IDC_STATIC,10,30,224,17
!     CONTROL         "",IDC_LIST,"FastList",WS_BORDER | WS_TABSTOP | 0x413,10,
                      49,223,115
      PUSHBUTTON      "&Incluir...",IDC_ADD,78,168,50,14
      PUSHBUTTON      "Al&terar...",IDC_EDIT,131,168,50,14
--- 262,268 ----
      GROUPBOX        "Submontagens",IDC_STATIC,4,22,236,168
      LTEXT           "As seguintes submontagens são compartilhadas a partir deste computador:",
                      IDC_STATIC,10,30,224,17
!     CONTROL         "",IDC_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 0x413,10,
                      49,223,115
      PUSHBUTTON      "&Incluir...",IDC_ADD,78,168,50,14
      PUSHBUTTON      "Al&terar...",IDC_EDIT,131,168,50,14
***************
*** 293,299 ****
  FONT 9, "MS Shell Dlg"
  BEGIN
      GROUPBOX        "Letras de Unidades",IDC_STATIC,7,7,231,131
!     CONTROL         "",IDC_LIST,"CheckList",WS_BORDER | WS_TABSTOP | 0x153,
                      13,29,219,60
      PUSHBUTTON      "&Incluir...",IDC_ADD,100,91,42,14
      PUSHBUTTON      "Al&terar...",IDC_EDIT,145,91,42,14
--- 293,299 ----
  FONT 9, "MS Shell Dlg"
  BEGIN
      GROUPBOX        "Letras de Unidades",IDC_STATIC,7,7,231,131
!     CONTROL         "",IDC_LIST,"OpenAFS_CheckList",WS_BORDER | WS_TABSTOP | 0x153,
                      13,29,219,60
      PUSHBUTTON      "&Incluir...",IDC_ADD,100,91,42,14
      PUSHBUTTON      "Al&terar...",IDC_EDIT,145,91,42,14
***************
*** 310,316 ****
  FONT 9, "MS Shell Dlg"
  BEGIN
      GROUPBOX        "Células do AFS",IDC_STATIC,7,7,231,131
!     CONTROL         "",IDC_LIST,"FastList",WS_BORDER | WS_TABSTOP | 0x11b,13,
                      19,218,94
      PUSHBUTTON      "&Incluir...",IDC_ADD,75,116,50,14
      PUSHBUTTON      "Al&terar...",IDC_EDIT,128,116,50,14
--- 310,316 ----
  FONT 9, "MS Shell Dlg"
  BEGIN
      GROUPBOX        "Células do AFS",IDC_STATIC,7,7,231,131
!     CONTROL         "",IDC_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 0x11b,13,
                      19,218,94
      PUSHBUTTON      "&Incluir...",IDC_ADD,75,116,50,14
      PUSHBUTTON      "Al&terar...",IDC_EDIT,128,116,50,14
***************
*** 342,348 ****
      LTEXT           "Célula Padrão:",IDC_STATIC,12,37,48,8
      EDITTEXT        IDC_CELL,62,35,144,14,ES_LOWERCASE | ES_AUTOHSCROLL
      GROUPBOX        "Células do AFS",IDC_STATIC,7,69,206,180
!     CONTROL         "",IDC_LIST,"FastList",WS_BORDER | WS_TABSTOP | 0x11b,13,
                      84,193,137
      PUSHBUTTON      "&Incluir...",IDC_ADD,51,227,50,14
      PUSHBUTTON      "Al&terar...",IDC_EDIT,104,227,50,14
--- 342,348 ----
      LTEXT           "Célula Padrão:",IDC_STATIC,12,37,48,8
      EDITTEXT        IDC_CELL,62,35,144,14,ES_LOWERCASE | ES_AUTOHSCROLL
      GROUPBOX        "Células do AFS",IDC_STATIC,7,69,206,180
!     CONTROL         "",IDC_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 0x11b,13,
                      84,193,137
      PUSHBUTTON      "&Incluir...",IDC_ADD,51,227,50,14
      PUSHBUTTON      "Al&terar...",IDC_EDIT,104,227,50,14
***************
*** 426,432 ****
      PUSHBUTTON      "&Incluir",IDC_ADD,108,117,42,14
      GROUPBOX        "Unidades do AFS Mapeadas Globalmente",IDC_STATIC,7,7,
                      239,133
!     CONTROL         "",IDC_GLOBAL_DRIVE_LIST,"FastList",WS_BORDER | 
                      WS_TABSTOP | 0x1b,14,20,226,89
      PUSHBUTTON      "Al&terar",IDC_CHANGE,153,117,42,14
      PUSHBUTTON      "&Remover",IDC_REMOVE,198,117,42,14
--- 426,432 ----
      PUSHBUTTON      "&Incluir",IDC_ADD,108,117,42,14
      GROUPBOX        "Unidades do AFS Mapeadas Globalmente",IDC_STATIC,7,7,
                      239,133
!     CONTROL         "",IDC_GLOBAL_DRIVE_LIST,"OpenAFS_FastList",WS_BORDER | 
                      WS_TABSTOP | 0x1b,14,20,226,89
      PUSHBUTTON      "Al&terar",IDC_CHANGE,153,117,42,14
      PUSHBUTTON      "&Remover",IDC_REMOVE,198,117,42,14
Index: openafs/src/WINNT/client_config/lang/zh_CN/afs_config.rc
diff -c openafs/src/WINNT/client_config/lang/zh_CN/afs_config.rc:1.5.6.1 openafs/src/WINNT/client_config/lang/zh_CN/afs_config.rc:1.5.6.2
*** openafs/src/WINNT/client_config/lang/zh_CN/afs_config.rc:1.5.6.1	Wed Sep 13 13:51:59 2006
--- openafs/src/WINNT/client_config/lang/zh_CN/afs_config.rc	Tue Dec 12 15:41:17 2006
***************
*** 91,97 ****
                      BS_AUTORADIOBUTTON,13,21,193,10
      CONTROL         "ÏÔÊ¾¾íÎ»ÖÃ·þÎñÆ÷Ê×Ñ¡Ïî(&V)",IDC_SHOW_VLS,"Button",
                      BS_AUTORADIOBUTTON,13,34,193,10
!     CONTROL         "",IDC_LIST,"FastList",WS_BORDER | WS_TABSTOP | 0xb,13,
                      49,173,120
      PUSHBUTTON      "Ìí¼Ó(&A)...",IDC_ADD,84,172,50,14
      PUSHBUTTON      "¸ü¸Ä(&C)...",IDC_EDIT,137,172,50,14
--- 91,97 ----
                      BS_AUTORADIOBUTTON,13,21,193,10
      CONTROL         "ÏÔÊ¾¾íÎ»ÖÃ·þÎñÆ÷Ê×Ñ¡Ïî(&V)",IDC_SHOW_VLS,"Button",
                      BS_AUTORADIOBUTTON,13,34,193,10
!     CONTROL         "",IDC_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 0xb,13,
                      49,173,120
      PUSHBUTTON      "Ìí¼Ó(&A)...",IDC_ADD,84,172,50,14
      PUSHBUTTON      "¸ü¸Ä(&C)...",IDC_EDIT,137,172,50,14
***************
*** 108,114 ****
  FONT 9, "ËÎÌå"
  BEGIN
      GROUPBOX        "AFS µ¥Ôª",IDC_STATIC,7,7,206,211
!     CONTROL         "",IDC_LIST,"FastList",WS_BORDER | WS_TABSTOP | 0x11b,13,
                      21,193,168
      PUSHBUTTON      "Ìí¼Ó(&A)...",IDC_ADD,51,195,50,14
      PUSHBUTTON      "¸ü¸Ä(&C)...",IDC_EDIT,104,195,50,14
--- 108,114 ----
  FONT 9, "ËÎÌå"
  BEGIN
      GROUPBOX        "AFS µ¥Ôª",IDC_STATIC,7,7,206,211
!     CONTROL         "",IDC_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 0x11b,13,
                      21,193,168
      PUSHBUTTON      "Ìí¼Ó(&A)...",IDC_ADD,51,195,50,14
      PUSHBUTTON      "¸ü¸Ä(&C)...",IDC_EDIT,104,195,50,14
***************
*** 121,127 ****
  FONT 9, "ËÎÌå"
  BEGIN
      GROUPBOX        "ÅÌ·û",IDC_STATIC,7,7,206,211
!     CONTROL         "",IDC_LIST,"CheckList",WS_BORDER | WS_TABSTOP | 0x153,
                      13,32,193,135
      PUSHBUTTON      "Ìí¼Ó(&A)...",IDC_ADD,69,171,48,14
      PUSHBUTTON      "¸ü¸Ä(&C)...",IDC_EDIT,120,171,42,14
--- 121,127 ----
  FONT 9, "ËÎÌå"
  BEGIN
      GROUPBOX        "ÅÌ·û",IDC_STATIC,7,7,206,211
!     CONTROL         "",IDC_LIST,"OpenAFS_CheckList",WS_BORDER | WS_TABSTOP | 0x153,
                      13,32,193,135
      PUSHBUTTON      "Ìí¼Ó(&A)...",IDC_ADD,69,171,48,14
      PUSHBUTTON      "¸ü¸Ä(&C)...",IDC_EDIT,120,171,42,14
***************
*** 190,196 ****
      LTEXT           "ÃèÊö(&D)£º",IDC_STATIC,4,41,38,8
      EDITTEXT        IDC_COMMENT,62,39,171,13,ES_AUTOHSCROLL
      GROUPBOX        "·þÎñÆ÷",IDC_STATIC,4,61,236,158
!     CONTROL         "",IDC_LIST,"FastList",WS_BORDER | WS_TABSTOP | 0x1b,13,
                      76,217,117
      PUSHBUTTON      "Ìí¼Ó(&A)...",IDC_ADD,75,198,50,14
      PUSHBUTTON      "¸ü¸Ä(&C)...",IDC_EDIT,128,198,50,14
--- 190,196 ----
      LTEXT           "ÃèÊö(&D)£º",IDC_STATIC,4,41,38,8
      EDITTEXT        IDC_COMMENT,62,39,171,13,ES_AUTOHSCROLL
      GROUPBOX        "·þÎñÆ÷",IDC_STATIC,4,61,236,158
!     CONTROL         "",IDC_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 0x1b,13,
                      76,217,117
      PUSHBUTTON      "Ìí¼Ó(&A)...",IDC_ADD,75,198,50,14
      PUSHBUTTON      "¸ü¸Ä(&C)...",IDC_EDIT,128,198,50,14
***************
*** 250,256 ****
                      4,4,196,8
      GROUPBOX        "×Ó°²×°",IDC_STATIC,4,26,236,168
      LTEXT           "ÏÂÁÐ×Ó°²×°´Ó´Ë¼ÆËã»úÉÏ¹²Ïí£º",IDC_STATIC,10,42,176,8
!     CONTROL         "",IDC_LIST,"FastList",WS_BORDER | WS_TABSTOP | 0x413,10,
                      54,223,115
      PUSHBUTTON      "Ìí¼Ó(&A)...",IDC_ADD,78,173,50,14
      PUSHBUTTON      "¸ü¸Ä(&C)...",IDC_EDIT,131,173,50,14
--- 250,256 ----
                      4,4,196,8
      GROUPBOX        "×Ó°²×°",IDC_STATIC,4,26,236,168
      LTEXT           "ÏÂÁÐ×Ó°²×°´Ó´Ë¼ÆËã»úÉÏ¹²Ïí£º",IDC_STATIC,10,42,176,8
!     CONTROL         "",IDC_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 0x413,10,
                      54,223,115
      PUSHBUTTON      "Ìí¼Ó(&A)...",IDC_ADD,78,173,50,14
      PUSHBUTTON      "¸ü¸Ä(&C)...",IDC_EDIT,131,173,50,14
***************
*** 281,287 ****
  FONT 9, "ËÎÌå"
  BEGIN
      GROUPBOX        "ÅÌ·û",IDC_STATIC,7,7,231,131
!     CONTROL         "",IDC_LIST,"CheckList",WS_BORDER | WS_TABSTOP | 0x153,
                      13,32,219,60
      PUSHBUTTON      "Ìí¼Ó(&A)...",IDC_ADD,83,95,48,14
      PUSHBUTTON      "¸ü¸Ä(&C)...",IDC_EDIT,134,95,48,14
--- 281,287 ----
  FONT 9, "ËÎÌå"
  BEGIN
      GROUPBOX        "ÅÌ·û",IDC_STATIC,7,7,231,131
!     CONTROL         "",IDC_LIST,"OpenAFS_CheckList",WS_BORDER | WS_TABSTOP | 0x153,
                      13,32,219,60
      PUSHBUTTON      "Ìí¼Ó(&A)...",IDC_ADD,83,95,48,14
      PUSHBUTTON      "¸ü¸Ä(&C)...",IDC_EDIT,134,95,48,14
***************
*** 297,303 ****
  FONT 9, "ËÎÌå"
  BEGIN
      GROUPBOX        "AFS µ¥Ôª",IDC_STATIC,7,7,231,131
!     CONTROL         "",IDC_LIST,"FastList",WS_BORDER | WS_TABSTOP | 0x11b,13,
                      19,218,94
      PUSHBUTTON      "Ìí¼Ó(&A)...",IDC_ADD,75,116,50,14
      PUSHBUTTON      "¸ü¸Ä(&C)...",IDC_EDIT,128,116,50,14
--- 297,303 ----
  FONT 9, "ËÎÌå"
  BEGIN
      GROUPBOX        "AFS µ¥Ôª",IDC_STATIC,7,7,231,131
!     CONTROL         "",IDC_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 0x11b,13,
                      19,218,94
      PUSHBUTTON      "Ìí¼Ó(&A)...",IDC_ADD,75,116,50,14
      PUSHBUTTON      "¸ü¸Ä(&C)...",IDC_EDIT,128,116,50,14
***************
*** 328,334 ****
      LTEXT           "È±Ê¡µ¥Ôª£º",IDC_STATIC,14,37,44,8
      EDITTEXT        IDC_CELL,65,35,141,14,ES_LOWERCASE | ES_AUTOHSCROLL
      GROUPBOX        "AFS µ¥Ôª",IDC_STATIC,7,69,206,180
!     CONTROL         "",IDC_LIST,"FastList",WS_BORDER | WS_TABSTOP | 0x11b,13,
                      84,193,137
      PUSHBUTTON      "Ìí¼Ó(&A)...",IDC_ADD,51,227,50,14
      PUSHBUTTON      "¸ü¸Ä(&C)...",IDC_EDIT,104,227,50,14
--- 328,334 ----
      LTEXT           "È±Ê¡µ¥Ôª£º",IDC_STATIC,14,37,44,8
      EDITTEXT        IDC_CELL,65,35,141,14,ES_LOWERCASE | ES_AUTOHSCROLL
      GROUPBOX        "AFS µ¥Ôª",IDC_STATIC,7,69,206,180
!     CONTROL         "",IDC_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 0x11b,13,
                      84,193,137
      PUSHBUTTON      "Ìí¼Ó(&A)...",IDC_ADD,51,227,50,14
      PUSHBUTTON      "¸ü¸Ä(&C)...",IDC_EDIT,104,227,50,14
***************
*** 409,415 ****
      PUSHBUTTON      "°ïÖú",9,196,148,50,14
      PUSHBUTTON      "Ìí¼Ó(&A)",IDC_ADD,108,117,42,14
      GROUPBOX        "È«¾ÖÓ³Éä AFS Çý¶¯Æ÷",IDC_STATIC,7,7,239,133
!     CONTROL         "",IDC_GLOBAL_DRIVE_LIST,"FastList",WS_BORDER | 
                      WS_TABSTOP | 0x1b,14,20,226,89
      PUSHBUTTON      "¸ü¸Ä(&C)",IDC_CHANGE,153,117,42,14
      PUSHBUTTON      "³ýÈ¥(&R)",IDC_REMOVE,198,117,42,14
--- 409,415 ----
      PUSHBUTTON      "°ïÖú",9,196,148,50,14
      PUSHBUTTON      "Ìí¼Ó(&A)",IDC_ADD,108,117,42,14
      GROUPBOX        "È«¾ÖÓ³Éä AFS Çý¶¯Æ÷",IDC_STATIC,7,7,239,133
!     CONTROL         "",IDC_GLOBAL_DRIVE_LIST,"OpenAFS_FastList",WS_BORDER | 
                      WS_TABSTOP | 0x1b,14,20,226,89
      PUSHBUTTON      "¸ü¸Ä(&C)",IDC_CHANGE,153,117,42,14
      PUSHBUTTON      "³ýÈ¥(&R)",IDC_REMOVE,198,117,42,14
Index: openafs/src/WINNT/client_config/lang/zh_TW/afs_config.rc
diff -c openafs/src/WINNT/client_config/lang/zh_TW/afs_config.rc:1.5.6.1 openafs/src/WINNT/client_config/lang/zh_TW/afs_config.rc:1.5.6.2
*** openafs/src/WINNT/client_config/lang/zh_TW/afs_config.rc:1.5.6.1	Wed Sep 13 13:52:00 2006
--- openafs/src/WINNT/client_config/lang/zh_TW/afs_config.rc	Tue Dec 12 15:41:17 2006
***************
*** 91,97 ****
                      BS_AUTORADIOBUTTON,13,21,193,10
      CONTROL         "Åã¥Ü®eÅé¦ì¸m¦øªA¾¹³ß¦n³]©w(&V)",IDC_SHOW_VLS,"Button",
                      BS_AUTORADIOBUTTON,13,34,193,10
!     CONTROL         "",IDC_LIST,"FastList",WS_BORDER | WS_TABSTOP | 0xb,13,
                      49,173,120
      PUSHBUTTON      "·s¼W(&A)...",IDC_ADD,74,173,50,14
      PUSHBUTTON      "ÅÜ§ó(&C)...",IDC_EDIT,136,173,50,14
--- 91,97 ----
                      BS_AUTORADIOBUTTON,13,21,193,10
      CONTROL         "Åã¥Ü®eÅé¦ì¸m¦øªA¾¹³ß¦n³]©w(&V)",IDC_SHOW_VLS,"Button",
                      BS_AUTORADIOBUTTON,13,34,193,10
!     CONTROL         "",IDC_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 0xb,13,
                      49,173,120
      PUSHBUTTON      "·s¼W(&A)...",IDC_ADD,74,173,50,14
      PUSHBUTTON      "ÅÜ§ó(&C)...",IDC_EDIT,136,173,50,14
***************
*** 108,114 ****
  FONT 9, "·s²Ó©úÅé"
  BEGIN
      GROUPBOX        "AFS Cell",IDC_STATIC,7,7,206,211
!     CONTROL         "",IDC_LIST,"FastList",WS_BORDER | WS_TABSTOP | 0x11b,13,
                      21,193,168
      PUSHBUTTON      "·s¼W(&A)...",IDC_ADD,51,195,50,14
      PUSHBUTTON      "ÅÜ§ó(&C)...",IDC_EDIT,104,195,50,14
--- 108,114 ----
  FONT 9, "·s²Ó©úÅé"
  BEGIN
      GROUPBOX        "AFS Cell",IDC_STATIC,7,7,206,211
!     CONTROL         "",IDC_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 0x11b,13,
                      21,193,168
      PUSHBUTTON      "·s¼W(&A)...",IDC_ADD,51,195,50,14
      PUSHBUTTON      "ÅÜ§ó(&C)...",IDC_EDIT,104,195,50,14
***************
*** 121,127 ****
  FONT 9, "·s²Ó©úÅé"
  BEGIN
      GROUPBOX        "ºÏºÐ¾÷¥N¸¹",IDC_STATIC,7,7,206,211
!     CONTROL         "",IDC_LIST,"CheckList",WS_BORDER | WS_TABSTOP | 0x153,
                      13,32,193,135
      PUSHBUTTON      "·s¼W(&A)...",IDC_ADD,71,171,42,14
      PUSHBUTTON      "ÅÜ§ó(&C)...",IDC_EDIT,118,171,42,14
--- 121,127 ----
  FONT 9, "·s²Ó©úÅé"
  BEGIN
      GROUPBOX        "ºÏºÐ¾÷¥N¸¹",IDC_STATIC,7,7,206,211
!     CONTROL         "",IDC_LIST,"OpenAFS_CheckList",WS_BORDER | WS_TABSTOP | 0x153,
                      13,32,193,135
      PUSHBUTTON      "·s¼W(&A)...",IDC_ADD,71,171,42,14
      PUSHBUTTON      "ÅÜ§ó(&C)...",IDC_EDIT,118,171,42,14
***************
*** 191,197 ****
      LTEXT           "»¡©ú(&D)¡G",IDC_STATIC,4,41,38,8
      EDITTEXT        IDC_COMMENT,55,39,176,13,ES_AUTOHSCROLL
      GROUPBOX        "¦øªA¾¹",IDC_STATIC,4,61,236,158
!     CONTROL         "",IDC_LIST,"FastList",WS_BORDER | WS_TABSTOP | 0x1b,13,
                      76,217,117
      PUSHBUTTON      "·s¼W(&A)...",IDC_ADD,75,198,50,14
      PUSHBUTTON      "ÅÜ§ó(&C)...",IDC_EDIT,128,198,50,14
--- 191,197 ----
      LTEXT           "»¡©ú(&D)¡G",IDC_STATIC,4,41,38,8
      EDITTEXT        IDC_COMMENT,55,39,176,13,ES_AUTOHSCROLL
      GROUPBOX        "¦øªA¾¹",IDC_STATIC,4,61,236,158
!     CONTROL         "",IDC_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 0x1b,13,
                      76,217,117
      PUSHBUTTON      "·s¼W(&A)...",IDC_ADD,75,198,50,14
      PUSHBUTTON      "ÅÜ§ó(&C)...",IDC_EDIT,128,198,50,14
***************
*** 251,257 ****
                      4,196,8
      GROUPBOX        "¤l¸Ë¸ü",IDC_STATIC,4,26,236,168
      LTEXT           "¥H¤Uªº¤l¸Ë¸ü¬O±q¥»¹q¸£¦@¨É¡G",IDC_STATIC,10,42,176,8
!     CONTROL         "",IDC_LIST,"FastList",WS_BORDER | WS_TABSTOP | 0x413,10,
                      54,223,115
      PUSHBUTTON      "·s¼W(&A)...",IDC_ADD,78,173,50,14
      PUSHBUTTON      "ÅÜ§ó(&C)...",IDC_EDIT,131,173,50,14
--- 251,257 ----
                      4,196,8
      GROUPBOX        "¤l¸Ë¸ü",IDC_STATIC,4,26,236,168
      LTEXT           "¥H¤Uªº¤l¸Ë¸ü¬O±q¥»¹q¸£¦@¨É¡G",IDC_STATIC,10,42,176,8
!     CONTROL         "",IDC_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 0x413,10,
                      54,223,115
      PUSHBUTTON      "·s¼W(&A)...",IDC_ADD,78,173,50,14
      PUSHBUTTON      "ÅÜ§ó(&C)...",IDC_EDIT,131,173,50,14
***************
*** 282,288 ****
  FONT 9, "·s²Ó©úÅé"
  BEGIN
      GROUPBOX        "ºÏºÐ¾÷¥N¸¹",IDC_STATIC,7,7,231,131
!     CONTROL         "",IDC_LIST,"CheckList",WS_BORDER | WS_TABSTOP | 0x153,
                      13,32,219,60
      PUSHBUTTON      "·s¼W(&A)...",IDC_ADD,100,95,42,14
      PUSHBUTTON      "ÅÜ§ó(&C)...",IDC_EDIT,145,95,42,14
--- 282,288 ----
  FONT 9, "·s²Ó©úÅé"
  BEGIN
      GROUPBOX        "ºÏºÐ¾÷¥N¸¹",IDC_STATIC,7,7,231,131
!     CONTROL         "",IDC_LIST,"OpenAFS_CheckList",WS_BORDER | WS_TABSTOP | 0x153,
                      13,32,219,60
      PUSHBUTTON      "·s¼W(&A)...",IDC_ADD,100,95,42,14
      PUSHBUTTON      "ÅÜ§ó(&C)...",IDC_EDIT,145,95,42,14
***************
*** 298,304 ****
  FONT 9, "·s²Ó©úÅé"
  BEGIN
      GROUPBOX        "AFS Cell",IDC_STATIC,7,7,231,131
!     CONTROL         "",IDC_LIST,"FastList",WS_BORDER | WS_TABSTOP | 0x11b,13,
                      19,218,94
      PUSHBUTTON      "·s¼W(&A)...",IDC_ADD,75,116,50,14
      PUSHBUTTON      "ÅÜ§ó(&C)...",IDC_EDIT,128,116,50,14
--- 298,304 ----
  FONT 9, "·s²Ó©úÅé"
  BEGIN
      GROUPBOX        "AFS Cell",IDC_STATIC,7,7,231,131
!     CONTROL         "",IDC_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 0x11b,13,
                      19,218,94
      PUSHBUTTON      "·s¼W(&A)...",IDC_ADD,75,116,50,14
      PUSHBUTTON      "ÅÜ§ó(&C)...",IDC_EDIT,128,116,50,14
***************
*** 330,336 ****
      LTEXT           "¹w³] Cell¡G",IDC_STATIC,14,37,39,8
      EDITTEXT        IDC_CELL,59,35,147,14,ES_LOWERCASE | ES_AUTOHSCROLL
      GROUPBOX        "AFS Cell",IDC_STATIC,7,69,206,180
!     CONTROL         "",IDC_LIST,"FastList",WS_BORDER | WS_TABSTOP | 0x11b,13,
                      84,193,137
      PUSHBUTTON      "·s¼W(&A)...",IDC_ADD,51,227,50,14
      PUSHBUTTON      "ÅÜ§ó(&C)...",IDC_EDIT,104,227,50,14
--- 330,336 ----
      LTEXT           "¹w³] Cell¡G",IDC_STATIC,14,37,39,8
      EDITTEXT        IDC_CELL,59,35,147,14,ES_LOWERCASE | ES_AUTOHSCROLL
      GROUPBOX        "AFS Cell",IDC_STATIC,7,69,206,180
!     CONTROL         "",IDC_LIST,"OpenAFS_FastList",WS_BORDER | WS_TABSTOP | 0x11b,13,
                      84,193,137
      PUSHBUTTON      "·s¼W(&A)...",IDC_ADD,51,227,50,14
      PUSHBUTTON      "ÅÜ§ó(&C)...",IDC_EDIT,104,227,50,14
***************
*** 411,417 ****
      PUSHBUTTON      "»¡©ú",9,196,148,50,14
      PUSHBUTTON      "·s¼W(&A)",IDC_ADD,108,117,42,14
      GROUPBOX        "¼s°ì¹ïÀ³ AFS ºÏºÐ¾÷",IDC_STATIC,7,7,239,133
!     CONTROL         "",IDC_GLOBAL_DRIVE_LIST,"FastList",WS_BORDER |
                      WS_TABSTOP | 0x1b,14,20,226,89
      PUSHBUTTON      "ÅÜ§ó(&C)",IDC_CHANGE,153,117,42,14
      PUSHBUTTON      "²¾°£(&R)",IDC_REMOVE,198,117,42,14
--- 411,417 ----
      PUSHBUTTON      "»¡©ú",9,196,148,50,14
      PUSHBUTTON      "·s¼W(&A)",IDC_ADD,108,117,42,14
      GROUPBOX        "¼s°ì¹ïÀ³ AFS ºÏºÐ¾÷",IDC_STATIC,7,7,239,133
!     CONTROL         "",IDC_GLOBAL_DRIVE_LIST,"OpenAFS_FastList",WS_BORDER |
                      WS_TABSTOP | 0x1b,14,20,226,89
      PUSHBUTTON      "ÅÜ§ó(&C)",IDC_CHANGE,153,117,42,14
      PUSHBUTTON      "²¾°£(&R)",IDC_REMOVE,198,117,42,14
Index: openafs/src/WINNT/client_creds/NTMakefile
diff -c openafs/src/WINNT/client_creds/NTMakefile:1.16.4.1 openafs/src/WINNT/client_creds/NTMakefile:1.16.4.3
*** openafs/src/WINNT/client_creds/NTMakefile:1.16.4.1	Mon Jul 24 10:13:18 2006
--- openafs/src/WINNT/client_creds/NTMakefile	Tue Dec 12 19:26:36 2006
***************
*** 43,56 ****
  AFSDOBJS = \
  	$(OUT)\fs_utils.obj
  	
- AFSAPPLIBOBJS= \
- 	$(OUT)\checklist.obj \
- 	$(OUT)\al_wizard.obj \
- 	$(OUT)\subclass.obj 
- 
  CLIENTOBJS = \
  	$(OUT)\drivemap.obj \
!     $(OUT)\RegistrySupport.obj 
  
  VCLIBS =\
      	iphlpapi.lib \
--- 43,51 ----
  AFSDOBJS = \
  	$(OUT)\fs_utils.obj
  	
  CLIENTOBJS = \
  	$(OUT)\drivemap.obj \
!     	$(OUT)\RegistrySupport.obj 
  
  VCLIBS =\
      	iphlpapi.lib \
***************
*** 65,77 ****
  EXELIBS = \
  	$(DESTDIR)\lib\afs\afspioctl.lib \
  	$(DESTDIR)\lib\libosi.lib \
! 	$(DESTDIR)\lib\afs\TaLocale.lib \
!     $(DESTDIR)\lib\lanahelper.lib \
!     $(DESTDIR)\lib\afsrxkad.lib \
!     $(DESTDIR)\lib\afsdes.lib \
  	$(DESTDIR)\lib\afsauthent.lib \
  	$(DESTDIR)\lib\libafsconf.lib \
!     $(DESTDIR)\lib\afskfw.lib
  
  ############################################################################
  #
--- 60,72 ----
  EXELIBS = \
  	$(DESTDIR)\lib\afs\afspioctl.lib \
  	$(DESTDIR)\lib\libosi.lib \
! 	$(DESTDIR)\lib\afs\TaAfsAppLib.lib \
!     	$(DESTDIR)\lib\lanahelper.lib \
!     	$(DESTDIR)\lib\afsrxkad.lib \
!     	$(DESTDIR)\lib\afsdes.lib \
  	$(DESTDIR)\lib\afsauthent.lib \
  	$(DESTDIR)\lib\libafsconf.lib \
!     	$(DESTDIR)\lib\afskfw.lib
  
  ############################################################################
  #
***************
*** 96,104 ****
  $(CLIENTOBJS): $(CLIENT)\$$(@B).cpp
  	$(C2OBJ) -I$(*D) $**
  
- $(AFSAPPLIBOBJS): $(AFSAPPLIB)\$$(@B).cpp
- 	$(C2OBJ) -I$(*D) $**
- 
  $(AFSDOBJS): $(AFSD)\$$(@B).c
  	$(C2OBJ) -I$(*D) $**
  
--- 91,96 ----
***************
*** 110,116 ****
  
  ############################################################################
  
! $(EXEFILE) : $(EXEOBJS) $(EXECOBJS) $(EXERES) $(AFSAPPLIBOBJS) $(AFSDOBJS) $(CLIENTOBJS) $(EXELIBS) 
  	$(EXEGUILINK) $(VCLIBS)
          $(_VC_MANIFEST_EMBED_EXE)
  	$(EXEPREP) 
--- 102,108 ----
  
  ############################################################################
  
! $(EXEFILE) : $(EXEOBJS) $(EXECOBJS) $(EXERES) $(AFSDOBJS) $(CLIENTOBJS) $(EXELIBS) 
  	$(EXEGUILINK) $(VCLIBS)
          $(_VC_MANIFEST_EMBED_EXE)
  	$(EXEPREP) 
Index: openafs/src/WINNT/client_creds/afscreds.h
diff -c openafs/src/WINNT/client_creds/afscreds.h:1.8 openafs/src/WINNT/client_creds/afscreds.h:1.8.6.1
*** openafs/src/WINNT/client_creds/afscreds.h:1.8	Fri Mar 11 00:35:08 2005
--- openafs/src/WINNT/client_creds/afscreds.h	Tue Dec 12 15:41:18 2006
***************
*** 24,29 ****
--- 24,30 ----
  #include <time.h>
  #include <shellapi.h>
  #include <WINNT/al_wizard.h>
+ #include <WINNT/dialog.h>
  #include <WINNT\afsreg.h>
  #ifdef __cplusplus
  extern "C" {
Index: openafs/src/WINNT/client_creds/mounttab.cpp
diff -c openafs/src/WINNT/client_creds/mounttab.cpp:1.8 openafs/src/WINNT/client_creds/mounttab.cpp:1.8.4.1
*** openafs/src/WINNT/client_creds/mounttab.cpp:1.8	Sat Nov  5 01:47:53 2005
--- openafs/src/WINNT/client_creds/mounttab.cpp	Tue Dec 12 15:41:18 2006
***************
*** 22,30 ****
   */
  
  static struct l
!    {
!    int iDriveSelectLast;
!    } l;
  
  
  /*
--- 22,30 ----
   */
  
  static struct l
! {
!     int iDriveSelectLast;
! } l;
  
  
  /*
***************
*** 114,166 ****
  
  void Mount_OnUpdate (HWND hDlg, BOOL fOnInitDialog)
  {
!    DRIVEMAPLIST List;
!    memset(&List, 0, sizeof(DRIVEMAPLIST));
!    QueryDriveMapList (&List);
  
!    HWND hList = GetDlgItem (hDlg, IDC_LIST);
!    int iItemSel = SendMessage (hList, LB_GETCURSEL, 0, 0);
!    int iDataSel = Mount_DriveFromItem (hDlg, iItemSel);
!    iItemSel = -1;
! 
!    if (fOnInitDialog && (iDataSel == -1))
!       iDataSel = l.iDriveSelectLast;
  
!    SendMessage (hList, WM_SETREDRAW, FALSE, 0);
!    SendMessage (hList, LB_RESETCONTENT, 0, 0);
! 
!    for (int iDrive = 0; iDrive < 26; ++iDrive)
!       {
!       if (!List.aDriveMap[ iDrive ].szMapping[0])
!          continue;
  
!       TCHAR szAfsPath[ MAX_PATH ];
!       AdjustAfsPath (szAfsPath, List.aDriveMap[ iDrive ].szMapping, TRUE, FALSE);
  
!       LPTSTR psz = FormatString (IDS_DRIVE_MAP, TEXT("%c%s"), List.aDriveMap[ iDrive ].chDrive, szAfsPath);
!       int iItem = SendMessage (hList, LB_ADDSTRING, 0, (LPARAM)psz);
!       SendMessage (hList, LB_SETITEMDATA, iItem, List.aDriveMap[ iDrive ].fActive);
!       FreeString (psz);
  
!       if (iDrive == iDataSel)
!          iItemSel = iItem;
!       }
  
!    SendMessage (hList, WM_SETREDRAW, TRUE, 0);
!    SendMessage (hList, LB_SETCURSEL, iItemSel, 0);
  
!    Mount_OnSelect (hDlg);
!    FreeDriveMapList (&List);
  }
  
  
  void Mount_OnSelect (HWND hDlg)
  {
!    BOOL fServiceRunning = IsServiceRunning();
  
     HWND hList = GetDlgItem (hDlg, IDC_LIST);
!    int iItemSel = SendMessage (hList, LB_GETCURSEL, 0, 0);
     int iDataSel = Mount_DriveFromItem (hDlg, iItemSel);
  
     l.iDriveSelectLast = iDataSel;
  
--- 114,188 ----
  
  void Mount_OnUpdate (HWND hDlg, BOOL fOnInitDialog)
  {
!     char dbgstr[128];
  
!     DRIVEMAPLIST List;
!     memset(&List, 0, sizeof(DRIVEMAPLIST));
!     QueryDriveMapList (&List);
! 
!     HWND hList = GetDlgItem (hDlg, IDC_LIST);
!     int iItemSel = LB_GetSelected(hList);
!     sprintf(dbgstr,"Mount_OnUpdate LB_GETCURSEL = %d\n",iItemSel);
!     OutputDebugStringA(dbgstr);
!     int iDataSel = Mount_DriveFromItem (hDlg, iItemSel);
!     sprintf(dbgstr,"Mount_OnUpdate Drive = %d\n",iDataSel);
!     OutputDebugStringA(dbgstr);
!     iItemSel = -1;
  
!     if (fOnInitDialog && (iDataSel == -1))
! 	iDataSel = l.iDriveSelectLast;
  
!     LB_StartChange(hList, TRUE);
  
!     for (int iDrive = 25; iDrive >= 0; --iDrive)
!     {
! 	if (!List.aDriveMap[ iDrive ].szMapping[0])
! 	    continue;
  
! 	TCHAR szAfsPath[ MAX_PATH ];
! 	AdjustAfsPath (szAfsPath, List.aDriveMap[ iDrive ].szMapping, TRUE, FALSE);
  
! 	LPTSTR psz = FormatString (IDS_DRIVE_MAP, TEXT("%c%s"), List.aDriveMap[ iDrive ].chDrive, szAfsPath);
! 	int iItem = LB_AddItem(hList, psz, List.aDriveMap[ iDrive ].fActive);
! 	sprintf(dbgstr,"Mount_OnUpdate LB_ADDSTRING drive %d [%s] as item %d\n", iDrive, psz, iItem);
! 	OutputDebugStringA(dbgstr);
! 	FreeString (psz);
! 
! 	int iCount = SendMessage(hList, LB_GETCOUNT, 0, 0);
! 	sprintf(dbgstr,"Mount_OnUpdate LB_GETCOUNT = %d\n", iCount);
! 	OutputDebugStringA(dbgstr);
! 
! 	/* This really shouldn't work except that we are adding 
! 	 * the strings in alphabetical order.  Otherwise, we could
! 	 * identify an index value for a string that could then change.
! 	 */
! 	if (iDrive == iDataSel)
! 	    iItemSel = iItem;
!     }
! 
!     LB_EndChange(hList, NULL);
! 
!     LB_SetSelected(hList, iItemSel);
!     sprintf(dbgstr,"Mount_OnUpdate LB_SETCURSEL = %d\n",iItemSel);
!     OutputDebugStringA(dbgstr);
  
!     Mount_OnSelect (hDlg);
!     FreeDriveMapList (&List);
  }
  
  
  void Mount_OnSelect (HWND hDlg)
  {
!     char dbgstr[128];
!     BOOL fServiceRunning = IsServiceRunning();
  
     HWND hList = GetDlgItem (hDlg, IDC_LIST);
!    int iItemSel = LB_GetSelected(hList);
!     sprintf(dbgstr,"Mount_OnSelect LB_GETCURSEL = %d\n",iItemSel);
!     OutputDebugStringA(dbgstr);
     int iDataSel = Mount_DriveFromItem (hDlg, iItemSel);
+     sprintf(dbgstr,"Mount_OnSelect Drive = %d\n",iDataSel);
+     OutputDebugStringA(dbgstr);
  
     l.iDriveSelectLast = iDataSel;
  
***************
*** 172,183 ****
  
  void Mount_OnCheck (HWND hDlg)
  {
     DRIVEMAPLIST List;
     QueryDriveMapList (&List);
  
     HWND hList = GetDlgItem (hDlg, IDC_LIST);
!    int iItemSel = SendMessage (hList, LB_GETCURSEL, 0, 0);
     int iDriveSel = Mount_DriveFromItem (hDlg, iItemSel);
     BOOL fChecked = SendMessage (hList, LB_GETITEMDATA, iItemSel, 0);
  
     if (iDriveSel != -1)
--- 194,210 ----
  
  void Mount_OnCheck (HWND hDlg)
  {
+     char dbgstr[128];
     DRIVEMAPLIST List;
     QueryDriveMapList (&List);
  
     HWND hList = GetDlgItem (hDlg, IDC_LIST);
!    int iItemSel = LB_GetSelected(hList);
!     sprintf(dbgstr,"Mount_OnCheck LB_GETCURSEL = %d\n",iItemSel);
!     OutputDebugStringA(dbgstr);
     int iDriveSel = Mount_DriveFromItem (hDlg, iItemSel);
+     sprintf(dbgstr,"Mount_OnCheck Drive = %d\n",iDriveSel);
+     OutputDebugStringA(dbgstr);
     BOOL fChecked = SendMessage (hList, LB_GETITEMDATA, iItemSel, 0);
  
     if (iDriveSel != -1)
***************
*** 204,212 ****
  
  void Mount_OnRemove (HWND hDlg)
  {
!    HWND hList = GetDlgItem (hDlg, IDC_LIST);
!    int iItemSel = SendMessage (hList, LB_GETCURSEL, 0, 0);
     int iDriveSel = Mount_DriveFromItem (hDlg, iItemSel);
  
     if (iDriveSel != -1)
        {
--- 231,244 ----
  
  void Mount_OnRemove (HWND hDlg)
  {
!     char dbgstr[128];
!     HWND hList = GetDlgItem (hDlg, IDC_LIST);
!     int iItemSel = LB_GetSelected(hList);
!     sprintf(dbgstr,"Mount_OnRemove LB_GETCURSEL = %d\n",iItemSel);
!     OutputDebugStringA(dbgstr);
     int iDriveSel = Mount_DriveFromItem (hDlg, iItemSel);
+     sprintf(dbgstr,"Mount_OnRemove Drive = %d\n",iDriveSel);
+     OutputDebugStringA(dbgstr);
  
     if (iDriveSel != -1)
        {
***************
*** 243,251 ****
  
  void Mount_OnEdit (HWND hDlg)
  {
     HWND hList = GetDlgItem (hDlg, IDC_LIST);
!    int iItemSel = SendMessage (hList, LB_GETCURSEL, 0, 0);
     int iDriveSel = Mount_DriveFromItem (hDlg, iItemSel);
  
     Mount_AdjustMapping (hDlg, iDriveSel);
  }
--- 275,288 ----
  
  void Mount_OnEdit (HWND hDlg)
  {
+     char dbgstr[128];
     HWND hList = GetDlgItem (hDlg, IDC_LIST);
!    int iItemSel = LB_GetSelected(hList);
!     sprintf(dbgstr,"Mount_OnEdit LB_GETCURSEL = %d\n",iItemSel);
!     OutputDebugStringA(dbgstr);
     int iDriveSel = Mount_DriveFromItem (hDlg, iItemSel);
+     sprintf(dbgstr,"Mount_OnEdit Drive = %d\n",iDriveSel);
+     OutputDebugStringA(dbgstr);
  
     Mount_AdjustMapping (hDlg, iDriveSel);
  }
***************
*** 327,347 ****
  
  int Mount_DriveFromItem (HWND hDlg, int iItem)
  {
!    TCHAR szItem[ 1024 ] = TEXT("");
!    SendDlgItemMessage (hDlg, IDC_LIST, LB_GETTEXT, iItem, (LPARAM)szItem);
  
!    LPTSTR pch;
!    if ((pch = (LPTSTR)lstrchr (szItem, TEXT(':'))) != NULL)
!       {
!       if (pch > szItem)
!          {
!          pch--;
!          if ((*pch >= TEXT('A')) && (*pch <= TEXT('Z')))
!             return (*pch) - TEXT('A');
!          }
!       }
  
!    return -1;
  }
  
  
--- 364,387 ----
  
  int Mount_DriveFromItem (HWND hDlg, int iItem)
  {
!     char dbgstr[128];
!     TCHAR szItem[ 1024 ] = TEXT("");
!     SendDlgItemMessage (hDlg, IDC_LIST, LB_GETTEXT, iItem, (LPARAM)szItem);
!     sprintf(dbgstr, "Mount_DriveFromItem LB_GETTEXT - [%s]\n", szItem);
!     OutputDebugString(dbgstr);
  
!     LPTSTR pch;
!     if ((pch = (LPTSTR)lstrchr (szItem, TEXT(':'))) != NULL)
!     {
! 	if (pch > szItem)
! 	{
! 	    pch--;
! 	    if ((*pch >= TEXT('A')) && (*pch <= TEXT('Z')))
! 		return (*pch) - TEXT('A');
! 	}
!     }
  
!     return -1;
  }
  
  
***************
*** 385,390 ****
--- 425,431 ----
  
  void Mapping_OnInitDialog (HWND hDlg)
  {
+     char dbgstr[128];
     PDRIVEMAP pMap = (PDRIVEMAP)GetWindowLongPtr (hDlg, DWLP_USER);
  
     // Fill in the combo box
***************
*** 426,433 ****
      CHAR msg[256], msgf[256];
      if (GetDlgItemText(hDlg,IDC_STATICSUBMOUNT,(LPSTR)msg,sizeof(msg)-1)>0)
      {
! 		wsprintf(msgf,msg,cm_back_slash_mount_root,cm_back_slash_mount_root);
! 		SetDlgItemText (hDlg, IDC_STATICSUBMOUNT, msgf);
     }
     SetDlgItemText (hDlg, IDC_MAP_PATH, szMapping);
     SetDlgItemText (hDlg, IDC_MAP_DESC, pMap->szSubmount);
--- 467,474 ----
      CHAR msg[256], msgf[256];
      if (GetDlgItemText(hDlg,IDC_STATICSUBMOUNT,(LPSTR)msg,sizeof(msg)-1)>0)
      {
! 	wsprintf(msgf,msg,cm_back_slash_mount_root,cm_back_slash_mount_root);
! 	SetDlgItemText (hDlg, IDC_STATICSUBMOUNT, msgf);
     }
     SetDlgItemText (hDlg, IDC_MAP_PATH, szMapping);
     SetDlgItemText (hDlg, IDC_MAP_DESC, pMap->szSubmount);
***************
*** 440,445 ****
--- 481,487 ----
  
  void Mapping_OnOK (HWND hDlg)
  {
+     char dbgstr[128];
     PDRIVEMAP pMap = (PDRIVEMAP)GetWindowLongPtr (hDlg, DWLP_USER);
  
     int iItem = SendDlgItemMessage (hDlg, IDC_MAP_LETTER, CB_GETCURSEL, 0, 0);
Index: openafs/src/WINNT/client_creds/lang/de_DE/afscreds.rc
diff -c openafs/src/WINNT/client_creds/lang/de_DE/afscreds.rc:1.6 openafs/src/WINNT/client_creds/lang/de_DE/afscreds.rc:1.6.14.1
*** openafs/src/WINNT/client_creds/lang/de_DE/afscreds.rc:1.6	Sun Jul 25 16:53:14 2004
--- openafs/src/WINNT/client_creds/lang/de_DE/afscreds.rc	Tue Dec 12 15:41:18 2006
***************
*** 192,198 ****
      PUSHBUTTON      "&Hinzufügen...",IDC_ADD,51,63,45,14
      PUSHBUTTON      "Ä&ndern ...",IDC_EDIT,99,63,45,14
      PUSHBUTTON      "&Entfernen",IDC_REMOVE,147,63,45,14
!     CONTROL         "",IDC_LIST,"CheckList",WS_BORDER | WS_VSCROLL | 
                      WS_TABSTOP | 0x1d3,51,21,231,37
      PUSHBUTTON      "Hilfe",9,237,63,45,14
  END
--- 192,198 ----
      PUSHBUTTON      "&Hinzufügen...",IDC_ADD,51,63,45,14
      PUSHBUTTON      "Ä&ndern ...",IDC_EDIT,99,63,45,14
      PUSHBUTTON      "&Entfernen",IDC_REMOVE,147,63,45,14
!     CONTROL         "",IDC_LIST,"OpenAFS_CheckList",WS_BORDER | WS_VSCROLL | 
                      WS_TABSTOP | 0x1d3,51,21,231,37
      PUSHBUTTON      "Hilfe",9,237,63,45,14
  END
Index: openafs/src/WINNT/client_creds/lang/en_US/afscreds.rc
diff -c openafs/src/WINNT/client_creds/lang/en_US/afscreds.rc:1.9 openafs/src/WINNT/client_creds/lang/en_US/afscreds.rc:1.9.4.1
*** openafs/src/WINNT/client_creds/lang/en_US/afscreds.rc:1.9	Mon Oct  3 00:03:39 2005
--- openafs/src/WINNT/client_creds/lang/en_US/afscreds.rc	Tue Dec 12 15:41:18 2006
***************
*** 194,201 ****
      PUSHBUTTON      "&Add...",IDC_ADD,51,63,45,14
      PUSHBUTTON      "&Change...",IDC_EDIT,99,63,45,14
      PUSHBUTTON      "&Remove",IDC_REMOVE,147,63,45,14
!     CONTROL         "",IDC_LIST,"CheckList",WS_BORDER | WS_VSCROLL | 
!                     WS_TABSTOP | 0x1d3,51,21,231,37
      PUSHBUTTON      "Help",9,237,63,45,14
  END
  
--- 194,203 ----
      PUSHBUTTON      "&Add...",IDC_ADD,51,63,45,14
      PUSHBUTTON      "&Change...",IDC_EDIT,99,63,45,14
      PUSHBUTTON      "&Remove",IDC_REMOVE,147,63,45,14
!     CONTROL         "",IDC_LIST,"OpenAFS_CheckList", 
!      	  	    LBS_STANDARD | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | 
! 		    LBS_USETABSTOPS |LBS_NOINTEGRALHEIGHT | WS_TABSTOP,
! 		    51,21,231,37
      PUSHBUTTON      "Help",9,237,63,45,14
  END
  
***************
*** 530,541 ****
      IDS_MOUNT               "Drive Letters"
      IDS_WIZ_NEXT            "&Next >"
      IDS_WIZ_FINISH          "&Finish"
!     IDS_MAP_LETTER          "Drive *:"
  END
  
  STRINGTABLE DISCARDABLE 
  BEGIN
!     IDS_DRIVE_MAP           "Drive %1: \t%2"
      IDS_ERROR_MAP           "Error Mapping Network Drive"
      IDS_ERROR_MAP_DESC      "AFS was unable to map the network drive to the specified path in AFS. Check to make sure the drive letter is not currently in use.\n\nError: 0x%1."
      IDS_ERROR_UNMAP         "Error Mapping Network Drive"
--- 532,543 ----
      IDS_MOUNT               "Drive Letters"
      IDS_WIZ_NEXT            "&Next >"
      IDS_WIZ_FINISH          "&Finish"
!     IDS_MAP_LETTER          "*:"
  END
  
  STRINGTABLE DISCARDABLE 
  BEGIN
!     IDS_DRIVE_MAP           "%1: \t%2"
      IDS_ERROR_MAP           "Error Mapping Network Drive"
      IDS_ERROR_MAP_DESC      "AFS was unable to map the network drive to the specified path in AFS. Check to make sure the drive letter is not currently in use.\n\nError: 0x%1."
      IDS_ERROR_UNMAP         "Error Mapping Network Drive"
Index: openafs/src/WINNT/client_creds/lang/es_ES/afscreds.rc
diff -c openafs/src/WINNT/client_creds/lang/es_ES/afscreds.rc:1.6 openafs/src/WINNT/client_creds/lang/es_ES/afscreds.rc:1.6.14.1
*** openafs/src/WINNT/client_creds/lang/es_ES/afscreds.rc:1.6	Sun Jul 25 16:53:15 2004
--- openafs/src/WINNT/client_creds/lang/es_ES/afscreds.rc	Tue Dec 12 15:41:18 2006
***************
*** 195,201 ****
      PUSHBUTTON      "&Añadir...",IDC_ADD,51,63,45,14
      PUSHBUTTON      "&Cambiar...",IDC_EDIT,99,63,45,14
      PUSHBUTTON      "&Eliminar",IDC_REMOVE,147,63,45,14
!     CONTROL         "",IDC_LIST,"CheckList",WS_BORDER | WS_VSCROLL | 
                      WS_TABSTOP | 0x1d3,59,21,231,37
      PUSHBUTTON      "Ayuda",9,246,63,45,14
  END
--- 195,201 ----
      PUSHBUTTON      "&Añadir...",IDC_ADD,51,63,45,14
      PUSHBUTTON      "&Cambiar...",IDC_EDIT,99,63,45,14
      PUSHBUTTON      "&Eliminar",IDC_REMOVE,147,63,45,14
!     CONTROL         "",IDC_LIST,"OpenAFS_CheckList",WS_BORDER | WS_VSCROLL | 
                      WS_TABSTOP | 0x1d3,59,21,231,37
      PUSHBUTTON      "Ayuda",9,246,63,45,14
  END
Index: openafs/src/WINNT/client_creds/lang/ja_JP/afscreds.rc
diff -c openafs/src/WINNT/client_creds/lang/ja_JP/afscreds.rc:1.6 openafs/src/WINNT/client_creds/lang/ja_JP/afscreds.rc:1.6.14.1
*** openafs/src/WINNT/client_creds/lang/ja_JP/afscreds.rc:1.6	Sun Jul 25 16:53:15 2004
--- openafs/src/WINNT/client_creds/lang/ja_JP/afscreds.rc	Tue Dec 12 15:41:18 2006
***************
*** 193,199 ****
      PUSHBUTTON      "’Ç‰Á(&A)...",IDC_ADD,51,63,45,14
      PUSHBUTTON      "•ÏX(&C)...",IDC_EDIT,99,63,45,14
      PUSHBUTTON      "íœ(&R)",IDC_REMOVE,147,63,45,14
!     CONTROL         "",IDC_LIST,"CheckList",WS_BORDER | WS_VSCROLL | 
                      WS_TABSTOP | 0x1d3,51,21,231,37
      PUSHBUTTON      "ƒwƒ‹ƒv",9,237,63,45,14
  END
--- 193,199 ----
      PUSHBUTTON      "’Ç‰Á(&A)...",IDC_ADD,51,63,45,14
      PUSHBUTTON      "•ÏX(&C)...",IDC_EDIT,99,63,45,14
      PUSHBUTTON      "íœ(&R)",IDC_REMOVE,147,63,45,14
!     CONTROL         "",IDC_LIST,"OpenAFS_CheckList",WS_BORDER | WS_VSCROLL | 
                      WS_TABSTOP | 0x1d3,51,21,231,37
      PUSHBUTTON      "ƒwƒ‹ƒv",9,237,63,45,14
  END
Index: openafs/src/WINNT/client_creds/lang/ko_KR/afscreds.rc
diff -c openafs/src/WINNT/client_creds/lang/ko_KR/afscreds.rc:1.6 openafs/src/WINNT/client_creds/lang/ko_KR/afscreds.rc:1.6.14.1
*** openafs/src/WINNT/client_creds/lang/ko_KR/afscreds.rc:1.6	Sun Jul 25 16:53:16 2004
--- openafs/src/WINNT/client_creds/lang/ko_KR/afscreds.rc	Tue Dec 12 15:41:19 2006
***************
*** 189,195 ****
      PUSHBUTTON      "Ãß°¡(&A)...",IDC_ADD,51,63,45,14
      PUSHBUTTON      "º¯°æ(&C)...",IDC_EDIT,99,63,45,14
      PUSHBUTTON      "Á¦°Å(&R)",IDC_REMOVE,147,63,45,14
!     CONTROL         "",IDC_LIST,"CheckList",WS_BORDER | WS_VSCROLL | 
                      WS_TABSTOP | 0x1d3,51,21,231,37
      PUSHBUTTON      "µµ¿ò¸»",9,237,63,45,14
  END
--- 189,195 ----
      PUSHBUTTON      "Ãß°¡(&A)...",IDC_ADD,51,63,45,14
      PUSHBUTTON      "º¯°æ(&C)...",IDC_EDIT,99,63,45,14
      PUSHBUTTON      "Á¦°Å(&R)",IDC_REMOVE,147,63,45,14
!     CONTROL         "",IDC_LIST,"OpenAFS_CheckList",WS_BORDER | WS_VSCROLL | 
                      WS_TABSTOP | 0x1d3,51,21,231,37
      PUSHBUTTON      "µµ¿ò¸»",9,237,63,45,14
  END
Index: openafs/src/WINNT/client_creds/lang/pt_BR/afscreds.rc
diff -c openafs/src/WINNT/client_creds/lang/pt_BR/afscreds.rc:1.5 openafs/src/WINNT/client_creds/lang/pt_BR/afscreds.rc:1.5.14.1
*** openafs/src/WINNT/client_creds/lang/pt_BR/afscreds.rc:1.5	Sun Jul 25 16:53:16 2004
--- openafs/src/WINNT/client_creds/lang/pt_BR/afscreds.rc	Tue Dec 12 15:41:19 2006
***************
*** 192,198 ****
      PUSHBUTTON      "&Incluir...",IDC_ADD,51,63,45,14
      PUSHBUTTON      "Al&terar...",IDC_EDIT,99,63,45,14
      PUSHBUTTON      "&Remover",IDC_REMOVE,147,63,45,14
!     CONTROL         "",IDC_LIST,"CheckList",WS_BORDER | WS_VSCROLL | 
                      WS_TABSTOP | 0x1d3,51,21,231,37
      PUSHBUTTON      "Ajuda",9,237,63,45,14
  END
--- 192,198 ----
      PUSHBUTTON      "&Incluir...",IDC_ADD,51,63,45,14
      PUSHBUTTON      "Al&terar...",IDC_EDIT,99,63,45,14
      PUSHBUTTON      "&Remover",IDC_REMOVE,147,63,45,14
!     CONTROL         "",IDC_LIST,"OpenAFS_CheckList",WS_BORDER | WS_VSCROLL | 
                      WS_TABSTOP | 0x1d3,51,21,231,37
      PUSHBUTTON      "Ajuda",9,237,63,45,14
  END
Index: openafs/src/WINNT/client_creds/lang/zh_CN/afscreds.rc
diff -c openafs/src/WINNT/client_creds/lang/zh_CN/afscreds.rc:1.6 openafs/src/WINNT/client_creds/lang/zh_CN/afscreds.rc:1.6.14.1
*** openafs/src/WINNT/client_creds/lang/zh_CN/afscreds.rc:1.6	Sun Jul 25 16:53:17 2004
--- openafs/src/WINNT/client_creds/lang/zh_CN/afscreds.rc	Tue Dec 12 15:41:19 2006
***************
*** 189,195 ****
      PUSHBUTTON      "Ìí¼Ó(&A)...",IDC_ADD,51,63,45,14
      PUSHBUTTON      "¸ü¸Ä(&C)...",IDC_EDIT,99,63,45,14
      PUSHBUTTON      "³ýÈ¥(&R)",IDC_REMOVE,147,63,45,14
!     CONTROL         "",IDC_LIST,"CheckList",WS_BORDER | WS_VSCROLL | 
                      WS_TABSTOP | 0x1d3,51,21,231,37
      PUSHBUTTON      "°ïÖú",9,237,63,45,14
  END
--- 189,195 ----
      PUSHBUTTON      "Ìí¼Ó(&A)...",IDC_ADD,51,63,45,14
      PUSHBUTTON      "¸ü¸Ä(&C)...",IDC_EDIT,99,63,45,14
      PUSHBUTTON      "³ýÈ¥(&R)",IDC_REMOVE,147,63,45,14
!     CONTROL         "",IDC_LIST,"OpenAFS_CheckList",WS_BORDER | WS_VSCROLL | 
                      WS_TABSTOP | 0x1d3,51,21,231,37
      PUSHBUTTON      "°ïÖú",9,237,63,45,14
  END
Index: openafs/src/WINNT/client_creds/lang/zh_TW/afscreds.rc
diff -c openafs/src/WINNT/client_creds/lang/zh_TW/afscreds.rc:1.6 openafs/src/WINNT/client_creds/lang/zh_TW/afscreds.rc:1.6.14.1
*** openafs/src/WINNT/client_creds/lang/zh_TW/afscreds.rc:1.6	Sun Jul 25 16:53:17 2004
--- openafs/src/WINNT/client_creds/lang/zh_TW/afscreds.rc	Tue Dec 12 15:41:19 2006
***************
*** 190,196 ****
      PUSHBUTTON      "·s¼W(&A)...",IDC_ADD,51,63,45,14
      PUSHBUTTON      "ÅÜ§ó(&C)...",IDC_EDIT,99,63,45,14
      PUSHBUTTON      "²¾°£(&R)",IDC_REMOVE,147,63,45,14
!     CONTROL         "",IDC_LIST,"CheckList",WS_BORDER | WS_VSCROLL | 
                      WS_TABSTOP | 0x1d3,51,21,231,37
      PUSHBUTTON      "»¡©ú",9,237,63,45,14
  END
--- 190,196 ----
      PUSHBUTTON      "·s¼W(&A)...",IDC_ADD,51,63,45,14
      PUSHBUTTON      "ÅÜ§ó(&C)...",IDC_EDIT,99,63,45,14
      PUSHBUTTON      "²¾°£(&R)",IDC_REMOVE,147,63,45,14
!     CONTROL         "",IDC_LIST,"OpenAFS_CheckList",WS_BORDER | WS_VSCROLL | 
                      WS_TABSTOP | 0x1d3,51,21,231,37
      PUSHBUTTON      "»¡©ú",9,237,63,45,14
  END
Index: openafs/src/WINNT/doc/install/Documentation/en_US/html/index.htm
diff -c openafs/src/WINNT/doc/install/Documentation/en_US/html/index.htm:1.5.4.6 openafs/src/WINNT/doc/install/Documentation/en_US/html/index.htm:1.5.4.7
*** openafs/src/WINNT/doc/install/Documentation/en_US/html/index.htm:1.5.4.6	Wed Nov 29 23:40:07 2006
--- openafs/src/WINNT/doc/install/Documentation/en_US/html/index.htm	Tue Dec 12 23:28:01 2006
***************
*** 198,204 ****
  
  <h1>OpenAFS for Windows</h1>
  
! <h2>Version 1.5.12</h2>
  
  <p class=MsoNormal><span style='mso-fareast-font-family:"MS Mincho"'>&nbsp; <o:p></o:p></span></p>
  
--- 198,204 ----
  
  <h1>OpenAFS for Windows</h1>
  
! <h2>Version 1.5.13</h2>
  
  <p class=MsoNormal><span style='mso-fareast-font-family:"MS Mincho"'>&nbsp; <o:p></o:p></span></p>
  
Index: openafs/src/WINNT/doc/install/Documentation/en_US/html/ReleaseNotes/logo.htm
diff -c openafs/src/WINNT/doc/install/Documentation/en_US/html/ReleaseNotes/logo.htm:1.1.6.7 openafs/src/WINNT/doc/install/Documentation/en_US/html/ReleaseNotes/logo.htm:1.1.6.8
*** openafs/src/WINNT/doc/install/Documentation/en_US/html/ReleaseNotes/logo.htm:1.1.6.7	Wed Nov 29 23:40:11 2006
--- openafs/src/WINNT/doc/install/Documentation/en_US/html/ReleaseNotes/logo.htm	Tue Dec 12 23:28:06 2006
***************
*** 18,24 ****
  .shape {behavior:url(#default#VML);}
  </style>
  <![endif]-->
! <title>OpenAFS for Windows 1.5.12 Release Notes</title>
  <!--[if gte mso 9]><xml>
   <o:DocumentProperties>
    <o:Revision>1</o:Revision>
--- 18,24 ----
  .shape {behavior:url(#default#VML);}
  </style>
  <![endif]-->
! <title>OpenAFS for Windows 1.5.13 Release Notes</title>
  <!--[if gte mso 9]><xml>
   <o:DocumentProperties>
    <o:Revision>1</o:Revision>
Index: openafs/src/WINNT/doc/install/Documentation/en_US/html/ReleaseNotes/relnotes-frames.htm
diff -c openafs/src/WINNT/doc/install/Documentation/en_US/html/ReleaseNotes/relnotes-frames.htm:1.1.4.9 openafs/src/WINNT/doc/install/Documentation/en_US/html/ReleaseNotes/relnotes-frames.htm:1.1.4.10
*** openafs/src/WINNT/doc/install/Documentation/en_US/html/ReleaseNotes/relnotes-frames.htm:1.1.4.9	Wed Nov 29 23:40:11 2006
--- openafs/src/WINNT/doc/install/Documentation/en_US/html/ReleaseNotes/relnotes-frames.htm	Tue Dec 12 23:28:06 2006
***************
*** 8,14 ****
  <meta name=Generator content="Microsoft Word 11">
  <meta name=Originator content="Microsoft Word 11">
  <link rel=File-List href="relnotes-frames_files/filelist.xml">
! <title>OpenAFS for Windows 1.5.12 Release Notes</title>
  <!--[if gte mso 9]><xml>
   <w:WordDocument>
    <w:Zoom>0</w:Zoom>
--- 8,14 ----
  <meta name=Generator content="Microsoft Word 11">
  <meta name=Originator content="Microsoft Word 11">
  <link rel=File-List href="relnotes-frames_files/filelist.xml">
! <title>OpenAFS for Windows 1.5.13 Release Notes</title>
  <!--[if gte mso 9]><xml>
   <w:WordDocument>
    <w:Zoom>0</w:Zoom>
Index: openafs/src/WINNT/doc/install/Documentation/en_US/html/ReleaseNotes/relnotes.htm
diff -c openafs/src/WINNT/doc/install/Documentation/en_US/html/ReleaseNotes/relnotes.htm:1.6.4.9 openafs/src/WINNT/doc/install/Documentation/en_US/html/ReleaseNotes/relnotes.htm:1.6.4.11
*** openafs/src/WINNT/doc/install/Documentation/en_US/html/ReleaseNotes/relnotes.htm:1.6.4.9	Wed Nov 29 23:40:11 2006
--- openafs/src/WINNT/doc/install/Documentation/en_US/html/ReleaseNotes/relnotes.htm	Mon Dec 18 18:20:57 2006
***************
*** 19,25 ****
  .shape {behavior:url(#default#VML);}
  </style>
  <![endif]-->
! <title>OpenAFS for Windows 1.5.12 Release Notes</title>
  <o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
   name="PostalCode"/>
  <o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
--- 19,25 ----
  .shape {behavior:url(#default#VML);}
  </style>
  <![endif]-->
! <title>OpenAFS for Windows 1.5.13 Release Notes</title>
  <o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
   name="PostalCode"/>
  <o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
***************
*** 40,55 ****
   name="place"/>
  <!--[if gte mso 9]><xml>
   <o:DocumentProperties>
!   <o:Revision>1</o:Revision>
!   <o:TotalTime>629</o:TotalTime>
    <o:Created>2006-11-29T17:26:00Z</o:Created>
!   <o:Pages>1</o:Pages>
!   <o:Words>16773</o:Words>
!   <o:Characters>95607</o:Characters>
    <o:Company>Secure Endpoints Inc.</o:Company>
!   <o:Lines>796</o:Lines>
!   <o:Paragraphs>224</o:Paragraphs>
!   <o:CharactersWithSpaces>112156</o:CharactersWithSpaces>
    <o:Version>11.8107</o:Version>
   </o:DocumentProperties>
  </xml><![endif]--><!--[if gte mso 9]><xml>
--- 40,57 ----
   name="place"/>
  <!--[if gte mso 9]><xml>
   <o:DocumentProperties>
!   <o:LastAuthor>Jeffrey Altman</o:LastAuthor>
!   <o:Revision>2</o:Revision>
!   <o:TotalTime>720</o:TotalTime>
    <o:Created>2006-11-29T17:26:00Z</o:Created>
!   <o:LastSaved>2006-12-18T23:20:00Z</o:LastSaved>
!   <o:Pages>17</o:Pages>
!   <o:Words>16931</o:Words>
!   <o:Characters>96510</o:Characters>
    <o:Company>Secure Endpoints Inc.</o:Company>
!   <o:Lines>804</o:Lines>
!   <o:Paragraphs>226</o:Paragraphs>
!   <o:CharactersWithSpaces>113215</o:CharactersWithSpaces>
    <o:Version>11.8107</o:Version>
   </o:DocumentProperties>
  </xml><![endif]--><!--[if gte mso 9]><xml>
***************
*** 489,508 ****
  	{page:Section1;}
   /* List Definitions */
   @list l0
- 	{mso-list-id:37315717;
- 	mso-list-template-ids:30312216;}
- @list l0:level1
- 	{mso-level-number-format:bullet;
- 	mso-level-text:\F0B7;
- 	mso-level-tab-stop:36.0pt;
- 	mso-level-number-position:left;
- 	text-indent:-18.0pt;
- 	mso-ansi-font-size:10.0pt;
- 	font-family:Symbol;}
- @list l1
  	{mso-list-id:1266575792;
  	mso-list-template-ids:-1777932230;}
! @list l1:level1
  	{mso-level-number-format:bullet;
  	mso-level-text:\F0B7;
  	mso-level-tab-stop:36.0pt;
--- 491,499 ----
  	{page:Section1;}
   /* List Definitions */
   @list l0
  	{mso-list-id:1266575792;
  	mso-list-template-ids:-1777932230;}
! @list l0:level1
  	{mso-level-number-format:bullet;
  	mso-level-text:\F0B7;
  	mso-level-tab-stop:36.0pt;
***************
*** 510,547 ****
  	text-indent:-18.0pt;
  	mso-ansi-font-size:10.0pt;
  	font-family:Symbol;}
! @list l1:level2
  	{mso-level-tab-stop:72.0pt;
  	mso-level-number-position:left;
  	text-indent:-18.0pt;}
! @list l1:level3
  	{mso-level-tab-stop:108.0pt;
  	mso-level-number-position:left;
  	text-indent:-18.0pt;}
! @list l1:level4
  	{mso-level-tab-stop:144.0pt;
  	mso-level-number-position:left;
  	text-indent:-18.0pt;}
! @list l1:level5
  	{mso-level-tab-stop:180.0pt;
  	mso-level-number-position:left;
  	text-indent:-18.0pt;}
! @list l1:level6
  	{mso-level-tab-stop:216.0pt;
  	mso-level-number-position:left;
  	text-indent:-18.0pt;}
! @list l1:level7
  	{mso-level-tab-stop:252.0pt;
  	mso-level-number-position:left;
  	text-indent:-18.0pt;}
! @list l1:level8
  	{mso-level-tab-stop:288.0pt;
  	mso-level-number-position:left;
  	text-indent:-18.0pt;}
! @list l1:level9
  	{mso-level-tab-stop:324.0pt;
  	mso-level-number-position:left;
  	text-indent:-18.0pt;}
  ol
  	{margin-bottom:0pt;}
  ul
--- 501,549 ----
  	text-indent:-18.0pt;
  	mso-ansi-font-size:10.0pt;
  	font-family:Symbol;}
! @list l0:level2
  	{mso-level-tab-stop:72.0pt;
  	mso-level-number-position:left;
  	text-indent:-18.0pt;}
! @list l0:level3
  	{mso-level-tab-stop:108.0pt;
  	mso-level-number-position:left;
  	text-indent:-18.0pt;}
! @list l0:level4
  	{mso-level-tab-stop:144.0pt;
  	mso-level-number-position:left;
  	text-indent:-18.0pt;}
! @list l0:level5
  	{mso-level-tab-stop:180.0pt;
  	mso-level-number-position:left;
  	text-indent:-18.0pt;}
! @list l0:level6
  	{mso-level-tab-stop:216.0pt;
  	mso-level-number-position:left;
  	text-indent:-18.0pt;}
! @list l0:level7
  	{mso-level-tab-stop:252.0pt;
  	mso-level-number-position:left;
  	text-indent:-18.0pt;}
! @list l0:level8
  	{mso-level-tab-stop:288.0pt;
  	mso-level-number-position:left;
  	text-indent:-18.0pt;}
! @list l0:level9
  	{mso-level-tab-stop:324.0pt;
  	mso-level-number-position:left;
  	text-indent:-18.0pt;}
+ @list l1
+ 	{mso-list-id:1481657723;
+ 	mso-list-template-ids:2053130416;}
+ @list l1:level1
+ 	{mso-level-number-format:bullet;
+ 	mso-level-text:\F0B7;
+ 	mso-level-tab-stop:36.0pt;
+ 	mso-level-number-position:left;
+ 	text-indent:-18.0pt;
+ 	mso-ansi-font-size:10.0pt;
+ 	font-family:Symbol;}
  ol
  	{margin-bottom:0pt;}
  ul
***************
*** 569,575 ****
  	mso-bidi-language:#0400;}
  </style>
  <![endif]--><!--[if gte mso 9]><xml>
!  <o:shapedefaults v:ext="edit" spidmax="5122"/>
  </xml><![endif]--><!--[if gte mso 9]><xml>
   <o:shapelayout v:ext="edit">
    <o:idmap v:ext="edit" data="1"/>
--- 571,577 ----
  	mso-bidi-language:#0400;}
  </style>
  <![endif]--><!--[if gte mso 9]><xml>
!  <o:shapedefaults v:ext="edit" spidmax="8194"/>
  </xml><![endif]--><!--[if gte mso 9]><xml>
   <o:shapelayout v:ext="edit">
    <o:idmap v:ext="edit" data="1"/>
***************
*** 581,587 ****
  
  <div class=Section1>
  
! <p class=MsoTitle>OpenAFS for Windows 1.5.12<br>
  Release Notes</p>
  
  <p class=MsoBodyText>The Andrew File System (AFS) is a location-independent
--- 583,589 ----
  
  <div class=Section1>
  
! <p class=MsoTitle>OpenAFS for Windows 1.5.13<br>
  Release Notes</p>
  
  <p class=MsoBodyText>The Andrew File System (AFS) is a location-independent
***************
*** 661,670 ****
  Registry Values<span style='color:windowtext;display:none;mso-hide:all;
  text-decoration:none;text-underline:none'>. 26</span></a></span></p>
  
! <h1><a name="_Toc152606203"></a><a name="_Toc152605032"></a><a
  name="_Toc115416098"></a><a name="_Toc139993082"></a><a name="_Toc126872163"></a><a
  name="_Toc115417109"></a><a name="_Toc115417037"></a><span style='mso-bookmark:
! _Toc152606203'><span style='mso-bookmark:_Toc152605032'><span style='mso-bookmark:
  _Toc115416098'>1. Installer Options</span></span></span></h1>
  
  <p class=MsoNormal>It can be installed either as a new installation or an
--- 663,672 ----
  Registry Values<span style='color:windowtext;display:none;mso-hide:all;
  text-decoration:none;text-underline:none'>. 26</span></a></span></p>
  
! <h1><a name="_Toc154229351"></a><a name="_Toc152605032"></a><a
  name="_Toc115416098"></a><a name="_Toc139993082"></a><a name="_Toc126872163"></a><a
  name="_Toc115417109"></a><a name="_Toc115417037"></a><span style='mso-bookmark:
! _Toc154229351'><span style='mso-bookmark:_Toc152605032'><span style='mso-bookmark:
  _Toc115416098'>1. Installer Options</span></span></span></h1>
  
  <p class=MsoNormal>It can be installed either as a new installation or an
***************
*** 682,696 ****
  customized for organizations via the use of MSI Transforms (see <a
  href="#_MSI_Deployment_Guide">MSI Deployment Guide</a>)</p>
  
! <h1><a name="_Toc152606204"></a><a name="_Toc152605033"></a><a
  name="_Toc115416099"></a><a name="_Toc139993083"></a><a name="_Toc126872164"></a><a
  name="_Toc115417110"></a><a name="_Toc115417038"></a><span style='mso-bookmark:
! _Toc152606204'><span style='mso-bookmark:_Toc152605033'><span style='mso-bookmark:
  _Toc115416099'>2. System Requirements</span></span></span></h1>
  
! <h2><a name="_Toc152606205"></a><a name="_Toc152605034"></a><a
  name="_Toc115416100"></a><a name="_Toc139993084"></a><a name="_Toc126872165"></a><a
! name="_Toc115417039"></a><span style='mso-bookmark:_Toc152606205'><span
  style='mso-bookmark:_Toc152605034'><span style='mso-bookmark:_Toc115416100'>2.1
  Supported Operating Systems</span></span></span></h2>
  
--- 684,698 ----
  customized for organizations via the use of MSI Transforms (see <a
  href="#_MSI_Deployment_Guide">MSI Deployment Guide</a>)</p>
  
! <h1><a name="_Toc154229352"></a><a name="_Toc152605033"></a><a
  name="_Toc115416099"></a><a name="_Toc139993083"></a><a name="_Toc126872164"></a><a
  name="_Toc115417110"></a><a name="_Toc115417038"></a><span style='mso-bookmark:
! _Toc154229352'><span style='mso-bookmark:_Toc152605033'><span style='mso-bookmark:
  _Toc115416099'>2. System Requirements</span></span></span></h1>
  
! <h2><a name="_Toc154229353"></a><a name="_Toc152605034"></a><a
  name="_Toc115416100"></a><a name="_Toc139993084"></a><a name="_Toc126872165"></a><a
! name="_Toc115417039"></a><span style='mso-bookmark:_Toc154229353'><span
  style='mso-bookmark:_Toc152605034'><span style='mso-bookmark:_Toc115416100'>2.1
  Supported Operating Systems</span></span></span></h2>
  
***************
*** 734,742 ****
  font-family:"Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Microsoft
  Windows <st1:place w:st="on">Vista</st1:place> (32-bit and 64-bit Intel)</p>
  
! <h3><a name="_Toc152606206"></a><a name="_Toc152605035"></a><a
  name="_Toc115416101"></a><a name="_Toc139993085"></a><a name="_Toc126872166"></a><span
! style='mso-bookmark:_Toc152606206'><span style='mso-bookmark:_Toc152605035'><span
  style='mso-bookmark:_Toc115416101'>2.1.1 Unsupported Operating Systems</span></span></span></h3>
  
  <p class=MsoNormal style='margin-left:14.15pt;text-indent:-14.15pt'><span
--- 736,744 ----
  font-family:"Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Microsoft
  Windows <st1:place w:st="on">Vista</st1:place> (32-bit and 64-bit Intel)</p>
  
! <h3><a name="_Toc154229354"></a><a name="_Toc152605035"></a><a
  name="_Toc115416101"></a><a name="_Toc139993085"></a><a name="_Toc126872166"></a><span
! style='mso-bookmark:_Toc154229354'><span style='mso-bookmark:_Toc152605035'><span
  style='mso-bookmark:_Toc115416101'>2.1.1 Unsupported Operating Systems</span></span></span></h3>
  
  <p class=MsoNormal style='margin-left:14.15pt;text-indent:-14.15pt'><span
***************
*** 769,777 ****
  with support for Win9x is 1.2.2b.&nbsp; The last version with support for
  Windows NT 4.0 is 1.2.10.</p>
  
! <h2><a name="_Toc152606207"></a><a name="_Toc152605036"></a><a
  name="_Toc115416102"></a><a name="_Toc139993086"></a><a name="_Toc126872167"></a><a
! name="_Toc115417040"></a><span style='mso-bookmark:_Toc152606207'><span
  style='mso-bookmark:_Toc152605036'><span style='mso-bookmark:_Toc115416102'>2.2
  Disk Space</span></span></span></h2>
  
--- 771,779 ----
  with support for Win9x is 1.2.2b.&nbsp; The last version with support for
  Windows NT 4.0 is 1.2.10.</p>
  
! <h2><a name="_Toc154229355"></a><a name="_Toc152605036"></a><a
  name="_Toc115416102"></a><a name="_Toc139993086"></a><a name="_Toc126872167"></a><a
! name="_Toc115417040"></a><span style='mso-bookmark:_Toc154229355'><span
  style='mso-bookmark:_Toc152605036'><span style='mso-bookmark:_Toc115416102'>2.2
  Disk Space</span></span></span></h2>
  
***************
*** 779,787 ****
  the default AFSCache file.&nbsp;&nbsp; (The size of the AFSCache file may be
  adjusted via the Registry after installation.)</p>
  
! <h2><a name="_Toc152606208"></a><a name="_Toc152605037"></a><a
  name="_Toc115416103"></a><a name="_Toc139993087"></a><a name="_Toc126872168"></a><a
! name="_Toc115417041"></a><span style='mso-bookmark:_Toc152606208'><span
  style='mso-bookmark:_Toc152605037'><span style='mso-bookmark:_Toc115416103'>2.3
  Additional Software</span> Packages</span></span></h2>
  
--- 781,789 ----
  the default AFSCache file.&nbsp;&nbsp; (The size of the AFSCache file may be
  adjusted via the Registry after installation.)</p>
  
! <h2><a name="_Toc154229356"></a><a name="_Toc152605037"></a><a
  name="_Toc115416103"></a><a name="_Toc139993087"></a><a name="_Toc126872168"></a><a
! name="_Toc115417041"></a><span style='mso-bookmark:_Toc154229356'><span
  style='mso-bookmark:_Toc152605037'><span style='mso-bookmark:_Toc115416103'>2.3
  Additional Software</span> Packages</span></span></h2>
  
***************
*** 789,803 ****
  Kerberos for Windows</a> 2.6.x or 3.1.x if Kerberos 5 authentication support is
  desired.</p>
  
! <h1><a name="_Toc152606209"></a><a name="_Toc152605038"></a><a
  name="_Toc115416104"></a><a name="_Toc139993088"></a><a name="_Toc126872169"></a><a
  name="_Toc115417111"></a><a name="_Toc115417042"></a><span style='mso-bookmark:
! _Toc152606209'><span style='mso-bookmark:_Toc152605038'><span style='mso-bookmark:
  _Toc115416104'>3. Operational Notes</span></span></span></h1>
  
! <h2><a name="_Toc152606210"></a><a name="_Toc152605039"></a><a
  name="_Toc115416105"></a><a name="_Toc139993089"></a><a name="_Toc126872170"></a><a
! name="_Toc115417043"></a><span style='mso-bookmark:_Toc152606210'><span
  style='mso-bookmark:_Toc152605039'><span style='mso-bookmark:_Toc115416105'>3.1.
  Requirements for Kerberos 5 Authentication</span></span></span></h2>
  
--- 791,805 ----
  Kerberos for Windows</a> 2.6.x or 3.1.x if Kerberos 5 authentication support is
  desired.</p>
  
! <h1><a name="_Toc154229357"></a><a name="_Toc152605038"></a><a
  name="_Toc115416104"></a><a name="_Toc139993088"></a><a name="_Toc126872169"></a><a
  name="_Toc115417111"></a><a name="_Toc115417042"></a><span style='mso-bookmark:
! _Toc154229357'><span style='mso-bookmark:_Toc152605038'><span style='mso-bookmark:
  _Toc115416104'>3. Operational Notes</span></span></span></h1>
  
! <h2><a name="_Toc154229358"></a><a name="_Toc152605039"></a><a
  name="_Toc115416105"></a><a name="_Toc139993089"></a><a name="_Toc126872170"></a><a
! name="_Toc115417043"></a><span style='mso-bookmark:_Toc154229358'><span
  style='mso-bookmark:_Toc152605039'><span style='mso-bookmark:_Toc115416105'>3.1.
  Requirements for Kerberos 5 Authentication</span></span></span></h2>
  
***************
*** 819,827 ****
  Kerberos 5 based tokens are supported by OpenAFS release 1.2.8 or later.&nbsp;
  IBM Transarc servers do not support Kerberos 5.</p>
  
! <h3><a name="_Toc152606211"></a><a name="_Toc152605040"></a><a
  name="_Toc115416106"></a><a name="_Toc139993090"></a><a name="_Toc126872171"></a><span
! style='mso-bookmark:_Toc152606211'><span style='mso-bookmark:_Toc152605040'><span
  style='mso-bookmark:_Toc115416106'>3.1.1. Active Directory</span></span></span></h3>
  
  <p class=MsoNormal>Microsoft Windows Active Directory can be used as a Kerberos
--- 821,829 ----
  Kerberos 5 based tokens are supported by OpenAFS release 1.2.8 or later.&nbsp;
  IBM Transarc servers do not support Kerberos 5.</p>
  
! <h3><a name="_Toc154229359"></a><a name="_Toc152605040"></a><a
  name="_Toc115416106"></a><a name="_Toc139993090"></a><a name="_Toc126872171"></a><span
! style='mso-bookmark:_Toc154229359'><span style='mso-bookmark:_Toc152605040'><span
  style='mso-bookmark:_Toc115416106'>3.1.1. Active Directory</span></span></span></h3>
  
  <p class=MsoNormal>Microsoft Windows Active Directory can be used as a Kerberos
***************
*** 850,858 ****
  accounts that are associated with non-Windows services and that do not
  understand the authorization data stored in the <st1:place w:st="on">PAC.</st1:place></p>
  
! <h3><a name="_Toc152606212"></a><a name="_Toc152605041"></a><a
  name="_Toc115416107"></a><a name="_Toc139993091"></a><a name="_Toc126872172"></a><span
! style='mso-bookmark:_Toc152606212'><span style='mso-bookmark:_Toc152605041'><span
  style='mso-bookmark:_Toc115416107'>3.1.2. Using the krb524 service</span></span></span></h3>
  
  <p class=MsoNormal>Some organizations which have AFS cell names and Kerberos
--- 852,860 ----
  accounts that are associated with non-Windows services and that do not
  understand the authorization data stored in the <st1:place w:st="on">PAC.</st1:place></p>
  
! <h3><a name="_Toc154229360"></a><a name="_Toc152605041"></a><a
  name="_Toc115416107"></a><a name="_Toc139993091"></a><a name="_Toc126872172"></a><span
! style='mso-bookmark:_Toc154229360'><span style='mso-bookmark:_Toc152605041'><span
  style='mso-bookmark:_Toc115416107'>3.1.2. Using the krb524 service</span></span></span></h3>
  
  <p class=MsoNormal>Some organizations which have AFS cell names and Kerberos
***************
*** 882,889 ****
  should only be used by individuals until such time as their organizations can
  provide a more permanent solution.</p>
  
! <h3><a name="_Toc152606213"></a><a name="_Toc152605042"><span style='mso-bookmark:
! _Toc152606213'>3.1.3. Network Identity Manager Plug-in</span></a></h3>
  
  <p class=MsoNormal>As of release 1.5.9, OpenAFS for Windows includes a Network
  Identity Manager plug-in for obtaining AFS tokens.<span
--- 884,891 ----
  should only be used by individuals until such time as their organizations can
  provide a more permanent solution.</p>
  
! <h3><a name="_Toc154229361"></a><a name="_Toc152605042"><span style='mso-bookmark:
! _Toc154229361'>3.1.3. Network Identity Manager Plug-in</span></a></h3>
  
  <p class=MsoNormal>As of release 1.5.9, OpenAFS for Windows includes a Network
  Identity Manager plug-in for obtaining AFS tokens.<span
***************
*** 919,925 ****
   height:509.25pt'>
   <v:imagedata src="relnotes_files/image001.png" o:title="netidmgr_main"/>
  </v:shape><![endif]--><![if !vml]><img border=0 width=556 height=679
! src="relnotes_files/image007.jpg" v:shapes="_x0000_i1025"><![endif]></p>
  
  <p class=MsoNormal>The Network Identity Manager replaces the former KFW ticket
  manager, Leash”, and when combined with the OpenAFS plug-in is intended to be
--- 921,927 ----
   height:509.25pt'>
   <v:imagedata src="relnotes_files/image001.png" o:title="netidmgr_main"/>
  </v:shape><![endif]--><![if !vml]><img border=0 width=556 height=679
! src="relnotes_files/image002.jpg" v:shapes="_x0000_i1025"><![endif]></p>
  
  <p class=MsoNormal>The Network Identity Manager replaces the former KFW ticket
  manager, Leash”, and when combined with the OpenAFS plug-in is intended to be
***************
*** 954,962 ****
  login.<span style='mso-spacerun:yes'>   </span>A shortcut to the OpenAFS
  Control Panel is also provided.</p>
  
! <h2><a name="_Toc152606214"></a><a name="_Toc152605043"></a><a
  name="_Toc115416108"></a><a name="_Toc139993092"></a><a name="_Toc126872173"></a><a
! name="_Toc115417044"></a><span style='mso-bookmark:_Toc152606214'><span
  style='mso-bookmark:_Toc152605043'><span style='mso-bookmark:_Toc115416108'>3.2.
  Use of the Microsoft Loopback Adapter</span> by the AFS Client Service</span></span></h2>
  
--- 956,964 ----
  login.<span style='mso-spacerun:yes'>   </span>A shortcut to the OpenAFS
  Control Panel is also provided.</p>
  
! <h2><a name="_Toc154229362"></a><a name="_Toc152605043"></a><a
  name="_Toc115416108"></a><a name="_Toc139993092"></a><a name="_Toc126872173"></a><a
! name="_Toc115417044"></a><span style='mso-bookmark:_Toc154229362'><span
  style='mso-bookmark:_Toc152605043'><span style='mso-bookmark:_Toc115416108'>3.2.
  Use of the Microsoft Loopback Adapter</span> by the AFS Client Service</span></span></h2>
  
***************
*** 1005,1021 ****
  font-family:"Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&nbsp;start
  the AFS Client Service</p>
  
! <p class=MsoNormal>When the MLA is not installed the unique NETBIOS name published
! by OpenAFS SMB server is &quot;<i>MACHINE</i>-AFS&quot;.&nbsp; One of the
! benefits of using the MLA is that the NETBIOS name does not have to be
  published on any adapter other than the MLA.&nbsp; Therefore the chosen name is
  no longer required to be unique.&nbsp; Instead the NETBIOS name associated with
  the AFS Client Service is simply &quot;AFS&quot; and portable UNC paths of the
  form \\AFS\cellname\path can now be used on all machines.</p>
  
! <h2><a name="_Toc152606215"></a><a name="_Toc152605044"></a><a
  name="_Toc115416109"></a><a name="_Toc139993093"></a><a name="_Toc126872174"></a><a
! name="_Toc115417045"></a><span style='mso-bookmark:_Toc152606215'><span
  style='mso-bookmark:_Toc152605044'><span style='mso-bookmark:_Toc115416109'>3.3.
  Using Freelance (Dynamic Root) Mode to Improve Mobility</span></span></span></h2>
  
--- 1007,1023 ----
  font-family:"Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&nbsp;start
  the AFS Client Service</p>
  
! <p class=MsoNormal>When the MLA is not installed the unique NETBIOS name
! published by OpenAFS SMB server is &quot;<i>MACHINE</i>-AFS&quot;.&nbsp; One of
! the benefits of using the MLA is that the NETBIOS name does not have to be
  published on any adapter other than the MLA.&nbsp; Therefore the chosen name is
  no longer required to be unique.&nbsp; Instead the NETBIOS name associated with
  the AFS Client Service is simply &quot;AFS&quot; and portable UNC paths of the
  form \\AFS\cellname\path can now be used on all machines.</p>
  
! <h2><a name="_Toc154229363"></a><a name="_Toc152605044"></a><a
  name="_Toc115416109"></a><a name="_Toc139993093"></a><a name="_Toc126872174"></a><a
! name="_Toc115417045"></a><span style='mso-bookmark:_Toc154229363'><span
  style='mso-bookmark:_Toc152605044'><span style='mso-bookmark:_Toc115416109'>3.3.
  Using Freelance (Dynamic Root) Mode to Improve Mobility</span></span></span></h2>
  
***************
*** 1026,1034 ****
  default cell believes should be accessible.&nbsp; If the &quot;root.afs&quot;
  volume is inaccessible when the client service is started, the service will
  terminate unexpectedly.&nbsp; Since many users now use laptops or otherwise
! operate in disconnected environments in which a VPN may be required to access the
! cell's servers, it is often the case that the &quot;root.afs&quot; volume for
! the default cell is not reachable and the OpenAFS Client Service will not
  successfully start. </p>
  
  <p class=MsoNormal>To allow the OpenAFS Client Service to operate in these
--- 1028,1036 ----
  default cell believes should be accessible.&nbsp; If the &quot;root.afs&quot;
  volume is inaccessible when the client service is started, the service will
  terminate unexpectedly.&nbsp; Since many users now use laptops or otherwise
! operate in disconnected environments in which a VPN may be required to access
! the cell's servers, it is often the case that the &quot;root.afs&quot; volume
! for the default cell is not reachable and the OpenAFS Client Service will not
  successfully start. </p>
  
  <p class=MsoNormal>To allow the OpenAFS Client Service to operate in these
***************
*** 1084,1102 ****
  <p class=preformattedtext style='margin-left:35.45pt'><a
  href="#_Regkey:_[HKLMSOFTWAREOpenAFSClie_1">HKLM\SOFTWARE\OpenAFS\Client\Freelance\Symlinks</a>&nbsp;</p>
  
! <h2><a name="_Toc152606216"></a><a name="_Toc152605045"></a><a
  name="_Toc115416110"></a><a name="_Toc139993094"></a><a name="_Toc126872175"></a><a
! name="_Toc115417046"></a><span style='mso-bookmark:_Toc152606216'><span
  style='mso-bookmark:_Toc152605045'><span style='mso-bookmark:_Toc115416110'>3.4.
  Locating AFS Volume Database Servers</span> via DNS</span></span> </h2>
  
  <p class=MsoNormal>The OpenAFS for Windows client will use DNS AFSDB records to
  discover the location of AFS Volume Database servers when entries for the cell
! are not present in the client's CellServDB file (\%PROGRAMFILES%\OpenAFS\Client\CellServDB).</p>
  
! <h2><a name="_Toc152606217"></a><a name="_Toc152605046"></a><a
  name="_Toc115416111"></a><a name="_Toc139993095"></a><a name="_Toc126872176"></a><a
! name="_Toc115417047"></a><span style='mso-bookmark:_Toc152606217'><span
  style='mso-bookmark:_Toc152605046'><span style='mso-bookmark:_Toc115416111'>3.5.
  Obtaining AFS Tokens as a Integrated Part of Windows Logon</span></span></span></h2>
  
--- 1086,1105 ----
  <p class=preformattedtext style='margin-left:35.45pt'><a
  href="#_Regkey:_[HKLMSOFTWAREOpenAFSClie_1">HKLM\SOFTWARE\OpenAFS\Client\Freelance\Symlinks</a>&nbsp;</p>
  
! <h2><a name="_Toc154229364"></a><a name="_Toc152605045"></a><a
  name="_Toc115416110"></a><a name="_Toc139993094"></a><a name="_Toc126872175"></a><a
! name="_Toc115417046"></a><span style='mso-bookmark:_Toc154229364'><span
  style='mso-bookmark:_Toc152605045'><span style='mso-bookmark:_Toc115416110'>3.4.
  Locating AFS Volume Database Servers</span> via DNS</span></span> </h2>
  
  <p class=MsoNormal>The OpenAFS for Windows client will use DNS AFSDB records to
  discover the location of AFS Volume Database servers when entries for the cell
! are not present in the client's CellServDB file
! (\%PROGRAMFILES%\OpenAFS\Client\CellServDB).</p>
  
! <h2><a name="_Toc154229365"></a><a name="_Toc152605046"></a><a
  name="_Toc115416111"></a><a name="_Toc139993095"></a><a name="_Toc126872176"></a><a
! name="_Toc115417047"></a><span style='mso-bookmark:_Toc154229365'><span
  style='mso-bookmark:_Toc152605046'><span style='mso-bookmark:_Toc115416111'>3.5.
  Obtaining AFS Tokens as a Integrated Part of Windows Logon</span></span></span></h2>
  
***************
*** 1104,1113 ****
  provide Single Sign-On functionality (aka Integrated Logon.)&nbsp; Integrated
  Logon can be used when the Windows username and password match the username and
  password associated with the default cell's Kerberos realm.&nbsp; For example,
! if the Windows username is &quot;jaltman&quot; and the default cell is
! &quot;athena.mit.edu&quot;, then Integrated Logon can be successfully used if
! the windows password matches the password assigned to the Kerberos principal
! &quot;<a href="mailto:jaltman@ATHENA.MIT.EDU">jaltman@ATHENA.MIT.EDU</a>&quot;.&nbsp;
  The realm “ATHENA.MIT.EDU” is obtained by performing a domain name to realm
  mapping on the hostname of one of the cell's Volume Database servers.</p>
  
--- 1107,1116 ----
  provide Single Sign-On functionality (aka Integrated Logon.)&nbsp; Integrated
  Logon can be used when the Windows username and password match the username and
  password associated with the default cell's Kerberos realm.&nbsp; For example,
! if the Windows username is &quot;jaltman&quot; and the default cell is &quot;athena.mit.edu&quot;,
! then Integrated Logon can be successfully used if the windows password matches
! the password assigned to the Kerberos principal &quot;<a
! href="mailto:jaltman@ATHENA.MIT.EDU">jaltman@ATHENA.MIT.EDU</a>&quot;.&nbsp;
  The realm “ATHENA.MIT.EDU” is obtained by performing a domain name to realm
  mapping on the hostname of one of the cell's Volume Database servers.</p>
  
***************
*** 1134,1142 ****
  read about the <a href="../relnotes.htm#_Value:_TheseCells">TheseCells</a>
  value.</p>
  
! <h2><a name="_Toc152606218"></a><a name="_Toc152605047"></a><a
  name="_Toc115416112"></a><a name="_Toc139993096"></a><a name="_Toc126872177"></a><a
! name="_Toc115417048"></a><span style='mso-bookmark:_Toc152606218'><span
  style='mso-bookmark:_Toc152605047'><span style='mso-bookmark:_Toc115416112'>3.6.
  AFS System Tray Command Line Options</span></span></span></h2>
  
--- 1137,1145 ----
  read about the <a href="../relnotes.htm#_Value:_TheseCells">TheseCells</a>
  value.</p>
  
! <h2><a name="_Toc154229366"></a><a name="_Toc152605047"></a><a
  name="_Toc115416112"></a><a name="_Toc139993096"></a><a name="_Toc126872177"></a><a
! name="_Toc115417048"></a><span style='mso-bookmark:_Toc154229366'><span
  style='mso-bookmark:_Toc152605047'><span style='mso-bookmark:_Toc115416112'>3.6.
  AFS System Tray Command Line Options</span></span></span></h2>
  
***************
*** 1183,1195 ****
  <p class=MsoNormal>By default afscreds.exe is configured by the OpenAFS.org
  installers to use “-A -N -M -Q” as startup options.&nbsp; Currently, there is
  no user interface to change this selection after install time although these
! options may be altered via the registry on either per machine or per user basis.&nbsp;
! See <a href="#_Value___:_AfscredsShortcutParams">AfscredsShortcutParams</a> in <a
! href="#_Appendix_A:_Registry_Values">Appendix A</a>.</p>
  
! <h2><a name="_Toc152606219"></a><a name="_Toc152605048"></a><a
  name="_Toc115416113"></a><a name="_Toc139993097"></a><a name="_Toc126872178"></a><a
! name="_Toc115417049"></a><span style='mso-bookmark:_Toc152606219'><span
  style='mso-bookmark:_Toc152605048'><span style='mso-bookmark:_Toc115416113'>3.7.
  The “AFS Client Admins” Authorization Group</span></span></span></h2>
  
--- 1186,1198 ----
  <p class=MsoNormal>By default afscreds.exe is configured by the OpenAFS.org
  installers to use “-A -N -M -Q” as startup options.&nbsp; Currently, there is
  no user interface to change this selection after install time although these
! options may be altered via the registry on either per machine or per user
! basis.&nbsp; See <a href="#_Value___:_AfscredsShortcutParams">AfscredsShortcutParams</a>
! in <a href="#_Appendix_A:_Registry_Values">Appendix A</a>.</p>
  
! <h2><a name="_Toc154229367"></a><a name="_Toc152605048"></a><a
  name="_Toc115416113"></a><a name="_Toc139993097"></a><a name="_Toc126872178"></a><a
! name="_Toc115417049"></a><span style='mso-bookmark:_Toc154229367'><span
  style='mso-bookmark:_Toc152605048'><span style='mso-bookmark:_Toc115416113'>3.7.
  The “AFS Client Admins” Authorization Group</span></span></span></h2>
  
***************
*** 1268,1276 ****
  the <a href="#_Value_:_SysName">registry</a> and not via &quot;fs
  sysname&quot;.</p>
  
! <h2><a name="_Toc152606220"></a><a name="_Toc152605049"></a><a
  name="_Toc115416114"></a><a name="_Toc139993098"></a><a name="_Toc126872179"></a><a
! name="_Toc115417050"></a><span style='mso-bookmark:_Toc152606220'><span
  style='mso-bookmark:_Toc152605049'><span style='mso-bookmark:_Toc115416114'>3.8.
  OpenAFS support for UNC paths</span></span></span> </h2>
  
--- 1271,1279 ----
  the <a href="#_Value_:_SysName">registry</a> and not via &quot;fs
  sysname&quot;.</p>
  
! <h2><a name="_Toc154229368"></a><a name="_Toc152605049"></a><a
  name="_Toc115416114"></a><a name="_Toc139993098"></a><a name="_Toc126872179"></a><a
! name="_Toc115417050"></a><span style='mso-bookmark:_Toc154229368'><span
  style='mso-bookmark:_Toc152605049'><span style='mso-bookmark:_Toc115416114'>3.8.
  OpenAFS support for UNC paths</span></span></span> </h2>
  
***************
*** 1293,1301 ****
  
  <p class=MsoNormal>JPSoftware's web site is <span class=MsoHyperlink>http://www.jpsoft.com</span>.</p>
  
! <h2><a name="_Toc152606221"></a><a name="_Toc152605050"></a><a
  name="_Toc115416115"></a><a name="_Toc139993099"></a><a name="_Toc126872180"></a><a
! name="_Toc115417051"></a><span style='mso-bookmark:_Toc152606221'><span
  style='mso-bookmark:_Toc152605050'><span style='mso-bookmark:_Toc115416115'>3.9.
  OpenAFS includes aklog.exe</span></span></span></h2>
  
--- 1296,1304 ----
  
  <p class=MsoNormal>JPSoftware's web site is <span class=MsoHyperlink>http://www.jpsoft.com</span>.</p>
  
! <h2><a name="_Toc154229369"></a><a name="_Toc152605050"></a><a
  name="_Toc115416115"></a><a name="_Toc139993099"></a><a name="_Toc126872180"></a><a
! name="_Toc115417051"></a><span style='mso-bookmark:_Toc154229369'><span
  style='mso-bookmark:_Toc152605050'><span style='mso-bookmark:_Toc115416115'>3.9.
  OpenAFS includes aklog.exe</span></span></span></h2>
  
***************
*** 1336,1344 ****
  <p class=preformattedtext>&nbsp;&nbsp; -m = use krb524d to convert Kerberos V
  tickets to Kerberos IV</p>
  
! <h2><a name="_Toc152606222"></a><a name="_Toc152605051"></a><a
  name="_Toc115416116"></a><a name="_Toc139993100"></a><a name="_Toc126872181"></a><a
! name="_Toc115417052"></a><span style='mso-bookmark:_Toc152606222'><span
  style='mso-bookmark:_Toc152605051'><span style='mso-bookmark:_Toc115416116'>3.10.
  OpenAFS Servers on Windows are Unsupported</span></span></span></h2>
  
--- 1339,1347 ----
  <p class=preformattedtext>&nbsp;&nbsp; -m = use krb524d to convert Kerberos V
  tickets to Kerberos IV</p>
  
! <h2><a name="_Toc154229370"></a><a name="_Toc152605051"></a><a
  name="_Toc115416116"></a><a name="_Toc139993100"></a><a name="_Toc126872181"></a><a
! name="_Toc115417052"></a><span style='mso-bookmark:_Toc154229370'><span
  style='mso-bookmark:_Toc152605051'><span style='mso-bookmark:_Toc115416116'>3.10.
  OpenAFS Servers on Windows are Unsupported</span></span></span></h2>
  
***************
*** 1347,1374 ****
  It has not been thoroughly tested.&nbsp; Any data which would cause pain if
  lost should not be stored in an OpenAFS Server on Windows.</p>
  
  <p class=MsoNormal>A few notes on the usage of the AFS Client Service if it is
  going to be used with the OpenAFS AFS Server:</p>
  
  <p class=MsoNormal style='margin-left:14.15pt;text-indent:-14.15pt'><span
  style='font-size:9.0pt;font-family:Symbol'>·</span><span style='font-size:7.0pt;
! font-family:"Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>When
! installed on the same machine as the AFS Server, Freelance mode must be turned
! off.&nbsp; Otherwise, you will be unable to manipulate the contents of the root.afs
! volume for the hosted cell.</p>
  
  <p class=MsoNormal style='margin-left:14.15pt;text-indent:-14.15pt'><span
  style='font-size:9.0pt;font-family:Symbol'>·</span><span style='font-size:7.0pt;
  font-family:"Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>The
  AFS Server and related tools only support the built in kaserver (Kerberos
! IV).&nbsp; If the AFS Server is being used, <a
! href="http://web.mit.edu/kerberos/">MIT Kerberos for Windows</a> should not be installed
! or must be disabled via the <a href="#_Toc126872361">EnableKFW</a> registry
! value.</p>
  
! <h2><a name="_Toc152606223"></a><a name="_Toc152605052"></a><a
  name="_Toc115416117"></a><a name="_Toc139993101"></a><a name="_Toc126872182"></a><a
! name="_Toc115417053"></a><span style='mso-bookmark:_Toc152606223'><span
  style='mso-bookmark:_Toc152605052'><span style='mso-bookmark:_Toc115416117'>3.11.
  OpenAFS Debugging Symbol files</span></span></span></h2>
  
--- 1350,1400 ----
  It has not been thoroughly tested.&nbsp; Any data which would cause pain if
  lost should not be stored in an OpenAFS Server on Windows.</p>
  
+ <h3><a name="_Toc154229371">3.10.1. OpenAFS Server Installation</a></h3>
+ 
+ <p class=MsoNormal>When the OpenAFS Server is installed, the TransarcAFSServer
+ service (bosctlsvc.exe) will be installed and configured.<span
+ style='mso-spacerun:yes'>  </span>The TransarcAFSServer service will auto-start
+ the traditional AFS bos server.<span style='mso-spacerun:yes'>  </span>The
+ former AFS Server Configuration wizard makes assumptions that no longer hold
+ true.<span style='mso-spacerun:yes'>  </span>As a result, the installation
+ process will fail.<span style='mso-spacerun:yes'>  </span>However, following
+ the instructions for installing the AFS Servers on UNIX it is possible to
+ properly configure the AFS Servers on Microsoft Windows.<span
+ style='mso-spacerun:yes'>  </span>The AFS Server binaries, configuration files,
+ and log files are installed under %Program Files%\OpenAFS\Server.<span
+ style='mso-spacerun:yes'>   </span><a
+ href="http://www.openafs.org/no-more-des.html">kaserver is deprecated and its
+ use is strongly discouraged.</a><span style='mso-spacerun:yes'> 
+ </span>Instead, Active Directory or some other Kerberos 5 KDC should be used in
+ its place.</p>
+ 
+ <h3><a name="_Toc154229372">3.10.2. Using the AFS Client Service when the
+ Server is installed</a></h3>
+ 
  <p class=MsoNormal>A few notes on the usage of the AFS Client Service if it is
  going to be used with the OpenAFS AFS Server:</p>
  
  <p class=MsoNormal style='margin-left:14.15pt;text-indent:-14.15pt'><span
  style='font-size:9.0pt;font-family:Symbol'>·</span><span style='font-size:7.0pt;
! font-family:"Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Freelance
! mode should be disabled when the AFS Client Service is installed on the same
! machine as the AFS Server,.&nbsp; Otherwise, you will be unable to manipulate the
! contents of the root.afs volume for the hosted cell without constructing an
! explicit mountpoint to the root.afs volume from another volume.</p>
  
  <p class=MsoNormal style='margin-left:14.15pt;text-indent:-14.15pt'><span
  style='font-size:9.0pt;font-family:Symbol'>·</span><span style='font-size:7.0pt;
  font-family:"Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>The
  AFS Server and related tools only support the built in kaserver (Kerberos
! IV).&nbsp; If kaserver is being used, <a href="http://web.mit.edu/kerberos/">MIT
! Kerberos for Windows</a> should not be installed or must be disabled via the <a
! href="#_Toc126872361">EnableKFW</a> registry value.<span
! style='mso-spacerun:yes'>  </span></p>
  
! <h2><a name="_Toc154229373"></a><a name="_Toc152605052"></a><a
  name="_Toc115416117"></a><a name="_Toc139993101"></a><a name="_Toc126872182"></a><a
! name="_Toc115417053"></a><span style='mso-bookmark:_Toc154229373'><span
  style='mso-bookmark:_Toc152605052'><span style='mso-bookmark:_Toc115416117'>3.11.
  OpenAFS Debugging Symbol files</span></span></span></h2>
  
***************
*** 1401,1409 ****
  or not additional debug statements were compiled into the binaries (release:
  no, debug: yes)</p>
  
! <h2><a name="_Toc152606224"></a><a name="_Toc152605053"></a><a
  name="_Toc115416118"></a><a name="_Toc139993102"></a><a name="_Toc126872183"></a><a
! name="_Toc115417054"></a><span style='mso-bookmark:_Toc152606224'><span
  style='mso-bookmark:_Toc152605053'><span style='mso-bookmark:_Toc115416118'>3.12.
  </span>Large Files (64-bit) Supported</span></span></h2>
  
--- 1427,1435 ----
  or not additional debug statements were compiled into the binaries (release:
  no, debug: yes)</p>
  
! <h2><a name="_Toc154229374"></a><a name="_Toc152605053"></a><a
  name="_Toc115416118"></a><a name="_Toc139993102"></a><a name="_Toc126872183"></a><a
! name="_Toc115417054"></a><span style='mso-bookmark:_Toc154229374'><span
  style='mso-bookmark:_Toc152605053'><span style='mso-bookmark:_Toc115416118'>3.12.
  </span>Large Files (64-bit) Supported</span></span></h2>
  
***************
*** 1412,1441 ****
  AFS File Server supports large files.&nbsp;&nbsp; If the AFS File Server does
  not support large files, then the file size limit remains 2GB.</p>
  
! <h2><a name="_Toc152606225"></a><a name="_Toc152605054"></a><a
  name="_Toc115416119"></a><a name="_Toc139993103"></a><a name="_Toc126872184"></a><a
! name="_Toc115417055"></a><span style='mso-bookmark:_Toc152606225'><span
  style='mso-bookmark:_Toc152605054'><span style='mso-bookmark:_Toc115416119'>3.13.
  Encrypted AFS File Access</span></span></span></h2>
  
  <p class=MsoNormal>The OpenAFS for Windows installer by default activates a
! weak form of encrypted data transfer between the AFS client and the AFS servers.&nbsp;
! This is often referred to as &quot;fcrypt&quot; mode.&nbsp; Encrypted data
! transfer can be turned on or off with the “fs crypt” command.&nbsp; Transitions
! between “crypt” and “non-crypt” modes are logged to the Windows Application
! Event Log. </p>
  
! <h2><a name="_Toc152606226"></a><a name="_Toc152605055"></a><a
  name="_Toc115416120"></a><a name="_Toc139993104"></a><a name="_Toc126872185"></a><a
! name="_Toc115417056"></a><span style='mso-bookmark:_Toc152606226'><span
  style='mso-bookmark:_Toc152605055'><span style='mso-bookmark:_Toc115416120'>3.14.
  Authenticated Access to the OpenAFS Client Service</span></span></span></h2>
  
  <p class=MsoNormal>OpenAFS authenticates SMB connections using either NTLM or
! GSS SPNEGO (NTLM).&nbsp; In previous versions of OpenAFS, the SMB connections
! were unauthenticated which opened the door for several attacks which could be
! used to obtain access to another user's tokens on shared
! machines.&nbsp;&nbsp;&nbsp; </p>
  
  <p class=MsoNormal>When GSS SPNEGO attempts a Kerberos 5 authentication, the
  Windows SMB client will attempt to retrieve service tickets for
--- 1438,1467 ----
  AFS File Server supports large files.&nbsp;&nbsp; If the AFS File Server does
  not support large files, then the file size limit remains 2GB.</p>
  
! <h2><a name="_Toc154229375"></a><a name="_Toc152605054"></a><a
  name="_Toc115416119"></a><a name="_Toc139993103"></a><a name="_Toc126872184"></a><a
! name="_Toc115417055"></a><span style='mso-bookmark:_Toc154229375'><span
  style='mso-bookmark:_Toc152605054'><span style='mso-bookmark:_Toc115416119'>3.13.
  Encrypted AFS File Access</span></span></span></h2>
  
  <p class=MsoNormal>The OpenAFS for Windows installer by default activates a
! weak form of encrypted data transfer between the AFS client and the AFS
! servers.&nbsp; This is often referred to as &quot;fcrypt&quot; mode.&nbsp;
! Encrypted data transfer can be turned on or off with the “fs crypt”
! command.&nbsp; Transitions between “crypt” and “non-crypt” modes are logged to
! the Windows Application Event Log. </p>
  
! <h2><a name="_Toc154229376"></a><a name="_Toc152605055"></a><a
  name="_Toc115416120"></a><a name="_Toc139993104"></a><a name="_Toc126872185"></a><a
! name="_Toc115417056"></a><span style='mso-bookmark:_Toc154229376'><span
  style='mso-bookmark:_Toc152605055'><span style='mso-bookmark:_Toc115416120'>3.14.
  Authenticated Access to the OpenAFS Client Service</span></span></span></h2>
  
  <p class=MsoNormal>OpenAFS authenticates SMB connections using either NTLM or
! GSS SPNEGO (NTLM).&nbsp; In previous versions of OpenAFS, the SMB connections were
! unauthenticated which opened the door for several attacks which could be used
! to obtain access to another user's tokens on shared machines.&nbsp;&nbsp;&nbsp;
! </p>
  
  <p class=MsoNormal>When GSS SPNEGO attempts a Kerberos 5 authentication, the
  Windows SMB client will attempt to retrieve service tickets for
***************
*** 1448,1456 ****
  Instead, Windows will internally recognize the request as coming from a local
  logon session.</p>
  
! <h2><a name="_Toc152606227"></a><a name="_Toc152605056"></a><a
  name="_Toc115416121"></a><a name="_Toc139993105"></a><a name="_Toc126872186"></a><a
! name="_Toc115417057"></a><span style='mso-bookmark:_Toc152606227'><span
  style='mso-bookmark:_Toc152605056'><span style='mso-bookmark:_Toc115416121'>3.15.
  No More INI Files</span></span></span></h2>
  
--- 1474,1482 ----
  Instead, Windows will internally recognize the request as coming from a local
  logon session.</p>
  
! <h2><a name="_Toc154229377"></a><a name="_Toc152605056"></a><a
  name="_Toc115416121"></a><a name="_Toc139993105"></a><a name="_Toc126872186"></a><a
! name="_Toc115417057"></a><span style='mso-bookmark:_Toc154229377'><span
  style='mso-bookmark:_Toc152605056'><span style='mso-bookmark:_Toc115416121'>3.15.
  No More INI Files</span></span></span></h2>
  
***************
*** 1467,1489 ****
  the “afs_freelance.ini” file to the Windows registry.&nbsp;&nbsp; OpenAFS will
  not process the contents of the “afsddbmt.ini”.</p>
  
! <h2><a name="_Toc152606228"></a><a name="_Toc152605057"></a><a
  name="_Toc115416122"></a><a name="_Toc139993106"></a><a name="_Toc126872187"></a><a
! name="_Toc115417058"></a><span style='mso-bookmark:_Toc152606228'><span
  style='mso-bookmark:_Toc152605057'><span style='mso-bookmark:_Toc115416122'>3.16.
  Microsoft Windows Internet Connection Firewall</span></span></span></h2>
  
  <p class=MsoNormal>The OpenAFS Client is compatible with the Internet
  Connection Firewall that debuted with Windows XP SP2 and Windows 2003
! SP1.&nbsp; The Internet Connection Firewall will be automatically adjusted to
! allow the receipt of incoming callback messages from the AFS file server.&nbsp;
! In addition, the appropriate <i>Back Connection</i> registry entries are added
! to allow SMB authentication to be performed across the Microsoft Loopback
! Adapter.</p>
  
! <h2><a name="_Toc152606229"></a><a name="_Toc152605058"></a><a
  name="_Toc115416123"></a><a name="_Toc139993107"></a><a name="_Toc126872188"></a><a
! name="_Toc115417059"></a><span style='mso-bookmark:_Toc152606229'><span
  style='mso-bookmark:_Toc152605058'><span style='mso-bookmark:_Toc115416123'>3.17.
  Browsing AFS from the Explorer Shell and Office</span></span></span></h2>
  
--- 1493,1514 ----
  the “afs_freelance.ini” file to the Windows registry.&nbsp;&nbsp; OpenAFS will
  not process the contents of the “afsddbmt.ini”.</p>
  
! <h2><a name="_Toc154229378"></a><a name="_Toc152605057"></a><a
  name="_Toc115416122"></a><a name="_Toc139993106"></a><a name="_Toc126872187"></a><a
! name="_Toc115417058"></a><span style='mso-bookmark:_Toc154229378'><span
  style='mso-bookmark:_Toc152605057'><span style='mso-bookmark:_Toc115416122'>3.16.
  Microsoft Windows Internet Connection Firewall</span></span></span></h2>
  
  <p class=MsoNormal>The OpenAFS Client is compatible with the Internet
  Connection Firewall that debuted with Windows XP SP2 and Windows 2003
! SP1.&nbsp; The Internet Connection Firewall will be automatically adjusted to allow
! the receipt of incoming callback messages from the AFS file server.&nbsp; In
! addition, the appropriate <i>Back Connection</i> registry entries are added to
! allow SMB authentication to be performed across the Microsoft Loopback Adapter.</p>
  
! <h2><a name="_Toc154229379"></a><a name="_Toc152605058"></a><a
  name="_Toc115416123"></a><a name="_Toc139993107"></a><a name="_Toc126872188"></a><a
! name="_Toc115417059"></a><span style='mso-bookmark:_Toc154229379'><span
  style='mso-bookmark:_Toc152605058'><span style='mso-bookmark:_Toc115416123'>3.17.
  Browsing AFS from the Explorer Shell and Office</span></span></span></h2>
  
***************
*** 1492,1500 ****
  significantly enhances the interoperability of AFS volumes within the Explorer
  Shell and Microsoft Office applications.</p>
  
! <h2><a name="_Toc152606230"></a><a name="_Toc152605059"></a><a
  name="_Toc115416124"></a><a name="_Toc139993108"></a><a name="_Toc126872189"></a><a
! name="_Toc115417060"></a><span style='mso-bookmark:_Toc152606230'><span
  style='mso-bookmark:_Toc152605059'><span style='mso-bookmark:_Toc115416124'>3.18.
  </span><st1:place w:st="on"><st1:PlaceName w:st="on">Byte</st1:PlaceName> <st1:PlaceType
   w:st="on">Range</st1:PlaceType></st1:place> Locking</span></span></h2>
--- 1517,1525 ----
  significantly enhances the interoperability of AFS volumes within the Explorer
  Shell and Microsoft Office applications.</p>
  
! <h2><a name="_Toc154229380"></a><a name="_Toc152605059"></a><a
  name="_Toc115416124"></a><a name="_Toc139993108"></a><a name="_Toc126872189"></a><a
! name="_Toc115417060"></a><span style='mso-bookmark:_Toc154229380'><span
  style='mso-bookmark:_Toc152605059'><span style='mso-bookmark:_Toc115416124'>3.18.
  </span><st1:place w:st="on"><st1:PlaceName w:st="on">Byte</st1:PlaceName> <st1:PlaceType
   w:st="on">Range</st1:PlaceType></st1:place> Locking</span></span></h2>
***************
*** 1504,1522 ****
  simultaneous file access or as a signaling mechanism.&nbsp;&nbsp; OpenAFS for
  Windows release 1.5 (or greater) implements byte range locking within the
  CIFS-AFS gateway server.&nbsp;&nbsp; This support for byte range locking
! obtains <span style='font-family:"Times New Roman"'>AFS’ advisory file server
! locks to simulate Microsoft Windows mandatory locks.&nbsp;&nbsp; When an
! application opens a file, a lock will be obtained from AFS indicating that the
! file is in use.&nbsp; If the lock is a write lock, access to the file will be
! restricted to other applications running on the same machine as the first
! application to request the lock.&nbsp;&nbsp; Applications running on other
! machines will see the AFS full file lock and will be unable to access the file.</span></p>
! 
! <p class=MsoNormal><span style='font-family:"Times New Roman"'>Most Windows
! applications and Windows itself opens files in shared read mode. When this is
! done, a read lock is applied to the file.&nbsp;&nbsp; This does not prevent
! shared read access across multiple machines but is used to ensure that no one
! writes to the file while it is in use.</span></p>
  
  <p class=MsoNormal>As the CIFS-AFS gateway server attempts to implement Windows
  lock semantics on top of AFS lock semantics it is important to understand how
--- 1529,1547 ----
  simultaneous file access or as a signaling mechanism.&nbsp;&nbsp; OpenAFS for
  Windows release 1.5 (or greater) implements byte range locking within the
  CIFS-AFS gateway server.&nbsp;&nbsp; This support for byte range locking
! obtains AFS’ advisory file server locks to simulate Microsoft Windows mandatory
! locks.&nbsp;&nbsp; When an application opens a file, a lock will be obtained
! from AFS indicating that the file is in use.&nbsp; If the lock is a write lock,
! access to the file will be restricted to other applications running on the same
! machine as the first application to request the lock.&nbsp;&nbsp; Applications
! running on other machines will see the AFS full file lock and will be unable to
! access the file.</p>
! 
! <p class=MsoNormal>Most Windows applications and Windows itself opens files in
! shared read mode. When this is done, a read lock is applied to the
! file.&nbsp;&nbsp; This does not prevent shared read access across multiple
! machines but is used to ensure that no one writes to the file while it is in
! use.</p>
  
  <p class=MsoNormal>As the CIFS-AFS gateway server attempts to implement Windows
  lock semantics on top of AFS lock semantics it is important to understand how
***************
*** 1526,1540 ****
  you can obtain a write lock.&nbsp; In AFS if you can write to a file, then you
  can obtain a write lock.&nbsp; However, in AFS if you can read a file it does
  not mean that you can obtain a read lock on it.&nbsp;&nbsp; The ability to
! obtain read locks is granted only if you have the lock (or ‘k’)
! privilege.&nbsp; This behavior is required in order to allow anonymous users to
! read files while preventing them from being able to deny access to the files to
! other users.&nbsp; <i>OpenAFS 1.4.0 and earlier as well as all IBM AFS file
! servers have an implementation bug that prevents users with write privileges
! from being able to obtain locks without the lock privilege.</i>&nbsp; When AFS
! serves data out of read-only volumes the file server will deny all requests for
! read and write locks because the contents of the volume cannot be changed by
! the client.</p>
  
  <p class=MsoNormal>Since Microsoft Windows applications almost always attempt
  to obtain a temporary read lock when accessing files the OpenAFS Client’s
--- 1551,1564 ----
  you can obtain a write lock.&nbsp; In AFS if you can write to a file, then you
  can obtain a write lock.&nbsp; However, in AFS if you can read a file it does
  not mean that you can obtain a read lock on it.&nbsp;&nbsp; The ability to
! obtain read locks is granted only if you have the lock (or ‘k’) privilege.&nbsp;
! This behavior is required in order to allow anonymous users to read files while
! preventing them from being able to deny access to the files to other
! users.&nbsp; <i>OpenAFS 1.4.0 and earlier as well as all IBM AFS file servers
! have an implementation bug that prevents users with write privileges from being
! able to obtain locks without the lock privilege.</i>&nbsp; When AFS serves data
! out of read-only volumes the file server will deny all requests for read and
! write locks because the contents of the volume cannot be changed by the client.</p>
  
  <p class=MsoNormal>Since Microsoft Windows applications almost always attempt
  to obtain a temporary read lock when accessing files the OpenAFS Client’s
***************
*** 1542,1562 ****
  inconvenience on end users.&nbsp; </p>
  
  <ul style='margin-top:0pt' type=disc>
!  <li class=MsoNormal style='mso-list:l1 level1 lfo3;tab-stops:list 36.0pt'>If
       the file is located on a read-only volume and the application requests a
       read lock, the CIFS-AFS server will grant the lock request without asking
       the AFS file server.</li>
!  <li class=MsoNormal style='mso-list:l1 level1 lfo3;tab-stops:list 36.0pt'>If
!      the file is located on a read-only volume and the application requests a
!      write lock, the CIFS-AFS server will refuse the lock request and return a
!      read only error.</li>
!  <li class=MsoNormal style='mso-list:l1 level1 lfo3;tab-stops:list 36.0pt'>If
       the file is located on a read-write volume and the application requests a
       write lock, the CIFS-AFS server will request a lock from the AFS file
       server.&nbsp; If granted by the file server, then the CIFS-AFS server will
       grant the lock request.&nbsp; Otherwise, the request will be denied either
       with an access denied or an in use error.</li>
!  <li class=MsoNormal style='mso-list:l1 level1 lfo3;tab-stops:list 36.0pt'>If
       the file is located on a read-write volume and the application requests a
       read lock, the CIFS-AFS server will request a lock from the AFS file
       server.&nbsp; If granted by the file server, then the CIFS-AFS server
--- 1566,1586 ----
  inconvenience on end users.&nbsp; </p>
  
  <ul style='margin-top:0pt' type=disc>
!  <li class=MsoNormal style='mso-list:l0 level1 lfo3;tab-stops:list 36.0pt'>If
       the file is located on a read-only volume and the application requests a
       read lock, the CIFS-AFS server will grant the lock request without asking
       the AFS file server.</li>
!  <li class=MsoNormal style='mso-list:l0 level1 lfo3;tab-stops:list 36.0pt'>If
!      the file is located on a read-only volume and the application requests a write
!      lock, the CIFS-AFS server will refuse the lock request and return a read
!      only error.</li>
!  <li class=MsoNormal style='mso-list:l0 level1 lfo3;tab-stops:list 36.0pt'>If
       the file is located on a read-write volume and the application requests a
       write lock, the CIFS-AFS server will request a lock from the AFS file
       server.&nbsp; If granted by the file server, then the CIFS-AFS server will
       grant the lock request.&nbsp; Otherwise, the request will be denied either
       with an access denied or an in use error.</li>
!  <li class=MsoNormal style='mso-list:l0 level1 lfo3;tab-stops:list 36.0pt'>If
       the file is located on a read-write volume and the application requests a
       read lock, the CIFS-AFS server will request a lock from the AFS file
       server.&nbsp; If granted by the file server, then the CIFS-AFS server
***************
*** 1565,1575 ****
       lock privilege, then the CIFS-AFS server will grant the request even
       though the AFS file server said ‘no’.&nbsp; If the user does not have at
       least those permissions, the CIFS-AFS server will deny the request.</li>
!  <li class=MsoNormal style='mso-list:l1 level1 lfo3;tab-stops:list 36.0pt'>If
       multiple processes on the same machine attempt to access the same file
       simultaneously, the CIFS-AFS server will locally manage the granted locks
       and all processes will share a single lock on the AFS file server.</li>
!  <li class=MsoNormal style='mso-list:l1 level1 lfo3;tab-stops:list 36.0pt'>If
       the CIFS-AFS server is unable to renew the AFS file server locks, then it
       will invalidate the associated file handles.&nbsp; This is the same
       behavior that an application will experience if it was using a Windows
--- 1589,1599 ----
       lock privilege, then the CIFS-AFS server will grant the request even
       though the AFS file server said ‘no’.&nbsp; If the user does not have at
       least those permissions, the CIFS-AFS server will deny the request.</li>
!  <li class=MsoNormal style='mso-list:l0 level1 lfo3;tab-stops:list 36.0pt'>If
       multiple processes on the same machine attempt to access the same file
       simultaneously, the CIFS-AFS server will locally manage the granted locks
       and all processes will share a single lock on the AFS file server.</li>
!  <li class=MsoNormal style='mso-list:l0 level1 lfo3;tab-stops:list 36.0pt'>If
       the CIFS-AFS server is unable to renew the AFS file server locks, then it
       will invalidate the associated file handles.&nbsp; This is the same
       behavior that an application will experience if it was using a Windows
***************
*** 1578,1606 ****
  </ul>
  
  <p class=MsoNormal>If you wish to disable the acquisition of locks from the
! file server, this can be performed using the EnableServerLocks registry value.</p>
  
! <h2><a name="_Toc152606231"></a><a name="_Toc152605060"></a><a
  name="_Toc115416125"></a><a name="_Toc139993109"></a><a name="_Toc126872190"></a><a
! name="_Toc115417061"></a><span style='mso-bookmark:_Toc152606231'><span
  style='mso-bookmark:_Toc152605060'><span style='mso-bookmark:_Toc115416125'>3.19.
  Automatic Discarding of AFS Tokens at Logoff</span></span></span></h2>
  
  <p class=MsoNormal>The OpenAFS Client will automatically forget a user's tokens
  upon Logoff unless the user's profile was loaded from an AFS volume.&nbsp; In
  this situation there is no mechanism to determine when the profile has been
! successfully written back to the network.&nbsp; It is therefore unsafe to
! release the user's tokens.&nbsp; Whether or not the profile has been loaded
! from the registry can be determined for Local Accounts, Active Directory accounts
! and NT4 accounts.</p>
  
  <p class=MsoNormal>If there is a need to disable this functionality, the <a
  href="#_Value_:_LogoffPreserveTokens">LogoffPreserveTokens</a> registry value
  can be used. (see <a href="#_Appendix_A:_Registry_Values">Appendix A</a>.)</p>
  
! <h2><a name="_Toc152606232"></a><a name="_Toc152605061"></a><a
  name="_Toc115416126"></a><a name="_Toc139993110"></a><a name="_Toc126872191"></a><a
! name="_Toc115417062"></a><span style='mso-bookmark:_Toc152606232'><span
  style='mso-bookmark:_Toc152605061'><span style='mso-bookmark:_Toc115416126'>3.20.
  Windows Terminal Server installations</span></span></span></h2>
  
--- 1602,1631 ----
  </ul>
  
  <p class=MsoNormal>If you wish to disable the acquisition of locks from the
! file server, this can be performed using the <a
! href="#_Value:_EnableServerLocks">EnableServerLocks</a> registry value.</p>
  
! <h2><a name="_Toc154229381"></a><a name="_Toc152605060"></a><a
  name="_Toc115416125"></a><a name="_Toc139993109"></a><a name="_Toc126872190"></a><a
! name="_Toc115417061"></a><span style='mso-bookmark:_Toc154229381'><span
  style='mso-bookmark:_Toc152605060'><span style='mso-bookmark:_Toc115416125'>3.19.
  Automatic Discarding of AFS Tokens at Logoff</span></span></span></h2>
  
  <p class=MsoNormal>The OpenAFS Client will automatically forget a user's tokens
  upon Logoff unless the user's profile was loaded from an AFS volume.&nbsp; In
  this situation there is no mechanism to determine when the profile has been
! successfully written back to the network.&nbsp; It is therefore unsafe to release
! the user's tokens.&nbsp; Whether or not the profile has been loaded from the
! registry can be determined for Local Accounts, Active Directory accounts and
! NT4 accounts.</p>
  
  <p class=MsoNormal>If there is a need to disable this functionality, the <a
  href="#_Value_:_LogoffPreserveTokens">LogoffPreserveTokens</a> registry value
  can be used. (see <a href="#_Appendix_A:_Registry_Values">Appendix A</a>.)</p>
  
! <h2><a name="_Toc154229382"></a><a name="_Toc152605061"></a><a
  name="_Toc115416126"></a><a name="_Toc139993110"></a><a name="_Toc126872191"></a><a
! name="_Toc115417062"></a><span style='mso-bookmark:_Toc154229382'><span
  style='mso-bookmark:_Toc152605061'><span style='mso-bookmark:_Toc115416126'>3.20.
  Windows Terminal Server installations</span></span></span></h2>
  
***************
*** 1610,1618 ****
  The AFS Server should not be installed on a machine with Terminal Server
  installed.</p>
  
! <h2><a name="_Toc152606233"></a><a name="_Toc152605062"></a><a
  name="_Toc115416127"></a><a name="_Toc139993111"></a><a name="_Toc126872192"></a><a
! name="_Toc115417063"></a><span style='mso-bookmark:_Toc152606233'><span
  style='mso-bookmark:_Toc152605062'><span style='mso-bookmark:_Toc115416127'>3.21.
  Hidden Dot Files</span></span></span></h2>
  
--- 1635,1643 ----
  The AFS Server should not be installed on a machine with Terminal Server
  installed.</p>
  
! <h2><a name="_Toc154229383"></a><a name="_Toc152605062"></a><a
  name="_Toc115416127"></a><a name="_Toc139993111"></a><a name="_Toc126872192"></a><a
! name="_Toc115417063"></a><span style='mso-bookmark:_Toc154229383'><span
  style='mso-bookmark:_Toc152605062'><span style='mso-bookmark:_Toc115416127'>3.21.
  Hidden Dot Files</span></span></span></h2>
  
***************
*** 1623,1631 ****
  style='mso-spacerun:yes'>  </span>This behavior can be altered via the <a
  href="#_Value:_HideDotFiles">HideDotFiles</a> registry value.</p>
  
! <h2><a name="_Toc152606234"></a><a name="_Toc152605063"></a><a
  name="_Toc115416128"></a><a name="_Toc139993112"></a><a name="_Toc126872193"></a><a
! name="_Toc115417064"></a><span style='mso-bookmark:_Toc152606234'><span
  style='mso-bookmark:_Toc152605063'><span style='mso-bookmark:_Toc115416128'>3.22.
  Status Cache Limits</span></span></span></h2>
  
--- 1648,1656 ----
  style='mso-spacerun:yes'>  </span>This behavior can be altered via the <a
  href="#_Value:_HideDotFiles">HideDotFiles</a> registry value.</p>
  
! <h2><a name="_Toc154229384"></a><a name="_Toc152605063"></a><a
  name="_Toc115416128"></a><a name="_Toc139993112"></a><a name="_Toc126872193"></a><a
! name="_Toc115417064"></a><span style='mso-bookmark:_Toc154229384'><span
  style='mso-bookmark:_Toc152605063'><span style='mso-bookmark:_Toc115416128'>3.22.
  Status Cache Limits</span></span></span></h2>
  
***************
*** 1645,1653 ****
  style='mso-spacerun:yes'>  </span>This can be adjusted using the <a
  href="#_Value:_Stats">Stats</a> registry value.</p>
  
! <h2><a name="_Toc152606235"></a><a name="_Toc152605064"></a><a
  name="_Toc115416129"></a><a name="_Toc139993113"></a><a name="_Toc126872194"></a><a
! name="_Toc115417065"></a><span style='mso-bookmark:_Toc152606235'><span
  style='mso-bookmark:_Toc152605064'><span style='mso-bookmark:_Toc115416129'>3.23.
  NETBIOS over TCP/IP must be enabled</span></span></span></h2>
  
--- 1670,1678 ----
  style='mso-spacerun:yes'>  </span>This can be adjusted using the <a
  href="#_Value:_Stats">Stats</a> registry value.</p>
  
! <h2><a name="_Toc154229385"></a><a name="_Toc152605064"></a><a
  name="_Toc115416129"></a><a name="_Toc139993113"></a><a name="_Toc126872194"></a><a
! name="_Toc115417065"></a><span style='mso-bookmark:_Toc154229385'><span
  style='mso-bookmark:_Toc152605064'><span style='mso-bookmark:_Toc115416129'>3.23.
  NETBIOS over TCP/IP must be enabled</span></span></span></h2>
  
***************
*** 1658,1666 ****
  style='mso-spacerun:yes'>  </span>If you are using the Microsoft Loopback
  Adapter, configure the “Netbios over TCP/IP” setting for the adapter.</p>
  
! <h2><a name="_Toc152606236"></a><a name="_Toc152605065"></a><a
  name="_Toc115416130"></a><a name="_Toc139993114"></a><a name="_Toc126872195"></a><a
! name="_Toc115417066"></a><span style='mso-bookmark:_Toc152606236'><span
  style='mso-bookmark:_Toc152605065'><span style='mso-bookmark:_Toc115416130'>3.24.
  OpenAFS binaries are digitally signed</span></span></span></h2>
  
--- 1683,1691 ----
  style='mso-spacerun:yes'>  </span>If you are using the Microsoft Loopback
  Adapter, configure the “Netbios over TCP/IP” setting for the adapter.</p>
  
! <h2><a name="_Toc154229386"></a><a name="_Toc152605065"></a><a
  name="_Toc115416130"></a><a name="_Toc139993114"></a><a name="_Toc126872195"></a><a
! name="_Toc115417066"></a><span style='mso-bookmark:_Toc154229386'><span
  style='mso-bookmark:_Toc152605065'><span style='mso-bookmark:_Toc115416130'>3.24.
  OpenAFS binaries are digitally signed</span></span></span></h2>
  
***************
*** 1679,1687 ****
  registry value which can be used to disable the signature check.&nbsp; The file
  version check cannot be disabled.</p>
  
! <h2><a name="_Toc152606237"></a><a name="_Toc152605066"></a><a
  name="_Toc115416131"></a><a name="_Toc139993115"></a><a name="_Toc126872196"></a><a
! name="_Toc115417067"></a><span style='mso-bookmark:_Toc152606237'><span
  style='mso-bookmark:_Toc152605066'><span style='mso-bookmark:_Toc115416131'>3.25.
  Maximum Size of the AFSCache File</span></span></span></h2>
  
--- 1704,1712 ----
  registry value which can be used to disable the signature check.&nbsp; The file
  version check cannot be disabled.</p>
  
! <h2><a name="_Toc154229387"></a><a name="_Toc152605066"></a><a
  name="_Toc115416131"></a><a name="_Toc139993115"></a><a name="_Toc126872196"></a><a
! name="_Toc115417067"></a><span style='mso-bookmark:_Toc154229387'><span
  style='mso-bookmark:_Toc152605066'><span style='mso-bookmark:_Toc115416131'>3.25.
  Maximum Size of the AFSCache File</span></span></span></h2>
  
***************
*** 1694,1714 ****
  signature check.<span style='mso-spacerun:yes'>  </span>Significantly larger
  cache sizes can be used on 64-bit Windows.</p>
  
! <h2><a name="_Toc152606238"></a><a name="_Toc152605067"></a><a
  name="_Toc115416132"></a><a name="_Toc139993116"></a><a name="_Toc126872197"></a><a
! name="_Toc115417068"></a><span style='mso-bookmark:_Toc152606238'><span
  style='mso-bookmark:_Toc152605067'><span style='mso-bookmark:_Toc115416132'>3.26.
  Filename Character Sets</span></span></span></h2>
  
  <p class=MsoNormal>OpenAFS for Windows implements an SMB server which is used
! as a gateway to the AFS filesystem.&nbsp; Because of limitations of the SMB
! implementation, Windows stores all files into AFS using OEM code pages such as
! CP437 (United States) or CP850 (Western Europe).&nbsp; These code pages are
! incompatible with the ISO Latin-1 character set typically used as the default
! on UNIX systems in both the <st1:country-region w:st="on">United States</st1:country-region>
! and <st1:place w:st="on">Western Europe</st1:place>.&nbsp; Filenames stored by
! OpenAFS for Windows are therefore unreadable on UNIX systems if they include
! any of the following characters:</p>
  
  <table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0
   style='border-collapse:collapse;mso-padding-alt:0pt 0pt 0pt 0pt'>
--- 1719,1739 ----
  signature check.<span style='mso-spacerun:yes'>  </span>Significantly larger
  cache sizes can be used on 64-bit Windows.</p>
  
! <h2><a name="_Toc154229388"></a><a name="_Toc152605067"></a><a
  name="_Toc115416132"></a><a name="_Toc139993116"></a><a name="_Toc126872197"></a><a
! name="_Toc115417068"></a><span style='mso-bookmark:_Toc154229388'><span
  style='mso-bookmark:_Toc152605067'><span style='mso-bookmark:_Toc115416132'>3.26.
  Filename Character Sets</span></span></span></h2>
  
  <p class=MsoNormal>OpenAFS for Windows implements an SMB server which is used
! as a gateway to the AFS filesystem.&nbsp; Because of limitations of the SMB implementation,
! Windows stores all files into AFS using OEM code pages such as CP437 (United
! States) or CP850 (Western Europe).&nbsp; These code pages are incompatible with
! the ISO Latin-1 character set typically used as the default on UNIX systems in
! both the <st1:country-region w:st="on">United States</st1:country-region> and <st1:place
! w:st="on">Western Europe</st1:place>.&nbsp; Filenames stored by OpenAFS for
! Windows are therefore unreadable on UNIX systems if they include any of the
! following characters:</p>
  
  <table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0
   style='border-collapse:collapse;mso-padding-alt:0pt 0pt 0pt 0pt'>
***************
*** 1730,1739 ****
    08/05&nbsp; 205&nbsp; 85&nbsp; a grave</p>
    <p class=preformattedtext>&nbsp;&nbsp;&nbsp;&nbsp; [å]&nbsp; 134&nbsp;
    08/06&nbsp; 206&nbsp; 86&nbsp; a ring</p>
!   <p class=preformattedtext>&nbsp;&nbsp;&nbsp;&nbsp; [ç]&nbsp; 135&nbsp; 08/07&nbsp;
!   207&nbsp; 87&nbsp; c cedilla</p>
!   <p class=preformattedtext>&nbsp;&nbsp;&nbsp;&nbsp; [ê]&nbsp; 136&nbsp;
!   08/08&nbsp; 210&nbsp; 88&nbsp; e circumflex</p>
    <p class=preformattedtext>&nbsp;&nbsp;&nbsp;&nbsp; [ë]&nbsp; 137&nbsp;
    08/09&nbsp; 211&nbsp; 89&nbsp; e diaeresis</p>
    <p class=preformattedtext>&nbsp;&nbsp;&nbsp;&nbsp; [è]&nbsp; 138&nbsp;
--- 1755,1764 ----
    08/05&nbsp; 205&nbsp; 85&nbsp; a grave</p>
    <p class=preformattedtext>&nbsp;&nbsp;&nbsp;&nbsp; [å]&nbsp; 134&nbsp;
    08/06&nbsp; 206&nbsp; 86&nbsp; a ring</p>
!   <p class=preformattedtext>&nbsp;&nbsp;&nbsp;&nbsp; [ç]&nbsp; 135&nbsp;
!   08/07&nbsp; 207&nbsp; 87&nbsp; c cedilla</p>
!   <p class=preformattedtext>&nbsp;&nbsp;&nbsp;&nbsp; [ê]&nbsp; 136&nbsp; 08/08&nbsp;
!   210&nbsp; 88&nbsp; e circumflex</p>
    <p class=preformattedtext>&nbsp;&nbsp;&nbsp;&nbsp; [ë]&nbsp; 137&nbsp;
    08/09&nbsp; 211&nbsp; 89&nbsp; e diaeresis</p>
    <p class=preformattedtext>&nbsp;&nbsp;&nbsp;&nbsp; [è]&nbsp; 138&nbsp;
***************
*** 1744,1751 ****
    08/12&nbsp; 214&nbsp; 8C&nbsp; i circumflex</p>
    <p class=preformattedtext>&nbsp;&nbsp;&nbsp;&nbsp; [ì]&nbsp; 141&nbsp;
    08/13&nbsp; 215&nbsp; 8D&nbsp; i grave</p>
!   <p class=preformattedtext>&nbsp;&nbsp;&nbsp;&nbsp; [Ä]&nbsp; 142&nbsp;
!   08/14&nbsp; 216&nbsp; 8E&nbsp; A diaeresis</p>
    <p class=preformattedtext>&nbsp;&nbsp;&nbsp;&nbsp; [Å]&nbsp; 143&nbsp;
    08/15&nbsp; 217&nbsp; 8F&nbsp; A ring</p>
    <p class=preformattedtext>&nbsp;&nbsp;&nbsp;&nbsp; [É]&nbsp; 144&nbsp;
--- 1769,1776 ----
    08/12&nbsp; 214&nbsp; 8C&nbsp; i circumflex</p>
    <p class=preformattedtext>&nbsp;&nbsp;&nbsp;&nbsp; [ì]&nbsp; 141&nbsp;
    08/13&nbsp; 215&nbsp; 8D&nbsp; i grave</p>
!   <p class=preformattedtext>&nbsp;&nbsp;&nbsp;&nbsp; [Ä]&nbsp; 142&nbsp; 08/14&nbsp;
!   216&nbsp; 8E&nbsp; A diaeresis</p>
    <p class=preformattedtext>&nbsp;&nbsp;&nbsp;&nbsp; [Å]&nbsp; 143&nbsp;
    08/15&nbsp; 217&nbsp; 8F&nbsp; A ring</p>
    <p class=preformattedtext>&nbsp;&nbsp;&nbsp;&nbsp; [É]&nbsp; 144&nbsp;
***************
*** 1794,1802 ****
  change would prevent OpenAFS for Windows from being able to access filenames
  containing the above characters which were created without this setting.</p>
  
! <h2><a name="_Toc152606239"></a><a name="_Toc152605068"></a><a
  name="_Toc115416133"></a><a name="_Toc139993117"></a><a name="_Toc126872198"></a><a
! name="_Toc115417069"></a><span style='mso-bookmark:_Toc152606239'><span
  style='mso-bookmark:_Toc152605068'><span style='mso-bookmark:_Toc115416133'>3.27.
  Known Character Set Issues with Roaming Profiles</span></span></span></h2>
  
--- 1819,1827 ----
  change would prevent OpenAFS for Windows from being able to access filenames
  containing the above characters which were created without this setting.</p>
  
! <h2><a name="_Toc154229389"></a><a name="_Toc152605068"></a><a
  name="_Toc115416133"></a><a name="_Toc139993117"></a><a name="_Toc126872198"></a><a
! name="_Toc115417069"></a><span style='mso-bookmark:_Toc154229389'><span
  style='mso-bookmark:_Toc152605068'><span style='mso-bookmark:_Toc115416133'>3.27.
  Known Character Set Issues with Roaming Profiles</span></span></span></h2>
  
***************
*** 1809,1817 ****
  (assigned by group policy) which rename all files to use only the supported
  characters for the locale.</p>
  
! <h2><a name="_Toc152606240"></a><a name="_Toc152605069"></a><a
  name="_Toc115416134"></a><a name="_Toc139993118"></a><a name="_Toc126872199"></a><a
! name="_Toc115417070"></a><span style='mso-bookmark:_Toc152606240'><span
  style='mso-bookmark:_Toc152605069'><span style='mso-bookmark:_Toc115416134'>3.28.
  The AFSCache File</span></span></span></h2>
  
--- 1834,1842 ----
  (assigned by group policy) which rename all files to use only the supported
  characters for the locale.</p>
  
! <h2><a name="_Toc154229390"></a><a name="_Toc152605069"></a><a
  name="_Toc115416134"></a><a name="_Toc139993118"></a><a name="_Toc126872199"></a><a
! name="_Toc115417070"></a><span style='mso-bookmark:_Toc154229390'><span
  style='mso-bookmark:_Toc152605069'><span style='mso-bookmark:_Toc115416134'>3.28.
  The AFSCache File</span></span></span></h2>
  
***************
*** 1829,1837 ****
  gains can be achieved by defragmenting the AFSCache file with Sysinternal's
  Contig utility while the AFS Client Service is stopped.</p>
  
! <h2><a name="_Toc152606241"></a><a name="_Toc152605070"></a><a
  name="_Toc115416135"></a><a name="_Toc139993119"></a><a name="_Toc126872200"></a><a
! name="_Toc115417071"></a><span style='mso-bookmark:_Toc152606241'><span
  style='mso-bookmark:_Toc152605070'><span style='mso-bookmark:_Toc115416135'>3.29.
  Restricting OpenAFS Client Service Start and Stop</span></span></span></h2>
  
--- 1854,1862 ----
  gains can be achieved by defragmenting the AFSCache file with Sysinternal's
  Contig utility while the AFS Client Service is stopped.</p>
  
! <h2><a name="_Toc154229391"></a><a name="_Toc152605070"></a><a
  name="_Toc115416135"></a><a name="_Toc139993119"></a><a name="_Toc126872200"></a><a
! name="_Toc115417071"></a><span style='mso-bookmark:_Toc154229391'><span
  style='mso-bookmark:_Toc152605070'><span style='mso-bookmark:_Toc115416135'>3.29.
  Restricting OpenAFS Client Service Start and Stop</span></span></span></h2>
  
***************
*** 1858,1866 ****
  <p class=preformattedtext>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  &nbsp;&nbsp;-show&nbsp; : Show current DACL (SDSF)</p>
  
! <h2><a name="_Toc152606242"></a><a name="_Toc152605071"></a><a
  name="_Toc115416136"></a><a name="_Toc139993120"></a><a name="_Toc126872201"></a><a
! name="_Toc115417072"></a><span style='mso-bookmark:_Toc152606242'><span
  style='mso-bookmark:_Toc152605071'><span style='mso-bookmark:_Toc115416136'>3.30.
  The @sys Name List</span></span></span></h2>
  
--- 1883,1891 ----
  <p class=preformattedtext>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  &nbsp;&nbsp;-show&nbsp; : Show current DACL (SDSF)</p>
  
! <h2><a name="_Toc154229392"></a><a name="_Toc152605071"></a><a
  name="_Toc115416136"></a><a name="_Toc139993120"></a><a name="_Toc126872201"></a><a
! name="_Toc115417072"></a><span style='mso-bookmark:_Toc154229392'><span
  style='mso-bookmark:_Toc152605071'><span style='mso-bookmark:_Toc115416136'>3.30.
  The @sys Name List</span></span></span></h2>
  
***************
*** 1868,1876 ****
  &quot;x86_win32 i386_w2k i386_nt40&quot; for 32-bit x86 systems.&nbsp; The
  default is &quot;amd64_win64&quot; for amd 64-bit versions of Windows.</p>
  
! <h2><a name="_Toc152606243"></a><a name="_Toc152605072"></a><a
  name="_Toc115416137"></a><a name="_Toc139993121"></a><a name="_Toc126872202"></a><a
! name="_Toc115417073"></a><span style='mso-bookmark:_Toc152606243'><span
  style='mso-bookmark:_Toc152605072'><span style='mso-bookmark:_Toc115416137'>3.31.
  Symlinks to AFS UNC paths</span></span></span></h2>
  
--- 1893,1901 ----
  &quot;x86_win32 i386_w2k i386_nt40&quot; for 32-bit x86 systems.&nbsp; The
  default is &quot;amd64_win64&quot; for amd 64-bit versions of Windows.</p>
  
! <h2><a name="_Toc154229393"></a><a name="_Toc152605072"></a><a
  name="_Toc115416137"></a><a name="_Toc139993121"></a><a name="_Toc126872202"></a><a
! name="_Toc115417073"></a><span style='mso-bookmark:_Toc154229393'><span
  style='mso-bookmark:_Toc152605072'><span style='mso-bookmark:_Toc115416137'>3.31.
  Symlinks to AFS UNC paths</span></span></span></h2>
  
***************
*** 1878,1886 ****
  treated the same as symlinks to /afs/...&nbsp; However, please use /afs/... as
  the Windows UNC form will not work on UNIX client.</p>
  
! <h2><a name="_Toc152606244"></a><a name="_Toc152605073"></a><a
  name="_Toc115416138"></a><a name="_Toc139993122"></a><a name="_Toc126872203"></a><a
! name="_Toc115417074"></a><span style='mso-bookmark:_Toc152606244'><span
  style='mso-bookmark:_Toc152605073'><span style='mso-bookmark:_Toc115416138'>3.32.
  Cache Manager Debugging Now Supported</span></span></span></h2>
  
--- 1903,1911 ----
  treated the same as symlinks to /afs/...&nbsp; However, please use /afs/... as
  the Windows UNC form will not work on UNIX client.</p>
  
! <h2><a name="_Toc154229394"></a><a name="_Toc152605073"></a><a
  name="_Toc115416138"></a><a name="_Toc139993122"></a><a name="_Toc126872203"></a><a
! name="_Toc115417074"></a><span style='mso-bookmark:_Toc154229394'><span
  style='mso-bookmark:_Toc152605073'><span style='mso-bookmark:_Toc115416138'>3.32.
  Cache Manager Debugging Now Supported</span></span></span></h2>
  
***************
*** 1901,1920 ****
  <p class=preformattedtext>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -cache&nbsp;
  print only cache configuration</p>
  
! <h2><a name="_Toc152606245"></a><a name="_Toc152605074"></a><a
  name="_Toc115416139"></a><a name="_Toc139993123"></a><a name="_Toc126872204"></a><a
! name="_Toc115417075"></a><span style='mso-bookmark:_Toc152606245'><span
  style='mso-bookmark:_Toc152605074'><span style='mso-bookmark:_Toc115416139'>3.33.
  Windows Logon Caching vs. Kerberos Logons</span></span></span></h2>
  
  <p class=MsoNormal>If you are a site which utilizes MIT/Heimdal Kerberos
! principals to logon to Windows via a cross-realm relationship with a multi-domain
! Windows forest, you must enable Windows logon caching unless the workstation is
! Windows Vista.</p>
  
! <h2><a name="_Toc152606246"></a><a name="_Toc152605075"></a><a
  name="_Toc115416140"></a><a name="_Toc139993124"></a><a name="_Toc126872205"></a><a
! name="_Toc115417076"></a><span style='mso-bookmark:_Toc152606246'><span
  style='mso-bookmark:_Toc152605075'><span style='mso-bookmark:_Toc115416140'>3.34.
  Initial Server Preferences</span></span></span></h2>
  
--- 1926,1945 ----
  <p class=preformattedtext>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -cache&nbsp;
  print only cache configuration</p>
  
! <h2><a name="_Toc154229395"></a><a name="_Toc152605074"></a><a
  name="_Toc115416139"></a><a name="_Toc139993123"></a><a name="_Toc126872204"></a><a
! name="_Toc115417075"></a><span style='mso-bookmark:_Toc154229395'><span
  style='mso-bookmark:_Toc152605074'><span style='mso-bookmark:_Toc115416139'>3.33.
  Windows Logon Caching vs. Kerberos Logons</span></span></span></h2>
  
  <p class=MsoNormal>If you are a site which utilizes MIT/Heimdal Kerberos
! principals to logon to Windows via a cross-realm relationship with a
! multi-domain Windows forest, you must enable Windows logon caching unless the
! workstation is Windows Vista.</p>
  
! <h2><a name="_Toc154229396"></a><a name="_Toc152605075"></a><a
  name="_Toc115416140"></a><a name="_Toc139993124"></a><a name="_Toc126872205"></a><a
! name="_Toc115417076"></a><span style='mso-bookmark:_Toc154229396'><span
  style='mso-bookmark:_Toc152605075'><span style='mso-bookmark:_Toc115416140'>3.34.
  Initial Server Preferences</span></span></span></h2>
  
***************
*** 1925,1933 ****
  &quot;<a href="#_Regkey:_[HKLMSOFTWAREOpenAFSClie_2">Server Preferences</a>&quot;
  keys.</p>
  
! <h2><a name="_Toc152606247"></a><a name="_Toc152605076"></a><a
  name="_Toc115416141"></a><a name="_Toc139993125"></a><a name="_Toc126872206"></a><a
! name="_Toc115417077"></a><span style='mso-bookmark:_Toc152606247'><span
  style='mso-bookmark:_Toc152605076'><span style='mso-bookmark:_Toc115416141'>3.35.
  File Timestamps</span></span></span></h2>
  
--- 1950,1958 ----
  &quot;<a href="#_Regkey:_[HKLMSOFTWAREOpenAFSClie_2">Server Preferences</a>&quot;
  keys.</p>
  
! <h2><a name="_Toc154229397"></a><a name="_Toc152605076"></a><a
  name="_Toc115416141"></a><a name="_Toc139993125"></a><a name="_Toc126872206"></a><a
! name="_Toc115417077"></a><span style='mso-bookmark:_Toc154229397'><span
  style='mso-bookmark:_Toc152605076'><span style='mso-bookmark:_Toc115416141'>3.35.
  File Timestamps</span></span></span></h2>
  
***************
*** 1949,1957 ****
  timestamp from the Windows explorer.&nbsp; During DST, these two times will no
  longer agree even though they are in fact representing the same moment in time.</p>
  
! <h2><a name="_Toc152606248"></a><a name="_Toc152605077"></a><a
  name="_Toc115416142"></a><a name="_Toc139993126"></a><a name="_Toc126872207"></a><a
! name="_Toc115417078"></a><span style='mso-bookmark:_Toc152606248'><span
  style='mso-bookmark:_Toc152605077'><span style='mso-bookmark:_Toc115416142'>3.36.
  Windows RPC client support must be installed</span></span></span> </h2>
  
--- 1974,1982 ----
  timestamp from the Windows explorer.&nbsp; During DST, these two times will no
  longer agree even though they are in fact representing the same moment in time.</p>
  
! <h2><a name="_Toc154229398"></a><a name="_Toc152605077"></a><a
  name="_Toc115416142"></a><a name="_Toc139993126"></a><a name="_Toc126872207"></a><a
! name="_Toc115417078"></a><span style='mso-bookmark:_Toc154229398'><span
  style='mso-bookmark:_Toc152605077'><span style='mso-bookmark:_Toc115416142'>3.36.
  Windows RPC client support must be installed</span></span></span> </h2>
  
***************
*** 1968,1979 ****
  <p class=preformattedtext>&nbsp;&nbsp; HKLM
  &quot;SOFTWARE\Microsoft\RPC\ClientProtocols&quot; &quot;ncadg_ip_udp&quot;</p>
  
! <p class=preformattedtext>&nbsp;&nbsp; HKLM
! &quot;SOFTWARE\Microsoft\RPC\ClientProtocols&quot; &quot;ncacn_http&quot;</p>
  
! <h2><a name="_Toc152606249"></a><a name="_Toc152605078"></a><a
  name="_Toc115416143"></a><a name="_Toc139993127"></a><a name="_Toc126872208"></a><a
! name="_Toc115417079"></a><span style='mso-bookmark:_Toc152606249'><span
  style='mso-bookmark:_Toc152605078'><span style='mso-bookmark:_Toc115416143'>3.37.
  Generating Minidumps of the OpenAFS Client Service</span></span></span></h2>
  
--- 1993,2004 ----
  <p class=preformattedtext>&nbsp;&nbsp; HKLM
  &quot;SOFTWARE\Microsoft\RPC\ClientProtocols&quot; &quot;ncadg_ip_udp&quot;</p>
  
! <p class=preformattedtext>&nbsp;&nbsp; HKLM &quot;SOFTWARE\Microsoft\RPC\ClientProtocols&quot;
! &quot;ncacn_http&quot;</p>
  
! <h2><a name="_Toc154229399"></a><a name="_Toc152605078"></a><a
  name="_Toc115416143"></a><a name="_Toc139993127"></a><a name="_Toc126872208"></a><a
! name="_Toc115417079"></a><span style='mso-bookmark:_Toc154229399'><span
  style='mso-bookmark:_Toc152605078'><span style='mso-bookmark:_Toc115416143'>3.37.
  Generating Minidumps of the OpenAFS Client Service</span></span></span></h2>
  
***************
*** 1983,1991 ****
  process.&nbsp;&nbsp; This output can be very helpful when debugging the AFS
  Client Service when it is unresponsive to SMB/CIFS requests.</p>
  
! <h2><a name="_Toc152606250"></a><a name="_Toc152605079"></a><a
  name="_Toc115416144"></a><a name="_Toc139993128"></a><a name="_Toc126872209"></a><a
! name="_Toc115417080"></a><span style='mso-bookmark:_Toc152606250'><span
  style='mso-bookmark:_Toc152605079'><span style='mso-bookmark:_Toc115416144'>3.38.
  AFS Client Universally Unique Identifiers</span></span></span></h2>
  
--- 2008,2016 ----
  process.&nbsp;&nbsp; This output can be very helpful when debugging the AFS
  Client Service when it is unresponsive to SMB/CIFS requests.</p>
  
! <h2><a name="_Toc154229400"></a><a name="_Toc152605079"></a><a
  name="_Toc115416144"></a><a name="_Toc139993128"></a><a name="_Toc126872209"></a><a
! name="_Toc115417080"></a><span style='mso-bookmark:_Toc154229400'><span
  style='mso-bookmark:_Toc152605079'><span style='mso-bookmark:_Toc115416144'>3.38.
  AFS Client Universally Unique Identifiers</span></span></span></h2>
  
***************
*** 1997,2005 ****
  file.&nbsp;&nbsp; When cloning machines that have Windows AFS client installed,
  the AFSCache files should be deleted as part of the cloning process.</p>
  
! <h2><a name="_Toc152606251"></a><a name="_Toc139993129"></a><a
! name="_Toc152605080"><span style='mso-bookmark:_Toc139993129'><span
! style='mso-bookmark:_Toc152606251'>3.39. Delayed Write Errors with Microsoft
  Office Applications</span></span></a></h2>
  
  <p class=MsoBodyText>Microsoft Office makes heavy use of asynchronous
--- 2022,2030 ----
  file.&nbsp;&nbsp; When cloning machines that have Windows AFS client installed,
  the AFSCache files should be deleted as part of the cloning process.</p>
  
! <h2><a name="_Toc154229401"></a><a name="_Toc152605080"></a><a
! name="_Toc139993129"><span style='mso-bookmark:_Toc152605080'><span
! style='mso-bookmark:_Toc154229401'>3.39. Delayed Write Errors with Microsoft
  Office Applications</span></span></a></h2>
  
  <p class=MsoBodyText>Microsoft Office makes heavy use of asynchronous
***************
*** 2019,2030 ****
  <p class=MsoBodyText>The CIFS session timeout defaults to 45 seconds and can be
  increased by modifying the <a href="../relnotes.htm#_Value:_ConnDeadTimeout">registry</a>.</p>
  
! <h2><a name="_Toc152606252"></a><a name="_Toc152605081"></a><a
  name="_Toc139993130"><span style='mso-bookmark:_Toc152605081'><span
! style='mso-bookmark:_Toc152606252'>3.40. Global Drives (aka </span></span></a><st1:Street
! w:st="on"><st1:address w:st="on"><span style='mso-bookmark:_Toc152606252'><span
    style='mso-bookmark:_Toc152605081'>Service Drive</span></span></st1:address></st1:Street><span
! style='mso-bookmark:_Toc152606252'><span style='mso-bookmark:_Toc152605081'>
  Letters) are no longer supported by Microsoft</span></span></h2>
  
  <p class=MsoBodyText>The Global DriveAuto-mount feature has been deprecated due
--- 2044,2055 ----
  <p class=MsoBodyText>The CIFS session timeout defaults to 45 seconds and can be
  increased by modifying the <a href="../relnotes.htm#_Value:_ConnDeadTimeout">registry</a>.</p>
  
! <h2><a name="_Toc154229402"></a><a name="_Toc152605081"></a><a
  name="_Toc139993130"><span style='mso-bookmark:_Toc152605081'><span
! style='mso-bookmark:_Toc154229402'>3.40. Global Drives (aka </span></span></a><st1:Street
! w:st="on"><st1:address w:st="on"><span style='mso-bookmark:_Toc154229402'><span
    style='mso-bookmark:_Toc152605081'>Service Drive</span></span></st1:address></st1:Street><span
! style='mso-bookmark:_Toc154229402'><span style='mso-bookmark:_Toc152605081'>
  Letters) are no longer supported by Microsoft</span></span></h2>
  
  <p class=MsoBodyText>The Global DriveAuto-mount feature has been deprecated due
***************
*** 2043,2051 ****
  applications should be modified to use of \\AFS\&lt;cellname&gt;\&lt;path&gt;
  instead of drive letters.</p>
  
! <h2><a name="_Toc152606253"></a><a name="_Toc139993131"></a><a
! name="_Toc152605082"><span style='mso-bookmark:_Toc139993131'><span
! style='mso-bookmark:_Toc152606253'>3.41. 64-bit Microsoft Windows Installations</span></span></a></h2>
  
  <p class=MsoBodyText>Although 64-bit Windows platforms support both 64-bit and
  32-bit applications, the OpenAFS Service installed on the machine must be
--- 2068,2076 ----
  applications should be modified to use of \\AFS\&lt;cellname&gt;\&lt;path&gt;
  instead of drive letters.</p>
  
! <h2><a name="_Toc154229403"></a><a name="_Toc152605082"></a><a
! name="_Toc139993131"><span style='mso-bookmark:_Toc152605082'><span
! style='mso-bookmark:_Toc154229403'>3.41. 64-bit Microsoft Windows Installations</span></span></a></h2>
  
  <p class=MsoBodyText>Although 64-bit Windows platforms support both 64-bit and
  32-bit applications, the OpenAFS Service installed on the machine must be
***************
*** 2060,2069 ****
  Without this restriction the AFS Cache File can become arbitrarily large
  limited only by available disk space.</p>
  
! <h2><a name="_Toc152606254"></a><a name="_Toc152605083"></a><a
  name="_Toc139993132"><span style='mso-bookmark:_Toc152605083'><span
! style='mso-bookmark:_Toc152606254'>3.42. Known Issues with Microsoft Windows </span></span></a><st1:place
! w:st="on"><span style='mso-bookmark:_Toc152606254'><span style='mso-bookmark:
   _Toc152605083'>Vista</span></span></st1:place></h2>
  
  <p class=MsoBodyText>OpenAFS for Windows works with Microsoft Windows Vista
--- 2085,2094 ----
  Without this restriction the AFS Cache File can become arbitrarily large
  limited only by available disk space.</p>
  
! <h2><a name="_Toc154229404"></a><a name="_Toc152605083"></a><a
  name="_Toc139993132"><span style='mso-bookmark:_Toc152605083'><span
! style='mso-bookmark:_Toc154229404'>3.42. Known Issues with Microsoft Windows </span></span></a><st1:place
! w:st="on"><span style='mso-bookmark:_Toc154229404'><span style='mso-bookmark:
   _Toc152605083'>Vista</span></span></st1:place></h2>
  
  <p class=MsoBodyText>OpenAFS for Windows works with Microsoft Windows Vista
***************
*** 2099,2108 ****
  Start and Stop Service features of the AFS System Tray tool and the AFS Control
  Panel will not work unless they are “Run as Administrator”.</p>
  
! <h1><a name="_Toc152606255"></a><a name="_Toc152605084"></a><a
  name="_Toc115416145"></a><a name="_Toc139993133"></a><a name="_Toc126872210"></a><a
  name="_Toc115417112"></a><a name="_Toc115417081"></a><span style='mso-bookmark:
! _Toc152606255'><span style='mso-bookmark:_Toc152605084'><span style='mso-bookmark:
  _Toc115416145'>4. How to Debug Problems with OpenAFS for Windows:</span></span></span></h1>
  
  <p class=MsoNormal>OpenAFS for Windows provides a wide range of tools to assist
--- 2124,2133 ----
  Start and Stop Service features of the AFS System Tray tool and the AFS Control
  Panel will not work unless they are “Run as Administrator”.</p>
  
! <h1><a name="_Toc154229405"></a><a name="_Toc152605084"></a><a
  name="_Toc115416145"></a><a name="_Toc139993133"></a><a name="_Toc126872210"></a><a
  name="_Toc115417112"></a><a name="_Toc115417081"></a><span style='mso-bookmark:
! _Toc154229405'><span style='mso-bookmark:_Toc152605084'><span style='mso-bookmark:
  _Toc115416145'>4. How to Debug Problems with OpenAFS for Windows:</span></span></span></h1>
  
  <p class=MsoNormal>OpenAFS for Windows provides a wide range of tools to assist
***************
*** 2112,2125 ****
  OpenAFS developers, please collect as much information as possible and forward
  it as part of the bug </p>
  
! <h2><a name="_Toc152606256"></a><a name="_Toc152605085"></a><a
  name="_Toc115416146"></a><a name="_Toc139993134"></a><a name="_Toc126872211"></a><a
! name="_Toc115417082"></a><span style='mso-bookmark:_Toc152606256'><span
  style='mso-bookmark:_Toc152605085'><span style='mso-bookmark:_Toc115416146'>4.1.
  pioctl debugging (</span></span></span><a href="#_Value___:_IoctlDebug"><span
! style='mso-bookmark:_Toc152606256'><span style='mso-bookmark:_Toc152605085'>IoctlDebug</span></span><span
! style='mso-bookmark:_Toc152606256'><span style='mso-bookmark:_Toc152605085'></span></span></a><span
! style='mso-bookmark:_Toc152606256'><span style='mso-bookmark:_Toc152605085'>
  registry key)</span></span></h2>
  
  <p class=MsoNormal>pioctl (path-based ioctl) calls are used by various tools to
--- 2137,2150 ----
  OpenAFS developers, please collect as much information as possible and forward
  it as part of the bug </p>
  
! <h2><a name="_Toc154229406"></a><a name="_Toc152605085"></a><a
  name="_Toc115416146"></a><a name="_Toc139993134"></a><a name="_Toc126872211"></a><a
! name="_Toc115417082"></a><span style='mso-bookmark:_Toc154229406'><span
  style='mso-bookmark:_Toc152605085'><span style='mso-bookmark:_Toc115416146'>4.1.
  pioctl debugging (</span></span></span><a href="#_Value___:_IoctlDebug"><span
! style='mso-bookmark:_Toc154229406'><span style='mso-bookmark:_Toc152605085'>IoctlDebug</span></span><span
! style='mso-bookmark:_Toc154229406'><span style='mso-bookmark:_Toc152605085'></span></span></a><span
! style='mso-bookmark:_Toc154229406'><span style='mso-bookmark:_Toc152605085'>
  registry key)</span></span></h2>
  
  <p class=MsoNormal>pioctl (path-based ioctl) calls are used by various tools to
***************
*** 2185,2193 ****
  the Microsoft KnowledgeBase can be used as a reference to help you determine
  the configuration probem with your system.</p>
  
! <h2><a name="_Toc152606257"></a><a name="_Toc152605086"></a><a
  name="_Toc115416147"></a><a name="_Toc139993135"></a><a name="_Toc126872212"></a><a
! name="_Toc115417083"></a><span style='mso-bookmark:_Toc152606257'><span
  style='mso-bookmark:_Toc152605086'><span style='mso-bookmark:_Toc115416147'>4.2.
  afsd_service initialization log (%WinDir%\TEMP\afsd_init.log)</span></span></span></h2>
  
--- 2210,2218 ----
  the Microsoft KnowledgeBase can be used as a reference to help you determine
  the configuration probem with your system.</p>
  
! <h2><a name="_Toc154229407"></a><a name="_Toc152605086"></a><a
  name="_Toc115416147"></a><a name="_Toc139993135"></a><a name="_Toc126872212"></a><a
! name="_Toc115417083"></a><span style='mso-bookmark:_Toc154229407'><span
  style='mso-bookmark:_Toc152605086'><span style='mso-bookmark:_Toc115416147'>4.2.
  afsd_service initialization log (%WinDir%\TEMP\afsd_init.log)</span></span></span></h2>
  
***************
*** 2207,2217 ****
  starts, the file will be reset to 0 bytes.&nbsp; If value is set to 0, the file
  will be allowed to grow indefinitely.</p>
  
! <h2><a name="_Toc152606258"></a><a name="_Toc152605087"></a><a
  name="_Toc115416148"></a><a name="_Toc139993136"></a><a name="_Toc126872213"></a><a
! name="_Toc115417084"></a><span style='mso-bookmark:_Toc152606258'><span
  style='mso-bookmark:_Toc152605087'><span style='mso-bookmark:_Toc115416148'>4.3.
! afsd_service debug logs (fs trace {-on, -off, -dump} -&gt;%WinDir%\TEMP\afsd.log)</span></span></span></h2>
  
  <p class=MsoNormal>When attempting to debug the behavior of the SMB/CIFS Server
  and the Cache Manager it is often useful to examine a log of the operations
--- 2232,2243 ----
  starts, the file will be reset to 0 bytes.&nbsp; If value is set to 0, the file
  will be allowed to grow indefinitely.</p>
  
! <h2><a name="_Toc154229408"></a><a name="_Toc152605087"></a><a
  name="_Toc115416148"></a><a name="_Toc139993136"></a><a name="_Toc126872213"></a><a
! name="_Toc115417084"></a><span style='mso-bookmark:_Toc154229408'><span
  style='mso-bookmark:_Toc152605087'><span style='mso-bookmark:_Toc115416148'>4.3.
! afsd_service debug logs (fs trace {-on, -off, -dump}
! -&gt;%WinDir%\TEMP\afsd.log)</span></span></span></h2>
  
  <p class=MsoNormal>When attempting to debug the behavior of the SMB/CIFS Server
  and the Cache Manager it is often useful to examine a log of the operations
***************
*** 2229,2237 ****
  value.&nbsp;&nbsp; Execute &quot;fs trace -on&quot; to clear to the log and
  &quot;fs trace -dump&quot; to output the contents of the log to the file.</p>
  
! <h2><a name="_Toc152606259"></a><a name="_Toc152605088"></a><a
  name="_Toc115416149"></a><a name="_Toc139993137"></a><a name="_Toc126872214"></a><a
! name="_Toc115417085"></a><span style='mso-bookmark:_Toc152606259'><span
  style='mso-bookmark:_Toc152605088'><span style='mso-bookmark:_Toc115416149'>4.4.
  Using SysInternal’s DbgView and FileMon Tools</span></span></span></h2>
  
--- 2255,2263 ----
  value.&nbsp;&nbsp; Execute &quot;fs trace -on&quot; to clear to the log and
  &quot;fs trace -dump&quot; to output the contents of the log to the file.</p>
  
! <h2><a name="_Toc154229409"></a><a name="_Toc152605088"></a><a
  name="_Toc115416149"></a><a name="_Toc139993137"></a><a name="_Toc126872214"></a><a
! name="_Toc115417085"></a><span style='mso-bookmark:_Toc154229409'><span
  style='mso-bookmark:_Toc152605088'><span style='mso-bookmark:_Toc115416149'>4.4.
  Using SysInternal’s DbgView and FileMon Tools</span></span></span></h2>
  
***************
*** 2249,2256 ****
  <p class=preformattedtext style='text-indent:12.0pt'>REG_DWORD&nbsp;&nbsp;
  TraceOption = 0x04</p>
  
! <p class=MsoNormal>Use “fs trace –on” and “fs trace –off” to toggle the
! generation of log messages. </p>
  
  <p class=MsoNormal><a name="_Toc115416150"></a><a name="_Toc126872215"></a><a
  name="_Toc115417086"></a><span style='mso-bookmark:_Toc115416150'>Sysinternal’s
--- 2275,2282 ----
  <p class=preformattedtext style='text-indent:12.0pt'>REG_DWORD&nbsp;&nbsp;
  TraceOption = 0x04</p>
  
! <p class=MsoNormal>Use “fs trace –on” and “fs trace –off” to toggle the generation
! of log messages. </p>
  
  <p class=MsoNormal><a name="_Toc115416150"></a><a name="_Toc126872215"></a><a
  name="_Toc115417086"></a><span style='mso-bookmark:_Toc115416150'>Sysinternal’s
***************
*** 2266,2274 ****
  data can be stored to files for inclusion in <a
  href="../relnotes.htm#_5._Reporting_Bugs:">bug reports</a>.</p>
  
! <h2><a name="_Toc152606260"></a><a name="_Toc139993138"></a><a
! name="_Toc152605089"><span style='mso-bookmark:_Toc139993138'><span
! style='mso-bookmark:_Toc152606260'>4.5. Microsoft MiniDumps <br>
  (fs minidump -&gt; %WinDir%\TEMP\afsd.dmp)</span></span></a></h2>
  
  <p class=MsoNormal>If the AFS Client Service become unresponsive to any form of
--- 2292,2300 ----
  data can be stored to files for inclusion in <a
  href="../relnotes.htm#_5._Reporting_Bugs:">bug reports</a>.</p>
  
! <h2><a name="_Toc154229410"></a><a name="_Toc152605089"></a><a
! name="_Toc139993138"><span style='mso-bookmark:_Toc152605089'><span
! style='mso-bookmark:_Toc154229410'>4.5. Microsoft MiniDumps <br>
  (fs minidump -&gt; %WinDir%\TEMP\afsd.dmp)</span></span></a></h2>
  
  <p class=MsoNormal>If the AFS Client Service become unresponsive to any form of
***************
*** 2277,2285 ****
  minidump&quot; command can be used to force the generation of a MiniDump file
  containing the state of all of the threads in the AFS Client Service process.</p>
  
! <h2><a name="_Toc152606261"></a><a name="_Toc152605090"></a><a
  name="_Toc115416151"></a><a name="_Toc139993139"></a><a name="_Toc126872216"></a><a
! name="_Toc115417087"></a><span style='mso-bookmark:_Toc152606261'><span
  style='mso-bookmark:_Toc152605090'><span style='mso-bookmark:_Toc115416151'>4.6.
  Single Sign-on (Integrated Logon) debugging</span></span></span></h2>
  
--- 2303,2311 ----
  minidump&quot; command can be used to force the generation of a MiniDump file
  containing the state of all of the threads in the AFS Client Service process.</p>
  
! <h2><a name="_Toc154229411"></a><a name="_Toc152605090"></a><a
  name="_Toc115416151"></a><a name="_Toc139993139"></a><a name="_Toc126872216"></a><a
! name="_Toc115417087"></a><span style='mso-bookmark:_Toc154229411'><span
  style='mso-bookmark:_Toc152605090'><span style='mso-bookmark:_Toc115416151'>4.6.
  Single Sign-on (Integrated Logon) debugging</span></span></span></h2>
  
***************
*** 2297,2311 ****
  Event Handlers to log information to the Windows Event Log: Application under
  the name “AFS Logon&quot;.</p>
  
! <h2><a name="_Toc152606262"></a><a name="_Toc152605091"></a><a
  name="_Toc115416152"></a><a name="_Toc139993140"></a><a name="_Toc126872217"></a><a
! name="_Toc115417088"></a><span style='mso-bookmark:_Toc152606262'><span
  style='mso-bookmark:_Toc152605091'><span style='mso-bookmark:_Toc115416152'>4.7.
  RX (AFS RPC) debugging (rxdebug)</span></span></span></h2>
  
! <p class=MsoNormal>The rxdebug.exe tool can be used to query a variety of information
! about the AFS services installed on a given machine.&nbsp; The port for the AFS
! Cache Manager is 7001.&nbsp; </p>
  
  <p class=preformattedtext>Usage: rxdebug -servers &lt;server machine&gt; [-port
  &lt;IP port&gt;] [-nodally] </p>
--- 2323,2337 ----
  Event Handlers to log information to the Windows Event Log: Application under
  the name “AFS Logon&quot;.</p>
  
! <h2><a name="_Toc154229412"></a><a name="_Toc152605091"></a><a
  name="_Toc115416152"></a><a name="_Toc139993140"></a><a name="_Toc126872217"></a><a
! name="_Toc115417088"></a><span style='mso-bookmark:_Toc154229412'><span
  style='mso-bookmark:_Toc152605091'><span style='mso-bookmark:_Toc115416152'>4.7.
  RX (AFS RPC) debugging (rxdebug)</span></span></span></h2>
  
! <p class=MsoNormal>The rxdebug.exe tool can be used to query a variety of
! information about the AFS services installed on a given machine.&nbsp; The port
! for the AFS Cache Manager is 7001.&nbsp; </p>
  
  <p class=preformattedtext>Usage: rxdebug -servers &lt;server machine&gt; [-port
  &lt;IP port&gt;] [-nodally] </p>
***************
*** 2350,2358 ****
  <p class=preformattedtext>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  -peers&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; show peers</p>
  
! <h2><a name="_Toc152606263"></a><a name="_Toc152605092"></a><a
  name="_Toc115416153"></a><a name="_Toc139993141"></a><a name="_Toc126872218"></a><a
! name="_Toc115417089"></a><span style='mso-bookmark:_Toc152606263'><span
  style='mso-bookmark:_Toc152605092'><span style='mso-bookmark:_Toc115416153'>4.8.
  Cache Manager debugging (cmdebug)</span></span></span></h2>
  
--- 2376,2384 ----
  <p class=preformattedtext>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  -peers&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; show peers</p>
  
! <h2><a name="_Toc154229413"></a><a name="_Toc152605092"></a><a
  name="_Toc115416153"></a><a name="_Toc139993141"></a><a name="_Toc126872218"></a><a
! name="_Toc115417089"></a><span style='mso-bookmark:_Toc154229413'><span
  style='mso-bookmark:_Toc152605092'><span style='mso-bookmark:_Toc115416153'>4.8.
  Cache Manager debugging (cmdebug)</span></span></span></h2>
  
***************
*** 2380,2388 ****
  <p class=preformattedtext>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  -cache&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print only cache configuration</p>
  
! <h2><a name="_Toc152606264"></a><a name="_Toc152605093"></a><a
  name="_Toc115416154"></a><a name="_Toc139993142"></a><a name="_Toc126872219"></a><a
! name="_Toc115417090"></a><span style='mso-bookmark:_Toc152606264'><span
  style='mso-bookmark:_Toc152605093'><span style='mso-bookmark:_Toc115416154'>4.9.
  Persistent Cache consistency check</span></span></span></h2>
  
--- 2406,2414 ----
  <p class=preformattedtext>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  -cache&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print only cache configuration</p>
  
! <h2><a name="_Toc154229414"></a><a name="_Toc152605093"></a><a
  name="_Toc115416154"></a><a name="_Toc139993142"></a><a name="_Toc126872219"></a><a
! name="_Toc115417090"></a><span style='mso-bookmark:_Toc154229414'><span
  style='mso-bookmark:_Toc152605093'><span style='mso-bookmark:_Toc115416154'>4.9.
  Persistent Cache consistency check</span></span></span></h2>
  
***************
*** 2394,2403 ****
  <p class=preformattedtext>&nbsp; afsd_service.exe --validate-cache
  &lt;cache-path&gt;</p>
  
! <h1><a name="_Toc152606265"></a><a name="_Toc152605094"></a><a
  name="_Toc139993143"></a><a name="_Toc126872220"></a><a name="_Toc115417113"></a><a
  name="_Toc115417091"></a><a name="_Toc115416155"></a><a
! name="_5._Reporting_Bugs:"></a><span style='mso-bookmark:_Toc152606265'><span
  style='mso-bookmark:_Toc152605094'>5. Reporting Bugs:</span></span></h1>
  
  <p class=MsoNormal>Bug reports should be sent to <a
--- 2420,2429 ----
  <p class=preformattedtext>&nbsp; afsd_service.exe --validate-cache
  &lt;cache-path&gt;</p>
  
! <h1><a name="_Toc154229415"></a><a name="_Toc152605094"></a><a
  name="_Toc139993143"></a><a name="_Toc126872220"></a><a name="_Toc115417113"></a><a
  name="_Toc115417091"></a><a name="_Toc115416155"></a><a
! name="_5._Reporting_Bugs:"></a><span style='mso-bookmark:_Toc154229415'><span
  style='mso-bookmark:_Toc152605094'>5. Reporting Bugs:</span></span></h1>
  
  <p class=MsoNormal>Bug reports should be sent to <a
***************
*** 2480,2489 ****
  <p class=MsoNormal>When reporting a error, please be sure to include the
  version of OpenAFS.</p>
  
! <h1><a name="_Toc152606266"></a><a name="_Toc152605095"></a><a
  name="_Toc115416156"></a><a name="_Toc139993144"></a><a name="_Toc126872221"></a><a
  name="_Toc115417114"></a><a name="_Toc115417092"></a><span style='mso-bookmark:
! _Toc152606266'><span style='mso-bookmark:_Toc152605095'><span style='mso-bookmark:
  _Toc115416156'>6. How to Contribute to the Development of OpenAFS for Windows</span></span></span></h1>
  
  <p class=MsoNormal>Contributions to the development of OpenAFS for Windows are
--- 2506,2515 ----
  <p class=MsoNormal>When reporting a error, please be sure to include the
  version of OpenAFS.</p>
  
! <h1><a name="_Toc154229416"></a><a name="_Toc152605095"></a><a
  name="_Toc115416156"></a><a name="_Toc139993144"></a><a name="_Toc126872221"></a><a
  name="_Toc115417114"></a><a name="_Toc115417092"></a><span style='mso-bookmark:
! _Toc154229416'><span style='mso-bookmark:_Toc152605095'><span style='mso-bookmark:
  _Toc115416156'>6. How to Contribute to the Development of OpenAFS for Windows</span></span></span></h1>
  
  <p class=MsoNormal>Contributions to the development of OpenAFS for Windows are
***************
*** 2491,2507 ****
  donations, support contracts, donated developer time, and even donated tech
  writer time.</p>
  
! <h2><a name="_Toc152606267"></a><a name="_Toc152605096"></a><a
  name="_Toc115416157"></a><a name="_Toc139993145"></a><a name="_Toc126872222"></a><a
! name="_Toc115417093"></a><span style='mso-bookmark:_Toc152606267'><span
  style='mso-bookmark:_Toc152605096'><span style='mso-bookmark:_Toc115416157'>6.1.
  The USENIX OpenAFS Fund</span></span></span> </h2>
  
  <p class=MsoBodyText><a href="http://www.usenix.org/">USENIX</a>, a 501c3
! non-profit corporation, has formed the USENIX OpenAFS Fund in order to accept tax
! deductible donations on behalf of the OpenAFS Elders. The donated funds will be
! allocated by the OpenAFS Elders to fund OpenAFS development, documentation,
! project management, and maintaining openafs.org. <o:p></o:p></p>
  
  <div>
  
--- 2517,2533 ----
  donations, support contracts, donated developer time, and even donated tech
  writer time.</p>
  
! <h2><a name="_Toc154229417"></a><a name="_Toc152605096"></a><a
  name="_Toc115416157"></a><a name="_Toc139993145"></a><a name="_Toc126872222"></a><a
! name="_Toc115417093"></a><span style='mso-bookmark:_Toc154229417'><span
  style='mso-bookmark:_Toc152605096'><span style='mso-bookmark:_Toc115416157'>6.1.
  The USENIX OpenAFS Fund</span></span></span> </h2>
  
  <p class=MsoBodyText><a href="http://www.usenix.org/">USENIX</a>, a 501c3
! non-profit corporation, has formed the USENIX OpenAFS Fund in order to accept
! tax deductible donations on behalf of the OpenAFS Elders. The donated funds
! will be allocated by the OpenAFS Elders to fund OpenAFS development,
! documentation, project management, and maintaining openafs.org. <o:p></o:p></p>
  
  <div>
  
***************
*** 2527,2535 ****
  bank, made out to the USENIX OpenAFS Fund or by making a <a
  href="https://db.usenix.org/cgi-bin/openafs/openafs.cgi">donation online</a>.</p>
  
! <h2><a name="_Toc152606268"></a><a name="_Toc152605097"></a><a
  name="_Toc115417094"></a><a name="_Toc139993146"></a><a name="_Toc126872223"></a><span
! style='mso-bookmark:_Toc152606268'><span style='mso-bookmark:_Toc152605097'><span
  style='mso-bookmark:_Toc115417094'>6.2. Secure Endpoints Inc.</span></span></span>
  </h2>
  
--- 2553,2561 ----
  bank, made out to the USENIX OpenAFS Fund or by making a <a
  href="https://db.usenix.org/cgi-bin/openafs/openafs.cgi">donation online</a>.</p>
  
! <h2><a name="_Toc154229418"></a><a name="_Toc152605097"></a><a
  name="_Toc115417094"></a><a name="_Toc139993146"></a><a name="_Toc126872223"></a><span
! style='mso-bookmark:_Toc154229418'><span style='mso-bookmark:_Toc152605097'><span
  style='mso-bookmark:_Toc115417094'>6.2. Secure Endpoints Inc.</span></span></span>
  </h2>
  
***************
*** 2550,2559 ****
  the OpenAFS for Windows and the <a href="http://web.mit.edu/kerberos/">MIT
  Kerberos for Windows</a> products. </p>
  
! <h2><a name="_Toc152606269"></a><a name="_Toc152605098"></a><a
  name="_Toc115417096"></a><a name="_Toc139993147"></a><a name="_Toc126872224"></a><a
  name="_Toc139993148"></a><a name="_Toc126872225"></a><span style='mso-bookmark:
! _Toc152606269'><span style='mso-bookmark:_Toc152605098'><span style='mso-bookmark:
  _Toc115417096'>6.3. Direct contributions of code and/or documentation</span></span></span>
  </h2>
  
--- 2576,2585 ----
  the OpenAFS for Windows and the <a href="http://web.mit.edu/kerberos/">MIT
  Kerberos for Windows</a> products. </p>
  
! <h2><a name="_Toc154229419"></a><a name="_Toc152605098"></a><a
  name="_Toc115417096"></a><a name="_Toc139993147"></a><a name="_Toc126872224"></a><a
  name="_Toc139993148"></a><a name="_Toc126872225"></a><span style='mso-bookmark:
! _Toc154229419'><span style='mso-bookmark:_Toc152605098'><span style='mso-bookmark:
  _Toc115417096'>6.3. Direct contributions of code and/or documentation</span></span></span>
  </h2>
  
***************
*** 2562,2574 ****
  make to OpenAFS.org via <u><span style='color:blue'>openafs-bugs@openafs.org</span></u>.
  &nbsp;Contributions of documentation are highly desired. </p>
  
! <h2><a name="_Toc152606270"></a><a name="_Toc152605099"></a><a
  name="_Toc115417097"></a><a name="_Toc139993149"></a><a name="_Toc126872226"></a><span
! style='mso-bookmark:_Toc152606270'><span style='mso-bookmark:_Toc152605099'><span
  style='mso-bookmark:_Toc115417097'>6.4. OpenAFS for Windows Mailing Lists</span></span></span></h2>
  
! <p class=MsoNormal>If you wish to participate in OpenAFS for Windows development
! please join the <i><a
  href="mailto:openafs-win32-devel@openafs.org?subject=OpenAFS%20for%20Windows%20Development%20Contribution">openafs-win32-devel@openafs.org</a></i>
  mailing list.</p>
  
--- 2588,2600 ----
  make to OpenAFS.org via <u><span style='color:blue'>openafs-bugs@openafs.org</span></u>.
  &nbsp;Contributions of documentation are highly desired. </p>
  
! <h2><a name="_Toc154229420"></a><a name="_Toc152605099"></a><a
  name="_Toc115417097"></a><a name="_Toc139993149"></a><a name="_Toc126872226"></a><span
! style='mso-bookmark:_Toc154229420'><span style='mso-bookmark:_Toc152605099'><span
  style='mso-bookmark:_Toc115417097'>6.4. OpenAFS for Windows Mailing Lists</span></span></span></h2>
  
! <p class=MsoNormal>If you wish to participate in OpenAFS for Windows
! development please join the <i><a
  href="mailto:openafs-win32-devel@openafs.org?subject=OpenAFS%20for%20Windows%20Development%20Contribution">openafs-win32-devel@openafs.org</a></i>
  mailing list.</p>
  
***************
*** 2583,2603 ****
  <p class=MsoNormal>You must join the mailing lists if you wish to post to the
  list without incurring a moderation delay.</p>
  
! <h1><a name="_Toc152606271"></a><a name="_Toc152605100"></a><a
  name="_Toc139993150"></a><a name="_Toc126872227"></a><a name="_Toc115417115"></a><a
  name="_Toc115417098"></a><a name="_Toc115416158"></a><a
! name="_MSI_Deployment_Guide"></a><span style='mso-bookmark:_Toc152606271'><span
  style='mso-bookmark:_Toc152605100'>7. MSI Deployment Guide</span></span></h1>
  
! <b><span style='font-size:16.0pt;font-family:Albany;mso-fareast-font-family:
  "MS Mincho";mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-US;
  mso-fareast-language:JA;mso-bidi-language:AR-SA'><br clear=all
  style='page-break-before:always'>
! </span></b>
  
! <h2><a name="_Toc152606272"></a><a name="_Toc152605101"></a><a
  name="_Toc115416159"></a><a name="_Toc139993151"></a><a name="_Toc126872228"></a><a
! name="_Toc115417099"></a><span style='mso-bookmark:_Toc152606272'><span
  style='mso-bookmark:_Toc152605101'><span style='mso-bookmark:_Toc115416159'>7.1.
  Introduction</span></span></span></h2>
  
--- 2609,2629 ----
  <p class=MsoNormal>You must join the mailing lists if you wish to post to the
  list without incurring a moderation delay.</p>
  
! <h1><a name="_Toc154229421"></a><a name="_Toc152605100"></a><a
  name="_Toc139993150"></a><a name="_Toc126872227"></a><a name="_Toc115417115"></a><a
  name="_Toc115417098"></a><a name="_Toc115416158"></a><a
! name="_MSI_Deployment_Guide"></a><span style='mso-bookmark:_Toc154229421'><span
  style='mso-bookmark:_Toc152605100'>7. MSI Deployment Guide</span></span></h1>
  
! <i><span style='font-size:16.0pt;font-family:Albany;mso-fareast-font-family:
  "MS Mincho";mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-US;
  mso-fareast-language:JA;mso-bidi-language:AR-SA'><br clear=all
  style='page-break-before:always'>
! </span></i>
  
! <h2><a name="_Toc154229422"></a><a name="_Toc152605101"></a><a
  name="_Toc115416159"></a><a name="_Toc139993151"></a><a name="_Toc126872228"></a><a
! name="_Toc115417099"></a><span style='mso-bookmark:_Toc154229422'><span
  style='mso-bookmark:_Toc152605101'><span style='mso-bookmark:_Toc115416159'>7.1.
  Introduction</span></span></span></h2>
  
***************
*** 2613,2621 ****
  files through group policy and/or startup scripts so that machines where
  OpenAFS for Windows is already installed will pick up these customizations.</p>
  
! <h3><a name="_Toc152606273"></a><a name="_Toc152605102"></a><a
  name="_Toc115416160"></a><a name="_Toc139993152"></a><a name="_Toc126872229"></a><span
! style='mso-bookmark:_Toc152606273'><span style='mso-bookmark:_Toc152605102'><span
  style='mso-bookmark:_Toc115416160'>7.1.1 Requirements</span></span></span></h3>
  
  <p class=MsoNormal>The information in this document applies to MSI packages
--- 2639,2647 ----
  files through group policy and/or startup scripts so that machines where
  OpenAFS for Windows is already installed will pick up these customizations.</p>
  
! <h3><a name="_Toc154229423"></a><a name="_Toc152605102"></a><a
  name="_Toc115416160"></a><a name="_Toc139993152"></a><a name="_Toc126872229"></a><span
! style='mso-bookmark:_Toc154229423'><span style='mso-bookmark:_Toc152605102'><span
  style='mso-bookmark:_Toc115416160'>7.1.1 Requirements</span></span></span></h3>
  
  <p class=MsoNormal>The information in this document applies to MSI packages
***************
*** 2653,2661 ****
  <p class=MsoNormal>&nbsp;&nbsp;&nbsp; <a
  href="http://msdn.microsoft.com/library/en-us/msi/setup/a_customization_transform_example.asp">http://msdn.microsoft.com/library/en-us/msi/setup/a_customization_transform_example.asp</a></p>
  
! <h3><a name="_Toc152606274"></a><a name="_Toc152605103"></a><a
  name="_Toc115416161"></a><a name="_Toc139993153"></a><a name="_Toc126872230"></a><span
! style='mso-bookmark:_Toc152606274'><span style='mso-bookmark:_Toc152605103'><span
  style='mso-bookmark:_Toc115416161'>7.1.2 Authoring a Transform</span></span></span></h3>
  
  <p class=MsoNormal>Transforms describe a set of modifications to be performed
--- 2679,2687 ----
  <p class=MsoNormal>&nbsp;&nbsp;&nbsp; <a
  href="http://msdn.microsoft.com/library/en-us/msi/setup/a_customization_transform_example.asp">http://msdn.microsoft.com/library/en-us/msi/setup/a_customization_transform_example.asp</a></p>
  
! <h3><a name="_Toc154229424"></a><a name="_Toc152605103"></a><a
  name="_Toc115416161"></a><a name="_Toc139993153"></a><a name="_Toc126872230"></a><span
! style='mso-bookmark:_Toc154229424'><span style='mso-bookmark:_Toc152605103'><span
  style='mso-bookmark:_Toc115416161'>7.1.2 Authoring a Transform</span></span></span></h3>
  
  <p class=MsoNormal>Transforms describe a set of modifications to be performed
***************
*** 2694,2710 ****
  -a openafs-transform.mst openafs-test.msi</p>
  
  <p class=MsoNormal>and then checking the resulting openafs-test.msi to see if
! all changes you have made above to openafs-modified.msi is present in
! openafs-test.msi.&nbsp; 'msitran' will complain if some modification in the
! transform can not be successfully applied.</p>
  
  <p class=MsoNormal>As mentioned above, you can use a tool like ORCA.EXE to edit
  the MSI databases directly when editing openafs-modified.msi.&nbsp; More
  details are given below.</p>
  
! <h2><a name="_Toc152606275"></a><a name="_Toc152605104"></a><a
  name="_Toc115416162"></a><a name="_Toc139993154"></a><a name="_Toc126872231"></a><a
! name="_Toc115417100"></a><span style='mso-bookmark:_Toc152606275'><span
  style='mso-bookmark:_Toc152605104'><span style='mso-bookmark:_Toc115416162'>7.2.
  Configuration Options</span></span></span></h2>
  
--- 2720,2736 ----
  -a openafs-transform.mst openafs-test.msi</p>
  
  <p class=MsoNormal>and then checking the resulting openafs-test.msi to see if
! all changes you have made above to openafs-modified.msi is present in openafs-test.msi.&nbsp;
! 'msitran' will complain if some modification in the transform can not be
! successfully applied.</p>
  
  <p class=MsoNormal>As mentioned above, you can use a tool like ORCA.EXE to edit
  the MSI databases directly when editing openafs-modified.msi.&nbsp; More
  details are given below.</p>
  
! <h2><a name="_Toc154229425"></a><a name="_Toc152605104"></a><a
  name="_Toc115416162"></a><a name="_Toc139993154"></a><a name="_Toc126872231"></a><a
! name="_Toc115417100"></a><span style='mso-bookmark:_Toc154229425'><span
  style='mso-bookmark:_Toc152605104'><span style='mso-bookmark:_Toc115416162'>7.2.
  Configuration Options</span></span></span></h2>
  
***************
*** 2716,2724 ****
  (like files or registry keys).&nbsp; Instructions for performing these tasks
  are below.</p>
  
! <h3><a name="_Toc152606276"></a><a name="_Toc152605105"></a><a
  name="_Toc115416163"></a><a name="_Toc139993155"></a><a name="_Toc126872232"></a><span
! style='mso-bookmark:_Toc152606276'><span style='mso-bookmark:_Toc152605105'><span
  style='mso-bookmark:_Toc115416163'>7.2.1 Configurable Properties</span></span></span></h3>
  
  <p class=MsoNormal>Most configurable properties correspond to registry keys or
--- 2742,2750 ----
  (like files or registry keys).&nbsp; Instructions for performing these tasks
  are below.</p>
  
! <h3><a name="_Toc154229426"></a><a name="_Toc152605105"></a><a
  name="_Toc115416163"></a><a name="_Toc139993155"></a><a name="_Toc126872232"></a><span
! style='mso-bookmark:_Toc154229426'><span style='mso-bookmark:_Toc152605105'><span
  style='mso-bookmark:_Toc115416163'>7.2.1 Configurable Properties</span></span></span></h3>
  
  <p class=MsoNormal>Most configurable properties correspond to registry keys or
***************
*** 2731,2742 ****
  
  <p class=MsoNormal>When one of the configurable properties is set, the
  installer will use the property value to set the corresponding setting in the
! HKEY_LOCAL_MACHINE registry hive.&nbsp; The HKEY_CURRENT_USER hive is not touched
! by the installer.</p>
  
! <p class=MsoNormal>For each property, the associated registry setting is
! referenced by the same text used in <a href="#_Appendix_A:_Registry_Values">Appendix
! A</a>.</p>
  
  <p class=MsoNormal>Strings are quoted using single quotes (e.g. 'a string'). An
  empty string is denoted as ''.&nbsp; Note that you can't author null values
--- 2757,2767 ----
  
  <p class=MsoNormal>When one of the configurable properties is set, the
  installer will use the property value to set the corresponding setting in the
! HKEY_LOCAL_MACHINE registry hive.&nbsp; The HKEY_CURRENT_USER hive is not
! touched by the installer.</p>
  
! <p class=MsoNormal>For each property, the associated registry setting is referenced
! by the same text used in <a href="#_Appendix_A:_Registry_Values">Appendix A</a>.</p>
  
  <p class=MsoNormal>Strings are quoted using single quotes (e.g. 'a string'). An
  empty string is denoted as ''.&nbsp; Note that you can't author null values
***************
*** 2744,2752 ****
  
  <p class=MsoNormal>Numeric values should be authored as decimal strings.</p>
  
! <h4><a name="_Toc152606277"></a><a name="_Toc152605106"></a><a
  name="_Toc115416164"></a><a name="_Toc139993156"></a><a name="_Toc126872233"></a><span
! style='mso-bookmark:_Toc152606277'><span style='mso-bookmark:_Toc152605106'><span
  style='mso-bookmark:_Toc115416164'>7.2.1.1 Setting Properties</span></span></span></h4>
  
  <p class=MsoNormal>In order to set a property,</p>
--- 2769,2777 ----
  
  <p class=MsoNormal>Numeric values should be authored as decimal strings.</p>
  
! <h4><a name="_Toc154229427"></a><a name="_Toc152605106"></a><a
  name="_Toc115416164"></a><a name="_Toc139993156"></a><a name="_Toc126872233"></a><span
! style='mso-bookmark:_Toc154229427'><span style='mso-bookmark:_Toc152605106'><span
  style='mso-bookmark:_Toc115416164'>7.2.1.1 Setting Properties</span></span></span></h4>
  
  <p class=MsoNormal>In order to set a property,</p>
***************
*** 2770,2832 ****
  <p class=MsoNormal style='margin-top:4.3pt;margin-right:0pt;margin-bottom:4.3pt;
  margin-left:18.0pt;text-indent:-18.0pt'><span style='font-size:9.0pt'>4.</span><span
  style='font-size:7.0pt;font-family:"Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
! </span>If the property does not exist in the property list, right click the list
! and select 'Add Row', type the property name and the desired value.</p>
  
! <h4><a name="_Toc152606278"></a><a name="_Toc152605107"></a><a
  name="_Toc115416165"></a><a name="_Toc139993157"></a><a name="_Toc126872234"></a><span
! style='mso-bookmark:_Toc152606278'><span style='mso-bookmark:_Toc152605107'><span
  style='mso-bookmark:_Toc115416165'>7.2.1.2 OpenAFS for Windows Properties</span></span></span></h4>
  
  <table class=MsoNormalTable border=1 cellspacing=3 cellpadding=0
   style='mso-cellspacing:2.2pt;mso-padding-alt:0pt 0pt 0pt 0pt'>
   <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt'>
!   <h5><a name="_Toc152606279"></a><a name="_Toc152605108"></a><a
!   name="_Toc139993158"></a><a name="_Toc126872235"></a><a name="_Toc115416166"></a><a
!   name="_(Service_parameters):"></a><span style='mso-bookmark:_Toc152606279'><span
!   style='mso-bookmark:_Toc152605108'><span style='mso-fareast-font-family:"Times New Roman"'>(Service
!   parameters):</span></span></span><span style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=listcontents style='margin-left:0pt'>[HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters]</p>
    </td>
   </tr>
   <tr style='mso-yfti-irow:1'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt'>
!   <h5><a name="_Toc152606280"></a><a name="_Toc152605109"></a><a
!   name="_Toc139993159"></a><a name="_Toc126872236"></a><a name="_Toc115416167"></a><a
!   name="_(Network_provider):"></a><span style='mso-bookmark:_Toc152606280'><span
!   style='mso-bookmark:_Toc152605109'><span style='mso-fareast-font-family:"Times New Roman"'>(Network
!   provider):</span></span></span><span style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=listcontents style='margin-left:0pt'>[HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider]</p>
    </td>
   </tr>
   <tr style='mso-yfti-irow:2;mso-yfti-lastrow:yes'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt'>
!   <h5><a name="_Toc152606281"></a><a name="_Toc152605110"></a><a
!   name="_Toc139993160"></a><a name="_Toc126872237"></a><a name="_Toc115416168"></a><a
!   name="_(OpenAFS_Client):"></a><span style='mso-bookmark:_Toc152606281'><span
!   style='mso-bookmark:_Toc152605110'><span style='mso-fareast-font-family:"Times New Roman"'>(OpenAFS
!   Client):</span></span></span><span style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=listcontents style='margin-left:0pt'>[HKLM\SOFTWARE\OpenAFS\Client]</p>
    </td>
   </tr>
  </table>
  
! <h5><a name="_Toc152606282"></a><a name="_Toc152605111"></a><a
  name="_Toc115416169"></a><a name="_Toc139993161"></a><a name="_Toc126872238"></a><span
! style='mso-bookmark:_Toc152606282'><span style='mso-bookmark:_Toc152605111'><span
  style='mso-bookmark:_Toc115416169'>7.2.1.2.1 Registry Properties</span></span></span></h5>
  
! <p class=MsoNormal>These properties are used to set the values of registry entries
! associated with OpenAFS for Windows.</p>
  
  <table class=MsoNormalTable border=1 cellspacing=3 cellpadding=0
   style='mso-cellspacing:2.2pt;mso-padding-alt:0pt 0pt 0pt 0pt'>
   <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt'>
!   <h6><a name="_Toc152606283"></a><a name="_Toc152605112"></a><a
!   name="_Toc115416170"></a><a name="_Toc139993162"></a><a name="_Toc126872239"></a><span
!   style='mso-bookmark:_Toc152606283'><span style='mso-bookmark:_Toc152605112'><span
    style='mso-bookmark:_Toc115416170'><span style='mso-fareast-font-family:"Times New Roman"'>AFSCACHEPATH</span></span></span></span><span
    style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h6>
    <p class=MsoList>Registry key&nbsp;&nbsp;&nbsp; : <a
--- 2795,2860 ----
  <p class=MsoNormal style='margin-top:4.3pt;margin-right:0pt;margin-bottom:4.3pt;
  margin-left:18.0pt;text-indent:-18.0pt'><span style='font-size:9.0pt'>4.</span><span
  style='font-size:7.0pt;font-family:"Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
! </span>If the property does not exist in the property list, right click the
! list and select 'Add Row', type the property name and the desired value.</p>
  
! <h4><a name="_Toc154229428"></a><a name="_Toc152605107"></a><a
  name="_Toc115416165"></a><a name="_Toc139993157"></a><a name="_Toc126872234"></a><span
! style='mso-bookmark:_Toc154229428'><span style='mso-bookmark:_Toc152605107'><span
  style='mso-bookmark:_Toc115416165'>7.2.1.2 OpenAFS for Windows Properties</span></span></span></h4>
  
  <table class=MsoNormalTable border=1 cellspacing=3 cellpadding=0
   style='mso-cellspacing:2.2pt;mso-padding-alt:0pt 0pt 0pt 0pt'>
   <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt'>
!   <h5><a name="_Toc154229429"></a><a name="_Toc152605108"></a><a
!   name="_(Service_parameters):"></a><a name="_Toc115416166"></a><a
!   name="_Toc126872235"></a><a name="_Toc139993158"></a><span style='mso-bookmark:
!   _Toc154229429'><span style='mso-bookmark:_Toc152605108'><span
!   style='mso-fareast-font-family:"Times New Roman"'>(Service parameters):</span></span></span><span
!   style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=listcontents style='margin-left:0pt'>[HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters]</p>
    </td>
   </tr>
   <tr style='mso-yfti-irow:1'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt'>
!   <h5><a name="_Toc154229430"></a><a name="_Toc152605109"></a><a
!   name="_(Network_provider):"></a><a name="_Toc115416167"></a><a
!   name="_Toc126872236"></a><a name="_Toc139993159"></a><span style='mso-bookmark:
!   _Toc154229430'><span style='mso-bookmark:_Toc152605109'><span
!   style='mso-fareast-font-family:"Times New Roman"'>(Network provider):</span></span></span><span
!   style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=listcontents style='margin-left:0pt'>[HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider]</p>
    </td>
   </tr>
   <tr style='mso-yfti-irow:2;mso-yfti-lastrow:yes'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt'>
!   <h5><a name="_Toc154229431"></a><a name="_Toc152605110"></a><a
!   name="_(OpenAFS_Client):"></a><a name="_Toc115416168"></a><a
!   name="_Toc126872237"></a><a name="_Toc139993160"></a><span style='mso-bookmark:
!   _Toc154229431'><span style='mso-bookmark:_Toc152605110'><span
!   style='mso-fareast-font-family:"Times New Roman"'>(OpenAFS Client):</span></span></span><span
!   style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=listcontents style='margin-left:0pt'>[HKLM\SOFTWARE\OpenAFS\Client]</p>
    </td>
   </tr>
  </table>
  
! <h5><a name="_Toc154229432"></a><a name="_Toc152605111"></a><a
  name="_Toc115416169"></a><a name="_Toc139993161"></a><a name="_Toc126872238"></a><span
! style='mso-bookmark:_Toc154229432'><span style='mso-bookmark:_Toc152605111'><span
  style='mso-bookmark:_Toc115416169'>7.2.1.2.1 Registry Properties</span></span></span></h5>
  
! <p class=MsoNormal>These properties are used to set the values of registry
! entries associated with OpenAFS for Windows.</p>
  
  <table class=MsoNormalTable border=1 cellspacing=3 cellpadding=0
   style='mso-cellspacing:2.2pt;mso-padding-alt:0pt 0pt 0pt 0pt'>
   <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt'>
!   <h6><a name="_Toc154229433"></a><a name="_Toc152605112"></a><a
!   name="_Toc115416170"></a><a name="_Toc126872239"></a><a name="_Toc139993162"></a><span
!   style='mso-bookmark:_Toc154229433'><span style='mso-bookmark:_Toc152605112'><span
    style='mso-bookmark:_Toc115416170'><span style='mso-fareast-font-family:"Times New Roman"'>AFSCACHEPATH</span></span></span></span><span
    style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h6>
    <p class=MsoList>Registry key&nbsp;&nbsp;&nbsp; : <a
***************
*** 2837,2845 ****
   </tr>
   <tr style='mso-yfti-irow:1'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt'>
!   <h6><a name="_Toc152606284"></a><a name="_Toc152605113"></a><a
!   name="_Toc115416171"></a><a name="_Toc139993163"></a><a name="_Toc126872240"></a><span
!   style='mso-bookmark:_Toc152606284'><span style='mso-bookmark:_Toc152605113'><span
    style='mso-bookmark:_Toc115416171'><span style='mso-fareast-font-family:"Times New Roman"'>AFSCACHESIZE</span></span></span></span><span
    style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h6>
    <p class=MsoList>Registry key&nbsp;&nbsp;&nbsp; : <a
--- 2865,2873 ----
   </tr>
   <tr style='mso-yfti-irow:1'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt'>
!   <h6><a name="_Toc154229434"></a><a name="_Toc152605113"></a><a
!   name="_Toc115416171"></a><a name="_Toc126872240"></a><a name="_Toc139993163"></a><span
!   style='mso-bookmark:_Toc154229434'><span style='mso-bookmark:_Toc152605113'><span
    style='mso-bookmark:_Toc115416171'><span style='mso-fareast-font-family:"Times New Roman"'>AFSCACHESIZE</span></span></span></span><span
    style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h6>
    <p class=MsoList>Registry key&nbsp;&nbsp;&nbsp; : <a
***************
*** 2850,2858 ****
   </tr>
   <tr style='mso-yfti-irow:2'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt'>
!   <h6><a name="_Toc152606285"></a><a name="_Toc152605114"></a><a
!   name="_Toc115416172"></a><a name="_Toc139993164"></a><a name="_Toc126872241"></a><span
!   style='mso-bookmark:_Toc152606285'><span style='mso-bookmark:_Toc152605114'><span
    style='mso-bookmark:_Toc115416172'><span style='mso-fareast-font-family:"Times New Roman"'>AFSCELLNAME</span></span></span></span><span
    style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h6>
    <p class=MsoList>Registry key&nbsp;&nbsp;&nbsp; : <a
--- 2878,2886 ----
   </tr>
   <tr style='mso-yfti-irow:2'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt'>
!   <h6><a name="_Toc154229435"></a><a name="_Toc152605114"></a><a
!   name="_Toc115416172"></a><a name="_Toc126872241"></a><a name="_Toc139993164"></a><span
!   style='mso-bookmark:_Toc154229435'><span style='mso-bookmark:_Toc152605114'><span
    style='mso-bookmark:_Toc115416172'><span style='mso-fareast-font-family:"Times New Roman"'>AFSCELLNAME</span></span></span></span><span
    style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h6>
    <p class=MsoList>Registry key&nbsp;&nbsp;&nbsp; : <a
***************
*** 2863,2871 ****
   </tr>
   <tr style='mso-yfti-irow:3'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt'>
!   <h6><a name="_Toc152606286"></a><a name="_Toc152605115"></a><a
!   name="_Toc115416173"></a><a name="_Toc139993165"></a><a name="_Toc126872242"></a><span
!   style='mso-bookmark:_Toc152606286'><span style='mso-bookmark:_Toc152605115'><span
    style='mso-bookmark:_Toc115416173'><span style='mso-fareast-font-family:"Times New Roman"'>FREELANCEMODE</span></span></span></span><span
    style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h6>
    <p class=MsoList>Registry key&nbsp;&nbsp;&nbsp; : <a
--- 2891,2899 ----
   </tr>
   <tr style='mso-yfti-irow:3'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt'>
!   <h6><a name="_Toc154229436"></a><a name="_Toc152605115"></a><a
!   name="_Toc115416173"></a><a name="_Toc126872242"></a><a name="_Toc139993165"></a><span
!   style='mso-bookmark:_Toc154229436'><span style='mso-bookmark:_Toc152605115'><span
    style='mso-bookmark:_Toc115416173'><span style='mso-fareast-font-family:"Times New Roman"'>FREELANCEMODE</span></span></span></span><span
    style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h6>
    <p class=MsoList>Registry key&nbsp;&nbsp;&nbsp; : <a
***************
*** 2876,2884 ****
   </tr>
   <tr style='mso-yfti-irow:4'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt'>
!   <h6><a name="_Toc152606287"></a><a name="_Toc152605116"></a><a
!   name="_Toc115416174"></a><a name="_Toc139993166"></a><a name="_Toc126872243"></a><span
!   style='mso-bookmark:_Toc152606287'><span style='mso-bookmark:_Toc152605116'><span
    style='mso-bookmark:_Toc115416174'><span style='mso-fareast-font-family:"Times New Roman"'>HIDEDOTFILES</span></span></span></span><span
    style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h6>
    <p class=MsoList>Registry key&nbsp;&nbsp;&nbsp; : <a
--- 2904,2912 ----
   </tr>
   <tr style='mso-yfti-irow:4'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt'>
!   <h6><a name="_Toc154229437"></a><a name="_Toc152605116"></a><a
!   name="_Toc115416174"></a><a name="_Toc126872243"></a><a name="_Toc139993166"></a><span
!   style='mso-bookmark:_Toc154229437'><span style='mso-bookmark:_Toc152605116'><span
    style='mso-bookmark:_Toc115416174'><span style='mso-fareast-font-family:"Times New Roman"'>HIDEDOTFILES</span></span></span></span><span
    style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h6>
    <p class=MsoList>Registry key&nbsp;&nbsp;&nbsp; : <a
***************
*** 2889,2897 ****
   </tr>
   <tr style='mso-yfti-irow:5'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt'>
!   <h6><a name="_Toc152606288"></a><a name="_Toc152605117"></a><a
!   name="_Toc115416175"></a><a name="_Toc139993167"></a><a name="_Toc126872244"></a><span
!   style='mso-bookmark:_Toc152606288'><span style='mso-bookmark:_Toc152605117'><span
    style='mso-bookmark:_Toc115416175'><span style='mso-fareast-font-family:"Times New Roman"'>LOGONOPTIONS</span></span></span></span><span
    style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h6>
    <p class=MsoList>Registry key&nbsp;&nbsp;&nbsp; : <a
--- 2917,2925 ----
   </tr>
   <tr style='mso-yfti-irow:5'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt'>
!   <h6><a name="_Toc154229438"></a><a name="_Toc152605117"></a><a
!   name="_Toc115416175"></a><a name="_Toc126872244"></a><a name="_Toc139993167"></a><span
!   style='mso-bookmark:_Toc154229438'><span style='mso-bookmark:_Toc152605117'><span
    style='mso-bookmark:_Toc115416175'><span style='mso-fareast-font-family:"Times New Roman"'>LOGONOPTIONS</span></span></span></span><span
    style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h6>
    <p class=MsoList>Registry key&nbsp;&nbsp;&nbsp; : <a
***************
*** 2905,2913 ****
   </tr>
   <tr style='mso-yfti-irow:6'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt'>
!   <h6><a name="_Toc152606289"></a><a name="_Toc152605118"></a><a
!   name="_Toc115416176"></a><a name="_Toc139993168"></a><a name="_Toc126872245"></a><span
!   style='mso-bookmark:_Toc152606289'><span style='mso-bookmark:_Toc152605118'><span
    style='mso-bookmark:_Toc115416176'><span style='mso-fareast-font-family:"Times New Roman"'>MOUNTROOT</span></span></span></span><span
    style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h6>
    <p class=MsoList>Registry key&nbsp;&nbsp;&nbsp; : <a
--- 2933,2941 ----
   </tr>
   <tr style='mso-yfti-irow:6'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt'>
!   <h6><a name="_Toc154229439"></a><a name="_Toc152605118"></a><a
!   name="_Toc115416176"></a><a name="_Toc126872245"></a><a name="_Toc139993168"></a><span
!   style='mso-bookmark:_Toc154229439'><span style='mso-bookmark:_Toc152605118'><span
    style='mso-bookmark:_Toc115416176'><span style='mso-fareast-font-family:"Times New Roman"'>MOUNTROOT</span></span></span></span><span
    style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h6>
    <p class=MsoList>Registry key&nbsp;&nbsp;&nbsp; : <a
***************
*** 2918,2926 ****
   </tr>
   <tr style='mso-yfti-irow:7'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt'>
!   <h6><a name="_Toc152606290"></a><a name="_Toc152605119"></a><a
!   name="_Toc115416177"></a><a name="_Toc139993169"></a><a name="_Toc126872246"></a><span
!   style='mso-bookmark:_Toc152606290'><span style='mso-bookmark:_Toc152605119'><span
    style='mso-bookmark:_Toc115416177'><span style='mso-fareast-font-family:"Times New Roman"'>NETBIOSNAME</span></span></span></span><span
    style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h6>
    <p class=MsoList>Registry key&nbsp;&nbsp;&nbsp; : <a
--- 2946,2954 ----
   </tr>
   <tr style='mso-yfti-irow:7'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt'>
!   <h6><a name="_Toc154229440"></a><a name="_Toc152605119"></a><a
!   name="_Toc115416177"></a><a name="_Toc126872246"></a><a name="_Toc139993169"></a><span
!   style='mso-bookmark:_Toc154229440'><span style='mso-bookmark:_Toc152605119'><span
    style='mso-bookmark:_Toc115416177'><span style='mso-fareast-font-family:"Times New Roman"'>NETBIOSNAME</span></span></span></span><span
    style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h6>
    <p class=MsoList>Registry key&nbsp;&nbsp;&nbsp; : <a
***************
*** 2932,2940 ****
   </tr>
   <tr style='mso-yfti-irow:8'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt'>
!   <h6><a name="_Toc152606291"></a><a name="_Toc152605120"></a><a
!   name="_Toc115416178"></a><a name="_Toc139993170"></a><a name="_Toc126872247"></a><span
!   style='mso-bookmark:_Toc152606291'><span style='mso-bookmark:_Toc152605120'><span
    style='mso-bookmark:_Toc115416178'><span style='mso-fareast-font-family:"Times New Roman"'>NOFINDLANABYNAME</span></span></span></span><span
    style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h6>
    <p class=MsoList>Registry key&nbsp;&nbsp;&nbsp; : <a
--- 2960,2968 ----
   </tr>
   <tr style='mso-yfti-irow:8'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt'>
!   <h6><a name="_Toc154229441"></a><a name="_Toc152605120"></a><a
!   name="_Toc115416178"></a><a name="_Toc126872247"></a><a name="_Toc139993170"></a><span
!   style='mso-bookmark:_Toc154229441'><span style='mso-bookmark:_Toc152605120'><span
    style='mso-bookmark:_Toc115416178'><span style='mso-fareast-font-family:"Times New Roman"'>NOFINDLANABYNAME</span></span></span></span><span
    style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h6>
    <p class=MsoList>Registry key&nbsp;&nbsp;&nbsp; : <a
***************
*** 2945,2953 ****
   </tr>
   <tr style='mso-yfti-irow:9'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt'>
!   <h6><a name="_Toc152606292"></a><a name="_Toc152605121"></a><a
!   name="_Toc115416179"></a><a name="_Toc139993171"></a><a name="_Toc126872248"></a><span
!   style='mso-bookmark:_Toc152606292'><span style='mso-bookmark:_Toc152605121'><span
    style='mso-bookmark:_Toc115416179'><span style='mso-fareast-font-family:"Times New Roman"'>RXMAXMTU</span></span></span></span><span
    style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h6>
    <p class=MsoList>Registry key&nbsp;&nbsp;&nbsp; : <a
--- 2973,2981 ----
   </tr>
   <tr style='mso-yfti-irow:9'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt'>
!   <h6><a name="_Toc154229442"></a><a name="_Toc152605121"></a><a
!   name="_Toc115416179"></a><a name="_Toc126872248"></a><a name="_Toc139993171"></a><span
!   style='mso-bookmark:_Toc154229442'><span style='mso-bookmark:_Toc152605121'><span
    style='mso-bookmark:_Toc115416179'><span style='mso-fareast-font-family:"Times New Roman"'>RXMAXMTU</span></span></span></span><span
    style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h6>
    <p class=MsoList>Registry key&nbsp;&nbsp;&nbsp; : <a
***************
*** 2958,2966 ****
   </tr>
   <tr style='mso-yfti-irow:10'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt'>
!   <h6><a name="_Toc152606293"></a><a name="_Toc152605122"></a><a
!   name="_Toc115416180"></a><a name="_Toc139993172"></a><a name="_Toc126872249"></a><span
!   style='mso-bookmark:_Toc152606293'><span style='mso-bookmark:_Toc152605122'><span
    style='mso-bookmark:_Toc115416180'><span style='mso-fareast-font-family:"Times New Roman"'>SECURITYLEVEL</span></span></span></span><span
    style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h6>
    <p class=MsoList>Registry key&nbsp;&nbsp;&nbsp; : <a
--- 2986,2994 ----
   </tr>
   <tr style='mso-yfti-irow:10'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt'>
!   <h6><a name="_Toc154229443"></a><a name="_Toc152605122"></a><a
!   name="_Toc115416180"></a><a name="_Toc126872249"></a><a name="_Toc139993172"></a><span
!   style='mso-bookmark:_Toc154229443'><span style='mso-bookmark:_Toc152605122'><span
    style='mso-bookmark:_Toc115416180'><span style='mso-fareast-font-family:"Times New Roman"'>SECURITYLEVEL</span></span></span></span><span
    style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h6>
    <p class=MsoList>Registry key&nbsp;&nbsp;&nbsp; : <a
***************
*** 2971,2979 ****
   </tr>
   <tr style='mso-yfti-irow:11'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt'>
!   <h6><a name="_Toc152606294"></a><a name="_Toc152605123"></a><a
!   name="_Toc115416181"></a><a name="_Toc139993173"></a><a name="_Toc126872250"></a><span
!   style='mso-bookmark:_Toc152606294'><span style='mso-bookmark:_Toc152605123'><span
    style='mso-bookmark:_Toc115416181'><span style='mso-fareast-font-family:"Times New Roman"'>SMBAUTHTYPE</span></span></span></span><span
    style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h6>
    <p class=MsoList>Registry key&nbsp;&nbsp;&nbsp; : <a
--- 2999,3007 ----
   </tr>
   <tr style='mso-yfti-irow:11'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt'>
!   <h6><a name="_Toc154229444"></a><a name="_Toc152605123"></a><a
!   name="_Toc115416181"></a><a name="_Toc126872250"></a><a name="_Toc139993173"></a><span
!   style='mso-bookmark:_Toc154229444'><span style='mso-bookmark:_Toc152605123'><span
    style='mso-bookmark:_Toc115416181'><span style='mso-fareast-font-family:"Times New Roman"'>SMBAUTHTYPE</span></span></span></span><span
    style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h6>
    <p class=MsoList>Registry key&nbsp;&nbsp;&nbsp; : <a
***************
*** 2984,2992 ****
   </tr>
   <tr style='mso-yfti-irow:12'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt'>
!   <h6><a name="_Toc152606295"></a><a name="_Toc152605124"></a><a
!   name="_Toc115416182"></a><a name="_Toc139993174"></a><a name="_Toc126872251"></a><span
!   style='mso-bookmark:_Toc152606295'><span style='mso-bookmark:_Toc152605124'><span
    style='mso-bookmark:_Toc115416182'><span style='mso-fareast-font-family:"Times New Roman"'>STOREANSIFILENAMES</span></span></span></span><span
    style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h6>
    <p class=MsoList>Registry key&nbsp;&nbsp;&nbsp; : <a
--- 3012,3020 ----
   </tr>
   <tr style='mso-yfti-irow:12'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt'>
!   <h6><a name="_Toc154229445"></a><a name="_Toc152605124"></a><a
!   name="_Toc115416182"></a><a name="_Toc126872251"></a><a name="_Toc139993174"></a><span
!   style='mso-bookmark:_Toc154229445'><span style='mso-bookmark:_Toc152605124'><span
    style='mso-bookmark:_Toc115416182'><span style='mso-fareast-font-family:"Times New Roman"'>STOREANSIFILENAMES</span></span></span></span><span
    style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h6>
    <p class=MsoList>Registry key&nbsp;&nbsp;&nbsp; : <a
***************
*** 2997,3005 ****
   </tr>
   <tr style='mso-yfti-irow:13;mso-yfti-lastrow:yes'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt'>
!   <h6><a name="_Toc152606296"></a><a name="_Toc152605125"></a><a
!   name="_Toc115416183"></a><a name="_Toc139993175"></a><a name="_Toc126872252"></a><span
!   style='mso-bookmark:_Toc152606296'><span style='mso-bookmark:_Toc152605125'><span
    style='mso-bookmark:_Toc115416183'><span style='mso-fareast-font-family:"Times New Roman"'>USEDNS</span></span></span></span><span
    style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h6>
    <p class=MsoList>Registry key&nbsp;&nbsp;&nbsp; : <a
--- 3025,3033 ----
   </tr>
   <tr style='mso-yfti-irow:13;mso-yfti-lastrow:yes'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt'>
!   <h6><a name="_Toc154229446"></a><a name="_Toc152605125"></a><a
!   name="_Toc115416183"></a><a name="_Toc126872252"></a><a name="_Toc139993175"></a><span
!   style='mso-bookmark:_Toc154229446'><span style='mso-bookmark:_Toc152605125'><span
    style='mso-bookmark:_Toc115416183'><span style='mso-fareast-font-family:"Times New Roman"'>USEDNS</span></span></span></span><span
    style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h6>
    <p class=MsoList>Registry key&nbsp;&nbsp;&nbsp; : <a
***************
*** 3010,3049 ****
   </tr>
  </table>
  
! <h5><a name="_Toc152606297"></a><a name="_Toc152605126"></a><a
  name="_Toc139993176"></a><a name="_Toc126872253"></a><a name="_Toc115416184"></a><a
! name="_7.2.1.2.2_AFSCreds.exe_Properties"></a><span style='mso-bookmark:_Toc152606297'><span
  style='mso-bookmark:_Toc152605126'>7.2.1.2.2 AFSCreds.exe Properties</span></span></h5>
  
  <p class=MsoNormal>These properties are combined to add a command line option
! to the shortcut that will be created in the Start:Programs:OpenAFS and Start:Programs:Startup
! folders (see CREDSSTARTUP). &nbsp;The method of specifying the option was
! chosen for easy integration with the Windows Installer user interface.&nbsp;
! Although other methods can be used to specify options to AFSCREDS.EXE, it is
! advised that they be avoided as transforms including such options may not apply
! to future releases of OpenAFS.</p>
  
  <table class=MsoNormalTable border=1 cellspacing=3 cellpadding=0
   style='mso-cellspacing:2.2pt;mso-padding-alt:0pt 0pt 0pt 0pt'>
   <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt'>
!   <h6><a name="_Toc152606298"></a><a name="_Toc152605127"></a><a
!   name="_Toc115416185"></a><a name="_Toc139993177"></a><a name="_Toc126872254"></a><span
!   style='mso-bookmark:_Toc152606298'><span style='mso-bookmark:_Toc152605127'><span
    style='mso-bookmark:_Toc115416185'><span style='mso-fareast-font-family:"Times New Roman"'>CREDSSTARTUP</span></span></span></span><span
    style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h6>
    <p class=MsoList>Valid values&nbsp;&nbsp;&nbsp; : '1' or '0'</p>
    <p class=MsoList>Controls whether AFSCreds.exe starts up automatically when
    the user logs on.&nbsp; When CREDSSTARTUP is '1' a shortcut is added to the
!   'Startup' folder in the 'Program menu' which starts AFSCREDS.EXE with the
!   options that are determined by the other CREDS* properties.</p>
    </td>
   </tr>
   <tr style='mso-yfti-irow:1'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt'>
!   <h6><a name="_Toc152606299"></a><a name="_Toc152605128"></a><a
!   name="_Toc115416186"></a><a name="_Toc139993178"></a><a name="_Toc126872255"></a><span
!   style='mso-bookmark:_Toc152606299'><span style='mso-bookmark:_Toc152605128'><span
    style='mso-bookmark:_Toc115416186'><span style='mso-fareast-font-family:"Times New Roman"'>CREDSAUTOINIT</span></span></span></span><span
    style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h6>
    <p class=MsoList>Valid values&nbsp;&nbsp;&nbsp; : '-a' or ''</p>
--- 3038,3077 ----
   </tr>
  </table>
  
! <h5><a name="_Toc154229447"></a><a name="_Toc152605126"></a><a
  name="_Toc139993176"></a><a name="_Toc126872253"></a><a name="_Toc115416184"></a><a
! name="_7.2.1.2.2_AFSCreds.exe_Properties"></a><span style='mso-bookmark:_Toc154229447'><span
  style='mso-bookmark:_Toc152605126'>7.2.1.2.2 AFSCreds.exe Properties</span></span></h5>
  
  <p class=MsoNormal>These properties are combined to add a command line option
! to the shortcut that will be created in the Start:Programs:OpenAFS and
! Start:Programs:Startup folders (see CREDSSTARTUP). &nbsp;The method of
! specifying the option was chosen for easy integration with the Windows
! Installer user interface.&nbsp; Although other methods can be used to specify
! options to AFSCREDS.EXE, it is advised that they be avoided as transforms
! including such options may not apply to future releases of OpenAFS.</p>
  
  <table class=MsoNormalTable border=1 cellspacing=3 cellpadding=0
   style='mso-cellspacing:2.2pt;mso-padding-alt:0pt 0pt 0pt 0pt'>
   <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt'>
!   <h6><a name="_Toc154229448"></a><a name="_Toc152605127"></a><a
!   name="_Toc115416185"></a><a name="_Toc126872254"></a><a name="_Toc139993177"></a><span
!   style='mso-bookmark:_Toc154229448'><span style='mso-bookmark:_Toc152605127'><span
    style='mso-bookmark:_Toc115416185'><span style='mso-fareast-font-family:"Times New Roman"'>CREDSSTARTUP</span></span></span></span><span
    style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h6>
    <p class=MsoList>Valid values&nbsp;&nbsp;&nbsp; : '1' or '0'</p>
    <p class=MsoList>Controls whether AFSCreds.exe starts up automatically when
    the user logs on.&nbsp; When CREDSSTARTUP is '1' a shortcut is added to the
!   'Startup' folder in the 'Program menu' which starts AFSCREDS.EXE with the options
!   that are determined by the other CREDS* properties.</p>
    </td>
   </tr>
   <tr style='mso-yfti-irow:1'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt'>
!   <h6><a name="_Toc154229449"></a><a name="_Toc152605128"></a><a
!   name="_Toc115416186"></a><a name="_Toc126872255"></a><a name="_Toc139993178"></a><span
!   style='mso-bookmark:_Toc154229449'><span style='mso-bookmark:_Toc152605128'><span
    style='mso-bookmark:_Toc115416186'><span style='mso-fareast-font-family:"Times New Roman"'>CREDSAUTOINIT</span></span></span></span><span
    style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h6>
    <p class=MsoList>Valid values&nbsp;&nbsp;&nbsp; : '-a' or ''</p>
***************
*** 3052,3060 ****
   </tr>
   <tr style='mso-yfti-irow:2'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt'>
!   <h6><a name="_Toc152606300"></a><a name="_Toc152605129"></a><a
!   name="_Toc115416187"></a><a name="_Toc139993179"></a><a name="_Toc126872256"></a><span
!   style='mso-bookmark:_Toc152606300'><span style='mso-bookmark:_Toc152605129'><span
    style='mso-bookmark:_Toc115416187'><span style='mso-fareast-font-family:"Times New Roman"'>CREDSIPCHDET</span></span></span></span><span
    style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h6>
    <p class=MsoList>Valid values&nbsp;&nbsp;&nbsp; : '-n' or ''</p>
--- 3080,3088 ----
   </tr>
   <tr style='mso-yfti-irow:2'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt'>
!   <h6><a name="_Toc154229450"></a><a name="_Toc152605129"></a><a
!   name="_Toc115416187"></a><a name="_Toc126872256"></a><a name="_Toc139993179"></a><span
!   style='mso-bookmark:_Toc154229450'><span style='mso-bookmark:_Toc152605129'><span
    style='mso-bookmark:_Toc115416187'><span style='mso-fareast-font-family:"Times New Roman"'>CREDSIPCHDET</span></span></span></span><span
    style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h6>
    <p class=MsoList>Valid values&nbsp;&nbsp;&nbsp; : '-n' or ''</p>
***************
*** 3063,3071 ****
   </tr>
   <tr style='mso-yfti-irow:3'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt'>
!   <h6><a name="_Toc152606301"></a><a name="_Toc152605130"></a><a
!   name="_Toc115416188"></a><a name="_Toc139993180"></a><a name="_Toc126872257"></a><span
!   style='mso-bookmark:_Toc152606301'><span style='mso-bookmark:_Toc152605130'><span
    style='mso-bookmark:_Toc115416188'><span style='mso-fareast-font-family:"Times New Roman"'>CREDSQUIET</span></span></span></span><span
    style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h6>
    <p class=MsoList>Valid values&nbsp;&nbsp;&nbsp; : '-q' or ''</p>
--- 3091,3099 ----
   </tr>
   <tr style='mso-yfti-irow:3'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt'>
!   <h6><a name="_Toc154229451"></a><a name="_Toc152605130"></a><a
!   name="_Toc115416188"></a><a name="_Toc126872257"></a><a name="_Toc139993180"></a><span
!   style='mso-bookmark:_Toc154229451'><span style='mso-bookmark:_Toc152605130'><span
    style='mso-bookmark:_Toc115416188'><span style='mso-fareast-font-family:"Times New Roman"'>CREDSQUIET</span></span></span></span><span
    style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h6>
    <p class=MsoList>Valid values&nbsp;&nbsp;&nbsp; : '-q' or ''</p>
***************
*** 3074,3082 ****
   </tr>
   <tr style='mso-yfti-irow:4'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt'>
!   <h6><a name="_Toc152606302"></a><a name="_Toc152605131"></a><a
!   name="_Toc115416189"></a><a name="_Toc139993181"></a><a name="_Toc126872258"></a><span
!   style='mso-bookmark:_Toc152606302'><span style='mso-bookmark:_Toc152605131'><span
    style='mso-bookmark:_Toc115416189'><span style='mso-fareast-font-family:"Times New Roman"'>CREDSRENEWDRMAP</span></span></span></span><span
    style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h6>
    <p class=MsoList>Valid values&nbsp;&nbsp;&nbsp; : '-m' or '’</p>
--- 3102,3110 ----
   </tr>
   <tr style='mso-yfti-irow:4'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt'>
!   <h6><a name="_Toc154229452"></a><a name="_Toc152605131"></a><a
!   name="_Toc115416189"></a><a name="_Toc126872258"></a><a name="_Toc139993181"></a><span
!   style='mso-bookmark:_Toc154229452'><span style='mso-bookmark:_Toc152605131'><span
    style='mso-bookmark:_Toc115416189'><span style='mso-fareast-font-family:"Times New Roman"'>CREDSRENEWDRMAP</span></span></span></span><span
    style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h6>
    <p class=MsoList>Valid values&nbsp;&nbsp;&nbsp; : '-m' or '’</p>
***************
*** 3085,3093 ****
   </tr>
   <tr style='mso-yfti-irow:5;mso-yfti-lastrow:yes'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt'>
!   <h6><a name="_Toc152606303"></a><a name="_Toc152605132"></a><a
!   name="_Toc115416190"></a><a name="_Toc139993182"></a><a name="_Toc126872259"></a><span
!   style='mso-bookmark:_Toc152606303'><span style='mso-bookmark:_Toc152605132'><span
    style='mso-bookmark:_Toc115416190'><span style='mso-fareast-font-family:"Times New Roman"'>CREDSSHOW</span></span></span></span><span
    style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h6>
    <p class=MsoList>Valid values&nbsp;&nbsp;&nbsp; : '-s' or ''</p>
--- 3113,3121 ----
   </tr>
   <tr style='mso-yfti-irow:5;mso-yfti-lastrow:yes'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt'>
!   <h6><a name="_Toc154229453"></a><a name="_Toc152605132"></a><a
!   name="_Toc115416190"></a><a name="_Toc126872259"></a><a name="_Toc139993182"></a><span
!   style='mso-bookmark:_Toc154229453'><span style='mso-bookmark:_Toc152605132'><span
    style='mso-bookmark:_Toc115416190'><span style='mso-fareast-font-family:"Times New Roman"'>CREDSSHOW</span></span></span></span><span
    style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h6>
    <p class=MsoList>Valid values&nbsp;&nbsp;&nbsp; : '-s' or ''</p>
***************
*** 3097,3105 ****
   </tr>
  </table>
  
! <h3><a name="_Toc152606304"></a><a name="_Toc152605133"></a><a
  name="_Toc115416191"></a><a name="_Toc139993183"></a><a name="_Toc126872260"></a><span
! style='mso-bookmark:_Toc152606304'><span style='mso-bookmark:_Toc152605133'><span
  style='mso-bookmark:_Toc115416191'>7.2.2 Existing Registry Entries</span></span></span></h3>
  
  <p class=MsoNormal>You can change existing registry values subject to the
--- 3125,3133 ----
   </tr>
  </table>
  
! <h3><a name="_Toc154229454"></a><a name="_Toc152605133"></a><a
  name="_Toc115416191"></a><a name="_Toc139993183"></a><a name="_Toc126872260"></a><span
! style='mso-bookmark:_Toc154229454'><span style='mso-bookmark:_Toc152605133'><span
  style='mso-bookmark:_Toc115416191'>7.2.2 Existing Registry Entries</span></span></span></h3>
  
  <p class=MsoNormal>You can change existing registry values subject to the
***************
*** 3108,3116 ****
  'Registry' table.&nbsp; If you want to add additional registry keys please
  refer to section 3 (Additional resources).</p>
  
! <h3><a name="_Toc152606305"></a><a name="_Toc152605134"></a><a
  name="_Toc115416192"></a><a name="_Toc139993184"></a><a name="_Toc126872261"></a><span
! style='mso-bookmark:_Toc152606305'><span style='mso-bookmark:_Toc152605134'><span
  style='mso-bookmark:_Toc115416192'>7.2.3 Replacing Configuration Files</span></span></span></h3>
  
  <p class=MsoNormal>The OpenAFS configuration files (CellServDB) can be replaced
--- 3136,3144 ----
  'Registry' table.&nbsp; If you want to add additional registry keys please
  refer to section 3 (Additional resources).</p>
  
! <h3><a name="_Toc154229455"></a><a name="_Toc152605134"></a><a
  name="_Toc115416192"></a><a name="_Toc139993184"></a><a name="_Toc126872261"></a><span
! style='mso-bookmark:_Toc154229455'><span style='mso-bookmark:_Toc152605134'><span
  style='mso-bookmark:_Toc115416192'>7.2.3 Replacing Configuration Files</span></span></span></h3>
  
  <p class=MsoNormal>The OpenAFS configuration files (CellServDB) can be replaced
***************
*** 3153,3161 ****
  
  <p class=MsoNormal style='margin-top:4.3pt;margin-right:0pt;margin-bottom:4.3pt;
  margin-left:39.6pt;text-indent:-21.6pt'>1.4.<span style='font-size:7.0pt;
! font-family:"Times New Roman"'>&nbsp;&nbsp; </span>Enter a condition that evaluates
! to false. I.e. 'DONOTINSTALL'. (Note that an undefined property always
! evaluates to false).</p>
  
  <p class=MsoNormal>Note that you can also use this step to disable other
  configuration files without providing replacements.</p>
--- 3181,3189 ----
  
  <p class=MsoNormal style='margin-top:4.3pt;margin-right:0pt;margin-bottom:4.3pt;
  margin-left:39.6pt;text-indent:-21.6pt'>1.4.<span style='font-size:7.0pt;
! font-family:"Times New Roman"'>&nbsp;&nbsp; </span>Enter a condition that
! evaluates to false. I.e. 'DONOTINSTALL'. (Note that an undefined property
! always evaluates to false).</p>
  
  <p class=MsoNormal>Note that you can also use this step to disable other
  configuration files without providing replacements.</p>
***************
*** 3250,3260 ****
  both of which are included in the Platform SDK.</p>
  
  <p class=MsoNormal style='margin-left:35.45pt'>The Attributes value of 144 is a
! sum of msidbComponentAttributesPermanent (16) and
! msidbComponentAttributesNeverOverwrite (128).&nbsp; This ensures that local
! modifications are not overwritten or lost during an installation or
! uninstallation.&nbsp; These are the same settings used on the default
! configuration files.</p>
  
  <p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  'fil_my_CellServDB' is a key into the 'File' table which we will fill later.</p>
--- 3278,3287 ----
  both of which are included in the Platform SDK.</p>
  
  <p class=MsoNormal style='margin-left:35.45pt'>The Attributes value of 144 is a
! sum of msidbComponentAttributesPermanent (16) and msidbComponentAttributesNeverOverwrite
! (128).&nbsp; This ensures that local modifications are not overwritten or lost
! during an installation or uninstallation.&nbsp; These are the same settings
! used on the default configuration files.</p>
  
  <p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  'fil_my_CellServDB' is a key into the 'File' table which we will fill later.</p>
***************
*** 3362,3375 ****
   </tr>
  </table>
  
! <p class=MsoNormal style='margin-left:35.45pt'>It is important to create the new
! feature under the 'feaClient' feature, which will ensure that the configuration
! file will be installed when the client binaries are installed.</p>
  
  <p class=MsoNormal style='margin-left:35.45pt'>Setting 'Display' to 0 will hide
! this feature from the feature selection dialog during an interactive installation.&nbsp;
! A value of 30 for 'Level' allows this feature to be installed by default (on a
! 'Typical' installation).</p>
  
  <p class=MsoNormal style='margin-left:35.45pt'>The 'Attributes' value is
  msidbFeatureAttributesDisallowAdvertise (8), which is set on all features in
--- 3389,3402 ----
   </tr>
  </table>
  
! <p class=MsoNormal style='margin-left:35.45pt'>It is important to create the
! new feature under the 'feaClient' feature, which will ensure that the
! configuration file will be installed when the client binaries are installed.</p>
  
  <p class=MsoNormal style='margin-left:35.45pt'>Setting 'Display' to 0 will hide
! this feature from the feature selection dialog during an interactive
! installation.&nbsp; A value of 30 for 'Level' allows this feature to be
! installed by default (on a 'Typical' installation).</p>
  
  <p class=MsoNormal style='margin-left:35.45pt'>The 'Attributes' value is
  msidbFeatureAttributesDisallowAdvertise (8), which is set on all features in
***************
*** 3500,3507 ****
  <p class=MsoNormal style='margin-left:35.45pt'>The 'Attributes' value is
  msidbFileAttributesNonCompressed (8192).&nbsp; This is because we will be
  placing this file in the same directory as the MSI instead of embedding the
! file in it.&nbsp; Transforms do not support updating compressed sources or
! adding new cabinet streams.</p>
  
  <p class=MsoNormal style='margin-left:35.45pt'>Finally, the 'Sequence' value of
  1000 will be used later to distinguish the file as being in a separate source
--- 3527,3534 ----
  <p class=MsoNormal style='margin-left:35.45pt'>The 'Attributes' value is
  msidbFileAttributesNonCompressed (8192).&nbsp; This is because we will be
  placing this file in the same directory as the MSI instead of embedding the
! file in it.&nbsp; Transforms do not support updating compressed sources or adding
! new cabinet streams.</p>
  
  <p class=MsoNormal style='margin-left:35.45pt'>Finally, the 'Sequence' value of
  1000 will be used later to distinguish the file as being in a separate source
***************
*** 3547,3566 ****
  <p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  &nbsp;&nbsp;&nbsp; (leave other fields blank)</p>
  
! <p class=MsoNormal style='margin-left:35.45pt'>The sequence number of 1000 designates
! this as the media source for the newly added file.</p>
  
! <h4><a name="_Toc152606306"></a><a name="_Toc152605135"></a><a
  name="_Toc139993185"></a><a name="_Toc126872262"></a><a name="_Toc115416193"></a><a
! name="_2.3.1_Components_for_Configuration_"></a><span style='mso-bookmark:_Toc152606306'><span
  style='mso-bookmark:_Toc152605135'>7.2.3.1 Components for Configuration Files</span></span></h4>
  
  <p class=preformattedtext style='text-indent:35.45pt'>CellServDB:
  'cpf_CellServDB' (ID {D5BA4C15-DBEC-4292-91FC-B54C30F24F2A})</p>
  
! <h3><a name="_Toc152606307"></a><a name="_Toc152605136"></a><a
  name="_Toc115416194"></a><a name="_Toc139993186"></a><a name="_Toc126872263"></a><span
! style='mso-bookmark:_Toc152606307'><span style='mso-bookmark:_Toc152605136'><span
  style='mso-bookmark:_Toc115416194'>7.2.4 Adding Domain Specific Registry Keys</span></span></span></h3>
  
  <p class=MsoNormal>Following is an example for adding domain specific registry
--- 3574,3593 ----
  <p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  &nbsp;&nbsp;&nbsp; (leave other fields blank)</p>
  
! <p class=MsoNormal style='margin-left:35.45pt'>The sequence number of 1000
! designates this as the media source for the newly added file.</p>
  
! <h4><a name="_Toc154229456"></a><a name="_Toc152605135"></a><a
  name="_Toc139993185"></a><a name="_Toc126872262"></a><a name="_Toc115416193"></a><a
! name="_2.3.1_Components_for_Configuration_"></a><span style='mso-bookmark:_Toc154229456'><span
  style='mso-bookmark:_Toc152605135'>7.2.3.1 Components for Configuration Files</span></span></h4>
  
  <p class=preformattedtext style='text-indent:35.45pt'>CellServDB:
  'cpf_CellServDB' (ID {D5BA4C15-DBEC-4292-91FC-B54C30F24F2A})</p>
  
! <h3><a name="_Toc154229457"></a><a name="_Toc152605136"></a><a
  name="_Toc115416194"></a><a name="_Toc139993186"></a><a name="_Toc126872263"></a><span
! style='mso-bookmark:_Toc154229457'><span style='mso-bookmark:_Toc152605136'><span
  style='mso-bookmark:_Toc115416194'>7.2.4 Adding Domain Specific Registry Keys</span></span></span></h3>
  
  <p class=MsoNormal>Following is an example for adding domain specific registry
***************
*** 3573,3580 ****
  <p class=MsoNormal>&nbsp;&nbsp;&nbsp; Columns that are unspecified should be
  left empty.</p>
  
! <p class=MsoNormal>&nbsp;&nbsp;&nbsp; We create a new feature and component to hold
! the new registry keys.</p>
  
  <table class=MsoNormalTable border=1 cellspacing=3 cellpadding=0
   style='mso-cellspacing:2.2pt;mso-padding-alt:0pt 0pt 0pt 0pt'>
--- 3600,3607 ----
  <p class=MsoNormal>&nbsp;&nbsp;&nbsp; Columns that are unspecified should be
  left empty.</p>
  
! <p class=MsoNormal>&nbsp;&nbsp;&nbsp; We create a new feature and component to
! hold the new registry keys.</p>
  
  <table class=MsoNormalTable border=1 cellspacing=3 cellpadding=0
   style='mso-cellspacing:2.2pt;mso-padding-alt:0pt 0pt 0pt 0pt'>
***************
*** 3588,3595 ****
    <p class=MsoNormal>&nbsp;&nbsp;&nbsp;
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (new row)<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
!   Feature&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :
!   'feaDomainKeys'<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Feature
    Parent : 'feaClient'<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
--- 3615,3621 ----
    <p class=MsoNormal>&nbsp;&nbsp;&nbsp;
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (new row)<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
!   Feature&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : 'feaDomainKeys'<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Feature
    Parent : 'feaClient'<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
***************
*** 3597,3604 ****
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    Level&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    : 30<br>
!   &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Attributes&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
!   : 10</p>
    </td>
   </tr>
   <tr style='mso-yfti-irow:2'>
--- 3623,3630 ----
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    Level&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    : 30<br>
!   &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
!   Attributes&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : 10</p>
    </td>
   </tr>
   <tr style='mso-yfti-irow:2'>
***************
*** 3715,3721 ****
    : 2<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    Key&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
!   : 'SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider\Domain\ATHENA.MIT.EDU'<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    : 'LogonOptions'<br>
--- 3741,3748 ----
    : 2<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    Key&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
!   :
!   'SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider\Domain\ATHENA.MIT.EDU'<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    : 'LogonOptions'<br>
***************
*** 3730,3744 ****
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt'>
    <p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    (new row)<br>
!   &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Registry&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
!   : 'reg_domkey4'<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    Root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    : 2<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    Key&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
!   :
!   SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider\Domain\LOCALHOST'<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    : '*'<br>
--- 3757,3771 ----
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt'>
    <p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    (new row)<br>
!   &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
!   Registry&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :
!   'reg_domkey4'<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    Root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    : 2<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    Key&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
!   : SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider\Domain\LOCALHOST'<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    : '*'<br>
***************
*** 3760,3766 ****
    Key&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    :
    'SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider\Domain\LOCALHOST'<br>
!   &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    : 'LogonOptions'<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    Value&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
--- 3787,3794 ----
    Key&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    :
    'SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider\Domain\LOCALHOST'<br>
!   &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
!   Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    : 'LogonOptions'<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    Value&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
***************
*** 3781,3787 ****
    : 2<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    Key&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
!   : 'SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider\Domain\LOCALHOST'<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    : 'FailLoginsSilently'<br>
--- 3809,3816 ----
    : 2<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    Key&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
!   :
!   'SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider\Domain\LOCALHOST'<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    : 'FailLoginsSilently'<br>
***************
*** 3800,3808 ****
  (enable integrated logon) and 'LOCALHOST' (disable integrated logon and fail
  logins silently).</p>
  
! <h3><a name="_Toc152606308"></a><a name="_Toc152605137"></a><a
  name="_Toc115416195"></a><a name="_Toc139993187"></a><a name="_Toc126872264"></a><span
! style='mso-bookmark:_Toc152606308'><span style='mso-bookmark:_Toc152605137'><span
  style='mso-bookmark:_Toc115416195'>7.2.5 Adding Site Specific Freelance
  Registry Keys</span></span></span></h3>
  
--- 3829,3837 ----
  (enable integrated logon) and 'LOCALHOST' (disable integrated logon and fail
  logins silently).</p>
  
! <h3><a name="_Toc154229458"></a><a name="_Toc152605137"></a><a
  name="_Toc115416195"></a><a name="_Toc139993187"></a><a name="_Toc126872264"></a><span
! style='mso-bookmark:_Toc154229458'><span style='mso-bookmark:_Toc152605137'><span
  style='mso-bookmark:_Toc115416195'>7.2.5 Adding Site Specific Freelance
  Registry Keys</span></span></span></h3>
  
***************
*** 3825,3832 ****
   </tr>
   <tr style='mso-yfti-irow:1'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt'>
!   <p class=MsoNormal>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
!   (new row)<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    Feature&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :
    'feaFreelanceKeys'<br>
--- 3854,3861 ----
   </tr>
   <tr style='mso-yfti-irow:1'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt'>
!   <p class=MsoNormal>&nbsp;&nbsp;&nbsp;
!   &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (new row)<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    Feature&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :
    'feaFreelanceKeys'<br>
***************
*** 3991,3999 ****
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt'>
    <p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    (new row)<br>
!   &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
!   Registry&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :
!   'reg_freekey5'<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    Root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    : 2<br>
--- 4020,4027 ----
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt'>
    <p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    (new row)<br>
!   &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Registry&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
!   : 'reg_freekey5'<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    Root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    : 2<br>
***************
*** 4006,4013 ****
    &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    Value&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    &nbsp;&nbsp; : '.athena:.athena.mit.edu.'<br>
!   &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
!   Component&nbsp;&nbsp;&nbsp;&nbsp; : 'rcm_FreelanceKeys'</p>
    </td>
   </tr>
  </table>
--- 4034,4041 ----
    &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    Value&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    &nbsp;&nbsp; : '.athena:.athena.mit.edu.'<br>
!   &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Component&nbsp;&nbsp;&nbsp;&nbsp;
!   : 'rcm_FreelanceKeys'</p>
    </td>
   </tr>
  </table>
***************
*** 4016,4025 ****
  athena.mit.edu cell's root.afs volume as well as a read-write mountpoint.&nbsp;
  Aliases are also provided using symlinks.</p>
  
! <h2><a name="_Toc152606309"></a><a name="_Toc152605138"></a><a
  name="_Ref115275867"></a><a name="_Toc139993188"></a><a name="_Toc126872265"></a><a
  name="_Toc115417101"></a><a name="_Toc115416196"></a><span style='mso-bookmark:
! _Toc152606309'><span style='mso-bookmark:_Toc152605138'><span style='mso-bookmark:
  _Ref115275867'>7.3 Additional Resources</span></span></span></h2>
  
  <p class=MsoNormal>If you want to add registry keys or files you need to create
--- 4044,4053 ----
  athena.mit.edu cell's root.afs volume as well as a read-write mountpoint.&nbsp;
  Aliases are also provided using symlinks.</p>
  
! <h2><a name="_Toc154229459"></a><a name="_Toc152605138"></a><a
  name="_Ref115275867"></a><a name="_Toc139993188"></a><a name="_Toc126872265"></a><a
  name="_Toc115417101"></a><a name="_Toc115416196"></a><span style='mso-bookmark:
! _Toc154229459'><span style='mso-bookmark:_Toc152605138'><span style='mso-bookmark:
  _Ref115275867'>7.3 Additional Resources</span></span></span></h2>
  
  <p class=MsoNormal>If you want to add registry keys or files you need to create
***************
*** 4062,4070 ****
  <p class=MsoNormal>See the Platform SDK documentation for information on
  command line options for MSITRAN.EXE.</p>
  
! <h2><a name="_Toc152606310"></a><a name="_Toc152605139"></a><a
  name="_Toc115416197"></a><a name="_Toc139993189"></a><a name="_Toc126872266"></a><a
! name="_Toc115417102"></a><span style='mso-bookmark:_Toc152606310'><span
  style='mso-bookmark:_Toc152605139'><span style='mso-bookmark:_Toc115416197'>7.4.
  Upgrades</span></span></span></h2>
  
--- 4090,4098 ----
  <p class=MsoNormal>See the Platform SDK documentation for information on
  command line options for MSITRAN.EXE.</p>
  
! <h2><a name="_Toc154229460"></a><a name="_Toc152605139"></a><a
  name="_Toc115416197"></a><a name="_Toc139993189"></a><a name="_Toc126872266"></a><a
! name="_Toc115417102"></a><span style='mso-bookmark:_Toc154229460'><span
  style='mso-bookmark:_Toc152605139'><span style='mso-bookmark:_Toc115416197'>7.4.
  Upgrades</span></span></span></h2>
  
***************
*** 4097,4104 ****
  <p class=MsoNormal>Note that versions of the OpenAFS NSIS package prior to
  1.3.65 had a bug where it couldn't be uninstalled properly in unattended
  mode.&nbsp; Therefore the MSI package will not try to uninstall an OpenAFS NSIS
! package if running unattended.&nbsp; This means that group policy based
! deployments will fail on machines that have the OpenAFS NSIS package installed.</p>
  
  <p class=MsoNormal>If you have used a different MSI package to install OpenAFS
  and wish to upgrade it you can author rows into the 'Upgrade' table as
--- 4125,4132 ----
  <p class=MsoNormal>Note that versions of the OpenAFS NSIS package prior to
  1.3.65 had a bug where it couldn't be uninstalled properly in unattended
  mode.&nbsp; Therefore the MSI package will not try to uninstall an OpenAFS NSIS
! package if running unattended.&nbsp; This means that group policy based deployments
! will fail on machines that have the OpenAFS NSIS package installed.</p>
  
  <p class=MsoNormal>If you have used a different MSI package to install OpenAFS
  and wish to upgrade it you can author rows into the 'Upgrade' table as
***************
*** 4107,4130 ****
  <p class=MsoNormal>When performing an upgrade with msiexec.exe execute the MSI
  with the repair options &quot;vomus&quot;.</p>
  
! <h1><a name="_Toc152606311"></a><a name="_Toc152605140"></a><a
  name="_Toc139993190"></a><a name="_Toc126872267"></a><a name="_Toc115417116"></a><a
  name="_Toc115417103"></a><a name="_Toc115416198"></a><a
! name="_Appendix_A:_Registry_Values"></a><span style='mso-bookmark:_Toc152606311'><span
  style='mso-bookmark:_Toc152605140'>Appendix A: Registry Values</span></span></h1>
  
! <h2><a name="_Toc152606312"></a><a name="_Toc152605141"></a><a
  name="_Toc115416199"></a><a name="_Toc139993191"></a><a name="_Toc126872268"></a><a
! name="_Toc115417104"></a><span style='mso-bookmark:_Toc152606312'><span
  style='mso-bookmark:_Toc152605141'><span style='mso-bookmark:_Toc115416199'>A.1.
  Service parameters</span></span></span></h2>
  
  <p class=MsoBodyText>The service parameters primarily affect the behavior of
  the AFS client service (afsd_service.exe).</p>
  
! <h3><a name="_Toc152606313"></a><a name="_Toc152605142"></a><a
  name="_Toc115416200"></a><a name="_Toc139993192"></a><a name="_Toc126872269"></a><span
! style='mso-bookmark:_Toc152606313'><span style='mso-bookmark:_Toc152605142'><span
  style='mso-bookmark:_Toc115416200'>Regkey:<br>
  [HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters]</span></span></span></h3>
  
--- 4135,4158 ----
  <p class=MsoNormal>When performing an upgrade with msiexec.exe execute the MSI
  with the repair options &quot;vomus&quot;.</p>
  
! <h1><a name="_Toc154229461"></a><a name="_Toc152605140"></a><a
  name="_Toc139993190"></a><a name="_Toc126872267"></a><a name="_Toc115417116"></a><a
  name="_Toc115417103"></a><a name="_Toc115416198"></a><a
! name="_Appendix_A:_Registry_Values"></a><span style='mso-bookmark:_Toc154229461'><span
  style='mso-bookmark:_Toc152605140'>Appendix A: Registry Values</span></span></h1>
  
! <h2><a name="_Toc154229462"></a><a name="_Toc152605141"></a><a
  name="_Toc115416199"></a><a name="_Toc139993191"></a><a name="_Toc126872268"></a><a
! name="_Toc115417104"></a><span style='mso-bookmark:_Toc154229462'><span
  style='mso-bookmark:_Toc152605141'><span style='mso-bookmark:_Toc115416199'>A.1.
  Service parameters</span></span></span></h2>
  
  <p class=MsoBodyText>The service parameters primarily affect the behavior of
  the AFS client service (afsd_service.exe).</p>
  
! <h3><a name="_Toc154229463"></a><a name="_Toc152605142"></a><a
  name="_Toc115416200"></a><a name="_Toc139993192"></a><a name="_Toc126872269"></a><span
! style='mso-bookmark:_Toc154229463'><span style='mso-bookmark:_Toc152605142'><span
  style='mso-bookmark:_Toc115416200'>Regkey:<br>
  [HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters]</span></span></span></h3>
  
***************
*** 4133,4141 ****
   <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes;height:145.25pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:145.25pt'>
!   <h5><a name="_Toc152606314"></a><a name="_Toc152605143"></a><a
!   name="_Toc115416201"></a><a name="_Toc139993193"></a><a name="_Toc126872270"></a><span
!   style='mso-bookmark:_Toc152606314'><span style='mso-bookmark:_Toc152605143'><span
    style='mso-bookmark:_Toc115416201'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    LANadapter</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
--- 4161,4169 ----
   <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes;height:145.25pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:145.25pt'>
!   <h5><a name="_Toc154229464"></a><a name="_Toc152605143"></a><a
!   name="_Toc115416201"></a><a name="_Toc126872270"></a><a name="_Toc139993193"></a><span
!   style='mso-bookmark:_Toc154229464'><span style='mso-bookmark:_Toc152605143'><span
    style='mso-bookmark:_Toc115416201'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    LANadapter</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
***************
*** 4154,4164 ****
   <tr style='mso-yfti-irow:1;height:79.25pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:79.25pt'>
!   <h5><a name="_Toc152606315"></a><a name="_Toc152605144"></a><a
!   name="_Toc139993194"></a><a name="_Toc126872271"></a><a name="_Toc115416202"></a><a
!   name="_Value___:_CacheSize"></a><span style='mso-bookmark:_Toc152606315'><span
!   style='mso-bookmark:_Toc152605144'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
!   CacheSize</span></span></span><span style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: DWORD<br>
    Default: 98304 (CM_CONFIGDEFAULT_CACHESIZE)<br>
    Variable: cm_initParams.cacheSize</p>
--- 4182,4193 ----
   <tr style='mso-yfti-irow:1;height:79.25pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:79.25pt'>
!   <h5><a name="_Toc154229465"></a><a name="_Toc152605144"></a><a
!   name="_Value___:_CacheSize"></a><a name="_Toc115416202"></a><a
!   name="_Toc126872271"></a><a name="_Toc139993194"></a><span style='mso-bookmark:
!   _Toc154229465'><span style='mso-bookmark:_Toc152605144'><span
!   style='mso-fareast-font-family:"Times New Roman"'>Value: CacheSize</span></span></span><span
!   style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: DWORD<br>
    Default: 98304 (CM_CONFIGDEFAULT_CACHESIZE)<br>
    Variable: cm_initParams.cacheSize</p>
***************
*** 4168,4176 ****
   <tr style='mso-yfti-irow:2;height:79.25pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:79.25pt'>
!   <h5><a name="_Toc152606316"></a><a name="_Toc152605145"></a><a
!   name="_Toc115416203"></a><a name="_Toc139993195"></a><a name="_Toc126872272"></a><span
!   style='mso-bookmark:_Toc152606316'><span style='mso-bookmark:_Toc152605145'><span
    style='mso-bookmark:_Toc115416203'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    ChunkSize</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
--- 4197,4205 ----
   <tr style='mso-yfti-irow:2;height:79.25pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:79.25pt'>
!   <h5><a name="_Toc154229466"></a><a name="_Toc152605145"></a><a
!   name="_Toc115416203"></a><a name="_Toc126872272"></a><a name="_Toc139993195"></a><span
!   style='mso-bookmark:_Toc154229466'><span style='mso-bookmark:_Toc152605145'><span
    style='mso-bookmark:_Toc115416203'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    ChunkSize</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
***************
*** 4184,4192 ****
   <tr style='mso-yfti-irow:3;height:92.0pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:92.0pt'>
!   <h5><a name="_Toc152606317"></a><a name="_Toc152605146"></a><a
!   name="_Toc115416204"></a><a name="_Toc139993196"></a><a name="_Toc126872273"></a><span
!   style='mso-bookmark:_Toc152606317'><span style='mso-bookmark:_Toc152605146'><span
    style='mso-bookmark:_Toc115416204'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    Daemons</span></span></span></span><span style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: DWORD<br>
--- 4213,4221 ----
   <tr style='mso-yfti-irow:3;height:92.0pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:92.0pt'>
!   <h5><a name="_Toc154229467"></a><a name="_Toc152605146"></a><a
!   name="_Toc115416204"></a><a name="_Toc126872273"></a><a name="_Toc139993196"></a><span
!   style='mso-bookmark:_Toc154229467'><span style='mso-bookmark:_Toc152605146'><span
    style='mso-bookmark:_Toc115416204'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    Daemons</span></span></span></span><span style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: DWORD<br>
***************
*** 4199,4207 ****
   <tr style='mso-yfti-irow:4;height:92.0pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:92.0pt'>
!   <h5><a name="_Toc152606318"></a><a name="_Toc152605147"></a><a
!   name="_Toc115416205"></a><a name="_Toc139993197"></a><a name="_Toc126872274"></a><span
!   style='mso-bookmark:_Toc152606318'><span style='mso-bookmark:_Toc152605147'><span
    style='mso-bookmark:_Toc115416205'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    ServerThreads</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
--- 4228,4236 ----
   <tr style='mso-yfti-irow:4;height:92.0pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:92.0pt'>
!   <h5><a name="_Toc154229468"></a><a name="_Toc152605147"></a><a
!   name="_Toc115416205"></a><a name="_Toc126872274"></a><a name="_Toc139993197"></a><span
!   style='mso-bookmark:_Toc154229468'><span style='mso-bookmark:_Toc152605147'><span
    style='mso-bookmark:_Toc115416205'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    ServerThreads</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
***************
*** 4215,4223 ****
   <tr style='mso-yfti-irow:5;height:79.25pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:79.25pt'>
!   <h5><a name="_Toc152606319"></a><a name="_Toc152605148"></a><a
!   name="_Toc115416206"></a><a name="_Value:_Stats"></a><a name="_Toc139993198"></a><a
!   name="_Toc126872275"></a><span style='mso-bookmark:_Toc152606319'><span
    style='mso-bookmark:_Toc152605148'><span style='mso-bookmark:_Toc115416206'><span
    style='mso-fareast-font-family:"Times New Roman"'>Value: Stats</span></span></span></span><span
    style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
--- 4244,4252 ----
   <tr style='mso-yfti-irow:5;height:79.25pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:79.25pt'>
!   <h5><a name="_Toc154229469"></a><a name="_Toc152605148"></a><a
!   name="_Toc115416206"></a><a name="_Toc126872275"></a><a name="_Toc139993198"></a><a
!   name="_Value:_Stats"></a><span style='mso-bookmark:_Toc154229469'><span
    style='mso-bookmark:_Toc152605148'><span style='mso-bookmark:_Toc115416206'><span
    style='mso-fareast-font-family:"Times New Roman"'>Value: Stats</span></span></span></span><span
    style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
***************
*** 4230,4241 ****
   <tr style='mso-yfti-irow:6;height:78.5pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:78.5pt'>
!   <h5><a name="_Toc152606320"></a><a name="_Toc152605149"></a><a
!   name="_Toc139993199"></a><a name="_Toc126872276"></a><a name="_Toc115416207"></a><a
!   name="_Value_:_LogoffPreserveTokens"></a><span style='mso-bookmark:_Toc152606320'><span
!   style='mso-bookmark:_Toc152605149'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
!   LogoffPreserveTokens</span></span></span><span style='mso-fareast-font-family:
!   "Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: DWORD {1,0}<br>
    Default : 0</p>
    <p class=MsoBodyText>If enabled (set to 1), the Logoff Event handler will not
--- 4259,4270 ----
   <tr style='mso-yfti-irow:6;height:78.5pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:78.5pt'>
!   <h5><a name="_Toc154229470"></a><a name="_Toc152605149"></a><a
!   name="_Value_:_LogoffPreserveTokens"></a><a name="_Toc115416207"></a><a
!   name="_Toc126872276"></a><a name="_Toc139993199"></a><span style='mso-bookmark:
!   _Toc154229470'><span style='mso-bookmark:_Toc152605149'><span
!   style='mso-fareast-font-family:"Times New Roman"'>Value: LogoffPreserveTokens</span></span></span><span
!   style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: DWORD {1,0}<br>
    Default : 0</p>
    <p class=MsoBodyText>If enabled (set to 1), the Logoff Event handler will not
***************
*** 4246,4254 ****
   <tr style='mso-yfti-irow:7;height:79.25pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:79.25pt'>
!   <h5><a name="_Toc152606321"></a><a name="_Toc152605150"></a><a
!   name="_Toc115416208"></a><a name="_Toc139993200"></a><a name="_Toc126872277"></a><span
!   style='mso-bookmark:_Toc152606321'><span style='mso-bookmark:_Toc152605150'><span
    style='mso-bookmark:_Toc115416208'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    RootVolume</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
--- 4275,4283 ----
   <tr style='mso-yfti-irow:7;height:79.25pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:79.25pt'>
!   <h5><a name="_Toc154229471"></a><a name="_Toc152605150"></a><a
!   name="_Toc115416208"></a><a name="_Toc126872277"></a><a name="_Toc139993200"></a><span
!   style='mso-bookmark:_Toc154229471'><span style='mso-bookmark:_Toc152605150'><span
    style='mso-bookmark:_Toc115416208'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    RootVolume</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
***************
*** 4261,4271 ****
   <tr style='mso-yfti-irow:8;height:145.25pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:145.25pt'>
!   <h5><a name="_Toc152606322"></a><a name="_Toc152605151"></a><a
!   name="_Toc139993201"></a><a name="_Toc126872278"></a><a name="_Toc115416209"></a><a
!   name="_Value_:_Mountroot"></a><span style='mso-bookmark:_Toc152606322'><span
!   style='mso-bookmark:_Toc152605151'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
!   MountRoot</span></span></span><span style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: REG_SZ<br>
    Default: &quot;/afs&quot;<br>
    Variable: cm_mountRoot</p>
--- 4290,4301 ----
   <tr style='mso-yfti-irow:8;height:145.25pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:145.25pt'>
!   <h5><a name="_Toc154229472"></a><a name="_Toc152605151"></a><a
!   name="_Value_:_Mountroot"></a><a name="_Toc115416209"></a><a
!   name="_Toc126872278"></a><a name="_Toc139993201"></a><span style='mso-bookmark:
!   _Toc154229472'><span style='mso-bookmark:_Toc152605151'><span
!   style='mso-fareast-font-family:"Times New Roman"'>Value: MountRoot</span></span></span><span
!   style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: REG_SZ<br>
    Default: &quot;/afs&quot;<br>
    Variable: cm_mountRoot</p>
***************
*** 4282,4292 ****
   <tr style='mso-yfti-irow:9;height:92.0pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:92.0pt'>
!   <h5><a name="_Toc152606323"></a><a name="_Toc152605152"></a><a
!   name="_Toc139993202"></a><a name="_Toc126872279"></a><a name="_Toc115416210"></a><a
!   name="_Value_:_CachePath"></a><span style='mso-bookmark:_Toc152606323'><span
!   style='mso-bookmark:_Toc152605152'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
!   CachePath</span></span></span><span style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: REG_SZ or REG_EXPAND_SZ<br>
    Default: &quot;%TEMP%\AFSCache&quot;<br>
    Variable: cm_CachePath</p>
--- 4312,4323 ----
   <tr style='mso-yfti-irow:9;height:92.0pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:92.0pt'>
!   <h5><a name="_Toc154229473"></a><a name="_Toc152605152"></a><a
!   name="_Value_:_CachePath"></a><a name="_Toc115416210"></a><a
!   name="_Toc126872279"></a><a name="_Toc139993202"></a><span style='mso-bookmark:
!   _Toc154229473'><span style='mso-bookmark:_Toc152605152'><span
!   style='mso-fareast-font-family:"Times New Roman"'>Value: CachePath</span></span></span><span
!   style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: REG_SZ or REG_EXPAND_SZ<br>
    Default: &quot;%TEMP%\AFSCache&quot;<br>
    Variable: cm_CachePath</p>
***************
*** 4298,4306 ****
   <tr style='mso-yfti-irow:10;height:119.0pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:119.0pt'>
!   <h5><a name="_Toc152606324"></a><a name="_Toc152605153"></a><a
!   name="_Toc115416211"></a><a name="_Toc139993203"></a><a name="_Toc126872280"></a><span
!   style='mso-bookmark:_Toc152606324'><span style='mso-bookmark:_Toc152605153'><span
    style='mso-bookmark:_Toc115416211'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    NonPersistentCaching</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
--- 4329,4337 ----
   <tr style='mso-yfti-irow:10;height:119.0pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:119.0pt'>
!   <h5><a name="_Toc154229474"></a><a name="_Toc152605153"></a><a
!   name="_Toc115416211"></a><a name="_Toc126872280"></a><a name="_Toc139993203"></a><span
!   style='mso-bookmark:_Toc154229474'><span style='mso-bookmark:_Toc152605153'><span
    style='mso-bookmark:_Toc115416211'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    NonPersistentCaching</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
***************
*** 4317,4325 ****
   <tr style='mso-yfti-irow:11;height:125.5pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:125.5pt'>
!   <h5><a name="_Toc152606325"></a><a name="_Toc152605154"></a><a
!   name="_Toc115416212"></a><a name="_Toc139993204"></a><a name="_Toc126872281"></a><span
!   style='mso-bookmark:_Toc152606325'><span style='mso-bookmark:_Toc152605154'><span
    style='mso-bookmark:_Toc115416212'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    ValidateCache</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
--- 4348,4356 ----
   <tr style='mso-yfti-irow:11;height:125.5pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:125.5pt'>
!   <h5><a name="_Toc154229475"></a><a name="_Toc152605154"></a><a
!   name="_Toc115416212"></a><a name="_Toc126872281"></a><a name="_Toc139993204"></a><span
!   style='mso-bookmark:_Toc154229475'><span style='mso-bookmark:_Toc152605154'><span
    style='mso-bookmark:_Toc115416212'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    ValidateCache</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
***************
*** 4336,4344 ****
   <tr style='mso-yfti-irow:12;height:79.25pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:79.25pt'>
!   <h5><a name="_Toc152606326"></a><a name="_Toc152605155"></a><a
!   name="_Toc115416213"></a><a name="_Toc139993205"></a><a name="_Toc126872282"></a><span
!   style='mso-bookmark:_Toc152606326'><span style='mso-bookmark:_Toc152605155'><span
    style='mso-bookmark:_Toc115416213'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    TrapOnPanic</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
--- 4367,4375 ----
   <tr style='mso-yfti-irow:12;height:79.25pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:79.25pt'>
!   <h5><a name="_Toc154229476"></a><a name="_Toc152605155"></a><a
!   name="_Toc115416213"></a><a name="_Toc126872282"></a><a name="_Toc139993205"></a><span
!   style='mso-bookmark:_Toc154229476'><span style='mso-bookmark:_Toc152605155'><span
    style='mso-bookmark:_Toc115416213'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    TrapOnPanic</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
***************
*** 4352,4362 ****
   <tr style='mso-yfti-irow:13;height:92.0pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:92.0pt'>
!   <h5><a name="_Toc152606327"></a><a name="_Toc152605156"></a><a
!   name="_Toc139993206"></a><a name="_Toc126872283"></a><a name="_Toc115416214"></a><a
!   name="_Value___:_NetbiosName"></a><span style='mso-bookmark:_Toc152606327'><span
!   style='mso-bookmark:_Toc152605156'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
!   NetbiosName</span></span></span><span style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: REG_EXPAND_SZ<br>
    Default: &quot;AFS&quot;<br>
    Variable: cm_NetbiosName</p>
--- 4383,4394 ----
   <tr style='mso-yfti-irow:13;height:92.0pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:92.0pt'>
!   <h5><a name="_Toc154229477"></a><a name="_Toc152605156"></a><a
!   name="_Value___:_NetbiosName"></a><a name="_Toc115416214"></a><a
!   name="_Toc126872283"></a><a name="_Toc139993206"></a><span style='mso-bookmark:
!   _Toc154229477'><span style='mso-bookmark:_Toc152605156'><span
!   style='mso-fareast-font-family:"Times New Roman"'>Value: NetbiosName</span></span></span><span
!   style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: REG_EXPAND_SZ<br>
    Default: &quot;AFS&quot;<br>
    Variable: cm_NetbiosName</p>
***************
*** 4368,4376 ****
   <tr style='mso-yfti-irow:14;height:152.0pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:152.0pt'>
!   <h5><a name="_Toc152606328"></a><a name="_Toc152605157"></a><a
!   name="_Toc115416215"></a><a name="_Toc139993207"></a><a name="_Toc126872284"></a><span
!   style='mso-bookmark:_Toc152606328'><span style='mso-bookmark:_Toc152605157'><span
    style='mso-bookmark:_Toc115416215'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    IsGateway</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
--- 4400,4408 ----
   <tr style='mso-yfti-irow:14;height:152.0pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:152.0pt'>
!   <h5><a name="_Toc154229478"></a><a name="_Toc152605157"></a><a
!   name="_Toc115416215"></a><a name="_Toc126872284"></a><a name="_Toc139993207"></a><span
!   style='mso-bookmark:_Toc154229478'><span style='mso-bookmark:_Toc152605157'><span
    style='mso-bookmark:_Toc115416215'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    IsGateway</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
***************
*** 4390,4398 ****
   <tr style='mso-yfti-irow:15;height:92.0pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:92.0pt'>
!   <h5><a name="_Toc152606329"></a><a name="_Toc152605158"></a><a
!   name="_Toc115416216"></a><a name="_Toc139993208"></a><a name="_Toc126872285"></a><span
!   style='mso-bookmark:_Toc152606329'><span style='mso-bookmark:_Toc152605158'><span
    style='mso-bookmark:_Toc115416216'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    ReportSessionStartups</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
--- 4422,4430 ----
   <tr style='mso-yfti-irow:15;height:92.0pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:92.0pt'>
!   <h5><a name="_Toc154229479"></a><a name="_Toc152605158"></a><a
!   name="_Toc115416216"></a><a name="_Toc126872285"></a><a name="_Toc139993208"></a><span
!   style='mso-bookmark:_Toc154229479'><span style='mso-bookmark:_Toc152605158'><span
    style='mso-bookmark:_Toc115416216'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    ReportSessionStartups</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
***************
*** 4407,4418 ****
   <tr style='mso-yfti-irow:16;height:79.25pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:79.25pt'>
!   <h5><a name="_Toc152606330"></a><a name="_Toc152605159"></a><a
!   name="_Toc139993209"></a><a name="_Toc126872286"></a><a name="_Toc115416217"></a><a
!   name="_Value_:_TraceBufferSize"></a><span style='mso-bookmark:_Toc152606330'><span
!   style='mso-bookmark:_Toc152605159'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
!   TraceBufferSize</span></span></span><span style='mso-fareast-font-family:
!   "Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: DWORD<br>
    Default: 5000 (CM_CONFIGDEFAULT_TRACEBUFSIZE)<br>
    Variable: traceBufSize</p>
--- 4439,4450 ----
   <tr style='mso-yfti-irow:16;height:79.25pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:79.25pt'>
!   <h5><a name="_Toc154229480"></a><a name="_Toc152605159"></a><a
!   name="_Value_:_TraceBufferSize"></a><a name="_Toc115416217"></a><a
!   name="_Toc126872286"></a><a name="_Toc139993209"></a><span style='mso-bookmark:
!   _Toc154229480'><span style='mso-bookmark:_Toc152605159'><span
!   style='mso-fareast-font-family:"Times New Roman"'>Value: TraceBufferSize</span></span></span><span
!   style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: DWORD<br>
    Default: 5000 (CM_CONFIGDEFAULT_TRACEBUFSIZE)<br>
    Variable: traceBufSize</p>
***************
*** 4422,4432 ****
   <tr style='mso-yfti-irow:17;height:92.0pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:92.0pt'>
!   <h5><a name="_Toc152606331"></a><a name="_Toc152605160"></a><a
!   name="_Toc139993210"></a><a name="_Toc126872287"></a><a name="_Toc115416218"></a><a
!   name="_Value_:_SysName"></a><span style='mso-bookmark:_Toc152606331'><span
!   style='mso-bookmark:_Toc152605160'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
!   SysName</span></span></span><span style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: REG_SZ<br>
    Default: &quot;x86_win32 i386_w2k i386_nt40&quot; (X86) <br>
    “amd64_win64 x86_win32 i386_w2k” (AMD64)<br>
--- 4454,4465 ----
   <tr style='mso-yfti-irow:17;height:92.0pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:92.0pt'>
!   <h5><a name="_Toc154229481"></a><a name="_Toc152605160"></a><a
!   name="_Value_:_SysName"></a><a name="_Toc115416218"></a><a
!   name="_Toc126872287"></a><a name="_Toc139993210"></a><span style='mso-bookmark:
!   _Toc154229481'><span style='mso-bookmark:_Toc152605160'><span
!   style='mso-fareast-font-family:"Times New Roman"'>Value: SysName</span></span></span><span
!   style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: REG_SZ<br>
    Default: &quot;x86_win32 i386_w2k i386_nt40&quot; (X86) <br>
    “amd64_win64 x86_win32 i386_w2k” (AMD64)<br>
***************
*** 4439,4449 ****
   <tr style='mso-yfti-irow:18;height:79.25pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:79.25pt'>
!   <h5><a name="_Toc152606332"></a><a name="_Toc152605161"></a><a
!   name="_Toc139993211"></a><a name="_Toc126872288"></a><a name="_Toc115416219"></a><a
!   name="_Value_:_SecurityLevel"></a><span style='mso-bookmark:_Toc152606332'><span
!   style='mso-bookmark:_Toc152605161'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
!   SecurityLevel</span></span></span><span style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: DWORD {1,0}<br>
    Default: 0<br>
    Variable: cryptall</p>
--- 4472,4483 ----
   <tr style='mso-yfti-irow:18;height:79.25pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:79.25pt'>
!   <h5><a name="_Toc154229482"></a><a name="_Toc152605161"></a><a
!   name="_Value_:_SecurityLevel"></a><a name="_Toc115416219"></a><a
!   name="_Toc126872288"></a><a name="_Toc139993211"></a><span style='mso-bookmark:
!   _Toc154229482'><span style='mso-bookmark:_Toc152605161'><span
!   style='mso-fareast-font-family:"Times New Roman"'>Value: SecurityLevel</span></span></span><span
!   style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: DWORD {1,0}<br>
    Default: 0<br>
    Variable: cryptall</p>
***************
*** 4453,4461 ****
   <tr style='mso-yfti-irow:19;height:112.25pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:112.25pt'>
!   <h5><a name="_Toc152606333"></a><a name="_Toc152605162"></a><a
!   name="_Toc139993212"></a><a name="_Toc126872289"></a><a name="_Toc115416220"></a><a
!   name="_Value_:_UseDNS"></a><span style='mso-bookmark:_Toc152606333'><span
    style='mso-bookmark:_Toc152605162'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    UseDNS</span></span></span><span style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: DWORD {1,0}<br>
--- 4487,4495 ----
   <tr style='mso-yfti-irow:19;height:112.25pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:112.25pt'>
!   <h5><a name="_Toc154229483"></a><a name="_Toc152605162"></a><a
!   name="_Value_:_UseDNS"></a><a name="_Toc115416220"></a><a name="_Toc126872289"></a><a
!   name="_Toc139993212"></a><span style='mso-bookmark:_Toc154229483'><span
    style='mso-bookmark:_Toc152605162'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    UseDNS</span></span></span><span style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: DWORD {1,0}<br>
***************
*** 4463,4480 ****
    Variable: cm_dnsEnabled</p>
    <p class=MsoBodyText>Enables resolving volservers using AFSDB DNS queries.</p>
    <p class=MsoBodyText>As of 1.3.60, this value is ignored as the DNS query
!   support utilizes the Win32 DNSQuery API which is available on Win2000 and above.</p>
    </td>
   </tr>
   <tr style='mso-yfti-irow:20;height:79.25pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:79.25pt'>
!   <h5><a name="_Toc152606334"></a><a name="_Toc152605163"></a><a
!   name="_Toc139993213"></a><a name="_Toc126872290"></a><a name="_Toc115416221"></a><a
!   name="_Value_:_FreelanceClient"></a><span style='mso-bookmark:_Toc152606334'><span
!   style='mso-bookmark:_Toc152605163'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
!   FreelanceClient</span></span></span><span style='mso-fareast-font-family:
!   "Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: DWORD {1,0}<br>
    Default: 0<br>
    Variable: cm_freelanceEnabled</p>
--- 4497,4515 ----
    Variable: cm_dnsEnabled</p>
    <p class=MsoBodyText>Enables resolving volservers using AFSDB DNS queries.</p>
    <p class=MsoBodyText>As of 1.3.60, this value is ignored as the DNS query
!   support utilizes the Win32 DNSQuery API which is available on Win2000 and
!   above.</p>
    </td>
   </tr>
   <tr style='mso-yfti-irow:20;height:79.25pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:79.25pt'>
!   <h5><a name="_Toc154229484"></a><a name="_Toc152605163"></a><a
!   name="_Value_:_FreelanceClient"></a><a name="_Toc115416221"></a><a
!   name="_Toc126872290"></a><a name="_Toc139993213"></a><span style='mso-bookmark:
!   _Toc154229484'><span style='mso-bookmark:_Toc152605163'><span
!   style='mso-fareast-font-family:"Times New Roman"'>Value: FreelanceClient</span></span></span><span
!   style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: DWORD {1,0}<br>
    Default: 0<br>
    Variable: cm_freelanceEnabled</p>
***************
*** 4484,4493 ****
   <tr style='mso-yfti-irow:21;height:92.0pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:92.0pt'>
!   <h5><a name="_Toc152606335"></a><a name="_Toc152605164"></a><a
!   name="_Value:_HideDotFiles"></a><a name="_Toc139993214"></a><a
!   name="_Toc126872291"></a><a name="_Toc115416222"></a><a
!   name="_Value_:_HideDotFiles"></a><span style='mso-bookmark:_Toc152606335'><span
    style='mso-bookmark:_Toc152605164'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    HideDotFiles</span></span></span><span style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: DWORD {1,0}<br>
--- 4519,4528 ----
   <tr style='mso-yfti-irow:21;height:92.0pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:92.0pt'>
!   <h5><a name="_Toc154229485"></a><a name="_Toc152605164"></a><a
!   name="_Value_:_HideDotFiles"></a><a name="_Toc115416222"></a><a
!   name="_Toc126872291"></a><a name="_Toc139993214"></a><a
!   name="_Value:_HideDotFiles"></a><span style='mso-bookmark:_Toc154229485'><span
    style='mso-bookmark:_Toc152605164'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    HideDotFiles</span></span></span><span style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: DWORD {1,0}<br>
***************
*** 4501,4509 ****
   <tr style='mso-yfti-irow:22;height:79.25pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:79.25pt'>
!   <h5><a name="_Toc152606336"></a><a name="_Toc152605165"></a><a
!   name="_Toc115416223"></a><a name="_Toc139993215"></a><a name="_Toc126872292"></a><span
!   style='mso-bookmark:_Toc152606336'><span style='mso-bookmark:_Toc152605165'><span
    style='mso-bookmark:_Toc115416223'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    MaxMpxRequests</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
--- 4536,4544 ----
   <tr style='mso-yfti-irow:22;height:79.25pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:79.25pt'>
!   <h5><a name="_Toc154229486"></a><a name="_Toc152605165"></a><a
!   name="_Toc115416223"></a><a name="_Toc126872292"></a><a name="_Toc139993215"></a><span
!   style='mso-bookmark:_Toc154229486'><span style='mso-bookmark:_Toc152605165'><span
    style='mso-bookmark:_Toc115416223'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    MaxMpxRequests</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
***************
*** 4517,4525 ****
   <tr style='mso-yfti-irow:23;height:79.25pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:79.25pt'>
!   <h5><a name="_Toc152606337"></a><a name="_Toc152605166"></a><a
!   name="_Toc115416224"></a><a name="_Toc139993216"></a><a name="_Toc126872293"></a><span
!   style='mso-bookmark:_Toc152606337'><span style='mso-bookmark:_Toc152605166'><span
    style='mso-bookmark:_Toc115416224'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    MaxVCPerServer</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
--- 4552,4560 ----
   <tr style='mso-yfti-irow:23;height:79.25pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:79.25pt'>
!   <h5><a name="_Toc154229487"></a><a name="_Toc152605166"></a><a
!   name="_Toc115416224"></a><a name="_Toc126872293"></a><a name="_Toc139993216"></a><span
!   style='mso-bookmark:_Toc154229487'><span style='mso-bookmark:_Toc152605166'><span
    style='mso-bookmark:_Toc115416224'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    MaxVCPerServer</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
***************
*** 4532,4540 ****
   <tr style='mso-yfti-irow:24;height:79.25pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:79.25pt'>
!   <h5><a name="_Toc152606338"></a><a name="_Toc152605167"></a><a
!   name="_Toc139993217"></a><a name="_Toc126872294"></a><a name="_Toc115416225"></a><a
!   name="_Value_:_Cell"></a><span style='mso-bookmark:_Toc152606338'><span
    style='mso-bookmark:_Toc152605167'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    Cell</span></span></span><span style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: REG_SZ<br>
--- 4567,4575 ----
   <tr style='mso-yfti-irow:24;height:79.25pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:79.25pt'>
!   <h5><a name="_Toc154229488"></a><a name="_Toc152605167"></a><a
!   name="_Value_:_Cell"></a><a name="_Toc115416225"></a><a name="_Toc126872294"></a><a
!   name="_Toc139993217"></a><span style='mso-bookmark:_Toc154229488'><span
    style='mso-bookmark:_Toc152605167'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    Cell</span></span></span><span style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: REG_SZ<br>
***************
*** 4547,4555 ****
   <tr style='mso-yfti-irow:25;height:79.25pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:79.25pt'>
!   <h5><a name="_Toc152606339"></a><a name="_Toc152605168"></a><a
!   name="_Toc115416226"></a><a name="_Toc139993218"></a><a name="_Toc126872295"></a><span
!   style='mso-bookmark:_Toc152606339'><span style='mso-bookmark:_Toc152605168'><span
    style='mso-bookmark:_Toc115416226'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    RxNoJumbo</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
--- 4582,4590 ----
   <tr style='mso-yfti-irow:25;height:79.25pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:79.25pt'>
!   <h5><a name="_Toc154229489"></a><a name="_Toc152605168"></a><a
!   name="_Toc115416226"></a><a name="_Toc126872295"></a><a name="_Toc139993218"></a><span
!   style='mso-bookmark:_Toc154229489'><span style='mso-bookmark:_Toc152605168'><span
    style='mso-bookmark:_Toc115416226'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    RxNoJumbo</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
***************
*** 4563,4573 ****
   <tr style='mso-yfti-irow:26;height:124.75pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:124.75pt'>
!   <h5><a name="_Toc152606340"></a><a name="_Toc152605169"></a><a
!   name="_Toc139993219"></a><a name="_Toc126872296"></a><a name="_Toc115416227"></a><a
!   name="_Value_:_RxMaxMTU"></a><span style='mso-bookmark:_Toc152606340'><span
!   style='mso-bookmark:_Toc152605169'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
!   RxMaxMTU</span></span></span><span style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: DWORD<br>
    Default: -1<br>
    Variable: rx_mtu</p>
--- 4598,4609 ----
   <tr style='mso-yfti-irow:26;height:124.75pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:124.75pt'>
!   <h5><a name="_Toc154229490"></a><a name="_Toc152605169"></a><a
!   name="_Value_:_RxMaxMTU"></a><a name="_Toc115416227"></a><a
!   name="_Toc126872296"></a><a name="_Toc139993219"></a><span style='mso-bookmark:
!   _Toc154229490'><span style='mso-bookmark:_Toc152605169'><span
!   style='mso-fareast-font-family:"Times New Roman"'>Value: RxMaxMTU</span></span></span><span
!   style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: DWORD<br>
    Default: -1<br>
    Variable: rx_mtu</p>
***************
*** 4580,4591 ****
   <tr style='mso-yfti-irow:27;height:151.75pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:151.75pt'>
!   <h5><a name="_Toc152606341"></a><a name="_Toc152605170"></a><a
!   name="_Toc139993220"></a><a name="_Toc126872297"></a><a name="_Toc115416228"></a><a
!   name="_Value:_ConnDeadTimeout"></a><span style='mso-bookmark:_Toc152606341'><span
!   style='mso-bookmark:_Toc152605170'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
!   ConnDeadTimeout</span></span></span><span style='mso-fareast-font-family:
!   "Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: DWORD<br>
    Default: 60 (seconds)<br>
    Variable: ConnDeadtimeout</p>
--- 4616,4627 ----
   <tr style='mso-yfti-irow:27;height:151.75pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:151.75pt'>
!   <h5><a name="_Toc154229491"></a><a name="_Toc152605170"></a><a
!   name="_Value:_ConnDeadTimeout"></a><a name="_Toc115416228"></a><a
!   name="_Toc126872297"></a><a name="_Toc139993220"></a><span style='mso-bookmark:
!   _Toc154229491'><span style='mso-bookmark:_Toc152605170'><span
!   style='mso-fareast-font-family:"Times New Roman"'>Value: ConnDeadTimeout</span></span></span><span
!   style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: DWORD<br>
    Default: 60 (seconds)<br>
    Variable: ConnDeadtimeout</p>
***************
*** 4601,4609 ****
   <tr style='mso-yfti-irow:28;height:92.0pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:92.0pt'>
!   <h5><a name="_Toc152606342"></a><a name="_Toc152605171"></a><a
!   name="_Toc115416229"></a><a name="_Toc139993221"></a><a name="_Toc126872298"></a><span
!   style='mso-bookmark:_Toc152606342'><span style='mso-bookmark:_Toc152605171'><span
    style='mso-bookmark:_Toc115416229'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    HardDeadTimeout</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
--- 4637,4645 ----
   <tr style='mso-yfti-irow:28;height:92.0pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:92.0pt'>
!   <h5><a name="_Toc154229492"></a><a name="_Toc152605171"></a><a
!   name="_Toc115416229"></a><a name="_Toc126872298"></a><a name="_Toc139993221"></a><span
!   style='mso-bookmark:_Toc154229492'><span style='mso-bookmark:_Toc152605171'><span
    style='mso-bookmark:_Toc115416229'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    HardDeadTimeout</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
***************
*** 4617,4627 ****
   <tr style='mso-yfti-irow:29;height:158.5pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:158.5pt'>
!   <h5><a name="_Toc152606343"></a><a name="_Toc152605172"></a><a
!   name="_Toc139993222"></a><a name="_Toc126872299"></a><a name="_Toc115416230"></a><a
!   name="_Value__:_TraceOption"></a><span style='mso-bookmark:_Toc152606343'><span
!   style='mso-bookmark:_Toc152605172'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
!   TraceOption</span></span></span><span style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: DWORD {0-15}<br>
    Default: 0</p>
    <p class=MsoBodyText>Enables logging of debug output to the Windows Event
--- 4653,4664 ----
   <tr style='mso-yfti-irow:29;height:158.5pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:158.5pt'>
!   <h5><a name="_Toc154229493"></a><a name="_Toc152605172"></a><a
!   name="_Value__:_TraceOption"></a><a name="_Toc115416230"></a><a
!   name="_Toc126872299"></a><a name="_Toc139993222"></a><span style='mso-bookmark:
!   _Toc154229493'><span style='mso-bookmark:_Toc152605172'><span
!   style='mso-fareast-font-family:"Times New Roman"'>Value: TraceOption</span></span></span><span
!   style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: DWORD {0-15}<br>
    Default: 0</p>
    <p class=MsoBodyText>Enables logging of debug output to the Windows Event
***************
*** 4639,4647 ****
   <tr style='mso-yfti-irow:30;height:98.5pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:98.5pt'>
!   <h5><a name="_Toc152606344"></a><a name="_Toc152605173"></a><a
!   name="_Toc115416231"></a><a name="_Toc139993223"></a><a name="_Toc126872300"></a><span
!   style='mso-bookmark:_Toc152606344'><span style='mso-bookmark:_Toc152605173'><span
    style='mso-bookmark:_Toc115416231'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    AllSubmount</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
--- 4676,4684 ----
   <tr style='mso-yfti-irow:30;height:98.5pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:98.5pt'>
!   <h5><a name="_Toc154229494"></a><a name="_Toc152605173"></a><a
!   name="_Toc115416231"></a><a name="_Toc126872300"></a><a name="_Toc139993223"></a><span
!   style='mso-bookmark:_Toc154229494'><span style='mso-bookmark:_Toc152605173'><span
    style='mso-bookmark:_Toc115416231'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    AllSubmount</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
***************
*** 4656,4682 ****
   <tr style='mso-yfti-irow:31;height:78.5pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:78.5pt'>
!   <h5><a name="_Toc152606345"></a><a name="_Toc152605174"></a><a
!   name="_Toc139993224"></a><a name="_Toc126872301"></a><a name="_Toc115416232"></a><a
!   name="_Value___:_NoFindLanaByName"></a><span style='mso-bookmark:_Toc152606345'><span
!   style='mso-bookmark:_Toc152605174'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
!   NoFindLanaByName</span></span></span><span style='mso-fareast-font-family:
!   "Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: DWORD {0, 1}<br>
    Default: 0</p>
!   <p class=MsoBodyText>Disables the attempt to identity the network adapter to
!   use by looking for an adapter with a display name of &quot;AFS&quot;.</p>
    </td>
   </tr>
   <tr style='mso-yfti-irow:32;height:78.5pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:78.5pt'>
!   <h5><a name="_Toc152606346"></a><a name="_Toc152605175"></a><a
!   name="_Toc115416233"></a><a name="_Toc139993225"></a><a name="_Toc126872302"></a><span
!   style='mso-bookmark:_Toc152606346'><span style='mso-bookmark:_Toc152605175'><span
    style='mso-bookmark:_Toc115416233'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    MaxCPUs</span></span></span></span><span style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
!   <p class=MsoBodyText>Type: DWORD {1..32} or {1..64} depending on the architecture<br>
    Default: &lt;no default&gt;</p>
    <p class=MsoBodyText>If this value is specified, afsd_service.exe will
    restrict itself to executing on the specified number of CPUs if there are a
--- 4693,4720 ----
   <tr style='mso-yfti-irow:31;height:78.5pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:78.5pt'>
!   <h5><a name="_Toc154229495"></a><a name="_Toc152605174"></a><a
!   name="_Value___:_NoFindLanaByName"></a><a name="_Toc115416232"></a><a
!   name="_Toc126872301"></a><a name="_Toc139993224"></a><span style='mso-bookmark:
!   _Toc154229495'><span style='mso-bookmark:_Toc152605174'><span
!   style='mso-fareast-font-family:"Times New Roman"'>Value: NoFindLanaByName</span></span></span><span
!   style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: DWORD {0, 1}<br>
    Default: 0</p>
!   <p class=MsoBodyText>Disables the attempt to identity the network adapter to use
!   by looking for an adapter with a display name of &quot;AFS&quot;.</p>
    </td>
   </tr>
   <tr style='mso-yfti-irow:32;height:78.5pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:78.5pt'>
!   <h5><a name="_Toc154229496"></a><a name="_Toc152605175"></a><a
!   name="_Toc115416233"></a><a name="_Toc126872302"></a><a name="_Toc139993225"></a><span
!   style='mso-bookmark:_Toc154229496'><span style='mso-bookmark:_Toc152605175'><span
    style='mso-bookmark:_Toc115416233'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    MaxCPUs</span></span></span></span><span style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
!   <p class=MsoBodyText>Type: DWORD {1..32} or {1..64} depending on the
!   architecture<br>
    Default: &lt;no default&gt;</p>
    <p class=MsoBodyText>If this value is specified, afsd_service.exe will
    restrict itself to executing on the specified number of CPUs if there are a
***************
*** 4686,4696 ****
   <tr style='mso-yfti-irow:33;height:151.75pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:151.75pt'>
!   <h5><a name="_Toc152606347"></a><a name="_Toc152605176"></a><a
!   name="_Toc139993226"></a><a name="_Toc126872303"></a><a name="_Toc115416234"></a><a
!   name="_Value___:_smbAuthType"></a><span style='mso-bookmark:_Toc152606347'><span
!   style='mso-bookmark:_Toc152605176'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
!   smbAuthType</span></span></span><span style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: DWORD {0..2}<br>
    Default: 2</p>
    <p class=MsoBodyText>If this value is specified, it defines the type of SMB
--- 4724,4735 ----
   <tr style='mso-yfti-irow:33;height:151.75pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:151.75pt'>
!   <h5><a name="_Toc154229497"></a><a name="_Toc152605176"></a><a
!   name="_Value___:_smbAuthType"></a><a name="_Toc115416234"></a><a
!   name="_Toc126872303"></a><a name="_Toc139993226"></a><span style='mso-bookmark:
!   _Toc154229497'><span style='mso-bookmark:_Toc152605176'><span
!   style='mso-fareast-font-family:"Times New Roman"'>Value: smbAuthType</span></span></span><span
!   style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: DWORD {0..2}<br>
    Default: 2</p>
    <p class=MsoBodyText>If this value is specified, it defines the type of SMB
***************
*** 4705,4715 ****
   <tr style='mso-yfti-irow:34;height:92.0pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:92.0pt'>
!   <h5><a name="_Toc152606348"></a><a name="_Toc152605177"></a><a
!   name="_Toc139993227"></a><a name="_Toc126872304"></a><a name="_Toc115416235"></a><a
!   name="_Value___:_MaxLogSize"></a><span style='mso-bookmark:_Toc152606348'><span
!   style='mso-bookmark:_Toc152605177'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
!   MaxLogSize</span></span></span><span style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: DWORD {0 .. MAXDWORD}<br>
    Default: 100K</p>
    <p class=MsoBodyText>This entry determines the maximum size of the
--- 4744,4755 ----
   <tr style='mso-yfti-irow:34;height:92.0pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:92.0pt'>
!   <h5><a name="_Toc154229498"></a><a name="_Toc152605177"></a><a
!   name="_Value___:_MaxLogSize"></a><a name="_Toc115416235"></a><a
!   name="_Toc126872304"></a><a name="_Toc139993227"></a><span style='mso-bookmark:
!   _Toc154229498'><span style='mso-bookmark:_Toc152605177'><span
!   style='mso-fareast-font-family:"Times New Roman"'>Value: MaxLogSize</span></span></span><span
!   style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: DWORD {0 .. MAXDWORD}<br>
    Default: 100K</p>
    <p class=MsoBodyText>This entry determines the maximum size of the
***************
*** 4721,4729 ****
   <tr style='mso-yfti-irow:35;height:65.75pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:65.75pt'>
!   <h5><a name="_Toc152606349"></a><a name="_Toc152605178"></a><a
!   name="_Toc115416236"></a><a name="_Toc139993228"></a><a name="_Toc126872305"></a><span
!   style='mso-bookmark:_Toc152606349'><span style='mso-bookmark:_Toc152605178'><span
    style='mso-bookmark:_Toc115416236'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    FlushOnHibernate</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
--- 4761,4769 ----
   <tr style='mso-yfti-irow:35;height:65.75pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:65.75pt'>
!   <h5><a name="_Toc154229499"></a><a name="_Toc152605178"></a><a
!   name="_Toc115416236"></a><a name="_Toc126872305"></a><a name="_Toc139993228"></a><span
!   style='mso-bookmark:_Toc154229499'><span style='mso-bookmark:_Toc152605178'><span
    style='mso-bookmark:_Toc115416236'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    FlushOnHibernate</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
***************
*** 4736,4743 ****
   <tr style='mso-yfti-irow:36;height:65.75pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:65.75pt'>
!   <h5><a name="_Toc152606350"></a><a name="_Toc152605179"><span
!   style='mso-bookmark:_Toc152606350'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    daemonCheckDownInterval</span></span></a><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: DWORD (seconds)<br>
--- 4776,4783 ----
   <tr style='mso-yfti-irow:36;height:65.75pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:65.75pt'>
!   <h5><a name="_Toc154229500"></a><a name="_Toc152605179"><span
!   style='mso-bookmark:_Toc154229500'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    daemonCheckDownInterval</span></span></a><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: DWORD (seconds)<br>
***************
*** 4750,4757 ****
   <tr style='mso-yfti-irow:37;height:65.75pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:65.75pt'>
!   <h5><a name="_Toc152606351"></a><a name="_Toc152605180"><span
!   style='mso-bookmark:_Toc152606351'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    daemonCheckUpInterval</span></span></a><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: DWORD (seconds)<br>
--- 4790,4797 ----
   <tr style='mso-yfti-irow:37;height:65.75pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:65.75pt'>
!   <h5><a name="_Toc154229501"></a><a name="_Toc152605180"><span
!   style='mso-bookmark:_Toc154229501'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    daemonCheckUpInterval</span></span></a><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: DWORD (seconds)<br>
***************
*** 4763,4770 ****
   <tr style='mso-yfti-irow:38;height:65.75pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:65.75pt'>
!   <h5><a name="_Toc152606352"></a><a name="_Toc152605181"><span
!   style='mso-bookmark:_Toc152606352'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    daemonCheckVolInterval</span></span></a><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: DWORD (seconds)<br>
--- 4803,4810 ----
   <tr style='mso-yfti-irow:38;height:65.75pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:65.75pt'>
!   <h5><a name="_Toc154229502"></a><a name="_Toc152605181"><span
!   style='mso-bookmark:_Toc154229502'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    daemonCheckVolInterval</span></span></a><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: DWORD (seconds)<br>
***************
*** 4777,4784 ****
   <tr style='mso-yfti-irow:39;height:65.75pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:65.75pt'>
!   <h5><a name="_Toc152606353"></a><a name="_Toc152605182"><span
!   style='mso-bookmark:_Toc152606353'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    daemonCheckCBInterval</span></span></a><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: DWORD (seconds)<br>
--- 4817,4824 ----
   <tr style='mso-yfti-irow:39;height:65.75pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:65.75pt'>
!   <h5><a name="_Toc154229503"></a><a name="_Toc152605182"><span
!   style='mso-bookmark:_Toc154229503'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    daemonCheckCBInterval</span></span></a><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: DWORD (seconds)<br>
***************
*** 4791,4798 ****
   <tr style='mso-yfti-irow:40;height:65.75pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:65.75pt'>
!   <h5><a name="_Toc152606354"></a><a name="_Toc152605183"><span
!   style='mso-bookmark:_Toc152606354'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    daemonCheckLockInterval</span></span></a><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: DWORD (seconds)<br>
--- 4831,4838 ----
   <tr style='mso-yfti-irow:40;height:65.75pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:65.75pt'>
!   <h5><a name="_Toc154229504"></a><a name="_Toc152605183"><span
!   style='mso-bookmark:_Toc154229504'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    daemonCheckLockInterval</span></span></a><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: DWORD (seconds)<br>
***************
*** 4805,4812 ****
   <tr style='mso-yfti-irow:41;height:65.75pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:65.75pt'>
!   <h5><a name="_Toc152606355"></a><a name="_Toc152605184"><span
!   style='mso-bookmark:_Toc152606355'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    daemonTokenCheckInterval</span></span></a><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: DWORD (seconds)<br>
--- 4845,4852 ----
   <tr style='mso-yfti-irow:41;height:65.75pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:65.75pt'>
!   <h5><a name="_Toc154229505"></a><a name="_Toc152605184"><span
!   style='mso-bookmark:_Toc154229505'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    daemonTokenCheckInterval</span></span></a><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: DWORD (seconds)<br>
***************
*** 4819,4826 ****
   <tr style='mso-yfti-irow:42;height:65.75pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:65.75pt'>
!   <h5><a name="_Toc152606356"></a><a name="_Toc152605185"><span
!   style='mso-bookmark:_Toc152606356'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    CallBackPort</span></span></a><span style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: DWORD<br>
    Default: 7001</p>
--- 4859,4866 ----
   <tr style='mso-yfti-irow:42;height:65.75pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:65.75pt'>
!   <h5><a name="_Toc154229506"></a><a name="_Toc152605185"><span
!   style='mso-bookmark:_Toc154229506'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    CallBackPort</span></span></a><span style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: DWORD<br>
    Default: 7001</p>
***************
*** 4835,4847 ****
   <tr style='mso-yfti-irow:43;mso-yfti-lastrow:yes;height:65.75pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:65.75pt'>
!   <h5><a name="_Toc152606357"></a><a name="_Toc152605186"><span
!   style='mso-bookmark:_Toc152606357'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
!   EnableServerLocks</span></span></a><span style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: DWORD {0, 1, 2}<br>
    Default: 1</p>
!   <p class=MsoBodyText>Determines whether or not the AFS file server is contacted
!   for </p>
    <p class=MsoBodyText><span style='mso-fareast-font-family:"Times New Roman"'>0:
    never obtain server locks<o:p></o:p></span></p>
    <p class=MsoBodyText><span style='mso-fareast-font-family:"Times New Roman"'>1:
--- 4875,4889 ----
   <tr style='mso-yfti-irow:43;mso-yfti-lastrow:yes;height:65.75pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:65.75pt'>
!   <h5><a name="_Toc154229507"></a><a name="_Toc152605186"></a><a
!   name="_Value:_EnableServerLocks"></a><span style='mso-bookmark:_Toc154229507'><span
!   style='mso-bookmark:_Toc152605186'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
!   EnableServerLocks</span></span></span><span style='mso-fareast-font-family:
!   "Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: DWORD {0, 1, 2}<br>
    Default: 1</p>
!   <p class=MsoBodyText>Determines whether or not the AFS file server is
!   contacted for </p>
    <p class=MsoBodyText><span style='mso-fareast-font-family:"Times New Roman"'>0:
    never obtain server locks<o:p></o:p></span></p>
    <p class=MsoBodyText><span style='mso-fareast-font-family:"Times New Roman"'>1:
***************
*** 4852,4860 ****
   </tr>
  </table>
  
! <h3><a name="_Toc152606358"></a><a name="_Toc152605187"></a><a
  name="_Toc115416237"></a><a name="_Toc139993229"></a><a name="_Toc126872306"></a><span
! style='mso-bookmark:_Toc152606358'><span style='mso-bookmark:_Toc152605187'><span
  style='mso-bookmark:_Toc115416237'>Regkey:<br>
  [HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters\GlobalAutoMapper]</span></span></span></h3>
  
--- 4894,4902 ----
   </tr>
  </table>
  
! <h3><a name="_Toc154229508"></a><a name="_Toc152605187"></a><a
  name="_Toc115416237"></a><a name="_Toc139993229"></a><a name="_Toc126872306"></a><span
! style='mso-bookmark:_Toc154229508'><span style='mso-bookmark:_Toc152605187'><span
  style='mso-bookmark:_Toc115416237'>Regkey:<br>
  [HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters\GlobalAutoMapper]</span></span></span></h3>
  
***************
*** 4864,4872 ****
    height:65.0pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:65.0pt'>
!   <h5><a name="_Toc152606359"></a><a name="_Toc152605188"></a><a
!   name="_Toc115416238"></a><a name="_Toc139993230"></a><a name="_Toc126872307"></a><span
!   style='mso-bookmark:_Toc152606359'><span style='mso-bookmark:_Toc152605188'><span
    style='mso-bookmark:_Toc115416238'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    &lt;Drive Letter:&gt; for example &quot;G:&quot;</span></span></span></span><span
    style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
--- 4906,4914 ----
    height:65.0pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:65.0pt'>
!   <h5><a name="_Toc154229509"></a><a name="_Toc152605188"></a><a
!   name="_Toc115416238"></a><a name="_Toc126872307"></a><a name="_Toc139993230"></a><span
!   style='mso-bookmark:_Toc154229509'><span style='mso-bookmark:_Toc152605188'><span
    style='mso-bookmark:_Toc115416238'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    &lt;Drive Letter:&gt; for example &quot;G:&quot;</span></span></span></span><span
    style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
***************
*** 4879,4887 ****
   </tr>
  </table>
  
! <h3><a name="_Toc152606360"></a><a name="_Toc152605189"></a><a
  name="_Toc115416239"></a><a name="_Toc139993231"></a><a name="_Toc126872308"></a><span
! style='mso-bookmark:_Toc152606360'><span style='mso-bookmark:_Toc152605189'><span
  style='mso-bookmark:_Toc115416239'>Regkey:<br>
  [HKLM\SOFTWARE\OpenAFS\Client]</span></span></span></h3>
  
--- 4921,4929 ----
   </tr>
  </table>
  
! <h3><a name="_Toc154229510"></a><a name="_Toc152605189"></a><a
  name="_Toc115416239"></a><a name="_Toc139993231"></a><a name="_Toc126872308"></a><span
! style='mso-bookmark:_Toc154229510'><span style='mso-bookmark:_Toc152605189'><span
  style='mso-bookmark:_Toc115416239'>Regkey:<br>
  [HKLM\SOFTWARE\OpenAFS\Client]</span></span></span></h3>
  
***************
*** 4890,4900 ****
   <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes;height:78.5pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:78.5pt'>
!   <h5><a name="_Toc152606361"></a><a name="_Toc152605190"></a><a
!   name="_Toc139993232"></a><a name="_Toc126872309"></a><a name="_Toc115416240"></a><a
!   name="_Value___:_CellServDBDir"></a><span style='mso-bookmark:_Toc152606361'><span
!   style='mso-bookmark:_Toc152605190'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
!   CellServDBDir</span></span></span><span style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: REG_SZ<br>
    Default: &lt;not defined&gt;</p>
    <p class=MsoBodyText>Specifies the directory containing the CellServDB
--- 4932,4943 ----
   <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes;height:78.5pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:78.5pt'>
!   <h5><a name="_Toc154229511"></a><a name="_Toc152605190"></a><a
!   name="_Value___:_CellServDBDir"></a><a name="_Toc115416240"></a><a
!   name="_Toc126872309"></a><a name="_Toc139993232"></a><span style='mso-bookmark:
!   _Toc154229511'><span style='mso-bookmark:_Toc152605190'><span
!   style='mso-fareast-font-family:"Times New Roman"'>Value: CellServDBDir</span></span></span><span
!   style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: REG_SZ<br>
    Default: &lt;not defined&gt;</p>
    <p class=MsoBodyText>Specifies the directory containing the CellServDB
***************
*** 4905,4914 ****
   <tr style='mso-yfti-irow:1;height:145.25pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:145.25pt'>
!   <h5><a name="_Toc152606362"></a><a name="_Toc152605191"></a><a
!   name="_Toc139993233"></a><a name="_Toc126872310"></a><a name="_Toc115416241"></a><a
!   name="_Value___:_VerifyServiceSignature"></a><span style='mso-bookmark:_Toc152606362'><span
!   style='mso-bookmark:_Toc152605191'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    VerifyServiceSignature</span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: REG_DWORD<br>
--- 4948,4958 ----
   <tr style='mso-yfti-irow:1;height:145.25pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:145.25pt'>
!   <h5><a name="_Toc154229512"></a><a name="_Toc152605191"></a><a
!   name="_Value___:_VerifyServiceSignature"></a><a name="_Toc115416241"></a><a
!   name="_Toc126872310"></a><a name="_Toc139993233"></a><span style='mso-bookmark:
!   _Toc154229512'><span style='mso-bookmark:_Toc152605191'><span
!   style='mso-fareast-font-family:"Times New Roman"'>Value:
    VerifyServiceSignature</span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: REG_DWORD<br>
***************
*** 4927,4937 ****
   <tr style='mso-yfti-irow:2;height:105.5pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:105.5pt'>
!   <h5><a name="_Toc152606363"></a><a name="_Toc152605192"></a><a
!   name="_Toc139993234"></a><a name="_Toc126872311"></a><a name="_Toc115416242"></a><a
!   name="_Value___:_IoctlDebug"></a><span style='mso-bookmark:_Toc152606363'><span
!   style='mso-bookmark:_Toc152605192'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
!   IoctlDebug</span></span></span><span style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: REG_DWORD<br>
    Default: 0x0</p>
    <p class=MsoBodyText>This value can be used to debug the cause of pioctl()
--- 4971,4982 ----
   <tr style='mso-yfti-irow:2;height:105.5pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:105.5pt'>
!   <h5><a name="_Toc154229513"></a><a name="_Toc152605192"></a><a
!   name="_Value___:_IoctlDebug"></a><a name="_Toc115416242"></a><a
!   name="_Toc126872311"></a><a name="_Toc139993234"></a><span style='mso-bookmark:
!   _Toc154229513'><span style='mso-bookmark:_Toc152605192'><span
!   style='mso-fareast-font-family:"Times New Roman"'>Value: IoctlDebug</span></span></span><span
!   style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: REG_DWORD<br>
    Default: 0x0</p>
    <p class=MsoBodyText>This value can be used to debug the cause of pioctl()
***************
*** 4944,4952 ****
   <tr style='mso-yfti-irow:3;height:330.75pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:330.75pt'>
!   <h5><a name="_Toc152606364"></a><a name="_Toc152605193"></a><a
!   name="_Toc115416243"></a><a name="_Toc139993235"></a><a name="_Toc126872312"></a><span
!   style='mso-bookmark:_Toc152606364'><span style='mso-bookmark:_Toc152605193'><span
    style='mso-bookmark:_Toc115416243'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    MiniDumpType</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
--- 4989,4997 ----
   <tr style='mso-yfti-irow:3;height:330.75pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:330.75pt'>
!   <h5><a name="_Toc154229514"></a><a name="_Toc152605193"></a><a
!   name="_Toc115416243"></a><a name="_Toc126872312"></a><a name="_Toc139993235"></a><span
!   style='mso-bookmark:_Toc154229514'><span style='mso-bookmark:_Toc152605193'><span
    style='mso-bookmark:_Toc115416243'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    MiniDumpType</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
***************
*** 4979,4995 ****
   <tr style='mso-yfti-irow:4;mso-yfti-lastrow:yes;height:138.25pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:138.25pt'>
!   <h5><a name="_Toc152606365"></a><a name="_Toc152605194"></a><a
!   name="_Toc139993236"></a><a name="_Toc126872313"></a><a name="_Toc115416244"></a><a
!   name="_Value___:_StoreAnsiFilenames"></a><span style='mso-bookmark:_Toc152606365'><span
!   style='mso-bookmark:_Toc152605194'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
!   StoreAnsiFilenames</span></span></span><span style='mso-fareast-font-family:
!   "Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: REG_DWORD<br>
    Default: 0x0</p>
!   <p class=MsoBodyText>This value can be used to force the AFS Client Service to
!   store filenames using the Windows system's ANSI character set instead of the
!   OEM Code Page character set which has traditionally been used by SMB file
    systems.&nbsp; </p>
    <p class=MsoBodyText>Note: The use of ANSI characters will render access to
    files with 8-bit OEM file names unaccessible from Windows.&nbsp; This option
--- 5024,5040 ----
   <tr style='mso-yfti-irow:4;mso-yfti-lastrow:yes;height:138.25pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:138.25pt'>
!   <h5><a name="_Toc154229515"></a><a name="_Toc152605194"></a><a
!   name="_Value___:_StoreAnsiFilenames"></a><a name="_Toc115416244"></a><a
!   name="_Toc126872313"></a><a name="_Toc139993236"></a><span style='mso-bookmark:
!   _Toc154229515'><span style='mso-bookmark:_Toc152605194'><span
!   style='mso-fareast-font-family:"Times New Roman"'>Value: StoreAnsiFilenames</span></span></span><span
!   style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: REG_DWORD<br>
    Default: 0x0</p>
!   <p class=MsoBodyText>This value can be used to force the AFS Client Service
!   to store filenames using the Windows system's ANSI character set instead of
!   the OEM Code Page character set which has traditionally been used by SMB file
    systems.&nbsp; </p>
    <p class=MsoBodyText>Note: The use of ANSI characters will render access to
    files with 8-bit OEM file names unaccessible from Windows.&nbsp; This option
***************
*** 4999,5007 ****
   </tr>
  </table>
  
! <h3><a name="_Toc152606366"></a><a name="_Toc152605195"></a><a
  name="_Toc115416245"></a><a name="_Toc139993237"></a><a name="_Toc126872314"></a><span
! style='mso-bookmark:_Toc152606366'><span style='mso-bookmark:_Toc152605195'><span
  style='mso-bookmark:_Toc115416245'>Regkey:<br>
  [HKLM\SOFTWARE\OpenAFS\Client\CSCPolicy]</span></span></span></h3>
  
--- 5044,5052 ----
   </tr>
  </table>
  
! <h3><a name="_Toc154229516"></a><a name="_Toc152605195"></a><a
  name="_Toc115416245"></a><a name="_Toc139993237"></a><a name="_Toc126872314"></a><span
! style='mso-bookmark:_Toc154229516'><span style='mso-bookmark:_Toc152605195'><span
  style='mso-bookmark:_Toc115416245'>Regkey:<br>
  [HKLM\SOFTWARE\OpenAFS\Client\CSCPolicy]</span></span></span></h3>
  
***************
*** 5011,5019 ****
    height:112.0pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:112.0pt'>
!   <h5><a name="_Toc152606367"></a><a name="_Toc152605196"></a><a
!   name="_Toc115416246"></a><a name="_Toc139993238"></a><a name="_Toc126872315"></a><span
!   style='mso-bookmark:_Toc152606367'><span style='mso-bookmark:_Toc152605196'><span
    style='mso-bookmark:_Toc115416246'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    &quot;smb/cifs share name&quot;</span></span></span></span><span
    style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
--- 5056,5064 ----
    height:112.0pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:112.0pt'>
!   <h5><a name="_Toc154229517"></a><a name="_Toc152605196"></a><a
!   name="_Toc115416246"></a><a name="_Toc126872315"></a><a name="_Toc139993238"></a><span
!   style='mso-bookmark:_Toc154229517'><span style='mso-bookmark:_Toc152605196'><span
    style='mso-bookmark:_Toc115416246'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    &quot;smb/cifs share name&quot;</span></span></span></span><span
    style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
***************
*** 5028,5036 ****
   </tr>
  </table>
  
! <h3><a name="_Toc152606368"></a><a name="_Toc152605197"></a><a
  name="_Toc139993239"></a><a name="_Toc126872316"></a><a name="_Toc115416247"></a><a
! name="_Regkey:_[HKLM\SOFTWARE\OpenAFS\Clie"></a><span style='mso-bookmark:_Toc152606368'><span
  style='mso-bookmark:_Toc152605197'>Regkey:<br>
  [HKLM\SOFTWARE\OpenAFS\Client\Freelance]</span></span></h3>
  
--- 5073,5081 ----
   </tr>
  </table>
  
! <h3><a name="_Toc154229518"></a><a name="_Toc152605197"></a><a
  name="_Toc139993239"></a><a name="_Toc126872316"></a><a name="_Toc115416247"></a><a
! name="_Regkey:_[HKLM\SOFTWARE\OpenAFS\Clie"></a><span style='mso-bookmark:_Toc154229518'><span
  style='mso-bookmark:_Toc152605197'>Regkey:<br>
  [HKLM\SOFTWARE\OpenAFS\Client\Freelance]</span></span></h3>
  
***************
*** 5040,5048 ****
    height:138.5pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:138.5pt'>
!   <h5><a name="_Toc152606369"></a><a name="_Toc152605198"></a><a
!   name="_Toc115416248"></a><a name="_Toc139993240"></a><a name="_Toc126872317"></a><span
!   style='mso-bookmark:_Toc152606369'><span style='mso-bookmark:_Toc152605198'><span
    style='mso-bookmark:_Toc115416248'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    &quot;numeric value&quot;</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
--- 5085,5093 ----
    height:138.5pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:138.5pt'>
!   <h5><a name="_Toc154229519"></a><a name="_Toc152605198"></a><a
!   name="_Toc115416248"></a><a name="_Toc126872317"></a><a name="_Toc139993240"></a><span
!   style='mso-bookmark:_Toc154229519'><span style='mso-bookmark:_Toc152605198'><span
    style='mso-bookmark:_Toc115416248'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    &quot;numeric value&quot;</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
***************
*** 5058,5067 ****
   </tr>
  </table>
  
! <h3><a name="_Toc152606370"></a><a name="_Toc152605199"></a><a
  name="_Toc139993241"></a><a name="_Toc126872318"></a><a name="_Toc115416249"></a><a
  name="_Regkey:_[HKLM\SOFTWARE\OpenAFS\Clie_1"></a><span style='mso-bookmark:
! _Toc152606370'><span style='mso-bookmark:_Toc152605199'>Regkey:<br>
  [HKLM\SOFTWARE\OpenAFS\Client\Freelance\Symlinks]</span></span></h3>
  
  <table class=MsoNormalTable border=1 cellspacing=3 cellpadding=0
--- 5103,5112 ----
   </tr>
  </table>
  
! <h3><a name="_Toc154229520"></a><a name="_Toc152605199"></a><a
  name="_Toc139993241"></a><a name="_Toc126872318"></a><a name="_Toc115416249"></a><a
  name="_Regkey:_[HKLM\SOFTWARE\OpenAFS\Clie_1"></a><span style='mso-bookmark:
! _Toc154229520'><span style='mso-bookmark:_Toc152605199'>Regkey:<br>
  [HKLM\SOFTWARE\OpenAFS\Client\Freelance\Symlinks]</span></span></h3>
  
  <table class=MsoNormalTable border=1 cellspacing=3 cellpadding=0
***************
*** 5070,5078 ****
    height:145.0pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:145.0pt'>
!   <h5><a name="_Toc152606371"></a><a name="_Toc152605200"></a><a
!   name="_Toc115416250"></a><a name="_Toc139993242"></a><a name="_Toc126872319"></a><span
!   style='mso-bookmark:_Toc152606371'><span style='mso-bookmark:_Toc152605200'><span
    style='mso-bookmark:_Toc115416250'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    &quot;numeric value&quot;</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
--- 5115,5123 ----
    height:145.0pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:145.0pt'>
!   <h5><a name="_Toc154229521"></a><a name="_Toc152605200"></a><a
!   name="_Toc115416250"></a><a name="_Toc126872319"></a><a name="_Toc139993242"></a><span
!   style='mso-bookmark:_Toc154229521'><span style='mso-bookmark:_Toc152605200'><span
    style='mso-bookmark:_Toc115416250'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    &quot;numeric value&quot;</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
***************
*** 5089,5097 ****
   </tr>
  </table>
  
! <h3><a name="_Toc152606372"></a><a name="_Toc152605201"></a><a
  name="_Toc115416251"></a><a name="_Toc139993243"></a><a name="_Toc126872320"></a><span
! style='mso-bookmark:_Toc152606372'><span style='mso-bookmark:_Toc152605201'><span
  style='mso-bookmark:_Toc115416251'>Regkey:<br>
  [HKLM\SOFTWARE\OpenAFS\Client\Submounts]</span></span></span></h3>
  
--- 5134,5142 ----
   </tr>
  </table>
  
! <h3><a name="_Toc154229522"></a><a name="_Toc152605201"></a><a
  name="_Toc115416251"></a><a name="_Toc139993243"></a><a name="_Toc126872320"></a><span
! style='mso-bookmark:_Toc154229522'><span style='mso-bookmark:_Toc152605201'><span
  style='mso-bookmark:_Toc115416251'>Regkey:<br>
  [HKLM\SOFTWARE\OpenAFS\Client\Submounts]</span></span></span></h3>
  
***************
*** 5101,5109 ****
    height:171.75pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:171.75pt'>
!   <h5><a name="_Toc152606373"></a><a name="_Toc152605202"></a><a
!   name="_Toc115416252"></a><a name="_Toc139993244"></a><a name="_Toc126872321"></a><span
!   style='mso-bookmark:_Toc152606373'><span style='mso-bookmark:_Toc152605202'><span
    style='mso-bookmark:_Toc115416252'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    &quot;submount name&quot;</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
--- 5146,5154 ----
    height:171.75pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:171.75pt'>
!   <h5><a name="_Toc154229523"></a><a name="_Toc152605202"></a><a
!   name="_Toc115416252"></a><a name="_Toc126872321"></a><a name="_Toc139993244"></a><span
!   style='mso-bookmark:_Toc154229523'><span style='mso-bookmark:_Toc152605202'><span
    style='mso-bookmark:_Toc115416252'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    &quot;submount name&quot;</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
***************
*** 5122,5131 ****
   </tr>
  </table>
  
! <h3><a name="_Toc152606374"></a><a name="_Toc152605203"></a><a
  name="_Toc139993245"></a><a name="_Toc126872322"></a><a name="_Toc115416253"></a><a
  name="_Regkey:_[HKLM\SOFTWARE\OpenAFS\Clie_2"></a><span style='mso-bookmark:
! _Toc152606374'><span style='mso-bookmark:_Toc152605203'>Regkey:<br>
  [HKLM\SOFTWARE\OpenAFS\Client\Server Preferences\VLDB]</span></span></h3>
  
  <table class=MsoNormalTable border=1 cellspacing=3 cellpadding=0
--- 5167,5176 ----
   </tr>
  </table>
  
! <h3><a name="_Toc154229524"></a><a name="_Toc152605203"></a><a
  name="_Toc139993245"></a><a name="_Toc126872322"></a><a name="_Toc115416253"></a><a
  name="_Regkey:_[HKLM\SOFTWARE\OpenAFS\Clie_2"></a><span style='mso-bookmark:
! _Toc154229524'><span style='mso-bookmark:_Toc152605203'>Regkey:<br>
  [HKLM\SOFTWARE\OpenAFS\Client\Server Preferences\VLDB]</span></span></h3>
  
  <table class=MsoNormalTable border=1 cellspacing=3 cellpadding=0
***************
*** 5134,5142 ****
    height:105.5pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:105.5pt'>
!   <h5><a name="_Toc152606375"></a><a name="_Toc152605204"></a><a
!   name="_Toc115416254"></a><a name="_Toc139993246"></a><a name="_Toc126872323"></a><span
!   style='mso-bookmark:_Toc152606375'><span style='mso-bookmark:_Toc152605204'><span
    style='mso-bookmark:_Toc115416254'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    &quot;hostname or ip address&quot;</span></span></span></span><span
    style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
--- 5179,5187 ----
    height:105.5pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:105.5pt'>
!   <h5><a name="_Toc154229525"></a><a name="_Toc152605204"></a><a
!   name="_Toc115416254"></a><a name="_Toc126872323"></a><a name="_Toc139993246"></a><span
!   style='mso-bookmark:_Toc154229525'><span style='mso-bookmark:_Toc152605204'><span
    style='mso-bookmark:_Toc115416254'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    &quot;hostname or ip address&quot;</span></span></span></span><span
    style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
***************
*** 5151,5159 ****
   </tr>
  </table>
  
! <h3><a name="_Toc152606376"></a><a name="_Toc152605205"></a><a
  name="_Toc115416255"></a><a name="_Toc139993247"></a><a name="_Toc126872324"></a><span
! style='mso-bookmark:_Toc152606376'><span style='mso-bookmark:_Toc152605205'><span
  style='mso-bookmark:_Toc115416255'>Regkey:<br>
  [HKLM\SOFTWARE\OpenAFS\Client\Server Preferences\File]</span></span></span></h3>
  
--- 5196,5204 ----
   </tr>
  </table>
  
! <h3><a name="_Toc154229526"></a><a name="_Toc152605205"></a><a
  name="_Toc115416255"></a><a name="_Toc139993247"></a><a name="_Toc126872324"></a><span
! style='mso-bookmark:_Toc154229526'><span style='mso-bookmark:_Toc152605205'><span
  style='mso-bookmark:_Toc115416255'>Regkey:<br>
  [HKLM\SOFTWARE\OpenAFS\Client\Server Preferences\File]</span></span></span></h3>
  
***************
*** 5163,5171 ****
    height:105.5pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:105.5pt'>
!   <h5><a name="_Toc152606377"></a><a name="_Toc152605206"></a><a
!   name="_Toc115416256"></a><a name="_Toc139993248"></a><a name="_Toc126872325"></a><span
!   style='mso-bookmark:_Toc152606377'><span style='mso-bookmark:_Toc152605206'><span
    style='mso-bookmark:_Toc115416256'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    &quot;hostname or ip address&quot;</span></span></span></span><span
    style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
--- 5208,5216 ----
    height:105.5pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:105.5pt'>
!   <h5><a name="_Toc154229527"></a><a name="_Toc152605206"></a><a
!   name="_Toc115416256"></a><a name="_Toc126872325"></a><a name="_Toc139993248"></a><span
!   style='mso-bookmark:_Toc154229527'><span style='mso-bookmark:_Toc152605206'><span
    style='mso-bookmark:_Toc115416256'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    &quot;hostname or ip address&quot;</span></span></span></span><span
    style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
***************
*** 5173,5196 ****
    Default: &lt;none&gt;</p>
    <p class=MsoBodyText>This key is used to specify a default set of File server
    preferences. For each entry the value name will be either the IP address of a
!   server or a fully qualified domain name.&nbsp; The value will be the
!   ranking.&nbsp; The ranking will be adjusted by a random value between 0 and
!   256 prior to the preference being set.</p>
    </td>
   </tr>
  </table>
  
! <h2><a name="_Toc152606378"></a><a name="_Toc152605207"></a><a
  name="_Toc115416257"></a><a name="_Toc139993249"></a><a name="_Toc126872326"></a><a
! name="_Toc115417105"></a><span style='mso-bookmark:_Toc152606378'><span
  style='mso-bookmark:_Toc152605207'><span style='mso-bookmark:_Toc115416257'>A.2.
  Integrated Logon Network provider parameters</span></span></span></h2>
  
  <p class=MsoBodyText>Affects the network provider (afslogon.dll).</p>
  
! <h3><a name="_Toc152606379"></a><a name="_Toc152605208"></a><a
  name="_Toc115416258"></a><a name="_Toc139993250"></a><a name="_Toc126872327"></a><span
! style='mso-bookmark:_Toc152606379'><span style='mso-bookmark:_Toc152605208'><span
  style='mso-bookmark:_Toc115416258'>Regkey:
  [HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters]</span></span></span></h3>
  
--- 5218,5241 ----
    Default: &lt;none&gt;</p>
    <p class=MsoBodyText>This key is used to specify a default set of File server
    preferences. For each entry the value name will be either the IP address of a
!   server or a fully qualified domain name.&nbsp; The value will be the ranking.&nbsp;
!   The ranking will be adjusted by a random value between 0 and 256 prior to the
!   preference being set.</p>
    </td>
   </tr>
  </table>
  
! <h2><a name="_Toc154229528"></a><a name="_Toc152605207"></a><a
  name="_Toc115416257"></a><a name="_Toc139993249"></a><a name="_Toc126872326"></a><a
! name="_Toc115417105"></a><span style='mso-bookmark:_Toc154229528'><span
  style='mso-bookmark:_Toc152605207'><span style='mso-bookmark:_Toc115416257'>A.2.
  Integrated Logon Network provider parameters</span></span></span></h2>
  
  <p class=MsoBodyText>Affects the network provider (afslogon.dll).</p>
  
! <h3><a name="_Toc154229529"></a><a name="_Toc152605208"></a><a
  name="_Toc115416258"></a><a name="_Toc139993250"></a><a name="_Toc126872327"></a><span
! style='mso-bookmark:_Toc154229529'><span style='mso-bookmark:_Toc152605208'><span
  style='mso-bookmark:_Toc115416258'>Regkey:
  [HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters]</span></span></span></h3>
  
***************
*** 5200,5208 ****
    height:65.75pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:65.75pt'>
!   <h5><a name="_Toc152606380"></a><a name="_Toc152605209"></a><a
!   name="_Toc115416259"></a><a name="_Toc139993251"></a><a name="_Toc126872328"></a><span
!   style='mso-bookmark:_Toc152606380'><span style='mso-bookmark:_Toc152605209'><span
    style='mso-bookmark:_Toc115416259'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    FailLoginsSilently</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
--- 5245,5253 ----
    height:65.75pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:65.75pt'>
!   <h5><a name="_Toc154229530"></a><a name="_Toc152605209"></a><a
!   name="_Toc115416259"></a><a name="_Toc126872328"></a><a name="_Toc139993251"></a><span
!   style='mso-bookmark:_Toc154229530'><span style='mso-bookmark:_Toc152605209'><span
    style='mso-bookmark:_Toc115416259'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    FailLoginsSilently</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
***************
*** 5213,5221 ****
   </tr>
  </table>
  
! <h3><a name="_Toc152606381"></a><a name="_Toc152605210"></a><a
  name="_Toc115416260"></a><a name="_Toc139993252"></a><a name="_Toc126872329"></a><span
! style='mso-bookmark:_Toc152606381'><span style='mso-bookmark:_Toc152605210'><span
  style='mso-bookmark:_Toc115416260'>Regkey:<br>
  [HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider]</span></span></span></h3>
  
--- 5258,5266 ----
   </tr>
  </table>
  
! <h3><a name="_Toc154229531"></a><a name="_Toc152605210"></a><a
  name="_Toc115416260"></a><a name="_Toc139993252"></a><a name="_Toc126872329"></a><span
! style='mso-bookmark:_Toc154229531'><span style='mso-bookmark:_Toc152605210'><span
  style='mso-bookmark:_Toc115416260'>Regkey:<br>
  [HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider]</span></span></span></h3>
  
***************
*** 5224,5232 ****
   <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes;height:65.75pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:65.75pt'>
!   <h5><a name="_Toc152606382"></a><a name="_Toc152605211"></a><a
!   name="_Toc115416261"></a><a name="_Toc139993253"></a><a name="_Toc126872330"></a><span
!   style='mso-bookmark:_Toc152606382'><span style='mso-bookmark:_Toc152605211'><span
    style='mso-bookmark:_Toc115416261'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    NoWarnings</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
--- 5269,5277 ----
   <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes;height:65.75pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:65.75pt'>
!   <h5><a name="_Toc154229532"></a><a name="_Toc152605211"></a><a
!   name="_Toc115416261"></a><a name="_Toc126872330"></a><a name="_Toc139993253"></a><span
!   style='mso-bookmark:_Toc154229532'><span style='mso-bookmark:_Toc152605211'><span
    style='mso-bookmark:_Toc115416261'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    NoWarnings</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
***************
*** 5238,5246 ****
   <tr style='mso-yfti-irow:1;height:65.75pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:65.75pt'>
!   <h5><a name="_Toc152606383"></a><a name="_Toc152605212"></a><a
!   name="_Toc115416262"></a><a name="_Toc139993254"></a><a name="_Toc126872331"></a><span
!   style='mso-bookmark:_Toc152606383'><span style='mso-bookmark:_Toc152605212'><span
    style='mso-bookmark:_Toc115416262'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    AuthentProviderPath</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
--- 5283,5291 ----
   <tr style='mso-yfti-irow:1;height:65.75pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:65.75pt'>
!   <h5><a name="_Toc154229533"></a><a name="_Toc152605212"></a><a
!   name="_Toc115416262"></a><a name="_Toc126872331"></a><a name="_Toc139993254"></a><span
!   style='mso-bookmark:_Toc154229533'><span style='mso-bookmark:_Toc152605212'><span
    style='mso-bookmark:_Toc115416262'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    AuthentProviderPath</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
***************
*** 5253,5261 ****
   <tr style='mso-yfti-irow:2;height:65.75pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:65.75pt'>
!   <h5><a name="_Toc152606384"></a><a name="_Toc152605213"></a><a
!   name="_Toc115416263"></a><a name="_Toc139993255"></a><a name="_Toc126872332"></a><span
!   style='mso-bookmark:_Toc152606384'><span style='mso-bookmark:_Toc152605213'><span
    style='mso-bookmark:_Toc115416263'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    Class</span></span></span></span><span style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: DWORD<br>
--- 5298,5306 ----
   <tr style='mso-yfti-irow:2;height:65.75pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:65.75pt'>
!   <h5><a name="_Toc154229534"></a><a name="_Toc152605213"></a><a
!   name="_Toc115416263"></a><a name="_Toc126872332"></a><a name="_Toc139993255"></a><span
!   style='mso-bookmark:_Toc154229534'><span style='mso-bookmark:_Toc152605213'><span
    style='mso-bookmark:_Toc115416263'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    Class</span></span></span></span><span style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: DWORD<br>
***************
*** 5266,5274 ****
   <tr style='mso-yfti-irow:3;height:92.0pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:92.0pt'>
!   <h5><a name="_Toc152606385"></a><a name="_Toc152605214"></a><a
!   name="_Toc115416264"></a><a name="_Toc139993256"></a><a name="_Toc126872333"></a><span
!   style='mso-bookmark:_Toc152606385'><span style='mso-bookmark:_Toc152605214'><span
    style='mso-bookmark:_Toc115416264'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    DependOnGroup</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
--- 5311,5319 ----
   <tr style='mso-yfti-irow:3;height:92.0pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:92.0pt'>
!   <h5><a name="_Toc154229535"></a><a name="_Toc152605214"></a><a
!   name="_Toc115416264"></a><a name="_Toc126872333"></a><a name="_Toc139993256"></a><span
!   style='mso-bookmark:_Toc154229535'><span style='mso-bookmark:_Toc152605214'><span
    style='mso-bookmark:_Toc115416264'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    DependOnGroup</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
***************
*** 5283,5291 ****
   <tr style='mso-yfti-irow:4;height:92.0pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:92.0pt'>
!   <h5><a name="_Toc152606386"></a><a name="_Toc152605215"></a><a
!   name="_Toc115416265"></a><a name="_Toc139993257"></a><a name="_Toc126872334"></a><span
!   style='mso-bookmark:_Toc152606386'><span style='mso-bookmark:_Toc152605215'><span
    style='mso-bookmark:_Toc115416265'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    DependOnService</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
--- 5328,5336 ----
   <tr style='mso-yfti-irow:4;height:92.0pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:92.0pt'>
!   <h5><a name="_Toc154229536"></a><a name="_Toc152605215"></a><a
!   name="_Toc115416265"></a><a name="_Toc126872334"></a><a name="_Toc139993257"></a><span
!   style='mso-bookmark:_Toc154229536'><span style='mso-bookmark:_Toc152605215'><span
    style='mso-bookmark:_Toc115416265'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    DependOnService</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
***************
*** 5299,5307 ****
   <tr style='mso-yfti-irow:5;height:65.75pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:65.75pt'>
!   <h5><a name="_Toc152606387"></a><a name="_Toc152605216"></a><a
!   name="_Toc115416266"></a><a name="_Toc139993258"></a><a name="_Toc126872335"></a><span
!   style='mso-bookmark:_Toc152606387'><span style='mso-bookmark:_Toc152605216'><span
    style='mso-bookmark:_Toc115416266'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    Name</span></span></span></span><span style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: REG_SZ<br>
--- 5344,5352 ----
   <tr style='mso-yfti-irow:5;height:65.75pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:65.75pt'>
!   <h5><a name="_Toc154229537"></a><a name="_Toc152605216"></a><a
!   name="_Toc115416266"></a><a name="_Toc126872335"></a><a name="_Toc139993258"></a><span
!   style='mso-bookmark:_Toc154229537'><span style='mso-bookmark:_Toc152605216'><span
    style='mso-bookmark:_Toc115416266'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    Name</span></span></span></span><span style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: REG_SZ<br>
***************
*** 5312,5320 ****
   <tr style='mso-yfti-irow:6;mso-yfti-lastrow:yes;height:65.75pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:65.75pt'>
!   <h5><a name="_Toc152606388"></a><a name="_Toc152605217"></a><a
!   name="_Toc115416267"></a><a name="_Toc139993259"></a><a name="_Toc126872336"></a><span
!   style='mso-bookmark:_Toc152606388'><span style='mso-bookmark:_Toc152605217'><span
    style='mso-bookmark:_Toc115416267'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    ProviderPath</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
--- 5357,5365 ----
   <tr style='mso-yfti-irow:6;mso-yfti-lastrow:yes;height:65.75pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:65.75pt'>
!   <h5><a name="_Toc154229538"></a><a name="_Toc152605217"></a><a
!   name="_Toc115416267"></a><a name="_Toc126872336"></a><a name="_Toc139993259"></a><span
!   style='mso-bookmark:_Toc154229538'><span style='mso-bookmark:_Toc152605217'><span
    style='mso-bookmark:_Toc115416267'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    ProviderPath</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
***************
*** 5325,5334 ****
   </tr>
  </table>
  
! <h2><a name="_Toc152606389"></a><a name="_Toc152605218"></a><a
  name="_Toc139993260"></a><a name="_Toc126872337"></a><a name="_Toc115417106"></a><a
  name="_Toc115416268"></a><a name="_A.2.1_Domain_specific_configuration"></a><span
! style='mso-bookmark:_Toc152606389'><span style='mso-bookmark:_Toc152605218'>A.2.1
  Domain specific configuration keys for the Network Provider</span></span></h2>
  
  <p class=MsoBodyText>The network provider can be configured to have different
--- 5370,5379 ----
   </tr>
  </table>
  
! <h2><a name="_Toc154229539"></a><a name="_Toc152605218"></a><a
  name="_Toc139993260"></a><a name="_Toc126872337"></a><a name="_Toc115417106"></a><a
  name="_Toc115416268"></a><a name="_A.2.1_Domain_specific_configuration"></a><span
! style='mso-bookmark:_Toc154229539'><span style='mso-bookmark:_Toc152605218'>A.2.1
  Domain specific configuration keys for the Network Provider</span></span></h2>
  
  <p class=MsoBodyText>The network provider can be configured to have different
***************
*** 5341,5378 ****
  
  <p class=MsoBodyText>Domain specific registry keys are:</p>
  
! <h3><a name="_Toc152606390"></a><a name="_Toc152605219"></a><a
  name="_Toc115416269"></a><a name="_Toc139993261"></a><a name="_Toc126872338"></a><span
! style='mso-bookmark:_Toc152606390'><span style='mso-bookmark:_Toc152605219'><span
  style='mso-bookmark:_Toc115416269'>[HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider]</span></span></span></h3>
  
  <p class=MsoBodyText>&nbsp; (NP key)</p>
  
! <h3><a name="_Toc152606391"></a><a name="_Toc152605220"></a><a
  name="_Toc115416270"></a><a name="_Toc139993262"></a><a name="_Toc126872339"></a><span
! style='mso-bookmark:_Toc152606391'><span style='mso-bookmark:_Toc152605220'><span
  style='mso-bookmark:_Toc115416270'>[HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider\Domain]</span></span></span></h3>
  
  <p class=MsoBodyText>&nbsp; (Domains key)</p>
  
! <h3><a name="_Toc152606392"></a><a name="_Toc152605221"></a><a
  name="_Toc115416271"></a><a name="_Toc139993263"></a><a name="_Toc126872340"></a><span
! style='mso-bookmark:_Toc152606392'><span style='mso-bookmark:_Toc152605221'><span
  style='mso-bookmark:_Toc115416271'>[HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider\Domain\&quot;domain
  name&quot;]</span></span></span></h3>
  
  <p class=MsoBodyText>&nbsp; (Specific domain key. One per domain.)</p>
  
! <h3><a name="_Toc152606393"></a><a name="_Toc152605222"></a><a
  name="_Toc115416272"></a><a name="_Toc139993264"></a><a name="_Toc126872341"></a><span
! style='mso-bookmark:_Toc152606393'><span style='mso-bookmark:_Toc152605222'><span
  style='mso-bookmark:_Toc115416272'>[HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider\Domain\LOCALHOST]</span></span></span></h3>
  
  <p class=MsoBodyText>&nbsp; (Localhost key)</p>
  
! <h3><a name="_Toc152606394"></a><a name="_Toc152605223"></a><a
  name="_Toc115416273"></a><a name="_Toc139993265"></a><a name="_Toc126872342"></a><span
! style='mso-bookmark:_Toc152606394'><span style='mso-bookmark:_Toc152605223'><span
  style='mso-bookmark:_Toc115416273'>Example:</span></span></span></h3>
  
  <p class=preformattedtext>&nbsp;HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider</p>
--- 5386,5423 ----
  
  <p class=MsoBodyText>Domain specific registry keys are:</p>
  
! <h3><a name="_Toc154229540"></a><a name="_Toc152605219"></a><a
  name="_Toc115416269"></a><a name="_Toc139993261"></a><a name="_Toc126872338"></a><span
! style='mso-bookmark:_Toc154229540'><span style='mso-bookmark:_Toc152605219'><span
  style='mso-bookmark:_Toc115416269'>[HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider]</span></span></span></h3>
  
  <p class=MsoBodyText>&nbsp; (NP key)</p>
  
! <h3><a name="_Toc154229541"></a><a name="_Toc152605220"></a><a
  name="_Toc115416270"></a><a name="_Toc139993262"></a><a name="_Toc126872339"></a><span
! style='mso-bookmark:_Toc154229541'><span style='mso-bookmark:_Toc152605220'><span
  style='mso-bookmark:_Toc115416270'>[HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider\Domain]</span></span></span></h3>
  
  <p class=MsoBodyText>&nbsp; (Domains key)</p>
  
! <h3><a name="_Toc154229542"></a><a name="_Toc152605221"></a><a
  name="_Toc115416271"></a><a name="_Toc139993263"></a><a name="_Toc126872340"></a><span
! style='mso-bookmark:_Toc154229542'><span style='mso-bookmark:_Toc152605221'><span
  style='mso-bookmark:_Toc115416271'>[HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider\Domain\&quot;domain
  name&quot;]</span></span></span></h3>
  
  <p class=MsoBodyText>&nbsp; (Specific domain key. One per domain.)</p>
  
! <h3><a name="_Toc154229543"></a><a name="_Toc152605222"></a><a
  name="_Toc115416272"></a><a name="_Toc139993264"></a><a name="_Toc126872341"></a><span
! style='mso-bookmark:_Toc154229543'><span style='mso-bookmark:_Toc152605222'><span
  style='mso-bookmark:_Toc115416272'>[HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider\Domain\LOCALHOST]</span></span></span></h3>
  
  <p class=MsoBodyText>&nbsp; (Localhost key)</p>
  
! <h3><a name="_Toc154229544"></a><a name="_Toc152605223"></a><a
  name="_Toc115416273"></a><a name="_Toc139993265"></a><a name="_Toc126872342"></a><span
! style='mso-bookmark:_Toc154229544'><span style='mso-bookmark:_Toc152605223'><span
  style='mso-bookmark:_Toc115416273'>Example:</span></span></span></h3>
  
  <p class=preformattedtext>&nbsp;HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider</p>
***************
*** 5391,5404 ****
  values described in 2.1.1.&nbsp; The effective values are chosen as described
  in 2.1.2.</p>
  
! <h3><a name="_Toc152606395"></a><a name="_Toc152605224"></a><a
  name="_Toc115416274"></a><a name="_Toc139993266"></a><a name="_Toc126872343"></a><span
! style='mso-bookmark:_Toc152606395'><span style='mso-bookmark:_Toc152605224'><span
  style='mso-bookmark:_Toc115416274'>A.2.1.1 Domain specific configuration values</span></span></span></h3>
  
! <h4><a name="_Toc152606396"></a><a name="_Toc152605225"></a><a
  name="_Toc115416275"></a><a name="_Toc139993267"></a><a name="_Toc126872344"></a><span
! style='mso-bookmark:_Toc152606396'><span style='mso-bookmark:_Toc152605225'><span
  style='mso-bookmark:_Toc115416275'>[HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider]<br>
  [HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider\Domain]<br>
  [HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider\Domain\&quot;domain
--- 5436,5449 ----
  values described in 2.1.1.&nbsp; The effective values are chosen as described
  in 2.1.2.</p>
  
! <h3><a name="_Toc154229545"></a><a name="_Toc152605224"></a><a
  name="_Toc115416274"></a><a name="_Toc139993266"></a><a name="_Toc126872343"></a><span
! style='mso-bookmark:_Toc154229545'><span style='mso-bookmark:_Toc152605224'><span
  style='mso-bookmark:_Toc115416274'>A.2.1.1 Domain specific configuration values</span></span></span></h3>
  
! <h4><a name="_Toc154229546"></a><a name="_Toc152605225"></a><a
  name="_Toc115416275"></a><a name="_Toc139993267"></a><a name="_Toc126872344"></a><span
! style='mso-bookmark:_Toc154229546'><span style='mso-bookmark:_Toc152605225'><span
  style='mso-bookmark:_Toc115416275'>[HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider]<br>
  [HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider\Domain]<br>
  [HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider\Domain\&quot;domain
***************
*** 5410,5420 ****
   <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes;height:191.0pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:191.0pt'>
!   <h5><a name="_Toc152606397"></a><a name="_Toc152605226"></a><a
!   name="_Toc139993268"></a><a name="_Toc126872345"></a><a name="_Toc115416276"></a><a
!   name="_Value___:_LogonOptions"></a><span style='mso-bookmark:_Toc152606397'><span
!   style='mso-bookmark:_Toc152605226'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
!   LogonOptions</span></span></span><span style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: DWORD<br>
    Default: 0x01</p>
    <p class=MsoBodyText>NSIS/WiX: depends on user configuration</p>
--- 5455,5466 ----
   <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes;height:191.0pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:191.0pt'>
!   <h5><a name="_Toc154229547"></a><a name="_Toc152605226"></a><a
!   name="_Value___:_LogonOptions"></a><a name="_Toc115416276"></a><a
!   name="_Toc126872345"></a><a name="_Toc139993268"></a><span style='mso-bookmark:
!   _Toc154229547'><span style='mso-bookmark:_Toc152605226'><span
!   style='mso-fareast-font-family:"Times New Roman"'>Value: LogonOptions</span></span></span><span
!   style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: DWORD<br>
    Default: 0x01</p>
    <p class=MsoBodyText>NSIS/WiX: depends on user configuration</p>
***************
*** 5425,5441 ****
    <p class=MsoBodyText>High Security Mode generates random SMB names for the
    creation of Drive Mappings.&nbsp; This mode should not be used without
    Integrated Logon.</p>
!   <p class=MsoBodyText>As of 1.3.65 the SMB server supports SMB
!   authentication.&nbsp; The High Security Mode should not be used when using
!   SMB authentication (SMBAuthType setting is non zero).</p>
    </td>
   </tr>
   <tr style='mso-yfti-irow:1;height:92.0pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:92.0pt'>
!   <h5><a name="_Toc152606398"></a><a name="_Toc152605227"></a><a
!   name="_Toc115416277"></a><a name="_Toc139993269"></a><a name="_Toc126872346"></a><span
!   style='mso-bookmark:_Toc152606398'><span style='mso-bookmark:_Toc152605227'><span
    style='mso-bookmark:_Toc115416277'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    FailLoginsSilentl</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
--- 5471,5487 ----
    <p class=MsoBodyText>High Security Mode generates random SMB names for the
    creation of Drive Mappings.&nbsp; This mode should not be used without
    Integrated Logon.</p>
!   <p class=MsoBodyText>As of 1.3.65 the SMB server supports SMB authentication.&nbsp;
!   The High Security Mode should not be used when using SMB authentication
!   (SMBAuthType setting is non zero).</p>
    </td>
   </tr>
   <tr style='mso-yfti-irow:1;height:92.0pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:92.0pt'>
!   <h5><a name="_Toc154229548"></a><a name="_Toc152605227"></a><a
!   name="_Toc115416277"></a><a name="_Toc126872346"></a><a name="_Toc139993269"></a><span
!   style='mso-bookmark:_Toc154229548'><span style='mso-bookmark:_Toc152605227'><span
    style='mso-bookmark:_Toc115416277'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    FailLoginsSilentl</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
***************
*** 5449,5457 ****
   <tr style='mso-yfti-irow:2;height:139.0pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:139.0pt'>
!   <h5><a name="_Toc152606399"></a><a name="_Toc152605228"></a><a
!   name="_Toc115416278"></a><a name="_Toc139993270"></a><a name="_Toc126872347"></a><span
!   style='mso-bookmark:_Toc152606399'><span style='mso-bookmark:_Toc152605228'><span
    style='mso-bookmark:_Toc115416278'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    LogonScript</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
--- 5495,5503 ----
   <tr style='mso-yfti-irow:2;height:139.0pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:139.0pt'>
!   <h5><a name="_Toc154229549"></a><a name="_Toc152605228"></a><a
!   name="_Toc115416278"></a><a name="_Toc126872347"></a><a name="_Toc139993270"></a><span
!   style='mso-bookmark:_Toc154229549'><span style='mso-bookmark:_Toc152605228'><span
    style='mso-bookmark:_Toc115416278'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    LogonScript</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
***************
*** 5470,5478 ****
   <tr style='mso-yfti-irow:3;height:105.5pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:105.5pt'>
!   <h5><a name="_Toc152606400"></a><a name="_Toc152605229"></a><a
!   name="_Toc115416279"></a><a name="_Toc139993271"></a><a name="_Toc126872348"></a><span
!   style='mso-bookmark:_Toc152606400'><span style='mso-bookmark:_Toc152605229'><span
    style='mso-bookmark:_Toc115416279'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    LoginRetryInterval</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
--- 5516,5524 ----
   <tr style='mso-yfti-irow:3;height:105.5pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:105.5pt'>
!   <h5><a name="_Toc154229550"></a><a name="_Toc152605229"></a><a
!   name="_Toc115416279"></a><a name="_Toc126872348"></a><a name="_Toc139993271"></a><span
!   style='mso-bookmark:_Toc154229550'><span style='mso-bookmark:_Toc152605229'><span
    style='mso-bookmark:_Toc115416279'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    LoginRetryInterval</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
***************
*** 5488,5496 ****
   <tr style='mso-yfti-irow:4;height:79.25pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:79.25pt'>
!   <h5><a name="_Toc152606401"></a><a name="_Toc152605230"></a><a
!   name="_Toc115416280"></a><a name="_Toc139993272"></a><a name="_Toc126872349"></a><span
!   style='mso-bookmark:_Toc152606401'><span style='mso-bookmark:_Toc152605230'><span
    style='mso-bookmark:_Toc115416280'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    LoginSleepInterval</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
--- 5534,5542 ----
   <tr style='mso-yfti-irow:4;height:79.25pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:79.25pt'>
!   <h5><a name="_Toc154229551"></a><a name="_Toc152605230"></a><a
!   name="_Toc115416280"></a><a name="_Toc126872349"></a><a name="_Toc139993272"></a><span
!   style='mso-bookmark:_Toc154229551'><span style='mso-bookmark:_Toc152605230'><span
    style='mso-bookmark:_Toc115416280'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    LoginSleepInterval</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
***************
*** 5503,5513 ****
   <tr style='mso-yfti-irow:5;mso-yfti-lastrow:yes;height:78.5pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:78.5pt'>
!   <h5><a name="_Toc152606402"></a><a name="_Toc152605231"></a><a
!   name="_Toc139993273"></a><a name="_Toc126872350"></a><a name="_Toc115416281"></a><a
!   name="_Value:_TheseCells"></a><span style='mso-bookmark:_Toc152606402'><span
!   style='mso-bookmark:_Toc152605231'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
!   TheseCells</span></span></span><span style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: REG_MULTI_SZ<br>
    NSIS: &lt;not set&gt;</p>
    <p class=MsoBodyText>When Kerberos 5 is being used, TheseCells provides a
--- 5549,5560 ----
   <tr style='mso-yfti-irow:5;mso-yfti-lastrow:yes;height:78.5pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:78.5pt'>
!   <h5><a name="_Toc154229552"></a><a name="_Toc152605231"></a><a
!   name="_Value:_TheseCells"></a><a name="_Toc115416281"></a><a
!   name="_Toc126872350"></a><a name="_Toc139993273"></a><span style='mso-bookmark:
!   _Toc154229552'><span style='mso-bookmark:_Toc152605231'><span
!   style='mso-fareast-font-family:"Times New Roman"'>Value: TheseCells</span></span></span><span
!   style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: REG_MULTI_SZ<br>
    NSIS: &lt;not set&gt;</p>
    <p class=MsoBodyText>When Kerberos 5 is being used, TheseCells provides a
***************
*** 5517,5525 ****
   </tr>
  </table>
  
! <h3><a name="_Toc152606403"></a><a name="_Toc152605232"></a><a
  name="_Toc115416282"></a><a name="_Toc139993274"></a><a name="_Toc126872351"></a><span
! style='mso-bookmark:_Toc152606403'><span style='mso-bookmark:_Toc152605232'><span
  style='mso-bookmark:_Toc115416282'>A.2.1.2 Selection of effective values for
  domain specific configuration</span></span></span></h3>
  
--- 5564,5572 ----
   </tr>
  </table>
  
! <h3><a name="_Toc154229553"></a><a name="_Toc152605232"></a><a
  name="_Toc115416282"></a><a name="_Toc139993274"></a><a name="_Toc126872351"></a><span
! style='mso-bookmark:_Toc154229553'><span style='mso-bookmark:_Toc152605232'><span
  style='mso-bookmark:_Toc115416282'>A.2.1.2 Selection of effective values for
  domain specific configuration</span></span></span></h3>
  
***************
*** 5530,5537 ****
  
  <p class=MsoBodyText style='margin-left:36.0pt;text-indent:-18.0pt'>1.<span
  style='font-size:7.0pt;font-family:"Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
! </span>NP key.
! (&quot;HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider&quot;)</p>
  
  <p class=MsoBodyText style='margin-left:36.0pt;text-indent:-18.0pt'>2.<span
  style='font-size:7.0pt;font-family:"Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
--- 5577,5583 ----
  
  <p class=MsoBodyText style='margin-left:36.0pt;text-indent:-18.0pt'>1.<span
  style='font-size:7.0pt;font-family:"Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
! </span>NP key. (&quot;HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider&quot;)</p>
  
  <p class=MsoBodyText style='margin-left:36.0pt;text-indent:-18.0pt'>2.<span
  style='font-size:7.0pt;font-family:"Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
***************
*** 5553,5569 ****
  used.&nbsp; To re-iterate, a value in a more specific key supercedes a value in
  a less specific key.&nbsp; The exceptions to this rule are stated below.</p>
  
! <h3><a name="_Toc152606404"></a><a name="_Toc152605233"></a><a
  name="_Toc115416283"></a><a name="_Toc139993275"></a><a name="_Toc126872352"></a><span
! style='mso-bookmark:_Toc152606404'><span style='mso-bookmark:_Toc152605233'><span
  style='mso-bookmark:_Toc115416283'>A.2.1.3 Exceptions to A.2.1.2</span></span></span></h3>
  
  <p class=MsoBodyText>To retain backwards compatibility, the following
  exceptions are made to 2.1.2.</p>
  
! <h4><a name="_Toc152606405"></a><a name="_Toc152605234"></a><a
  name="_Toc115416284"></a><a name="_Toc139993276"></a><a name="_Toc126872353"></a><span
! style='mso-bookmark:_Toc152606405'><span style='mso-bookmark:_Toc152605234'><span
  style='mso-bookmark:_Toc115416284'>2.1.3.1 'FailLoginsSilently'</span></span></span></h4>
  
  <p class=MsoBodyText>Historically, the 'FailLoginsSilently' value was in
--- 5599,5615 ----
  used.&nbsp; To re-iterate, a value in a more specific key supercedes a value in
  a less specific key.&nbsp; The exceptions to this rule are stated below.</p>
  
! <h3><a name="_Toc154229554"></a><a name="_Toc152605233"></a><a
  name="_Toc115416283"></a><a name="_Toc139993275"></a><a name="_Toc126872352"></a><span
! style='mso-bookmark:_Toc154229554'><span style='mso-bookmark:_Toc152605233'><span
  style='mso-bookmark:_Toc115416283'>A.2.1.3 Exceptions to A.2.1.2</span></span></span></h3>
  
  <p class=MsoBodyText>To retain backwards compatibility, the following
  exceptions are made to 2.1.2.</p>
  
! <h4><a name="_Toc154229555"></a><a name="_Toc152605234"></a><a
  name="_Toc115416284"></a><a name="_Toc139993276"></a><a name="_Toc126872353"></a><span
! style='mso-bookmark:_Toc154229555'><span style='mso-bookmark:_Toc152605234'><span
  style='mso-bookmark:_Toc115416284'>2.1.3.1 'FailLoginsSilently'</span></span></span></h4>
  
  <p class=MsoBodyText>Historically, the 'FailLoginsSilently' value was in
***************
*** 5572,5580 ****
  Parameters key will supercede all instances of this value in other keys.&nbsp;
  In the absence of this value in the Parameters key, normal scope rules apply.</p>
  
! <h4><a name="_Toc152606406"></a><a name="_Toc152605235"></a><a
  name="_Toc115416285"></a><a name="_Toc139993277"></a><a name="_Toc126872354"></a><span
! style='mso-bookmark:_Toc152606406'><span style='mso-bookmark:_Toc152605235'><span
  style='mso-bookmark:_Toc115416285'>2.1.3.2 'LogonScript'</span></span></span></h4>
  
  <p class=MsoBodyText>If a 'LogonScript' is not specified in the specific domain
--- 5618,5626 ----
  Parameters key will supercede all instances of this value in other keys.&nbsp;
  In the absence of this value in the Parameters key, normal scope rules apply.</p>
  
! <h4><a name="_Toc154229556"></a><a name="_Toc152605235"></a><a
  name="_Toc115416285"></a><a name="_Toc139993277"></a><a name="_Toc126872354"></a><span
! style='mso-bookmark:_Toc154229556'><span style='mso-bookmark:_Toc152605235'><span
  style='mso-bookmark:_Toc115416285'>2.1.3.2 'LogonScript'</span></span></span></h4>
  
  <p class=MsoBodyText>If a 'LogonScript' is not specified in the specific domain
***************
*** 5584,5600 ****
  will be used regardless of the high security setting.&nbsp; Please be aware of
  this when setting this value.</p>
  
! <h2><a name="_Toc152606407"></a><a name="_Toc152605236"></a><a
  name="_Toc115416286"></a><a name="_Toc139993278"></a><a name="_Toc126872355"></a><a
! name="_Toc115417107"></a><span style='mso-bookmark:_Toc152606407'><span
  style='mso-bookmark:_Toc152605236'><span style='mso-bookmark:_Toc115416286'>A.3.
  AFS Credentials System Tray Tool parameters</span></span></span></h2>
  
  <p class=MsoBodyText>Affects the behavior of afscreds.exe</p>
  
! <h3><a name="_Toc152606408"></a><a name="_Toc152605237"></a><a
  name="_Toc115416287"></a><a name="_Toc139993279"></a><a name="_Toc126872356"></a><span
! style='mso-bookmark:_Toc152606408'><span style='mso-bookmark:_Toc152605237'><span
  style='mso-bookmark:_Toc115416287'>Regkey:<br>
  [HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters]</span></span></span></h3>
  
--- 5630,5646 ----
  will be used regardless of the high security setting.&nbsp; Please be aware of
  this when setting this value.</p>
  
! <h2><a name="_Toc154229557"></a><a name="_Toc152605236"></a><a
  name="_Toc115416286"></a><a name="_Toc139993278"></a><a name="_Toc126872355"></a><a
! name="_Toc115417107"></a><span style='mso-bookmark:_Toc154229557'><span
  style='mso-bookmark:_Toc152605236'><span style='mso-bookmark:_Toc115416286'>A.3.
  AFS Credentials System Tray Tool parameters</span></span></span></h2>
  
  <p class=MsoBodyText>Affects the behavior of afscreds.exe</p>
  
! <h3><a name="_Toc154229558"></a><a name="_Toc152605237"></a><a
  name="_Toc115416287"></a><a name="_Toc139993279"></a><a name="_Toc126872356"></a><span
! style='mso-bookmark:_Toc154229558'><span style='mso-bookmark:_Toc152605237'><span
  style='mso-bookmark:_Toc115416287'>Regkey:<br>
  [HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters]</span></span></span></h3>
  
***************
*** 5603,5611 ****
   <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes;height:92.0pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:92.0pt'>
!   <h5><a name="_Toc152606409"></a><a name="_Toc152605238"></a><a
!   name="_Toc115416288"></a><a name="_Toc139993280"></a><a name="_Toc126872357"></a><span
!   style='mso-bookmark:_Toc152606409'><span style='mso-bookmark:_Toc152605238'><span
    style='mso-bookmark:_Toc115416288'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    Gateway</span></span></span></span><span style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: REG_SZ<br>
--- 5649,5657 ----
   <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes;height:92.0pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:92.0pt'>
!   <h5><a name="_Toc154229559"></a><a name="_Toc152605238"></a><a
!   name="_Toc115416288"></a><a name="_Toc126872357"></a><a name="_Toc139993280"></a><span
!   style='mso-bookmark:_Toc154229559'><span style='mso-bookmark:_Toc152605238'><span
    style='mso-bookmark:_Toc115416288'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    Gateway</span></span></span></span><span style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: REG_SZ<br>
***************
*** 5618,5626 ****
   <tr style='mso-yfti-irow:1;mso-yfti-lastrow:yes;height:92.0pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:92.0pt'>
!   <h5><a name="_Toc152606410"></a><a name="_Toc152605239"></a><a
!   name="_Toc115416289"></a><a name="_Toc139993281"></a><a name="_Toc126872358"></a><span
!   style='mso-bookmark:_Toc152606410'><span style='mso-bookmark:_Toc152605239'><span
    style='mso-bookmark:_Toc115416289'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    Cell</span></span></span></span><span style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: REG_SZ<br>
--- 5664,5672 ----
   <tr style='mso-yfti-irow:1;mso-yfti-lastrow:yes;height:92.0pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:92.0pt'>
!   <h5><a name="_Toc154229560"></a><a name="_Toc152605239"></a><a
!   name="_Toc115416289"></a><a name="_Toc126872358"></a><a name="_Toc139993281"></a><span
!   style='mso-bookmark:_Toc154229560'><span style='mso-bookmark:_Toc152605239'><span
    style='mso-bookmark:_Toc115416289'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    Cell</span></span></span></span><span style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: REG_SZ<br>
***************
*** 5632,5640 ****
   </tr>
  </table>
  
! <h3><a name="_Toc152606411"></a><a name="_Toc152605240"></a><a
  name="_Toc115416290"></a><a name="_Toc139993282"></a><a name="_Toc126872359"></a><span
! style='mso-bookmark:_Toc152606411'><span style='mso-bookmark:_Toc152605240'><span
  style='mso-bookmark:_Toc115416290'>Regkey:<br>
  [HKLM\SOFTWARE\OpenAFS\Client]<br>
  [HKCU\SOFTWARE\OpenAFS\Client]</span></span></span></h3>
--- 5678,5686 ----
   </tr>
  </table>
  
! <h3><a name="_Toc154229561"></a><a name="_Toc152605240"></a><a
  name="_Toc115416290"></a><a name="_Toc139993282"></a><a name="_Toc126872359"></a><span
! style='mso-bookmark:_Toc154229561'><span style='mso-bookmark:_Toc152605240'><span
  style='mso-bookmark:_Toc115416290'>Regkey:<br>
  [HKLM\SOFTWARE\OpenAFS\Client]<br>
  [HKCU\SOFTWARE\OpenAFS\Client]</span></span></span></h3>
***************
*** 5644,5661 ****
   <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes;height:157.5pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:157.5pt'>
!   <h5><a name="_Toc152606412"></a><a name="_Toc152605241"></a><a
!   name="_Toc115416291"></a><a name="_Toc139993283"></a><a name="_Toc126872360"></a><span
!   style='mso-bookmark:_Toc152606412'><span style='mso-bookmark:_Toc152605241'><span
    style='mso-bookmark:_Toc115416291'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    ShowTrayIcon</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: DWORD {0, 1}<br>
    Default: 1<br>
    Function: InitApp(), Main_OnCheckTerminate()</p>
!   <p class=MsoBodyText>This value is used to determine whether or not a shortcut
!   should be maintained in the user's Start Menu-&gt;Programs-&gt;Startup
!   folder. </p>
    <p class=MsoBodyText>This value used to be stored at
    [HKLM\Software\TransarcCorporation\AFS Client\AfsCreds].</p>
    <p class=MsoBodyText>The current user value is checked first; if it does not
--- 5690,5707 ----
   <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes;height:157.5pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:157.5pt'>
!   <h5><a name="_Toc154229562"></a><a name="_Toc152605241"></a><a
!   name="_Toc115416291"></a><a name="_Toc126872360"></a><a name="_Toc139993283"></a><span
!   style='mso-bookmark:_Toc154229562'><span style='mso-bookmark:_Toc152605241'><span
    style='mso-bookmark:_Toc115416291'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    ShowTrayIcon</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: DWORD {0, 1}<br>
    Default: 1<br>
    Function: InitApp(), Main_OnCheckTerminate()</p>
!   <p class=MsoBodyText>This value is used to determine whether or not a
!   shortcut should be maintained in the user's Start
!   Menu-&gt;Programs-&gt;Startup folder. </p>
    <p class=MsoBodyText>This value used to be stored at
    [HKLM\Software\TransarcCorporation\AFS Client\AfsCreds].</p>
    <p class=MsoBodyText>The current user value is checked first; if it does not
***************
*** 5665,5674 ****
   <tr style='mso-yfti-irow:1;height:119.0pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:119.0pt'>
!   <h5><a name="_Toc152606413"></a><a name="_Toc152605242"></a><a
!   name="_Toc115416292"></a><a name="_Value:_EnableKFW"></a><a name=EnableKFW></a><a
!   name="_Toc139993284"></a><a name="_Toc126872361"></a><span style='mso-bookmark:
!   _Toc152606413'><span style='mso-bookmark:_Toc152605242'><span
    style='mso-bookmark:_Toc115416292'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    EnableKFW</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
--- 5711,5720 ----
   <tr style='mso-yfti-irow:1;height:119.0pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:119.0pt'>
!   <h5><a name="_Toc154229563"></a><a name="_Toc152605242"></a><a
!   name="_Toc115416292"></a><a name="_Toc126872361"></a><a name="_Toc139993284"></a><a
!   name=EnableKFW></a><a name="_Value:_EnableKFW"></a><span style='mso-bookmark:
!   _Toc154229563'><span style='mso-bookmark:_Toc152605242'><span
    style='mso-bookmark:_Toc115416292'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    EnableKFW</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
***************
*** 5685,5694 ****
   <tr style='mso-yfti-irow:2;height:119.0pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:119.0pt'>
!   <h5><a name="_Toc152606414"></a><a name="_Toc152605243"></a><a
!   name="_Value:_Use524"></a><a name=Use524></a><a name="_Toc139993285"></a><a
!   name="_Toc126872362"></a><a name="_Toc115416293"></a><a
!   name="_Value___:_Use524"></a><span style='mso-bookmark:_Toc152606414'><span
    style='mso-bookmark:_Toc152605243'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    Use524</span></span></span><span style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: DWORD {0, 1}<br>
--- 5731,5740 ----
   <tr style='mso-yfti-irow:2;height:119.0pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:119.0pt'>
!   <h5><a name="_Toc154229564"></a><a name="_Toc152605243"></a><a
!   name="_Value___:_Use524"></a><a name="_Toc115416293"></a><a
!   name="_Toc126872362"></a><a name="_Toc139993285"></a><a name=Use524></a><a
!   name="_Value:_Use524"></a><span style='mso-bookmark:_Toc154229564'><span
    style='mso-bookmark:_Toc152605243'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    Use524</span></span></span><span style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: DWORD {0, 1}<br>
***************
*** 5704,5713 ****
   <tr style='mso-yfti-irow:3;mso-yfti-lastrow:yes;height:251.5pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:251.5pt'>
!   <h5><a name="_Toc152606415"></a><a name="_Toc152605244"></a><a
!   name="_Toc139993286"></a><a name="_Toc126872363"></a><a name="_Toc115416294"></a><a
!   name="_Value___:_AfscredsShortcutParams"></a><span style='mso-bookmark:_Toc152606415'><span
!   style='mso-bookmark:_Toc152605244'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    AfscredsShortcutParams</span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: REG_SZ<br>
--- 5750,5760 ----
   <tr style='mso-yfti-irow:3;mso-yfti-lastrow:yes;height:251.5pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:251.5pt'>
!   <h5><a name="_Toc154229565"></a><a name="_Toc152605244"></a><a
!   name="_Value___:_AfscredsShortcutParams"></a><a name="_Toc115416294"></a><a
!   name="_Toc126872363"></a><a name="_Toc139993286"></a><span style='mso-bookmark:
!   _Toc154229565'><span style='mso-bookmark:_Toc152605244'><span
!   style='mso-fareast-font-family:"Times New Roman"'>Value:
    AfscredsShortcutParams</span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
    <p class=MsoBodyText>Type: REG_SZ<br>
***************
*** 5733,5741 ****
   </tr>
  </table>
  
! <h3><a name="_Toc152606416"></a><a name="_Toc152605245"></a><a
  name="_Toc115416295"></a><a name="_Toc139993287"></a><a name="_Toc126872364"></a><span
! style='mso-bookmark:_Toc152606416'><span style='mso-bookmark:_Toc152605245'><span
  style='mso-bookmark:_Toc115416295'>Regkey:<br>
  [HKCU\SOFTWARE\OpenAFS\Client]</span></span></span></h3>
  
--- 5780,5788 ----
   </tr>
  </table>
  
! <h3><a name="_Toc154229566"></a><a name="_Toc152605245"></a><a
  name="_Toc115416295"></a><a name="_Toc139993287"></a><a name="_Toc126872364"></a><span
! style='mso-bookmark:_Toc154229566'><span style='mso-bookmark:_Toc152605245'><span
  style='mso-bookmark:_Toc115416295'>Regkey:<br>
  [HKCU\SOFTWARE\OpenAFS\Client]</span></span></span></h3>
  
***************
*** 5745,5753 ****
    height:92.0pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:92.0pt'>
!   <h5><a name="_Toc152606417"></a><a name="_Toc152605246"></a><a
!   name="_Toc115416296"></a><a name="_Toc139993288"></a><a name="_Toc126872365"></a><span
!   style='mso-bookmark:_Toc152606417'><span style='mso-bookmark:_Toc152605246'><span
    style='mso-bookmark:_Toc115416296'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    Authentication Cell</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
--- 5792,5800 ----
    height:92.0pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:92.0pt'>
!   <h5><a name="_Toc154229567"></a><a name="_Toc152605246"></a><a
!   name="_Toc115416296"></a><a name="_Toc126872365"></a><a name="_Toc139993288"></a><span
!   style='mso-bookmark:_Toc154229567'><span style='mso-bookmark:_Toc152605246'><span
    style='mso-bookmark:_Toc115416296'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    Authentication Cell</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
***************
*** 5760,5768 ****
   </tr>
  </table>
  
! <h3><a name="_Toc152606418"></a><a name="_Toc152605247"></a><a
  name="_Toc115416297"></a><a name="_Toc139993289"></a><a name="_Toc126872366"></a><span
! style='mso-bookmark:_Toc152606418'><span style='mso-bookmark:_Toc152605247'><span
  style='mso-bookmark:_Toc115416297'>Regkey:<br>
  [HKCU\SOFTWARE\OpenAFS\Client\Reminders]</span></span></span></h3>
  
--- 5807,5815 ----
   </tr>
  </table>
  
! <h3><a name="_Toc154229568"></a><a name="_Toc152605247"></a><a
  name="_Toc115416297"></a><a name="_Toc139993289"></a><a name="_Toc126872366"></a><span
! style='mso-bookmark:_Toc154229568'><span style='mso-bookmark:_Toc152605247'><span
  style='mso-bookmark:_Toc115416297'>Regkey:<br>
  [HKCU\SOFTWARE\OpenAFS\Client\Reminders]</span></span></span></h3>
  
***************
*** 5772,5780 ****
    height:124.75pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:124.75pt'>
!   <h5><a name="_Toc152606419"></a><a name="_Toc152605248"></a><a
!   name="_Toc115416298"></a><a name="_Toc139993290"></a><a name="_Toc126872367"></a><span
!   style='mso-bookmark:_Toc152606419'><span style='mso-bookmark:_Toc152605248'><span
    style='mso-bookmark:_Toc115416298'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    &quot;afs cell name&quot;</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
--- 5819,5827 ----
    height:124.75pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:124.75pt'>
!   <h5><a name="_Toc154229569"></a><a name="_Toc152605248"></a><a
!   name="_Toc115416298"></a><a name="_Toc126872367"></a><a name="_Toc139993290"></a><span
!   style='mso-bookmark:_Toc154229569'><span style='mso-bookmark:_Toc152605248'><span
    style='mso-bookmark:_Toc115416298'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    &quot;afs cell name&quot;</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
***************
*** 5789,5797 ****
   </tr>
  </table>
  
! <h3><a name="_Toc152606420"></a><a name="_Toc152605249"></a><a
  name="_Toc115416299"></a><a name="_Toc139993291"></a><a name="_Toc126872368"></a><span
! style='mso-bookmark:_Toc152606420'><span style='mso-bookmark:_Toc152605249'><span
  style='mso-bookmark:_Toc115416299'>Regkey:<br>
  [HKCU\SOFTWARE\OpenAFS\Client\Active Maps]</span></span></span></h3>
  
--- 5836,5844 ----
   </tr>
  </table>
  
! <h3><a name="_Toc154229570"></a><a name="_Toc152605249"></a><a
  name="_Toc115416299"></a><a name="_Toc139993291"></a><a name="_Toc126872368"></a><span
! style='mso-bookmark:_Toc154229570'><span style='mso-bookmark:_Toc152605249'><span
  style='mso-bookmark:_Toc115416299'>Regkey:<br>
  [HKCU\SOFTWARE\OpenAFS\Client\Active Maps]</span></span></span></h3>
  
***************
*** 5801,5809 ****
    height:98.5pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:98.5pt'>
!   <h5><a name="_Toc152606421"></a><a name="_Toc152605250"></a><a
!   name="_Toc115416300"></a><a name="_Toc139993292"></a><a name="_Toc126872369"></a><span
!   style='mso-bookmark:_Toc152606421'><span style='mso-bookmark:_Toc152605250'><span
    style='mso-bookmark:_Toc115416300'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    &quot;upper case drive letter&quot;</span></span></span></span><span
    style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
--- 5848,5856 ----
    height:98.5pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:98.5pt'>
!   <h5><a name="_Toc154229571"></a><a name="_Toc152605250"></a><a
!   name="_Toc115416300"></a><a name="_Toc126872369"></a><a name="_Toc139993292"></a><span
!   style='mso-bookmark:_Toc154229571'><span style='mso-bookmark:_Toc152605250'><span
    style='mso-bookmark:_Toc115416300'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    &quot;upper case drive letter&quot;</span></span></span></span><span
    style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
***************
*** 5816,5824 ****
   </tr>
  </table>
  
! <h3><a name="_Toc152606422"></a><a name="_Toc152605251"></a><a
  name="_Toc115416301"></a><a name="_Toc139993293"></a><a name="_Toc126872370"></a><span
! style='mso-bookmark:_Toc152606422'><span style='mso-bookmark:_Toc152605251'><span
  style='mso-bookmark:_Toc115416301'>Regkey:<br>
  [HKCU\SOFTWARE\OpenAFS\Client\Mappings]</span></span></span></h3>
  
--- 5863,5871 ----
   </tr>
  </table>
  
! <h3><a name="_Toc154229572"></a><a name="_Toc152605251"></a><a
  name="_Toc115416301"></a><a name="_Toc139993293"></a><a name="_Toc126872370"></a><span
! style='mso-bookmark:_Toc154229572'><span style='mso-bookmark:_Toc152605251'><span
  style='mso-bookmark:_Toc115416301'>Regkey:<br>
  [HKCU\SOFTWARE\OpenAFS\Client\Mappings]</span></span></span></h3>
  
***************
*** 5828,5836 ****
    height:98.5pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:98.5pt'>
!   <h5><a name="_Toc152606423"></a><a name="_Toc152605252"></a><a
!   name="_Toc115416302"></a><a name="_Toc139993294"></a><a name="_Toc126872371"></a><span
!   style='mso-bookmark:_Toc152606423'><span style='mso-bookmark:_Toc152605252'><span
    style='mso-bookmark:_Toc115416302'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    &quot;upper case drive letter&quot;</span></span></span></span><span
    style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
--- 5875,5883 ----
    height:98.5pt'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt;
    height:98.5pt'>
!   <h5><a name="_Toc154229573"></a><a name="_Toc152605252"></a><a
!   name="_Toc115416302"></a><a name="_Toc126872371"></a><a name="_Toc139993294"></a><span
!   style='mso-bookmark:_Toc154229573'><span style='mso-bookmark:_Toc152605252'><span
    style='mso-bookmark:_Toc115416302'><span style='mso-fareast-font-family:"Times New Roman"'>Value:
    &quot;upper case drive letter&quot;</span></span></span></span><span
    style='mso-fareast-font-family:"Times New Roman"'><o:p></o:p></span></h5>
***************
*** 5843,5851 ****
   </tr>
  </table>
  
! <h2><a name="_Toc152606424"></a><a name="_Toc152605253"></a><a
  name="_Toc115416303"></a><a name="_Toc139993295"></a><a name="_Toc126872372"></a><a
! name="_Toc115417108"></a><span style='mso-bookmark:_Toc152606424'><span
  style='mso-bookmark:_Toc152605253'><span style='mso-bookmark:_Toc115416303'>A.4
  OpenAFS Client Service Environment Variables</span></span></span></h2>
  
--- 5890,5898 ----
   </tr>
  </table>
  
! <h2><a name="_Toc154229574"></a><a name="_Toc152605253"></a><a
  name="_Toc115416303"></a><a name="_Toc139993295"></a><a name="_Toc126872372"></a><a
! name="_Toc115417108"></a><span style='mso-bookmark:_Toc154229574'><span
  style='mso-bookmark:_Toc152605253'><span style='mso-bookmark:_Toc115416303'>A.4
  OpenAFS Client Service Environment Variables</span></span></span></h2>
  
***************
*** 5853,5861 ****
   style='mso-cellspacing:2.2pt;mso-padding-alt:0pt 0pt 0pt 0pt'>
   <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt'>
!   <h5><a name="_Toc152606425"></a><a name="_Toc152605254"></a><a
!   name="_Toc115416304"></a><a name="_Toc139993296"></a><a name="_Toc126872373"></a><span
!   style='mso-bookmark:_Toc152606425'><span style='mso-bookmark:_Toc152605254'><span
    style='mso-bookmark:_Toc115416304'><span style='mso-fareast-font-family:"Times New Roman"'>Variable:
    AFS_RPC_ENCRYPT</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
--- 5900,5908 ----
   style='mso-cellspacing:2.2pt;mso-padding-alt:0pt 0pt 0pt 0pt'>
   <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt'>
!   <h5><a name="_Toc154229575"></a><a name="_Toc152605254"></a><a
!   name="_Toc115416304"></a><a name="_Toc126872373"></a><a name="_Toc139993296"></a><span
!   style='mso-bookmark:_Toc154229575'><span style='mso-bookmark:_Toc152605254'><span
    style='mso-bookmark:_Toc115416304'><span style='mso-fareast-font-family:"Times New Roman"'>Variable:
    AFS_RPC_ENCRYPT</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
***************
*** 5866,5874 ****
   </tr>
   <tr style='mso-yfti-irow:1;mso-yfti-lastrow:yes'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt'>
!   <h5><a name="_Toc152606426"></a><a name="_Toc152605255"></a><a
!   name="_Toc115416305"></a><a name="_Toc139993297"></a><a name="_Toc126872374"></a><span
!   style='mso-bookmark:_Toc152606426'><span style='mso-bookmark:_Toc152605255'><span
    style='mso-bookmark:_Toc115416305'><span style='mso-fareast-font-family:"Times New Roman"'>Variable:
    AFS_RPC_PROTSEQ</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
--- 5913,5921 ----
   </tr>
   <tr style='mso-yfti-irow:1;mso-yfti-lastrow:yes'>
    <td width=590 valign=top style='width:442.8pt;padding:0pt 5.4pt 0pt 5.4pt'>
!   <h5><a name="_Toc154229576"></a><a name="_Toc152605255"></a><a
!   name="_Toc115416305"></a><a name="_Toc126872374"></a><a name="_Toc139993297"></a><span
!   style='mso-bookmark:_Toc154229576'><span style='mso-bookmark:_Toc152605255'><span
    style='mso-bookmark:_Toc115416305'><span style='mso-fareast-font-family:"Times New Roman"'>Variable:
    AFS_RPC_PROTSEQ</span></span></span></span><span style='mso-fareast-font-family:
    "Times New Roman"'><o:p></o:p></span></h5>
Index: openafs/src/WINNT/doc/install/Documentation/en_US/html/ReleaseNotes/toc.htm
diff -c openafs/src/WINNT/doc/install/Documentation/en_US/html/ReleaseNotes/toc.htm:1.2.6.4 openafs/src/WINNT/doc/install/Documentation/en_US/html/ReleaseNotes/toc.htm:1.2.6.6
*** openafs/src/WINNT/doc/install/Documentation/en_US/html/ReleaseNotes/toc.htm:1.2.6.4	Wed Nov 29 23:40:12 2006
--- openafs/src/WINNT/doc/install/Documentation/en_US/html/ReleaseNotes/toc.htm	Mon Dec 18 18:20:57 2006
***************
*** 10,16 ****
  <meta name=Originator content="Microsoft Word 11">
  <base target=body>
  <link rel=File-List href="toc_files/filelist.xml">
! <title>OpenAFS for Windows 1.5.12 Table of Contents</title>
  <!--[if gte mso 9]><xml>
   <o:DocumentProperties>
    <o:Author>Jeffrey Altman</o:Author>
--- 10,16 ----
  <meta name=Originator content="Microsoft Word 11">
  <base target=body>
  <link rel=File-List href="toc_files/filelist.xml">
! <title>OpenAFS for Windows 1.5.13 Table of Contents</title>
  <!--[if gte mso 9]><xml>
   <o:DocumentProperties>
    <o:Author>Jeffrey Altman</o:Author>
***************
*** 20,31 ****
    <o:Created>2006-11-30T04:12:00Z</o:Created>
    <o:LastSaved>2006-11-30T04:14:00Z</o:LastSaved>
    <o:Pages>1</o:Pages>
!   <o:Words>6360</o:Words>
!   <o:Characters>36257</o:Characters>
    <o:Company>Secure Endpoints Inc.</o:Company>
!   <o:Lines>302</o:Lines>
    <o:Paragraphs>85</o:Paragraphs>
!   <o:CharactersWithSpaces>42532</o:CharactersWithSpaces>
    <o:Version>11.8107</o:Version>
   </o:DocumentProperties>
  </xml><![endif]--><!--[if gte mso 9]><xml>
--- 20,31 ----
    <o:Created>2006-11-30T04:12:00Z</o:Created>
    <o:LastSaved>2006-11-30T04:14:00Z</o:LastSaved>
    <o:Pages>1</o:Pages>
!   <o:Words>6422</o:Words>
!   <o:Characters>36609</o:Characters>
    <o:Company>Secure Endpoints Inc.</o:Company>
!   <o:Lines>305</o:Lines>
    <o:Paragraphs>85</o:Paragraphs>
!   <o:CharactersWithSpaces>42946</o:CharactersWithSpaces>
    <o:Version>11.8107</o:Version>
   </o:DocumentProperties>
  </xml><![endif]--><!--[if gte mso 9]><xml>
***************
*** 232,238 ****
  	mso-bidi-language:#0400;}
  </style>
  <![endif]--><!--[if gte mso 9]><xml>
!  <o:shapedefaults v:ext="edit" spidmax="3074"/>
  </xml><![endif]--><!--[if gte mso 9]><xml>
   <o:shapelayout v:ext="edit">
    <o:idmap v:ext="edit" data="1"/>
--- 232,238 ----
  	mso-bidi-language:#0400;}
  </style>
  <![endif]--><!--[if gte mso 9]><xml>
!  <o:shapedefaults v:ext="edit" spidmax="4098"/>
  </xml><![endif]--><!--[if gte mso 9]><xml>
   <o:shapelayout v:ext="edit">
    <o:idmap v:ext="edit" data="1"/>
***************
*** 253,1401 ****
  
  <p class=MsoToc1 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606203">1. Installer Options</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc1 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606204">2. System Requirements</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606205">2.1 Supported Operating Systems</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606206">2.1.1 Unsupported Operating Systems</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606207">2.2 Disk Space</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606208">2.3 Additional Software Packages</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc1 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606209">3. Operational Notes</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606210">3.1. Requirements for Kerberos 5 Authentication</a></span></span><span
! style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606211">3.1.1. Active Directory</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606212">3.1.2. Using the krb524 service</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606213">3.1.3. Network Identity Manager Plug-in</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606214">3.2. Use of the Microsoft Loopback Adapter by
  the AFS Client Service</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606215">3.3. Using Freelance (Dynamic Root) Mode to
  Improve Mobility</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606216">3.4. Locating AFS Volume Database Servers via
  DNS</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606217">3.5. Obtaining AFS Tokens as a Integrated
  Part of Windows Logon</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606218">3.6. AFS System Tray Command Line Options</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606219">3.7. The “AFS Client Admins” Authorization
  Group</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606220">3.8. OpenAFS support for UNC paths</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606221">3.9. OpenAFS includes aklog.exe</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606222">3.10. OpenAFS Servers on Windows are
  Unsupported</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606223">3.11. OpenAFS Debugging Symbol files</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606224">3.12. Large Files (64-bit) Supported</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606225">3.13. Encrypted AFS File Access</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606226">3.14. Authenticated Access to the OpenAFS
  Client Service</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606227">3.15. No More INI Files</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606228">3.16. Microsoft Windows Internet Connection
  Firewall</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606229">3.17. Browsing AFS from the Explorer Shell
  and Office</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606230">3.18. Byte Range Locking</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606231">3.19. Automatic Discarding of AFS Tokens at
  Logoff</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606232">3.20. Windows Terminal Server installations</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606233">3.21. Hidden Dot Files</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606234">3.22. Status Cache Limits</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606235">3.23. NETBIOS over TCP/IP must be enabled</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606236">3.24. OpenAFS binaries are digitally signed</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606237">3.25. Maximum Size of the AFSCache File</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606238">3.26. Filename Character Sets</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606239">3.27. Known Character Set Issues with Roaming
  Profiles</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606240">3.28. The AFSCache File</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606241">3.29. Restricting OpenAFS Client Service Start
! and Stop</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606242">3.30. The @sys Name List</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606243">3.31. Symlinks to AFS UNC paths</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606244">3.32. Cache Manager Debugging Now Supported</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606245">3.33. Windows Logon Caching vs. Kerberos
  Logons</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606246">3.34. Initial Server Preferences</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606247">3.35. File Timestamps</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606248">3.36. Windows RPC client support must be
  installed</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606249">3.37. Generating Minidumps of the OpenAFS
! Client Service</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606250">3.38. AFS Client Universally Unique
  Identifiers</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606251">3.39. Delayed Write Errors with Microsoft
  Office Applications</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606252">3.40. Global Drives (aka Service Drive
  Letters) are no longer supported by Microsoft</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606253">3.41. 64-bit Microsoft Windows Installations</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606254">3.42. Known Issues with Microsoft Windows
  Vista</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc1 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606255">4. How to Debug Problems with OpenAFS for
  Windows:</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606256">4.1. pioctl debugging (IoctlDebug registry
  key)</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606257">4.2. afsd_service initialization log
  (%WinDir%\TEMP\afsd_init.log)</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606258">4.3. afsd_service debug logs (fs trace {-on,
  -off, -dump} -&gt;%WinDir%\TEMP\afsd.log)</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606259">4.4. Using SysInternal’s DbgView and FileMon
  Tools</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606260">4.5. Microsoft MiniDumps<span
  style='mso-spacerun:yes'>  </span>(fs minidump -&gt; %WinDir%\TEMP\afsd.dmp)</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606261">4.6. Single Sign-on (Integrated Logon)
  debugging</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606262">4.7. RX (AFS RPC) debugging (rxdebug)</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606263">4.8. Cache Manager debugging (cmdebug)</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606264">4.9. Persistent Cache consistency check</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc1 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606265">5. Reporting Bugs:</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc1 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606266">6. How to Contribute to the Development of
  OpenAFS for Windows</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606267">6.1. The USENIX OpenAFS Fund</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606268">6.2. Secure Endpoints Inc.</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606269">6.3. Direct contributions of code and/or
  documentation</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606270">6.4. OpenAFS for Windows Mailing Lists</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc1 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606271">7. MSI Deployment Guide</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606272">7.1. Introduction</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606273">7.1.1 Requirements</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606274">7.1.2 Authoring a Transform</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606275">7.2. Configuration Options</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606276">7.2.1 Configurable Properties</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc4 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606277">7.2.1.1 Setting Properties</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc4 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606278">7.2.1.2 OpenAFS for Windows Properties</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606279"><span style='mso-fareast-font-family:"Times New Roman"'>(Service
  parameters):</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606280"><span style='mso-fareast-font-family:"Times New Roman"'>(Network
  provider):</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606281"><span style='mso-fareast-font-family:"Times New Roman"'>(OpenAFS
  Client):</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606282">7.2.1.2.1 Registry Properties</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc6 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606283"><span style='mso-fareast-font-family:"Times New Roman"'>AFSCACHEPATH</span></a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc6 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606284"><span style='mso-fareast-font-family:"Times New Roman"'>AFSCACHESIZE</span></a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc6 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606285"><span style='mso-fareast-font-family:"Times New Roman"'>AFSCELLNAME</span></a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc6 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606286"><span style='mso-fareast-font-family:"Times New Roman"'>FREELANCEMODE</span></a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc6 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606287"><span style='mso-fareast-font-family:"Times New Roman"'>HIDEDOTFILES</span></a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc6 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606288"><span style='mso-fareast-font-family:"Times New Roman"'>LOGONOPTIONS</span></a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc6 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606289"><span style='mso-fareast-font-family:"Times New Roman"'>MOUNTROOT</span></a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc6 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606290"><span style='mso-fareast-font-family:"Times New Roman"'>NETBIOSNAME</span></a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc6 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606291"><span style='mso-fareast-font-family:"Times New Roman"'>NOFINDLANABYNAME</span></a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc6 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606292"><span style='mso-fareast-font-family:"Times New Roman"'>RXMAXMTU</span></a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc6 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606293"><span style='mso-fareast-font-family:"Times New Roman"'>SECURITYLEVEL</span></a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc6 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606294"><span style='mso-fareast-font-family:"Times New Roman"'>SMBAUTHTYPE</span></a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc6 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606295"><span style='mso-fareast-font-family:"Times New Roman"'>STOREANSIFILENAMES</span></a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc6 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606296"><span style='mso-fareast-font-family:"Times New Roman"'>USEDNS</span></a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606297">7.2.1.2.2 AFSCreds.exe Properties</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc6 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606298"><span style='mso-fareast-font-family:"Times New Roman"'>CREDSSTARTUP</span></a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc6 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606299"><span style='mso-fareast-font-family:"Times New Roman"'>CREDSAUTOINIT</span></a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc6 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606300"><span style='mso-fareast-font-family:"Times New Roman"'>CREDSIPCHDET</span></a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc6 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606301"><span style='mso-fareast-font-family:"Times New Roman"'>CREDSQUIET</span></a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc6 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606302"><span style='mso-fareast-font-family:"Times New Roman"'>CREDSRENEWDRMAP</span></a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc6 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606303"><span style='mso-fareast-font-family:"Times New Roman"'>CREDSSHOW</span></a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606304">7.2.2 Existing Registry Entries</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606305">7.2.3 Replacing Configuration Files</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc4 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606306">7.2.3.1 Components for Configuration Files</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606307">7.2.4 Adding Domain Specific Registry Keys</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606308">7.2.5 Adding Site Specific Freelance Registry
  Keys</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606309">7.3 Additional Resources</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606310">7.4. Upgrades</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc1 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606311">Appendix A: Registry Values</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606312">A.1. Service parameters</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606313">Regkey:
  [HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters]</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606314"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  LANadapter</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606315"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  CacheSize</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606316"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  ChunkSize</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606317"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  Daemons</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606318"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  ServerThreads</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606319"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  Stats</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606320"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  LogoffPreserveTokens</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606321"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  RootVolume</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606322"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  MountRoot</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606323"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  CachePath</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606324"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  NonPersistentCaching</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606325"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  ValidateCache</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606326"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  TrapOnPanic</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606327"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  NetbiosName</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606328"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  IsGateway</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606329"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  ReportSessionStartups</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606330"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  TraceBufferSize</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606331"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  SysName</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606332"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  SecurityLevel</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606333"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  UseDNS</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606334"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  FreelanceClient</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606335"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  HideDotFiles</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606336"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  MaxMpxRequests</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606337"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  MaxVCPerServer</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606338"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  Cell</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606339"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  RxNoJumbo</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606340"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  RxMaxMTU</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606341"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  ConnDeadTimeout</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606342"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  HardDeadTimeout</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606343"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  TraceOption</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606344"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  AllSubmount</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606345"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  NoFindLanaByName</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606346"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  MaxCPUs</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606347"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  smbAuthType</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606348"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  MaxLogSize</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606349"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  FlushOnHibernate</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606350"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  daemonCheckDownInterval</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606351"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  daemonCheckUpInterval</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606352"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  daemonCheckVolInterval</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606353"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  daemonCheckCBInterval</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606354"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  daemonCheckLockInterval</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606355"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  daemonTokenCheckInterval</span></a></span></span><span style='mso-no-proof:
  yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606356"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  CallBackPort</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606357"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  EnableServerLocks</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606358">Regkey:
  [HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters\GlobalAutoMapper]</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606359"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  &lt;Drive Letter:&gt; for example &quot;G:&quot;</span></a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606360">Regkey: [HKLM\SOFTWARE\OpenAFS\Client]</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606361"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  CellServDBDir</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606362"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  VerifyServiceSignature</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606363"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  IoctlDebug</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606364"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  MiniDumpType</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606365"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  StoreAnsiFilenames</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606366">Regkey:
! [HKLM\SOFTWARE\OpenAFS\Client\CSCPolicy]</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606367"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  &quot;smb/cifs share name&quot;</span></a></span></span><span style='mso-no-proof:
  yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606368">Regkey:
  [HKLM\SOFTWARE\OpenAFS\Client\Freelance]</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606369"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  &quot;numeric value&quot;</span></a></span></span><span style='mso-no-proof:
  yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606370">Regkey:
! [HKLM\SOFTWARE\OpenAFS\Client\Freelance\Symlinks]</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606371"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  &quot;numeric value&quot;</span></a></span></span><span style='mso-no-proof:
  yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606372">Regkey:
  [HKLM\SOFTWARE\OpenAFS\Client\Submounts]</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606373"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  &quot;submount name&quot;</span></a></span></span><span style='mso-no-proof:
  yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606374">Regkey: [HKLM\SOFTWARE\OpenAFS\Client\Server
  Preferences\VLDB]</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606375"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  &quot;hostname or ip address&quot;</span></a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606376">Regkey: [HKLM\SOFTWARE\OpenAFS\Client\Server
  Preferences\File]</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606377"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  &quot;hostname or ip address&quot;</span></a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606378">A.2. Integrated Logon Network provider
  parameters</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606379">Regkey: [HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters]</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606380"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  FailLoginsSilently</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606381">Regkey:
  [HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider]</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606382"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  NoWarnings</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606383"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  AuthentProviderPath</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606384"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  Class</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606385"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  DependOnGroup</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606386"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  DependOnService</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606387"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  Name</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606388"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  ProviderPath</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606389">A.2.1 Domain specific configuration keys for
  the Network Provider</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606390">[HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider]</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606391">[HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider\Domain]</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606392">[HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider\Domain&quot;domain
  name&quot;]</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606393">[HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider\Domain\LOCALHOST]</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606394">Example:</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606395">A.2.1.1 Domain specific configuration values</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc4 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606396">[HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider]
  [HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider\Domain]
  [HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider\Domain&quot;domain
! name&quot;] [HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider\Domain\LOCALHOST]</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606397"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  LogonOptions</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606398"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  FailLoginsSilentl</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606399"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  LogonScript</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606400"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  LoginRetryInterval</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606401"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  LoginSleepInterval</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606402"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  TheseCells</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606403">A.2.1.2 Selection of effective values for
  domain specific configuration</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606404">A.2.1.3 Exceptions to A.2.1.2</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc4 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606405">2.1.3.1 'FailLoginsSilently'</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc4 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606406">2.1.3.2 'LogonScript'</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606407">A.3. AFS Credentials System Tray Tool
  parameters</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606408">Regkey:
  [HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters]</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606409"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  Gateway</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606410"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  Cell</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606411">Regkey: [HKLM\SOFTWARE\OpenAFS\Client]
  [HKCU\SOFTWARE\OpenAFS\Client]</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606412"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  ShowTrayIcon</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606413"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  EnableKFW</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606414"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  Use524</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606415"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  AfscredsShortcutParams</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606416">Regkey: [HKCU\SOFTWARE\OpenAFS\Client]</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606417"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  Authentication Cell</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606418">Regkey:
  [HKCU\SOFTWARE\OpenAFS\Client\Reminders]</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606419"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  &quot;afs cell name&quot;</span></a></span></span><span style='mso-no-proof:
  yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606420">Regkey: [HKCU\SOFTWARE\OpenAFS\Client\Active
  Maps]</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606421"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  &quot;upper case drive letter&quot;</span></a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606422">Regkey:
  [HKCU\SOFTWARE\OpenAFS\Client\Mappings]</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606423"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  &quot;upper case drive letter&quot;</span></a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606424">A.4 OpenAFS Client Service Environment
  Variables</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606425"><span style='mso-fareast-font-family:"Times New Roman"'>Variable:
  AFS_RPC_ENCRYPT</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc152606426"><span style='mso-fareast-font-family:"Times New Roman"'>Variable:
  AFS_RPC_PROTSEQ</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoNormal><!--[if supportFields]><span style='mso-element:field-end'></span><![endif]--><o:p>&nbsp;</o:p></p>
--- 253,1410 ----
  
  <p class=MsoToc1 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229351">1. Installer Options</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc1 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229352">2. System Requirements</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229353">2.1 Supported Operating Systems</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229354">2.1.1 Unsupported Operating Systems</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229355">2.2 Disk Space</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229356">2.3 Additional Software Packages</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc1 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229357">3. Operational Notes</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229358">3.1. Requirements for Kerberos 5
! Authentication</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229359">3.1.1. Active Directory</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229360">3.1.2. Using the krb524 service</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229361">3.1.3. Network Identity Manager Plug-in</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229362">3.2. Use of the Microsoft Loopback Adapter by
  the AFS Client Service</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229363">3.3. Using Freelance (Dynamic Root) Mode to
  Improve Mobility</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229364">3.4. Locating AFS Volume Database Servers via
  DNS</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229365">3.5. Obtaining AFS Tokens as a Integrated
  Part of Windows Logon</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229366">3.6. AFS System Tray Command Line Options</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229367">3.7. The “AFS Client Admins” Authorization
  Group</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229368">3.8. OpenAFS support for UNC paths</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229369">3.9. OpenAFS includes aklog.exe</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229370">3.10. OpenAFS Servers on Windows are
  Unsupported</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
+ <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
+ class=MsoHyperlink><span style='mso-no-proof:yes'><a
+ href="relnotes.htm#_Toc154229371">3.10.1. OpenAFS Server Installation</a></span></span><span
+ style='mso-no-proof:yes'><o:p></o:p></span></p>
+ 
+ <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
+ class=MsoHyperlink><span style='mso-no-proof:yes'><a
+ href="relnotes.htm#_Toc154229372">3.10.2. Using the AFS Client Service when the
+ Server is installed</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
+ 
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229373">3.11. OpenAFS Debugging Symbol files</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229374">3.12. Large Files (64-bit) Supported</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229375">3.13. Encrypted AFS File Access</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229376">3.14. Authenticated Access to the OpenAFS
  Client Service</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229377">3.15. No More INI Files</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229378">3.16. Microsoft Windows Internet Connection
  Firewall</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229379">3.17. Browsing AFS from the Explorer Shell
  and Office</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229380">3.18. Byte Range Locking</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229381">3.19. Automatic Discarding of AFS Tokens at
  Logoff</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229382">3.20. Windows Terminal Server installations</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229383">3.21. Hidden Dot Files</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229384">3.22. Status Cache Limits</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229385">3.23. NETBIOS over TCP/IP must be enabled</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229386">3.24. OpenAFS binaries are digitally signed</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229387">3.25. Maximum Size of the AFSCache File</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229388">3.26. Filename Character Sets</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229389">3.27. Known Character Set Issues with Roaming
  Profiles</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229390">3.28. The AFSCache File</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229391">3.29. Restricting OpenAFS Client Service
! Start and Stop</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229392">3.30. The @sys Name List</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229393">3.31. Symlinks to AFS UNC paths</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229394">3.32. Cache Manager Debugging Now Supported</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229395">3.33. Windows Logon Caching vs. Kerberos
  Logons</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229396">3.34. Initial Server Preferences</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229397">3.35. File Timestamps</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229398">3.36. Windows RPC client support must be
  installed</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229399">3.37. Generating Minidumps of the OpenAFS Client
! Service</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229400">3.38. AFS Client Universally Unique
  Identifiers</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229401">3.39. Delayed Write Errors with Microsoft
  Office Applications</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229402">3.40. Global Drives (aka Service Drive
  Letters) are no longer supported by Microsoft</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229403">3.41. 64-bit Microsoft Windows Installations</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229404">3.42. Known Issues with Microsoft Windows
  Vista</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc1 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229405">4. How to Debug Problems with OpenAFS for
  Windows:</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229406">4.1. pioctl debugging (IoctlDebug registry
  key)</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229407">4.2. afsd_service initialization log
  (%WinDir%\TEMP\afsd_init.log)</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229408">4.3. afsd_service debug logs (fs trace {-on,
  -off, -dump} -&gt;%WinDir%\TEMP\afsd.log)</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229409">4.4. Using SysInternal’s DbgView and FileMon
  Tools</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229410">4.5. Microsoft MiniDumps<span
  style='mso-spacerun:yes'>  </span>(fs minidump -&gt; %WinDir%\TEMP\afsd.dmp)</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229411">4.6. Single Sign-on (Integrated Logon)
  debugging</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229412">4.7. RX (AFS RPC) debugging (rxdebug)</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229413">4.8. Cache Manager debugging (cmdebug)</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229414">4.9. Persistent Cache consistency check</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc1 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229415">5. Reporting Bugs:</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc1 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229416">6. How to Contribute to the Development of
  OpenAFS for Windows</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229417">6.1. The USENIX OpenAFS Fund</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229418">6.2. Secure Endpoints Inc.</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229419">6.3. Direct contributions of code and/or
  documentation</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229420">6.4. OpenAFS for Windows Mailing Lists</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc1 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229421">7. MSI Deployment Guide</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229422">7.1. Introduction</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229423">7.1.1 Requirements</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229424">7.1.2 Authoring a Transform</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229425">7.2. Configuration Options</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229426">7.2.1 Configurable Properties</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc4 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229427">7.2.1.1 Setting Properties</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc4 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229428">7.2.1.2 OpenAFS for Windows Properties</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229429"><span style='mso-fareast-font-family:"Times New Roman"'>(Service
  parameters):</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229430"><span style='mso-fareast-font-family:"Times New Roman"'>(Network
  provider):</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229431"><span style='mso-fareast-font-family:"Times New Roman"'>(OpenAFS
  Client):</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229432">7.2.1.2.1 Registry Properties</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc6 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229433"><span style='mso-fareast-font-family:"Times New Roman"'>AFSCACHEPATH</span></a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc6 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229434"><span style='mso-fareast-font-family:"Times New Roman"'>AFSCACHESIZE</span></a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc6 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229435"><span style='mso-fareast-font-family:"Times New Roman"'>AFSCELLNAME</span></a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc6 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229436"><span style='mso-fareast-font-family:"Times New Roman"'>FREELANCEMODE</span></a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc6 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229437"><span style='mso-fareast-font-family:"Times New Roman"'>HIDEDOTFILES</span></a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc6 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229438"><span style='mso-fareast-font-family:"Times New Roman"'>LOGONOPTIONS</span></a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc6 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229439"><span style='mso-fareast-font-family:"Times New Roman"'>MOUNTROOT</span></a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc6 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229440"><span style='mso-fareast-font-family:"Times New Roman"'>NETBIOSNAME</span></a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc6 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229441"><span style='mso-fareast-font-family:"Times New Roman"'>NOFINDLANABYNAME</span></a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc6 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229442"><span style='mso-fareast-font-family:"Times New Roman"'>RXMAXMTU</span></a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc6 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229443"><span style='mso-fareast-font-family:"Times New Roman"'>SECURITYLEVEL</span></a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc6 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229444"><span style='mso-fareast-font-family:"Times New Roman"'>SMBAUTHTYPE</span></a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc6 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229445"><span style='mso-fareast-font-family:"Times New Roman"'>STOREANSIFILENAMES</span></a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc6 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229446"><span style='mso-fareast-font-family:"Times New Roman"'>USEDNS</span></a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229447">7.2.1.2.2 AFSCreds.exe Properties</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc6 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229448"><span style='mso-fareast-font-family:"Times New Roman"'>CREDSSTARTUP</span></a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc6 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229449"><span style='mso-fareast-font-family:"Times New Roman"'>CREDSAUTOINIT</span></a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc6 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229450"><span style='mso-fareast-font-family:"Times New Roman"'>CREDSIPCHDET</span></a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc6 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229451"><span style='mso-fareast-font-family:"Times New Roman"'>CREDSQUIET</span></a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc6 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229452"><span style='mso-fareast-font-family:"Times New Roman"'>CREDSRENEWDRMAP</span></a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc6 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229453"><span style='mso-fareast-font-family:"Times New Roman"'>CREDSSHOW</span></a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229454">7.2.2 Existing Registry Entries</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229455">7.2.3 Replacing Configuration Files</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc4 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229456">7.2.3.1 Components for Configuration Files</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229457">7.2.4 Adding Domain Specific Registry Keys</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229458">7.2.5 Adding Site Specific Freelance Registry
  Keys</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229459">7.3 Additional Resources</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229460">7.4. Upgrades</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc1 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229461">Appendix A: Registry Values</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229462">A.1. Service parameters</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229463">Regkey:
  [HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters]</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229464"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  LANadapter</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229465"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  CacheSize</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229466"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  ChunkSize</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229467"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  Daemons</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229468"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  ServerThreads</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229469"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  Stats</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229470"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  LogoffPreserveTokens</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229471"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  RootVolume</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229472"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  MountRoot</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229473"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  CachePath</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229474"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  NonPersistentCaching</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229475"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  ValidateCache</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229476"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  TrapOnPanic</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229477"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  NetbiosName</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229478"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  IsGateway</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229479"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  ReportSessionStartups</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229480"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  TraceBufferSize</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229481"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  SysName</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229482"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  SecurityLevel</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229483"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  UseDNS</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229484"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  FreelanceClient</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229485"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  HideDotFiles</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229486"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  MaxMpxRequests</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229487"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  MaxVCPerServer</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229488"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  Cell</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229489"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  RxNoJumbo</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229490"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  RxMaxMTU</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229491"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  ConnDeadTimeout</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229492"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  HardDeadTimeout</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229493"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  TraceOption</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229494"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  AllSubmount</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229495"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  NoFindLanaByName</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229496"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  MaxCPUs</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229497"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  smbAuthType</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229498"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  MaxLogSize</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229499"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  FlushOnHibernate</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229500"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  daemonCheckDownInterval</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229501"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  daemonCheckUpInterval</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229502"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  daemonCheckVolInterval</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229503"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  daemonCheckCBInterval</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229504"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  daemonCheckLockInterval</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229505"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  daemonTokenCheckInterval</span></a></span></span><span style='mso-no-proof:
  yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229506"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  CallBackPort</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229507"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  EnableServerLocks</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229508">Regkey:
  [HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters\GlobalAutoMapper]</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229509"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  &lt;Drive Letter:&gt; for example &quot;G:&quot;</span></a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229510">Regkey: [HKLM\SOFTWARE\OpenAFS\Client]</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229511"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  CellServDBDir</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229512"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  VerifyServiceSignature</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229513"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  IoctlDebug</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229514"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  MiniDumpType</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229515"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  StoreAnsiFilenames</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229516">Regkey: [HKLM\SOFTWARE\OpenAFS\Client\CSCPolicy]</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229517"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  &quot;smb/cifs share name&quot;</span></a></span></span><span style='mso-no-proof:
  yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229518">Regkey:
  [HKLM\SOFTWARE\OpenAFS\Client\Freelance]</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229519"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  &quot;numeric value&quot;</span></a></span></span><span style='mso-no-proof:
  yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229520">Regkey: [HKLM\SOFTWARE\OpenAFS\Client\Freelance\Symlinks]</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229521"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  &quot;numeric value&quot;</span></a></span></span><span style='mso-no-proof:
  yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229522">Regkey:
  [HKLM\SOFTWARE\OpenAFS\Client\Submounts]</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229523"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  &quot;submount name&quot;</span></a></span></span><span style='mso-no-proof:
  yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229524">Regkey: [HKLM\SOFTWARE\OpenAFS\Client\Server
  Preferences\VLDB]</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229525"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  &quot;hostname or ip address&quot;</span></a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229526">Regkey: [HKLM\SOFTWARE\OpenAFS\Client\Server
  Preferences\File]</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229527"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  &quot;hostname or ip address&quot;</span></a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229528">A.2. Integrated Logon Network provider
  parameters</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229529">Regkey: [HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters]</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229530"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  FailLoginsSilently</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229531">Regkey:
  [HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider]</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229532"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  NoWarnings</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229533"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  AuthentProviderPath</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229534"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  Class</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229535"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  DependOnGroup</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229536"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  DependOnService</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229537"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  Name</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229538"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  ProviderPath</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229539">A.2.1 Domain specific configuration keys for
  the Network Provider</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229540">[HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider]</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229541">[HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider\Domain]</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229542">[HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider\Domain&quot;domain
  name&quot;]</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229543">[HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider\Domain\LOCALHOST]</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229544">Example:</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229545">A.2.1.1 Domain specific configuration values</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc4 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229546">[HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider]
  [HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider\Domain]
  [HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider\Domain&quot;domain
! name&quot;]
! [HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider\Domain\LOCALHOST]</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229547"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  LogonOptions</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229548"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  FailLoginsSilentl</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229549"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  LogonScript</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229550"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  LoginRetryInterval</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229551"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  LoginSleepInterval</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229552"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  TheseCells</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229553">A.2.1.2 Selection of effective values for
  domain specific configuration</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229554">A.2.1.3 Exceptions to A.2.1.2</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc4 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229555">2.1.3.1 'FailLoginsSilently'</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc4 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229556">2.1.3.2 'LogonScript'</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229557">A.3. AFS Credentials System Tray Tool
  parameters</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229558">Regkey:
  [HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters]</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229559"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  Gateway</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229560"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  Cell</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229561">Regkey: [HKLM\SOFTWARE\OpenAFS\Client]
  [HKCU\SOFTWARE\OpenAFS\Client]</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229562"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  ShowTrayIcon</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229563"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  EnableKFW</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229564"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  Use524</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229565"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  AfscredsShortcutParams</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229566">Regkey: [HKCU\SOFTWARE\OpenAFS\Client]</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229567"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  Authentication Cell</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229568">Regkey:
  [HKCU\SOFTWARE\OpenAFS\Client\Reminders]</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229569"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  &quot;afs cell name&quot;</span></a></span></span><span style='mso-no-proof:
  yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229570">Regkey: [HKCU\SOFTWARE\OpenAFS\Client\Active
  Maps]</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229571"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  &quot;upper case drive letter&quot;</span></a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc3 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229572">Regkey:
  [HKCU\SOFTWARE\OpenAFS\Client\Mappings]</a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229573"><span style='mso-fareast-font-family:"Times New Roman"'>Value:
  &quot;upper case drive letter&quot;</span></a></span></span><span
  style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc2 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229574">A.4 OpenAFS Client Service Environment
  Variables</a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229575"><span style='mso-fareast-font-family:"Times New Roman"'>Variable:
  AFS_RPC_ENCRYPT</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoToc5 style='tab-stops:right dotted 431.5pt'><span
  class=MsoHyperlink><span style='mso-no-proof:yes'><a
! href="relnotes.htm#_Toc154229576"><span style='mso-fareast-font-family:"Times New Roman"'>Variable:
  AFS_RPC_PROTSEQ</span></a></span></span><span style='mso-no-proof:yes'><o:p></o:p></span></p>
  
  <p class=MsoNormal><!--[if supportFields]><span style='mso-element:field-end'></span><![endif]--><o:p>&nbsp;</o:p></p>
Index: openafs/src/WINNT/install/NSIS/OpenAFS.nsi
diff -c openafs/src/WINNT/install/NSIS/OpenAFS.nsi:1.88.4.4 openafs/src/WINNT/install/NSIS/OpenAFS.nsi:1.88.4.5
*** openafs/src/WINNT/install/NSIS/OpenAFS.nsi:1.88.4.4	Thu Oct 12 17:19:42 2006
--- openafs/src/WINNT/install/NSIS/OpenAFS.nsi	Mon Dec 18 16:45:26 2006
***************
*** 914,920 ****
    IfFileExists "$INSTDIR\Server\usr\afs\etc\ThisCell" SkipStartup
  
    ; Make the server config wizard auto-start on bootup if this is an install (not an upgrade)
!   WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce" "AFS Server Wizard" '"$INSTDIR\Server\usr\afs\bin\afssvrcfg.exe" /wizard"'
    
    
  SkipStartup:
--- 914,920 ----
    IfFileExists "$INSTDIR\Server\usr\afs\etc\ThisCell" SkipStartup
  
    ; Make the server config wizard auto-start on bootup if this is an install (not an upgrade)
!   ; WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce" "AFS Server Wizard" '"$INSTDIR\Server\usr\afs\bin\afssvrcfg.exe" /wizard"'
    
    
  SkipStartup:
***************
*** 922,931 ****
    ;nsExec::Exec '$INSTDIR\Common\service.exe u TransarcAFSServer'
    nsExec::Exec '$INSTDIR\Common\service.exe TransarcAFSServer "$INSTDIR\Server\usr\afs\bin\bosctlsvc.exe" "OpenAFS AFS Server"'
    Delete "$INSTDIR\Common\service.exe"
    
!   CreateDirectory "$SMPROGRAMS\OpenAFS\Server"
!   CreateShortCut "$SMPROGRAMS\OpenAFS\Server\Server Configuration.lnk" "$INSTDIR\Server\usr\afs\bin\afssvrcfg.exe"
!   
    
    WriteUninstaller "$INSTDIR\Uninstall.exe"
    WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\OpenAFS" "DisplayIcon" "$INSTDIR\Uninstall.exe,0"  
--- 922,945 ----
    ;nsExec::Exec '$INSTDIR\Common\service.exe u TransarcAFSServer'
    nsExec::Exec '$INSTDIR\Common\service.exe TransarcAFSServer "$INSTDIR\Server\usr\afs\bin\bosctlsvc.exe" "OpenAFS AFS Server"'
    Delete "$INSTDIR\Common\service.exe"
+ 
+   strcpy $REG_SUB_KEY "SYSTEM\CurrentControlSet\Services\TransarcAFSServer" 
+   strcpy $REG_VALUE   "DependOnGroup" 
+   strcpy $REG_DATA_1  "PNP_TDI"
+   strcpy $REG_DATA_2  ""
+   strcpy $REG_DATA_3  ""
+   strcpy $REG_DATA_4  ""
+   Call RegWriteMultiStr
+   strcpy $REG_SUB_KEY "SYSTEM\CurrentControlSet\Services\TransarcAFSServer" 
+   strcpy $REG_VALUE   "DependOnService" 
+   strcpy $REG_DATA_1  "Tcpip"
+   strcpy $REG_DATA_2  ""
+   strcpy $REG_DATA_3  ""
+   strcpy $REG_DATA_4  ""
+   Call RegWriteMultiStr
    
!   ;CreateDirectory "$SMPROGRAMS\OpenAFS\Server"
!   ;CreateShortCut "$SMPROGRAMS\OpenAFS\Server\Server Configuration.lnk" "$INSTDIR\Server\usr\afs\bin\afssvrcfg.exe"
    
    WriteUninstaller "$INSTDIR\Uninstall.exe"
    WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\OpenAFS" "DisplayIcon" "$INSTDIR\Uninstall.exe,0"  
Index: openafs/src/WINNT/install/wix/files.wxi
diff -c openafs/src/WINNT/install/wix/files.wxi:1.22.2.8 openafs/src/WINNT/install/wix/files.wxi:1.22.2.9
*** openafs/src/WINNT/install/wix/files.wxi:1.22.2.8	Thu Oct 12 17:19:42 2006
--- openafs/src/WINNT/install/wix/files.wxi	Mon Dec 18 17:34:24 2006
***************
*** 1001,1007 ****
--- 1001,1009 ----
                              </Component>
                               <Component Win64="$(var.Win64)" Id="cmf_afssvrcfg_EXE" Guid="$(var.cmf_afssvrcfg_EXE_guid)">
                                  <File Id="fileafssvrcfg_EXE" Name="afssv.exe" LongName="afssvrcfg.exe" KeyPath="yes" DiskId="1">
+ <!--
  									<Shortcut Id="scSvrCfgWizard" Directory="dirShortCut" Name="SvrCfgWz.lnk" LongName="Server Configuration Wizard.lnk" Description="$(loc.StrCfgWzdDesc)" Arguments="/wizard" Icon="ico_afssvrcfg" IconIndex="0" Show="normal" WorkingDirectory="dirCommon" />
+ -->
                                  </File>
                              </Component>
  			    <?if $(env.CPU) = "i386"?>
***************
*** 1016,1021 ****
--- 1018,1025 ----
  									<!-- ServiceConfig does nothing 
                                      <ServiceConfig FirstFailureActionType="restart" RestartServiceDelayInSeconds="5" SecondFailureActionType="restart" ThirdFailureActionType="none"/>
                                      -->
+                                     <ServiceDependency Id="Tcpip" />
+                                     <ServiceDependency Id="PNP_TDI" Group="yes"/>
                                  </ServiceInstall>
                              </Component>
                              <Component Win64="$(var.Win64)" Id="cmf_bosserver_EXE" Guid="$(var.cmf_bosserver_EXE_guid)">
Index: openafs/src/afs/afs_call.c
diff -c openafs/src/afs/afs_call.c:1.86.4.4 openafs/src/afs/afs_call.c:1.86.4.5
*** openafs/src/afs/afs_call.c:1.86.4.4	Mon Jul 31 17:58:28 2006
--- openafs/src/afs/afs_call.c	Thu Dec 28 16:30:27 2006
***************
*** 11,17 ****
  #include "afs/param.h"
  
  RCSID
!     ("$Header: /cvs/openafs/src/afs/afs_call.c,v 1.86.4.4 2006/07/31 21:58:28 shadow Exp $");
  
  #include "afs/sysincludes.h"	/* Standard vendor system headers */
  #include "afsincludes.h"	/* Afs-based standard headers */
--- 11,17 ----
  #include "afs/param.h"
  
  RCSID
!     ("$Header: /cvs/openafs/src/afs/afs_call.c,v 1.86.4.5 2006/12/28 21:30:27 shadow Exp $");
  
  #include "afs/sysincludes.h"	/* Standard vendor system headers */
  #include "afsincludes.h"	/* Afs-based standard headers */
***************
*** 238,243 ****
--- 238,246 ----
  
  #if defined(AFS_LINUX24_ENV) && defined(COMPLETION_H_EXISTS)
  struct afsd_thread_info {
+ #if !defined(INIT_WORK_HAS_DATA)
+     struct work_struct tq;
+ #endif
      unsigned long parm;
      struct completion *complete;
  };
***************
*** 370,378 ****
  }
  
  void
  afsd_launcher(void *rock)
  {
!     if (!kernel_thread(afsd_thread, rock, CLONE_VFORK | SIGCHLD))
  	printf("kernel_thread failed. afs startup will not complete\n");
  }
  
--- 373,389 ----
  }
  
  void
+ #if !defined(INIT_WORK_HAS_DATA)
+ afsd_launcher(struct work_struct *work)
+ #else
  afsd_launcher(void *rock)
+ #endif
  {
! #if !defined(INIT_WORK_HAS_DATA)
!     struct afsd_thread_info *rock = container_of(work, struct afsd_thread_info, tq);
! #endif
! 
!     if (!kernel_thread(afsd_thread, (void *)rock, CLONE_VFORK | SIGCHLD))
  	printf("kernel_thread failed. afs startup will not complete\n");
  }
  
***************
*** 411,418 ****
--- 422,434 ----
      info.complete = &c;
      info.parm = parm;
  #if defined(AFS_LINUX26_ENV)
+ #if !defined(INIT_WORK_HAS_DATA)
+     INIT_WORK(&info.tq, afsd_launcher);
+     schedule_work(&info.tq);
+ #else
      INIT_WORK(&tq, afsd_launcher, &info);
      schedule_work(&tq);
+ #endif
  #else
      tq.sync = 0;
      INIT_LIST_HEAD(&tq.list);
Index: openafs/src/afs/afs_dcache.c
diff -c openafs/src/afs/afs_dcache.c:1.64.4.3 openafs/src/afs/afs_dcache.c:1.64.4.4
*** openafs/src/afs/afs_dcache.c:1.64.4.3	Thu Nov  9 19:20:19 2006
--- openafs/src/afs/afs_dcache.c	Wed Dec 20 16:18:11 2006
***************
*** 14,20 ****
  #include "afs/param.h"
  
  RCSID
!     ("$Header: /cvs/openafs/src/afs/afs_dcache.c,v 1.64.4.3 2006/11/10 00:20:19 shadow Exp $");
  
  #include "afs/sysincludes.h"	/*Standard vendor system headers */
  #include "afsincludes.h"	/*AFS-based standard headers */
--- 14,20 ----
  #include "afs/param.h"
  
  RCSID
!     ("$Header: /cvs/openafs/src/afs/afs_dcache.c,v 1.64.4.4 2006/12/20 21:18:11 shadow Exp $");
  
  #include "afs/sysincludes.h"	/*Standard vendor system headers */
  #include "afsincludes.h"	/*AFS-based standard headers */
***************
*** 139,154 ****
  static afs_int32
  afs_DCGetBucket(struct vcache *avc) 
  {
!   /* This should be replaced with some sort of user configurable function */
!   if (avc->states & CRO) {
!       return 2;
!   } else if (avc->states & CBackup) {
!       return 1;
!   } else {
!     /* RW */
!   }
!   /* main bucket */
!   return 1;
  }
  
  static void 
--- 139,157 ----
  static afs_int32
  afs_DCGetBucket(struct vcache *avc) 
  {
!     if (!splitdcache) 
! 	return 1;
!     
!     /* This should be replaced with some sort of user configurable function */
!     if (avc->states & CRO) {
! 	return 2;
!     } else if (avc->states & CBackup) {
! 	return 1;
!     } else {
! 	/* RW */
!     }
!     /* main bucket */
!     return 1;
  }
  
  static void 
***************
*** 792,798 ****
  	    }
  	} else {
  	    /* found no one in phases 0-5, we're hosed */
! 	    if (j == 0)
  		break;
  	}
      }				/* big while loop */
--- 795,801 ----
  	    }
  	} else {
  	    /* found no one in phases 0-5, we're hosed */
! 	    if (victimPtr == 0)
  		break;
  	}
      }				/* big while loop */
***************
*** 1050,1056 ****
      afs_CFileTruncate(tfile, 0);
      afs_CFileClose(tfile);
      afs_AdjustSize(tdc, 0);
-     tdc->f.states &= ~(DRO|DBackup|DRW);
      afs_DCMoveBucket(tdc, 0, 0);
  
      /*
--- 1053,1058 ----
***************
*** 1059,1064 ****
--- 1061,1067 ----
      MObtainWriteLock(&afs_xdcache, 511);
      afs_indexFlags[tdc->index] &= ~IFDiscarded;
      afs_FreeDCache(tdc);
+     tdc->f.states &= ~(DRO|DBackup|DRW);
      ReleaseWriteLock(&tdc->lock);
      afs_PutDCache(tdc);
      MReleaseWriteLock(&afs_xdcache);
***************
*** 1339,1345 ****
  		break;		/* leaving refCount high for caller */
  	    }
  	    afs_PutDCache(tdc);
- 	    tdc = NULL;
  	}
  	index = afs_dcnextTbl[index];
      }
--- 1342,1347 ----
Index: openafs/src/afs/afs_dynroot.c
diff -c openafs/src/afs/afs_dynroot.c:1.12.6.3 openafs/src/afs/afs_dynroot.c:1.12.6.4
*** openafs/src/afs/afs_dynroot.c:1.12.6.3	Mon Jul 31 17:27:38 2006
--- openafs/src/afs/afs_dynroot.c	Wed Dec 20 15:08:32 2006
***************
*** 795,801 ****
--- 795,805 ----
      struct afs_dynSymlink *tps;
      int found = 0;
  
+ #if defined(AFS_SUN510_ENV)
+     if (crgetruid(acred))
+ #else
      if (acred->cr_uid)
+ #endif
  	return EPERM;
  
      ObtainWriteLock(&afs_dynSymlinkLock, 97);
Index: openafs/src/afs/afs_nfsclnt.c
diff -c openafs/src/afs/afs_nfsclnt.c:1.13.6.3 openafs/src/afs/afs_nfsclnt.c:1.13.6.4
*** openafs/src/afs/afs_nfsclnt.c:1.13.6.3	Mon Jul 31 17:27:38 2006
--- openafs/src/afs/afs_nfsclnt.c	Wed Dec 20 15:08:32 2006
***************
*** 11,17 ****
  #include "afs/param.h"
  
  RCSID
!     ("$Header: /cvs/openafs/src/afs/afs_nfsclnt.c,v 1.13.6.3 2006/07/31 21:27:38 shadow Exp $");
  
  #if !defined(AFS_NONFSTRANS) || defined(AFS_AIX_IAUTH_ENV)
  #include "afs/sysincludes.h"	/* Standard vendor system headers */
--- 11,17 ----
  #include "afs/param.h"
  
  RCSID
!     ("$Header: /cvs/openafs/src/afs/afs_nfsclnt.c,v 1.13.6.4 2006/12/20 20:08:32 shadow Exp $");
  
  #if !defined(AFS_NONFSTRANS) || defined(AFS_AIX_IAUTH_ENV)
  #include "afs/sysincludes.h"	/* Standard vendor system headers */
***************
*** 198,204 ****
--- 198,208 ----
      }
  /*    ObtainWriteLock(&afs_xnfsreq); */
      pag = PagInCred(*cred);
+ #if defined(AFS_SUN510_ENV)
+     uid = crgetuid(*cred);
+ #else
      uid = (*cred)->cr_uid;
+ #endif
      if ((afs_nfsexporter->exp_states & EXP_CLIPAGS) && pag != NOPAG) {
  	uid = pag;
      } else if (pag != NOPAG) {
Index: openafs/src/afs/afs_osi_pag.c
diff -c openafs/src/afs/afs_osi_pag.c:1.29.4.5 openafs/src/afs/afs_osi_pag.c:1.29.4.6
*** openafs/src/afs/afs_osi_pag.c:1.29.4.5	Thu Aug 17 09:57:28 2006
--- openafs/src/afs/afs_osi_pag.c	Wed Dec 20 15:08:32 2006
***************
*** 23,29 ****
  #include "afs/param.h"
  
  RCSID
!     ("$Header: /cvs/openafs/src/afs/afs_osi_pag.c,v 1.29.4.5 2006/08/17 13:57:28 shadow Exp $");
  
  #include "afs/sysincludes.h"	/* Standard vendor system headers */
  #include "afsincludes.h"	/* Afs-based standard headers */
--- 23,29 ----
  #include "afs/param.h"
  
  RCSID
!     ("$Header: /cvs/openafs/src/afs/afs_osi_pag.c,v 1.29.4.6 2006/12/20 20:08:32 shadow Exp $");
  
  #include "afs/sysincludes.h"	/* Standard vendor system headers */
  #include "afsincludes.h"	/* Afs-based standard headers */
***************
*** 368,377 ****
  {
      int pagvalue;
      struct AFS_UCRED *credp = u.u_cred;
!     int gidset0, gidset1;
  
      gidset0 = credp->cr_groups[0];
      gidset1 = credp->cr_groups[1];
      pagvalue = afs_get_pag_from_groups(gidset0, gidset1);
      return pagvalue;
  }
--- 368,385 ----
  {
      int pagvalue;
      struct AFS_UCRED *credp = u.u_cred;
!     gid_t gidset0, gidset1;
! #ifdef AFS_SUN510_ENV
!     const gid_t *gids;
! 
!     gids = crgetgroups(*credp);
!     gidset0 = gids[0];
!     gidset1 = gids[1];
! #else
  
      gidset0 = credp->cr_groups[0];
      gidset1 = credp->cr_groups[1];
+ #endif
      pagvalue = afs_get_pag_from_groups(gidset0, gidset1);
      return pagvalue;
  }
***************
*** 431,436 ****
--- 439,446 ----
  	    av->uid = -2;	/* XXX nobody... ? */
  	else
  	    av->uid = acred->cr_uid;	/* bsd creds don't have ruid */
+ #elif defined(AFS_SUN510_ENV)
+         av->uid = crgetruid(acred);
  #else
  	av->uid = acred->cr_ruid;	/* default when no pag is set */
  #endif
***************
*** 492,502 ****
--- 502,520 ----
  {
      afs_int32 pag;
      gid_t g0, g1;
+ #if defined(AFS_SUN510_ENV)
+     const gid_t *gids;
+     int ngroups;
+ #endif
  
      AFS_STATCNT(PagInCred);
      if (cred == NULL || cred == afs_osi_credp) {
  	return NOPAG;
      }
+ #if defined(AFS_SUN510_ENV)
+     gids = crgetgroups(cred);
+     ngroups = crgetngroups(cred);
+ #endif
  #if defined(AFS_DARWIN_ENV) || defined(AFS_XBSD_ENV)
      if (cred == NOCRED || cred == FSCRED) {
  	return NOPAG;
***************
*** 521,527 ****
--- 539,549 ----
  	goto out;
      }
  #elif defined(AFS_SGI_ENV) || defined(AFS_SUN5_ENV) || defined(AFS_DUX40_ENV) || defined(AFS_LINUX20_ENV) || defined(AFS_XBSD_ENV)
+ #if defined(AFS_SUN510_ENV)
+     if (ngroups < 2) {
+ #else
      if (cred->cr_ngroups < 2) {
+ #endif
  	pag = NOPAG;
  	goto out;
      }
***************
*** 532,537 ****
--- 554,562 ----
  #elif defined(AFS_LINUX26_ENV)
      g0 = GROUP_AT(cred->cr_group_info, 0);
      g1 = GROUP_AT(cred->cr_group_info, 1);
+ #elif defined(AFS_SUN510_ENV)
+     g0 = gids[0];
+     g1 = gids[1];
  #else
      g0 = cred->cr_groups[0];
      g1 = cred->cr_groups[1];
Index: openafs/src/afs/afs_user.c
diff -c openafs/src/afs/afs_user.c:1.15.14.3 openafs/src/afs/afs_user.c:1.15.14.4
*** openafs/src/afs/afs_user.c:1.15.14.3	Mon Jul 31 17:27:38 2006
--- openafs/src/afs/afs_user.c	Wed Dec 20 15:08:33 2006
***************
*** 14,20 ****
  #include "afs/param.h"
  
  RCSID
!     ("$Header: /cvs/openafs/src/afs/afs_user.c,v 1.15.14.3 2006/07/31 21:27:38 shadow Exp $");
  
  #include "afs/stds.h"
  #include "afs/sysincludes.h"	/* Standard vendor system headers */
--- 14,20 ----
  #include "afs/param.h"
  
  RCSID
!     ("$Header: /cvs/openafs/src/afs/afs_user.c,v 1.15.14.4 2006/12/20 20:08:33 shadow Exp $");
  
  #include "afs/stds.h"
  #include "afs/sysincludes.h"	/* Standard vendor system headers */
***************
*** 610,615 ****
--- 610,617 ----
      pag = PagInCred(pcred);
  #if defined(AFS_DARWIN_ENV) || defined(AFS_FBSD40_ENV) || defined(AFS_LINUX22_ENV)
      uid = (pag != NOPAG ? pag : pcred->cr_uid);
+ #elif defined(AFS_SUN510_ENV)
+     uid = (pag != NOPAG ? pag : crgetruid(pcred));
  #else
      uid = (pag != NOPAG ? pag : pcred->cr_ruid);
  #endif
Index: openafs/src/afs/afs_volume.c
diff -c openafs/src/afs/afs_volume.c:1.31.2.3 openafs/src/afs/afs_volume.c:1.31.2.4
*** openafs/src/afs/afs_volume.c:1.31.2.3	Mon Jul 31 17:27:39 2006
--- openafs/src/afs/afs_volume.c	Mon Dec 18 21:34:05 2006
***************
*** 19,25 ****
  #include "afs/param.h"
  
  RCSID
!     ("$Header: /cvs/openafs/src/afs/afs_volume.c,v 1.31.2.3 2006/07/31 21:27:39 shadow Exp $");
  
  #include "afs/stds.h"
  #include "afs/sysincludes.h"	/* Standard vendor system headers */
--- 19,25 ----
  #include "afs/param.h"
  
  RCSID
!     ("$Header: /cvs/openafs/src/afs/afs_volume.c,v 1.31.2.4 2006/12/19 02:34:05 shadow Exp $");
  
  #include "afs/stds.h"
  #include "afs/sysincludes.h"	/* Standard vendor system headers */
***************
*** 688,693 ****
--- 688,695 ----
      } while (afs_Analyze(tconn, code, NULL, &treq, -1,	/* no op code for this */
  			 SHARED_LOCK, tcell));
  
+     /* RT 48959 - unclear if this should really go */
+ #if 0
      if (code) {
  	/* If the client has yet to contact this cell and contact failed due
  	 * to network errors, mark the VLDB servers as back up.
***************
*** 710,715 ****
--- 712,718 ----
  	afs_PutCell(tcell, READ_LOCK);
  	return NULL;
      }
+ #endif
      /*
       * Check to see if this cell has not yet referenced a volume.  If
       * it hasn't, it's just about to change its status, and we need to mark
Index: openafs/src/afs/LINUX/osi_cred.c
diff -c openafs/src/afs/LINUX/osi_cred.c:1.12 openafs/src/afs/LINUX/osi_cred.c:1.12.6.1
*** openafs/src/afs/LINUX/osi_cred.c:1.12	Sun Apr  3 15:48:34 2005
--- openafs/src/afs/LINUX/osi_cred.c	Mon Dec 18 21:29:39 2006
***************
*** 15,68 ****
  #include "afs/param.h"
  
  RCSID
!     ("$Header: /cvs/openafs/src/afs/LINUX/osi_cred.c,v 1.12 2005/04/03 19:48:34 shadow Exp $");
  
  #include "afs/sysincludes.h"
  #include "afsincludes.h"
  
- /* Setup a pool for creds. Allocate several at a time. */
- #define CRED_ALLOC_STEP 29	/* at 140 bytes/cred = 4060 bytes. */
- 
- 
- static cred_t *cred_pool = NULL;
- int cred_allocs = 0;
- int ncreds_inuse = 0;
- 
- /* Cred locking assumes current single threaded non-preemptive kernel.
-  * Also assuming a fast path through both down and up if no waiters. Otherwise,
-  * test if no creds in pool before grabbing lock in crfree().
-  */
- #if defined(AFS_LINUX24_ENV)
- static DECLARE_MUTEX(linux_cred_pool_lock);
- #else
- static struct semaphore linux_cred_pool_lock = MUTEX;
- #endif
- #define CRED_LOCK() down(&linux_cred_pool_lock)
- #define CRED_UNLOCK() up(&linux_cred_pool_lock)
- 
  cred_t *
  crget(void)
  {
      cred_t *tmp;
-     int i;
  
!     CRED_LOCK();
!     if (!cred_pool) {
! 	cred_allocs++;
! 	cred_pool = (cred_t *) osi_Alloc(CRED_ALLOC_STEP * sizeof(cred_t));
! 	if (!cred_pool)
  	    osi_Panic("crget: No more memory for creds!\n");
  
- 	for (i = 0; i < CRED_ALLOC_STEP - 1; i++)
- 	    cred_pool[i].cr_next = (cred_t *) &cred_pool[i + 1];
- 	cred_pool[i].cr_next = NULL;
-     }
-     tmp = cred_pool;
-     cred_pool = (cred_t *) tmp->cr_next;
-     ncreds_inuse++;
-     CRED_UNLOCK();
- 
-     memset(tmp, 0, sizeof(cred_t));
      tmp->cr_ref = 1;
      return tmp;
  }
--- 15,37 ----
  #include "afs/param.h"
  
  RCSID
!     ("$Header: /cvs/openafs/src/afs/LINUX/osi_cred.c,v 1.12.6.1 2006/12/19 02:29:39 shadow Exp $");
  
  #include "afs/sysincludes.h"
  #include "afsincludes.h"
  
  cred_t *
  crget(void)
  {
      cred_t *tmp;
  
! #if !defined(GFP_NOFS)
! #define GFP_NOFS GFP_KERNEL
! #endif
!     tmp = kmalloc(sizeof(cred_t), GFP_NOFS);
!     if (!tmp)
  	    osi_Panic("crget: No more memory for creds!\n");
  
      tmp->cr_ref = 1;
      return tmp;
  }
***************
*** 78,88 ****
  #if defined(AFS_LINUX26_ENV)
      put_group_info(cr->cr_group_info);
  #endif
!     CRED_LOCK();
!     cr->cr_next = (cred_t *) cred_pool;
!     cred_pool = cr;
!     CRED_UNLOCK();
!     ncreds_inuse--;
  }
  
  
--- 47,54 ----
  #if defined(AFS_LINUX26_ENV)
      put_group_info(cr->cr_group_info);
  #endif
! 
!     kfree(cr);
  }
  
  
***************
*** 95,100 ****
--- 61,67 ----
      tmp->cr_uid = cr->cr_uid;
      tmp->cr_ruid = cr->cr_ruid;
      tmp->cr_gid = cr->cr_gid;
+     tmp->cr_rgid = cr->cr_rgid;
  
  #if defined(AFS_LINUX26_ENV)
      get_group_info(cr->cr_group_info);
***************
*** 104,110 ****
      tmp->cr_ngroups = cr->cr_ngroups;
  #endif
  
-     tmp->cr_ref = 1;
      return tmp;
  }
  
--- 71,76 ----
Index: openafs/src/afs/LINUX/osi_sleep.c
diff -c openafs/src/afs/LINUX/osi_sleep.c:1.30 openafs/src/afs/LINUX/osi_sleep.c:1.30.4.1
*** openafs/src/afs/LINUX/osi_sleep.c:1.30	Sun Sep 18 23:39:13 2005
--- openafs/src/afs/LINUX/osi_sleep.c	Thu Dec 28 16:30:28 2006
***************
*** 11,22 ****
  #include "afs/param.h"
  
  RCSID
!     ("$Header: /cvs/openafs/src/afs/LINUX/osi_sleep.c,v 1.30 2005/09/19 03:39:13 shadow Exp $");
  
  #include "afs/sysincludes.h"	/* Standard vendor system headers */
  #include "afsincludes.h"	/* Afs-based standard headers */
  #include "afs/afs_stats.h"	/* afs statistics */
  
  static int osi_TimedSleep(char *event, afs_int32 ams, int aintok);
  
  static char waitV, dummyV;
--- 11,24 ----
  #include "afs/param.h"
  
  RCSID
!     ("$Header: /cvs/openafs/src/afs/LINUX/osi_sleep.c,v 1.30.4.1 2006/12/28 21:30:28 shadow Exp $");
  
  #include "afs/sysincludes.h"	/* Standard vendor system headers */
  #include "afsincludes.h"	/* Afs-based standard headers */
  #include "afs/afs_stats.h"	/* afs statistics */
  
+ #include <linux/freezer.h>
+ 
  static int osi_TimedSleep(char *event, afs_int32 ams, int aintok);
  
  static char waitV, dummyV;
***************
*** 198,204 ****
--- 200,210 ----
  #ifdef PF_FREEZE
  	    current->flags & PF_FREEZE
  #else
+ #if defined(STRUCT_TASK_STRUCT_HAS_TODO)
  	    !current->todo
+ #else
+             test_ti_thread_flag(current->thread_info, TIF_FREEZE)
+ #endif
  #endif
  	    )
  #ifdef LINUX_REFRIGERATOR_TAKES_PF_FREEZE
***************
*** 292,298 ****
--- 298,308 ----
  #ifdef PF_FREEZE
  	    current->flags & PF_FREEZE
  #else
+ #if defined(STRUCT_TASK_STRUCT_HAS_TODO)
  	    !current->todo
+ #else
+             test_ti_thread_flag(current->thread_info, TIF_FREEZE)
+ #endif
  #endif
  	    )
  #ifdef LINUX_REFRIGERATOR_TAKES_PF_FREEZE
Index: openafs/src/afs/LINUX/osi_vfsops.c
diff -c openafs/src/afs/LINUX/osi_vfsops.c:1.42.4.12 openafs/src/afs/LINUX/osi_vfsops.c:1.42.4.13
*** openafs/src/afs/LINUX/osi_vfsops.c:1.42.4.12	Thu Nov  9 19:11:06 2006
--- openafs/src/afs/LINUX/osi_vfsops.c	Thu Dec 28 16:30:28 2006
***************
*** 16,22 ****
  #include "afs/param.h"
  
  RCSID
!     ("$Header: /cvs/openafs/src/afs/LINUX/osi_vfsops.c,v 1.42.4.12 2006/11/10 00:11:06 shadow Exp $");
  
  #define __NO_VERSION__		/* don't define kernel_version in module.h */
  #include <linux/module.h> /* early to avoid printf->printk mapping */
--- 16,22 ----
  #include "afs/param.h"
  
  RCSID
!     ("$Header: /cvs/openafs/src/afs/LINUX/osi_vfsops.c,v 1.42.4.13 2006/12/28 21:30:28 shadow Exp $");
  
  #define __NO_VERSION__		/* don't define kernel_version in module.h */
  #include <linux/module.h> /* early to avoid printf->printk mapping */
***************
*** 276,282 ****
--- 276,286 ----
  {
      struct vcache *vcp;
  
+ #if defined(SLAB_KERNEL)
      vcp = (struct vcache *) kmem_cache_alloc(afs_inode_cachep, SLAB_KERNEL);
+ #else
+     vcp = (struct vcache *) kmem_cache_alloc(afs_inode_cachep, GFP_KERNEL);
+ #endif
      if (!vcp)
  	return NULL;
  
Index: openafs/src/afs/SOLARIS/osi_groups.c
diff -c openafs/src/afs/SOLARIS/osi_groups.c:1.7 openafs/src/afs/SOLARIS/osi_groups.c:1.7.14.1
*** openafs/src/afs/SOLARIS/osi_groups.c:1.7	Tue Jul 15 19:14:26 2003
--- openafs/src/afs/SOLARIS/osi_groups.c	Wed Dec 20 15:08:33 2006
***************
*** 13,23 ****
   * setpag
   *
   */
  #include <afsconfig.h>
  #include "afs/param.h"
  
  RCSID
!     ("$Header: /cvs/openafs/src/afs/SOLARIS/osi_groups.c,v 1.7 2003/07/15 23:14:26 shadow Exp $");
  
  #include "afs/sysincludes.h"
  #include "afsincludes.h"
--- 13,29 ----
   * setpag
   *
   */
+ 
+ #include <unistd.h>
+ #ifdef AFS_SUN510_ENV
+ #include <sys/cred.h>
+ #endif
+ 
  #include <afsconfig.h>
  #include "afs/param.h"
  
  RCSID
!     ("$Header: /cvs/openafs/src/afs/SOLARIS/osi_groups.c,v 1.7.14.1 2006/12/20 20:08:33 shadow Exp $");
  
  #include "afs/sysincludes.h"
  #include "afsincludes.h"
***************
*** 124,131 ****
--- 130,142 ----
      AFS_STATCNT(afs_getgroups);
  
      gidset[0] = gidset[1] = 0;
+ #if defined(AFS_SUN510_ENV)
+     savengrps = ngrps = crgetngroups(cred);
+     gp = crgetgroups(cred);
+ #else
      savengrps = ngrps = cred->cr_ngroups;
      gp = cred->cr_groups;
+ #endif
      while (ngrps--)
  	*gidset++ = *gp++;
      return savengrps;
***************
*** 137,144 ****
  afs_setgroups(struct cred **cred, int ngroups, gid_t * gidset,
  	      int change_parent)
  {
-     int ngrps;
-     int i;
      gid_t *gp;
  
      AFS_STATCNT(afs_setgroups);
--- 148,153 ----
***************
*** 149,156 ****
--- 158,170 ----
      }
      if (!change_parent)
  	*cred = (struct cred *)crcopy(*cred);
+ #if defined(AFS_SUN510_ENV)
+     crsetgroups(*cred, ngroups, gidset);
+     gp = crgetgroups(*cred);
+ #else
      (*cred)->cr_ngroups = ngroups;
      gp = (*cred)->cr_groups;
+ #endif
      while (ngroups--)
  	*gp++ = *gidset++;
      mutex_exit(&curproc->p_crlock);
Index: openafs/src/auth/cellconfig.c
diff -c openafs/src/auth/cellconfig.c:1.47.2.6 openafs/src/auth/cellconfig.c:1.47.2.7
*** openafs/src/auth/cellconfig.c:1.47.2.6	Mon Nov 20 19:56:56 2006
--- openafs/src/auth/cellconfig.c	Thu Dec 28 15:37:21 2006
***************
*** 11,17 ****
  #include <afs/param.h>
  
  RCSID
!     ("$Header: /cvs/openafs/src/auth/cellconfig.c,v 1.47.2.6 2006/11/21 00:56:56 rra Exp $");
  
  #include <afs/stds.h>
  #include <afs/pthread_glock.h>
--- 11,17 ----
  #include <afs/param.h>
  
  RCSID
!     ("$Header: /cvs/openafs/src/auth/cellconfig.c,v 1.47.2.7 2006/12/28 20:37:21 shadow Exp $");
  
  #include <afs/stds.h>
  #include <afs/pthread_glock.h>
***************
*** 866,871 ****
--- 866,872 ----
       * operations.
       */
  
+  retryafsdb:
      if ( ! strchr(acellName,'.') ) {
         cellnamelength=strlen(acellName);
         dotcellname=malloc(cellnamelength+2);
***************
*** 873,879 ****
         dotcellname[cellnamelength]='.';
         dotcellname[cellnamelength+1]=0;
         LOCK_GLOBAL_MUTEX;
! 	    len = res_search(dotcellname, C_IN, T_AFSDB, answer, sizeof(answer));
         if ( len < 0 ) {
            len = res_search(acellName, C_IN, T_AFSDB, answer, sizeof(answer));
         }
--- 874,880 ----
         dotcellname[cellnamelength]='.';
         dotcellname[cellnamelength+1]=0;
         LOCK_GLOBAL_MUTEX;
!        len = res_search(dotcellname, C_IN, T_AFSDB, answer, sizeof(answer));
         if ( len < 0 ) {
            len = res_search(acellName, C_IN, T_AFSDB, answer, sizeof(answer));
         }
***************
*** 881,891 ****
         free(dotcellname);
      } else {
         LOCK_GLOBAL_MUTEX;
! 	    len = res_search(acellName, C_IN, T_AFSDB, answer, sizeof(answer));
         UNLOCK_GLOBAL_MUTEX;
      }
!     if (len < 0)
  	return AFSCONF_NOTFOUND;
  
      p = answer + sizeof(HEADER);	/* Skip header */
      code = dn_expand(answer, answer + len, p, host, sizeof(host));
--- 882,898 ----
         free(dotcellname);
      } else {
         LOCK_GLOBAL_MUTEX;
!        len = res_search(acellName, C_IN, T_AFSDB, answer, sizeof(answer));
         UNLOCK_GLOBAL_MUTEX;
      }
!     if (len < 0) {
! 	if (try < 1) {
! 	    try++;
! 	    res_init();
! 	    goto retryafsdb;
! 	}
  	return AFSCONF_NOTFOUND;
+     }
  
      p = answer + sizeof(HEADER);	/* Skip header */
      code = dn_expand(answer, answer + len, p, host, sizeof(host));
Index: openafs/src/bozo/bnode.c
diff -c openafs/src/bozo/bnode.c:1.19.2.2 openafs/src/bozo/bnode.c:1.19.2.3
*** openafs/src/bozo/bnode.c:1.19.2.2	Wed Nov  8 21:16:23 2006
--- openafs/src/bozo/bnode.c	Thu Dec 21 18:14:05 2006
***************
*** 11,17 ****
  #include <afs/param.h>
  
  RCSID
!     ("$Header: /cvs/openafs/src/bozo/bnode.c,v 1.19.2.2 2006/11/09 02:16:23 shadow Exp $");
  
  #include <stddef.h>
  #include <stdlib.h>
--- 11,17 ----
  #include <afs/param.h>
  
  RCSID
!     ("$Header: /cvs/openafs/src/bozo/bnode.c,v 1.19.2.3 2006/12/21 23:14:05 shadow Exp $");
  
  #include <stddef.h>
  #include <stdlib.h>
***************
*** 317,323 ****
  afs_int32
  bnode_Create(char *atype, char *ainstance, struct bnode ** abp, char *ap1,
  	     char *ap2, char *ap3, char *ap4, char *ap5, char *notifier,
! 	     int fileGoal)
  {
      struct bnode_type *type;
      struct bnode *tb;
--- 317,323 ----
  afs_int32
  bnode_Create(char *atype, char *ainstance, struct bnode ** abp, char *ap1,
  	     char *ap2, char *ap3, char *ap4, char *ap5, char *notifier,
! 	     int fileGoal, int rewritefile)
  {
      struct bnode_type *type;
      struct bnode *tb;
***************
*** 360,366 ****
      tb->fileGoal = fileGoal;
  
      bnode_SetStat(tb, tb->goal);	/* nudge it once */
!     WriteBozoFile(0);
      return 0;
  }
  
--- 360,369 ----
      tb->fileGoal = fileGoal;
  
      bnode_SetStat(tb, tb->goal);	/* nudge it once */
! 
!     if (rewritefile != 0)
! 	WriteBozoFile(0);
! 
      return 0;
  }
  
***************
*** 740,746 ****
  	ec = setsid();
  #elif defined(AFS_DARWIN90_ENV)
  	ec = setpgid(0, 0);
! #elif defined(AFS_LINUX20_ENV) || defined(AFS_AIX_ENV) 
  	ec = setpgrp();
  #else
  	ec = setpgrp(0, 0);
--- 743,749 ----
  	ec = setsid();
  #elif defined(AFS_DARWIN90_ENV)
  	ec = setpgid(0, 0);
! #elif defined(AFS_LINUX20_ENV) || defined(AFS_AIX_ENV)  
  	ec = setpgrp();
  #else
  	ec = setpgrp(0, 0);
Index: openafs/src/bozo/bnode.p.h
diff -c openafs/src/bozo/bnode.p.h:1.4 openafs/src/bozo/bnode.p.h:1.4.14.2
*** openafs/src/bozo/bnode.p.h:1.4	Sun Dec  7 17:49:18 2003
--- openafs/src/bozo/bnode.p.h	Fri Dec 22 01:48:50 2006
***************
*** 126,139 ****
  /* max time to wait for fileserver shutdown */
  #define	FSSDTIME	(30 * 60)	/* seconds */
  
- 
  /* calls back up to the generic bnode layer */
! extern int bnode_SetTimeout( /* bnode, timeout */ );
! extern int bnode_Init( /* bnode, bnodeops */ );
! extern int bnode_Activate( /* bnode */ );
! extern int bnode_NewProc( /* bnode, execstring, corename, procaddr */ );
! extern int bnode_Init( /* no parms */ );
! extern afs_int32 bnode_Create();
! extern struct bnode *bnode_FindInstance();
  extern int bnode_WaitStatus(register struct bnode *abnode, int astatus);
  extern int bnode_SetStat(register struct bnode *abnode, register int agoal);
--- 126,137 ----
  /* max time to wait for fileserver shutdown */
  #define	FSSDTIME	(30 * 60)	/* seconds */
  
  /* calls back up to the generic bnode layer */
! extern int bnode_SetTimeout(register struct bnode *abnode, afs_int32 atimeout);
! extern int bnode_Init(void);
! extern int bnode_NewProc(struct bnode *abnode, char *aexecString, char *coreName, struct bnode_proc **aproc);
! extern int bnode_InitBnode(register struct bnode *abnode, struct bnode_ops *abnodeops, char *aname);
! extern afs_int32 bnode_Create(char *atype, char *ainstance, struct bnode ** abp, char *ap1, char *ap2, char *ap3, char *ap4, char *ap5, char *notifier, int fileGoal, int rewritefile);
! extern struct bnode *bnode_FindInstance(register char *aname);
  extern int bnode_WaitStatus(register struct bnode *abnode, int astatus);
  extern int bnode_SetStat(register struct bnode *abnode, register int agoal);
Index: openafs/src/bozo/bosoprocs.c
diff -c openafs/src/bozo/bosoprocs.c:1.19 openafs/src/bozo/bosoprocs.c:1.19.14.1
*** openafs/src/bozo/bosoprocs.c:1.19	Sun Dec  7 17:49:18 2003
--- openafs/src/bozo/bosoprocs.c	Thu Dec 21 18:14:05 2006
***************
*** 11,17 ****
  #include <afs/param.h>
  
  RCSID
!     ("$Header: /cvs/openafs/src/bozo/bosoprocs.c,v 1.19 2003/12/07 22:49:18 jaltman Exp $");
  
  #include <afs/stds.h>
  #include <sys/types.h>
--- 11,17 ----
  #include <afs/param.h>
  
  RCSID
!     ("$Header: /cvs/openafs/src/bozo/bosoprocs.c,v 1.19.14.1 2006/12/21 23:14:05 shadow Exp $");
  
  #include <afs/stds.h>
  #include <sys/types.h>
***************
*** 853,859 ****
  
      code =
  	bnode_Create(atype, ainstance, &tb, ap1, ap2, ap3, ap4, ap5, notifier,
! 		     BSTAT_NORMAL);
      if (!code)
  	bnode_SetStat(tb, BSTAT_NORMAL);
  
--- 853,859 ----
  
      code =
  	bnode_Create(atype, ainstance, &tb, ap1, ap2, ap3, ap4, ap5, notifier,
! 		     BSTAT_NORMAL, 1);
      if (!code)
  	bnode_SetStat(tb, BSTAT_NORMAL);
  
Index: openafs/src/bozo/bosserver.c
diff -c openafs/src/bozo/bosserver.c:1.32.2.2 openafs/src/bozo/bosserver.c:1.32.2.3
*** openafs/src/bozo/bosserver.c:1.32.2.2	Tue Jun 20 16:37:10 2006
--- openafs/src/bozo/bosserver.c	Thu Dec 21 18:14:05 2006
***************
*** 11,17 ****
  #include <afs/param.h>
  
  RCSID
!     ("$Header: /cvs/openafs/src/bozo/bosserver.c,v 1.32.2.2 2006/06/20 20:37:10 jaltman Exp $");
  
  #include <afs/stds.h>
  #include <sys/types.h>
--- 11,17 ----
  #include <afs/param.h>
  
  RCSID
!     ("$Header: /cvs/openafs/src/bozo/bosserver.c,v 1.32.2.3 2006/12/21 23:14:05 shadow Exp $");
  
  #include <afs/stds.h>
  #include <sys/types.h>
***************
*** 419,425 ****
  	code =
  	    bnode_Create(typep, instp, &tb, parms[0], parms[1], parms[2],
  			 parms[3], parms[4], notifier,
! 			 goal ? BSTAT_NORMAL : BSTAT_SHUTDOWN);
  	if (code)
  	    goto fail;
  
--- 419,425 ----
  	code =
  	    bnode_Create(typep, instp, &tb, parms[0], parms[1], parms[2],
  			 parms[3], parms[4], notifier,
! 			 goal ? BSTAT_NORMAL : BSTAT_SHUTDOWN, 0);
  	if (code)
  	    goto fail;
  
Index: openafs/src/cf/linux-test4.m4
diff -c openafs/src/cf/linux-test4.m4:1.29.2.13 openafs/src/cf/linux-test4.m4:1.29.2.14
*** openafs/src/cf/linux-test4.m4:1.29.2.13	Thu Nov  9 19:11:09 2006
--- openafs/src/cf/linux-test4.m4	Thu Dec 28 16:30:28 2006
***************
*** 727,729 ****
--- 727,769 ----
      AC_DEFINE([GENERIC_FILE_AIO_READ], 1, [define if your kernel has generic_file_aio_read()])
    fi])
  
+ AC_DEFUN([LINUX_FREEZER_H_EXISTS], [
+   AC_MSG_CHECKING([for linux/freezer.h existance])
+   AC_CACHE_VAL([ac_cv_linux_freezer_h_exists], [
+     save_CPPFLAGS="$CPPFLAGS"
+     CPPFLAGS="$CPPFLAGS -Werror-implicit-function-declaration"
+     AC_TRY_KBUILD(
+ [#include <linux/freezer.h>],
+ [return;],
+       ac_cv_linux_freezer_h_exists=yes,
+       ac_cv_linux_freezer_h_exists=no)])
+   AC_MSG_RESULT($ac_cv_linux_freezer_h_exists)
+   if test "x$ac_cv_linux_freezer_h_exists" = "xyes"; then
+     AC_DEFINE([FREEZER_H_EXISTS], 1, [define if linux/freezer.h exists])
+   fi])
+ 
+ AC_DEFUN([LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_TODO], [
+   AC_MSG_CHECKING([for todo in struct task_struct])
+   AC_CACHE_VAL([ac_cv_linux_sched_struct_task_struct_has_todo], [
+     AC_TRY_KBUILD(
+ [#include <linux/sched.h>],
+ [struct task_struct _tsk;
+ printk("%d\n", _tsk.todo);],
+       ac_cv_linux_sched_struct_task_struct_has_todo=yes,
+       ac_cv_linux_sched_struct_task_struct_has_todo=no)])
+   AC_MSG_RESULT($ac_cv_linux_sched_struct_task_struct_has_todo)])
+ 
+ AC_DEFUN([LINUX_INIT_WORK_HAS_DATA], [
+   AC_MSG_CHECKING([whether INIT_WORK has a _data argument])
+   AC_CACHE_VAL([ac_cv_linux_init_work_has_data], [
+     AC_TRY_KBUILD(
+ [#include <linux/workqueue.h>],
+ [ 
+ void f(struct work_struct *w) {}
+ struct work_struct *w;
+ int *i;
+ INIT_WORK(w,f,i);],
+       ac_cv_linux_init_work_has_data=yes,
+       ac_cv_linux_init_work_has_data=no)])
+   AC_MSG_RESULT($ac_cv_linux_init_work_has_data)])
+ 
Index: openafs/src/config/Makefile.in
diff -c openafs/src/config/Makefile.in:1.15 openafs/src/config/Makefile.in:1.15.2.1
*** openafs/src/config/Makefile.in:1.15	Thu Mar  9 01:34:35 2006
--- openafs/src/config/Makefile.in	Mon Dec 18 23:20:10 2006
***************
*** 23,28 ****
--- 23,29 ----
  
  Makefile.version: ${srcdir}/Makefile.version-CML Makefile.version-NOCML
  	$(RM) -f Makefile.version
+ 	$(CP) Makefile.version-NOCML.in Makefile.version.in
  	if	[ -r SRC/../CML/state ] ; \
  	then	$(CP) ${srcdir}/Makefile.version-CML Makefile.version ; \
  	else	$(CP) Makefile.version-NOCML Makefile.version ; \
Index: openafs/src/config/NTMakefile.amd64_w2k
diff -c openafs/src/config/NTMakefile.amd64_w2k:1.24.2.13 openafs/src/config/NTMakefile.amd64_w2k:1.24.2.15
*** openafs/src/config/NTMakefile.amd64_w2k:1.24.2.13	Thu Nov 30 01:46:28 2006
--- openafs/src/config/NTMakefile.amd64_w2k	Tue Dec 26 15:28:32 2006
***************
*** 84,90 ****
  #define used in WinNT/2000 installation and program version display
  AFSPRODUCT_VER_MAJOR=1
  AFSPRODUCT_VER_MINOR=5
! AFSPRODUCT_VER_PATCH=1200
  AFSPRODUCT_VER_BUILD=0
  
  AFSPRODUCT_VERSION=$(AFSPRODUCT_VER_MAJOR).$(AFSPRODUCT_VER_MINOR).$(AFSPRODUCT_VER_PATCH)
--- 84,90 ----
  #define used in WinNT/2000 installation and program version display
  AFSPRODUCT_VER_MAJOR=1
  AFSPRODUCT_VER_MINOR=5
! AFSPRODUCT_VER_PATCH=1301
  AFSPRODUCT_VER_BUILD=0
  
  AFSPRODUCT_VERSION=$(AFSPRODUCT_VER_MAJOR).$(AFSPRODUCT_VER_MINOR).$(AFSPRODUCT_VER_PATCH)
Index: openafs/src/config/NTMakefile.i386_nt40
diff -c openafs/src/config/NTMakefile.i386_nt40:1.84.2.13 openafs/src/config/NTMakefile.i386_nt40:1.84.2.15
*** openafs/src/config/NTMakefile.i386_nt40:1.84.2.13	Thu Nov 30 01:46:28 2006
--- openafs/src/config/NTMakefile.i386_nt40	Tue Dec 26 15:28:32 2006
***************
*** 84,90 ****
  #define used in WinNT/2000 installation and program version display
  AFSPRODUCT_VER_MAJOR=1
  AFSPRODUCT_VER_MINOR=5
! AFSPRODUCT_VER_PATCH=1200
  AFSPRODUCT_VER_BUILD=0
  
  AFSPRODUCT_VERSION=$(AFSPRODUCT_VER_MAJOR).$(AFSPRODUCT_VER_MINOR).$(AFSPRODUCT_VER_PATCH)
--- 84,90 ----
  #define used in WinNT/2000 installation and program version display
  AFSPRODUCT_VER_MAJOR=1
  AFSPRODUCT_VER_MINOR=5
! AFSPRODUCT_VER_PATCH=1301
  AFSPRODUCT_VER_BUILD=0
  
  AFSPRODUCT_VERSION=$(AFSPRODUCT_VER_MAJOR).$(AFSPRODUCT_VER_MINOR).$(AFSPRODUCT_VER_PATCH)
Index: openafs/src/config/NTMakefile.i386_w2k
diff -c openafs/src/config/NTMakefile.i386_w2k:1.23.2.13 openafs/src/config/NTMakefile.i386_w2k:1.23.2.15
*** openafs/src/config/NTMakefile.i386_w2k:1.23.2.13	Thu Nov 30 01:46:28 2006
--- openafs/src/config/NTMakefile.i386_w2k	Tue Dec 26 15:28:32 2006
***************
*** 84,90 ****
  #define used in WinNT/2000 installation and program version display
  AFSPRODUCT_VER_MAJOR=1
  AFSPRODUCT_VER_MINOR=5
! AFSPRODUCT_VER_PATCH=1200
  AFSPRODUCT_VER_BUILD=0
  
  AFSPRODUCT_VERSION=$(AFSPRODUCT_VER_MAJOR).$(AFSPRODUCT_VER_MINOR).$(AFSPRODUCT_VER_PATCH)
--- 84,90 ----
  #define used in WinNT/2000 installation and program version display
  AFSPRODUCT_VER_MAJOR=1
  AFSPRODUCT_VER_MINOR=5
! AFSPRODUCT_VER_PATCH=1301
  AFSPRODUCT_VER_BUILD=0
  
  AFSPRODUCT_VERSION=$(AFSPRODUCT_VER_MAJOR).$(AFSPRODUCT_VER_MINOR).$(AFSPRODUCT_VER_PATCH)
Index: openafs/src/config/libafsdep
diff -c openafs/src/config/libafsdep:1.1 openafs/src/config/libafsdep:1.1.14.1
*** openafs/src/config/libafsdep:1.1	Tue Oct 15 23:58:31 2002
--- openafs/src/config/libafsdep	Mon Dec 18 23:20:10 2006
***************
*** 1,4 ****
  make_vnode.pl
  Makefile.config.in
! Makefile.version
  afsconfig.h.in
--- 1,4 ----
  make_vnode.pl
  Makefile.config.in
! Makefile.version.in
  afsconfig.h.in
Index: openafs/src/libafs/afs.ppc_darwin_70.plist.in
diff -c openafs/src/libafs/afs.ppc_darwin_70.plist.in:1.2.10.8 openafs/src/libafs/afs.ppc_darwin_70.plist.in:1.2.10.9
*** openafs/src/libafs/afs.ppc_darwin_70.plist.in:1.2.10.8	Fri Dec  1 15:45:30 2006
--- openafs/src/libafs/afs.ppc_darwin_70.plist.in	Mon Dec 18 23:55:15 2006
***************
*** 15,25 ****
  	<key>CFBundlePackageType</key>
  	<string>KEXT</string>
  	<key>CFBundleShortVersionString</key>
! 	<string>1.5.12</string>
  	<key>CFBundleSignature</key>
  	<string>????</string>
  	<key>CFBundleVersion</key>
! 	<string>1.5.12</string>
  	<key>OSBundleLibraries</key>
  	<dict>
  		<key>com.apple.kernel.bsd</key>
--- 15,25 ----
  	<key>CFBundlePackageType</key>
  	<string>KEXT</string>
  	<key>CFBundleShortVersionString</key>
! 	<string>1.5.13</string>
  	<key>CFBundleSignature</key>
  	<string>????</string>
  	<key>CFBundleVersion</key>
! 	<string>1.5.13</string>
  	<key>OSBundleLibraries</key>
  	<dict>
  		<key>com.apple.kernel.bsd</key>
Index: openafs/src/libafs/afs.ppc_darwin_80.plist.in
diff -c openafs/src/libafs/afs.ppc_darwin_80.plist.in:1.2.4.8 openafs/src/libafs/afs.ppc_darwin_80.plist.in:1.2.4.9
*** openafs/src/libafs/afs.ppc_darwin_80.plist.in:1.2.4.8	Fri Dec  1 15:45:30 2006
--- openafs/src/libafs/afs.ppc_darwin_80.plist.in	Mon Dec 18 23:55:15 2006
***************
*** 15,25 ****
  	<key>CFBundlePackageType</key>
  	<string>KEXT</string>
  	<key>CFBundleShortVersionString</key>
! 	<string>1.5.12</string>
  	<key>CFBundleSignature</key>
  	<string>????</string>
  	<key>CFBundleVersion</key>
! 	<string>1.5.12</string>
  	<key>OSBundleLibraries</key>
  	<dict>
  		<key>com.apple.kpi.bsd</key>
--- 15,25 ----
  	<key>CFBundlePackageType</key>
  	<string>KEXT</string>
  	<key>CFBundleShortVersionString</key>
! 	<string>1.5.13</string>
  	<key>CFBundleSignature</key>
  	<string>????</string>
  	<key>CFBundleVersion</key>
! 	<string>1.5.13</string>
  	<key>OSBundleLibraries</key>
  	<dict>
  		<key>com.apple.kpi.bsd</key>
Index: openafs/src/libafs/afs.ppc_darwin_90.plist.in
diff -c openafs/src/libafs/afs.ppc_darwin_90.plist.in:1.1.6.8 openafs/src/libafs/afs.ppc_darwin_90.plist.in:1.1.6.9
*** openafs/src/libafs/afs.ppc_darwin_90.plist.in:1.1.6.8	Fri Dec  1 15:45:30 2006
--- openafs/src/libafs/afs.ppc_darwin_90.plist.in	Mon Dec 18 23:55:15 2006
***************
*** 15,25 ****
  	<key>CFBundlePackageType</key>
  	<string>KEXT</string>
  	<key>CFBundleShortVersionString</key>
! 	<string>1.5.12</string>
  	<key>CFBundleSignature</key>
  	<string>????</string>
  	<key>CFBundleVersion</key>
! 	<string>1.5.12</string>
  	<key>OSBundleLibraries</key>
  	<dict>
  		<key>com.apple.kpi.bsd</key>
--- 15,25 ----
  	<key>CFBundlePackageType</key>
  	<string>KEXT</string>
  	<key>CFBundleShortVersionString</key>
! 	<string>1.5.13</string>
  	<key>CFBundleSignature</key>
  	<string>????</string>
  	<key>CFBundleVersion</key>
! 	<string>1.5.13</string>
  	<key>OSBundleLibraries</key>
  	<dict>
  		<key>com.apple.kpi.bsd</key>
Index: openafs/src/libafs/afs.x86_darwin_80.plist.in
diff -c openafs/src/libafs/afs.x86_darwin_80.plist.in:1.1.6.8 openafs/src/libafs/afs.x86_darwin_80.plist.in:1.1.6.9
*** openafs/src/libafs/afs.x86_darwin_80.plist.in:1.1.6.8	Fri Dec  1 15:45:30 2006
--- openafs/src/libafs/afs.x86_darwin_80.plist.in	Mon Dec 18 23:55:15 2006
***************
*** 15,25 ****
  	<key>CFBundlePackageType</key>
  	<string>KEXT</string>
  	<key>CFBundleShortVersionString</key>
! 	<string>1.5.12</string>
  	<key>CFBundleSignature</key>
  	<string>????</string>
  	<key>CFBundleVersion</key>
! 	<string>1.5.12</string>
  	<key>OSBundleLibraries</key>
  	<dict>
  		<key>com.apple.kpi.bsd</key>
--- 15,25 ----
  	<key>CFBundlePackageType</key>
  	<string>KEXT</string>
  	<key>CFBundleShortVersionString</key>
! 	<string>1.5.13</string>
  	<key>CFBundleSignature</key>
  	<string>????</string>
  	<key>CFBundleVersion</key>
! 	<string>1.5.13</string>
  	<key>OSBundleLibraries</key>
  	<dict>
  		<key>com.apple.kpi.bsd</key>
Index: openafs/src/libafs/afs.x86_darwin_90.plist.in
diff -c openafs/src/libafs/afs.x86_darwin_90.plist.in:1.1.6.8 openafs/src/libafs/afs.x86_darwin_90.plist.in:1.1.6.9
*** openafs/src/libafs/afs.x86_darwin_90.plist.in:1.1.6.8	Fri Dec  1 15:45:30 2006
--- openafs/src/libafs/afs.x86_darwin_90.plist.in	Mon Dec 18 23:55:15 2006
***************
*** 15,25 ****
  	<key>CFBundlePackageType</key>
  	<string>KEXT</string>
  	<key>CFBundleShortVersionString</key>
! 	<string>1.5.12</string>
  	<key>CFBundleSignature</key>
  	<string>????</string>
  	<key>CFBundleVersion</key>
! 	<string>1.5.12</string>
  	<key>OSBundleLibraries</key>
  	<dict>
  		<key>com.apple.kpi.bsd</key>
--- 15,25 ----
  	<key>CFBundlePackageType</key>
  	<string>KEXT</string>
  	<key>CFBundleShortVersionString</key>
! 	<string>1.5.13</string>
  	<key>CFBundleSignature</key>
  	<string>????</string>
  	<key>CFBundleVersion</key>
! 	<string>1.5.13</string>
  	<key>OSBundleLibraries</key>
  	<dict>
  		<key>com.apple.kpi.bsd</key>
Index: openafs/src/libafsrpc/afsrpc.def
diff -c openafs/src/libafsrpc/afsrpc.def:1.11.4.2 openafs/src/libafsrpc/afsrpc.def:1.11.4.3
*** openafs/src/libafsrpc/afsrpc.def:1.11.4.2	Sat Jun 24 16:41:55 2006
--- openafs/src/libafsrpc/afsrpc.def	Sat Dec 16 20:23:30 2006
***************
*** 219,221 ****
--- 219,222 ----
  	rx_InitHost				@224
  	rx_NewServiceHost			@225
          osi_AssertFailU				@226
+ 	DllMain					@227
Index: openafs/src/packaging/MacOS/OpenAFS.Info.plist
diff -c openafs/src/packaging/MacOS/OpenAFS.Info.plist:1.2.10.9 openafs/src/packaging/MacOS/OpenAFS.Info.plist:1.2.10.10
*** openafs/src/packaging/MacOS/OpenAFS.Info.plist:1.2.10.9	Fri Dec  1 15:45:35 2006
--- openafs/src/packaging/MacOS/OpenAFS.Info.plist	Mon Dec 18 23:55:16 2006
***************
*** 3,15 ****
  <plist version="1.0">
  <dict>
  	<key>CFBundleGetInfoString</key>
! 	<string>OpenAFS 1.5.12</string>
  	<key>CFBundleIdentifier</key>
  	<string>org.openafs.OpenAFS.pkg</string>
  	<key>CFBundleName</key>
  	<string>OpenAFS</string>
  	<key>CFBundleShortVersionString</key>
! 	<string>1.5.12</string>
  	<key>IFMajorVersion</key>
  	<integer>1</integer>
  	<key>IFMinorVersion</key>
--- 3,15 ----
  <plist version="1.0">
  <dict>
  	<key>CFBundleGetInfoString</key>
! 	<string>OpenAFS 1.5.13</string>
  	<key>CFBundleIdentifier</key>
  	<string>org.openafs.OpenAFS.pkg</string>
  	<key>CFBundleName</key>
  	<string>OpenAFS</string>
  	<key>CFBundleShortVersionString</key>
! 	<string>1.5.13</string>
  	<key>IFMajorVersion</key>
  	<integer>1</integer>
  	<key>IFMinorVersion</key>
Index: openafs/src/packaging/MacOS/OpenAFS.info
diff -c openafs/src/packaging/MacOS/OpenAFS.info:1.1.12.8 openafs/src/packaging/MacOS/OpenAFS.info:1.1.12.9
*** openafs/src/packaging/MacOS/OpenAFS.info:1.1.12.8	Fri Dec  1 15:45:35 2006
--- openafs/src/packaging/MacOS/OpenAFS.info	Mon Dec 18 23:55:16 2006
***************
*** 1,5 ****
  Title OpenAFS
! Version 1.5.12
  Description The OpenAFS distributed filesystem. This package installs an almost-ready-to-run client for OpenAFS. see http://www.openafs.org for more information.
  DefaultLocation /
  Diskname (null)
--- 1,5 ----
  Title OpenAFS
! Version 1.5.13
  Description The OpenAFS distributed filesystem. This package installs an almost-ready-to-run client for OpenAFS. see http://www.openafs.org for more information.
  DefaultLocation /
  Diskname (null)
Index: openafs/src/packaging/MacOS/buildpkg.sh
diff -c openafs/src/packaging/MacOS/buildpkg.sh:1.13.2.6 openafs/src/packaging/MacOS/buildpkg.sh:1.13.2.7
*** openafs/src/packaging/MacOS/buildpkg.sh:1.13.2.6	Thu Nov  9 19:20:19 2006
--- openafs/src/packaging/MacOS/buildpkg.sh	Wed Dec 27 10:49:02 2006
***************
*** 173,179 ****
  	if [ $majorvers -ge 8 ]; then
  	    cp InstallationCheck.$majorvers $PKGRES/InstallationCheck
  	    mkdir -p $PKGRES/English.lproj
! 	    cp InstallationCheck $PKGRES/English.lproj
  	    chmod a+x $PKGRES/InstallationCheck
  	fi
  	chmod a+x $PKGRES/postinstall $PKGRES/postupgrade $PKGRES/preupgrade
--- 173,179 ----
  	if [ $majorvers -ge 8 ]; then
  	    cp InstallationCheck.$majorvers $PKGRES/InstallationCheck
  	    mkdir -p $PKGRES/English.lproj
! 	    cp InstallationCheck.$majorvers $PKGRES/English.lproj
  	    chmod a+x $PKGRES/InstallationCheck
  	fi
  	chmod a+x $PKGRES/postinstall $PKGRES/postupgrade $PKGRES/preupgrade
Index: openafs/src/rx/rx.c
diff -c openafs/src/rx/rx.c:1.97.2.4 openafs/src/rx/rx.c:1.97.2.5
*** openafs/src/rx/rx.c:1.97.2.4	Sun Aug 13 12:43:28 2006
--- openafs/src/rx/rx.c	Sat Dec 16 20:23:30 2006
***************
*** 17,23 ****
  #endif
  
  RCSID
!     ("$Header: /cvs/openafs/src/rx/rx.c,v 1.97.2.4 2006/08/13 16:43:28 shadow Exp $");
  
  #ifdef KERNEL
  #include "afs/sysincludes.h"
--- 17,23 ----
  #endif
  
  RCSID
!     ("$Header: /cvs/openafs/src/rx/rx.c,v 1.97.2.5 2006/12/17 01:23:30 jaltman Exp $");
  
  #ifdef KERNEL
  #include "afs/sysincludes.h"
***************
*** 7753,7755 ****
--- 7753,7783 ----
  	return 0;
      return rxi_rxstat_userok(call);
  }
+ 
+ #ifdef AFS_NT40_ENV
+ /*
+  * DllMain() -- Entry-point function called by the DllMainCRTStartup()
+  *     function in the MSVC runtime DLL (msvcrt.dll).
+  *
+  *     Note: the system serializes calls to this function.
+  */
+ BOOL WINAPI
+ DllMain(HINSTANCE dllInstHandle,	/* instance handle for this DLL module */
+ 	DWORD reason,			/* reason function is being called */
+ 	LPVOID reserved)		/* reserved for future use */
+ {
+     switch (reason) {
+     case DLL_PROCESS_ATTACH:
+ 	/* library is being attached to a process */
+ 	INIT_PTHREAD_LOCKS;
+ 	return TRUE;
+ 
+     case DLL_PROCESS_DETACH:
+     	return TRUE;
+ 
+     default:
+ 	return FALSE;
+     }
+ }
+ #endif
+ 
Index: openafs/src/rx/rx_globals.c
diff -c openafs/src/rx/rx_globals.c:1.9.8.2 openafs/src/rx/rx_globals.c:1.9.8.3
*** openafs/src/rx/rx_globals.c:1.9.8.2	Tue Jul  4 17:24:09 2006
--- openafs/src/rx/rx_globals.c	Mon Dec 18 22:19:08 2006
***************
*** 26,35 ****
  #endif
  
  RCSID
!     ("$Header: /cvs/openafs/src/rx/rx_globals.c,v 1.9.8.2 2006/07/04 21:24:09 jaltman Exp $");
  
  /* Enable data initialization when the header file is included */
! #define INIT(stuff) = stuff
  #if defined(AFS_NT40_ENV) && defined(AFS_PTHREAD_ENV)
  #define EXT __declspec(dllexport)
  #define EXT2 __declspec(dllexport)
--- 26,35 ----
  #endif
  
  RCSID
!     ("$Header: /cvs/openafs/src/rx/rx_globals.c,v 1.9.8.3 2006/12/19 03:19:08 shadow Exp $");
  
  /* Enable data initialization when the header file is included */
! #define GLOBALSINIT(stuff) = stuff
  #if defined(AFS_NT40_ENV) && defined(AFS_PTHREAD_ENV)
  #define EXT __declspec(dllexport)
  #define EXT2 __declspec(dllexport)
Index: openafs/src/rx/rx_globals.h
diff -c openafs/src/rx/rx_globals.h:1.21.2.3 openafs/src/rx/rx_globals.h:1.21.2.4
*** openafs/src/rx/rx_globals.h:1.21.2.3	Mon Jul 31 12:19:14 2006
--- openafs/src/rx/rx_globals.h	Mon Dec 18 22:19:08 2006
***************
*** 19,26 ****
  # include "rx.h"
  #endif /* KERNEL */
  
! #ifndef INIT
! #define INIT(x)
  #if defined(AFS_NT40_ENV)
  #if defined(AFS_PTHREAD_ENV)
  #define EXT __declspec(dllimport) extern
--- 19,26 ----
  # include "rx.h"
  #endif /* KERNEL */
  
! #ifndef GLOBALSINIT
! #define GLOBALSINIT(x)
  #if defined(AFS_NT40_ENV)
  #if defined(AFS_PTHREAD_ENV)
  #define EXT __declspec(dllimport) extern
***************
*** 32,38 ****
  #define EXT2 extern
  #define EXT extern
  #endif
! #endif /* !INIT */
  
  /* Basic socket for client requests; other sockets (for receiving server requests) are in the service structures */
  EXT osi_socket rx_socket;
--- 32,38 ----
  #define EXT2 extern
  #define EXT extern
  #endif
! #endif /* !GLOBALSINIT */
  
  /* Basic socket for client requests; other sockets (for receiving server requests) are in the service structures */
  EXT osi_socket rx_socket;
***************
*** 67,98 ****
  
  /* Variable to allow introduction of network unreliability */
  #ifdef RXDEBUG
! EXT int rx_intentionallyDroppedPacketsPer100 INIT(0);	/* Dropped on Send */
! EXT int rx_intentionallyDroppedOnReadPer100  INIT(0);	/* Dropped on Read */
  #endif
  
  /* extra packets to add to the quota */
! EXT int rx_extraQuota INIT(0);
  /* extra packets to alloc (2 windows by deflt) */
! EXT int rx_extraPackets INIT(32);
  
! EXT int rx_stackSize INIT(RX_DEFAULT_STACK_SIZE);
  
  /* Time until an unresponsive connection is declared dead */
! EXT int rx_connDeadTime INIT(12);
  /* Set rx default connection dead time; set on both services and connections at creation time */
  #define rx_SetRxDeadTime(seconds)   (rx_connDeadTime = (seconds))
  
  /* Time until we toss an idle connection */
! EXT int rx_idleConnectionTime INIT(700);
  /* Time until we toss a peer structure, after all connections using are gone */
! EXT int rx_idlePeerTime INIT(60);
  
  /* The file server is temporarily salvaging */
! EXT int rx_tranquil INIT(0);
  
  /* UDP rcv buffer size */
! EXT int rx_UdpBufSize INIT(64 * 1024);
  #define rx_GetMinUdpBufSize()   (64*1024)
  #define rx_SetUdpBufSize(x)     (((x)>rx_GetMinUdpBufSize()) ? (rx_UdpBufSize = (x)):0)
  
--- 67,98 ----
  
  /* Variable to allow introduction of network unreliability */
  #ifdef RXDEBUG
! EXT int rx_intentionallyDroppedPacketsPer100 GLOBALSINIT(0);	/* Dropped on Send */
! EXT int rx_intentionallyDroppedOnReadPer100  GLOBALSINIT(0);	/* Dropped on Read */
  #endif
  
  /* extra packets to add to the quota */
! EXT int rx_extraQuota GLOBALSINIT(0);
  /* extra packets to alloc (2 windows by deflt) */
! EXT int rx_extraPackets GLOBALSINIT(32);
  
! EXT int rx_stackSize GLOBALSINIT(RX_DEFAULT_STACK_SIZE);
  
  /* Time until an unresponsive connection is declared dead */
! EXT int rx_connDeadTime GLOBALSINIT(12);
  /* Set rx default connection dead time; set on both services and connections at creation time */
  #define rx_SetRxDeadTime(seconds)   (rx_connDeadTime = (seconds))
  
  /* Time until we toss an idle connection */
! EXT int rx_idleConnectionTime GLOBALSINIT(700);
  /* Time until we toss a peer structure, after all connections using are gone */
! EXT int rx_idlePeerTime GLOBALSINIT(60);
  
  /* The file server is temporarily salvaging */
! EXT int rx_tranquil GLOBALSINIT(0);
  
  /* UDP rcv buffer size */
! EXT int rx_UdpBufSize GLOBALSINIT(64 * 1024);
  #define rx_GetMinUdpBufSize()   (64*1024)
  #define rx_SetUdpBufSize(x)     (((x)>rx_GetMinUdpBufSize()) ? (rx_UdpBufSize = (x)):0)
  
***************
*** 101,108 ****
   * waiting for a thread exceed the threshold, new calls are aborted
   * with the busy error. 
   */
! EXT int rx_BusyThreshold INIT(-1);	/* default is disabled */
! EXT int rx_BusyError INIT(-1);
  
  /* These definitions should be in one place */
  #ifdef	AFS_SUN5_ENV
--- 101,108 ----
   * waiting for a thread exceed the threshold, new calls are aborted
   * with the busy error. 
   */
! EXT int rx_BusyThreshold GLOBALSINIT(-1);	/* default is disabled */
! EXT int rx_BusyError GLOBALSINIT(-1);
  
  /* These definitions should be in one place */
  #ifdef	AFS_SUN5_ENV
***************
*** 116,146 ****
  #define RX_FAST_ACK_RATE 1	/* as of 3.4, ask for an ack every 
  				 * other packet. */
  
! EXT int rx_minWindow INIT(1);
! EXT int rx_initReceiveWindow INIT(16);	/* how much to accept */
! EXT int rx_maxReceiveWindow INIT(32);	/* how much to accept */
! EXT int rx_initSendWindow INIT(8);
! EXT int rx_maxSendWindow INIT(32);
! EXT int rx_nackThreshold INIT(3);	/* Number NACKS to trigger congestion recovery */
! EXT int rx_nDgramThreshold INIT(4);	/* Number of packets before increasing
  					 * packets per datagram */
  #define RX_MAX_FRAGS 4
! EXT int rxi_nSendFrags INIT(RX_MAX_FRAGS);	/* max fragments in a datagram */
! EXT int rxi_nRecvFrags INIT(RX_MAX_FRAGS);
! EXT int rxi_OrphanFragSize INIT(512);
  
  #define RX_MAX_DGRAM_PACKETS 6	/* max packets per jumbogram */
  
! EXT int rxi_nDgramPackets INIT(RX_MAX_DGRAM_PACKETS);
  /* allow n packets between soft acks - must be power of 2 -1, else change
   * macro below */
! EXT int rxi_SoftAckRate INIT(RX_FAST_ACK_RATE);
  /* consume n packets before sending hard ack, should be larger than above,
     but not absolutely necessary.  If it's smaller, than fast receivers will
     send a soft ack, immediately followed by a hard ack. */
! EXT int rxi_HardAckRate INIT(RX_FAST_ACK_RATE + 1);
  
! /* EXT int rx_maxWindow INIT(15);   Temporary HACK:  transmit/receive window */
  
  /* If window sizes become very variable (in terms of #packets), be
   * sure that the sender can get back a hard acks without having to wait for
--- 116,146 ----
  #define RX_FAST_ACK_RATE 1	/* as of 3.4, ask for an ack every 
  				 * other packet. */
  
! EXT int rx_minWindow GLOBALSINIT(1);
! EXT int rx_initReceiveWindow GLOBALSINIT(16);	/* how much to accept */
! EXT int rx_maxReceiveWindow GLOBALSINIT(32);	/* how much to accept */
! EXT int rx_initSendWindow GLOBALSINIT(8);
! EXT int rx_maxSendWindow GLOBALSINIT(32);
! EXT int rx_nackThreshold GLOBALSINIT(3);	/* Number NACKS to trigger congestion recovery */
! EXT int rx_nDgramThreshold GLOBALSINIT(4);	/* Number of packets before increasing
  					 * packets per datagram */
  #define RX_MAX_FRAGS 4
! EXT int rxi_nSendFrags GLOBALSINIT(RX_MAX_FRAGS);	/* max fragments in a datagram */
! EXT int rxi_nRecvFrags GLOBALSINIT(RX_MAX_FRAGS);
! EXT int rxi_OrphanFragSize GLOBALSINIT(512);
  
  #define RX_MAX_DGRAM_PACKETS 6	/* max packets per jumbogram */
  
! EXT int rxi_nDgramPackets GLOBALSINIT(RX_MAX_DGRAM_PACKETS);
  /* allow n packets between soft acks - must be power of 2 -1, else change
   * macro below */
! EXT int rxi_SoftAckRate GLOBALSINIT(RX_FAST_ACK_RATE);
  /* consume n packets before sending hard ack, should be larger than above,
     but not absolutely necessary.  If it's smaller, than fast receivers will
     send a soft ack, immediately followed by a hard ack. */
! EXT int rxi_HardAckRate GLOBALSINIT(RX_FAST_ACK_RATE + 1);
  
! /* EXT int rx_maxWindow GLOBALSINIT(15);   Temporary HACK:  transmit/receive window */
  
  /* If window sizes become very variable (in terms of #packets), be
   * sure that the sender can get back a hard acks without having to wait for
***************
*** 150,156 ****
  
  #define	ACKHACK(p,r) { if (((p)->header.seq & (rxi_SoftAckRate))==0) (p)->header.flags |= RX_REQUEST_ACK; }
  
! EXT int rx_nPackets INIT(100);	/* obsolete; use rx_extraPackets now */
  
  /*
   * pthreads thread-specific rx info support
--- 150,156 ----
  
  #define	ACKHACK(p,r) { if (((p)->header.seq & (rxi_SoftAckRate))==0) (p)->header.flags |= RX_REQUEST_ACK; }
  
! EXT int rx_nPackets GLOBALSINIT(100);	/* obsolete; use rx_extraPackets now */
  
  /*
   * pthreads thread-specific rx info support
***************
*** 233,241 ****
  
  #if defined(AFS_PTHREAD_ENV)
  #define RX_ENABLE_TSFPQ
! EXT int rx_TSFPQGlobSize INIT(3); /* number of packets to transfer between global and local queues in one op */
! EXT int rx_TSFPQLocalMax INIT(15); /* max number of packets on local FPQ before returning a glob to the global pool */
! EXT int rx_TSFPQMaxProcs INIT(0); /* max number of threads expected */
  EXT void rxi_MorePacketsTSFPQ(int apackets, int flush_global, int num_keep_local); /* more flexible packet alloc function */
  EXT void rxi_AdjustLocalPacketsTSFPQ(int num_keep_local, int allow_overcommit); /* adjust thread-local queue length, for places where we know how many packets we will need a priori */
  EXT void rxi_FlushLocalPacketsTSFPQ(void); /* flush all thread-local packets to global queue */
--- 233,241 ----
  
  #if defined(AFS_PTHREAD_ENV)
  #define RX_ENABLE_TSFPQ
! EXT int rx_TSFPQGlobSize GLOBALSINIT(3); /* number of packets to transfer between global and local queues in one op */
! EXT int rx_TSFPQLocalMax GLOBALSINIT(15); /* max number of packets on local FPQ before returning a glob to the global pool */
! EXT int rx_TSFPQMaxProcs GLOBALSINIT(0); /* max number of threads expected */
  EXT void rxi_MorePacketsTSFPQ(int apackets, int flush_global, int num_keep_local); /* more flexible packet alloc function */
  EXT void rxi_AdjustLocalPacketsTSFPQ(int num_keep_local, int allow_overcommit); /* adjust thread-local queue length, for places where we know how many packets we will need a priori */
  EXT void rxi_FlushLocalPacketsTSFPQ(void); /* flush all thread-local packets to global queue */
***************
*** 384,420 ****
  #endif /* AFS_PTHREAD_ENV */
  
  /* Number of free packets */
! EXT int rx_nFreePackets INIT(0);
! EXT int rxi_NeedMorePackets INIT(0);
! EXT int rx_nWaiting INIT(0);
! EXT int rx_nWaited INIT(0);
! EXT int rx_packetReclaims INIT(0);
  
  /* largest packet which we can safely receive, initialized to AFS 3.2 value
   * This is provided for backward compatibility with peers which may be unable
   * to swallow anything larger. THIS MUST NEVER DECREASE WHILE AN APPLICATION
   * IS RUNNING! */
! EXT afs_uint32 rx_maxReceiveSize INIT(OLD_MAX_PACKET_SIZE * RX_MAX_FRAGS +
  				      UDP_HDR_SIZE * (RX_MAX_FRAGS - 1));
  
  /* this is the maximum packet size that the user wants us to receive */
  /* this is set by rxTune if required */
! EXT afs_uint32 rx_maxReceiveSizeUser INIT(0xffffffff);
  
  /* rx_MyMaxSendSize is the size of the largest packet we will send,
   * including the RX header. Just as rx_maxReceiveSize is the
   * max we will receive, including the rx header.
   */
! EXT afs_uint32 rx_MyMaxSendSize INIT(8588);
  
  /* Maximum size of a jumbo datagram we can receive */
! EXT afs_uint32 rx_maxJumboRecvSize INIT(RX_MAX_PACKET_SIZE);
  
  /* need this to permit progs to run on AIX systems */
! EXT int (*rxi_syscallp) (afs_uint32 a3, afs_uint32 a4, void *a5)INIT(0);
  
  /* List of free queue entries */
! EXT struct rx_serverQueueEntry *rx_FreeSQEList INIT(0);
  #ifdef	RX_ENABLE_LOCKS
  EXT afs_kmutex_t freeSQEList_lock;
  #endif
--- 384,420 ----
  #endif /* AFS_PTHREAD_ENV */
  
  /* Number of free packets */
! EXT int rx_nFreePackets GLOBALSINIT(0);
! EXT int rxi_NeedMorePackets GLOBALSINIT(0);
! EXT int rx_nWaiting GLOBALSINIT(0);
! EXT int rx_nWaited GLOBALSINIT(0);
! EXT int rx_packetReclaims GLOBALSINIT(0);
  
  /* largest packet which we can safely receive, initialized to AFS 3.2 value
   * This is provided for backward compatibility with peers which may be unable
   * to swallow anything larger. THIS MUST NEVER DECREASE WHILE AN APPLICATION
   * IS RUNNING! */
! EXT afs_uint32 rx_maxReceiveSize GLOBALSINIT(OLD_MAX_PACKET_SIZE * RX_MAX_FRAGS +
  				      UDP_HDR_SIZE * (RX_MAX_FRAGS - 1));
  
  /* this is the maximum packet size that the user wants us to receive */
  /* this is set by rxTune if required */
! EXT afs_uint32 rx_maxReceiveSizeUser GLOBALSINIT(0xffffffff);
  
  /* rx_MyMaxSendSize is the size of the largest packet we will send,
   * including the RX header. Just as rx_maxReceiveSize is the
   * max we will receive, including the rx header.
   */
! EXT afs_uint32 rx_MyMaxSendSize GLOBALSINIT(8588);
  
  /* Maximum size of a jumbo datagram we can receive */
! EXT afs_uint32 rx_maxJumboRecvSize GLOBALSINIT(RX_MAX_PACKET_SIZE);
  
  /* need this to permit progs to run on AIX systems */
! EXT int (*rxi_syscallp) (afs_uint32 a3, afs_uint32 a4, void *a5)GLOBALSINIT(0);
  
  /* List of free queue entries */
! EXT struct rx_serverQueueEntry *rx_FreeSQEList GLOBALSINIT(0);
  #ifdef	RX_ENABLE_LOCKS
  EXT afs_kmutex_t freeSQEList_lock;
  #endif
***************
*** 424,430 ****
  #ifdef	RX_ENABLE_LOCKS
  EXT afs_kmutex_t rx_freeCallQueue_lock;
  #endif
! EXT afs_int32 rxi_nCalls INIT(0);
  
  /* Port requested at rx_Init.  If this is zero, the actual port used will be different--but it will only be used for client operations.  If non-zero, server provided services may use the same port. */
  EXT u_short rx_port;
--- 424,430 ----
  #ifdef	RX_ENABLE_LOCKS
  EXT afs_kmutex_t rx_freeCallQueue_lock;
  #endif
! EXT afs_int32 rxi_nCalls GLOBALSINIT(0);
  
  /* Port requested at rx_Init.  If this is zero, the actual port used will be different--but it will only be used for client operations.  If non-zero, server provided services may use the same port. */
  EXT u_short rx_port;
***************
*** 434,440 ****
  EXT fd_set rx_selectMask;
  EXT osi_socket rx_maxSocketNumber;	/* Maximum socket number in the select mask. */
  /* Minumum socket number in the select mask. */
! EXT osi_socket rx_minSocketNumber INIT(0x7fffffff);
  #endif
  
  /* This is actually the minimum number of packets that must remain free,
--- 434,440 ----
  EXT fd_set rx_selectMask;
  EXT osi_socket rx_maxSocketNumber;	/* Maximum socket number in the select mask. */
  /* Minumum socket number in the select mask. */
! EXT osi_socket rx_minSocketNumber GLOBALSINIT(0x7fffffff);
  #endif
  
  /* This is actually the minimum number of packets that must remain free,
***************
*** 446,456 ****
  /* value large enough to guarantee that no allocation fails due to RX_PACKET_QUOTAS.
     Make it a little bigger, just for fun */
  #define	RX_MAX_QUOTA	15	/* part of min packet computation */
! EXT int rx_packetQuota[RX_N_PACKET_CLASSES] INIT(RX_PACKET_QUOTAS);
! EXT int meltdown_1pkt INIT(1);	/* prefer to schedule single-packet calls */
! EXT int rxi_doreclaim INIT(1);	/* if discard one packet, discard all */
! EXT int rxi_md2cnt INIT(0);	/* counter of skipped calls */
! EXT int rxi_2dchoice INIT(1);	/* keep track of another call to schedule */
  
  /* quota system: each attached server process must be able to make
      progress to avoid system deadlock, so we ensure that we can always
--- 446,456 ----
  /* value large enough to guarantee that no allocation fails due to RX_PACKET_QUOTAS.
     Make it a little bigger, just for fun */
  #define	RX_MAX_QUOTA	15	/* part of min packet computation */
! EXT int rx_packetQuota[RX_N_PACKET_CLASSES] GLOBALSINIT(RX_PACKET_QUOTAS);
! EXT int meltdown_1pkt GLOBALSINIT(1);	/* prefer to schedule single-packet calls */
! EXT int rxi_doreclaim GLOBALSINIT(1);	/* if discard one packet, discard all */
! EXT int rxi_md2cnt GLOBALSINIT(0);	/* counter of skipped calls */
! EXT int rxi_2dchoice GLOBALSINIT(1);	/* keep track of another call to schedule */
  
  /* quota system: each attached server process must be able to make
      progress to avoid system deadlock, so we ensure that we can always
***************
*** 467,477 ****
      quota to send any packets) */
  /* # to reserve so that thread with input can still make calls (send packets)
     without blocking */
! EXT int rxi_dataQuota INIT(RX_MAX_QUOTA);	/* packets to reserve for active threads */
  
! EXT afs_int32 rxi_availProcs INIT(0);	/* number of threads in the pool */
! EXT afs_int32 rxi_totalMin INIT(0);	/* Sum(minProcs) forall services */
! EXT afs_int32 rxi_minDeficit INIT(0);	/* number of procs needed to handle all minProcs */
  
  EXT int rx_nextCid;		/* Next connection call id */
  EXT int rx_epoch;		/* Initialization time of rx */
--- 467,477 ----
      quota to send any packets) */
  /* # to reserve so that thread with input can still make calls (send packets)
     without blocking */
! EXT int rxi_dataQuota GLOBALSINIT(RX_MAX_QUOTA);	/* packets to reserve for active threads */
  
! EXT afs_int32 rxi_availProcs GLOBALSINIT(0);	/* number of threads in the pool */
! EXT afs_int32 rxi_totalMin GLOBALSINIT(0);	/* Sum(minProcs) forall services */
! EXT afs_int32 rxi_minDeficit GLOBALSINIT(0);	/* number of procs needed to handle all minProcs */
  
  EXT int rx_nextCid;		/* Next connection call id */
  EXT int rx_epoch;		/* Initialization time of rx */
***************
*** 484,491 ****
  
  EXT struct rx_peer **rx_peerHashTable;
  EXT struct rx_connection **rx_connHashTable;
! EXT struct rx_connection *rx_connCleanup_list INIT(0);
! EXT afs_uint32 rx_hashTableSize INIT(257);	/* Prime number */
  #ifdef RX_ENABLE_LOCKS
  EXT afs_kmutex_t rx_peerHashTable_lock;
  EXT afs_kmutex_t rx_connHashTable_lock;
--- 484,491 ----
  
  EXT struct rx_peer **rx_peerHashTable;
  EXT struct rx_connection **rx_connHashTable;
! EXT struct rx_connection *rx_connCleanup_list GLOBALSINIT(0);
! EXT afs_uint32 rx_hashTableSize GLOBALSINIT(257);	/* Prime number */
  #ifdef RX_ENABLE_LOCKS
  EXT afs_kmutex_t rx_peerHashTable_lock;
  EXT afs_kmutex_t rx_connHashTable_lock;
***************
*** 530,546 ****
  #endif
  #define rx_Log_event rxevent_debugFile
  
! EXT char *rx_packetTypes[RX_N_PACKET_TYPES] INIT(RX_PACKET_TYPES);	/* Strings defined in rx.h */
  
  #ifndef KERNEL
  /*
   * Counter used to implement connection specific data
   */
! EXT int rxi_keyCreate_counter INIT(0);
  /*
   * Array of function pointers used to destory connection specific data
   */
! EXT rx_destructor_t *rxi_keyCreate_destructor INIT(NULL);
  #ifdef RX_ENABLE_LOCKS
  EXT afs_kmutex_t rxi_keyCreate_lock;
  #endif /* RX_ENABLE_LOCKS */
--- 530,546 ----
  #endif
  #define rx_Log_event rxevent_debugFile
  
! EXT char *rx_packetTypes[RX_N_PACKET_TYPES] GLOBALSINIT(RX_PACKET_TYPES);	/* Strings defined in rx.h */
  
  #ifndef KERNEL
  /*
   * Counter used to implement connection specific data
   */
! EXT int rxi_keyCreate_counter GLOBALSINIT(0);
  /*
   * Array of function pointers used to destory connection specific data
   */
! EXT rx_destructor_t *rxi_keyCreate_destructor GLOBALSINIT(NULL);
  #ifdef RX_ENABLE_LOCKS
  EXT afs_kmutex_t rxi_keyCreate_lock;
  #endif /* RX_ENABLE_LOCKS */
***************
*** 556,576 ****
   * server throttles the client by waiting before sending error messages.
   * Disabled if abort thresholds are zero.
   */
! EXT int rxi_connAbortThreshhold INIT(0);
! EXT int rxi_connAbortDelay INIT(3000);
! EXT int rxi_callAbortThreshhold INIT(0);
! EXT int rxi_callAbortDelay INIT(3000);
  
  /*
   * Thread specific thread ID used to implement LWP_Index().
   */
  
  #if defined(AFS_PTHREAD_ENV)
! EXT int rxi_fcfs_thread_num INIT(0);
  EXT pthread_key_t rx_thread_id_key;
  /* keep track of pthread numbers - protected by rx_stats_mutex, 
     except in rx_Init() before mutex exists! */
! EXT int rxi_pthread_hinum INIT(0);
  #else
  #define rxi_fcfs_thread_num (0)
  #endif
--- 556,576 ----
   * server throttles the client by waiting before sending error messages.
   * Disabled if abort thresholds are zero.
   */
! EXT int rxi_connAbortThreshhold GLOBALSINIT(0);
! EXT int rxi_connAbortDelay GLOBALSINIT(3000);
! EXT int rxi_callAbortThreshhold GLOBALSINIT(0);
! EXT int rxi_callAbortDelay GLOBALSINIT(3000);
  
  /*
   * Thread specific thread ID used to implement LWP_Index().
   */
  
  #if defined(AFS_PTHREAD_ENV)
! EXT int rxi_fcfs_thread_num GLOBALSINIT(0);
  EXT pthread_key_t rx_thread_id_key;
  /* keep track of pthread numbers - protected by rx_stats_mutex, 
     except in rx_Init() before mutex exists! */
! EXT int rxi_pthread_hinum GLOBALSINIT(0);
  #else
  #define rxi_fcfs_thread_num (0)
  #endif
***************
*** 579,591 ****
  EXT afs_kmutex_t rx_stats_mutex;	/* used to activate stats gathering */
  #endif
  
! EXT2 int rx_enable_stats INIT(0);
  
  /*
   * Set this flag to enable the listener thread to trade places with an idle
   * worker thread to move the context switch from listener to worker out of
   * the request path.
   */
! EXT int rx_enable_hot_thread INIT(0);
  
  #endif /* AFS_RX_GLOBALS_H */
--- 579,591 ----
  EXT afs_kmutex_t rx_stats_mutex;	/* used to activate stats gathering */
  #endif
  
! EXT2 int rx_enable_stats GLOBALSINIT(0);
  
  /*
   * Set this flag to enable the listener thread to trade places with an idle
   * worker thread to move the context switch from listener to worker out of
   * the request path.
   */
! EXT int rx_enable_hot_thread GLOBALSINIT(0);
  
  #endif /* AFS_RX_GLOBALS_H */
Index: openafs/src/rx/rx_kcommon.h
diff -c openafs/src/rx/rx_kcommon.h:1.32 openafs/src/rx/rx_kcommon.h:1.32.4.1
*** openafs/src/rx/rx_kcommon.h:1.32	Tue Nov 29 01:52:05 2005
--- openafs/src/rx/rx_kcommon.h	Thu Dec 28 16:30:28 2006
***************
*** 112,117 ****
--- 112,118 ----
  #endif
  #ifdef AFS_LINUX22_ENV
  #include "h/sched.h"
+ #include "h/freezer.h"
  #include "h/netdevice.h"
  #include "linux/if.h"
  #else
Index: openafs/src/rx/rx_packet.c
diff -c openafs/src/rx/rx_packet.c:1.62.2.1 openafs/src/rx/rx_packet.c:1.62.2.2
*** openafs/src/rx/rx_packet.c:1.62.2.1	Mon Jul 31 11:09:09 2006
--- openafs/src/rx/rx_packet.c	Tue Dec  5 14:41:34 2006
***************
*** 15,21 ****
  #endif
  
  RCSID
!     ("$Header: /cvs/openafs/src/rx/rx_packet.c,v 1.62.2.1 2006/07/31 15:09:09 shadow Exp $");
  
  #ifdef KERNEL
  #if defined(UKERNEL)
--- 15,21 ----
  #endif
  
  RCSID
!     ("$Header: /cvs/openafs/src/rx/rx_packet.c,v 1.62.2.2 2006/12/05 19:41:34 shadow Exp $");
  
  #ifdef KERNEL
  #if defined(UKERNEL)
***************
*** 2623,2629 ****
  	osi_Panic("PrepareSendPacket 1\n");	/* MTUXXX */
      } else {
          struct rx_queue q;
!        int nb;
  
  	queue_Init(&q);
  
--- 2623,2629 ----
  	osi_Panic("PrepareSendPacket 1\n");	/* MTUXXX */
      } else {
          struct rx_queue q;
! 	int nb;
  
  	queue_Init(&q);
  
***************
*** 2634,2641 ****
  	if (nb)
  	    rxi_FreePackets(nb, &q);
  
! 	p->niovecs = i;
! 	p->wirevec[i - 1].iov_len += len;
      }
      RXS_PreparePacket(conn->securityObject, call, p);
  }
--- 2634,2641 ----
  	if (nb)
  	    rxi_FreePackets(nb, &q);
  
! 	p->niovecs = MAX(2, i);
! 	p->wirevec[MAX(2, i) - 1].iov_len += len;
      }
      RXS_PreparePacket(conn->securityObject, call, p);
  }
Index: openafs/src/rx/rx_user.c
diff -c openafs/src/rx/rx_user.c:1.24 openafs/src/rx/rx_user.c:1.24.4.1
*** openafs/src/rx/rx_user.c:1.24	Thu Jan 26 15:34:50 2006
--- openafs/src/rx/rx_user.c	Sat Dec 16 20:23:30 2006
***************
*** 13,19 ****
  #include <afs/param.h>
  
  RCSID
!     ("$Header: /cvs/openafs/src/rx/rx_user.c,v 1.24 2006/01/26 20:34:50 shadow Exp $");
  
  # include <sys/types.h>
  # include <errno.h>
--- 13,19 ----
  #include <afs/param.h>
  
  RCSID
!     ("$Header: /cvs/openafs/src/rx/rx_user.c,v 1.24.4.1 2006/12/17 01:23:30 jaltman Exp $");
  
  # include <sys/types.h>
  # include <errno.h>
***************
*** 299,308 ****
      /* The IP address list can change so we must query for it */
      rx_GetIFInfo();
  
      /* we don't want to use the loopback adapter which is first */
!     /* this is a bad bad hack */
      if ( rxi_numNetAddrs > 1 )
          offset = 1;
  
      for (count = 0; offset < rxi_numNetAddrs && maxSize > 0;
  	 count++, offset++, maxSize--)
--- 299,312 ----
      /* The IP address list can change so we must query for it */
      rx_GetIFInfo();
  
+ #ifndef AFS_NT40_ENV
      /* we don't want to use the loopback adapter which is first */
!     /* this is a bad bad hack.
!      * and doesn't hold true on Windows.
!      */
      if ( rxi_numNetAddrs > 1 )
          offset = 1;
+ #endif /* AFS_NT40_ENV */
  
      for (count = 0; offset < rxi_numNetAddrs && maxSize > 0;
  	 count++, offset++, maxSize--)
Index: openafs/src/rx/LINUX/rx_kmutex.c
diff -c openafs/src/rx/LINUX/rx_kmutex.c:1.13 openafs/src/rx/LINUX/rx_kmutex.c:1.13.2.1
*** openafs/src/rx/LINUX/rx_kmutex.c:1.13	Thu Mar  9 01:06:35 2006
--- openafs/src/rx/LINUX/rx_kmutex.c	Thu Dec 28 16:30:28 2006
***************
*** 17,23 ****
  #include "afs/param.h"
  
  RCSID
!     ("$Header: /cvs/openafs/src/rx/LINUX/rx_kmutex.c,v 1.13 2006/03/09 06:06:35 shadow Exp $");
  
  #include "rx/rx_kcommon.h"
  #include "rx_kmutex.h"
--- 17,23 ----
  #include "afs/param.h"
  
  RCSID
!     ("$Header: /cvs/openafs/src/rx/LINUX/rx_kmutex.c,v 1.13.2.1 2006/12/28 21:30:28 shadow Exp $");
  
  #include "rx/rx_kcommon.h"
  #include "rx_kmutex.h"
***************
*** 119,125 ****
--- 119,129 ----
  #ifdef PF_FREEZE
  	    current->flags & PF_FREEZE
  #else
+ #if defined(STRUCT_TASK_STRUCT_HAS_TODO)
  	    !current->todo
+ #else
+ 	    test_ti_thread_flag(current->thread_info, TIF_FREEZE)
+ #endif
  #endif
  	    )
  #ifdef LINUX_REFRIGERATOR_TAKES_PF_FREEZE
Index: openafs/src/rx/LINUX/rx_knet.c
diff -c openafs/src/rx/LINUX/rx_knet.c:1.32.2.1 openafs/src/rx/LINUX/rx_knet.c:1.32.2.2
*** openafs/src/rx/LINUX/rx_knet.c:1.32.2.1	Fri Sep 22 07:18:38 2006
--- openafs/src/rx/LINUX/rx_knet.c	Thu Dec 28 16:30:29 2006
***************
*** 16,22 ****
  #include "afs/param.h"
  
  RCSID
!     ("$Header: /cvs/openafs/src/rx/LINUX/rx_knet.c,v 1.32.2.1 2006/09/22 11:18:38 shadow Exp $");
  
  #include <linux/version.h>
  #ifdef AFS_LINUX22_ENV
--- 16,22 ----
  #include "afs/param.h"
  
  RCSID
!     ("$Header: /cvs/openafs/src/rx/LINUX/rx_knet.c,v 1.32.2.2 2006/12/28 21:30:29 shadow Exp $");
  
  #include <linux/version.h>
  #ifdef AFS_LINUX22_ENV
***************
*** 170,176 ****
--- 170,180 ----
  #ifdef PF_FREEZE
  	    current->flags & PF_FREEZE
  #else
+ #if defined(STRUCT_TASK_STRUCT_HAS_TODO)
  	    !current->todo
+ #else
+             test_ti_thread_flag(current->thread_info, TIF_FREEZE)
+ #endif
  #endif
  	    )
  #ifdef LINUX_REFRIGERATOR_TAKES_PF_FREEZE
Index: openafs/src/ubik/remote.c
diff -c openafs/src/ubik/remote.c:1.15 openafs/src/ubik/remote.c:1.15.4.1
*** openafs/src/ubik/remote.c:1.15	Sun Nov  6 04:29:46 2005
--- openafs/src/ubik/remote.c	Fri Dec 15 11:39:46 2006
***************
*** 11,17 ****
  #include <afs/param.h>
  
  RCSID
!     ("$Header: /cvs/openafs/src/ubik/remote.c,v 1.15 2005/11/06 09:29:46 jaltman Exp $");
  
  #include <sys/types.h>
  #ifdef AFS_NT40_ENV
--- 11,17 ----
  #include <afs/param.h>
  
  RCSID
!     ("$Header: /cvs/openafs/src/ubik/remote.c,v 1.15.4.1 2006/12/15 16:39:46 shadow Exp $");
  
  #include <sys/types.h>
  #ifdef AFS_NT40_ENV
***************
*** 459,464 ****
--- 459,465 ----
      code = rx_Write(rxcall, (char *)&tlen, sizeof(afs_int32));
      if (code != sizeof(afs_int32)) {
  	DBRELE(dbase);
+ 	ubik_dprint("Rx-write length error=%d\n", code);
  	return BULK_ERROR;
      }
      offset = 0;
***************
*** 467,477 ****
--- 468,480 ----
  	code = (*dbase->read) (dbase, file, tbuffer, offset, tlen);
  	if (code != tlen) {
  	    DBRELE(dbase);
+ 	    ubik_dprint("read failed error=%d\n", code);
  	    return UIOERROR;
  	}
  	code = rx_Write(rxcall, tbuffer, tlen);
  	if (code != tlen) {
  	    DBRELE(dbase);
+ 	    ubik_dprint("Rx-write length error=%d\n", code);
  	    return BULK_ERROR;
  	}
  	length -= tlen;
***************
*** 545,556 ****
--- 548,561 ----
  	code = rx_Read(rxcall, tbuffer, tlen);
  	if (code != tlen) {
  	    DBRELE(dbase);
+ 	    ubik_dprint("Rx-read length error=%d\n", code);
  	    code = BULK_ERROR;
  	    goto failed;
  	}
  	code = (*dbase->write) (dbase, file, tbuffer, offset, tlen);
  	if (code != tlen) {
  	    DBRELE(dbase);
+ 	    ubik_dprint("write failed error=%d\n", code);
  	    code = UIOERROR;
  	    goto failed;
  	}
Index: openafs/src/volser/dumpstuff.c
diff -c openafs/src/volser/dumpstuff.c:1.29.2.4 openafs/src/volser/dumpstuff.c:1.29.2.6
*** openafs/src/volser/dumpstuff.c:1.29.2.4	Tue Nov 28 04:29:28 2006
--- openafs/src/volser/dumpstuff.c	Mon Dec 18 23:50:46 2006
***************
*** 11,17 ****
  #include <afs/param.h>
  
  RCSID
!     ("$Header: /cvs/openafs/src/volser/dumpstuff.c,v 1.29.2.4 2006/11/28 09:29:28 jaltman Exp $");
  
  #include <sys/types.h>
  #include <ctype.h>
--- 11,17 ----
  #include <afs/param.h>
  
  RCSID
!     ("$Header: /cvs/openafs/src/volser/dumpstuff.c,v 1.29.2.6 2006/12/19 04:50:46 shadow Exp $");
  
  #include <sys/types.h>
  #include <ctype.h>
***************
*** 1035,1046 ****
      struct iod iod;
      register struct iod *iodp = &iod;
      afs_int32 *b1 = NULL, *b2 = NULL;
!     int s1 = 0, s2 = 0, delo = incremental, tdelo;
      int tag;
  
      iod_Init(iodp, call);
  
      vp = avp;
      if (!ReadDumpHeader(iodp, &header)) {
  	Log("1 Volser: RestoreVolume: Error reading header file for dump; aborted\n");
  	return VOLSERREAD_DUMPERROR;
--- 1035,1049 ----
      struct iod iod;
      register struct iod *iodp = &iod;
      afs_int32 *b1 = NULL, *b2 = NULL;
!     int s1 = 0, s2 = 0, delo = 0, tdelo;
      int tag;
  
      iod_Init(iodp, call);
  
      vp = avp;
+     if (V_parentId(vp) == V_id(vp))
+       delo = incremental;
+ 
      if (!ReadDumpHeader(iodp, &header)) {
  	Log("1 Volser: RestoreVolume: Error reading header file for dump; aborted\n");
  	return VOLSERREAD_DUMPERROR;
Index: openafs/src/volser/volprocs.c
diff -c openafs/src/volser/volprocs.c:1.42.2.1 openafs/src/volser/volprocs.c:1.42.2.2
*** openafs/src/volser/volprocs.c:1.42.2.1	Tue Nov 28 04:29:28 2006
--- openafs/src/volser/volprocs.c	Mon Dec 18 22:42:21 2006
***************
*** 11,17 ****
  #include <afs/param.h>
  
  RCSID
!     ("$Header: /cvs/openafs/src/volser/volprocs.c,v 1.42.2.1 2006/11/28 09:29:28 jaltman Exp $");
  
  #include <stdio.h>
  #include <sys/types.h>
--- 11,17 ----
  #include <afs/param.h>
  
  RCSID
!     ("$Header: /cvs/openafs/src/volser/volprocs.c,v 1.42.2.2 2006/12/19 03:42:21 jaltman Exp $");
  
  #include <stdio.h>
  #include <sys/types.h>
***************
*** 1198,1204 ****
      strcpy(tt->lastProcName, "ForwardMulti");
  
      /* (fromDate == 0) ==> full dump */
!     is_incremental = ((V_parentId(vp) == V_id(vp) && fromDate) ? 1 : 0);
  
      i = results->manyResults_len = destinations->manyDests_len;
      results->manyResults_val = codes =
--- 1198,1204 ----
      strcpy(tt->lastProcName, "ForwardMulti");
  
      /* (fromDate == 0) ==> full dump */
!     is_incremental = (fromDate ? 1 : 0);
  
      i = results->manyResults_len = destinations->manyDests_len;
      results->manyResults_val = codes =
