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>
20 #include <WINNT/afsclass.h>
25 #include <afs/vlserver.h>
30 * DEFINITIONS ________________________________________________________________
35 static LPCTSTR cszAFSVOSDLL = TCHAR("AfsVosAdmin.dll");
36 static LPCTSTR cszAFSBOSDLL = TCHAR("AfsBosAdmin.dll");
37 static LPCTSTR cszAFSKASDLL = TCHAR("AfsKasAdmin.dll");
38 static LPCTSTR cszAFSPTSDLL = TCHAR("AfsPtsAdmin.dll");
39 static LPCTSTR cszAFSUTILDLL = TCHAR("AfsAdminUtil.dll");
40 static LPCTSTR cszAFSCLIENTDLL = TCHAR("AfsClientAdmin.dll");
42 static LPCTSTR cszAFSVOSDLL = __T("AfsVosAdmin.dll");
43 static LPCTSTR cszAFSBOSDLL = __T("AfsBosAdmin.dll");
44 static LPCTSTR cszAFSKASDLL = __T("AfsKasAdmin.dll");
45 static LPCTSTR cszAFSPTSDLL = __T("AfsPtsAdmin.dll");
46 static LPCTSTR cszAFSUTILDLL = __T("AfsAdminUtil.dll");
47 static LPCTSTR cszAFSCLIENTDLL = __T("AfsClientAdmin.dll");
51 * VARIABLES __________________________________________________________________
55 static HINSTANCE hiVOS = NULL;
56 static HINSTANCE hiBOS = NULL;
57 static HINSTANCE hiKAS = NULL;
58 static HINSTANCE hiPTS = NULL;
59 static HINSTANCE hiUtil = NULL;
60 static HINSTANCE hiClient = NULL;
64 * .DLL PROTOTYPES ____________________________________________________________
70 typedef int (ADMINAPI *lpVosBackupVolumeCreate_t)(const void *cellHandle, vos_MessageCallBack_t callBack, unsigned int volumeId, afs_status_p st);
71 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);
72 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);
73 typedef int (ADMINAPI *lpVosPartitionGetBegin_t)(const void *cellHandle, const void *serverHandle, vos_MessageCallBack_t callBack, void **iterationIdP, afs_status_p st);
74 typedef int (ADMINAPI *lpVosPartitionGetNext_t)(const void *iterationId, vos_partitionEntry_p partitionP, afs_status_p st);
75 typedef int (ADMINAPI *lpVosPartitionGetDone_t)(const void *iterationId, afs_status_p st);
76 typedef int (ADMINAPI *lpVosServerOpen_t)(const void *cellHandle, const char *serverName, void **serverHandleP, afs_status_p st);
77 typedef int (ADMINAPI *lpVosServerClose_t)(const void *serverHandle, afs_status_p st);
78 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);
79 typedef int (ADMINAPI *lpVosFileServerAddressChange_t)(const void *cellHandle, vos_MessageCallBack_t callBack, int oldAddress, int newAddress, afs_status_p st);
80 typedef int (ADMINAPI *lpVosFileServerAddressRemove_t)(const void *cellHandle, vos_MessageCallBack_t callBack, int serverAddress, afs_status_p st);
81 typedef int (ADMINAPI *lpVosFileServerGetBegin_t)(const void *cellHandle, vos_MessageCallBack_t callBack, void **iterationIdP, afs_status_p st);
82 typedef int (ADMINAPI *lpVosFileServerGetNext_t)(void *iterationId, vos_fileServerEntry_p serverEntryP, afs_status_p st);
83 typedef int (ADMINAPI *lpVosFileServerGetDone_t)(void *iterationId, afs_status_p st);
84 typedef int (ADMINAPI *lpVosServerTransactionStatusGetBegin_t)(const void *cellHandle, const void *serverHandle, vos_MessageCallBack_t callBack, void **iterationIdP, afs_status_p st);
85 typedef int (ADMINAPI *lpVosServerTransactionStatusGetNext_t)(const void *iterationId, vos_serverTransactionStatus_p serverTransactionStatusP, afs_status_p st);
86 typedef int (ADMINAPI *lpVosServerTransactionStatusGetDone_t)(const void *iterationId, afs_status_p st);
87 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);
88 typedef int (ADMINAPI *lpVosVLDBGetBegin_t)(const void *cellHandle, const void *serverHandle, vos_MessageCallBack_t callBack, unsigned int *partition, void **iterationIdP, afs_status_p st);
89 typedef int (ADMINAPI *lpVosVLDBGetNext_t)(const void *iterationId, vos_vldbEntry_p vldbEntry, afs_status_p st);
90 typedef int (ADMINAPI *lpVosVLDBGetDone_t)(const void *iterationId, afs_status_p st);
91 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);
92 typedef int (ADMINAPI *lpVosVLDBUnlock_t)(const void *cellHandle, const void *serverHandle, vos_MessageCallBack_t callBack, const unsigned int *partition, afs_status_p st);
93 typedef int (ADMINAPI *lpVosVLDBEntryLock_t)(const void *cellHandle, vos_MessageCallBack_t callBack, unsigned int volumeId, afs_status_p st);
94 typedef int (ADMINAPI *lpVosVLDBEntryUnlock_t)(const void *cellHandle, vos_MessageCallBack_t callBack, unsigned int volumeId, afs_status_p st);
95 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);
96 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);
97 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);
98 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);
99 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);
100 typedef int (ADMINAPI *lpVosVolumeRename_t)(const void *cellHandle, vos_MessageCallBack_t callBack, unsigned int readWriteVolumeId, const char *newVolumeName, afs_status_p st);
101 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);
102 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);
103 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);
104 typedef int (ADMINAPI *lpVosVolumeOffline_t)(const void *serverHandle, vos_MessageCallBack_t callBack, unsigned int partition, unsigned int volumeId, afs_status_p st);
105 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);
106 typedef int (ADMINAPI *lpVosVolumeGetBegin_t)(const void *cellHandle, const void *serverHandle, vos_MessageCallBack_t callBack, unsigned int partition, void **iterationIdP, afs_status_p st);
107 typedef int (ADMINAPI *lpVosVolumeGetNext_t)(const void *iterationId, vos_volumeEntry_p volumeP, afs_status_p st);
108 typedef int (ADMINAPI *lpVosVolumeGetDone_t)(const void *iterationId, afs_status_p st);
109 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);
110 typedef int (ADMINAPI *lpVosVolumeRelease_t)(const void *cellHandle, vos_MessageCallBack_t callBack, unsigned int volumeId, vos_force_t force, afs_status_p st);
111 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);
112 typedef int (ADMINAPI *lpVosPartitionNameToId_t)(const char *partitionName, unsigned int *partitionId, afs_status_p st);
113 typedef int (ADMINAPI *lpVosPartitionIdToName_t)(unsigned int partitionId, char *partitionName, afs_status_p st);
114 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);
116 typedef int (ADMINAPI *lpBosServerOpen_t)(const void *cellHandle, const char *hostName, void **hostHandlePP, afs_status_p st);
117 typedef int (ADMINAPI *lpBosServerClose_t)(const void *hostHandleP, afs_status_p st);
118 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);
119 typedef int (ADMINAPI *lpBosProcessDelete_t)(const void *serverHandle, const char *processName, afs_status_p st);
120 typedef int (ADMINAPI *lpBosProcessExecutionStateGet_t)(const void *serverHandle, const char *processName, bos_ProcessExecutionState_p processStatusP, char *auxiliaryProcessStatus, afs_status_p st);
121 typedef int (ADMINAPI *lpBosProcessExecutionStateSet_t)(const void *serverHandle, const char *processName, bos_ProcessExecutionState_t processStatus, afs_status_p st);
122 typedef int (ADMINAPI *lpBosProcessExecutionStateSetTemporary_t)(const void *serverHandle, const char *processName, bos_ProcessExecutionState_t processStatus, afs_status_p st);
123 typedef int (ADMINAPI *lpBosProcessNameGetBegin_t)(const void *serverHandle, void **iterationIdP, afs_status_p st);
124 typedef int (ADMINAPI *lpBosProcessNameGetNext_t)(const void *iterationId, char *processName, afs_status_p st);
125 typedef int (ADMINAPI *lpBosProcessNameGetDone_t)(const void *iterationId, afs_status_p st);
126 typedef int (ADMINAPI *lpBosProcessInfoGet_t)(const void *serverHandle, const char *processName, bos_ProcessType_p processTypeP, bos_ProcessInfo_p processInfoP, afs_status_p st);
127 typedef int (ADMINAPI *lpBosProcessParameterGetBegin_t)(const void *serverHandle, const char *processName, void **iterationIdP, afs_status_p st);
128 typedef int (ADMINAPI *lpBosProcessParameterGetNext_t)(const void *iterationId, char *parameter, afs_status_p st);
129 typedef int (ADMINAPI *lpBosProcessParameterGetDone_t)(const void *iterationId, afs_status_p st);
130 typedef int (ADMINAPI *lpBosProcessNotifierGet_t)(const void *serverHandle, const char *processName, char *notifier, afs_status_p st);
131 typedef int (ADMINAPI *lpBosProcessRestart_t)(const void *serverHandle, const char *processName, afs_status_p st);
132 typedef int (ADMINAPI *lpBosProcessAllStop_t)(const void *serverHandle, afs_status_p st);
133 typedef int (ADMINAPI *lpBosProcessAllStart_t)(const void *serverHandle, afs_status_p st);
134 typedef int (ADMINAPI *lpBosProcessAllWaitStop_t)(const void *serverHandle, afs_status_p st);
135 typedef int (ADMINAPI *lpBosProcessAllStopAndRestart_t)(const void *serverHandle, bos_RestartBosServer_t restartBosServer, afs_status_p st);
136 typedef int (ADMINAPI *lpBosAdminCreate_t)(const void *serverHandle, const char *adminName, afs_status_p st);
137 typedef int (ADMINAPI *lpBosAdminDelete_t)(const void *serverHandle, const char *adminName, afs_status_p st);
138 typedef int (ADMINAPI *lpBosAdminGetBegin_t)(const void *serverHandle, void **iterationIdP, afs_status_p st);
139 typedef int (ADMINAPI *lpBosAdminGetNext_t)(const void *iterationId, char *adminName, afs_status_p st);
140 typedef int (ADMINAPI *lpBosAdminGetDone_t)(const void *iterationId, afs_status_p st);
141 typedef int (ADMINAPI *lpBosKeyCreate_t)(const void *serverHandle, int keyVersionNumber, const kas_encryptionKey_p key, afs_status_p st);
142 typedef int (ADMINAPI *lpBosKeyDelete_t)(const void *serverHandle, int keyVersionNumber, afs_status_p st);
143 typedef int (ADMINAPI *lpBosKeyGetBegin_t)(const void *serverHandle, void **iterationIdP, afs_status_p st);
144 typedef int (ADMINAPI *lpBosKeyGetNext_t)(const void *iterationId, bos_KeyInfo_p keyP, afs_status_p st);
145 typedef int (ADMINAPI *lpBosKeyGetDone_t)(const void *iterationId, afs_status_p st);
146 typedef int (ADMINAPI *lpBosCellSet_t)(const void *serverHandle, const char *cellName, afs_status_p st);
147 typedef int (ADMINAPI *lpBosCellGet_t)(const void *serverHandle, char *cellName, afs_status_p st);
148 typedef int (ADMINAPI *lpBosHostCreate_t)(const void *serverHandle, const char *hostName, afs_status_p st);
149 typedef int (ADMINAPI *lpBosHostDelete_t)(const void *serverHandle, const char *hostName, afs_status_p st);
150 typedef int (ADMINAPI *lpBosHostGetBegin_t)(const void *serverHandle, void **iterationIdP, afs_status_p st);
151 typedef int (ADMINAPI *lpBosHostGetNext_t)(const void *iterationId, char *hostName, afs_status_p st);
152 typedef int (ADMINAPI *lpBosHostGetDone_t)(const void *iterationId, afs_status_p st);
153 typedef int (ADMINAPI *lpBosExecutableCreate_t)(const void *serverHandle, const char *sourceFile, const char *destFile, afs_status_p st);
154 typedef int (ADMINAPI *lpBosExecutableRevert_t)(const void *serverHandle, const char *execFile, afs_status_p st);
155 typedef int (ADMINAPI *lpBosExecutableTimestampGet_t)(const void *serverHandle, const char *execFile, unsigned long *newTime, unsigned long *oldTime, unsigned long *bakTime, afs_status_p st);
156 typedef int (ADMINAPI *lpBosExecutablePrune_t)(const void *serverHandle, bos_Prune_t oldFiles, bos_Prune_t bakFiles, bos_Prune_t coreFiles, afs_status_p st);
157 typedef int (ADMINAPI *lpBosExecutableRestartTimeSet_t)(const void *serverHandle, bos_Restart_t type, bos_RestartTime_t time, afs_status_p st);
158 typedef int (ADMINAPI *lpBosExecutableRestartTimeGet_t)(const void *serverHandle, bos_Restart_t type, bos_RestartTime_p timeP, afs_status_p st);
159 typedef int (ADMINAPI *lpBosLogGet_t)(const void *serverHandle, const char *log, unsigned long *logBufferSizeP, char *logData, afs_status_p st);
160 typedef int (ADMINAPI *lpBosAuthSet_t)(const void *serverHandle, bos_Auth_t auth, afs_status_p st);
161 typedef int (ADMINAPI *lpBosCommandExecute_t)(const void *serverHandle, const char *command, afs_status_p st);
162 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);
164 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);
165 typedef int (ADMINAPI *lpKasPrincipalDelete_t)(const void *cellHandle, const void *serverHandle, const kas_identity_p who, afs_status_p st);
166 typedef int (ADMINAPI *lpKasPrincipalGet_t)(const void *cellHandle, const void *serverHandle, const kas_identity_p who, kas_principalEntry_p principal, afs_status_p st);
167 typedef int (ADMINAPI *lpKasPrincipalGetBegin_t)(const void *cellHandle, const void *serverHandle, void **iterationIdP, afs_status_p st);
168 typedef int (ADMINAPI *lpKasPrincipalGetNext_t)(const void *iterationId, kas_identity_p who, afs_status_p st);
169 typedef int (ADMINAPI *lpKasPrincipalGetDone_t)(void *iterationIdP, afs_status_p st);
170 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);
171 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);
172 typedef int (ADMINAPI *lpKasPrincipalUnlock_t)(const void *cellHandle, const void *serverHandle, const kas_identity_p who, afs_status_p st);
173 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);
175 typedef int (ADMINAPI *lpPtsGroupMemberAdd_t)(const void *cellHandle, const char *userName, const char *groupName, afs_status_p st);
176 typedef int (ADMINAPI *lpPtsGroupOwnerChange_t)(const void *cellHandle, const char *targetGroup, const char *newOwner, afs_status_p st);
177 typedef int (ADMINAPI *lpPtsGroupCreate_t)(const void *cellHandle, const char *newGroup, const char *newOwner, const int *newGroupIdP, afs_status_p st);
178 typedef int (ADMINAPI *lpPtsGroupGet_t)(const void *cellHandle, const char *groupName, pts_GroupEntry_p groupP, afs_status_p st);
179 typedef int (ADMINAPI *lpPtsGroupDelete_t)(const void *cellHandle, const char *group, afs_status_p st);
180 typedef int (ADMINAPI *lpPtsGroupMaxGet_t)(const void *cellHandle, int *maxGroupId, afs_status_p st);
181 typedef int (ADMINAPI *lpPtsGroupMaxSet_t)(const void *cellHandle, int maxGroupId, afs_status_p st);
182 typedef int (ADMINAPI *lpPtsGroupMemberListBegin_t)(const void *cellHandle, const char *groupName, void **iterationIdP, afs_status_p st);
183 typedef int (ADMINAPI *lpPtsGroupMemberListNext_t)(const void *iterationIdP, char *memberName, afs_status_p st);
184 typedef int (ADMINAPI *lpPtsGroupMemberListDone_t)(const void *iterationIdP, afs_status_p st);
185 typedef int (ADMINAPI *lpPtsGroupMemberRemove_t)(const void *cellHandle, const char *memberName, const char *groupName, afs_status_p st);
186 typedef int (ADMINAPI *lpPtsGroupRename_t)(const void *cellHandle, const char *oldName, const char *newName, afs_status_p st);
187 typedef int (ADMINAPI *lpPtsGroupModify_t)(const void *cellHandle, const char *groupName, pts_GroupUpdateEntry_p newEntryP, afs_status_p st);
188 typedef int (ADMINAPI *lpPtsUserCreate_t)(const void *cellHandle, const char *newUser, const int *newUserIdP, afs_status_p st);
189 typedef int (ADMINAPI *lpPtsUserDelete_t)(const void *cellHandle, const char *user, afs_status_p st);
190 typedef int (ADMINAPI *lpPtsUserGet_t)(const void *cellHandle, const char *userName, pts_UserEntry_p userP, afs_status_p st);
191 typedef int (ADMINAPI *lpPtsUserRename_t)(const void *cellHandle, const char *oldName, const char *newName, afs_status_p st);
192 typedef int (ADMINAPI *lpPtsUserModify_t)(const void *cellHandle, const char *userName, pts_UserUpdateEntry_p newEntryP, afs_status_p st);
193 typedef int (ADMINAPI *lpPtsUserMaxGet_t)(const void *cellHandle, int *maxUserId, afs_status_p st);
194 typedef int (ADMINAPI *lpPtsUserMaxSet_t)(const void *cellHandle, int maxUserId, afs_status_p st);
195 typedef int (ADMINAPI *lpPtsUserMemberListBegin_t)(const void *cellHandle, const char *userName, void **iterationIdP, afs_status_p st);
196 typedef int (ADMINAPI *lpPtsUserMemberListNext_t)(const void *iterationIdP, char *groupName, afs_status_p st);
197 typedef int (ADMINAPI *lpPtsUserMemberListDone_t)(const void *iterationIdP, afs_status_p st);
198 typedef int (ADMINAPI *lpPtsOwnedGroupListBegin_t)(const void *cellHandle, const char *ownerName, void **iterationIdP, afs_status_p st);
199 typedef int (ADMINAPI *lpPtsOwnedGroupListNext_t)(const void *iterationIdP, char *groupName, afs_status_p st);
200 typedef int (ADMINAPI *lpPtsOwnedGroupListDone_t)(const void *iterationIdP, afs_status_p st);
202 typedef int (ADMINAPI *lpClientTokenGetExisting_t)(const char *cellName, void **tokenHandle, afs_status_p st);
203 typedef int (ADMINAPI *lpClientCellOpen_t)(const char *cellName, const void *credsHandle, void **cellHandleP, afs_status_p st);
204 typedef int (ADMINAPI *lpClientCellClose_t)(const void *cellHandle, afs_status_p st);
205 typedef int (ADMINAPI *lpClientLocalCellGet_t)(char *cellName, afs_status_p st);
206 typedef int (ADMINAPI *lpClientAFSServerGet_t)(const void *cellHandle, const char *serverName, afs_serverEntry_p serverEntryP, afs_status_p st);
207 typedef int (ADMINAPI *lpClientAFSServerGetBegin_t)(const void *cellHandle, void **iterationIdP, afs_status_p st);
208 typedef int (ADMINAPI *lpClientAFSServerGetNext_t)(const void *iterationId, afs_serverEntry_p serverEntryP, afs_status_p st);
209 typedef int (ADMINAPI *lpClientAFSServerGetDone_t)(const void *iterationId, afs_status_p st);
210 typedef int (ADMINAPI *lpClientInit_t)(afs_status_p st);
212 typedef int (ADMINAPI *lpUtilDatabaseServerGetBegin_t)(const char *cellName, void **iterationIdP, afs_status_p st);
213 typedef int (ADMINAPI *lpUtilDatabaseServerGetNext_t)(const void *iterationId, int *serverAddressP, afs_status_p st);
214 typedef int (ADMINAPI *lpUtilDatabaseServerGetDone_t)(const void *iterationId, afs_status_p st);
219 static lpVosBackupVolumeCreate_t lpVosBackupVolumeCreate = NULL;
220 static lpVosBackupVolumeCreateMultiple_t lpVosBackupVolumeCreateMultiple = NULL;
221 static lpVosPartitionGet_t lpVosPartitionGet = NULL;
222 static lpVosPartitionGetBegin_t lpVosPartitionGetBegin = NULL;
223 static lpVosPartitionGetNext_t lpVosPartitionGetNext = NULL;
224 static lpVosPartitionGetDone_t lpVosPartitionGetDone = NULL;
225 static lpVosServerOpen_t lpVosServerOpen = NULL;
226 static lpVosServerClose_t lpVosServerClose = NULL;
227 static lpVosServerSync_t lpVosServerSync = NULL;
228 static lpVosFileServerAddressChange_t lpVosFileServerAddressChange = NULL;
229 static lpVosFileServerAddressRemove_t lpVosFileServerAddressRemove = NULL;
230 static lpVosFileServerGetBegin_t lpVosFileServerGetBegin = NULL;
231 static lpVosFileServerGetNext_t lpVosFileServerGetNext = NULL;
232 static lpVosFileServerGetDone_t lpVosFileServerGetDone = NULL;
233 static lpVosServerTransactionStatusGetBegin_t lpVosServerTransactionStatusGetBegin = NULL;
234 static lpVosServerTransactionStatusGetNext_t lpVosServerTransactionStatusGetNext = NULL;
235 static lpVosServerTransactionStatusGetDone_t lpVosServerTransactionStatusGetDone = NULL;
236 static lpVosVLDBGet_t lpVosVLDBGet = NULL;
237 static lpVosVLDBGetBegin_t lpVosVLDBGetBegin = NULL;
238 static lpVosVLDBGetNext_t lpVosVLDBGetNext = NULL;
239 static lpVosVLDBGetDone_t lpVosVLDBGetDone = NULL;
240 static lpVosVLDBEntryRemove_t lpVosVLDBEntryRemove = NULL;
241 static lpVosVLDBUnlock_t lpVosVLDBUnlock = NULL;
242 static lpVosVLDBEntryLock_t lpVosVLDBEntryLock = NULL;
243 static lpVosVLDBEntryUnlock_t lpVosVLDBEntryUnlock = NULL;
244 static lpVosVLDBReadOnlySiteCreate_t lpVosVLDBReadOnlySiteCreate = NULL;
245 static lpVosVLDBReadOnlySiteDelete_t lpVosVLDBReadOnlySiteDelete = NULL;
246 static lpVosVLDBSync_t lpVosVLDBSync = NULL;
247 static lpVosVolumeCreate_t lpVosVolumeCreate = NULL;
248 static lpVosVolumeDelete_t lpVosVolumeDelete = NULL;
249 static lpVosVolumeRename_t lpVosVolumeRename = NULL;
250 static lpVosVolumeDump_t lpVosVolumeDump = NULL;
251 static lpVosVolumeRestore_t lpVosVolumeRestore = NULL;
252 static lpVosVolumeOnline_t lpVosVolumeOnline = NULL;
253 static lpVosVolumeOffline_t lpVosVolumeOffline = NULL;
254 static lpVosVolumeGet_t lpVosVolumeGet = NULL;
255 static lpVosVolumeGetBegin_t lpVosVolumeGetBegin = NULL;
256 static lpVosVolumeGetNext_t lpVosVolumeGetNext = NULL;
257 static lpVosVolumeGetDone_t lpVosVolumeGetDone = NULL;
258 static lpVosVolumeMove_t lpVosVolumeMove = NULL;
259 static lpVosVolumeRelease_t lpVosVolumeRelease = NULL;
260 static lpVosVolumeZap_t lpVosVolumeZap = NULL;
261 static lpVosPartitionNameToId_t lpVosPartitionNameToId = NULL;
262 static lpVosPartitionIdToName_t lpVosPartitionIdToName = NULL;
263 static lpVosVolumeQuotaChange_t lpVosVolumeQuotaChange = NULL;
265 static lpBosServerOpen_t lpBosServerOpen = NULL;
266 static lpBosServerClose_t lpBosServerClose = NULL;
267 static lpBosProcessCreate_t lpBosProcessCreate = NULL;
268 static lpBosProcessDelete_t lpBosProcessDelete = NULL;
269 static lpBosProcessExecutionStateGet_t lpBosProcessExecutionStateGet = NULL;
270 static lpBosProcessExecutionStateSet_t lpBosProcessExecutionStateSet = NULL;
271 static lpBosProcessExecutionStateSetTemporary_t lpBosProcessExecutionStateSetTemporary = NULL;
272 static lpBosProcessNameGetBegin_t lpBosProcessNameGetBegin = NULL;
273 static lpBosProcessNameGetDone_t lpBosProcessNameGetDone = NULL;
274 static lpBosProcessNameGetNext_t lpBosProcessNameGetNext = NULL;
275 static lpBosProcessInfoGet_t lpBosProcessInfoGet = NULL;
276 static lpBosProcessParameterGetBegin_t lpBosProcessParameterGetBegin = NULL;
277 static lpBosProcessParameterGetDone_t lpBosProcessParameterGetDone = NULL;
278 static lpBosProcessParameterGetNext_t lpBosProcessParameterGetNext = NULL;
279 static lpBosProcessNotifierGet_t lpBosProcessNotifierGet = NULL;
280 static lpBosProcessRestart_t lpBosProcessRestart = NULL;
281 static lpBosProcessAllStop_t lpBosProcessAllStop = NULL;
282 static lpBosProcessAllStart_t lpBosProcessAllStart = NULL;
283 static lpBosProcessAllWaitStop_t lpBosProcessAllWaitStop = NULL;
284 static lpBosProcessAllStopAndRestart_t lpBosProcessAllStopAndRestart = NULL;
285 static lpBosAdminCreate_t lpBosAdminCreate = NULL;
286 static lpBosAdminDelete_t lpBosAdminDelete = NULL;
287 static lpBosAdminGetBegin_t lpBosAdminGetBegin = NULL;
288 static lpBosAdminGetDone_t lpBosAdminGetDone = NULL;
289 static lpBosAdminGetNext_t lpBosAdminGetNext = NULL;
290 static lpBosKeyCreate_t lpBosKeyCreate = NULL;
291 static lpBosKeyDelete_t lpBosKeyDelete = NULL;
292 static lpBosKeyGetBegin_t lpBosKeyGetBegin = NULL;
293 static lpBosKeyGetDone_t lpBosKeyGetDone = NULL;
294 static lpBosKeyGetNext_t lpBosKeyGetNext = NULL;
295 static lpBosCellSet_t lpBosCellSet = NULL;
296 static lpBosCellGet_t lpBosCellGet = NULL;
297 static lpBosHostCreate_t lpBosHostCreate = NULL;
298 static lpBosHostDelete_t lpBosHostDelete = NULL;
299 static lpBosHostGetBegin_t lpBosHostGetBegin = NULL;
300 static lpBosHostGetDone_t lpBosHostGetDone = NULL;
301 static lpBosHostGetNext_t lpBosHostGetNext = NULL;
302 static lpBosExecutableCreate_t lpBosExecutableCreate = NULL;
303 static lpBosExecutableRevert_t lpBosExecutableRevert = NULL;
304 static lpBosExecutableTimestampGet_t lpBosExecutableTimestampGet = NULL;
305 static lpBosExecutablePrune_t lpBosExecutablePrune = NULL;
306 static lpBosExecutableRestartTimeSet_t lpBosExecutableRestartTimeSet = NULL;
307 static lpBosExecutableRestartTimeGet_t lpBosExecutableRestartTimeGet = NULL;
308 static lpBosLogGet_t lpBosLogGet = NULL;
309 static lpBosAuthSet_t lpBosAuthSet = NULL;
310 static lpBosCommandExecute_t lpBosCommandExecute = NULL;
311 static lpBosSalvage_t lpBosSalvage = NULL;
313 static lpKasServerOpen_t lpKasServerOpen = NULL;
314 static lpKasServerClose_t lpKasServerClose = NULL;
315 static lpKasServerStatsGet_t lpKasServerStatsGet = NULL;
316 static lpKasServerDebugGet_t lpKasServerDebugGet = NULL;
317 static lpKasServerRandomKeyGet_t lpKasServerRandomKeyGet = NULL;
318 static lpKasStringToKey_t lpKasStringToKey = NULL;
319 static lpKasPrincipalCreate_t lpKasPrincipalCreate = NULL;
320 static lpKasPrincipalDelete_t lpKasPrincipalDelete = NULL;
321 static lpKasPrincipalGet_t lpKasPrincipalGet = NULL;
322 static lpKasPrincipalGetBegin_t lpKasPrincipalGetBegin = NULL;
323 static lpKasPrincipalGetNext_t lpKasPrincipalGetNext = NULL;
324 static lpKasPrincipalGetDone_t lpKasPrincipalGetDone = NULL;
325 static lpKasPrincipalKeySet_t lpKasPrincipalKeySet = NULL;
326 static lpKasPrincipalLockStatusGet_t lpKasPrincipalLockStatusGet = NULL;
327 static lpKasPrincipalUnlock_t lpKasPrincipalUnlock = NULL;
328 static lpKasPrincipalFieldsSet_t lpKasPrincipalFieldsSet = NULL;
330 static lpPtsGroupMemberAdd_t lpPtsGroupMemberAdd = NULL;
331 static lpPtsGroupOwnerChange_t lpPtsGroupOwnerChange = NULL;
332 static lpPtsGroupCreate_t lpPtsGroupCreate = NULL;
333 static lpPtsGroupGet_t lpPtsGroupGet = NULL;
334 static lpPtsGroupDelete_t lpPtsGroupDelete = NULL;
335 static lpPtsGroupMaxGet_t lpPtsGroupMaxGet = NULL;
336 static lpPtsGroupMaxSet_t lpPtsGroupMaxSet = NULL;
337 static lpPtsGroupMemberListBegin_t lpPtsGroupMemberListBegin = NULL;
338 static lpPtsGroupMemberListNext_t lpPtsGroupMemberListNext = NULL;
339 static lpPtsGroupMemberListDone_t lpPtsGroupMemberListDone = NULL;
340 static lpPtsGroupMemberRemove_t lpPtsGroupMemberRemove = NULL;
341 static lpPtsGroupRename_t lpPtsGroupRename = NULL;
342 static lpPtsGroupModify_t lpPtsGroupModify = NULL;
343 static lpPtsUserCreate_t lpPtsUserCreate = NULL;
344 static lpPtsUserDelete_t lpPtsUserDelete = NULL;
345 static lpPtsUserGet_t lpPtsUserGet = NULL;
346 static lpPtsUserRename_t lpPtsUserRename = NULL;
347 static lpPtsUserModify_t lpPtsUserModify = NULL;
348 static lpPtsUserMaxGet_t lpPtsUserMaxGet = NULL;
349 static lpPtsUserMaxSet_t lpPtsUserMaxSet = NULL;
350 static lpPtsUserMemberListBegin_t lpPtsUserMemberListBegin = NULL;
351 static lpPtsUserMemberListNext_t lpPtsUserMemberListNext = NULL;
352 static lpPtsUserMemberListDone_t lpPtsUserMemberListDone = NULL;
353 static lpPtsOwnedGroupListBegin_t lpPtsOwnedGroupListBegin = NULL;
354 static lpPtsOwnedGroupListNext_t lpPtsOwnedGroupListNext = NULL;
355 static lpPtsOwnedGroupListDone_t lpPtsOwnedGroupListDone = NULL;
357 static lpClientTokenGetExisting_t lpClientTokenGetExisting = NULL;
358 static lpClientCellOpen_t lpClientCellOpen = NULL;
359 static lpClientCellClose_t lpClientCellClose = NULL;
360 static lpClientLocalCellGet_t lpClientLocalCellGet = NULL;
361 static lpClientAFSServerGet_t lpClientAFSServerGet = NULL;
362 static lpClientAFSServerGetBegin_t lpClientAFSServerGetBegin = NULL;
363 static lpClientAFSServerGetNext_t lpClientAFSServerGetNext = NULL;
364 static lpClientAFSServerGetDone_t lpClientAFSServerGetDone = NULL;
365 static lpClientInit_t lpClientInit = NULL;
367 static lpUtilDatabaseServerGetBegin_t lpUtilDatabaseServerGetBegin = NULL;
368 static lpUtilDatabaseServerGetNext_t lpUtilDatabaseServerGetNext = NULL;
369 static lpUtilDatabaseServerGetDone_t lpUtilDatabaseServerGetDone = NULL;
377 * PROTOTYPES _________________________________________________________________
381 BOOL Worker_LoadLibraries (ULONG *pStatus);
382 void Worker_FreeLibraries (void);
384 DWORD Worker_PerformTask (WORKERTASK wtask, LPWORKERPACKET lpwp);
388 * ROUTINES ___________________________________________________________________
392 BOOL Worker_Initialize (ULONG *pStatus)
394 static BOOL fInitialized = FALSE;
398 fInitialized = Worker_LoadLibraries (pStatus);
405 BOOL Worker_DoTask (WORKERTASK wtask, LPWORKERPACKET lpwp, ULONG *pStatus)
407 if (!Worker_Initialize (pStatus))
412 status = Worker_PerformTask (wtask, lpwp);
414 status = ERROR_UNEXP_NET_ERR;
418 return (status == 0) ? TRUE : FALSE;
422 DWORD Worker_PerformTask (WORKERTASK wtask, LPWORKERPACKET lpwp)
424 afs_status_t status = 0;
428 case wtaskVosBackupVolumeCreate:
430 if ((*lpVosBackupVolumeCreate)(lpwp->wpVosBackupVolumeCreate.hCell, NULL, lpwp->wpVosBackupVolumeCreate.idVolume, &status))
435 case wtaskVosBackupVolumeCreateMultiple:
437 LPSTR pszPrefixA = StringToAnsi (lpwp->wpVosBackupVolumeCreateMultiple.pszPrefix);
439 unsigned int *pPartition;
440 if (*(pPartition = (unsigned int *)&lpwp->wpVosBackupVolumeCreateMultiple.idPartition) == NO_PARTITION)
443 if ((*lpVosBackupVolumeCreateMultiple)(lpwp->wpVosBackupVolumeCreateMultiple.hCell, lpwp->wpVosBackupVolumeCreateMultiple.hServer, NULL, pPartition, pszPrefixA, (lpwp->wpVosBackupVolumeCreateMultiple.fExclude) ? VOS_EXCLUDE : VOS_INCLUDE, &status))
446 FreeString (pszPrefixA, lpwp->wpVosBackupVolumeCreateMultiple.pszPrefix);
450 case wtaskVosPartitionGet:
452 if ((*lpVosPartitionGet)(lpwp->wpVosPartitionGet.hCell, lpwp->wpVosPartitionGet.hServer, NULL, lpwp->wpVosPartitionGet.idPartition, &lpwp->wpVosPartitionGet.Data, &status))
457 case wtaskVosPartitionGetBegin:
459 if ((*lpVosPartitionGetBegin)(lpwp->wpVosPartitionGetBegin.hCell, lpwp->wpVosPartitionGetBegin.hServer, NULL, &lpwp->wpVosPartitionGetBegin.hEnum, &status))
462 lpwp->wpVosPartitionGetBegin.hEnum = NULL;
466 case wtaskVosPartitionGetNext:
468 if ((*lpVosPartitionGetNext)(lpwp->wpVosPartitionGetNext.hEnum, &lpwp->wpVosPartitionGetNext.Data, &status))
473 case wtaskVosPartitionGetDone:
475 if ((*lpVosPartitionGetDone)(lpwp->wpVosPartitionGetDone.hEnum, &status))
480 case wtaskVosServerOpen:
482 LPSTR pszServerA = StringToAnsi (lpwp->wpVosServerOpen.pszServer);
484 if ((*lpVosServerOpen)(lpwp->wpVosServerOpen.hCell, pszServerA, &lpwp->wpVosServerOpen.hServer, &status))
487 FreeString (pszServerA, lpwp->wpVosServerOpen.pszServer);
491 case wtaskVosServerClose:
493 if ((*lpVosServerClose)(lpwp->wpVosServerClose.hServer, &status))
498 case wtaskVosServerSync:
500 unsigned int *pPartition;
501 if (*(pPartition = (unsigned int *)&lpwp->wpVosServerSync.idPartition) == NO_PARTITION)
504 if ((*lpVosServerSync)(lpwp->wpVosServerSync.hCell, lpwp->wpVosServerSync.hServer, NULL, pPartition, (lpwp->wpVosServerSync.fForce) ? VOS_FORCE : VOS_NORMAL, &status))
509 case wtaskVosFileServerAddressChange:
513 AfsClass_AddressToInt (&oldAddress, &lpwp->wpVosFileServerAddressChange.addrOld);
514 AfsClass_AddressToInt (&newAddress, &lpwp->wpVosFileServerAddressChange.addrNew);
516 if ((*lpVosFileServerAddressChange)(lpwp->wpVosFileServerAddressChange.hCell, NULL, oldAddress, newAddress, &status))
521 case wtaskVosFileServerAddressRemove:
524 AfsClass_AddressToInt (&oldAddress, &lpwp->wpVosFileServerAddressRemove.addr);
526 if ((*lpVosFileServerAddressRemove)(lpwp->wpVosFileServerAddressRemove.hCell, NULL, oldAddress, &status))
529 if (status == VL_NOENT) // RemoveAddress attempted on pre-AFS3.5?
534 case wtaskVosFileServerGetBegin:
536 if ((*lpVosFileServerGetBegin)(lpwp->wpVosFileServerGetBegin.hCell, NULL, &lpwp->wpVosFileServerGetBegin.hEnum, &status))
541 case wtaskVosFileServerGetNext:
543 if ((*lpVosFileServerGetNext)(lpwp->wpVosFileServerGetNext.hEnum, &lpwp->wpVosFileServerGetNext.Entry, &status))
548 case wtaskVosFileServerGetDone:
550 if ((*lpVosFileServerGetDone)(lpwp->wpVosFileServerGetDone.hEnum, &status))
555 case wtaskVosServerTransactionStatusGetBegin:
557 if ((*lpVosServerTransactionStatusGetBegin)(lpwp->wpVosServerTransactionStatusGetBegin.hCell, lpwp->wpVosServerTransactionStatusGetBegin.hServer, NULL, &lpwp->wpVosServerTransactionStatusGetBegin.hEnum, &status))
562 case wtaskVosServerTransactionStatusGetNext:
564 if ((*lpVosServerTransactionStatusGetNext)(lpwp->wpVosServerTransactionStatusGetNext.hEnum, &lpwp->wpVosServerTransactionStatusGetNext.Data, &status))
569 case wtaskVosServerTransactionStatusGetDone:
571 if ((*lpVosServerTransactionStatusGetDone)(lpwp->wpVosServerTransactionStatusGetDone.hEnum, &status))
576 case wtaskVosVLDBGet:
578 if ((*lpVosVLDBGet)(lpwp->wpVosVLDBGet.hCell, NULL, &lpwp->wpVosVLDBGet.idVolume, NULL, &lpwp->wpVosVLDBGet.Data, &status))
583 case wtaskVosVLDBGetBegin:
585 unsigned int *pPartition;
586 if (*(pPartition = (unsigned int *)&lpwp->wpVosVLDBGetBegin.idPartition) == NO_PARTITION)
589 if ((*lpVosVLDBGetBegin)(lpwp->wpVosVLDBGetBegin.hCell, lpwp->wpVosVLDBGetBegin.hServer, NULL, pPartition, &lpwp->wpVosVLDBGetBegin.hEnum, &status))
594 case wtaskVosVLDBGetNext:
596 if ((*lpVosVLDBGetNext)(lpwp->wpVosVLDBGetNext.hEnum, &lpwp->wpVosVLDBGetNext.Data, &status))
601 case wtaskVosVLDBGetDone:
603 if ((*lpVosVLDBGetDone)(lpwp->wpVosVLDBGetDone.hEnum, &status))
608 case wtaskVosVLDBEntryRemove:
610 unsigned int *pPartition;
611 if (*(pPartition = (unsigned int *)&lpwp->wpVosVLDBEntryRemove.idPartition) == NO_PARTITION)
614 unsigned int *pVolume;
615 if (*(pVolume = (unsigned int *)&lpwp->wpVosVLDBEntryRemove.idVolume) == NO_VOLUME)
618 if ((*lpVosVLDBEntryRemove)(lpwp->wpVosVLDBEntryRemove.hCell, lpwp->wpVosVLDBEntryRemove.hServer, NULL, pPartition, pVolume, &status))
623 case wtaskVosVLDBEntryLock:
625 if ((*lpVosVLDBEntryLock)(lpwp->wpVosVLDBEntryLock.hCell, NULL, lpwp->wpVosVLDBEntryLock.idVolume, &status))
630 case wtaskVosVLDBEntryUnlock:
632 if (lpwp->wpVosVLDBEntryUnlock.idVolume == NO_VOLUME)
634 unsigned int *pPartition;
635 if (*(pPartition = (unsigned int *)&lpwp->wpVosVLDBEntryUnlock.idPartition) == NO_PARTITION)
638 if ((*lpVosVLDBUnlock)(lpwp->wpVosVLDBEntryUnlock.hCell, lpwp->wpVosVLDBEntryUnlock.hServer, NULL, pPartition, &status))
643 if ((*lpVosVLDBEntryUnlock)(lpwp->wpVosVLDBEntryUnlock.hCell, NULL, lpwp->wpVosVLDBEntryUnlock.idVolume, &status))
649 case wtaskVosVLDBReadOnlySiteCreate:
651 if ((*lpVosVLDBReadOnlySiteCreate)(lpwp->wpVosVLDBReadOnlySiteCreate.hCell, lpwp->wpVosVLDBReadOnlySiteCreate.hServer, NULL, lpwp->wpVosVLDBReadOnlySiteCreate.idPartition, lpwp->wpVosVLDBReadOnlySiteCreate.idVolume, &status))
656 case wtaskVosVLDBReadOnlySiteDelete:
658 if ((*lpVosVLDBReadOnlySiteDelete)(lpwp->wpVosVLDBReadOnlySiteDelete.hCell, lpwp->wpVosVLDBReadOnlySiteDelete.hServer, NULL, lpwp->wpVosVLDBReadOnlySiteDelete.idPartition, lpwp->wpVosVLDBReadOnlySiteDelete.idVolume, &status))
663 case wtaskVosVLDBSync:
665 unsigned int *pPartition;
666 if (*(pPartition = (unsigned int *)&lpwp->wpVosVLDBSync.idPartition) == NO_PARTITION)
669 if ((*lpVosVLDBSync)(lpwp->wpVosVLDBSync.hCell, lpwp->wpVosVLDBSync.hServer, NULL, pPartition, ((lpwp->wpVosVLDBSync.fForce) ? VOS_FORCE : VOS_NORMAL), &status))
674 case wtaskVosVolumeCreate:
676 LPSTR pszVolumeA = StringToAnsi (lpwp->wpVosVolumeCreate.pszVolume);
678 if ((*lpVosVolumeCreate)(lpwp->wpVosVolumeCreate.hCell, lpwp->wpVosVolumeCreate.hServer, NULL, lpwp->wpVosVolumeCreate.idPartition, pszVolumeA, (unsigned int)lpwp->wpVosVolumeCreate.ckQuota, (unsigned int *)&lpwp->wpVosVolumeCreate.idVolume, &status))
681 FreeString (pszVolumeA, lpwp->wpVosVolumeCreate.pszVolume);
685 case wtaskVosVolumeDelete:
687 if ((*lpVosVolumeDelete)(lpwp->wpVosVolumeDelete.hCell, lpwp->wpVosVolumeDelete.hServer, NULL, lpwp->wpVosVolumeDelete.idPartition, lpwp->wpVosVolumeDelete.idVolume, &status))
692 case wtaskVosVolumeRename:
694 LPSTR pszVolumeA = StringToAnsi (lpwp->wpVosVolumeRename.pszVolume);
696 if ((*lpVosVolumeRename)(lpwp->wpVosVolumeRename.hCell, NULL, lpwp->wpVosVolumeRename.idVolume, pszVolumeA, &status))
699 FreeString (pszVolumeA, lpwp->wpVosVolumeRename.pszVolume);
703 case wtaskVosVolumeDump:
705 LPSTR pszFilenameA = StringToAnsi (lpwp->wpVosVolumeDump.pszFilename);
706 ULONG timeStart = AfsClass_SystemTimeToUnixTime (&lpwp->wpVosVolumeDump.stStart);
708 if ((*lpVosVolumeDump)(lpwp->wpVosVolumeDump.hCell, lpwp->wpVosVolumeDump.hServer, NULL, (unsigned int *)&lpwp->wpVosVolumeDump.idPartition, lpwp->wpVosVolumeDump.idVolume, timeStart, pszFilenameA, &status))
711 FreeString (pszFilenameA, lpwp->wpVosVolumeDump.pszFilename);
715 case wtaskVosVolumeRestore:
717 LPSTR pszVolumeA = StringToAnsi (lpwp->wpVosVolumeRestore.pszVolume);
718 LPSTR pszFilenameA = StringToAnsi (lpwp->wpVosVolumeRestore.pszFilename);
719 vos_volumeRestoreType_t Type = (lpwp->wpVosVolumeRestore.fIncremental) ? VOS_RESTORE_INCREMENTAL : VOS_RESTORE_FULL;
721 unsigned int *pVolume;
722 if (*(pVolume = (unsigned int *)&lpwp->wpVosVolumeRestore.idVolume) == NO_VOLUME)
725 if ((*lpVosVolumeRestore)(lpwp->wpVosVolumeRestore.hCell, lpwp->wpVosVolumeRestore.hServer, NULL, lpwp->wpVosVolumeRestore.idPartition, pVolume, pszVolumeA, pszFilenameA, Type, &status))
728 FreeString (pszFilenameA, lpwp->wpVosVolumeRestore.pszFilename);
729 FreeString (pszVolumeA, lpwp->wpVosVolumeRestore.pszVolume);
733 case wtaskVosVolumeOnline:
735 if ((*lpVosVolumeOnline)(lpwp->wpVosVolumeOnline.hServer, NULL, lpwp->wpVosVolumeOnline.idPartition, lpwp->wpVosVolumeOnline.idVolume, lpwp->wpVosVolumeOnline.csecSleep, lpwp->wpVosVolumeOnline.Status, &status))
740 case wtaskVosVolumeOffline:
742 if ((*lpVosVolumeOffline)(lpwp->wpVosVolumeOffline.hServer, NULL, lpwp->wpVosVolumeOffline.idPartition, lpwp->wpVosVolumeOffline.idVolume, &status))
747 case wtaskVosVolumeGet:
749 if ((*lpVosVolumeGet)(lpwp->wpVosVolumeGet.hCell, lpwp->wpVosVolumeGet.hServer, NULL, lpwp->wpVosVolumeGet.idPartition, lpwp->wpVosVolumeGet.idVolume, &lpwp->wpVosVolumeGet.Data, &status))
754 case wtaskVosVolumeGetBegin:
756 if ((lpVosVolumeGetBegin)(lpwp->wpVosVolumeGetBegin.hCell, lpwp->wpVosVolumeGetBegin.hServer, NULL, lpwp->wpVosVolumeGetBegin.idPartition, &lpwp->wpVosVolumeGetBegin.hEnum, &status))
761 case wtaskVosVolumeGetNext:
763 if ((*lpVosVolumeGetNext)(lpwp->wpVosVolumeGetNext.hEnum, &lpwp->wpVosVolumeGetNext.Data, &status))
768 case wtaskVosVolumeGetDone:
770 if ((*lpVosVolumeGetDone)(lpwp->wpVosVolumeGetDone.hEnum, &status))
775 case wtaskVosVolumeMove:
777 if ((lpVosVolumeMove)(lpwp->wpVosVolumeMove.hCell, NULL, lpwp->wpVosVolumeMove.idVolume, lpwp->wpVosVolumeMove.hServerFrom, lpwp->wpVosVolumeMove.idPartitionFrom, lpwp->wpVosVolumeMove.hServerTo, lpwp->wpVosVolumeMove.idPartitionTo, &status))
782 case wtaskVosVolumeRelease:
784 if ((*lpVosVolumeRelease)(lpwp->wpVosVolumeRelease.hCell, NULL, lpwp->wpVosVolumeRelease.idVolume, ((lpwp->wpVosVolumeRelease.fForce) ? VOS_FORCE : VOS_NORMAL), &status))
789 case wtaskVosVolumeZap:
791 if ((*lpVosVolumeZap)(lpwp->wpVosVolumeZap.hCell, lpwp->wpVosVolumeZap.hServer, NULL, lpwp->wpVosVolumeZap.idPartition, lpwp->wpVosVolumeZap.idVolume, ((lpwp->wpVosVolumeZap.fForce) ? VOS_FORCE : VOS_NORMAL), &status))
796 case wtaskVosPartitionNameToId:
798 LPSTR pszPartitionA = StringToAnsi (lpwp->wpVosPartitionNameToId.pszPartition);
800 if ((*lpVosPartitionNameToId)(pszPartitionA, (unsigned int *)&lpwp->wpVosPartitionNameToId.idPartition, &status))
803 FreeString (pszPartitionA, lpwp->wpVosPartitionNameToId.pszPartition);
807 case wtaskVosPartitionIdToName:
809 char szPartitionA[ cchNAME ];
810 if ((*lpVosPartitionIdToName)(lpwp->wpVosPartitionIdToName.idPartition, szPartitionA, &status))
812 CopyAnsiToString (lpwp->wpVosPartitionIdToName.pszPartition, szPartitionA);
818 case wtaskVosVolumeQuotaChange:
820 if ((*lpVosVolumeQuotaChange)(lpwp->wpVosVolumeQuotaChange.hCell, lpwp->wpVosVolumeQuotaChange.hServer, NULL, lpwp->wpVosVolumeQuotaChange.idPartition, lpwp->wpVosVolumeQuotaChange.idVolume, (unsigned int)lpwp->wpVosVolumeQuotaChange.ckQuota, &status))
825 case wtaskBosServerOpen:
827 LPSTR pszServerA = StringToAnsi (lpwp->wpBosServerOpen.pszServer);
829 if ((*lpBosServerOpen)(lpwp->wpBosServerOpen.hCell, pszServerA, &lpwp->wpBosServerOpen.hServer, &status))
832 FreeString (pszServerA, lpwp->wpBosServerOpen.pszServer);
836 case wtaskBosServerClose:
838 if ((*lpBosServerClose)(lpwp->wpBosServerClose.hServer, &status))
843 case wtaskBosProcessCreate:
845 LPSTR pszServiceA = StringToAnsi (lpwp->wpBosProcessCreate.pszService);
846 LPSTR pszCommandA = StringToAnsi (lpwp->wpBosProcessCreate.pszCommand);
847 LPSTR pszTimeCronA = StringToAnsi (lpwp->wpBosProcessCreate.pszTimeCron);
848 LPSTR pszNotifierA = StringToAnsi (lpwp->wpBosProcessCreate.pszNotifier);
850 bos_ProcessType_t processType;
851 switch (lpwp->wpBosProcessCreate.type)
854 processType = BOS_PROCESS_FS;
856 case SERVICETYPE_CRON:
857 processType = BOS_PROCESS_CRON;
860 case SERVICETYPE_SIMPLE:
861 processType = BOS_PROCESS_SIMPLE;
865 if ((*lpBosProcessCreate)(lpwp->wpBosProcessCreate.hServer, pszServiceA, processType, pszCommandA, pszTimeCronA, pszNotifierA, &status))
868 FreeString (pszNotifierA, lpwp->wpBosProcessCreate.pszNotifier);
869 FreeString (pszTimeCronA, lpwp->wpBosProcessCreate.pszTimeCron);
870 FreeString (pszCommandA, lpwp->wpBosProcessCreate.pszCommand);
871 FreeString (pszServiceA, lpwp->wpBosProcessCreate.pszService);
875 case wtaskBosProcessDelete:
877 LPSTR pszServiceA = StringToAnsi (lpwp->wpBosProcessDelete.pszService);
879 if ((*lpBosProcessDelete)(lpwp->wpBosProcessDelete.hServer, pszServiceA, &status))
882 FreeString (pszServiceA, lpwp->wpBosProcessDelete.pszService);
886 case wtaskBosProcessExecutionStateGet:
888 LPSTR pszServiceA = StringToAnsi (lpwp->wpBosProcessExecutionStateGet.pszService);
889 char szAuxStatusA[BOS_MAX_NAME_LEN] = "";
891 bos_ProcessExecutionState_t processState = BOS_PROCESS_STOPPED;
892 if ((*lpBosProcessExecutionStateGet)(lpwp->wpBosProcessExecutionStateGet.hServer, pszServiceA, &processState, szAuxStatusA, &status))
896 if (lpwp->wpBosProcessExecutionStateGet.pszAuxStatus != NULL)
898 CopyAnsiToString (lpwp->wpBosProcessExecutionStateGet.pszAuxStatus, szAuxStatusA);
901 switch (processState)
903 case BOS_PROCESS_RUNNING:
904 lpwp->wpBosProcessExecutionStateGet.state = SERVICESTATE_RUNNING;
906 case BOS_PROCESS_STARTING:
907 lpwp->wpBosProcessExecutionStateGet.state = SERVICESTATE_STARTING;
909 case BOS_PROCESS_STOPPING:
910 lpwp->wpBosProcessExecutionStateGet.state = SERVICESTATE_STOPPING;
913 case BOS_PROCESS_STOPPED:
914 lpwp->wpBosProcessExecutionStateGet.state = SERVICESTATE_STOPPED;
919 FreeString (pszServiceA, lpwp->wpBosProcessExecutionStateGet.pszService);
923 case wtaskBosProcessExecutionStateSet:
925 LPSTR pszServiceA = StringToAnsi (lpwp->wpBosProcessExecutionStateSet.pszService);
927 bos_ProcessExecutionState_t processState;
928 switch (lpwp->wpBosProcessExecutionStateSet.state)
930 case SERVICESTATE_STOPPING:
931 case SERVICESTATE_STOPPED:
932 processState = BOS_PROCESS_STOPPED;
935 case SERVICESTATE_STARTING:
936 case SERVICESTATE_RUNNING:
937 processState = BOS_PROCESS_RUNNING;
941 if ((*lpBosProcessExecutionStateSet)(lpwp->wpBosProcessExecutionStateSet.hServer, pszServiceA, processState, &status))
944 FreeString (pszServiceA, lpwp->wpBosProcessExecutionStateSet.pszService);
948 case wtaskBosProcessExecutionStateSetTemporary:
950 LPSTR pszServiceA = StringToAnsi (lpwp->wpBosProcessExecutionStateSetTemporary.pszService);
952 bos_ProcessExecutionState_t processState;
953 switch (lpwp->wpBosProcessExecutionStateSetTemporary.state)
955 case SERVICESTATE_STOPPING:
956 case SERVICESTATE_STOPPED:
957 processState = BOS_PROCESS_STOPPED;
960 case SERVICESTATE_STARTING:
961 case SERVICESTATE_RUNNING:
962 processState = BOS_PROCESS_RUNNING;
966 if ((*lpBosProcessExecutionStateSetTemporary)(lpwp->wpBosProcessExecutionStateSetTemporary.hServer, pszServiceA, processState, &status))
969 FreeString (pszServiceA, lpwp->wpBosProcessExecutionStateSetTemporary.pszService);
973 case wtaskBosProcessNameGetBegin:
975 if (!(*lpBosProcessNameGetBegin)(lpwp->wpBosProcessNameGetBegin.hServer, &lpwp->wpBosProcessNameGetBegin.hEnum, &status))
976 lpwp->wpBosProcessNameGetBegin.hEnum = 0;
982 case wtaskBosProcessNameGetDone:
984 if ((*lpBosProcessNameGetDone)(lpwp->wpBosProcessNameGetDone.hEnum, &status))
989 case wtaskBosProcessNameGetNext:
991 char szServiceA[ 256 ];
992 if (!(*lpBosProcessNameGetNext)(lpwp->wpBosProcessNameGetNext.hEnum, szServiceA, &status))
993 lpwp->wpBosProcessNameGetNext.pszService[0] = TEXT('\0');
997 CopyAnsiToString (lpwp->wpBosProcessNameGetNext.pszService, szServiceA);
1002 case wtaskBosProcessInfoGet:
1004 LPSTR pszServiceA = StringToAnsi (lpwp->wpBosProcessInfoGet.pszService);
1005 memset (&lpwp->wpBosProcessInfoGet.ss, 0x00, sizeof(SERVICESTATUS));
1007 bos_ProcessType_t processType;
1008 bos_ProcessInfo_t processInfo;
1009 if ((*lpBosProcessInfoGet)(lpwp->wpBosProcessInfoGet.hServer, pszServiceA, &processType, &processInfo, &status))
1013 switch (processType)
1015 case BOS_PROCESS_FS:
1016 lpwp->wpBosProcessInfoGet.ss.type = SERVICETYPE_FS;
1018 case BOS_PROCESS_SIMPLE:
1019 lpwp->wpBosProcessInfoGet.ss.type = SERVICETYPE_SIMPLE;
1021 case BOS_PROCESS_CRON:
1022 lpwp->wpBosProcessInfoGet.ss.type = SERVICETYPE_CRON;
1026 AfsClass_UnixTimeToSystemTime (&lpwp->wpBosProcessInfoGet.ss.timeLastStart, processInfo.processStartTime);
1027 AfsClass_UnixTimeToSystemTime (&lpwp->wpBosProcessInfoGet.ss.timeLastStop, processInfo.processExitTime);
1028 AfsClass_UnixTimeToSystemTime (&lpwp->wpBosProcessInfoGet.ss.timeLastFail, processInfo.processExitErrorTime);
1029 lpwp->wpBosProcessInfoGet.ss.nStarts = processInfo.numberProcessStarts;
1030 lpwp->wpBosProcessInfoGet.ss.dwErrLast = processInfo.processErrorCode;
1031 lpwp->wpBosProcessInfoGet.ss.dwSigLast = processInfo.processErrorSignal;
1034 FreeString (pszServiceA, lpwp->wpBosProcessInfoGet.pszService);
1038 case wtaskBosProcessParameterGetBegin:
1040 LPSTR pszServiceA = StringToAnsi (lpwp->wpBosProcessParameterGetBegin.pszService);
1042 if (!(*lpBosProcessParameterGetBegin)(lpwp->wpBosProcessParameterGetBegin.hServer, pszServiceA, &lpwp->wpBosProcessParameterGetBegin.hEnum, &status))
1043 lpwp->wpBosProcessParameterGetBegin.hEnum = 0;
1047 FreeString (pszServiceA, lpwp->wpBosProcessParameterGetBegin.pszService);
1051 case wtaskBosProcessParameterGetDone:
1053 if ((*lpBosProcessParameterGetDone)(lpwp->wpBosProcessParameterGetDone.hEnum, &status))
1058 case wtaskBosProcessParameterGetNext:
1060 char szParamA[ 1024 ];
1062 if (!(*lpBosProcessParameterGetNext)(lpwp->wpBosProcessParameterGetNext.hEnum, szParamA, &status))
1063 lpwp->wpBosProcessParameterGetNext.pszParam[0] = TEXT('\0');
1067 CopyAnsiToString (lpwp->wpBosProcessParameterGetNext.pszParam, szParamA);
1072 case wtaskBosProcessNotifierGet:
1074 LPSTR pszServiceA = StringToAnsi (lpwp->wpBosProcessNotifierGet.pszService);
1075 char szNotifierA[ 1024 ];
1077 if ((*lpBosProcessNotifierGet)(lpwp->wpBosProcessNotifierGet.hServer, pszServiceA, szNotifierA, &status))
1080 CopyAnsiToString (lpwp->wpBosProcessNotifierGet.pszNotifier, szNotifierA);
1083 FreeString (pszServiceA, lpwp->wpBosProcessNotifierGet.pszService);
1087 case wtaskBosProcessRestart:
1089 LPSTR pszServiceA = StringToAnsi (lpwp->wpBosProcessRestart.pszService);
1090 if ((*lpBosProcessRestart)(lpwp->wpBosProcessRestart.hServer, pszServiceA, &status))
1093 FreeString (pszServiceA, lpwp->wpBosProcessRestart.pszService);
1097 case wtaskBosProcessAllStop:
1099 if ((*lpBosProcessAllStop)(lpwp->wpBosProcessAllStop.hServer, &status))
1104 case wtaskBosProcessAllStart:
1106 if ((*lpBosProcessAllStart)(lpwp->wpBosProcessAllStart.hServer, &status))
1111 case wtaskBosProcessAllWaitStop:
1113 if ((*lpBosProcessAllWaitStop)(lpwp->wpBosProcessAllWaitStop.hServer, &status))
1118 case wtaskBosProcessAllStopAndRestart:
1120 bos_RestartBosServer_t bBosToo;
1121 bBosToo = (lpwp->wpBosProcessAllStopAndRestart.fRestartBOS) ? BOS_RESTART_BOS_SERVER : BOS_DONT_RESTART_BOS_SERVER;
1123 if ((*lpBosProcessAllStopAndRestart)(lpwp->wpBosProcessAllStopAndRestart.hServer, bBosToo, &status))
1128 case wtaskBosAdminCreate:
1130 LPSTR pszAdminA = StringToAnsi (lpwp->wpBosAdminCreate.pszAdmin);
1131 if ((*lpBosAdminCreate)(lpwp->wpBosAdminCreate.hServer, pszAdminA, &status))
1133 FreeString (pszAdminA, lpwp->wpBosAdminCreate.pszAdmin);
1137 case wtaskBosAdminDelete:
1139 LPSTR pszAdminA = StringToAnsi (lpwp->wpBosAdminDelete.pszAdmin);
1140 if ((*lpBosAdminDelete)(lpwp->wpBosAdminDelete.hServer, pszAdminA, &status))
1142 FreeString (pszAdminA, lpwp->wpBosAdminDelete.pszAdmin);
1146 case wtaskBosAdminGetBegin:
1148 if (!(*lpBosAdminGetBegin)(lpwp->wpBosAdminGetBegin.hServer, &lpwp->wpBosAdminGetBegin.hEnum, &status))
1149 lpwp->wpBosAdminGetBegin.hEnum = 0;
1155 case wtaskBosAdminGetDone:
1157 if ((*lpBosAdminGetDone)(lpwp->wpBosAdminGetDone.hEnum, &status))
1162 case wtaskBosAdminGetNext:
1164 char szAdminA[ 1024 ];
1165 if (!(*lpBosAdminGetNext)(lpwp->wpBosAdminGetNext.hEnum, szAdminA, &status))
1166 lpwp->wpBosAdminGetNext.pszAdmin[0] = TEXT('\0');
1170 CopyAnsiToString (lpwp->wpBosAdminGetNext.pszAdmin, szAdminA);
1175 case wtaskBosKeyCreate:
1177 kas_encryptionKey_t key;
1178 memcpy (key.key, lpwp->wpBosKeyCreate.key.key, ENCRYPTIONKEY_LEN);
1180 if ((*lpBosKeyCreate)(lpwp->wpBosKeyCreate.hServer, lpwp->wpBosKeyCreate.keyVersion, &key, &status))
1185 case wtaskBosKeyDelete:
1187 if ((*lpBosKeyDelete)(lpwp->wpBosKeyDelete.hServer, lpwp->wpBosKeyDelete.keyVersion, &status))
1192 case wtaskBosKeyGetBegin:
1194 if (!(*lpBosKeyGetBegin)(lpwp->wpBosKeyGetBegin.hServer, &lpwp->wpBosKeyGetBegin.hEnum, &status))
1195 lpwp->wpBosKeyGetBegin.hEnum = 0;
1201 case wtaskBosKeyGetDone:
1203 if ((*lpBosKeyGetDone)(lpwp->wpBosKeyGetDone.hEnum, &status))
1208 case wtaskBosKeyGetNext:
1210 bos_KeyInfo_t keyInfo;
1212 if ((*lpBosKeyGetNext)(lpwp->wpBosKeyGetNext.hEnum, &keyInfo, &status))
1215 lpwp->wpBosKeyGetNext.keyVersion = keyInfo.keyVersionNumber;
1216 memcpy (lpwp->wpBosKeyGetNext.keyData.key, keyInfo.key.key, ENCRYPTIONKEY_LEN);
1217 AfsClass_UnixTimeToSystemTime (&lpwp->wpBosKeyGetNext.keyInfo.timeLastModification, keyInfo.keyStatus.lastModificationDate);
1218 lpwp->wpBosKeyGetNext.keyInfo.timeLastModification.wMilliseconds = keyInfo.keyStatus.lastModificationMicroSeconds;
1219 lpwp->wpBosKeyGetNext.keyInfo.dwChecksum = (DWORD)keyInfo.keyStatus.checkSum;
1224 case wtaskBosCellSet:
1226 LPSTR pszCellA = StringToAnsi (lpwp->wpBosCellSet.pszCell);
1227 if ((*lpBosCellSet)(lpwp->wpBosCellSet.hServer, pszCellA, &status))
1229 FreeString (pszCellA, lpwp->wpBosCellSet.pszCell);
1233 case wtaskBosCellGet:
1235 char szCellA[ 256 ];
1236 if ((*lpBosCellGet)(lpwp->wpBosCellGet.hServer, szCellA, &status))
1239 CopyAnsiToString (lpwp->wpBosCellGet.pszCell, szCellA);
1244 case wtaskBosHostCreate:
1246 LPSTR pszServerA = StringToAnsi (lpwp->wpBosHostCreate.pszServer);
1247 if ((*lpBosHostCreate)(lpwp->wpBosHostCreate.hServer, pszServerA, &status))
1249 FreeString (pszServerA, lpwp->wpBosHostCreate.pszServer);
1253 case wtaskBosHostDelete:
1255 LPSTR pszServerA = StringToAnsi (lpwp->wpBosHostDelete.pszServer);
1256 if ((*lpBosHostDelete)(lpwp->wpBosHostDelete.hServer, pszServerA, &status))
1258 FreeString (pszServerA, lpwp->wpBosHostDelete.pszServer);
1262 case wtaskBosHostGetBegin:
1264 if (!(*lpBosHostGetBegin)(lpwp->wpBosHostGetBegin.hServer, &lpwp->wpBosHostGetBegin.hEnum, &status))
1265 lpwp->wpBosHostGetBegin.hEnum = 0;
1271 case wtaskBosHostGetDone:
1273 if ((*lpBosHostGetDone)(lpwp->wpBosHostGetDone.hEnum, &status))
1278 case wtaskBosHostGetNext:
1280 char szServerA[ 256 ];
1281 if (!(*lpBosHostGetNext)(lpwp->wpBosHostGetNext.hEnum, szServerA, &status))
1282 lpwp->wpBosHostGetNext.pszServer[0] = TEXT('\0');
1286 CopyAnsiToString (lpwp->wpBosHostGetNext.pszServer, szServerA);
1291 case wtaskBosExecutableCreate:
1293 LPSTR pszLocalA = StringToAnsi (lpwp->wpBosExecutableCreate.pszLocal);
1294 LPSTR pszRemoteDirA = StringToAnsi (lpwp->wpBosExecutableCreate.pszRemoteDir);
1296 if ((*lpBosExecutableCreate)(lpwp->wpBosExecutableCreate.hServer, pszLocalA, pszRemoteDirA, &status))
1299 FreeString (pszRemoteDirA, lpwp->wpBosExecutableCreate.pszRemoteDir);
1300 FreeString (pszLocalA, lpwp->wpBosExecutableCreate.pszLocal);
1304 case wtaskBosExecutableRevert:
1306 LPSTR pszFilenameA = StringToAnsi (lpwp->wpBosExecutableRevert.pszFilename);
1308 if ((*lpBosExecutableRevert)(lpwp->wpBosExecutableRevert.hServer, pszFilenameA, &status))
1311 FreeString (pszFilenameA, lpwp->wpBosExecutableRevert.pszFilename);
1315 case wtaskBosExecutableTimestampGet:
1317 LPSTR pszFilenameA = StringToAnsi (lpwp->wpBosExecutableTimestampGet.pszFilename);
1319 unsigned long timeNew = 0;
1320 unsigned long timeOld = 0;
1321 unsigned long timeBak = 0;
1322 if ((*lpBosExecutableTimestampGet)(lpwp->wpBosExecutableTimestampGet.hServer, pszFilenameA, &timeNew, &timeOld, &timeBak, &status))
1325 AfsClass_UnixTimeToSystemTime (&lpwp->wpBosExecutableTimestampGet.timeNew, timeNew);
1326 AfsClass_UnixTimeToSystemTime (&lpwp->wpBosExecutableTimestampGet.timeOld, timeOld);
1327 AfsClass_UnixTimeToSystemTime (&lpwp->wpBosExecutableTimestampGet.timeBak, timeBak);
1330 FreeString (pszFilenameA, lpwp->wpBosExecutableTimestampGet.pszFilename);
1334 case wtaskBosExecutablePrune:
1336 bos_Prune_t oldFiles = (lpwp->wpBosExecutablePrune.fPruneOld) ? BOS_PRUNE : BOS_DONT_PRUNE;
1337 bos_Prune_t bakFiles = (lpwp->wpBosExecutablePrune.fPruneBak) ? BOS_PRUNE : BOS_DONT_PRUNE;
1338 bos_Prune_t coreFiles = (lpwp->wpBosExecutablePrune.fPruneCore) ? BOS_PRUNE : BOS_DONT_PRUNE;
1340 if ((*lpBosExecutablePrune)(lpwp->wpBosExecutablePrune.hServer, oldFiles, bakFiles, coreFiles, &status))
1345 case wtaskBosExecutableRestartTimeSet:
1347 bos_RestartTime_t time;
1348 AfsClass_SystemTimeToRestartTime (&time, lpwp->wpBosExecutableRestartTimeSet.fWeeklyRestart, &lpwp->wpBosExecutableRestartTimeSet.timeWeekly);
1349 if ((*lpBosExecutableRestartTimeSet)(lpwp->wpBosExecutableRestartTimeSet.hServer, BOS_RESTART_WEEKLY, time, &status))
1351 AfsClass_SystemTimeToRestartTime (&time, lpwp->wpBosExecutableRestartTimeSet.fDailyRestart, &lpwp->wpBosExecutableRestartTimeSet.timeDaily);
1352 if ((*lpBosExecutableRestartTimeSet)(lpwp->wpBosExecutableRestartTimeSet.hServer, BOS_RESTART_DAILY, time, &status))
1358 case wtaskBosExecutableRestartTimeGet:
1360 lpwp->wpBosExecutableRestartTimeGet.fDailyRestart = FALSE;
1361 lpwp->wpBosExecutableRestartTimeGet.fWeeklyRestart = FALSE;
1363 bos_RestartTime_t time;
1364 if ((*lpBosExecutableRestartTimeGet)(lpwp->wpBosExecutableRestartTimeGet.hServer, BOS_RESTART_WEEKLY, &time, &status))
1366 AfsClass_RestartTimeToSystemTime (&lpwp->wpBosExecutableRestartTimeGet.fWeeklyRestart, &lpwp->wpBosExecutableRestartTimeGet.timeWeekly, &time);
1368 if ((*lpBosExecutableRestartTimeGet)(lpwp->wpBosExecutableRestartTimeGet.hServer, BOS_RESTART_DAILY, &time, &status))
1370 AfsClass_RestartTimeToSystemTime (&lpwp->wpBosExecutableRestartTimeGet.fDailyRestart, &lpwp->wpBosExecutableRestartTimeGet.timeDaily, &time);
1377 case wtaskBosLogGet:
1379 LPSTR pszLogNameA = StringToAnsi (lpwp->wpBosLogGet.pszLogName);
1381 LPSTR pszLogDataA = NULL;
1382 unsigned long cchAllocated = 0;
1383 unsigned long cchRequired = 1024;
1386 if (cchAllocated < cchRequired)
1390 FreeString (pszLogDataA);
1393 if ((pszLogDataA = AllocateAnsi (cchRequired)) == 0)
1395 cchAllocated = cchRequired;
1398 cchRequired = cchAllocated;
1399 if ((*lpBosLogGet)(lpwp->wpBosLogGet.hServer, pszLogNameA, &cchRequired, pszLogDataA, &status))
1401 lpwp->wpBosLogGet.pszLogData = AllocateString (cchRequired+1);
1402 CopyAnsiToString (lpwp->wpBosLogGet.pszLogData, pszLogDataA, cchRequired);
1403 lpwp->wpBosLogGet.pszLogData[ cchRequired ] = TEXT('\0');
1407 } while (cchRequired > cchAllocated);
1410 FreeString (pszLogDataA);
1411 FreeString (pszLogNameA, lpwp->wpBosLogGet.pszLogName);
1415 case wtaskBosAuthSet:
1417 bos_Auth_t auth = (lpwp->wpBosAuthSet.fEnableAuth) ? BOS_AUTH_REQUIRED : BOS_NO_AUTH;
1418 if ((*lpBosAuthSet)(lpwp->wpBosAuthSet.hServer, auth, &status))
1423 case wtaskBosCommandExecute:
1425 LPSTR pszCommandA = StringToAnsi (lpwp->wpBosCommandExecute.pszCommand);
1426 if ((*lpBosCommandExecute)(lpwp->wpBosCommandExecute.hServer, pszCommandA, &status))
1428 FreeString (pszCommandA, lpwp->wpBosCommandExecute.pszCommand);
1432 case wtaskBosSalvage:
1434 LPSTR pszAggregateA = StringToAnsi (lpwp->wpBosSalvage.pszAggregate);
1435 LPSTR pszFilesetA = StringToAnsi (lpwp->wpBosSalvage.pszFileset);
1436 LPSTR pszTempDirA = StringToAnsi (lpwp->wpBosSalvage.pszTempDir);
1437 LPSTR pszLogFileA = StringToAnsi (lpwp->wpBosSalvage.pszLogFile);
1439 vos_force_t force = (lpwp->wpBosSalvage.fForce) ? VOS_FORCE : VOS_NORMAL;
1440 bos_SalvageDamagedVolumes_t salvageDamagedVolumes = (lpwp->wpBosSalvage.fReadonly) ? BOS_DONT_SALVAGE_DAMAGED_VOLUMES : BOS_SALVAGE_DAMAGED_VOLUMES;
1441 bos_WriteInodes_t writeInodes = (lpwp->wpBosSalvage.fLogInodes) ? BOS_SALVAGE_WRITE_INODES : BOS_SALVAGE_DONT_WRITE_INODES;
1442 bos_WriteRootInodes_t writeRootInodes = (lpwp->wpBosSalvage.fLogRootInodes) ? BOS_SALVAGE_WRITE_ROOT_INODES : BOS_SALVAGE_DONT_WRITE_ROOT_INODES;
1443 bos_ForceDirectory_t forceDirectory = (lpwp->wpBosSalvage.fRebuildDirs) ? BOS_SALVAGE_FORCE_DIRECTORIES : BOS_SALVAGE_DONT_FORCE_DIRECTORIES;
1444 bos_ForceBlockRead_t forceBlockRead = (lpwp->wpBosSalvage.fReadBlocks) ? BOS_SALVAGE_FORCE_BLOCK_READS : BOS_SALVAGE_DONT_FORCE_BLOCK_READS;
1446 if ((*lpBosSalvage)(lpwp->wpBosSalvage.hCell, lpwp->wpBosSalvage.hServer, pszAggregateA, pszFilesetA, max(lpwp->wpBosSalvage.nProcesses,1), pszTempDirA, pszLogFileA, force, salvageDamagedVolumes, writeInodes, writeRootInodes, forceDirectory, forceBlockRead, &status))
1449 FreeString (pszLogFileA, lpwp->wpBosSalvage.pszLogFile);
1450 FreeString (pszTempDirA, lpwp->wpBosSalvage.pszTempDir);
1451 FreeString (pszFilesetA, lpwp->wpBosSalvage.pszFileset);
1452 FreeString (pszAggregateA, lpwp->wpBosSalvage.pszAggregate);
1456 case wtaskKasServerOpen:
1458 if ((*lpKasServerOpen)(lpwp->wpKasServerOpen.hCell, (const char **)lpwp->wpKasServerOpen.apszServers, &lpwp->wpKasServerOpen.hServer, &status))
1463 case wtaskKasServerClose:
1465 if ((*lpKasServerClose)(lpwp->wpKasServerClose.hServer, &status))
1470 case wtaskKasServerRandomKeyGet:
1472 kas_encryptionKey_t key;
1473 if ((*lpKasServerRandomKeyGet)(lpwp->wpKasServerRandomKeyGet.hCell, lpwp->wpKasServerRandomKeyGet.hServer, &key, &status))
1476 memcpy (&lpwp->wpKasServerRandomKeyGet.key.key, &key.key, ENCRYPTIONKEY_LEN);
1481 case wtaskKasStringToKey:
1483 LPSTR pszCellA = StringToAnsi (lpwp->wpKasStringToKey.pszCell);
1484 LPSTR pszStringA = StringToAnsi (lpwp->wpKasStringToKey.pszString);
1486 kas_encryptionKey_t key;
1487 if ((*lpKasStringToKey)(pszCellA, pszStringA, &key, &status))
1490 memcpy (&lpwp->wpKasStringToKey.key.key, &key.key, ENCRYPTIONKEY_LEN);
1493 FreeString (pszStringA, lpwp->wpKasStringToKey.pszString);
1494 FreeString (pszCellA, lpwp->wpKasStringToKey.pszCell);
1498 case wtaskKasPrincipalCreate:
1500 kas_identity_t Identity;
1501 CopyStringToAnsi (Identity.principal, lpwp->wpKasPrincipalCreate.pszPrincipal);
1502 CopyStringToAnsi (Identity.instance, lpwp->wpKasPrincipalCreate.pszInstance);
1504 LPSTR pszPasswordA = StringToAnsi (lpwp->wpKasPrincipalCreate.pszPassword);
1506 if ((*lpKasPrincipalCreate)(lpwp->wpKasPrincipalCreate.hCell, lpwp->wpKasPrincipalCreate.hServer, &Identity, pszPasswordA, &status))
1509 FreeString (pszPasswordA, lpwp->wpKasPrincipalCreate.pszPassword);
1513 case wtaskKasPrincipalDelete:
1515 kas_identity_t Identity;
1516 CopyStringToAnsi (Identity.principal, lpwp->wpKasPrincipalDelete.pszPrincipal);
1517 CopyStringToAnsi (Identity.instance, lpwp->wpKasPrincipalDelete.pszInstance);
1519 if ((*lpKasPrincipalDelete)(lpwp->wpKasPrincipalDelete.hCell, lpwp->wpKasPrincipalDelete.hServer, &Identity, &status))
1524 case wtaskKasPrincipalGet:
1526 kas_identity_t Identity;
1527 CopyStringToAnsi (Identity.principal, lpwp->wpKasPrincipalGet.pszPrincipal);
1528 CopyStringToAnsi (Identity.instance, lpwp->wpKasPrincipalGet.pszInstance);
1530 if ((*lpKasPrincipalGet)(lpwp->wpKasPrincipalGet.hCell, lpwp->wpKasPrincipalGet.hServer, &Identity, &lpwp->wpKasPrincipalGet.Data, &status))
1535 case wtaskKasPrincipalGetBegin:
1537 if ((*lpKasPrincipalGetBegin)(lpwp->wpKasPrincipalGetBegin.hCell, lpwp->wpKasPrincipalGetBegin.hServer, &lpwp->wpKasPrincipalGetBegin.hEnum, &status))
1542 case wtaskKasPrincipalGetNext:
1544 kas_identity_t Identity;
1545 if ((*lpKasPrincipalGetNext)(lpwp->wpKasPrincipalGetNext.hEnum, &Identity, &status))
1547 CopyAnsiToString (lpwp->wpKasPrincipalGetNext.pszPrincipal, Identity.principal);
1548 CopyAnsiToString (lpwp->wpKasPrincipalGetNext.pszInstance, Identity.instance);
1554 case wtaskKasPrincipalGetDone:
1556 if ((*lpKasPrincipalGetDone)(lpwp->wpKasPrincipalGetDone.hEnum, &status))
1561 case wtaskKasPrincipalKeySet:
1563 kas_identity_t Identity;
1564 CopyStringToAnsi (Identity.principal, lpwp->wpKasPrincipalKeySet.pszPrincipal);
1565 CopyStringToAnsi (Identity.instance, lpwp->wpKasPrincipalKeySet.pszInstance);
1567 kas_encryptionKey_t Key;
1568 memcpy (&Key.key, &lpwp->wpKasPrincipalKeySet.key, ENCRYPTIONKEY_LEN);
1570 if ((*lpKasPrincipalKeySet)(lpwp->wpKasPrincipalKeySet.hCell, lpwp->wpKasPrincipalKeySet.hServer, &Identity, lpwp->wpKasPrincipalKeySet.keyVersion, &Key, &status))
1575 case wtaskKasPrincipalLockStatusGet:
1577 kas_identity_t Identity;
1578 CopyStringToAnsi (Identity.principal, lpwp->wpKasPrincipalLockStatusGet.pszPrincipal);
1579 CopyStringToAnsi (Identity.instance, lpwp->wpKasPrincipalLockStatusGet.pszInstance);
1582 if ((*lpKasPrincipalLockStatusGet)(lpwp->wpKasPrincipalLockStatusGet.hCell, lpwp->wpKasPrincipalLockStatusGet.hServer, &Identity, &date, &status))
1584 AfsClass_UnixTimeToSystemTime (&lpwp->wpKasPrincipalLockStatusGet.timeUnlocked, date);
1590 case wtaskKasPrincipalUnlock:
1592 kas_identity_t Identity;
1593 CopyStringToAnsi (Identity.principal, lpwp->wpKasPrincipalUnlock.pszPrincipal);
1594 CopyStringToAnsi (Identity.instance, lpwp->wpKasPrincipalUnlock.pszInstance);
1596 if ((*lpKasPrincipalUnlock)(lpwp->wpKasPrincipalUnlock.hCell, lpwp->wpKasPrincipalUnlock.hServer, &Identity, &status))
1601 case wtaskKasPrincipalFieldsSet:
1603 kas_identity_t Identity;
1604 CopyStringToAnsi (Identity.principal, lpwp->wpKasPrincipalFieldsSet.pszPrincipal);
1605 CopyStringToAnsi (Identity.instance, lpwp->wpKasPrincipalFieldsSet.pszInstance);
1607 ULONG timeExpires = AfsClass_SystemTimeToUnixTime (&lpwp->wpKasPrincipalFieldsSet.timeExpires);
1608 if (!timeExpires) // account never expires?
1609 timeExpires = (ULONG)-1;
1611 kas_admin_t isAdmin = (lpwp->wpKasPrincipalFieldsSet.fIsAdmin) ? KAS_ADMIN : NO_KAS_ADMIN;
1612 kas_tgs_t grantTickets = (lpwp->wpKasPrincipalFieldsSet.fGrantTickets) ? TGS : NO_TGS;
1613 kas_enc_t canEncrypt = (lpwp->wpKasPrincipalFieldsSet.fCanEncrypt) ? ENCRYPT : NO_ENCRYPT;
1614 kas_cpw_t canChangePassword = (lpwp->wpKasPrincipalFieldsSet.fCanChangePassword) ? CHANGE_PASSWORD : NO_CHANGE_PASSWORD;
1615 kas_rpw_t passwordReuse = (lpwp->wpKasPrincipalFieldsSet.fCanReusePasswords) ? REUSE_PASSWORD : NO_REUSE_PASSWORD;
1617 if ((*lpKasPrincipalFieldsSet)(lpwp->wpKasPrincipalFieldsSet.hCell, lpwp->wpKasPrincipalFieldsSet.hServer, &Identity,
1622 (unsigned int *)&timeExpires,
1623 (unsigned int *)&lpwp->wpKasPrincipalFieldsSet.csecTicketLifetime,
1624 (unsigned int *)&lpwp->wpKasPrincipalFieldsSet.cdayPwExpires,
1626 (unsigned int *)&lpwp->wpKasPrincipalFieldsSet.nFailureAttempts,
1627 (unsigned int *)&lpwp->wpKasPrincipalFieldsSet.csecFailedLoginLockTime,
1635 case wtaskPtsGroupMemberAdd:
1637 LPSTR pszGroupA = StringToAnsi (lpwp->wpPtsGroupMemberAdd.pszGroup);
1638 LPSTR pszUserA = StringToAnsi (lpwp->wpPtsGroupMemberAdd.pszUser);
1640 if ((*lpPtsGroupMemberAdd)(lpwp->wpPtsGroupMemberAdd.hCell, pszUserA, pszGroupA, &status))
1643 FreeString (pszGroupA, lpwp->wpPtsGroupMemberAdd.pszGroup);
1644 FreeString (pszUserA, lpwp->wpPtsGroupMemberAdd.pszUser);
1648 case wtaskPtsGroupOwnerChange:
1650 LPSTR pszGroupA = StringToAnsi (lpwp->wpPtsGroupOwnerChange.pszGroup);
1651 LPSTR pszOwnerA = StringToAnsi (lpwp->wpPtsGroupOwnerChange.pszOwner);
1653 if ((*lpPtsGroupOwnerChange)(lpwp->wpPtsGroupOwnerChange.hCell, pszGroupA, pszOwnerA, &status))
1656 FreeString (pszOwnerA, lpwp->wpPtsGroupOwnerChange.pszOwner);
1657 FreeString (pszGroupA, lpwp->wpPtsGroupOwnerChange.pszGroup);
1661 case wtaskPtsGroupCreate:
1663 LPSTR pszGroupA = StringToAnsi (lpwp->wpPtsGroupCreate.pszGroup);
1664 LPSTR pszOwnerA = StringToAnsi (lpwp->wpPtsGroupCreate.pszOwner);
1666 if ((*lpPtsGroupCreate)(lpwp->wpPtsGroupCreate.hCell, pszGroupA, pszOwnerA, &lpwp->wpPtsGroupCreate.idGroup, &status))
1669 FreeString (pszOwnerA, lpwp->wpPtsGroupCreate.pszOwner);
1670 FreeString (pszGroupA, lpwp->wpPtsGroupCreate.pszGroup);
1674 case wtaskPtsGroupGet:
1676 LPSTR pszGroupA = StringToAnsi (lpwp->wpPtsGroupGet.pszGroup);
1678 if ((*lpPtsGroupGet)(lpwp->wpPtsGroupGet.hCell, pszGroupA, &lpwp->wpPtsGroupGet.Entry, &status))
1681 FreeString (pszGroupA, lpwp->wpPtsGroupGet.pszGroup);
1685 case wtaskPtsGroupDelete:
1687 LPSTR pszGroupA = StringToAnsi (lpwp->wpPtsGroupDelete.pszGroup);
1689 if ((*lpPtsGroupDelete)(lpwp->wpPtsGroupDelete.hCell, pszGroupA, &status))
1692 FreeString (pszGroupA, lpwp->wpPtsGroupDelete.pszGroup);
1696 case wtaskPtsGroupMaxGet:
1698 if ((*lpPtsGroupMaxGet)(lpwp->wpPtsGroupMaxGet.hCell, &lpwp->wpPtsGroupMaxGet.idGroupMax, &status))
1703 case wtaskPtsGroupMaxSet:
1705 if ((*lpPtsGroupMaxSet)(lpwp->wpPtsGroupMaxSet.hCell, lpwp->wpPtsGroupMaxSet.idGroupMax, &status))
1710 case wtaskPtsGroupMemberListBegin:
1712 LPSTR pszGroupA = StringToAnsi (lpwp->wpPtsGroupMemberListBegin.pszGroup);
1714 if ((*lpPtsGroupMemberListBegin)(lpwp->wpPtsGroupMemberListBegin.hCell, pszGroupA, &lpwp->wpPtsGroupMemberListBegin.hEnum, &status))
1717 FreeString (pszGroupA, lpwp->wpPtsGroupMemberListBegin.pszGroup);
1721 case wtaskPtsGroupMemberListNext:
1723 char szMemberA[ cchNAME ];
1724 if ((*lpPtsGroupMemberListNext)(lpwp->wpPtsGroupMemberListNext.hEnum, szMemberA, &status))
1726 CopyAnsiToString (lpwp->wpPtsGroupMemberListNext.pszMember, szMemberA);
1732 case wtaskPtsGroupMemberListDone:
1734 if ((*lpPtsGroupMemberListDone)(lpwp->wpPtsGroupMemberListDone.hEnum, &status))
1739 case wtaskPtsGroupMemberRemove:
1741 LPSTR pszGroupA = StringToAnsi (lpwp->wpPtsGroupMemberRemove.pszGroup);
1742 LPSTR pszUserA = StringToAnsi (lpwp->wpPtsGroupMemberRemove.pszUser);
1744 if ((*lpPtsGroupMemberRemove)(lpwp->wpPtsGroupMemberRemove.hCell, pszUserA, pszGroupA, &status))
1747 FreeString (pszUserA, lpwp->wpPtsGroupMemberRemove.pszUser);
1748 FreeString (pszGroupA, lpwp->wpPtsGroupMemberRemove.pszGroup);
1752 case wtaskPtsGroupRename:
1754 LPSTR pszGroupA = StringToAnsi (lpwp->wpPtsGroupRename.pszGroup);
1755 LPSTR pszNewNameA = StringToAnsi (lpwp->wpPtsGroupRename.pszNewName);
1757 if ((*lpPtsGroupRename)(lpwp->wpPtsGroupRename.hCell, pszGroupA, pszNewNameA, &status))
1760 FreeString (pszNewNameA, lpwp->wpPtsGroupRename.pszNewName);
1761 FreeString (pszGroupA, lpwp->wpPtsGroupRename.pszGroup);
1765 case wtaskPtsGroupModify:
1767 LPSTR pszGroupA = StringToAnsi (lpwp->wpPtsGroupModify.pszGroup);
1769 if ((*lpPtsGroupModify)(lpwp->wpPtsGroupModify.hCell, pszGroupA, &lpwp->wpPtsGroupModify.Delta, &status))
1772 FreeString (pszGroupA, lpwp->wpPtsGroupModify.pszGroup);
1776 case wtaskPtsUserCreate:
1778 LPSTR pszUserA = StringToAnsi (lpwp->wpPtsUserCreate.pszUser);
1780 if ((*lpPtsUserCreate)(lpwp->wpPtsUserCreate.hCell, pszUserA, &lpwp->wpPtsUserCreate.idUser, &status))
1783 FreeString (pszUserA, lpwp->wpPtsUserCreate.pszUser);
1787 case wtaskPtsUserDelete:
1789 LPSTR pszUserA = StringToAnsi (lpwp->wpPtsUserDelete.pszUser);
1791 if ((*lpPtsUserDelete)(lpwp->wpPtsUserDelete.hCell, pszUserA, &status))
1794 FreeString (pszUserA, lpwp->wpPtsUserDelete.pszUser);
1798 case wtaskPtsUserGet:
1800 LPSTR pszUserA = StringToAnsi (lpwp->wpPtsUserGet.pszUser);
1802 if ((*lpPtsUserGet)(lpwp->wpPtsUserGet.hCell, pszUserA, &lpwp->wpPtsUserGet.Entry, &status))
1805 FreeString (pszUserA, lpwp->wpPtsUserGet.pszUser);
1809 case wtaskPtsUserRename:
1811 LPSTR pszUserA = StringToAnsi (lpwp->wpPtsUserRename.pszUser);
1812 LPSTR pszNewNameA = StringToAnsi (lpwp->wpPtsUserRename.pszNewName);
1814 if ((*lpPtsUserRename)(lpwp->wpPtsUserRename.hCell, pszUserA, pszNewNameA, &status))
1817 FreeString (pszNewNameA, lpwp->wpPtsUserRename.pszNewName);
1818 FreeString (pszUserA, lpwp->wpPtsUserRename.pszUser);
1822 case wtaskPtsUserModify:
1824 LPSTR pszUserA = StringToAnsi (lpwp->wpPtsUserModify.pszUser);
1826 if ((*lpPtsUserModify)(lpwp->wpPtsUserModify.hCell, pszUserA, &lpwp->wpPtsUserModify.Delta, &status))
1829 FreeString (pszUserA, lpwp->wpPtsUserModify.pszUser);
1833 case wtaskPtsUserMaxGet:
1835 if ((*lpPtsUserMaxGet)(lpwp->wpPtsUserMaxGet.hCell, &lpwp->wpPtsUserMaxGet.idUserMax, &status))
1840 case wtaskPtsUserMaxSet:
1842 if ((*lpPtsUserMaxSet)(lpwp->wpPtsUserMaxSet.hCell, lpwp->wpPtsUserMaxSet.idUserMax, &status))
1847 case wtaskPtsUserMemberListBegin:
1849 LPSTR pszUserA = StringToAnsi (lpwp->wpPtsUserMemberListBegin.pszUser);
1851 if ((*lpPtsUserMemberListBegin)(lpwp->wpPtsUserMemberListBegin.hCell, pszUserA, &lpwp->wpPtsUserMemberListBegin.hEnum, &status))
1854 FreeString (pszUserA, lpwp->wpPtsUserMemberListBegin.pszUser);
1858 case wtaskPtsUserMemberListNext:
1860 char szGroupA[ cchNAME ];
1861 if ((*lpPtsUserMemberListNext)(lpwp->wpPtsUserMemberListNext.hEnum, szGroupA, &status))
1863 CopyAnsiToString (lpwp->wpPtsUserMemberListNext.pszGroup, szGroupA);
1869 case wtaskPtsUserMemberListDone:
1871 if ((*lpPtsUserMemberListDone)(lpwp->wpPtsUserMemberListDone.hEnum, &status))
1876 case wtaskPtsOwnedGroupListBegin:
1878 LPSTR pszOwnerA = StringToAnsi (lpwp->wpPtsOwnedGroupListBegin.pszOwner);
1880 if ((*lpPtsOwnedGroupListBegin)(lpwp->wpPtsOwnedGroupListBegin.hCell, pszOwnerA, &lpwp->wpPtsOwnedGroupListBegin.hEnum, &status))
1883 FreeString (pszOwnerA, lpwp->wpPtsOwnedGroupListBegin.pszOwner);
1887 case wtaskPtsOwnedGroupListNext:
1889 LPSTR pszGroupA = StringToAnsi (lpwp->wpPtsOwnedGroupListNext.pszGroup);
1891 if ((*lpPtsOwnedGroupListNext)(lpwp->wpPtsOwnedGroupListNext.hEnum, pszGroupA, &status))
1894 FreeString (pszGroupA, lpwp->wpPtsOwnedGroupListNext.pszGroup);
1898 case wtaskPtsOwnedGroupListDone:
1900 if ((*lpPtsOwnedGroupListDone)(lpwp->wpPtsOwnedGroupListDone.hEnum, &status))
1905 case wtaskClientTokenGetExisting:
1907 LPTSTR pszCellA = StringToAnsi (lpwp->wpClientTokenGetExisting.pszCell);
1909 if ((*lpClientTokenGetExisting)(pszCellA, &lpwp->wpClientTokenGetExisting.hCreds, &status))
1912 FreeString (pszCellA, lpwp->wpClientTokenGetExisting.pszCell);
1916 case wtaskClientCellOpen:
1918 LPTSTR pszCellA = StringToAnsi (lpwp->wpClientCellOpen.pszCell);
1920 if ((*lpClientCellOpen)(pszCellA, lpwp->wpClientCellOpen.hCreds, &lpwp->wpClientCellOpen.hCell, &status))
1923 FreeString (pszCellA, lpwp->wpClientCellOpen.pszCell);
1927 case wtaskClientCellClose:
1929 if ((*lpClientCellClose)(lpwp->wpClientCellClose.hCell, &status))
1934 case wtaskClientLocalCellGet:
1936 char szCellA[ cchNAME ];
1937 if ((*lpClientLocalCellGet)(szCellA, &status))
1940 CopyAnsiToString (lpwp->wpClientLocalCellGet.pszCell, szCellA);
1945 case wtaskClientAFSServerGet:
1947 LPTSTR pszServerA = StringToAnsi (lpwp->wpClientAFSServerGet.pszServer);
1949 if ((*lpClientAFSServerGet)(lpwp->wpClientAFSServerGet.hCell, pszServerA, &lpwp->wpClientAFSServerGet.Entry, &status))
1952 FreeString (pszServerA, lpwp->wpClientAFSServerGet.pszServer);
1956 case wtaskClientAFSServerGetBegin:
1958 if ((*lpClientAFSServerGetBegin)(lpwp->wpClientAFSServerGetBegin.hCell, &lpwp->wpClientAFSServerGetBegin.hEnum, &status))
1963 case wtaskClientAFSServerGetNext:
1965 if ((*lpClientAFSServerGetNext)(lpwp->wpClientAFSServerGetNext.hEnum, &lpwp->wpClientAFSServerGetNext.Entry, &status))
1970 case wtaskClientAFSServerGetDone:
1972 if ((*lpClientAFSServerGetDone)(lpwp->wpClientAFSServerGetDone.hEnum, &status))
1977 case wtaskUtilDatabaseServerGetBegin:
1979 LPSTR pszCellA = StringToAnsi (lpwp->wpUtilDatabaseServerGetBegin.pszCell);
1981 if ((*lpUtilDatabaseServerGetBegin)(pszCellA, &lpwp->wpUtilDatabaseServerGetBegin.hEnum, &status))
1984 FreeString (pszCellA, lpwp->wpUtilDatabaseServerGetBegin.pszCell);
1988 case wtaskUtilDatabaseServerGetNext:
1991 if ((*lpUtilDatabaseServerGetNext)(lpwp->wpUtilDatabaseServerGetNext.hEnum, &Address, &status))
1993 AfsClass_IntToAddress (&lpwp->wpUtilDatabaseServerGetNext.Address, Address);
1999 case wtaskUtilDatabaseServerGetDone:
2001 if ((*lpUtilDatabaseServerGetDone)(lpwp->wpUtilDatabaseServerGetDone.hEnum, &status))
2009 return (DWORD)status;
2013 BOOL Worker_LoadLibraries (ULONG *pStatus)
2015 if ((hiVOS = LoadLibrary (cszAFSVOSDLL)) == NULL)
2018 *pStatus = GetLastError();
2021 if ((hiBOS = LoadLibrary (cszAFSBOSDLL)) == NULL)
2024 *pStatus = GetLastError();
2027 if ((hiKAS = LoadLibrary (cszAFSKASDLL)) == NULL)
2030 *pStatus = GetLastError();
2033 if ((hiPTS = LoadLibrary (cszAFSPTSDLL)) == NULL)
2036 *pStatus = GetLastError();
2039 if ((hiUtil = LoadLibrary (cszAFSUTILDLL)) == NULL)
2042 *pStatus = GetLastError();
2045 if ((hiClient = LoadLibrary (cszAFSCLIENTDLL)) == NULL)
2048 *pStatus = GetLastError();
2052 lpVosBackupVolumeCreate = (lpVosBackupVolumeCreate_t)GetProcAddress (hiVOS, "vos_BackupVolumeCreate");
2053 lpVosBackupVolumeCreateMultiple = (lpVosBackupVolumeCreateMultiple_t)GetProcAddress (hiVOS, "vos_BackupVolumeCreateMultiple");
2054 lpVosPartitionGet = (lpVosPartitionGet_t)GetProcAddress (hiVOS, "vos_PartitionGet");
2055 lpVosPartitionGetBegin = (lpVosPartitionGetBegin_t)GetProcAddress (hiVOS, "vos_PartitionGetBegin");
2056 lpVosPartitionGetNext = (lpVosPartitionGetNext_t)GetProcAddress (hiVOS, "vos_PartitionGetNext");
2057 lpVosPartitionGetDone = (lpVosPartitionGetDone_t)GetProcAddress (hiVOS, "vos_PartitionGetDone");
2058 lpVosServerOpen = (lpVosServerOpen_t)GetProcAddress (hiVOS, "vos_ServerOpen");
2059 lpVosServerClose = (lpVosServerClose_t)GetProcAddress (hiVOS, "vos_ServerClose");
2060 lpVosServerSync = (lpVosServerSync_t)GetProcAddress (hiVOS, "vos_ServerSync");
2061 lpVosFileServerAddressChange = (lpVosFileServerAddressChange_t)GetProcAddress (hiVOS, "vos_FileServerAddressChange");
2062 lpVosFileServerAddressRemove = (lpVosFileServerAddressRemove_t)GetProcAddress (hiVOS, "vos_FileServerAddressRemove");
2063 lpVosFileServerGetBegin = (lpVosFileServerGetBegin_t)GetProcAddress (hiVOS, "vos_FileServerGetBegin");
2064 lpVosFileServerGetNext = (lpVosFileServerGetNext_t)GetProcAddress (hiVOS, "vos_FileServerGetNext");
2065 lpVosFileServerGetDone = (lpVosFileServerGetDone_t)GetProcAddress (hiVOS, "vos_FileServerGetDone");
2066 lpVosServerTransactionStatusGetBegin = (lpVosServerTransactionStatusGetBegin_t)GetProcAddress (hiVOS, "vos_ServerTransactionStatusGetBegin");
2067 lpVosServerTransactionStatusGetNext = (lpVosServerTransactionStatusGetNext_t)GetProcAddress (hiVOS, "vos_ServerTransactionStatusGetNext");
2068 lpVosServerTransactionStatusGetDone = (lpVosServerTransactionStatusGetDone_t)GetProcAddress (hiVOS, "vos_ServerTransactionStatusGetDone");
2069 lpVosVLDBGet = (lpVosVLDBGet_t)GetProcAddress (hiVOS, "vos_VLDBGet");
2070 lpVosVLDBGetBegin = (lpVosVLDBGetBegin_t)GetProcAddress (hiVOS, "vos_VLDBGetBegin");
2071 lpVosVLDBGetNext = (lpVosVLDBGetNext_t)GetProcAddress (hiVOS, "vos_VLDBGetNext");
2072 lpVosVLDBGetDone = (lpVosVLDBGetDone_t)GetProcAddress (hiVOS, "vos_VLDBGetDone");
2073 lpVosVLDBEntryRemove = (lpVosVLDBEntryRemove_t)GetProcAddress (hiVOS, "vos_VLDBEntryRemove");
2074 lpVosVLDBUnlock = (lpVosVLDBUnlock_t)GetProcAddress (hiVOS, "vos_VLDBUnlock");
2075 lpVosVLDBEntryLock = (lpVosVLDBEntryLock_t)GetProcAddress (hiVOS, "vos_VLDBEntryLock");
2076 lpVosVLDBEntryUnlock = (lpVosVLDBEntryUnlock_t)GetProcAddress (hiVOS, "vos_VLDBEntryUnlock");
2077 lpVosVLDBReadOnlySiteCreate = (lpVosVLDBReadOnlySiteCreate_t)GetProcAddress (hiVOS, "vos_VLDBReadOnlySiteCreate");
2078 lpVosVLDBReadOnlySiteDelete = (lpVosVLDBReadOnlySiteDelete_t)GetProcAddress (hiVOS, "vos_VLDBReadOnlySiteDelete");
2079 lpVosVLDBSync = (lpVosVLDBSync_t)GetProcAddress (hiVOS, "vos_VLDBSync");
2080 lpVosVolumeCreate = (lpVosVolumeCreate_t)GetProcAddress (hiVOS, "vos_VolumeCreate");
2081 lpVosVolumeDelete = (lpVosVolumeDelete_t)GetProcAddress (hiVOS, "vos_VolumeDelete");
2082 lpVosVolumeRename = (lpVosVolumeRename_t)GetProcAddress (hiVOS, "vos_VolumeRename");
2083 lpVosVolumeDump = (lpVosVolumeDump_t)GetProcAddress (hiVOS, "vos_VolumeDump");
2084 lpVosVolumeRestore = (lpVosVolumeRestore_t)GetProcAddress (hiVOS, "vos_VolumeRestore");
2085 lpVosVolumeOnline = (lpVosVolumeOnline_t)GetProcAddress (hiVOS, "vos_VolumeOnline");
2086 lpVosVolumeOffline = (lpVosVolumeOffline_t)GetProcAddress (hiVOS, "vos_VolumeOffline");
2087 lpVosVolumeGet = (lpVosVolumeGet_t)GetProcAddress (hiVOS, "vos_VolumeGet");
2088 lpVosVolumeGetBegin = (lpVosVolumeGetBegin_t)GetProcAddress (hiVOS, "vos_VolumeGetBegin");
2089 lpVosVolumeGetNext = (lpVosVolumeGetNext_t)GetProcAddress (hiVOS, "vos_VolumeGetNext");
2090 lpVosVolumeGetDone = (lpVosVolumeGetDone_t)GetProcAddress (hiVOS, "vos_VolumeGetDone");
2091 lpVosVolumeMove = (lpVosVolumeMove_t)GetProcAddress (hiVOS, "vos_VolumeMove");
2092 lpVosVolumeRelease = (lpVosVolumeRelease_t)GetProcAddress (hiVOS, "vos_VolumeRelease");
2093 lpVosVolumeZap = (lpVosVolumeZap_t)GetProcAddress (hiVOS, "vos_VolumeZap");
2094 lpVosPartitionNameToId = (lpVosPartitionNameToId_t)GetProcAddress (hiVOS, "vos_PartitionNameToId");
2095 lpVosPartitionIdToName = (lpVosPartitionIdToName_t)GetProcAddress (hiVOS, "vos_PartitionIdToName");
2096 lpVosVolumeQuotaChange = (lpVosVolumeQuotaChange_t)GetProcAddress (hiVOS, "vos_VolumeQuotaChange");
2098 lpBosServerOpen = (lpBosServerOpen_t)GetProcAddress (hiBOS, "bos_ServerOpen");
2099 lpBosServerClose = (lpBosServerClose_t)GetProcAddress (hiBOS, "bos_ServerClose");
2100 lpBosProcessCreate = (lpBosProcessCreate_t)GetProcAddress (hiBOS, "bos_ProcessCreate");
2101 lpBosProcessDelete = (lpBosProcessDelete_t)GetProcAddress (hiBOS, "bos_ProcessDelete");
2102 lpBosProcessExecutionStateGet = (lpBosProcessExecutionStateGet_t)GetProcAddress (hiBOS, "bos_ProcessExecutionStateGet");
2103 lpBosProcessExecutionStateSet = (lpBosProcessExecutionStateSet_t)GetProcAddress (hiBOS, "bos_ProcessExecutionStateSet");
2104 lpBosProcessExecutionStateSetTemporary = (lpBosProcessExecutionStateSetTemporary_t)GetProcAddress (hiBOS, "bos_ProcessExecutionStateSetTemporary");
2105 lpBosProcessNameGetBegin = (lpBosProcessNameGetBegin_t)GetProcAddress (hiBOS, "bos_ProcessNameGetBegin");
2106 lpBosProcessNameGetDone = (lpBosProcessNameGetDone_t)GetProcAddress (hiBOS, "bos_ProcessNameGetDone");
2107 lpBosProcessNameGetNext = (lpBosProcessNameGetNext_t)GetProcAddress (hiBOS, "bos_ProcessNameGetNext");
2108 lpBosProcessInfoGet = (lpBosProcessInfoGet_t)GetProcAddress (hiBOS, "bos_ProcessInfoGet");
2109 lpBosProcessParameterGetBegin = (lpBosProcessParameterGetBegin_t)GetProcAddress (hiBOS, "bos_ProcessParameterGetBegin");
2110 lpBosProcessParameterGetDone = (lpBosProcessParameterGetDone_t)GetProcAddress (hiBOS, "bos_ProcessParameterGetDone");
2111 lpBosProcessParameterGetNext = (lpBosProcessParameterGetNext_t)GetProcAddress (hiBOS, "bos_ProcessParameterGetNext");
2112 lpBosProcessNotifierGet = (lpBosProcessNotifierGet_t)GetProcAddress (hiBOS, "bos_ProcessNotifierGet");
2113 lpBosProcessRestart = (lpBosProcessRestart_t)GetProcAddress (hiBOS, "bos_ProcessRestart");
2114 lpBosProcessAllStop = (lpBosProcessAllStop_t)GetProcAddress (hiBOS, "bos_ProcessAllStop");
2115 lpBosProcessAllStart = (lpBosProcessAllStart_t)GetProcAddress (hiBOS, "bos_ProcessAllStart");
2116 lpBosProcessAllWaitStop = (lpBosProcessAllWaitStop_t)GetProcAddress (hiBOS, "bos_ProcessAllWaitStop");
2117 lpBosProcessAllStopAndRestart = (lpBosProcessAllStopAndRestart_t)GetProcAddress (hiBOS, "bos_ProcessAllStopAndRestart");
2118 lpBosAdminCreate = (lpBosAdminCreate_t)GetProcAddress (hiBOS, "bos_AdminCreate");
2119 lpBosAdminDelete = (lpBosAdminDelete_t)GetProcAddress (hiBOS, "bos_AdminDelete");
2120 lpBosAdminGetBegin = (lpBosAdminGetBegin_t)GetProcAddress (hiBOS, "bos_AdminGetBegin");
2121 lpBosAdminGetDone = (lpBosAdminGetDone_t)GetProcAddress (hiBOS, "bos_AdminGetDone");
2122 lpBosAdminGetNext = (lpBosAdminGetNext_t)GetProcAddress (hiBOS, "bos_AdminGetNext");
2123 lpBosKeyCreate = (lpBosKeyCreate_t)GetProcAddress (hiBOS, "bos_KeyCreate");
2124 lpBosKeyDelete = (lpBosKeyDelete_t)GetProcAddress (hiBOS, "bos_KeyDelete");
2125 lpBosKeyGetBegin = (lpBosKeyGetBegin_t)GetProcAddress (hiBOS, "bos_KeyGetBegin");
2126 lpBosKeyGetDone = (lpBosKeyGetDone_t)GetProcAddress (hiBOS, "bos_KeyGetDone");
2127 lpBosKeyGetNext = (lpBosKeyGetNext_t)GetProcAddress (hiBOS, "bos_KeyGetNext");
2128 lpBosCellSet = (lpBosCellSet_t)GetProcAddress (hiBOS, "bos_CellSet");
2129 lpBosCellGet = (lpBosCellGet_t)GetProcAddress (hiBOS, "bos_CellGet");
2130 lpBosHostCreate = (lpBosHostCreate_t)GetProcAddress (hiBOS, "bos_HostCreate");
2131 lpBosHostDelete = (lpBosHostDelete_t)GetProcAddress (hiBOS, "bos_HostDelete");
2132 lpBosHostGetBegin = (lpBosHostGetBegin_t)GetProcAddress (hiBOS, "bos_HostGetBegin");
2133 lpBosHostGetDone = (lpBosHostGetDone_t)GetProcAddress (hiBOS, "bos_HostGetDone");
2134 lpBosHostGetNext = (lpBosHostGetNext_t)GetProcAddress (hiBOS, "bos_HostGetNext");
2135 lpBosExecutableCreate = (lpBosExecutableCreate_t)GetProcAddress (hiBOS, "bos_ExecutableCreate");
2136 lpBosExecutableRevert = (lpBosExecutableRevert_t)GetProcAddress (hiBOS, "bos_ExecutableRevert");
2137 lpBosExecutableTimestampGet = (lpBosExecutableTimestampGet_t)GetProcAddress (hiBOS, "bos_ExecutableTimestampGet");
2138 lpBosExecutablePrune = (lpBosExecutablePrune_t)GetProcAddress (hiBOS, "bos_ExecutablePrune");
2139 lpBosExecutableRestartTimeSet = (lpBosExecutableRestartTimeSet_t)GetProcAddress (hiBOS, "bos_ExecutableRestartTimeSet");
2140 lpBosExecutableRestartTimeGet = (lpBosExecutableRestartTimeGet_t)GetProcAddress (hiBOS, "bos_ExecutableRestartTimeGet");
2141 lpBosLogGet = (lpBosLogGet_t)GetProcAddress (hiBOS, "bos_LogGet");
2142 lpBosAuthSet = (lpBosAuthSet_t)GetProcAddress (hiBOS, "bos_AuthSet");
2143 lpBosCommandExecute = (lpBosCommandExecute_t)GetProcAddress (hiBOS, "bos_CommandExecute");
2144 lpBosSalvage = (lpBosSalvage_t)GetProcAddress (hiBOS, "bos_Salvage");
2146 lpKasServerOpen = (lpKasServerOpen_t)GetProcAddress (hiKAS, "kas_ServerOpen");
2147 lpKasServerClose = (lpKasServerClose_t)GetProcAddress (hiKAS, "kas_ServerClose");
2148 lpKasServerStatsGet = (lpKasServerStatsGet_t)GetProcAddress (hiKAS, "kas_ServerStatsGet");
2149 lpKasServerDebugGet = (lpKasServerDebugGet_t)GetProcAddress (hiKAS, "kas_ServerDebugGet");
2150 lpKasServerRandomKeyGet = (lpKasServerRandomKeyGet_t)GetProcAddress (hiKAS, "kas_ServerRandomKeyGet");
2151 lpKasStringToKey = (lpKasStringToKey_t)GetProcAddress (hiKAS, "kas_StringToKey");
2152 lpKasPrincipalCreate = (lpKasPrincipalCreate_t)GetProcAddress (hiKAS, "kas_PrincipalCreate");
2153 lpKasPrincipalDelete = (lpKasPrincipalDelete_t)GetProcAddress (hiKAS, "kas_PrincipalDelete");
2154 lpKasPrincipalGet = (lpKasPrincipalGet_t)GetProcAddress (hiKAS, "kas_PrincipalGet");
2155 lpKasPrincipalGetBegin = (lpKasPrincipalGetBegin_t)GetProcAddress (hiKAS, "kas_PrincipalGetBegin");
2156 lpKasPrincipalGetNext = (lpKasPrincipalGetNext_t)GetProcAddress (hiKAS, "kas_PrincipalGetNext");
2157 lpKasPrincipalGetDone = (lpKasPrincipalGetDone_t)GetProcAddress (hiKAS, "kas_PrincipalGetDone");
2158 lpKasPrincipalKeySet = (lpKasPrincipalKeySet_t)GetProcAddress (hiKAS, "kas_PrincipalKeySet");
2159 lpKasPrincipalLockStatusGet = (lpKasPrincipalLockStatusGet_t)GetProcAddress (hiKAS, "kas_PrincipalLockStatusGet");
2160 lpKasPrincipalUnlock = (lpKasPrincipalUnlock_t)GetProcAddress (hiKAS, "kas_PrincipalUnlock");
2161 lpKasPrincipalFieldsSet = (lpKasPrincipalFieldsSet_t)GetProcAddress (hiKAS, "kas_PrincipalFieldsSet");
2163 lpPtsGroupMemberAdd = (lpPtsGroupMemberAdd_t)GetProcAddress (hiPTS, "pts_GroupMemberAdd");
2164 lpPtsGroupOwnerChange = (lpPtsGroupOwnerChange_t)GetProcAddress (hiPTS, "pts_GroupOwnerChange");
2165 lpPtsGroupCreate = (lpPtsGroupCreate_t)GetProcAddress (hiPTS, "pts_GroupCreate");
2166 lpPtsGroupGet = (lpPtsGroupGet_t)GetProcAddress (hiPTS, "pts_GroupGet");
2167 lpPtsGroupDelete = (lpPtsGroupDelete_t)GetProcAddress (hiPTS, "pts_GroupDelete");
2168 lpPtsGroupMaxGet = (lpPtsGroupMaxGet_t)GetProcAddress (hiPTS, "pts_GroupMaxGet");
2169 lpPtsGroupMaxSet = (lpPtsGroupMaxSet_t)GetProcAddress (hiPTS, "pts_GroupMaxSet");
2170 lpPtsGroupMemberListBegin = (lpPtsGroupMemberListBegin_t)GetProcAddress (hiPTS, "pts_GroupMemberListBegin");
2171 lpPtsGroupMemberListNext = (lpPtsGroupMemberListNext_t)GetProcAddress (hiPTS, "pts_GroupMemberListNext");
2172 lpPtsGroupMemberListDone = (lpPtsGroupMemberListDone_t)GetProcAddress (hiPTS, "pts_GroupMemberListDone");
2173 lpPtsGroupMemberRemove = (lpPtsGroupMemberRemove_t)GetProcAddress (hiPTS, "pts_GroupMemberRemove");
2174 lpPtsGroupRename = (lpPtsGroupRename_t)GetProcAddress (hiPTS, "pts_GroupRename");
2175 lpPtsGroupModify = (lpPtsGroupModify_t)GetProcAddress (hiPTS, "pts_GroupModify");
2176 lpPtsUserCreate = (lpPtsUserCreate_t)GetProcAddress (hiPTS, "pts_UserCreate");
2177 lpPtsUserDelete = (lpPtsUserDelete_t)GetProcAddress (hiPTS, "pts_UserDelete");
2178 lpPtsUserGet = (lpPtsUserGet_t)GetProcAddress (hiPTS, "pts_UserGet");
2179 lpPtsUserRename = (lpPtsUserRename_t)GetProcAddress (hiPTS, "pts_UserRename");
2180 lpPtsUserModify = (lpPtsUserModify_t)GetProcAddress (hiPTS, "pts_UserModify");
2181 lpPtsUserMaxGet = (lpPtsUserMaxGet_t)GetProcAddress (hiPTS, "pts_UserMaxGet");
2182 lpPtsUserMaxSet = (lpPtsUserMaxSet_t)GetProcAddress (hiPTS, "pts_UserMaxSet");
2183 lpPtsUserMemberListBegin = (lpPtsUserMemberListBegin_t)GetProcAddress (hiPTS, "pts_UserMemberListBegin");
2184 lpPtsUserMemberListNext = (lpPtsUserMemberListNext_t)GetProcAddress (hiPTS, "pts_UserMemberListNext");
2185 lpPtsUserMemberListDone = (lpPtsUserMemberListDone_t)GetProcAddress (hiPTS, "pts_UserMemberListDone");
2186 lpPtsOwnedGroupListBegin = (lpPtsOwnedGroupListBegin_t)GetProcAddress (hiPTS, "pts_OwnedGroupListBegin");
2187 lpPtsOwnedGroupListNext = (lpPtsOwnedGroupListNext_t)GetProcAddress (hiPTS, "pts_OwnedGroupListNext");
2188 lpPtsOwnedGroupListDone = (lpPtsOwnedGroupListDone_t)GetProcAddress (hiPTS, "pts_OwnedGroupListDone");
2190 lpClientTokenGetExisting = (lpClientTokenGetExisting_t)GetProcAddress (hiClient, "afsclient_TokenGetExisting");
2191 lpClientCellOpen = (lpClientCellOpen_t)GetProcAddress (hiClient, "afsclient_CellOpen");
2192 lpClientCellClose = (lpClientCellClose_t)GetProcAddress (hiClient, "afsclient_CellClose");
2193 lpClientLocalCellGet = (lpClientLocalCellGet_t)GetProcAddress (hiClient, "afsclient_LocalCellGet");
2194 lpClientAFSServerGet = (lpClientAFSServerGet_t)GetProcAddress (hiClient, "afsclient_AFSServerGet");
2195 lpClientAFSServerGetBegin = (lpClientAFSServerGetBegin_t)GetProcAddress (hiClient, "afsclient_AFSServerGetBegin");
2196 lpClientAFSServerGetNext = (lpClientAFSServerGetNext_t)GetProcAddress (hiClient, "afsclient_AFSServerGetNext");
2197 lpClientAFSServerGetDone = (lpClientAFSServerGetDone_t)GetProcAddress (hiClient, "afsclient_AFSServerGetDone");
2198 lpClientInit = (lpClientInit_t)GetProcAddress (hiClient, "afsclient_Init");
2200 lpUtilDatabaseServerGetBegin = (lpUtilDatabaseServerGetBegin_t)GetProcAddress (hiUtil, "util_DatabaseServerGetBegin");
2201 lpUtilDatabaseServerGetNext = (lpUtilDatabaseServerGetNext_t)GetProcAddress (hiUtil, "util_DatabaseServerGetNext");
2202 lpUtilDatabaseServerGetDone = (lpUtilDatabaseServerGetDone_t)GetProcAddress (hiUtil, "util_DatabaseServerGetDone");
2206 if ( (lpVosBackupVolumeCreate == NULL) ||
2207 (lpVosBackupVolumeCreateMultiple == NULL) ||
2208 (lpVosPartitionGet == NULL) ||
2209 (lpVosPartitionGetBegin == NULL) ||
2210 (lpVosPartitionGetNext == NULL) ||
2211 (lpVosPartitionGetDone == NULL) ||
2212 (lpVosServerOpen == NULL) ||
2213 (lpVosServerClose == NULL) ||
2214 (lpVosServerSync == NULL) ||
2215 (lpVosFileServerAddressChange == NULL) ||
2216 (lpVosFileServerAddressRemove == NULL) ||
2217 (lpVosFileServerGetBegin == NULL) ||
2218 (lpVosFileServerGetNext == NULL) ||
2219 (lpVosFileServerGetDone == NULL) ||
2220 (lpVosServerTransactionStatusGetBegin == NULL) ||
2221 (lpVosServerTransactionStatusGetNext == NULL) ||
2222 (lpVosServerTransactionStatusGetDone == NULL) ||
2223 (lpVosVLDBGet == NULL) ||
2224 (lpVosVLDBGetBegin == NULL) ||
2225 (lpVosVLDBGetNext == NULL) ||
2226 (lpVosVLDBGetDone == NULL) ||
2227 (lpVosVLDBEntryRemove == NULL) ||
2228 (lpVosVLDBUnlock == NULL) ||
2229 (lpVosVLDBEntryLock == NULL) ||
2230 (lpVosVLDBEntryUnlock == NULL) ||
2231 (lpVosVLDBReadOnlySiteCreate == NULL) ||
2232 (lpVosVLDBReadOnlySiteDelete == NULL) ||
2233 (lpVosVLDBSync == NULL) ||
2234 (lpVosVolumeCreate == NULL) ||
2235 (lpVosVolumeDelete == NULL) ||
2236 (lpVosVolumeRename == NULL) ||
2237 (lpVosVolumeDump == NULL) ||
2238 (lpVosVolumeRestore == NULL) ||
2239 (lpVosVolumeOnline == NULL) ||
2240 (lpVosVolumeOffline == NULL) ||
2241 (lpVosVolumeGet == NULL) ||
2242 (lpVosVolumeGetBegin == NULL) ||
2243 (lpVosVolumeGetNext == NULL) ||
2244 (lpVosVolumeGetDone == NULL) ||
2245 (lpVosVolumeMove == NULL) ||
2246 (lpVosVolumeRelease == NULL) ||
2247 (lpVosVolumeZap == NULL) ||
2248 (lpVosPartitionNameToId == NULL) ||
2249 (lpVosPartitionIdToName == NULL) ||
2250 (lpVosVolumeQuotaChange == NULL) ||
2251 (lpBosServerOpen == NULL) ||
2252 (lpBosServerClose == NULL) ||
2253 (lpBosProcessCreate == NULL) ||
2254 (lpBosProcessDelete == NULL) ||
2255 (lpBosProcessExecutionStateGet == NULL) ||
2256 (lpBosProcessExecutionStateSet == NULL) ||
2257 (lpBosProcessExecutionStateSetTemporary == NULL) ||
2258 (lpBosProcessNameGetBegin == NULL) ||
2259 (lpBosProcessNameGetDone == NULL) ||
2260 (lpBosProcessNameGetNext == NULL) ||
2261 (lpBosProcessInfoGet == NULL) ||
2262 (lpBosProcessParameterGetBegin == NULL) ||
2263 (lpBosProcessParameterGetDone == NULL) ||
2264 (lpBosProcessParameterGetNext == NULL) ||
2265 (lpBosProcessNotifierGet == NULL) ||
2266 (lpBosProcessRestart == NULL) ||
2267 (lpBosProcessAllStop == NULL) ||
2268 (lpBosProcessAllStart == NULL) ||
2269 (lpBosProcessAllWaitStop == NULL) ||
2270 (lpBosProcessAllStopAndRestart == NULL) ||
2271 (lpBosAdminCreate == NULL) ||
2272 (lpBosAdminDelete == NULL) ||
2273 (lpBosAdminGetBegin == NULL) ||
2274 (lpBosAdminGetDone == NULL) ||
2275 (lpBosAdminGetNext == NULL) ||
2276 (lpBosKeyCreate == NULL) ||
2277 (lpBosKeyDelete == NULL) ||
2278 (lpBosKeyGetBegin == NULL) ||
2279 (lpBosKeyGetDone == NULL) ||
2280 (lpBosKeyGetNext == NULL) ||
2281 (lpBosCellSet == NULL) ||
2282 (lpBosCellGet == NULL) ||
2283 (lpBosHostCreate == NULL) ||
2284 (lpBosHostDelete == NULL) ||
2285 (lpBosHostGetBegin == NULL) ||
2286 (lpBosHostGetDone == NULL) ||
2287 (lpBosHostGetNext == NULL) ||
2288 (lpBosExecutableCreate == NULL) ||
2289 (lpBosExecutableRevert == NULL) ||
2290 (lpBosExecutableTimestampGet == NULL) ||
2291 (lpBosExecutablePrune == NULL) ||
2292 (lpBosExecutableRestartTimeSet == NULL) ||
2293 (lpBosExecutableRestartTimeGet == NULL) ||
2294 (lpBosLogGet == NULL) ||
2295 (lpBosAuthSet == NULL) ||
2296 (lpBosCommandExecute == NULL) ||
2297 (lpBosSalvage == NULL) ||
2298 (lpKasServerOpen == NULL) ||
2299 (lpKasServerClose == NULL) ||
2300 (lpKasServerStatsGet == NULL) ||
2301 (lpKasServerDebugGet == NULL) ||
2302 (lpKasServerRandomKeyGet == NULL) ||
2303 (lpKasStringToKey == NULL) ||
2304 (lpKasPrincipalCreate == NULL) ||
2305 (lpKasPrincipalDelete == NULL) ||
2306 (lpKasPrincipalGet == NULL) ||
2307 (lpKasPrincipalGetBegin == NULL) ||
2308 (lpKasPrincipalGetNext == NULL) ||
2309 (lpKasPrincipalGetDone == NULL) ||
2310 (lpKasPrincipalKeySet == NULL) ||
2311 (lpKasPrincipalLockStatusGet == NULL) ||
2312 (lpKasPrincipalUnlock == NULL) ||
2313 (lpKasPrincipalFieldsSet == NULL) ||
2314 (lpPtsGroupMemberAdd == NULL) ||
2315 (lpPtsGroupOwnerChange == NULL) ||
2316 (lpPtsGroupCreate == NULL) ||
2317 (lpPtsGroupGet == NULL) ||
2318 (lpPtsGroupDelete == NULL) ||
2319 (lpPtsGroupMaxGet == NULL) ||
2320 (lpPtsGroupMaxSet == NULL) ||
2321 (lpPtsGroupMemberListBegin == NULL) ||
2322 (lpPtsGroupMemberListNext == NULL) ||
2323 (lpPtsGroupMemberListDone == NULL) ||
2324 (lpPtsGroupMemberRemove == NULL) ||
2325 (lpPtsGroupRename == NULL) ||
2326 (lpPtsGroupModify == NULL) ||
2327 (lpPtsUserCreate == NULL) ||
2328 (lpPtsUserDelete == NULL) ||
2329 (lpPtsUserGet == NULL) ||
2330 (lpPtsUserRename == NULL) ||
2331 (lpPtsUserModify == NULL) ||
2332 (lpPtsUserMaxGet == NULL) ||
2333 (lpPtsUserMaxSet == NULL) ||
2334 (lpPtsUserMemberListBegin == NULL) ||
2335 (lpPtsUserMemberListNext == NULL) ||
2336 (lpPtsUserMemberListDone == NULL) ||
2337 (lpPtsOwnedGroupListBegin == NULL) ||
2338 (lpPtsOwnedGroupListNext == NULL) ||
2339 (lpPtsOwnedGroupListDone == NULL) ||
2340 (lpClientTokenGetExisting == NULL) ||
2341 (lpClientCellOpen == NULL) ||
2342 (lpClientCellClose == NULL) ||
2343 (lpClientLocalCellGet == NULL) ||
2344 (lpClientInit == NULL) ||
2345 (lpClientAFSServerGet == NULL) ||
2346 (lpClientAFSServerGetBegin == NULL) ||
2347 (lpClientAFSServerGetNext == NULL) ||
2348 (lpClientAFSServerGetDone == NULL) ||
2349 (lpUtilDatabaseServerGetBegin == NULL) ||
2350 (lpUtilDatabaseServerGetNext == NULL) ||
2351 (lpUtilDatabaseServerGetDone == NULL) ||
2356 *pStatus = ERROR_DLL_INIT_FAILED;
2360 // Initialize the client library
2362 afs_status_t status;
2363 if (!(*lpClientInit)(&status))
2366 *pStatus = (ULONG)status;
2374 void Worker_FreeLibraries (void)
2378 FreeLibrary (hiVOS);
2383 FreeLibrary (hiBOS);
2388 FreeLibrary (hiKAS);
2393 FreeLibrary (hiPTS);
2398 FreeLibrary (hiUtil);
2401 if (hiClient != NULL)
2403 FreeLibrary (hiClient);