2 * Copyright 2000, International Business Machines Corporation and others.
5 * This software has been released under the terms of the IBM Public
6 * License. For details, see the LICENSE file in the top-level source
7 * directory or online at http://www.openafs.org/dl/license10.html
15 * DEFINITIONS ________________________________________________________________
19 #define chDRIVE_A TEXT('A')
20 #define chDRIVE_B TEXT('B')
21 #define chDRIVE_C TEXT('C')
22 #define chDRIVE_D TEXT('D')
23 #define chDRIVE_E TEXT('E')
24 #define chDRIVE_F TEXT('F')
25 #define chDRIVE_G TEXT('G')
26 #define chDRIVE_H TEXT('H')
27 #define chDRIVE_I TEXT('I')
28 #define chDRIVE_J TEXT('J')
29 #define chDRIVE_K TEXT('K')
30 #define chDRIVE_L TEXT('L')
31 #define chDRIVE_M TEXT('M')
32 #define chDRIVE_N TEXT('N')
33 #define chDRIVE_O TEXT('O')
34 #define chDRIVE_P TEXT('P')
35 #define chDRIVE_Q TEXT('Q')
36 #define chDRIVE_R TEXT('R')
37 #define chDRIVE_S TEXT('S')
38 #define chDRIVE_T TEXT('T')
39 #define chDRIVE_U TEXT('U')
40 #define chDRIVE_V TEXT('V')
41 #define chDRIVE_W TEXT('W')
42 #define chDRIVE_X TEXT('X')
43 #define chDRIVE_Y TEXT('Y')
44 #define chDRIVE_Z TEXT('Z')
48 TCHAR chDrive; // chDRIVE_A through chDRIVE_Z
49 TCHAR szMapping[ MAX_PATH ];
50 TCHAR szSubmount[ MAX_PATH ];
53 } DRIVEMAP, *PDRIVEMAP;
57 TCHAR szSubmount[ MAX_PATH ];
58 TCHAR szMapping[ MAX_PATH ];
60 } SUBMOUNT, *PSUBMOUNT;
64 DRIVEMAP aDriveMap[26]; // Drive[0]=A, Drive[1]=B, etc
67 } DRIVEMAPLIST, *PDRIVEMAPLIST;
71 * PROTOTYPES _________________________________________________________________
75 BOOL IsValidSubmountName (LPTSTR pszSubmount);
76 void QueryDriveMapList (PDRIVEMAPLIST pList);
77 void WriteDriveMappings (PDRIVEMAPLIST pList);
78 void FreeDriveMapList (PDRIVEMAPLIST pList);
79 BOOL ActivateDriveMap (TCHAR chDrive, LPTSTR pszMapping, LPTSTR pszSubmountReq, BOOL fPersistent, DWORD *pdwStatus = NULL);
80 BOOL InactivateDriveMap (TCHAR chDrive, DWORD *pdwStatus = NULL);
81 void AddSubMount (LPTSTR pszSubmount, LPTSTR pszMapping);
82 void RemoveSubMount (LPTSTR pszSubmount);
83 void AdjustAfsPath (LPTSTR pszTarget, LPCTSTR pszSource, BOOL fWantAFS, BOOL fWantForwardSlashes);
84 BOOL GetDriveSubmount (TCHAR chDrive, LPTSTR pszSubmountNow);
85 BOOL SubmountToPath (PDRIVEMAPLIST pList, LPTSTR pszPath, LPTSTR pszSubmount, BOOL fMarkInUse);
86 BOOL PathToSubmount (LPTSTR pszSubmount, LPTSTR pszMapping, LPTSTR pszSubmountReq, ULONG *pStatus);
88 BOOL TestAndDoMapShare(DWORD);
90 void MapShareName(char *);
91 void DoUnMapShare(BOOL);
92 BOOL DoMapShareChange();
93 DWORD RWLogonOption(BOOL read,DWORD value);
94 BOOL GlobalMountDrive();
95 DWORD MountDOSDrive(char chDrive,const char *szSubmount,BOOL bPresistant=TRUE,const char *puser=NULL);
96 DWORD DisMountDOSDrive(const char *szSubmount,BOOL bForce=TRUE);
97 DWORD DisMountDOSDrive(char chDrive,BOOL bForce=TRUE);
98 DWORD DisMountDOSDriveFull(const char *pPath,BOOL bForce=TRUE);
100 void WriteActiveMap(TCHAR chDrive, BOOL bOn);
101 BOOL ForceMapActive(TCHAR chDrive);
103 #ifndef DRIVEMAP_DEF_H
104 extern void TestAndDoUnMapShare();
105 extern TCHAR pUserName[];
106 extern BOOL fUserName;
107 extern DWORD RWLogonOption(BOOL read,DWORD value);
108 extern void SetBitLogonOption(BOOL set,DWORD value);
109 extern BOOL TestAndDoMapShare(DWORD);