-- Jeffrey Altman - 14 Jun 2008 This page provides a partial list of the work that must be done to update the AFS Servers on the Microsoft Windows platform. ## [[NetRestrict]] and [[NetInfo]] configuration files The Windows AFS Servers (nor the client) has no support for the AFS [[NetRestrict]] and [[NetInfo]] files. This makes it very difficult to deploy servers on Windows systems which often include a variety of network adapters beyond just the physical adapter. The location of AFSDIR\_SERVER\_NETRESTRICT\_FILEPATH and AFSDIR\_SERVER\_NETINFO\_FILEPATH have already been defined in src/util/dirpath\_nt.h and src/util/dirpath.c. ## The NT vol back end The NT vol back end (ntops.c) is based upon the [[NameI]] back end for UNIX but is designed to work with NTFS. Over the years the UNIX [[NameI]] back end has received a number of bug fixes and improvements. We need to verify that none of these changes must also be implemented for the NT back end. [link to namei\_ops.c cvs history](http://www.openafs.org/cgi-bin/cvsweb.cgi/openafs/src/vol/namei_ops.c?only_with_tag=MAIN) Need to modify the mappings of vice partitions to NTFS disk locations. Would prefer to permit arbitrary paths to the current drive letter mapping. Now that DAFS has been implemented we may want to restart the NT vol backend from scratch. ## Missing command line parameters - Enable --syslog option for Windows servers. Consider using a project like for linking to the AFS Services. A syslog daemon product such as can be used to collect the events. - Enable --auditlog option. Must add support for Windows named pipes instead of files. - Enable rx configuration options. ## Miscellaneous There are a number of random comments in the code choosing arbitrary values for Windows. Must replace arbitrary decisions with values based upon the actual capabilities of the system. ## Ignore kaserver Assume that kaserver does not exist. Instead, we will count on the presence of either Active Directory or some external krb5 kdc. ## Viced - [[ProcessSize]] and STATS64\_PROCESSSIZE should be set to the Private Bytes allocation for the current process. Use [[GetProcessMemoryInfo]](). - The arbitrary definiton of NT\_OPEN\_MAX should be replaced by an attempt to read the value of HKLM\\Software\\Microsoft\\Windows NT\\CurrentVersion\\Windows\\USERProcessHandleQuota which has a default value of 10,000 if the registry value is not present. ## FSync Interface - The FSync interface is UNIX optimized. Replacing FSync with a Windows specific LPC mechanism should be examined. ## Bos Server - The Bos server process is wrapped with an NT Service "BosCtlSvc". There might be a better way to handle this. ## Server Configuration - The Windows client now reads all of its data from the registry. Even the CellServDB has a registry equivalent although it is not required. - At present the configuration files match those of the Unix implementation. Providing a registry based alternate might be desirable in some environments.