Initial IBM OpenAFS 1.0 tree
[openafs.git] / src / WINNT / client_config / drivemap.h
1 #ifndef DRIVEMAP_H
2 #define DRIVEMAP_H
3
4
5 /*
6  * DEFINITIONS ________________________________________________________________
7  *
8  */
9
10 #define chDRIVE_A   TEXT('A')
11 #define chDRIVE_B   TEXT('B')
12 #define chDRIVE_C   TEXT('C')
13 #define chDRIVE_D   TEXT('D')
14 #define chDRIVE_E   TEXT('E')
15 #define chDRIVE_F   TEXT('F')
16 #define chDRIVE_G   TEXT('G')
17 #define chDRIVE_H   TEXT('H')
18 #define chDRIVE_I   TEXT('I')
19 #define chDRIVE_J   TEXT('J')
20 #define chDRIVE_K   TEXT('K')
21 #define chDRIVE_L   TEXT('L')
22 #define chDRIVE_M   TEXT('M')
23 #define chDRIVE_N   TEXT('N')
24 #define chDRIVE_O   TEXT('O')
25 #define chDRIVE_P   TEXT('P')
26 #define chDRIVE_Q   TEXT('Q')
27 #define chDRIVE_R   TEXT('R')
28 #define chDRIVE_S   TEXT('S')
29 #define chDRIVE_T   TEXT('T')
30 #define chDRIVE_U   TEXT('U')
31 #define chDRIVE_V   TEXT('V')
32 #define chDRIVE_W   TEXT('W')
33 #define chDRIVE_X   TEXT('X')
34 #define chDRIVE_Y   TEXT('Y')
35 #define chDRIVE_Z   TEXT('Z')
36
37 typedef struct
38    {
39    TCHAR chDrive;       // chDRIVE_A through chDRIVE_Z
40    TCHAR szMapping[ MAX_PATH ];
41    TCHAR szSubmount[ MAX_PATH ];
42    BOOL fPersistent;
43    BOOL fActive;
44    } DRIVEMAP, *PDRIVEMAP;
45
46 typedef struct
47    {
48    TCHAR szSubmount[ MAX_PATH ];
49    TCHAR szMapping[ MAX_PATH ];
50    BOOL fInUse;
51    } SUBMOUNT, *PSUBMOUNT;
52
53 typedef struct
54    {
55    DRIVEMAP aDriveMap[26];      // Drive[0]=A, Drive[1]=B, etc
56    PSUBMOUNT aSubmounts;
57    size_t cSubmounts;
58    } DRIVEMAPLIST, *PDRIVEMAPLIST;
59
60
61 /*
62  * PROTOTYPES _________________________________________________________________
63  *
64  */
65
66 BOOL IsValidSubmountName (LPTSTR pszSubmount);
67 void QueryDriveMapList (PDRIVEMAPLIST pList);
68 void WriteDriveMappings (PDRIVEMAPLIST pList);
69 void FreeDriveMapList (PDRIVEMAPLIST pList);
70 BOOL ActivateDriveMap (TCHAR chDrive, LPTSTR pszMapping, LPTSTR pszSubmountReq, BOOL fPersistent, DWORD *pdwStatus = NULL);
71 BOOL InactivateDriveMap (TCHAR chDrive, DWORD *pdwStatus = NULL);
72 void AddSubMount (LPTSTR pszSubmount, LPTSTR pszMapping);
73 void RemoveSubMount (LPTSTR pszSubmount);
74 void AdjustAfsPath (LPTSTR pszTarget, LPCTSTR pszSource, BOOL fWantAFS, BOOL fWantForwardSlashes);
75 BOOL GetDriveSubmount (TCHAR chDrive, LPTSTR pszSubmountNow);
76 BOOL SubmountToPath (PDRIVEMAPLIST pList, LPTSTR pszPath, LPTSTR pszSubmount, BOOL fMarkInUse);
77 BOOL PathToSubmount (LPTSTR pszSubmount, LPTSTR pszMapping, LPTSTR pszSubmountReq, ULONG *pStatus);
78
79 #endif
80