}
static BOOL
-DriveIsMappedToAFS(char *drivestr)
+DriveIsMappedToAFS(char *drivestr, char *NetbiosName)
{
- HKEY hk;
- char NetbiosName[32] = "AFS";
DWORD dwResult, dwResultEnum;
HANDLE hEnum;
DWORD cbBuffer = 16384; // 16K is a good size
DWORD i;
BOOL bIsAFS = FALSE;
- if (RegOpenKey (HKEY_LOCAL_MACHINE, AFSREG_CLT_SVC_PARAM_SUBKEY, &hk) == 0)
- {
- DWORD dwSize = sizeof(NetbiosName);
- DWORD dwType = REG_SZ;
- RegQueryValueExA (hk, "NetbiosName", NULL, &dwType, (PBYTE)NetbiosName, &dwSize);
- RegCloseKey (hk);
- }
-
//
// Call the WNetOpenEnum function to begin the enumeration.
//
CurrentState != SERVICE_RUNNING)
return -1;
+ // Populate the Netbios Name
+ lana_GetNetbiosName(netbiosName,LANA_NETBIOS_NAME_FULL);
+
if (fileNamep) {
drivep = strchr(fileNamep, ':');
if (drivep && (drivep - fileNamep) >= 1) {
switch (driveType) {
case DRIVE_UNKNOWN:
case DRIVE_REMOTE:
- if (DriveIsMappedToAFS(tbuffer))
+ if (DriveIsMappedToAFS(tbuffer, netbiosName))
strcpy(&tbuffer[2], SMB_IOCTL_FILENAME);
else
return -1;
}
if (!tbuffer[0]) {
/* No file name starting with drive colon specified, use UNC name */
- lana_GetNetbiosName(netbiosName,LANA_NETBIOS_NAME_FULL);
sprintf(tbuffer,"\\\\%s\\all%s",netbiosName,SMB_IOCTL_FILENAME);
}