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
14 #include <afsconfig.h>
15 #include <afs/param.h>
19 #include <WINNT/afsclass.h>
24 #include <afs/vlserver.h>
29 * DEFINITIONS ________________________________________________________________
34 static LPCTSTR cszAFSVOSDLL = TCHAR("AfsVosAdmin.dll");
35 static LPCTSTR cszAFSBOSDLL = TCHAR("AfsBosAdmin.dll");
36 static LPCTSTR cszAFSKASDLL = TCHAR("AfsKasAdmin.dll");
37 static LPCTSTR cszAFSPTSDLL = TCHAR("AfsPtsAdmin.dll");
38 static LPCTSTR cszAFSUTILDLL = TCHAR("AfsAdminUtil.dll");
39 static LPCTSTR cszAFSCLIENTDLL = TCHAR("AfsClientAdmin.dll");
41 static LPCTSTR cszAFSVOSDLL = __T("AfsVosAdmin.dll");
42 static LPCTSTR cszAFSBOSDLL = __T("AfsBosAdmin.dll");
43 static LPCTSTR cszAFSKASDLL = __T("AfsKasAdmin.dll");
44 static LPCTSTR cszAFSPTSDLL = __T("AfsPtsAdmin.dll");
45 static LPCTSTR cszAFSUTILDLL = __T("AfsAdminUtil.dll");
46 static LPCTSTR cszAFSCLIENTDLL = __T("AfsClientAdmin.dll");
50 * VARIABLES __________________________________________________________________
54 static HINSTANCE hiVOS = NULL;
55 static HINSTANCE hiBOS = NULL;
56 static HINSTANCE hiKAS = NULL;
57 static HINSTANCE hiPTS = NULL;
58 static HINSTANCE hiUtil = NULL;
59 static HINSTANCE hiClient = NULL;
63 * .DLL PROTOTYPES ____________________________________________________________
69 typedef int (ADMINAPI *lpVosBackupVolumeCreate_t)(const void *cellHandle, vos_MessageCallBack_t callBack, unsigned int volumeId, afs_status_p st);
70 typedef int (ADMINAPI *lpVosBackupVolumeCreateMultiple_t)(const void *cellHandle, const void *serverHandle, vos_MessageCallBack_t callBack, const unsigned int *partition, const char *volumePrefix, vos_exclude_t excludePrefix, afs_status_p st);
71 typedef int (ADMINAPI *lpVosPartitionGet_t)(const void *cellHandle, const void *serverHandle, vos_MessageCallBack_t callBack, unsigned int partition, vos_partitionEntry_p partitionP, afs_status_p st);
72 typedef int (ADMINAPI *lpVosPartitionGetBegin_t)(const void *cellHandle, const void *serverHandle, vos_MessageCallBack_t callBack, void **iterationIdP, afs_status_p st);
73 typedef int (ADMINAPI *lpVosPartitionGetNext_t)(const void *iterationId, vos_partitionEntry_p partitionP, afs_status_p st);
74 typedef int (ADMINAPI *lpVosPartitionGetDone_t)(const void *iterationId, afs_status_p st);
75 typedef int (ADMINAPI *lpVosServerOpen_t)(const void *cellHandle, const char *serverName, void **serverHandleP, afs_status_p st);
76 typedef int (ADMINAPI *lpVosServerClose_t)(const void *serverHandle, afs_status_p st);
77 typedef int (ADMINAPI *lpVosServerSync_t)(const void *cellHandle, const void *serverHandle, vos_MessageCallBack_t callBack, const unsigned int *partition, vos_force_t force, afs_status_p st);
78 typedef int (ADMINAPI *lpVosFileServerAddressChange_t)(const void *cellHandle, vos_MessageCallBack_t callBack, int oldAddress, int newAddress, afs_status_p st);
79 typedef int (ADMINAPI *lpVosFileServerAddressRemove_t)(const void *cellHandle, vos_MessageCallBack_t callBack, int serverAddress, afs_status_p st);
80 typedef int (ADMINAPI *lpVosFileServerGetBegin_t)(const void *cellHandle, vos_MessageCallBack_t callBack, void **iterationIdP, afs_status_p st);
81 typedef int (ADMINAPI *lpVosFileServerGetNext_t)(void *iterationId, vos_fileServerEntry_p serverEntryP, afs_status_p st);
82 typedef int (ADMINAPI *lpVosFileServerGetDone_t)(void *iterationId, afs_status_p st);
83 typedef int (ADMINAPI *lpVosServerTransactionStatusGetBegin_t)(const void *cellHandle, const void *serverHandle, vos_MessageCallBack_t callBack, void **iterationIdP, afs_status_p st);
84 typedef int (ADMINAPI *lpVosServerTransactionStatusGetNext_t)(const void *iterationId, vos_serverTransactionStatus_p serverTransactionStatusP, afs_status_p st);
85 typedef int (ADMINAPI *lpVosServerTransactionStatusGetDone_t)(const void *iterationId, afs_status_p st);
86 typedef int (ADMINAPI *lpVosVLDBGet_t)(const void *cellHandle, vos_MessageCallBack_t callBack, const unsigned int *volumeId, const char *volumeName, vos_vldbEntry_p vldbEntry, afs_status_p st);
87 typedef int (ADMINAPI *lpVosVLDBGetBegin_t)(const void *cellHandle, const void *serverHandle, vos_MessageCallBack_t callBack, unsigned int *partition, void **iterationIdP, afs_status_p st);
88 typedef int (ADMINAPI *lpVosVLDBGetNext_t)(const void *iterationId, vos_vldbEntry_p vldbEntry, afs_status_p st);
89 typedef int (ADMINAPI *lpVosVLDBGetDone_t)(const void *iterationId, afs_status_p st);
90 typedef int (ADMINAPI *lpVosVLDBEntryRemove_t)(const void *cellHandle, const void *serverHandle, vos_MessageCallBack_t callBack, const unsigned int *partition, unsigned int *volumeId, afs_status_p st);
91 typedef int (ADMINAPI *lpVosVLDBUnlock_t)(const void *cellHandle, const void *serverHandle, vos_MessageCallBack_t callBack, const unsigned int *partition, afs_status_p st);
92 typedef int (ADMINAPI *lpVosVLDBEntryLock_t)(const void *cellHandle, vos_MessageCallBack_t callBack, unsigned int volumeId, afs_status_p st);
93 typedef int (ADMINAPI *lpVosVLDBEntryUnlock_t)(const void *cellHandle, vos_MessageCallBack_t callBack, unsigned int volumeId, afs_status_p st);
94 typedef int (ADMINAPI *lpVosVLDBReadOnlySiteCreate_t)(const void *cellHandle, const void *serverHandle, vos_MessageCallBack_t callBack, unsigned int partition, unsigned int volumeId, afs_status_p st);
95 typedef int (ADMINAPI *lpVosVLDBReadOnlySiteDelete_t)(const void *cellHandle, const void *serverHandle, vos_MessageCallBack_t callBack, unsigned int partition, unsigned int volumeId, afs_status_p st);
96 typedef int (ADMINAPI *lpVosVLDBSync_t)(const void *cellHandle, const void *serverHandle, vos_MessageCallBack_t callBack, const unsigned int *partition, vos_force_t force, afs_status_p st);
97 typedef int (ADMINAPI *lpVosVolumeCreate_t)(const void *cellHandle, const void *serverHandle, vos_MessageCallBack_t callBack, unsigned int partition, const char *volumeName, unsigned int quota, unsigned int *volumeId, afs_status_p st);
98 typedef int (ADMINAPI *lpVosVolumeDelete_t)(const void *cellHandle, const void *serverHandle, vos_MessageCallBack_t callBack, unsigned int partition, unsigned int volumeId, afs_status_p st);
99 typedef int (ADMINAPI *lpVosVolumeRename_t)(const void *cellHandle, vos_MessageCallBack_t callBack, unsigned int readWriteVolumeId, const char *newVolumeName, afs_status_p st);
100 typedef int (ADMINAPI *lpVosVolumeDump_t)(const void *cellHandle, const void *serverHandle, vos_MessageCallBack_t callBack, unsigned int *partition, unsigned int volumeId, unsigned int startTime, const char *dumpFile, afs_status_p st);
101 typedef int (ADMINAPI *lpVosVolumeRestore_t)(const void *cellHandle, const void *serverHandle, vos_MessageCallBack_t callBack, unsigned int partition, unsigned int *volumeId, const char *volumeName, const char *dumpFile, vos_volumeRestoreType_t dumpType, afs_status_p st);
102 typedef int (ADMINAPI *lpVosVolumeOnline_t)(const void *serverHandle, vos_MessageCallBack_t callBack, unsigned int partition, unsigned int volumeId, unsigned int sleepTime, vos_volumeOnlineType_t volumeStatus, afs_status_p st);
103 typedef int (ADMINAPI *lpVosVolumeOffline_t)(const void *serverHandle, vos_MessageCallBack_t callBack, unsigned int partition, unsigned int volumeId, afs_status_p st);
104 typedef int (ADMINAPI *lpVosVolumeGet_t)(const void *cellHandle, const void *serverHandle, vos_MessageCallBack_t callBack, unsigned int partition, unsigned int volumeId, vos_volumeEntry_p volumeP, afs_status_p st);
105 typedef int (ADMINAPI *lpVosVolumeGetBegin_t)(const void *cellHandle, const void *serverHandle, vos_MessageCallBack_t callBack, unsigned int partition, void **iterationIdP, afs_status_p st);
106 typedef int (ADMINAPI *lpVosVolumeGetNext_t)(const void *iterationId, vos_volumeEntry_p volumeP, afs_status_p st);
107 typedef int (ADMINAPI *lpVosVolumeGetDone_t)(const void *iterationId, afs_status_p st);
108 typedef int (ADMINAPI *lpVosVolumeMove_t)(const void *cellHandle, vos_MessageCallBack_t callBack, unsigned int volumeId, const void *fromServer, unsigned int fromPartition, const void *toServer, unsigned int toPartition, afs_status_p st);
109 typedef int (ADMINAPI *lpVosVolumeRelease_t)(const void *cellHandle, vos_MessageCallBack_t callBack, unsigned int volumeId, vos_force_t force, afs_status_p st);
110 typedef int (ADMINAPI *lpVosVolumeZap_t)(const void *cellHandle, const void *serverHandle, vos_MessageCallBack_t callBack, unsigned int partition, unsigned int volumeId, vos_force_t force, afs_status_p st);
111 typedef int (ADMINAPI *lpVosPartitionNameToId_t)(const char *partitionName, unsigned int *partitionId, afs_status_p st);
112 typedef int (ADMINAPI *lpVosPartitionIdToName_t)(unsigned int partitionId, char *partitionName, afs_status_p st);
113 typedef int (ADMINAPI *lpVosVolumeQuotaChange_t)(const void *cellHandle, const void *serverHandle, vos_MessageCallBack_t callBack, unsigned int partition, unsigned int volumeId, unsigned int volumeQuota, afs_status_p st);
115 typedef int (ADMINAPI *lpBosServerOpen_t)(const void *cellHandle, const char *hostName, void **hostHandlePP, afs_status_p st);
116 typedef int (ADMINAPI *lpBosServerClose_t)(const void *hostHandleP, afs_status_p st);
117 typedef int (ADMINAPI *lpBosProcessCreate_t)(const void *serverHandle, const char *processName, bos_ProcessType_t processType, const char *process, const char *cronTime, const char *notifier, afs_status_p st);
118 typedef int (ADMINAPI *lpBosProcessDelete_t)(const void *serverHandle, const char *processName, afs_status_p st);
119 typedef int (ADMINAPI *lpBosProcessExecutionStateGet_t)(const void *serverHandle, const char *processName, bos_ProcessExecutionState_p processStatusP, char *auxiliaryProcessStatus, afs_status_p st);
120 typedef int (ADMINAPI *lpBosProcessExecutionStateSet_t)(const void *serverHandle, const char *processName, bos_ProcessExecutionState_t processStatus, afs_status_p st);
121 typedef int (ADMINAPI *lpBosProcessExecutionStateSetTemporary_t)(const void *serverHandle, const char *processName, bos_ProcessExecutionState_t processStatus, afs_status_p st);
122 typedef int (ADMINAPI *lpBosProcessNameGetBegin_t)(const void *serverHandle, void **iterationIdP, afs_status_p st);
123 typedef int (ADMINAPI *lpBosProcessNameGetNext_t)(const void *iterationId, char *processName, afs_status_p st);
124 typedef int (ADMINAPI *lpBosProcessNameGetDone_t)(const void *iterationId, afs_status_p st);
125 typedef int (ADMINAPI *lpBosProcessInfoGet_t)(const void *serverHandle, const char *processName, bos_ProcessType_p processTypeP, bos_ProcessInfo_p processInfoP, afs_status_p st);
126 typedef int (ADMINAPI *lpBosProcessParameterGetBegin_t)(const void *serverHandle, const char *processName, void **iterationIdP, afs_status_p st);
127 typedef int (ADMINAPI *lpBosProcessParameterGetNext_t)(const void *iterationId, char *parameter, afs_status_p st);
128 typedef int (ADMINAPI *lpBosProcessParameterGetDone_t)(const void *iterationId, afs_status_p st);
129 typedef int (ADMINAPI *lpBosProcessNotifierGet_t)(const void *serverHandle, const char *processName, char *notifier, afs_status_p st);
130 typedef int (ADMINAPI *lpBosProcessRestart_t)(const void *serverHandle, const char *processName, afs_status_p st);
131 typedef int (ADMINAPI *lpBosProcessAllStop_t)(const void *serverHandle, afs_status_p st);
132 typedef int (ADMINAPI *lpBosProcessAllStart_t)(const void *serverHandle, afs_status_p st);
133 typedef int (ADMINAPI *lpBosProcessAllWaitStop_t)(const void *serverHandle, afs_status_p st);
134 typedef int (ADMINAPI *lpBosProcessAllStopAndRestart_t)(const void *serverHandle, bos_RestartBosServer_t restartBosServer, afs_status_p st);
135 typedef int (ADMINAPI *lpBosAdminCreate_t)(const void *serverHandle, const char *adminName, afs_status_p st);
136 typedef int (ADMINAPI *lpBosAdminDelete_t)(const void *serverHandle, const char *adminName, afs_status_p st);
137 typedef int (ADMINAPI *lpBosAdminGetBegin_t)(const void *serverHandle, void **iterationIdP, afs_status_p st);
138 typedef int (ADMINAPI *lpBosAdminGetNext_t)(const void *iterationId, char *adminName, afs_status_p st);
139 typedef int (ADMINAPI *lpBosAdminGetDone_t)(const void *iterationId, afs_status_p st);
140 typedef int (ADMINAPI *lpBosKeyCreate_t)(const void *serverHandle, int keyVersionNumber, const kas_encryptionKey_p key, afs_status_p st);
141 typedef int (ADMINAPI *lpBosKeyDelete_t)(const void *serverHandle, int keyVersionNumber, afs_status_p st);
142 typedef int (ADMINAPI *lpBosKeyGetBegin_t)(const void *serverHandle, void **iterationIdP, afs_status_p st);
143 typedef int (ADMINAPI *lpBosKeyGetNext_t)(const void *iterationId, bos_KeyInfo_p keyP, afs_status_p st);
144 typedef int (ADMINAPI *lpBosKeyGetDone_t)(const void *iterationId, afs_status_p st);
145 typedef int (ADMINAPI *lpBosCellSet_t)(const void *serverHandle, const char *cellName, afs_status_p st);
146 typedef int (ADMINAPI *lpBosCellGet_t)(const void *serverHandle, char *cellName, afs_status_p st);
147 typedef int (ADMINAPI *lpBosHostCreate_t)(const void *serverHandle, const char *hostName, afs_status_p st);
148 typedef int (ADMINAPI *lpBosHostDelete_t)(const void *serverHandle, const char *hostName, afs_status_p st);
149 typedef int (ADMINAPI *lpBosHostGetBegin_t)(const void *serverHandle, void **iterationIdP, afs_status_p st);
150 typedef int (ADMINAPI *lpBosHostGetNext_t)(const void *iterationId, char *hostName, afs_status_p st);
151 typedef int (ADMINAPI *lpBosHostGetDone_t)(const void *iterationId, afs_status_p st);
152 typedef int (ADMINAPI *lpBosExecutableCreate_t)(const void *serverHandle, const char *sourceFile, const char *destFile, afs_status_p st);
153 typedef int (ADMINAPI *lpBosExecutableRevert_t)(const void *serverHandle, const char *execFile, afs_status_p st);
154 typedef int (ADMINAPI *lpBosExecutableTimestampGet_t)(const void *serverHandle, const char *execFile, unsigned long *newTime, unsigned long *oldTime, unsigned long *bakTime, afs_status_p st);
155 typedef int (ADMINAPI *lpBosExecutablePrune_t)(const void *serverHandle, bos_Prune_t oldFiles, bos_Prune_t bakFiles, bos_Prune_t coreFiles, afs_status_p st);
156 typedef int (ADMINAPI *lpBosExecutableRestartTimeSet_t)(const void *serverHandle, bos_Restart_t type, bos_RestartTime_t time, afs_status_p st);
157 typedef int (ADMINAPI *lpBosExecutableRestartTimeGet_t)(const void *serverHandle, bos_Restart_t type, bos_RestartTime_p timeP, afs_status_p st);
158 typedef int (ADMINAPI *lpBosLogGet_t)(const void *serverHandle, const char *log, unsigned long *logBufferSizeP, char *logData, afs_status_p st);
159 typedef int (ADMINAPI *lpBosAuthSet_t)(const void *serverHandle, bos_Auth_t auth, afs_status_p st);
160 typedef int (ADMINAPI *lpBosCommandExecute_t)(const void *serverHandle, const char *command, afs_status_p st);
161 typedef int (ADMINAPI *lpBosSalvage_t)(const void *cellHandle, const void *serverHandle, const char *partitionName, const char *volumeName, int numSalvagers, const char *tmpDir, const char *logFile, vos_force_t force, bos_SalvageDamagedVolumes_t salvageDamagedVolumes, bos_WriteInodes_t writeInodes, bos_WriteRootInodes_t writeRootInodes, bos_ForceDirectory_t forceDirectory, bos_ForceBlockRead_t forceBlockRead, afs_status_p st);
163 typedef int (ADMINAPI *lpKasServerOpen_t)(const void *cellHandle, const char **serverList, void **serverHandleP, afs_status_p st); typedef int (ADMINAPI *lpKasServerClose_t)(void *serverHandle, afs_status_p st); typedef int (ADMINAPI *lpKasServerStatsGet_t)(const void *cellHandle, const void *serverHandle, kas_serverStats_p stats, afs_status_p st); typedef int (ADMINAPI *lpKasServerDebugGet_t)(const void *cellHandle, const void *serverHandle, kas_serverDebugInfo_p debug, afs_status_p st); typedef int (ADMINAPI *lpKasServerRandomKeyGet_t)(const void *cellHandle, const void *serverHandle, kas_encryptionKey_p key, afs_status_p st); typedef int (ADMINAPI *lpKasStringToKey_t)(const char *cellName, const char *string, kas_encryptionKey_p key, afs_status_p st); typedef int (ADMINAPI *lpKasPrincipalCreate_t)(const void *cellHandle, const void *serverHandle, const kas_identity_p who, const char *password, afs_status_p st);
164 typedef int (ADMINAPI *lpKasPrincipalDelete_t)(const void *cellHandle, const void *serverHandle, const kas_identity_p who, afs_status_p st);
165 typedef int (ADMINAPI *lpKasPrincipalGet_t)(const void *cellHandle, const void *serverHandle, const kas_identity_p who, kas_principalEntry_p principal, afs_status_p st);
166 typedef int (ADMINAPI *lpKasPrincipalGetBegin_t)(const void *cellHandle, const void *serverHandle, void **iterationIdP, afs_status_p st);
167 typedef int (ADMINAPI *lpKasPrincipalGetNext_t)(const void *iterationId, kas_identity_p who, afs_status_p st);
168 typedef int (ADMINAPI *lpKasPrincipalGetDone_t)(void *iterationIdP, afs_status_p st);
169 typedef int (ADMINAPI *lpKasPrincipalKeySet_t)(const void *cellHandle, const void *serverHandle, const kas_identity_p who, int keyVersion, const kas_encryptionKey_p key, afs_status_p st);
170 typedef int (ADMINAPI *lpKasPrincipalLockStatusGet_t)(const void *cellHandle, const void *serverHandle, const kas_identity_p who, unsigned long *lock_end_timeP, afs_status_p st);
171 typedef int (ADMINAPI *lpKasPrincipalUnlock_t)(const void *cellHandle, const void *serverHandle, const kas_identity_p who, afs_status_p st);
172 typedef int (ADMINAPI *lpKasPrincipalFieldsSet_t)(const void *cellHandle, const void *serverHandle, const kas_identity_p who, const kas_admin_p isAdmin, const kas_tgs_p grantTickets, const kas_enc_p canEncrypt, const kas_cpw_p canChangePassword, const unsigned int *expirationDate, const unsigned int *maxTicketLifetime, const unsigned int *passwordExpires, const kas_rpw_p passwordReuse, const unsigned int *failedPasswordAttempts, const unsigned int *failedPasswordLockTime, afs_status_p st);
174 typedef int (ADMINAPI *lpPtsGroupMemberAdd_t)(const void *cellHandle, const char *userName, const char *groupName, afs_status_p st);
175 typedef int (ADMINAPI *lpPtsGroupOwnerChange_t)(const void *cellHandle, const char *targetGroup, const char *newOwner, afs_status_p st);
176 typedef int (ADMINAPI *lpPtsGroupCreate_t)(const void *cellHandle, const char *newGroup, const char *newOwner, const int *newGroupIdP, afs_status_p st);
177 typedef int (ADMINAPI *lpPtsGroupGet_t)(const void *cellHandle, const char *groupName, pts_GroupEntry_p groupP, afs_status_p st);
178 typedef int (ADMINAPI *lpPtsGroupDelete_t)(const void *cellHandle, const char *group, afs_status_p st);
179 typedef int (ADMINAPI *lpPtsGroupMaxGet_t)(const void *cellHandle, int *maxGroupId, afs_status_p st);
180 typedef int (ADMINAPI *lpPtsGroupMaxSet_t)(const void *cellHandle, int maxGroupId, afs_status_p st);
181 typedef int (ADMINAPI *lpPtsGroupMemberListBegin_t)(const void *cellHandle, const char *groupName, void **iterationIdP, afs_status_p st);
182 typedef int (ADMINAPI *lpPtsGroupMemberListNext_t)(const void *iterationIdP, char *memberName, afs_status_p st);
183 typedef int (ADMINAPI *lpPtsGroupMemberListDone_t)(const void *iterationIdP, afs_status_p st);
184 typedef int (ADMINAPI *lpPtsGroupMemberRemove_t)(const void *cellHandle, const char *memberName, const char *groupName, afs_status_p st);
185 typedef int (ADMINAPI *lpPtsGroupRename_t)(const void *cellHandle, const char *oldName, const char *newName, afs_status_p st);
186 typedef int (ADMINAPI *lpPtsGroupModify_t)(const void *cellHandle, const char *groupName, pts_GroupUpdateEntry_p newEntryP, afs_status_p st);
187 typedef int (ADMINAPI *lpPtsUserCreate_t)(const void *cellHandle, const char *newUser, const int *newUserIdP, afs_status_p st);
188 typedef int (ADMINAPI *lpPtsUserDelete_t)(const void *cellHandle, const char *user, afs_status_p st);
189 typedef int (ADMINAPI *lpPtsUserGet_t)(const void *cellHandle, const char *userName, pts_UserEntry_p userP, afs_status_p st);
190 typedef int (ADMINAPI *lpPtsUserRename_t)(const void *cellHandle, const char *oldName, const char *newName, afs_status_p st);
191 typedef int (ADMINAPI *lpPtsUserModify_t)(const void *cellHandle, const char *userName, pts_UserUpdateEntry_p newEntryP, afs_status_p st);
192 typedef int (ADMINAPI *lpPtsUserMaxGet_t)(const void *cellHandle, int *maxUserId, afs_status_p st);
193 typedef int (ADMINAPI *lpPtsUserMaxSet_t)(const void *cellHandle, int maxUserId, afs_status_p st);
194 typedef int (ADMINAPI *lpPtsUserMemberListBegin_t)(const void *cellHandle, const char *userName, void **iterationIdP, afs_status_p st);
195 typedef int (ADMINAPI *lpPtsUserMemberListNext_t)(const void *iterationIdP, char *groupName, afs_status_p st);
196 typedef int (ADMINAPI *lpPtsUserMemberListDone_t)(const void *iterationIdP, afs_status_p st);
197 typedef int (ADMINAPI *lpPtsOwnedGroupListBegin_t)(const void *cellHandle, const char *ownerName, void **iterationIdP, afs_status_p st);
198 typedef int (ADMINAPI *lpPtsOwnedGroupListNext_t)(const void *iterationIdP, char *groupName, afs_status_p st);
199 typedef int (ADMINAPI *lpPtsOwnedGroupListDone_t)(const void *iterationIdP, afs_status_p st);
201 typedef int (ADMINAPI *lpClientTokenGetExisting_t)(const char *cellName, void **tokenHandle, afs_status_p st);
202 typedef int (ADMINAPI *lpClientCellOpen_t)(const char *cellName, const void *credsHandle, void **cellHandleP, afs_status_p st);
203 typedef int (ADMINAPI *lpClientCellClose_t)(const void *cellHandle, afs_status_p st);
204 typedef int (ADMINAPI *lpClientLocalCellGet_t)(char *cellName, afs_status_p st);
205 typedef int (ADMINAPI *lpClientAFSServerGet_t)(const void *cellHandle, const char *serverName, afs_serverEntry_p serverEntryP, afs_status_p st);
206 typedef int (ADMINAPI *lpClientAFSServerGetBegin_t)(const void *cellHandle, void **iterationIdP, afs_status_p st);
207 typedef int (ADMINAPI *lpClientAFSServerGetNext_t)(const void *iterationId, afs_serverEntry_p serverEntryP, afs_status_p st);
208 typedef int (ADMINAPI *lpClientAFSServerGetDone_t)(const void *iterationId, afs_status_p st);
209 typedef int (ADMINAPI *lpClientInit_t)(afs_status_p st);
211 typedef int (ADMINAPI *lpUtilDatabaseServerGetBegin_t)(const char *cellName, void **iterationIdP, afs_status_p st);
212 typedef int (ADMINAPI *lpUtilDatabaseServerGetNext_t)(const void *iterationId, int *serverAddressP, afs_status_p st);
213 typedef int (ADMINAPI *lpUtilDatabaseServerGetDone_t)(const void *iterationId, afs_status_p st);
218 static lpVosBackupVolumeCreate_t lpVosBackupVolumeCreate = NULL;
219 static lpVosBackupVolumeCreateMultiple_t lpVosBackupVolumeCreateMultiple = NULL;
220 static lpVosPartitionGet_t lpVosPartitionGet = NULL;
221 static lpVosPartitionGetBegin_t lpVosPartitionGetBegin = NULL;
222 static lpVosPartitionGetNext_t lpVosPartitionGetNext = NULL;
223 static lpVosPartitionGetDone_t lpVosPartitionGetDone = NULL;
224 static lpVosServerOpen_t lpVosServerOpen = NULL;
225 static lpVosServerClose_t lpVosServerClose = NULL;
226 static lpVosServerSync_t lpVosServerSync = NULL;
227 static lpVosFileServerAddressChange_t lpVosFileServerAddressChange = NULL;
228 static lpVosFileServerAddressRemove_t lpVosFileServerAddressRemove = NULL;
229 static lpVosFileServerGetBegin_t lpVosFileServerGetBegin = NULL;
230 static lpVosFileServerGetNext_t lpVosFileServerGetNext = NULL;
231 static lpVosFileServerGetDone_t lpVosFileServerGetDone = NULL;
232 static lpVosServerTransactionStatusGetBegin_t lpVosServerTransactionStatusGetBegin = NULL;
233 static lpVosServerTransactionStatusGetNext_t lpVosServerTransactionStatusGetNext = NULL;
234 static lpVosServerTransactionStatusGetDone_t lpVosServerTransactionStatusGetDone = NULL;
235 static lpVosVLDBGet_t lpVosVLDBGet = NULL;
236 static lpVosVLDBGetBegin_t lpVosVLDBGetBegin = NULL;
237 static lpVosVLDBGetNext_t lpVosVLDBGetNext = NULL;
238 static lpVosVLDBGetDone_t lpVosVLDBGetDone = NULL;
239 static lpVosVLDBEntryRemove_t lpVosVLDBEntryRemove = NULL;
240 static lpVosVLDBUnlock_t lpVosVLDBUnlock = NULL;
241 static lpVosVLDBEntryLock_t lpVosVLDBEntryLock = NULL;
242 static lpVosVLDBEntryUnlock_t lpVosVLDBEntryUnlock = NULL;
243 static lpVosVLDBReadOnlySiteCreate_t lpVosVLDBReadOnlySiteCreate = NULL;
244 static lpVosVLDBReadOnlySiteDelete_t lpVosVLDBReadOnlySiteDelete = NULL;
245 static lpVosVLDBSync_t lpVosVLDBSync = NULL;
246 static lpVosVolumeCreate_t lpVosVolumeCreate = NULL;
247 static lpVosVolumeDelete_t lpVosVolumeDelete = NULL;
248 static lpVosVolumeRename_t lpVosVolumeRename = NULL;
249 static lpVosVolumeDump_t lpVosVolumeDump = NULL;
250 static lpVosVolumeRestore_t lpVosVolumeRestore = NULL;
251 static lpVosVolumeOnline_t lpVosVolumeOnline = NULL;
252 static lpVosVolumeOffline_t lpVosVolumeOffline = NULL;
253 static lpVosVolumeGet_t lpVosVolumeGet = NULL;
254 static lpVosVolumeGetBegin_t lpVosVolumeGetBegin = NULL;
255 static lpVosVolumeGetNext_t lpVosVolumeGetNext = NULL;
256 static lpVosVolumeGetDone_t lpVosVolumeGetDone = NULL;
257 static lpVosVolumeMove_t lpVosVolumeMove = NULL;
258 static lpVosVolumeRelease_t lpVosVolumeRelease = NULL;
259 static lpVosVolumeZap_t lpVosVolumeZap = NULL;
260 static lpVosPartitionNameToId_t lpVosPartitionNameToId = NULL;
261 static lpVosPartitionIdToName_t lpVosPartitionIdToName = NULL;
262 static lpVosVolumeQuotaChange_t lpVosVolumeQuotaChange = NULL;
264 static lpBosServerOpen_t lpBosServerOpen = NULL;
265 static lpBosServerClose_t lpBosServerClose = NULL;
266 static lpBosProcessCreate_t lpBosProcessCreate = NULL;
267 static lpBosProcessDelete_t lpBosProcessDelete = NULL;
268 static lpBosProcessExecutionStateGet_t lpBosProcessExecutionStateGet = NULL;
269 static lpBosProcessExecutionStateSet_t lpBosProcessExecutionStateSet = NULL;
270 static lpBosProcessExecutionStateSetTemporary_t lpBosProcessExecutionStateSetTemporary = NULL;
271 static lpBosProcessNameGetBegin_t lpBosProcessNameGetBegin = NULL;
272 static lpBosProcessNameGetDone_t lpBosProcessNameGetDone = NULL;
273 static lpBosProcessNameGetNext_t lpBosProcessNameGetNext = NULL;
274 static lpBosProcessInfoGet_t lpBosProcessInfoGet = NULL;
275 static lpBosProcessParameterGetBegin_t lpBosProcessParameterGetBegin = NULL;
276 static lpBosProcessParameterGetDone_t lpBosProcessParameterGetDone = NULL;
277 static lpBosProcessParameterGetNext_t lpBosProcessParameterGetNext = NULL;
278 static lpBosProcessNotifierGet_t lpBosProcessNotifierGet = NULL;
279 static lpBosProcessRestart_t lpBosProcessRestart = NULL;
280 static lpBosProcessAllStop_t lpBosProcessAllStop = NULL;
281 static lpBosProcessAllStart_t lpBosProcessAllStart = NULL;
282 static lpBosProcessAllWaitStop_t lpBosProcessAllWaitStop = NULL;
283 static lpBosProcessAllStopAndRestart_t lpBosProcessAllStopAndRestart = NULL;
284 static lpBosAdminCreate_t lpBosAdminCreate = NULL;
285 static lpBosAdminDelete_t lpBosAdminDelete = NULL;
286 static lpBosAdminGetBegin_t lpBosAdminGetBegin = NULL;
287 static lpBosAdminGetDone_t lpBosAdminGetDone = NULL;
288 static lpBosAdminGetNext_t lpBosAdminGetNext = NULL;
289 static lpBosKeyCreate_t lpBosKeyCreate = NULL;
290 static lpBosKeyDelete_t lpBosKeyDelete = NULL;
291 static lpBosKeyGetBegin_t lpBosKeyGetBegin = NULL;
292 static lpBosKeyGetDone_t lpBosKeyGetDone = NULL;
293 static lpBosKeyGetNext_t lpBosKeyGetNext = NULL;
294 static lpBosCellSet_t lpBosCellSet = NULL;
295 static lpBosCellGet_t lpBosCellGet = NULL;
296 static lpBosHostCreate_t lpBosHostCreate = NULL;
297 static lpBosHostDelete_t lpBosHostDelete = NULL;
298 static lpBosHostGetBegin_t lpBosHostGetBegin = NULL;
299 static lpBosHostGetDone_t lpBosHostGetDone = NULL;
300 static lpBosHostGetNext_t lpBosHostGetNext = NULL;
301 static lpBosExecutableCreate_t lpBosExecutableCreate = NULL;
302 static lpBosExecutableRevert_t lpBosExecutableRevert = NULL;
303 static lpBosExecutableTimestampGet_t lpBosExecutableTimestampGet = NULL;
304 static lpBosExecutablePrune_t lpBosExecutablePrune = NULL;
305 static lpBosExecutableRestartTimeSet_t lpBosExecutableRestartTimeSet = NULL;
306 static lpBosExecutableRestartTimeGet_t lpBosExecutableRestartTimeGet = NULL;
307 static lpBosLogGet_t lpBosLogGet = NULL;
308 static lpBosAuthSet_t lpBosAuthSet = NULL;
309 static lpBosCommandExecute_t lpBosCommandExecute = NULL;
310 static lpBosSalvage_t lpBosSalvage = NULL;
312 static lpKasServerOpen_t lpKasServerOpen = NULL;
313 static lpKasServerClose_t lpKasServerClose = NULL;
314 static lpKasServerStatsGet_t lpKasServerStatsGet = NULL;
315 static lpKasServerDebugGet_t lpKasServerDebugGet = NULL;
316 static lpKasServerRandomKeyGet_t lpKasServerRandomKeyGet = NULL;
317 static lpKasStringToKey_t lpKasStringToKey = NULL;
318 static lpKasPrincipalCreate_t lpKasPrincipalCreate = NULL;
319 static lpKasPrincipalDelete_t lpKasPrincipalDelete = NULL;
320 static lpKasPrincipalGet_t lpKasPrincipalGet = NULL;
321 static lpKasPrincipalGetBegin_t lpKasPrincipalGetBegin = NULL;
322 static lpKasPrincipalGetNext_t lpKasPrincipalGetNext = NULL;
323 static lpKasPrincipalGetDone_t lpKasPrincipalGetDone = NULL;
324 static lpKasPrincipalKeySet_t lpKasPrincipalKeySet = NULL;
325 static lpKasPrincipalLockStatusGet_t lpKasPrincipalLockStatusGet = NULL;
326 static lpKasPrincipalUnlock_t lpKasPrincipalUnlock = NULL;
327 static lpKasPrincipalFieldsSet_t lpKasPrincipalFieldsSet = NULL;
329 static lpPtsGroupMemberAdd_t lpPtsGroupMemberAdd = NULL;
330 static lpPtsGroupOwnerChange_t lpPtsGroupOwnerChange = NULL;
331 static lpPtsGroupCreate_t lpPtsGroupCreate = NULL;
332 static lpPtsGroupGet_t lpPtsGroupGet = NULL;
333 static lpPtsGroupDelete_t lpPtsGroupDelete = NULL;
334 static lpPtsGroupMaxGet_t lpPtsGroupMaxGet = NULL;
335 static lpPtsGroupMaxSet_t lpPtsGroupMaxSet = NULL;
336 static lpPtsGroupMemberListBegin_t lpPtsGroupMemberListBegin = NULL;
337 static lpPtsGroupMemberListNext_t lpPtsGroupMemberListNext = NULL;
338 static lpPtsGroupMemberListDone_t lpPtsGroupMemberListDone = NULL;
339 static lpPtsGroupMemberRemove_t lpPtsGroupMemberRemove = NULL;
340 static lpPtsGroupRename_t lpPtsGroupRename = NULL;
341 static lpPtsGroupModify_t lpPtsGroupModify = NULL;
342 static lpPtsUserCreate_t lpPtsUserCreate = NULL;
343 static lpPtsUserDelete_t lpPtsUserDelete = NULL;
344 static lpPtsUserGet_t lpPtsUserGet = NULL;
345 static lpPtsUserRename_t lpPtsUserRename = NULL;
346 static lpPtsUserModify_t lpPtsUserModify = NULL;
347 static lpPtsUserMaxGet_t lpPtsUserMaxGet = NULL;
348 static lpPtsUserMaxSet_t lpPtsUserMaxSet = NULL;
349 static lpPtsUserMemberListBegin_t lpPtsUserMemberListBegin = NULL;
350 static lpPtsUserMemberListNext_t lpPtsUserMemberListNext = NULL;
351 static lpPtsUserMemberListDone_t lpPtsUserMemberListDone = NULL;
352 static lpPtsOwnedGroupListBegin_t lpPtsOwnedGroupListBegin = NULL;
353 static lpPtsOwnedGroupListNext_t lpPtsOwnedGroupListNext = NULL;
354 static lpPtsOwnedGroupListDone_t lpPtsOwnedGroupListDone = NULL;
356 static lpClientTokenGetExisting_t lpClientTokenGetExisting = NULL;
357 static lpClientCellOpen_t lpClientCellOpen = NULL;
358 static lpClientCellClose_t lpClientCellClose = NULL;
359 static lpClientLocalCellGet_t lpClientLocalCellGet = NULL;
360 static lpClientAFSServerGet_t lpClientAFSServerGet = NULL;
361 static lpClientAFSServerGetBegin_t lpClientAFSServerGetBegin = NULL;
362 static lpClientAFSServerGetNext_t lpClientAFSServerGetNext = NULL;
363 static lpClientAFSServerGetDone_t lpClientAFSServerGetDone = NULL;
364 static lpClientInit_t lpClientInit = NULL;
366 static lpUtilDatabaseServerGetBegin_t lpUtilDatabaseServerGetBegin = NULL;
367 static lpUtilDatabaseServerGetNext_t lpUtilDatabaseServerGetNext = NULL;
368 static lpUtilDatabaseServerGetDone_t lpUtilDatabaseServerGetDone = NULL;
376 * PROTOTYPES _________________________________________________________________
380 BOOL Worker_LoadLibraries (ULONG *pStatus);
381 void Worker_FreeLibraries (void);
383 DWORD Worker_PerformTask (WORKERTASK wtask, LPWORKERPACKET lpwp);
387 * ROUTINES ___________________________________________________________________
391 BOOL Worker_Initialize (ULONG *pStatus)
393 static BOOL fInitialized = FALSE;
397 fInitialized = Worker_LoadLibraries (pStatus);
404 BOOL Worker_DoTask (WORKERTASK wtask, LPWORKERPACKET lpwp, ULONG *pStatus)
406 if (!Worker_Initialize (pStatus))
411 status = Worker_PerformTask (wtask, lpwp);
413 status = ERROR_UNEXP_NET_ERR;
417 return (status == 0) ? TRUE : FALSE;
421 DWORD Worker_PerformTask (WORKERTASK wtask, LPWORKERPACKET lpwp)
423 afs_status_t status = 0;
427 case wtaskVosBackupVolumeCreate:
429 if ((*lpVosBackupVolumeCreate)(lpwp->wpVosBackupVolumeCreate.hCell, NULL, lpwp->wpVosBackupVolumeCreate.idVolume, &status))
434 case wtaskVosBackupVolumeCreateMultiple:
436 LPSTR pszPrefixA = StringToAnsi (lpwp->wpVosBackupVolumeCreateMultiple.pszPrefix);
438 unsigned int *pPartition;
439 if (*(pPartition = (unsigned int *)&lpwp->wpVosBackupVolumeCreateMultiple.idPartition) == NO_PARTITION)
442 if ((*lpVosBackupVolumeCreateMultiple)(lpwp->wpVosBackupVolumeCreateMultiple.hCell, lpwp->wpVosBackupVolumeCreateMultiple.hServer, NULL, pPartition, pszPrefixA, (lpwp->wpVosBackupVolumeCreateMultiple.fExclude) ? VOS_EXCLUDE : VOS_INCLUDE, &status))
445 FreeString (pszPrefixA, lpwp->wpVosBackupVolumeCreateMultiple.pszPrefix);
449 case wtaskVosPartitionGet:
451 if ((*lpVosPartitionGet)(lpwp->wpVosPartitionGet.hCell, lpwp->wpVosPartitionGet.hServer, NULL, lpwp->wpVosPartitionGet.idPartition, &lpwp->wpVosPartitionGet.Data, &status))
456 case wtaskVosPartitionGetBegin:
458 if ((*lpVosPartitionGetBegin)(lpwp->wpVosPartitionGetBegin.hCell, lpwp->wpVosPartitionGetBegin.hServer, NULL, &lpwp->wpVosPartitionGetBegin.hEnum, &status))
461 lpwp->wpVosPartitionGetBegin.hEnum = NULL;
465 case wtaskVosPartitionGetNext:
467 if ((*lpVosPartitionGetNext)(lpwp->wpVosPartitionGetNext.hEnum, &lpwp->wpVosPartitionGetNext.Data, &status))
472 case wtaskVosPartitionGetDone:
474 if ((*lpVosPartitionGetDone)(lpwp->wpVosPartitionGetDone.hEnum, &status))
479 case wtaskVosServerOpen:
481 LPSTR pszServerA = StringToAnsi (lpwp->wpVosServerOpen.pszServer);
483 if ((*lpVosServerOpen)(lpwp->wpVosServerOpen.hCell, pszServerA, &lpwp->wpVosServerOpen.hServer, &status))
486 FreeString (pszServerA, lpwp->wpVosServerOpen.pszServer);
490 case wtaskVosServerClose:
492 if ((*lpVosServerClose)(lpwp->wpVosServerClose.hServer, &status))
497 case wtaskVosServerSync:
499 unsigned int *pPartition;
500 if (*(pPartition = (unsigned int *)&lpwp->wpVosServerSync.idPartition) == NO_PARTITION)
503 if ((*lpVosServerSync)(lpwp->wpVosServerSync.hCell, lpwp->wpVosServerSync.hServer, NULL, pPartition, (lpwp->wpVosServerSync.fForce) ? VOS_FORCE : VOS_NORMAL, &status))
508 case wtaskVosFileServerAddressChange:
512 AfsClass_AddressToInt (&oldAddress, &lpwp->wpVosFileServerAddressChange.addrOld);
513 AfsClass_AddressToInt (&newAddress, &lpwp->wpVosFileServerAddressChange.addrNew);
515 if ((*lpVosFileServerAddressChange)(lpwp->wpVosFileServerAddressChange.hCell, NULL, oldAddress, newAddress, &status))
520 case wtaskVosFileServerAddressRemove:
523 AfsClass_AddressToInt (&oldAddress, &lpwp->wpVosFileServerAddressRemove.addr);
525 if ((*lpVosFileServerAddressRemove)(lpwp->wpVosFileServerAddressRemove.hCell, NULL, oldAddress, &status))
528 if (status == VL_NOENT) // RemoveAddress attempted on pre-AFS3.5?
533 case wtaskVosFileServerGetBegin:
535 if ((*lpVosFileServerGetBegin)(lpwp->wpVosFileServerGetBegin.hCell, NULL, &lpwp->wpVosFileServerGetBegin.hEnum, &status))
540 case wtaskVosFileServerGetNext:
542 if ((*lpVosFileServerGetNext)(lpwp->wpVosFileServerGetNext.hEnum, &lpwp->wpVosFileServerGetNext.Entry, &status))
547 case wtaskVosFileServerGetDone:
549 if ((*lpVosFileServerGetDone)(lpwp->wpVosFileServerGetDone.hEnum, &status))
554 case wtaskVosServerTransactionStatusGetBegin:
556 if ((*lpVosServerTransactionStatusGetBegin)(lpwp->wpVosServerTransactionStatusGetBegin.hCell, lpwp->wpVosServerTransactionStatusGetBegin.hServer, NULL, &lpwp->wpVosServerTransactionStatusGetBegin.hEnum, &status))
561 case wtaskVosServerTransactionStatusGetNext:
563 if ((*lpVosServerTransactionStatusGetNext)(lpwp->wpVosServerTransactionStatusGetNext.hEnum, &lpwp->wpVosServerTransactionStatusGetNext.Data, &status))
568 case wtaskVosServerTransactionStatusGetDone:
570 if ((*lpVosServerTransactionStatusGetDone)(lpwp->wpVosServerTransactionStatusGetDone.hEnum, &status))
575 case wtaskVosVLDBGet:
577 if ((*lpVosVLDBGet)(lpwp->wpVosVLDBGet.hCell, NULL, &lpwp->wpVosVLDBGet.idVolume, NULL, &lpwp->wpVosVLDBGet.Data, &status))
582 case wtaskVosVLDBGetBegin:
584 unsigned int *pPartition;
585 if (*(pPartition = (unsigned int *)&lpwp->wpVosVLDBGetBegin.idPartition) == NO_PARTITION)
588 if ((*lpVosVLDBGetBegin)(lpwp->wpVosVLDBGetBegin.hCell, lpwp->wpVosVLDBGetBegin.hServer, NULL, pPartition, &lpwp->wpVosVLDBGetBegin.hEnum, &status))
593 case wtaskVosVLDBGetNext:
595 if ((*lpVosVLDBGetNext)(lpwp->wpVosVLDBGetNext.hEnum, &lpwp->wpVosVLDBGetNext.Data, &status))
600 case wtaskVosVLDBGetDone:
602 if ((*lpVosVLDBGetDone)(lpwp->wpVosVLDBGetDone.hEnum, &status))
607 case wtaskVosVLDBEntryRemove:
609 unsigned int *pPartition;
610 if (*(pPartition = (unsigned int *)&lpwp->wpVosVLDBEntryRemove.idPartition) == NO_PARTITION)
613 unsigned int *pVolume;
614 if (*(pVolume = (unsigned int *)&lpwp->wpVosVLDBEntryRemove.idVolume) == NO_VOLUME)
617 if ((*lpVosVLDBEntryRemove)(lpwp->wpVosVLDBEntryRemove.hCell, lpwp->wpVosVLDBEntryRemove.hServer, NULL, pPartition, pVolume, &status))
622 case wtaskVosVLDBEntryLock:
624 if ((*lpVosVLDBEntryLock)(lpwp->wpVosVLDBEntryLock.hCell, NULL, lpwp->wpVosVLDBEntryLock.idVolume, &status))
629 case wtaskVosVLDBEntryUnlock:
631 if (lpwp->wpVosVLDBEntryUnlock.idVolume == NO_VOLUME)
633 unsigned int *pPartition;
634 if (*(pPartition = (unsigned int *)&lpwp->wpVosVLDBEntryUnlock.idPartition) == NO_PARTITION)
637 if ((*lpVosVLDBUnlock)(lpwp->wpVosVLDBEntryUnlock.hCell, lpwp->wpVosVLDBEntryUnlock.hServer, NULL, pPartition, &status))
642 if ((*lpVosVLDBEntryUnlock)(lpwp->wpVosVLDBEntryUnlock.hCell, NULL, lpwp->wpVosVLDBEntryUnlock.idVolume, &status))
648 case wtaskVosVLDBReadOnlySiteCreate:
650 if ((*lpVosVLDBReadOnlySiteCreate)(lpwp->wpVosVLDBReadOnlySiteCreate.hCell, lpwp->wpVosVLDBReadOnlySiteCreate.hServer, NULL, lpwp->wpVosVLDBReadOnlySiteCreate.idPartition, lpwp->wpVosVLDBReadOnlySiteCreate.idVolume, &status))
655 case wtaskVosVLDBReadOnlySiteDelete:
657 if ((*lpVosVLDBReadOnlySiteDelete)(lpwp->wpVosVLDBReadOnlySiteDelete.hCell, lpwp->wpVosVLDBReadOnlySiteDelete.hServer, NULL, lpwp->wpVosVLDBReadOnlySiteDelete.idPartition, lpwp->wpVosVLDBReadOnlySiteDelete.idVolume, &status))
662 case wtaskVosVLDBSync:
664 unsigned int *pPartition;
665 if (*(pPartition = (unsigned int *)&lpwp->wpVosVLDBSync.idPartition) == NO_PARTITION)
668 if ((*lpVosVLDBSync)(lpwp->wpVosVLDBSync.hCell, lpwp->wpVosVLDBSync.hServer, NULL, pPartition, ((lpwp->wpVosVLDBSync.fForce) ? VOS_FORCE : VOS_NORMAL), &status))
673 case wtaskVosVolumeCreate:
675 LPSTR pszVolumeA = StringToAnsi (lpwp->wpVosVolumeCreate.pszVolume);
677 if ((*lpVosVolumeCreate)(lpwp->wpVosVolumeCreate.hCell, lpwp->wpVosVolumeCreate.hServer, NULL, lpwp->wpVosVolumeCreate.idPartition, pszVolumeA, (unsigned int)lpwp->wpVosVolumeCreate.ckQuota, (unsigned int *)&lpwp->wpVosVolumeCreate.idVolume, &status))
680 FreeString (pszVolumeA, lpwp->wpVosVolumeCreate.pszVolume);
684 case wtaskVosVolumeDelete:
686 if ((*lpVosVolumeDelete)(lpwp->wpVosVolumeDelete.hCell, lpwp->wpVosVolumeDelete.hServer, NULL, lpwp->wpVosVolumeDelete.idPartition, lpwp->wpVosVolumeDelete.idVolume, &status))
691 case wtaskVosVolumeRename:
693 LPSTR pszVolumeA = StringToAnsi (lpwp->wpVosVolumeRename.pszVolume);
695 if ((*lpVosVolumeRename)(lpwp->wpVosVolumeRename.hCell, NULL, lpwp->wpVosVolumeRename.idVolume, pszVolumeA, &status))
698 FreeString (pszVolumeA, lpwp->wpVosVolumeRename.pszVolume);
702 case wtaskVosVolumeDump:
704 LPSTR pszFilenameA = StringToAnsi (lpwp->wpVosVolumeDump.pszFilename);
705 ULONG timeStart = AfsClass_SystemTimeToUnixTime (&lpwp->wpVosVolumeDump.stStart);
707 if ((*lpVosVolumeDump)(lpwp->wpVosVolumeDump.hCell, lpwp->wpVosVolumeDump.hServer, NULL, (unsigned int *)&lpwp->wpVosVolumeDump.idPartition, lpwp->wpVosVolumeDump.idVolume, timeStart, pszFilenameA, &status))
710 FreeString (pszFilenameA, lpwp->wpVosVolumeDump.pszFilename);
714 case wtaskVosVolumeRestore:
716 LPSTR pszVolumeA = StringToAnsi (lpwp->wpVosVolumeRestore.pszVolume);
717 LPSTR pszFilenameA = StringToAnsi (lpwp->wpVosVolumeRestore.pszFilename);
718 vos_volumeRestoreType_t Type = (lpwp->wpVosVolumeRestore.fIncremental) ? VOS_RESTORE_INCREMENTAL : VOS_RESTORE_FULL;
720 unsigned int *pVolume;
721 if (*(pVolume = (unsigned int *)&lpwp->wpVosVolumeRestore.idVolume) == NO_VOLUME)
724 if ((*lpVosVolumeRestore)(lpwp->wpVosVolumeRestore.hCell, lpwp->wpVosVolumeRestore.hServer, NULL, lpwp->wpVosVolumeRestore.idPartition, pVolume, pszVolumeA, pszFilenameA, Type, &status))
727 FreeString (pszFilenameA, lpwp->wpVosVolumeRestore.pszFilename);
728 FreeString (pszVolumeA, lpwp->wpVosVolumeRestore.pszVolume);
732 case wtaskVosVolumeOnline:
734 if ((*lpVosVolumeOnline)(lpwp->wpVosVolumeOnline.hServer, NULL, lpwp->wpVosVolumeOnline.idPartition, lpwp->wpVosVolumeOnline.idVolume, lpwp->wpVosVolumeOnline.csecSleep, lpwp->wpVosVolumeOnline.Status, &status))
739 case wtaskVosVolumeOffline:
741 if ((*lpVosVolumeOffline)(lpwp->wpVosVolumeOffline.hServer, NULL, lpwp->wpVosVolumeOffline.idPartition, lpwp->wpVosVolumeOffline.idVolume, &status))
746 case wtaskVosVolumeGet:
748 if ((*lpVosVolumeGet)(lpwp->wpVosVolumeGet.hCell, lpwp->wpVosVolumeGet.hServer, NULL, lpwp->wpVosVolumeGet.idPartition, lpwp->wpVosVolumeGet.idVolume, &lpwp->wpVosVolumeGet.Data, &status))
753 case wtaskVosVolumeGetBegin:
755 if ((lpVosVolumeGetBegin)(lpwp->wpVosVolumeGetBegin.hCell, lpwp->wpVosVolumeGetBegin.hServer, NULL, lpwp->wpVosVolumeGetBegin.idPartition, &lpwp->wpVosVolumeGetBegin.hEnum, &status))
760 case wtaskVosVolumeGetNext:
762 if ((*lpVosVolumeGetNext)(lpwp->wpVosVolumeGetNext.hEnum, &lpwp->wpVosVolumeGetNext.Data, &status))
767 case wtaskVosVolumeGetDone:
769 if ((*lpVosVolumeGetDone)(lpwp->wpVosVolumeGetDone.hEnum, &status))
774 case wtaskVosVolumeMove:
776 if ((lpVosVolumeMove)(lpwp->wpVosVolumeMove.hCell, NULL, lpwp->wpVosVolumeMove.idVolume, lpwp->wpVosVolumeMove.hServerFrom, lpwp->wpVosVolumeMove.idPartitionFrom, lpwp->wpVosVolumeMove.hServerTo, lpwp->wpVosVolumeMove.idPartitionTo, &status))
781 case wtaskVosVolumeRelease:
783 if ((*lpVosVolumeRelease)(lpwp->wpVosVolumeRelease.hCell, NULL, lpwp->wpVosVolumeRelease.idVolume, ((lpwp->wpVosVolumeRelease.fForce) ? VOS_FORCE : VOS_NORMAL), &status))
788 case wtaskVosVolumeZap:
790 if ((*lpVosVolumeZap)(lpwp->wpVosVolumeZap.hCell, lpwp->wpVosVolumeZap.hServer, NULL, lpwp->wpVosVolumeZap.idPartition, lpwp->wpVosVolumeZap.idVolume, ((lpwp->wpVosVolumeZap.fForce) ? VOS_FORCE : VOS_NORMAL), &status))
795 case wtaskVosPartitionNameToId:
797 LPSTR pszPartitionA = StringToAnsi (lpwp->wpVosPartitionNameToId.pszPartition);
799 if ((*lpVosPartitionNameToId)(pszPartitionA, (unsigned int *)&lpwp->wpVosPartitionNameToId.idPartition, &status))
802 FreeString (pszPartitionA, lpwp->wpVosPartitionNameToId.pszPartition);
806 case wtaskVosPartitionIdToName:
808 char szPartitionA[ cchNAME ];
809 if ((*lpVosPartitionIdToName)(lpwp->wpVosPartitionIdToName.idPartition, szPartitionA, &status))
811 CopyAnsiToString (lpwp->wpVosPartitionIdToName.pszPartition, szPartitionA);
817 case wtaskVosVolumeQuotaChange:
819 if ((*lpVosVolumeQuotaChange)(lpwp->wpVosVolumeQuotaChange.hCell, lpwp->wpVosVolumeQuotaChange.hServer, NULL, lpwp->wpVosVolumeQuotaChange.idPartition, lpwp->wpVosVolumeQuotaChange.idVolume, (unsigned int)lpwp->wpVosVolumeQuotaChange.ckQuota, &status))
824 case wtaskBosServerOpen:
826 LPSTR pszServerA = StringToAnsi (lpwp->wpBosServerOpen.pszServer);
828 if ((*lpBosServerOpen)(lpwp->wpBosServerOpen.hCell, pszServerA, &lpwp->wpBosServerOpen.hServer, &status))
831 FreeString (pszServerA, lpwp->wpBosServerOpen.pszServer);
835 case wtaskBosServerClose:
837 if ((*lpBosServerClose)(lpwp->wpBosServerClose.hServer, &status))
842 case wtaskBosProcessCreate:
844 LPSTR pszServiceA = StringToAnsi (lpwp->wpBosProcessCreate.pszService);
845 LPSTR pszCommandA = StringToAnsi (lpwp->wpBosProcessCreate.pszCommand);
846 LPSTR pszTimeCronA = StringToAnsi (lpwp->wpBosProcessCreate.pszTimeCron);
847 LPSTR pszNotifierA = StringToAnsi (lpwp->wpBosProcessCreate.pszNotifier);
849 bos_ProcessType_t processType;
850 switch (lpwp->wpBosProcessCreate.type)
853 processType = BOS_PROCESS_FS;
855 case SERVICETYPE_CRON:
856 processType = BOS_PROCESS_CRON;
859 case SERVICETYPE_SIMPLE:
860 processType = BOS_PROCESS_SIMPLE;
864 if ((*lpBosProcessCreate)(lpwp->wpBosProcessCreate.hServer, pszServiceA, processType, pszCommandA, pszTimeCronA, pszNotifierA, &status))
867 FreeString (pszNotifierA, lpwp->wpBosProcessCreate.pszNotifier);
868 FreeString (pszTimeCronA, lpwp->wpBosProcessCreate.pszTimeCron);
869 FreeString (pszCommandA, lpwp->wpBosProcessCreate.pszCommand);
870 FreeString (pszServiceA, lpwp->wpBosProcessCreate.pszService);
874 case wtaskBosProcessDelete:
876 LPSTR pszServiceA = StringToAnsi (lpwp->wpBosProcessDelete.pszService);
878 if ((*lpBosProcessDelete)(lpwp->wpBosProcessDelete.hServer, pszServiceA, &status))
881 FreeString (pszServiceA, lpwp->wpBosProcessDelete.pszService);
885 case wtaskBosProcessExecutionStateGet:
887 LPSTR pszServiceA = StringToAnsi (lpwp->wpBosProcessExecutionStateGet.pszService);
888 char szAuxStatusA[BOS_MAX_NAME_LEN] = "";
890 bos_ProcessExecutionState_t processState = BOS_PROCESS_STOPPED;
891 if ((*lpBosProcessExecutionStateGet)(lpwp->wpBosProcessExecutionStateGet.hServer, pszServiceA, &processState, szAuxStatusA, &status))
895 if (lpwp->wpBosProcessExecutionStateGet.pszAuxStatus != NULL)
897 CopyAnsiToString (lpwp->wpBosProcessExecutionStateGet.pszAuxStatus, szAuxStatusA);
900 switch (processState)
902 case BOS_PROCESS_RUNNING:
903 lpwp->wpBosProcessExecutionStateGet.state = SERVICESTATE_RUNNING;
905 case BOS_PROCESS_STARTING:
906 lpwp->wpBosProcessExecutionStateGet.state = SERVICESTATE_STARTING;
908 case BOS_PROCESS_STOPPING:
909 lpwp->wpBosProcessExecutionStateGet.state = SERVICESTATE_STOPPING;
912 case BOS_PROCESS_STOPPED:
913 lpwp->wpBosProcessExecutionStateGet.state = SERVICESTATE_STOPPED;
918 FreeString (pszServiceA, lpwp->wpBosProcessExecutionStateGet.pszService);
922 case wtaskBosProcessExecutionStateSet:
924 LPSTR pszServiceA = StringToAnsi (lpwp->wpBosProcessExecutionStateSet.pszService);
926 bos_ProcessExecutionState_t processState;
927 switch (lpwp->wpBosProcessExecutionStateSet.state)
929 case SERVICESTATE_STOPPING:
930 case SERVICESTATE_STOPPED:
931 processState = BOS_PROCESS_STOPPED;
934 case SERVICESTATE_STARTING:
935 case SERVICESTATE_RUNNING:
936 processState = BOS_PROCESS_RUNNING;
940 if ((*lpBosProcessExecutionStateSet)(lpwp->wpBosProcessExecutionStateSet.hServer, pszServiceA, processState, &status))
943 FreeString (pszServiceA, lpwp->wpBosProcessExecutionStateSet.pszService);
947 case wtaskBosProcessExecutionStateSetTemporary:
949 LPSTR pszServiceA = StringToAnsi (lpwp->wpBosProcessExecutionStateSetTemporary.pszService);
951 bos_ProcessExecutionState_t processState;
952 switch (lpwp->wpBosProcessExecutionStateSetTemporary.state)
954 case SERVICESTATE_STOPPING:
955 case SERVICESTATE_STOPPED:
956 processState = BOS_PROCESS_STOPPED;
959 case SERVICESTATE_STARTING:
960 case SERVICESTATE_RUNNING:
961 processState = BOS_PROCESS_RUNNING;
965 if ((*lpBosProcessExecutionStateSetTemporary)(lpwp->wpBosProcessExecutionStateSetTemporary.hServer, pszServiceA, processState, &status))
968 FreeString (pszServiceA, lpwp->wpBosProcessExecutionStateSetTemporary.pszService);
972 case wtaskBosProcessNameGetBegin:
974 if (!(*lpBosProcessNameGetBegin)(lpwp->wpBosProcessNameGetBegin.hServer, &lpwp->wpBosProcessNameGetBegin.hEnum, &status))
975 lpwp->wpBosProcessNameGetBegin.hEnum = 0;
981 case wtaskBosProcessNameGetDone:
983 if ((*lpBosProcessNameGetDone)(lpwp->wpBosProcessNameGetDone.hEnum, &status))
988 case wtaskBosProcessNameGetNext:
990 char szServiceA[ 256 ];
991 if (!(*lpBosProcessNameGetNext)(lpwp->wpBosProcessNameGetNext.hEnum, szServiceA, &status))
992 lpwp->wpBosProcessNameGetNext.pszService[0] = TEXT('\0');
996 CopyAnsiToString (lpwp->wpBosProcessNameGetNext.pszService, szServiceA);
1001 case wtaskBosProcessInfoGet:
1003 LPSTR pszServiceA = StringToAnsi (lpwp->wpBosProcessInfoGet.pszService);
1004 memset (&lpwp->wpBosProcessInfoGet.ss, 0x00, sizeof(SERVICESTATUS));
1006 bos_ProcessType_t processType;
1007 bos_ProcessInfo_t processInfo;
1008 if ((*lpBosProcessInfoGet)(lpwp->wpBosProcessInfoGet.hServer, pszServiceA, &processType, &processInfo, &status))
1012 switch (processType)
1014 case BOS_PROCESS_FS:
1015 lpwp->wpBosProcessInfoGet.ss.type = SERVICETYPE_FS;
1017 case BOS_PROCESS_SIMPLE:
1018 lpwp->wpBosProcessInfoGet.ss.type = SERVICETYPE_SIMPLE;
1020 case BOS_PROCESS_CRON:
1021 lpwp->wpBosProcessInfoGet.ss.type = SERVICETYPE_CRON;
1025 AfsClass_UnixTimeToSystemTime (&lpwp->wpBosProcessInfoGet.ss.timeLastStart, processInfo.processStartTime);
1026 AfsClass_UnixTimeToSystemTime (&lpwp->wpBosProcessInfoGet.ss.timeLastStop, processInfo.processExitTime);
1027 AfsClass_UnixTimeToSystemTime (&lpwp->wpBosProcessInfoGet.ss.timeLastFail, processInfo.processExitErrorTime);
1028 lpwp->wpBosProcessInfoGet.ss.nStarts = processInfo.numberProcessStarts;
1029 lpwp->wpBosProcessInfoGet.ss.dwErrLast = processInfo.processErrorCode;
1030 lpwp->wpBosProcessInfoGet.ss.dwSigLast = processInfo.processErrorSignal;
1033 FreeString (pszServiceA, lpwp->wpBosProcessInfoGet.pszService);
1037 case wtaskBosProcessParameterGetBegin:
1039 LPSTR pszServiceA = StringToAnsi (lpwp->wpBosProcessParameterGetBegin.pszService);
1041 if (!(*lpBosProcessParameterGetBegin)(lpwp->wpBosProcessParameterGetBegin.hServer, pszServiceA, &lpwp->wpBosProcessParameterGetBegin.hEnum, &status))
1042 lpwp->wpBosProcessParameterGetBegin.hEnum = 0;
1046 FreeString (pszServiceA, lpwp->wpBosProcessParameterGetBegin.pszService);
1050 case wtaskBosProcessParameterGetDone:
1052 if ((*lpBosProcessParameterGetDone)(lpwp->wpBosProcessParameterGetDone.hEnum, &status))
1057 case wtaskBosProcessParameterGetNext:
1059 char szParamA[ 1024 ];
1061 if (!(*lpBosProcessParameterGetNext)(lpwp->wpBosProcessParameterGetNext.hEnum, szParamA, &status))
1062 lpwp->wpBosProcessParameterGetNext.pszParam[0] = TEXT('\0');
1066 CopyAnsiToString (lpwp->wpBosProcessParameterGetNext.pszParam, szParamA);
1071 case wtaskBosProcessNotifierGet:
1073 LPSTR pszServiceA = StringToAnsi (lpwp->wpBosProcessNotifierGet.pszService);
1074 char szNotifierA[ 1024 ];
1076 if ((*lpBosProcessNotifierGet)(lpwp->wpBosProcessNotifierGet.hServer, pszServiceA, szNotifierA, &status))
1079 CopyAnsiToString (lpwp->wpBosProcessNotifierGet.pszNotifier, szNotifierA);
1082 FreeString (pszServiceA, lpwp->wpBosProcessNotifierGet.pszService);
1086 case wtaskBosProcessRestart:
1088 LPSTR pszServiceA = StringToAnsi (lpwp->wpBosProcessRestart.pszService);
1089 if ((*lpBosProcessRestart)(lpwp->wpBosProcessRestart.hServer, pszServiceA, &status))
1092 FreeString (pszServiceA, lpwp->wpBosProcessRestart.pszService);
1096 case wtaskBosProcessAllStop:
1098 if ((*lpBosProcessAllStop)(lpwp->wpBosProcessAllStop.hServer, &status))
1103 case wtaskBosProcessAllStart:
1105 if ((*lpBosProcessAllStart)(lpwp->wpBosProcessAllStart.hServer, &status))
1110 case wtaskBosProcessAllWaitStop:
1112 if ((*lpBosProcessAllWaitStop)(lpwp->wpBosProcessAllWaitStop.hServer, &status))
1117 case wtaskBosProcessAllStopAndRestart:
1119 bos_RestartBosServer_t bBosToo;
1120 bBosToo = (lpwp->wpBosProcessAllStopAndRestart.fRestartBOS) ? BOS_RESTART_BOS_SERVER : BOS_DONT_RESTART_BOS_SERVER;
1122 if ((*lpBosProcessAllStopAndRestart)(lpwp->wpBosProcessAllStopAndRestart.hServer, bBosToo, &status))
1127 case wtaskBosAdminCreate:
1129 LPSTR pszAdminA = StringToAnsi (lpwp->wpBosAdminCreate.pszAdmin);
1130 if ((*lpBosAdminCreate)(lpwp->wpBosAdminCreate.hServer, pszAdminA, &status))
1132 FreeString (pszAdminA, lpwp->wpBosAdminCreate.pszAdmin);
1136 case wtaskBosAdminDelete:
1138 LPSTR pszAdminA = StringToAnsi (lpwp->wpBosAdminDelete.pszAdmin);
1139 if ((*lpBosAdminDelete)(lpwp->wpBosAdminDelete.hServer, pszAdminA, &status))
1141 FreeString (pszAdminA, lpwp->wpBosAdminDelete.pszAdmin);
1145 case wtaskBosAdminGetBegin:
1147 if (!(*lpBosAdminGetBegin)(lpwp->wpBosAdminGetBegin.hServer, &lpwp->wpBosAdminGetBegin.hEnum, &status))
1148 lpwp->wpBosAdminGetBegin.hEnum = 0;
1154 case wtaskBosAdminGetDone:
1156 if ((*lpBosAdminGetDone)(lpwp->wpBosAdminGetDone.hEnum, &status))
1161 case wtaskBosAdminGetNext:
1163 char szAdminA[ 1024 ];
1164 if (!(*lpBosAdminGetNext)(lpwp->wpBosAdminGetNext.hEnum, szAdminA, &status))
1165 lpwp->wpBosAdminGetNext.pszAdmin[0] = TEXT('\0');
1169 CopyAnsiToString (lpwp->wpBosAdminGetNext.pszAdmin, szAdminA);
1174 case wtaskBosKeyCreate:
1176 kas_encryptionKey_t key;
1177 memcpy (key.key, lpwp->wpBosKeyCreate.key.key, ENCRYPTIONKEY_LEN);
1179 if ((*lpBosKeyCreate)(lpwp->wpBosKeyCreate.hServer, lpwp->wpBosKeyCreate.keyVersion, &key, &status))
1184 case wtaskBosKeyDelete:
1186 if ((*lpBosKeyDelete)(lpwp->wpBosKeyDelete.hServer, lpwp->wpBosKeyDelete.keyVersion, &status))
1191 case wtaskBosKeyGetBegin:
1193 if (!(*lpBosKeyGetBegin)(lpwp->wpBosKeyGetBegin.hServer, &lpwp->wpBosKeyGetBegin.hEnum, &status))
1194 lpwp->wpBosKeyGetBegin.hEnum = 0;
1200 case wtaskBosKeyGetDone:
1202 if ((*lpBosKeyGetDone)(lpwp->wpBosKeyGetDone.hEnum, &status))
1207 case wtaskBosKeyGetNext:
1209 bos_KeyInfo_t keyInfo;
1211 if ((*lpBosKeyGetNext)(lpwp->wpBosKeyGetNext.hEnum, &keyInfo, &status))
1214 lpwp->wpBosKeyGetNext.keyVersion = keyInfo.keyVersionNumber;
1215 memcpy (lpwp->wpBosKeyGetNext.keyData.key, keyInfo.key.key, ENCRYPTIONKEY_LEN);
1216 AfsClass_UnixTimeToSystemTime (&lpwp->wpBosKeyGetNext.keyInfo.timeLastModification, keyInfo.keyStatus.lastModificationDate);
1217 lpwp->wpBosKeyGetNext.keyInfo.timeLastModification.wMilliseconds = keyInfo.keyStatus.lastModificationMicroSeconds;
1218 lpwp->wpBosKeyGetNext.keyInfo.dwChecksum = (DWORD)keyInfo.keyStatus.checkSum;
1223 case wtaskBosCellSet:
1225 LPSTR pszCellA = StringToAnsi (lpwp->wpBosCellSet.pszCell);
1226 if ((*lpBosCellSet)(lpwp->wpBosCellSet.hServer, pszCellA, &status))
1228 FreeString (pszCellA, lpwp->wpBosCellSet.pszCell);
1232 case wtaskBosCellGet:
1234 char szCellA[ 256 ];
1235 if ((*lpBosCellGet)(lpwp->wpBosCellGet.hServer, szCellA, &status))
1238 CopyAnsiToString (lpwp->wpBosCellGet.pszCell, szCellA);
1243 case wtaskBosHostCreate:
1245 LPSTR pszServerA = StringToAnsi (lpwp->wpBosHostCreate.pszServer);
1246 if ((*lpBosHostCreate)(lpwp->wpBosHostCreate.hServer, pszServerA, &status))
1248 FreeString (pszServerA, lpwp->wpBosHostCreate.pszServer);
1252 case wtaskBosHostDelete:
1254 LPSTR pszServerA = StringToAnsi (lpwp->wpBosHostDelete.pszServer);
1255 if ((*lpBosHostDelete)(lpwp->wpBosHostDelete.hServer, pszServerA, &status))
1257 FreeString (pszServerA, lpwp->wpBosHostDelete.pszServer);
1261 case wtaskBosHostGetBegin:
1263 if (!(*lpBosHostGetBegin)(lpwp->wpBosHostGetBegin.hServer, &lpwp->wpBosHostGetBegin.hEnum, &status))
1264 lpwp->wpBosHostGetBegin.hEnum = 0;
1270 case wtaskBosHostGetDone:
1272 if ((*lpBosHostGetDone)(lpwp->wpBosHostGetDone.hEnum, &status))
1277 case wtaskBosHostGetNext:
1279 char szServerA[ 256 ];
1280 if (!(*lpBosHostGetNext)(lpwp->wpBosHostGetNext.hEnum, szServerA, &status))
1281 lpwp->wpBosHostGetNext.pszServer[0] = TEXT('\0');
1285 CopyAnsiToString (lpwp->wpBosHostGetNext.pszServer, szServerA);
1290 case wtaskBosExecutableCreate:
1292 LPSTR pszLocalA = StringToAnsi (lpwp->wpBosExecutableCreate.pszLocal);
1293 LPSTR pszRemoteDirA = StringToAnsi (lpwp->wpBosExecutableCreate.pszRemoteDir);
1295 if ((*lpBosExecutableCreate)(lpwp->wpBosExecutableCreate.hServer, pszLocalA, pszRemoteDirA, &status))
1298 FreeString (pszRemoteDirA, lpwp->wpBosExecutableCreate.pszRemoteDir);
1299 FreeString (pszLocalA, lpwp->wpBosExecutableCreate.pszLocal);
1303 case wtaskBosExecutableRevert:
1305 LPSTR pszFilenameA = StringToAnsi (lpwp->wpBosExecutableRevert.pszFilename);
1307 if ((*lpBosExecutableRevert)(lpwp->wpBosExecutableRevert.hServer, pszFilenameA, &status))
1310 FreeString (pszFilenameA, lpwp->wpBosExecutableRevert.pszFilename);
1314 case wtaskBosExecutableTimestampGet:
1316 LPSTR pszFilenameA = StringToAnsi (lpwp->wpBosExecutableTimestampGet.pszFilename);
1318 unsigned long timeNew = 0;
1319 unsigned long timeOld = 0;
1320 unsigned long timeBak = 0;
1321 if ((*lpBosExecutableTimestampGet)(lpwp->wpBosExecutableTimestampGet.hServer, pszFilenameA, &timeNew, &timeOld, &timeBak, &status))
1324 AfsClass_UnixTimeToSystemTime (&lpwp->wpBosExecutableTimestampGet.timeNew, timeNew);
1325 AfsClass_UnixTimeToSystemTime (&lpwp->wpBosExecutableTimestampGet.timeOld, timeOld);
1326 AfsClass_UnixTimeToSystemTime (&lpwp->wpBosExecutableTimestampGet.timeBak, timeBak);
1329 FreeString (pszFilenameA, lpwp->wpBosExecutableTimestampGet.pszFilename);
1333 case wtaskBosExecutablePrune:
1335 bos_Prune_t oldFiles = (lpwp->wpBosExecutablePrune.fPruneOld) ? BOS_PRUNE : BOS_DONT_PRUNE;
1336 bos_Prune_t bakFiles = (lpwp->wpBosExecutablePrune.fPruneBak) ? BOS_PRUNE : BOS_DONT_PRUNE;
1337 bos_Prune_t coreFiles = (lpwp->wpBosExecutablePrune.fPruneCore) ? BOS_PRUNE : BOS_DONT_PRUNE;
1339 if ((*lpBosExecutablePrune)(lpwp->wpBosExecutablePrune.hServer, oldFiles, bakFiles, coreFiles, &status))
1344 case wtaskBosExecutableRestartTimeSet:
1346 bos_RestartTime_t time;
1347 AfsClass_SystemTimeToRestartTime (&time, lpwp->wpBosExecutableRestartTimeSet.fWeeklyRestart, &lpwp->wpBosExecutableRestartTimeSet.timeWeekly);
1348 if ((*lpBosExecutableRestartTimeSet)(lpwp->wpBosExecutableRestartTimeSet.hServer, BOS_RESTART_WEEKLY, time, &status))
1350 AfsClass_SystemTimeToRestartTime (&time, lpwp->wpBosExecutableRestartTimeSet.fDailyRestart, &lpwp->wpBosExecutableRestartTimeSet.timeDaily);
1351 if ((*lpBosExecutableRestartTimeSet)(lpwp->wpBosExecutableRestartTimeSet.hServer, BOS_RESTART_DAILY, time, &status))
1357 case wtaskBosExecutableRestartTimeGet:
1359 lpwp->wpBosExecutableRestartTimeGet.fDailyRestart = FALSE;
1360 lpwp->wpBosExecutableRestartTimeGet.fWeeklyRestart = FALSE;
1362 bos_RestartTime_t time;
1363 if ((*lpBosExecutableRestartTimeGet)(lpwp->wpBosExecutableRestartTimeGet.hServer, BOS_RESTART_WEEKLY, &time, &status))
1365 AfsClass_RestartTimeToSystemTime (&lpwp->wpBosExecutableRestartTimeGet.fWeeklyRestart, &lpwp->wpBosExecutableRestartTimeGet.timeWeekly, &time);
1367 if ((*lpBosExecutableRestartTimeGet)(lpwp->wpBosExecutableRestartTimeGet.hServer, BOS_RESTART_DAILY, &time, &status))
1369 AfsClass_RestartTimeToSystemTime (&lpwp->wpBosExecutableRestartTimeGet.fDailyRestart, &lpwp->wpBosExecutableRestartTimeGet.timeDaily, &time);
1376 case wtaskBosLogGet:
1378 LPSTR pszLogNameA = StringToAnsi (lpwp->wpBosLogGet.pszLogName);
1380 LPSTR pszLogDataA = NULL;
1381 unsigned long cchAllocated = 0;
1382 unsigned long cchRequired = 1024;
1385 if (cchAllocated < cchRequired)
1389 FreeString (pszLogDataA);
1392 if ((pszLogDataA = AllocateAnsi (cchRequired)) == 0)
1394 cchAllocated = cchRequired;
1397 cchRequired = cchAllocated;
1398 if ((*lpBosLogGet)(lpwp->wpBosLogGet.hServer, pszLogNameA, &cchRequired, pszLogDataA, &status))
1400 lpwp->wpBosLogGet.pszLogData = AllocateString (cchRequired+1);
1401 CopyAnsiToString (lpwp->wpBosLogGet.pszLogData, pszLogDataA, cchRequired);
1402 lpwp->wpBosLogGet.pszLogData[ cchRequired ] = TEXT('\0');
1406 } while (cchRequired > cchAllocated);
1409 FreeString (pszLogDataA);
1410 FreeString (pszLogNameA, lpwp->wpBosLogGet.pszLogName);
1414 case wtaskBosAuthSet:
1416 bos_Auth_t auth = (lpwp->wpBosAuthSet.fEnableAuth) ? BOS_AUTH_REQUIRED : BOS_NO_AUTH;
1417 if ((*lpBosAuthSet)(lpwp->wpBosAuthSet.hServer, auth, &status))
1422 case wtaskBosCommandExecute:
1424 LPSTR pszCommandA = StringToAnsi (lpwp->wpBosCommandExecute.pszCommand);
1425 if ((*lpBosCommandExecute)(lpwp->wpBosCommandExecute.hServer, pszCommandA, &status))
1427 FreeString (pszCommandA, lpwp->wpBosCommandExecute.pszCommand);
1431 case wtaskBosSalvage:
1433 LPSTR pszAggregateA = StringToAnsi (lpwp->wpBosSalvage.pszAggregate);
1434 LPSTR pszFilesetA = StringToAnsi (lpwp->wpBosSalvage.pszFileset);
1435 LPSTR pszTempDirA = StringToAnsi (lpwp->wpBosSalvage.pszTempDir);
1436 LPSTR pszLogFileA = StringToAnsi (lpwp->wpBosSalvage.pszLogFile);
1438 vos_force_t force = (lpwp->wpBosSalvage.fForce) ? VOS_FORCE : VOS_NORMAL;
1439 bos_SalvageDamagedVolumes_t salvageDamagedVolumes = (lpwp->wpBosSalvage.fReadonly) ? BOS_DONT_SALVAGE_DAMAGED_VOLUMES : BOS_SALVAGE_DAMAGED_VOLUMES;
1440 bos_WriteInodes_t writeInodes = (lpwp->wpBosSalvage.fLogInodes) ? BOS_SALVAGE_WRITE_INODES : BOS_SALVAGE_DONT_WRITE_INODES;
1441 bos_WriteRootInodes_t writeRootInodes = (lpwp->wpBosSalvage.fLogRootInodes) ? BOS_SALVAGE_WRITE_ROOT_INODES : BOS_SALVAGE_DONT_WRITE_ROOT_INODES;
1442 bos_ForceDirectory_t forceDirectory = (lpwp->wpBosSalvage.fRebuildDirs) ? BOS_SALVAGE_FORCE_DIRECTORIES : BOS_SALVAGE_DONT_FORCE_DIRECTORIES;
1443 bos_ForceBlockRead_t forceBlockRead = (lpwp->wpBosSalvage.fReadBlocks) ? BOS_SALVAGE_FORCE_BLOCK_READS : BOS_SALVAGE_DONT_FORCE_BLOCK_READS;
1445 if ((*lpBosSalvage)(lpwp->wpBosSalvage.hCell, lpwp->wpBosSalvage.hServer, pszAggregateA, pszFilesetA, max(lpwp->wpBosSalvage.nProcesses,1), pszTempDirA, pszLogFileA, force, salvageDamagedVolumes, writeInodes, writeRootInodes, forceDirectory, forceBlockRead, &status))
1448 FreeString (pszLogFileA, lpwp->wpBosSalvage.pszLogFile);
1449 FreeString (pszTempDirA, lpwp->wpBosSalvage.pszTempDir);
1450 FreeString (pszFilesetA, lpwp->wpBosSalvage.pszFileset);
1451 FreeString (pszAggregateA, lpwp->wpBosSalvage.pszAggregate);
1455 case wtaskKasServerOpen:
1457 if ((*lpKasServerOpen)(lpwp->wpKasServerOpen.hCell, (const char **)lpwp->wpKasServerOpen.apszServers, &lpwp->wpKasServerOpen.hServer, &status))
1462 case wtaskKasServerClose:
1464 if ((*lpKasServerClose)(lpwp->wpKasServerClose.hServer, &status))
1469 case wtaskKasServerRandomKeyGet:
1471 kas_encryptionKey_t key;
1472 if ((*lpKasServerRandomKeyGet)(lpwp->wpKasServerRandomKeyGet.hCell, lpwp->wpKasServerRandomKeyGet.hServer, &key, &status))
1475 memcpy (&lpwp->wpKasServerRandomKeyGet.key.key, &key.key, ENCRYPTIONKEY_LEN);
1480 case wtaskKasStringToKey:
1482 LPSTR pszCellA = StringToAnsi (lpwp->wpKasStringToKey.pszCell);
1483 LPSTR pszStringA = StringToAnsi (lpwp->wpKasStringToKey.pszString);
1485 kas_encryptionKey_t key;
1486 if ((*lpKasStringToKey)(pszCellA, pszStringA, &key, &status))
1489 memcpy (&lpwp->wpKasStringToKey.key.key, &key.key, ENCRYPTIONKEY_LEN);
1492 FreeString (pszStringA, lpwp->wpKasStringToKey.pszString);
1493 FreeString (pszCellA, lpwp->wpKasStringToKey.pszCell);
1497 case wtaskKasPrincipalCreate:
1499 kas_identity_t Identity;
1500 CopyStringToAnsi (Identity.principal, lpwp->wpKasPrincipalCreate.pszPrincipal);
1501 CopyStringToAnsi (Identity.instance, lpwp->wpKasPrincipalCreate.pszInstance);
1503 LPSTR pszPasswordA = StringToAnsi (lpwp->wpKasPrincipalCreate.pszPassword);
1505 if ((*lpKasPrincipalCreate)(lpwp->wpKasPrincipalCreate.hCell, lpwp->wpKasPrincipalCreate.hServer, &Identity, pszPasswordA, &status))
1508 FreeString (pszPasswordA, lpwp->wpKasPrincipalCreate.pszPassword);
1512 case wtaskKasPrincipalDelete:
1514 kas_identity_t Identity;
1515 CopyStringToAnsi (Identity.principal, lpwp->wpKasPrincipalDelete.pszPrincipal);
1516 CopyStringToAnsi (Identity.instance, lpwp->wpKasPrincipalDelete.pszInstance);
1518 if ((*lpKasPrincipalDelete)(lpwp->wpKasPrincipalDelete.hCell, lpwp->wpKasPrincipalDelete.hServer, &Identity, &status))
1523 case wtaskKasPrincipalGet:
1525 kas_identity_t Identity;
1526 CopyStringToAnsi (Identity.principal, lpwp->wpKasPrincipalGet.pszPrincipal);
1527 CopyStringToAnsi (Identity.instance, lpwp->wpKasPrincipalGet.pszInstance);
1529 if ((*lpKasPrincipalGet)(lpwp->wpKasPrincipalGet.hCell, lpwp->wpKasPrincipalGet.hServer, &Identity, &lpwp->wpKasPrincipalGet.Data, &status))
1534 case wtaskKasPrincipalGetBegin:
1536 if ((*lpKasPrincipalGetBegin)(lpwp->wpKasPrincipalGetBegin.hCell, lpwp->wpKasPrincipalGetBegin.hServer, &lpwp->wpKasPrincipalGetBegin.hEnum, &status))
1541 case wtaskKasPrincipalGetNext:
1543 kas_identity_t Identity;
1544 if ((*lpKasPrincipalGetNext)(lpwp->wpKasPrincipalGetNext.hEnum, &Identity, &status))
1546 CopyAnsiToString (lpwp->wpKasPrincipalGetNext.pszPrincipal, Identity.principal);
1547 CopyAnsiToString (lpwp->wpKasPrincipalGetNext.pszInstance, Identity.instance);
1553 case wtaskKasPrincipalGetDone:
1555 if ((*lpKasPrincipalGetDone)(lpwp->wpKasPrincipalGetDone.hEnum, &status))
1560 case wtaskKasPrincipalKeySet:
1562 kas_identity_t Identity;
1563 CopyStringToAnsi (Identity.principal, lpwp->wpKasPrincipalKeySet.pszPrincipal);
1564 CopyStringToAnsi (Identity.instance, lpwp->wpKasPrincipalKeySet.pszInstance);
1566 kas_encryptionKey_t Key;
1567 memcpy (&Key.key, &lpwp->wpKasPrincipalKeySet.key, ENCRYPTIONKEY_LEN);
1569 if ((*lpKasPrincipalKeySet)(lpwp->wpKasPrincipalKeySet.hCell, lpwp->wpKasPrincipalKeySet.hServer, &Identity, lpwp->wpKasPrincipalKeySet.keyVersion, &Key, &status))
1574 case wtaskKasPrincipalLockStatusGet:
1576 kas_identity_t Identity;
1577 CopyStringToAnsi (Identity.principal, lpwp->wpKasPrincipalLockStatusGet.pszPrincipal);
1578 CopyStringToAnsi (Identity.instance, lpwp->wpKasPrincipalLockStatusGet.pszInstance);
1581 if ((*lpKasPrincipalLockStatusGet)(lpwp->wpKasPrincipalLockStatusGet.hCell, lpwp->wpKasPrincipalLockStatusGet.hServer, &Identity, &date, &status))
1583 AfsClass_UnixTimeToSystemTime (&lpwp->wpKasPrincipalLockStatusGet.timeUnlocked, date);
1589 case wtaskKasPrincipalUnlock:
1591 kas_identity_t Identity;
1592 CopyStringToAnsi (Identity.principal, lpwp->wpKasPrincipalUnlock.pszPrincipal);
1593 CopyStringToAnsi (Identity.instance, lpwp->wpKasPrincipalUnlock.pszInstance);
1595 if ((*lpKasPrincipalUnlock)(lpwp->wpKasPrincipalUnlock.hCell, lpwp->wpKasPrincipalUnlock.hServer, &Identity, &status))
1600 case wtaskKasPrincipalFieldsSet:
1602 kas_identity_t Identity;
1603 CopyStringToAnsi (Identity.principal, lpwp->wpKasPrincipalFieldsSet.pszPrincipal);
1604 CopyStringToAnsi (Identity.instance, lpwp->wpKasPrincipalFieldsSet.pszInstance);
1606 ULONG timeExpires = AfsClass_SystemTimeToUnixTime (&lpwp->wpKasPrincipalFieldsSet.timeExpires);
1607 if (!timeExpires) // account never expires?
1608 timeExpires = (ULONG)-1;
1610 kas_admin_t isAdmin = (lpwp->wpKasPrincipalFieldsSet.fIsAdmin) ? KAS_ADMIN : NO_KAS_ADMIN;
1611 kas_tgs_t grantTickets = (lpwp->wpKasPrincipalFieldsSet.fGrantTickets) ? TGS : NO_TGS;
1612 kas_enc_t canEncrypt = (lpwp->wpKasPrincipalFieldsSet.fCanEncrypt) ? ENCRYPT : NO_ENCRYPT;
1613 kas_cpw_t canChangePassword = (lpwp->wpKasPrincipalFieldsSet.fCanChangePassword) ? CHANGE_PASSWORD : NO_CHANGE_PASSWORD;
1614 kas_rpw_t passwordReuse = (lpwp->wpKasPrincipalFieldsSet.fCanReusePasswords) ? REUSE_PASSWORD : NO_REUSE_PASSWORD;
1616 if ((*lpKasPrincipalFieldsSet)(lpwp->wpKasPrincipalFieldsSet.hCell, lpwp->wpKasPrincipalFieldsSet.hServer, &Identity,
1621 (unsigned int *)&timeExpires,
1622 (unsigned int *)&lpwp->wpKasPrincipalFieldsSet.csecTicketLifetime,
1623 (unsigned int *)&lpwp->wpKasPrincipalFieldsSet.cdayPwExpires,
1625 (unsigned int *)&lpwp->wpKasPrincipalFieldsSet.nFailureAttempts,
1626 (unsigned int *)&lpwp->wpKasPrincipalFieldsSet.csecFailedLoginLockTime,
1634 case wtaskPtsGroupMemberAdd:
1636 LPSTR pszGroupA = StringToAnsi (lpwp->wpPtsGroupMemberAdd.pszGroup);
1637 LPSTR pszUserA = StringToAnsi (lpwp->wpPtsGroupMemberAdd.pszUser);
1639 if ((*lpPtsGroupMemberAdd)(lpwp->wpPtsGroupMemberAdd.hCell, pszUserA, pszGroupA, &status))
1642 FreeString (pszGroupA, lpwp->wpPtsGroupMemberAdd.pszGroup);
1643 FreeString (pszUserA, lpwp->wpPtsGroupMemberAdd.pszUser);
1647 case wtaskPtsGroupOwnerChange:
1649 LPSTR pszGroupA = StringToAnsi (lpwp->wpPtsGroupOwnerChange.pszGroup);
1650 LPSTR pszOwnerA = StringToAnsi (lpwp->wpPtsGroupOwnerChange.pszOwner);
1652 if ((*lpPtsGroupOwnerChange)(lpwp->wpPtsGroupOwnerChange.hCell, pszGroupA, pszOwnerA, &status))
1655 FreeString (pszOwnerA, lpwp->wpPtsGroupOwnerChange.pszOwner);
1656 FreeString (pszGroupA, lpwp->wpPtsGroupOwnerChange.pszGroup);
1660 case wtaskPtsGroupCreate:
1662 LPSTR pszGroupA = StringToAnsi (lpwp->wpPtsGroupCreate.pszGroup);
1663 LPSTR pszOwnerA = StringToAnsi (lpwp->wpPtsGroupCreate.pszOwner);
1665 if ((*lpPtsGroupCreate)(lpwp->wpPtsGroupCreate.hCell, pszGroupA, pszOwnerA, &lpwp->wpPtsGroupCreate.idGroup, &status))
1668 FreeString (pszOwnerA, lpwp->wpPtsGroupCreate.pszOwner);
1669 FreeString (pszGroupA, lpwp->wpPtsGroupCreate.pszGroup);
1673 case wtaskPtsGroupGet:
1675 LPSTR pszGroupA = StringToAnsi (lpwp->wpPtsGroupGet.pszGroup);
1677 if ((*lpPtsGroupGet)(lpwp->wpPtsGroupGet.hCell, pszGroupA, &lpwp->wpPtsGroupGet.Entry, &status))
1680 FreeString (pszGroupA, lpwp->wpPtsGroupGet.pszGroup);
1684 case wtaskPtsGroupDelete:
1686 LPSTR pszGroupA = StringToAnsi (lpwp->wpPtsGroupDelete.pszGroup);
1688 if ((*lpPtsGroupDelete)(lpwp->wpPtsGroupDelete.hCell, pszGroupA, &status))
1691 FreeString (pszGroupA, lpwp->wpPtsGroupDelete.pszGroup);
1695 case wtaskPtsGroupMaxGet:
1697 if ((*lpPtsGroupMaxGet)(lpwp->wpPtsGroupMaxGet.hCell, &lpwp->wpPtsGroupMaxGet.idGroupMax, &status))
1702 case wtaskPtsGroupMaxSet:
1704 if ((*lpPtsGroupMaxSet)(lpwp->wpPtsGroupMaxSet.hCell, lpwp->wpPtsGroupMaxSet.idGroupMax, &status))
1709 case wtaskPtsGroupMemberListBegin:
1711 LPSTR pszGroupA = StringToAnsi (lpwp->wpPtsGroupMemberListBegin.pszGroup);
1713 if ((*lpPtsGroupMemberListBegin)(lpwp->wpPtsGroupMemberListBegin.hCell, pszGroupA, &lpwp->wpPtsGroupMemberListBegin.hEnum, &status))
1716 FreeString (pszGroupA, lpwp->wpPtsGroupMemberListBegin.pszGroup);
1720 case wtaskPtsGroupMemberListNext:
1722 char szMemberA[ cchNAME ];
1723 if ((*lpPtsGroupMemberListNext)(lpwp->wpPtsGroupMemberListNext.hEnum, szMemberA, &status))
1725 CopyAnsiToString (lpwp->wpPtsGroupMemberListNext.pszMember, szMemberA);
1731 case wtaskPtsGroupMemberListDone:
1733 if ((*lpPtsGroupMemberListDone)(lpwp->wpPtsGroupMemberListDone.hEnum, &status))
1738 case wtaskPtsGroupMemberRemove:
1740 LPSTR pszGroupA = StringToAnsi (lpwp->wpPtsGroupMemberRemove.pszGroup);
1741 LPSTR pszUserA = StringToAnsi (lpwp->wpPtsGroupMemberRemove.pszUser);
1743 if ((*lpPtsGroupMemberRemove)(lpwp->wpPtsGroupMemberRemove.hCell, pszUserA, pszGroupA, &status))
1746 FreeString (pszUserA, lpwp->wpPtsGroupMemberRemove.pszUser);
1747 FreeString (pszGroupA, lpwp->wpPtsGroupMemberRemove.pszGroup);
1751 case wtaskPtsGroupRename:
1753 LPSTR pszGroupA = StringToAnsi (lpwp->wpPtsGroupRename.pszGroup);
1754 LPSTR pszNewNameA = StringToAnsi (lpwp->wpPtsGroupRename.pszNewName);
1756 if ((*lpPtsGroupRename)(lpwp->wpPtsGroupRename.hCell, pszGroupA, pszNewNameA, &status))
1759 FreeString (pszNewNameA, lpwp->wpPtsGroupRename.pszNewName);
1760 FreeString (pszGroupA, lpwp->wpPtsGroupRename.pszGroup);
1764 case wtaskPtsGroupModify:
1766 LPSTR pszGroupA = StringToAnsi (lpwp->wpPtsGroupModify.pszGroup);
1768 if ((*lpPtsGroupModify)(lpwp->wpPtsGroupModify.hCell, pszGroupA, &lpwp->wpPtsGroupModify.Delta, &status))
1771 FreeString (pszGroupA, lpwp->wpPtsGroupModify.pszGroup);
1775 case wtaskPtsUserCreate:
1777 LPSTR pszUserA = StringToAnsi (lpwp->wpPtsUserCreate.pszUser);
1779 if ((*lpPtsUserCreate)(lpwp->wpPtsUserCreate.hCell, pszUserA, &lpwp->wpPtsUserCreate.idUser, &status))
1782 FreeString (pszUserA, lpwp->wpPtsUserCreate.pszUser);
1786 case wtaskPtsUserDelete:
1788 LPSTR pszUserA = StringToAnsi (lpwp->wpPtsUserDelete.pszUser);
1790 if ((*lpPtsUserDelete)(lpwp->wpPtsUserDelete.hCell, pszUserA, &status))
1793 FreeString (pszUserA, lpwp->wpPtsUserDelete.pszUser);
1797 case wtaskPtsUserGet:
1799 LPSTR pszUserA = StringToAnsi (lpwp->wpPtsUserGet.pszUser);
1801 if ((*lpPtsUserGet)(lpwp->wpPtsUserGet.hCell, pszUserA, &lpwp->wpPtsUserGet.Entry, &status))
1804 FreeString (pszUserA, lpwp->wpPtsUserGet.pszUser);
1808 case wtaskPtsUserRename:
1810 LPSTR pszUserA = StringToAnsi (lpwp->wpPtsUserRename.pszUser);
1811 LPSTR pszNewNameA = StringToAnsi (lpwp->wpPtsUserRename.pszNewName);
1813 if ((*lpPtsUserRename)(lpwp->wpPtsUserRename.hCell, pszUserA, pszNewNameA, &status))
1816 FreeString (pszNewNameA, lpwp->wpPtsUserRename.pszNewName);
1817 FreeString (pszUserA, lpwp->wpPtsUserRename.pszUser);
1821 case wtaskPtsUserModify:
1823 LPSTR pszUserA = StringToAnsi (lpwp->wpPtsUserModify.pszUser);
1825 if ((*lpPtsUserModify)(lpwp->wpPtsUserModify.hCell, pszUserA, &lpwp->wpPtsUserModify.Delta, &status))
1828 FreeString (pszUserA, lpwp->wpPtsUserModify.pszUser);
1832 case wtaskPtsUserMaxGet:
1834 if ((*lpPtsUserMaxGet)(lpwp->wpPtsUserMaxGet.hCell, &lpwp->wpPtsUserMaxGet.idUserMax, &status))
1839 case wtaskPtsUserMaxSet:
1841 if ((*lpPtsUserMaxSet)(lpwp->wpPtsUserMaxSet.hCell, lpwp->wpPtsUserMaxSet.idUserMax, &status))
1846 case wtaskPtsUserMemberListBegin:
1848 LPSTR pszUserA = StringToAnsi (lpwp->wpPtsUserMemberListBegin.pszUser);
1850 if ((*lpPtsUserMemberListBegin)(lpwp->wpPtsUserMemberListBegin.hCell, pszUserA, &lpwp->wpPtsUserMemberListBegin.hEnum, &status))
1853 FreeString (pszUserA, lpwp->wpPtsUserMemberListBegin.pszUser);
1857 case wtaskPtsUserMemberListNext:
1859 char szGroupA[ cchNAME ];
1860 if ((*lpPtsUserMemberListNext)(lpwp->wpPtsUserMemberListNext.hEnum, szGroupA, &status))
1862 CopyAnsiToString (lpwp->wpPtsUserMemberListNext.pszGroup, szGroupA);
1868 case wtaskPtsUserMemberListDone:
1870 if ((*lpPtsUserMemberListDone)(lpwp->wpPtsUserMemberListDone.hEnum, &status))
1875 case wtaskPtsOwnedGroupListBegin:
1877 LPSTR pszOwnerA = StringToAnsi (lpwp->wpPtsOwnedGroupListBegin.pszOwner);
1879 if ((*lpPtsOwnedGroupListBegin)(lpwp->wpPtsOwnedGroupListBegin.hCell, pszOwnerA, &lpwp->wpPtsOwnedGroupListBegin.hEnum, &status))
1882 FreeString (pszOwnerA, lpwp->wpPtsOwnedGroupListBegin.pszOwner);
1886 case wtaskPtsOwnedGroupListNext:
1888 LPSTR pszGroupA = StringToAnsi (lpwp->wpPtsOwnedGroupListNext.pszGroup);
1890 if ((*lpPtsOwnedGroupListNext)(lpwp->wpPtsOwnedGroupListNext.hEnum, pszGroupA, &status))
1893 FreeString (pszGroupA, lpwp->wpPtsOwnedGroupListNext.pszGroup);
1897 case wtaskPtsOwnedGroupListDone:
1899 if ((*lpPtsOwnedGroupListDone)(lpwp->wpPtsOwnedGroupListDone.hEnum, &status))
1904 case wtaskClientTokenGetExisting:
1906 LPTSTR pszCellA = StringToAnsi (lpwp->wpClientTokenGetExisting.pszCell);
1908 if ((*lpClientTokenGetExisting)(pszCellA, &lpwp->wpClientTokenGetExisting.hCreds, &status))
1911 FreeString (pszCellA, lpwp->wpClientTokenGetExisting.pszCell);
1915 case wtaskClientCellOpen:
1917 LPTSTR pszCellA = StringToAnsi (lpwp->wpClientCellOpen.pszCell);
1919 if ((*lpClientCellOpen)(pszCellA, lpwp->wpClientCellOpen.hCreds, &lpwp->wpClientCellOpen.hCell, &status))
1922 FreeString (pszCellA, lpwp->wpClientCellOpen.pszCell);
1926 case wtaskClientCellClose:
1928 if ((*lpClientCellClose)(lpwp->wpClientCellClose.hCell, &status))
1933 case wtaskClientLocalCellGet:
1935 char szCellA[ cchNAME ];
1936 if ((*lpClientLocalCellGet)(szCellA, &status))
1939 CopyAnsiToString (lpwp->wpClientLocalCellGet.pszCell, szCellA);
1944 case wtaskClientAFSServerGet:
1946 LPTSTR pszServerA = StringToAnsi (lpwp->wpClientAFSServerGet.pszServer);
1948 if ((*lpClientAFSServerGet)(lpwp->wpClientAFSServerGet.hCell, pszServerA, &lpwp->wpClientAFSServerGet.Entry, &status))
1951 FreeString (pszServerA, lpwp->wpClientAFSServerGet.pszServer);
1955 case wtaskClientAFSServerGetBegin:
1957 if ((*lpClientAFSServerGetBegin)(lpwp->wpClientAFSServerGetBegin.hCell, &lpwp->wpClientAFSServerGetBegin.hEnum, &status))
1962 case wtaskClientAFSServerGetNext:
1964 if ((*lpClientAFSServerGetNext)(lpwp->wpClientAFSServerGetNext.hEnum, &lpwp->wpClientAFSServerGetNext.Entry, &status))
1969 case wtaskClientAFSServerGetDone:
1971 if ((*lpClientAFSServerGetDone)(lpwp->wpClientAFSServerGetDone.hEnum, &status))
1976 case wtaskUtilDatabaseServerGetBegin:
1978 LPSTR pszCellA = StringToAnsi (lpwp->wpUtilDatabaseServerGetBegin.pszCell);
1980 if ((*lpUtilDatabaseServerGetBegin)(pszCellA, &lpwp->wpUtilDatabaseServerGetBegin.hEnum, &status))
1983 FreeString (pszCellA, lpwp->wpUtilDatabaseServerGetBegin.pszCell);
1987 case wtaskUtilDatabaseServerGetNext:
1990 if ((*lpUtilDatabaseServerGetNext)(lpwp->wpUtilDatabaseServerGetNext.hEnum, &Address, &status))
1992 AfsClass_IntToAddress (&lpwp->wpUtilDatabaseServerGetNext.Address, Address);
1998 case wtaskUtilDatabaseServerGetDone:
2000 if ((*lpUtilDatabaseServerGetDone)(lpwp->wpUtilDatabaseServerGetDone.hEnum, &status))
2008 return (DWORD)status;
2012 BOOL Worker_LoadLibraries (ULONG *pStatus)
2014 if ((hiVOS = LoadLibrary (cszAFSVOSDLL)) == NULL)
2017 *pStatus = GetLastError();
2020 if ((hiBOS = LoadLibrary (cszAFSBOSDLL)) == NULL)
2023 *pStatus = GetLastError();
2026 if ((hiKAS = LoadLibrary (cszAFSKASDLL)) == NULL)
2029 *pStatus = GetLastError();
2032 if ((hiPTS = LoadLibrary (cszAFSPTSDLL)) == NULL)
2035 *pStatus = GetLastError();
2038 if ((hiUtil = LoadLibrary (cszAFSUTILDLL)) == NULL)
2041 *pStatus = GetLastError();
2044 if ((hiClient = LoadLibrary (cszAFSCLIENTDLL)) == NULL)
2047 *pStatus = GetLastError();
2051 lpVosBackupVolumeCreate = (lpVosBackupVolumeCreate_t)GetProcAddress (hiVOS, "vos_BackupVolumeCreate");
2052 lpVosBackupVolumeCreateMultiple = (lpVosBackupVolumeCreateMultiple_t)GetProcAddress (hiVOS, "vos_BackupVolumeCreateMultiple");
2053 lpVosPartitionGet = (lpVosPartitionGet_t)GetProcAddress (hiVOS, "vos_PartitionGet");
2054 lpVosPartitionGetBegin = (lpVosPartitionGetBegin_t)GetProcAddress (hiVOS, "vos_PartitionGetBegin");
2055 lpVosPartitionGetNext = (lpVosPartitionGetNext_t)GetProcAddress (hiVOS, "vos_PartitionGetNext");
2056 lpVosPartitionGetDone = (lpVosPartitionGetDone_t)GetProcAddress (hiVOS, "vos_PartitionGetDone");
2057 lpVosServerOpen = (lpVosServerOpen_t)GetProcAddress (hiVOS, "vos_ServerOpen");
2058 lpVosServerClose = (lpVosServerClose_t)GetProcAddress (hiVOS, "vos_ServerClose");
2059 lpVosServerSync = (lpVosServerSync_t)GetProcAddress (hiVOS, "vos_ServerSync");
2060 lpVosFileServerAddressChange = (lpVosFileServerAddressChange_t)GetProcAddress (hiVOS, "vos_FileServerAddressChange");
2061 lpVosFileServerAddressRemove = (lpVosFileServerAddressRemove_t)GetProcAddress (hiVOS, "vos_FileServerAddressRemove");
2062 lpVosFileServerGetBegin = (lpVosFileServerGetBegin_t)GetProcAddress (hiVOS, "vos_FileServerGetBegin");
2063 lpVosFileServerGetNext = (lpVosFileServerGetNext_t)GetProcAddress (hiVOS, "vos_FileServerGetNext");
2064 lpVosFileServerGetDone = (lpVosFileServerGetDone_t)GetProcAddress (hiVOS, "vos_FileServerGetDone");
2065 lpVosServerTransactionStatusGetBegin = (lpVosServerTransactionStatusGetBegin_t)GetProcAddress (hiVOS, "vos_ServerTransactionStatusGetBegin");
2066 lpVosServerTransactionStatusGetNext = (lpVosServerTransactionStatusGetNext_t)GetProcAddress (hiVOS, "vos_ServerTransactionStatusGetNext");
2067 lpVosServerTransactionStatusGetDone = (lpVosServerTransactionStatusGetDone_t)GetProcAddress (hiVOS, "vos_ServerTransactionStatusGetDone");
2068 lpVosVLDBGet = (lpVosVLDBGet_t)GetProcAddress (hiVOS, "vos_VLDBGet");
2069 lpVosVLDBGetBegin = (lpVosVLDBGetBegin_t)GetProcAddress (hiVOS, "vos_VLDBGetBegin");
2070 lpVosVLDBGetNext = (lpVosVLDBGetNext_t)GetProcAddress (hiVOS, "vos_VLDBGetNext");
2071 lpVosVLDBGetDone = (lpVosVLDBGetDone_t)GetProcAddress (hiVOS, "vos_VLDBGetDone");
2072 lpVosVLDBEntryRemove = (lpVosVLDBEntryRemove_t)GetProcAddress (hiVOS, "vos_VLDBEntryRemove");
2073 lpVosVLDBUnlock = (lpVosVLDBUnlock_t)GetProcAddress (hiVOS, "vos_VLDBUnlock");
2074 lpVosVLDBEntryLock = (lpVosVLDBEntryLock_t)GetProcAddress (hiVOS, "vos_VLDBEntryLock");
2075 lpVosVLDBEntryUnlock = (lpVosVLDBEntryUnlock_t)GetProcAddress (hiVOS, "vos_VLDBEntryUnlock");
2076 lpVosVLDBReadOnlySiteCreate = (lpVosVLDBReadOnlySiteCreate_t)GetProcAddress (hiVOS, "vos_VLDBReadOnlySiteCreate");
2077 lpVosVLDBReadOnlySiteDelete = (lpVosVLDBReadOnlySiteDelete_t)GetProcAddress (hiVOS, "vos_VLDBReadOnlySiteDelete");
2078 lpVosVLDBSync = (lpVosVLDBSync_t)GetProcAddress (hiVOS, "vos_VLDBSync");
2079 lpVosVolumeCreate = (lpVosVolumeCreate_t)GetProcAddress (hiVOS, "vos_VolumeCreate");
2080 lpVosVolumeDelete = (lpVosVolumeDelete_t)GetProcAddress (hiVOS, "vos_VolumeDelete");
2081 lpVosVolumeRename = (lpVosVolumeRename_t)GetProcAddress (hiVOS, "vos_VolumeRename");
2082 lpVosVolumeDump = (lpVosVolumeDump_t)GetProcAddress (hiVOS, "vos_VolumeDump");
2083 lpVosVolumeRestore = (lpVosVolumeRestore_t)GetProcAddress (hiVOS, "vos_VolumeRestore");
2084 lpVosVolumeOnline = (lpVosVolumeOnline_t)GetProcAddress (hiVOS, "vos_VolumeOnline");
2085 lpVosVolumeOffline = (lpVosVolumeOffline_t)GetProcAddress (hiVOS, "vos_VolumeOffline");
2086 lpVosVolumeGet = (lpVosVolumeGet_t)GetProcAddress (hiVOS, "vos_VolumeGet");
2087 lpVosVolumeGetBegin = (lpVosVolumeGetBegin_t)GetProcAddress (hiVOS, "vos_VolumeGetBegin");
2088 lpVosVolumeGetNext = (lpVosVolumeGetNext_t)GetProcAddress (hiVOS, "vos_VolumeGetNext");
2089 lpVosVolumeGetDone = (lpVosVolumeGetDone_t)GetProcAddress (hiVOS, "vos_VolumeGetDone");
2090 lpVosVolumeMove = (lpVosVolumeMove_t)GetProcAddress (hiVOS, "vos_VolumeMove");
2091 lpVosVolumeRelease = (lpVosVolumeRelease_t)GetProcAddress (hiVOS, "vos_VolumeRelease");
2092 lpVosVolumeZap = (lpVosVolumeZap_t)GetProcAddress (hiVOS, "vos_VolumeZap");
2093 lpVosPartitionNameToId = (lpVosPartitionNameToId_t)GetProcAddress (hiVOS, "vos_PartitionNameToId");
2094 lpVosPartitionIdToName = (lpVosPartitionIdToName_t)GetProcAddress (hiVOS, "vos_PartitionIdToName");
2095 lpVosVolumeQuotaChange = (lpVosVolumeQuotaChange_t)GetProcAddress (hiVOS, "vos_VolumeQuotaChange");
2097 lpBosServerOpen = (lpBosServerOpen_t)GetProcAddress (hiBOS, "bos_ServerOpen");
2098 lpBosServerClose = (lpBosServerClose_t)GetProcAddress (hiBOS, "bos_ServerClose");
2099 lpBosProcessCreate = (lpBosProcessCreate_t)GetProcAddress (hiBOS, "bos_ProcessCreate");
2100 lpBosProcessDelete = (lpBosProcessDelete_t)GetProcAddress (hiBOS, "bos_ProcessDelete");
2101 lpBosProcessExecutionStateGet = (lpBosProcessExecutionStateGet_t)GetProcAddress (hiBOS, "bos_ProcessExecutionStateGet");
2102 lpBosProcessExecutionStateSet = (lpBosProcessExecutionStateSet_t)GetProcAddress (hiBOS, "bos_ProcessExecutionStateSet");
2103 lpBosProcessExecutionStateSetTemporary = (lpBosProcessExecutionStateSetTemporary_t)GetProcAddress (hiBOS, "bos_ProcessExecutionStateSetTemporary");
2104 lpBosProcessNameGetBegin = (lpBosProcessNameGetBegin_t)GetProcAddress (hiBOS, "bos_ProcessNameGetBegin");
2105 lpBosProcessNameGetDone = (lpBosProcessNameGetDone_t)GetProcAddress (hiBOS, "bos_ProcessNameGetDone");
2106 lpBosProcessNameGetNext = (lpBosProcessNameGetNext_t)GetProcAddress (hiBOS, "bos_ProcessNameGetNext");
2107 lpBosProcessInfoGet = (lpBosProcessInfoGet_t)GetProcAddress (hiBOS, "bos_ProcessInfoGet");
2108 lpBosProcessParameterGetBegin = (lpBosProcessParameterGetBegin_t)GetProcAddress (hiBOS, "bos_ProcessParameterGetBegin");
2109 lpBosProcessParameterGetDone = (lpBosProcessParameterGetDone_t)GetProcAddress (hiBOS, "bos_ProcessParameterGetDone");
2110 lpBosProcessParameterGetNext = (lpBosProcessParameterGetNext_t)GetProcAddress (hiBOS, "bos_ProcessParameterGetNext");
2111 lpBosProcessNotifierGet = (lpBosProcessNotifierGet_t)GetProcAddress (hiBOS, "bos_ProcessNotifierGet");
2112 lpBosProcessRestart = (lpBosProcessRestart_t)GetProcAddress (hiBOS, "bos_ProcessRestart");
2113 lpBosProcessAllStop = (lpBosProcessAllStop_t)GetProcAddress (hiBOS, "bos_ProcessAllStop");
2114 lpBosProcessAllStart = (lpBosProcessAllStart_t)GetProcAddress (hiBOS, "bos_ProcessAllStart");
2115 lpBosProcessAllWaitStop = (lpBosProcessAllWaitStop_t)GetProcAddress (hiBOS, "bos_ProcessAllWaitStop");
2116 lpBosProcessAllStopAndRestart = (lpBosProcessAllStopAndRestart_t)GetProcAddress (hiBOS, "bos_ProcessAllStopAndRestart");
2117 lpBosAdminCreate = (lpBosAdminCreate_t)GetProcAddress (hiBOS, "bos_AdminCreate");
2118 lpBosAdminDelete = (lpBosAdminDelete_t)GetProcAddress (hiBOS, "bos_AdminDelete");
2119 lpBosAdminGetBegin = (lpBosAdminGetBegin_t)GetProcAddress (hiBOS, "bos_AdminGetBegin");
2120 lpBosAdminGetDone = (lpBosAdminGetDone_t)GetProcAddress (hiBOS, "bos_AdminGetDone");
2121 lpBosAdminGetNext = (lpBosAdminGetNext_t)GetProcAddress (hiBOS, "bos_AdminGetNext");
2122 lpBosKeyCreate = (lpBosKeyCreate_t)GetProcAddress (hiBOS, "bos_KeyCreate");
2123 lpBosKeyDelete = (lpBosKeyDelete_t)GetProcAddress (hiBOS, "bos_KeyDelete");
2124 lpBosKeyGetBegin = (lpBosKeyGetBegin_t)GetProcAddress (hiBOS, "bos_KeyGetBegin");
2125 lpBosKeyGetDone = (lpBosKeyGetDone_t)GetProcAddress (hiBOS, "bos_KeyGetDone");
2126 lpBosKeyGetNext = (lpBosKeyGetNext_t)GetProcAddress (hiBOS, "bos_KeyGetNext");
2127 lpBosCellSet = (lpBosCellSet_t)GetProcAddress (hiBOS, "bos_CellSet");
2128 lpBosCellGet = (lpBosCellGet_t)GetProcAddress (hiBOS, "bos_CellGet");
2129 lpBosHostCreate = (lpBosHostCreate_t)GetProcAddress (hiBOS, "bos_HostCreate");
2130 lpBosHostDelete = (lpBosHostDelete_t)GetProcAddress (hiBOS, "bos_HostDelete");
2131 lpBosHostGetBegin = (lpBosHostGetBegin_t)GetProcAddress (hiBOS, "bos_HostGetBegin");
2132 lpBosHostGetDone = (lpBosHostGetDone_t)GetProcAddress (hiBOS, "bos_HostGetDone");
2133 lpBosHostGetNext = (lpBosHostGetNext_t)GetProcAddress (hiBOS, "bos_HostGetNext");
2134 lpBosExecutableCreate = (lpBosExecutableCreate_t)GetProcAddress (hiBOS, "bos_ExecutableCreate");
2135 lpBosExecutableRevert = (lpBosExecutableRevert_t)GetProcAddress (hiBOS, "bos_ExecutableRevert");
2136 lpBosExecutableTimestampGet = (lpBosExecutableTimestampGet_t)GetProcAddress (hiBOS, "bos_ExecutableTimestampGet");
2137 lpBosExecutablePrune = (lpBosExecutablePrune_t)GetProcAddress (hiBOS, "bos_ExecutablePrune");
2138 lpBosExecutableRestartTimeSet = (lpBosExecutableRestartTimeSet_t)GetProcAddress (hiBOS, "bos_ExecutableRestartTimeSet");
2139 lpBosExecutableRestartTimeGet = (lpBosExecutableRestartTimeGet_t)GetProcAddress (hiBOS, "bos_ExecutableRestartTimeGet");
2140 lpBosLogGet = (lpBosLogGet_t)GetProcAddress (hiBOS, "bos_LogGet");
2141 lpBosAuthSet = (lpBosAuthSet_t)GetProcAddress (hiBOS, "bos_AuthSet");
2142 lpBosCommandExecute = (lpBosCommandExecute_t)GetProcAddress (hiBOS, "bos_CommandExecute");
2143 lpBosSalvage = (lpBosSalvage_t)GetProcAddress (hiBOS, "bos_Salvage");
2145 lpKasServerOpen = (lpKasServerOpen_t)GetProcAddress (hiKAS, "kas_ServerOpen");
2146 lpKasServerClose = (lpKasServerClose_t)GetProcAddress (hiKAS, "kas_ServerClose");
2147 lpKasServerStatsGet = (lpKasServerStatsGet_t)GetProcAddress (hiKAS, "kas_ServerStatsGet");
2148 lpKasServerDebugGet = (lpKasServerDebugGet_t)GetProcAddress (hiKAS, "kas_ServerDebugGet");
2149 lpKasServerRandomKeyGet = (lpKasServerRandomKeyGet_t)GetProcAddress (hiKAS, "kas_ServerRandomKeyGet");
2150 lpKasStringToKey = (lpKasStringToKey_t)GetProcAddress (hiKAS, "kas_StringToKey");
2151 lpKasPrincipalCreate = (lpKasPrincipalCreate_t)GetProcAddress (hiKAS, "kas_PrincipalCreate");
2152 lpKasPrincipalDelete = (lpKasPrincipalDelete_t)GetProcAddress (hiKAS, "kas_PrincipalDelete");
2153 lpKasPrincipalGet = (lpKasPrincipalGet_t)GetProcAddress (hiKAS, "kas_PrincipalGet");
2154 lpKasPrincipalGetBegin = (lpKasPrincipalGetBegin_t)GetProcAddress (hiKAS, "kas_PrincipalGetBegin");
2155 lpKasPrincipalGetNext = (lpKasPrincipalGetNext_t)GetProcAddress (hiKAS, "kas_PrincipalGetNext");
2156 lpKasPrincipalGetDone = (lpKasPrincipalGetDone_t)GetProcAddress (hiKAS, "kas_PrincipalGetDone");
2157 lpKasPrincipalKeySet = (lpKasPrincipalKeySet_t)GetProcAddress (hiKAS, "kas_PrincipalKeySet");
2158 lpKasPrincipalLockStatusGet = (lpKasPrincipalLockStatusGet_t)GetProcAddress (hiKAS, "kas_PrincipalLockStatusGet");
2159 lpKasPrincipalUnlock = (lpKasPrincipalUnlock_t)GetProcAddress (hiKAS, "kas_PrincipalUnlock");
2160 lpKasPrincipalFieldsSet = (lpKasPrincipalFieldsSet_t)GetProcAddress (hiKAS, "kas_PrincipalFieldsSet");
2162 lpPtsGroupMemberAdd = (lpPtsGroupMemberAdd_t)GetProcAddress (hiPTS, "pts_GroupMemberAdd");
2163 lpPtsGroupOwnerChange = (lpPtsGroupOwnerChange_t)GetProcAddress (hiPTS, "pts_GroupOwnerChange");
2164 lpPtsGroupCreate = (lpPtsGroupCreate_t)GetProcAddress (hiPTS, "pts_GroupCreate");
2165 lpPtsGroupGet = (lpPtsGroupGet_t)GetProcAddress (hiPTS, "pts_GroupGet");
2166 lpPtsGroupDelete = (lpPtsGroupDelete_t)GetProcAddress (hiPTS, "pts_GroupDelete");
2167 lpPtsGroupMaxGet = (lpPtsGroupMaxGet_t)GetProcAddress (hiPTS, "pts_GroupMaxGet");
2168 lpPtsGroupMaxSet = (lpPtsGroupMaxSet_t)GetProcAddress (hiPTS, "pts_GroupMaxSet");
2169 lpPtsGroupMemberListBegin = (lpPtsGroupMemberListBegin_t)GetProcAddress (hiPTS, "pts_GroupMemberListBegin");
2170 lpPtsGroupMemberListNext = (lpPtsGroupMemberListNext_t)GetProcAddress (hiPTS, "pts_GroupMemberListNext");
2171 lpPtsGroupMemberListDone = (lpPtsGroupMemberListDone_t)GetProcAddress (hiPTS, "pts_GroupMemberListDone");
2172 lpPtsGroupMemberRemove = (lpPtsGroupMemberRemove_t)GetProcAddress (hiPTS, "pts_GroupMemberRemove");
2173 lpPtsGroupRename = (lpPtsGroupRename_t)GetProcAddress (hiPTS, "pts_GroupRename");
2174 lpPtsGroupModify = (lpPtsGroupModify_t)GetProcAddress (hiPTS, "pts_GroupModify");
2175 lpPtsUserCreate = (lpPtsUserCreate_t)GetProcAddress (hiPTS, "pts_UserCreate");
2176 lpPtsUserDelete = (lpPtsUserDelete_t)GetProcAddress (hiPTS, "pts_UserDelete");
2177 lpPtsUserGet = (lpPtsUserGet_t)GetProcAddress (hiPTS, "pts_UserGet");
2178 lpPtsUserRename = (lpPtsUserRename_t)GetProcAddress (hiPTS, "pts_UserRename");
2179 lpPtsUserModify = (lpPtsUserModify_t)GetProcAddress (hiPTS, "pts_UserModify");
2180 lpPtsUserMaxGet = (lpPtsUserMaxGet_t)GetProcAddress (hiPTS, "pts_UserMaxGet");
2181 lpPtsUserMaxSet = (lpPtsUserMaxSet_t)GetProcAddress (hiPTS, "pts_UserMaxSet");
2182 lpPtsUserMemberListBegin = (lpPtsUserMemberListBegin_t)GetProcAddress (hiPTS, "pts_UserMemberListBegin");
2183 lpPtsUserMemberListNext = (lpPtsUserMemberListNext_t)GetProcAddress (hiPTS, "pts_UserMemberListNext");
2184 lpPtsUserMemberListDone = (lpPtsUserMemberListDone_t)GetProcAddress (hiPTS, "pts_UserMemberListDone");
2185 lpPtsOwnedGroupListBegin = (lpPtsOwnedGroupListBegin_t)GetProcAddress (hiPTS, "pts_OwnedGroupListBegin");
2186 lpPtsOwnedGroupListNext = (lpPtsOwnedGroupListNext_t)GetProcAddress (hiPTS, "pts_OwnedGroupListNext");
2187 lpPtsOwnedGroupListDone = (lpPtsOwnedGroupListDone_t)GetProcAddress (hiPTS, "pts_OwnedGroupListDone");
2189 lpClientTokenGetExisting = (lpClientTokenGetExisting_t)GetProcAddress (hiClient, "afsclient_TokenGetExisting");
2190 lpClientCellOpen = (lpClientCellOpen_t)GetProcAddress (hiClient, "afsclient_CellOpen");
2191 lpClientCellClose = (lpClientCellClose_t)GetProcAddress (hiClient, "afsclient_CellClose");
2192 lpClientLocalCellGet = (lpClientLocalCellGet_t)GetProcAddress (hiClient, "afsclient_LocalCellGet");
2193 lpClientAFSServerGet = (lpClientAFSServerGet_t)GetProcAddress (hiClient, "afsclient_AFSServerGet");
2194 lpClientAFSServerGetBegin = (lpClientAFSServerGetBegin_t)GetProcAddress (hiClient, "afsclient_AFSServerGetBegin");
2195 lpClientAFSServerGetNext = (lpClientAFSServerGetNext_t)GetProcAddress (hiClient, "afsclient_AFSServerGetNext");
2196 lpClientAFSServerGetDone = (lpClientAFSServerGetDone_t)GetProcAddress (hiClient, "afsclient_AFSServerGetDone");
2197 lpClientInit = (lpClientInit_t)GetProcAddress (hiClient, "afsclient_Init");
2199 lpUtilDatabaseServerGetBegin = (lpUtilDatabaseServerGetBegin_t)GetProcAddress (hiUtil, "util_DatabaseServerGetBegin");
2200 lpUtilDatabaseServerGetNext = (lpUtilDatabaseServerGetNext_t)GetProcAddress (hiUtil, "util_DatabaseServerGetNext");
2201 lpUtilDatabaseServerGetDone = (lpUtilDatabaseServerGetDone_t)GetProcAddress (hiUtil, "util_DatabaseServerGetDone");
2205 if ( (lpVosBackupVolumeCreate == NULL) ||
2206 (lpVosBackupVolumeCreateMultiple == NULL) ||
2207 (lpVosPartitionGet == NULL) ||
2208 (lpVosPartitionGetBegin == NULL) ||
2209 (lpVosPartitionGetNext == NULL) ||
2210 (lpVosPartitionGetDone == NULL) ||
2211 (lpVosServerOpen == NULL) ||
2212 (lpVosServerClose == NULL) ||
2213 (lpVosServerSync == NULL) ||
2214 (lpVosFileServerAddressChange == NULL) ||
2215 (lpVosFileServerAddressRemove == NULL) ||
2216 (lpVosFileServerGetBegin == NULL) ||
2217 (lpVosFileServerGetNext == NULL) ||
2218 (lpVosFileServerGetDone == NULL) ||
2219 (lpVosServerTransactionStatusGetBegin == NULL) ||
2220 (lpVosServerTransactionStatusGetNext == NULL) ||
2221 (lpVosServerTransactionStatusGetDone == NULL) ||
2222 (lpVosVLDBGet == NULL) ||
2223 (lpVosVLDBGetBegin == NULL) ||
2224 (lpVosVLDBGetNext == NULL) ||
2225 (lpVosVLDBGetDone == NULL) ||
2226 (lpVosVLDBEntryRemove == NULL) ||
2227 (lpVosVLDBUnlock == NULL) ||
2228 (lpVosVLDBEntryLock == NULL) ||
2229 (lpVosVLDBEntryUnlock == NULL) ||
2230 (lpVosVLDBReadOnlySiteCreate == NULL) ||
2231 (lpVosVLDBReadOnlySiteDelete == NULL) ||
2232 (lpVosVLDBSync == NULL) ||
2233 (lpVosVolumeCreate == NULL) ||
2234 (lpVosVolumeDelete == NULL) ||
2235 (lpVosVolumeRename == NULL) ||
2236 (lpVosVolumeDump == NULL) ||
2237 (lpVosVolumeRestore == NULL) ||
2238 (lpVosVolumeOnline == NULL) ||
2239 (lpVosVolumeOffline == NULL) ||
2240 (lpVosVolumeGet == NULL) ||
2241 (lpVosVolumeGetBegin == NULL) ||
2242 (lpVosVolumeGetNext == NULL) ||
2243 (lpVosVolumeGetDone == NULL) ||
2244 (lpVosVolumeMove == NULL) ||
2245 (lpVosVolumeRelease == NULL) ||
2246 (lpVosVolumeZap == NULL) ||
2247 (lpVosPartitionNameToId == NULL) ||
2248 (lpVosPartitionIdToName == NULL) ||
2249 (lpVosVolumeQuotaChange == NULL) ||
2250 (lpBosServerOpen == NULL) ||
2251 (lpBosServerClose == NULL) ||
2252 (lpBosProcessCreate == NULL) ||
2253 (lpBosProcessDelete == NULL) ||
2254 (lpBosProcessExecutionStateGet == NULL) ||
2255 (lpBosProcessExecutionStateSet == NULL) ||
2256 (lpBosProcessExecutionStateSetTemporary == NULL) ||
2257 (lpBosProcessNameGetBegin == NULL) ||
2258 (lpBosProcessNameGetDone == NULL) ||
2259 (lpBosProcessNameGetNext == NULL) ||
2260 (lpBosProcessInfoGet == NULL) ||
2261 (lpBosProcessParameterGetBegin == NULL) ||
2262 (lpBosProcessParameterGetDone == NULL) ||
2263 (lpBosProcessParameterGetNext == NULL) ||
2264 (lpBosProcessNotifierGet == NULL) ||
2265 (lpBosProcessRestart == NULL) ||
2266 (lpBosProcessAllStop == NULL) ||
2267 (lpBosProcessAllStart == NULL) ||
2268 (lpBosProcessAllWaitStop == NULL) ||
2269 (lpBosProcessAllStopAndRestart == NULL) ||
2270 (lpBosAdminCreate == NULL) ||
2271 (lpBosAdminDelete == NULL) ||
2272 (lpBosAdminGetBegin == NULL) ||
2273 (lpBosAdminGetDone == NULL) ||
2274 (lpBosAdminGetNext == NULL) ||
2275 (lpBosKeyCreate == NULL) ||
2276 (lpBosKeyDelete == NULL) ||
2277 (lpBosKeyGetBegin == NULL) ||
2278 (lpBosKeyGetDone == NULL) ||
2279 (lpBosKeyGetNext == NULL) ||
2280 (lpBosCellSet == NULL) ||
2281 (lpBosCellGet == NULL) ||
2282 (lpBosHostCreate == NULL) ||
2283 (lpBosHostDelete == NULL) ||
2284 (lpBosHostGetBegin == NULL) ||
2285 (lpBosHostGetDone == NULL) ||
2286 (lpBosHostGetNext == NULL) ||
2287 (lpBosExecutableCreate == NULL) ||
2288 (lpBosExecutableRevert == NULL) ||
2289 (lpBosExecutableTimestampGet == NULL) ||
2290 (lpBosExecutablePrune == NULL) ||
2291 (lpBosExecutableRestartTimeSet == NULL) ||
2292 (lpBosExecutableRestartTimeGet == NULL) ||
2293 (lpBosLogGet == NULL) ||
2294 (lpBosAuthSet == NULL) ||
2295 (lpBosCommandExecute == NULL) ||
2296 (lpBosSalvage == NULL) ||
2297 (lpKasServerOpen == NULL) ||
2298 (lpKasServerClose == NULL) ||
2299 (lpKasServerStatsGet == NULL) ||
2300 (lpKasServerDebugGet == NULL) ||
2301 (lpKasServerRandomKeyGet == NULL) ||
2302 (lpKasStringToKey == NULL) ||
2303 (lpKasPrincipalCreate == NULL) ||
2304 (lpKasPrincipalDelete == NULL) ||
2305 (lpKasPrincipalGet == NULL) ||
2306 (lpKasPrincipalGetBegin == NULL) ||
2307 (lpKasPrincipalGetNext == NULL) ||
2308 (lpKasPrincipalGetDone == NULL) ||
2309 (lpKasPrincipalKeySet == NULL) ||
2310 (lpKasPrincipalLockStatusGet == NULL) ||
2311 (lpKasPrincipalUnlock == NULL) ||
2312 (lpKasPrincipalFieldsSet == NULL) ||
2313 (lpPtsGroupMemberAdd == NULL) ||
2314 (lpPtsGroupOwnerChange == NULL) ||
2315 (lpPtsGroupCreate == NULL) ||
2316 (lpPtsGroupGet == NULL) ||
2317 (lpPtsGroupDelete == NULL) ||
2318 (lpPtsGroupMaxGet == NULL) ||
2319 (lpPtsGroupMaxSet == NULL) ||
2320 (lpPtsGroupMemberListBegin == NULL) ||
2321 (lpPtsGroupMemberListNext == NULL) ||
2322 (lpPtsGroupMemberListDone == NULL) ||
2323 (lpPtsGroupMemberRemove == NULL) ||
2324 (lpPtsGroupRename == NULL) ||
2325 (lpPtsGroupModify == NULL) ||
2326 (lpPtsUserCreate == NULL) ||
2327 (lpPtsUserDelete == NULL) ||
2328 (lpPtsUserGet == NULL) ||
2329 (lpPtsUserRename == NULL) ||
2330 (lpPtsUserModify == NULL) ||
2331 (lpPtsUserMaxGet == NULL) ||
2332 (lpPtsUserMaxSet == NULL) ||
2333 (lpPtsUserMemberListBegin == NULL) ||
2334 (lpPtsUserMemberListNext == NULL) ||
2335 (lpPtsUserMemberListDone == NULL) ||
2336 (lpPtsOwnedGroupListBegin == NULL) ||
2337 (lpPtsOwnedGroupListNext == NULL) ||
2338 (lpPtsOwnedGroupListDone == NULL) ||
2339 (lpClientTokenGetExisting == NULL) ||
2340 (lpClientCellOpen == NULL) ||
2341 (lpClientCellClose == NULL) ||
2342 (lpClientLocalCellGet == NULL) ||
2343 (lpClientInit == NULL) ||
2344 (lpClientAFSServerGet == NULL) ||
2345 (lpClientAFSServerGetBegin == NULL) ||
2346 (lpClientAFSServerGetNext == NULL) ||
2347 (lpClientAFSServerGetDone == NULL) ||
2348 (lpUtilDatabaseServerGetBegin == NULL) ||
2349 (lpUtilDatabaseServerGetNext == NULL) ||
2350 (lpUtilDatabaseServerGetDone == NULL) ||
2355 *pStatus = ERROR_DLL_INIT_FAILED;
2359 // Initialize the client library
2361 afs_status_t status;
2362 if (!(*lpClientInit)(&status))
2365 *pStatus = (ULONG)status;
2373 void Worker_FreeLibraries (void)
2377 FreeLibrary (hiVOS);
2382 FreeLibrary (hiBOS);
2387 FreeLibrary (hiKAS);
2392 FreeLibrary (hiPTS);
2397 FreeLibrary (hiUtil);
2400 if (hiClient != NULL)
2402 FreeLibrary (hiClient);