Initial IBM OpenAFS 1.0 tree
[openafs.git] / src / WINNT / afsusrmgr / task.h
1 #ifndef TASK_H
2 #define TASK_H
3
4
5 /*
6  * PROTOTYPES _________________________________________________________________
7  *
8  */
9
10 typedef struct
11    {
12    TCHAR szCell[ cchNAME ];
13    BOOL fCloseAppOnFail;
14    PVOID hCreds;
15    } OPENCELL_PARAMS, *LPOPENCELL_PARAMS;
16
17 typedef struct
18    {
19    ASID idUser;
20    AFSADMSVR_CHANGEUSER_PARAMS NewProperties;
21    } USER_CHANGE_PARAMS, *LPUSER_CHANGE_PARAMS;
22
23 typedef struct
24    {
25    LPASIDLIST pUsers;
26    LPASIDLIST pGroups;
27    BOOL fMembership;
28    } USER_GROUPLIST_SET_PARAMS, *LPUSER_GROUPLIST_SET_PARAMS;
29
30 typedef struct
31    {
32    ASID idUser;
33    int keyVersion;
34    TCHAR keyString[ cchRESOURCE ];
35    BYTE keyData[ ENCRYPTIONKEYLENGTH ];
36    } USER_CPW_PARAMS, *LPUSER_CPW_PARAMS;
37
38 typedef struct
39    {
40    LPTSTR mszNames;
41    TCHAR szPassword[ cchRESOURCE ];
42    int idUser;
43    AFSADMSVR_CHANGEUSER_PARAMS Properties;
44    LPASIDLIST pGroupsMember;
45    LPASIDLIST pGroupsOwner;
46    BOOL fCreateKAS;
47    BOOL fCreatePTS;
48    } USER_CREATE_PARAMS, *LPUSER_CREATE_PARAMS;
49
50 typedef struct
51    {
52    LPASIDLIST pUserList;
53    BOOL fDeleteKAS;
54    BOOL fDeletePTS;
55    } USER_DELETE_PARAMS, *LPUSER_DELETE_PARAMS;
56
57 typedef struct
58    {
59    ASID idGroup;
60    AFSADMSVR_CHANGEGROUP_PARAMS NewProperties;
61    } GROUP_CHANGE_PARAMS, *LPGROUP_CHANGE_PARAMS;
62
63 typedef struct
64    {
65    LPASIDLIST pUserList;
66    BOOL fMembership;
67    } GROUP_SEARCH_PARAMS, *LPGROUP_SEARCH_PARAMS;
68
69 typedef struct
70    {
71    LPASIDLIST pGroups;
72    LPASIDLIST pMembers;
73    } GROUP_MEMBERS_SET_PARAMS, *LPGROUP_MEMBERS_SET_PARAMS;
74
75 typedef struct
76    {
77    ASID idGroup;
78    TCHAR szNewName[ cchNAME ];
79    } GROUP_RENAME_PARAMS, *LPGROUP_RENAME_PARAMS;
80
81 typedef struct
82    {
83    ASID idGroup;
84    LPASIDLIST pOwnedGroups;
85    } GROUP_OWNED_SET_PARAMS, *LPGROUP_OWNED_SET_PARAMS;
86
87 typedef struct
88    {
89    LPTSTR mszNames;
90    TCHAR szOwner[ cchNAME ];
91    int idGroup;
92    AFSADMSVR_CHANGEGROUP_PARAMS Properties;
93    LPASIDLIST pMembers;
94    LPASIDLIST pGroupsOwner;
95    } GROUP_CREATE_PARAMS, *LPGROUP_CREATE_PARAMS;
96
97 typedef struct
98    {
99    LPCTSTR pszNames;
100    ASOBJTYPE Type;
101    } LIST_TRANSLATE_PARAMS, *LPLIST_TRANSLATE_PARAMS;
102
103 typedef struct
104    {
105    HWND hNotify;
106    LPASIDLIST pAsidList;
107    } OBJECT_LISTEN_PARAMS, *LPOBJECT_LISTEN_PARAMS;
108
109 typedef struct
110    {
111    ASID idCell;
112    int idUserMax;
113    int idGroupMax;
114    } CELL_CHANGE_PARAMS, *LPCELL_CHANGE_PARAMS;
115
116 typedef enum
117    {
118    taskOPENCELL,        // lp = new OPENCELL_PARAMS
119    taskUPD_CREDS,       // lp = unused
120    taskUPD_USERS,       // lp = unused
121    taskUPD_GROUPS,      // lp = unused
122    taskUPD_MACHINES,    // lp = unused
123    taskREFRESH, // lp = (ASID)idRefreshScope
124    taskREFRESHMULT,     // lp = scope (from asc_AsidListCreate)
125    taskGET_ACTIONS,     // lp = unused
126    taskGET_RANDOM_KEY,  // lp = unused
127    taskUSER_CHANGE,     // lp = new USER_CHANGE_PARAMS
128    taskUSER_FIND,       // lp = CloneString(szUserName)
129    taskUSER_ENUM,       // lp = CloneString(szPattern) or NULL
130    taskUSER_GROUPLIST_SET,      // lp = new USER_GROUPLIST_SET_PARAMS
131    taskUSER_CPW,        // lp = new USER_CPW_PARAMS
132    taskUSER_UNLOCK,     // lp = users (from asc_AsidListCreate)
133    taskUSER_CREATE,     // lp = new USER_CREATE_PARAMS
134    taskUSER_DELETE,     // lp = new USER_DELETE_PARAMS
135    taskGROUP_CHANGE,    // lp = new GROUP_CHANGE_PARAMS
136    taskGROUP_SEARCH,    // lp = new GROUP_SEARCH_PARAMS
137    taskGROUP_MEMBERS_GET,       // lp = groups (from asc_AsidListCreate)
138    taskGROUP_MEMBERS_SET,       // lp = new GROUP_MEMBERS_SET_PARAMS
139    taskGROUP_ENUM,      // lp = CloneString(szPattern) or NULL
140    taskGROUP_RENAME,    // lp = new GROUP_RENAME_PARAMS
141    taskGROUP_OWNED_GET, // lp = (ASID)idGroup
142    taskGROUP_OWNED_SET, // lp = new GROUP_OWNED_SET_PARAMS
143    taskGROUP_CREATE,    // lp = new GROUP_CREATE_PARAMS
144    taskGROUP_DELETE,    // lp = groups (from asc_AsidListCreate)
145    taskCELL_CHANGE,     // lp = new CELL_CHANGE_PARAMS
146    taskLIST_TRANSLATE,  // lp = new LIST_TRANSLATE_PARAMS
147    taskOBJECT_LISTEN,   // lp = new OBJECT_LISTEN_PARAMS
148    taskOBJECT_GET,      // lp = (ASID)idObject
149    taskSET_REFRESH,     // lp = unused
150    taskEXPIRED_CREDS    // lp = unused
151    } TASK;
152
153 typedef struct
154    {
155    ASID idCell; // what was found out?
156    LPASIDLIST pAsidList;
157    LPASACTIONLIST pActionList;
158    TCHAR szPattern[ cchNAME ];
159    ASID idObject;
160    ASOBJTYPE Type;
161    ASOBJPROP Properties;
162    BOOL fMembership;
163    BYTE key[ ENCRYPTIONKEYLENGTH ];
164    } TASKPACKETDATA, *LPTASKPACKETDATA;
165
166 #define TASKDATA(_ptp) ((LPTASKPACKETDATA)(ptp->pReturn))
167
168
169 LPTASKPACKET CreateTaskPacket (int idTask, HWND hReply, PVOID lpUser);
170 void FreeTaskPacket (LPTASKPACKET ptp);
171 void PerformTask (LPTASKPACKET ptp);
172
173
174 #endif
175