1 #include <u.h> 2 #include <libc.h> 3 4 static struct { 5 int err; 6 char *msg; 7 } RAPerrs[] = { 8 { 0, "ok" }, 9 { 5, "permission denied" }, 10 { 50, "request not supported" }, 11 { 65, "access denied" }, 12 { 86, "password invalid" }, 13 { 128, "not listening on called name" }, 14 { 129, "not listening for calling name" }, 15 { 130, "called name not present" }, 16 { 131, "called name present, but insufficient resources" }, 17 { 234, "more data" }, 18 19 { 2102, "workstation driver is not installed" }, 20 { 2103, "server could not be located" }, 21 { 2104, "network cannot access a shared memory segment" }, 22 { 2105, "A network resource shortage occurred" }, 23 { 2106, "This operation is not supported on workstations" }, 24 { 2107, "device is not connected" }, 25 { 2114, "Server service is not started" }, 26 { 2115, "queue is empty" }, 27 { 2116, "device or directory does not exist" }, 28 { 2117, "operation is invalid on a redirected resource" }, 29 { 2118, "name has already been shared" }, 30 { 2119, "server is currently out of the requested resource" }, 31 { 2121, "Requested addition of items exceeds the maximum allowed" }, 32 { 2122, "Peer service supports only two simultaneous users" }, 33 { 2123, "API return buffer is too small" }, 34 { 2127, "remote API error occurred" }, 35 { 2131, "cannot open or read the configuration file" }, 36 { 2136, "general network error occurred" }, 37 { 2137, "Workstation service is corrupted" }, 38 { 2138, "Workstation service has not been started" }, 39 { 2139, "requested information is not available" }, 40 { 2140, "internal error" }, 41 { 2141, "server is not configured for transactions" }, 42 { 2142, "requested API is not supported on the remote server" }, 43 { 2143, "event name is invalid" }, 44 { 2144, "computer name already exists on the network" }, 45 { 2146, "specified component could not be found in the config info" }, 46 { 2147, "specified parameter could not be found in the config info" }, 47 { 2149, "A line in the configuration file is too long" }, 48 { 2150, "printer does not exist" }, 49 { 2151, "print job does not exist" }, 50 { 2152, "printer destination cannot be found" }, 51 { 2153, "printer destination already exists" }, 52 { 2154, "printer queue already exists" }, 53 { 2155, "no more printers can be added" }, 54 { 2156, "no more print jobs can be added" }, 55 { 2157, "no more printer destinations can be added" }, 56 { 2158, "printer idle and cannot accept control operations" }, 57 { 2159, "invalid control function in printer request" }, 58 { 2160, "print processor not responding" }, 59 { 2161, "spooler not running" }, 60 { 2162, "operation cannot be performed on the print destination in its current state" }, 61 { 2163, "operation cannot be performed on the printer queue in its current state" }, 62 { 2164, "operation cannot be performed on the print job in its current state" }, 63 { 2165, "spooler - no memory" }, 64 { 2166, "device driver does not exist" }, 65 { 2167, "data type not supported by the print processor" }, 66 { 2168, "print processor is not installed" }, 67 { 2180, "service database is locked" }, 68 { 2181, "service table full" }, 69 { 2182, "requested service already started" }, 70 { 2183, "service does not responding" }, 71 { 2184, "service not started" }, 72 { 2185, "service name invalid" }, 73 { 2186, "service is not responding to the control function" }, 74 { 2187, "service control is busy" }, 75 { 2188, "configuration file contains an invalid service program name" }, 76 { 2189, "service could not be controlled in its present state" }, 77 { 2190, "service ended abnormally" }, 78 { 2191, "requested pause or stop is not valid for this service" }, 79 { 2192, "could not find the service name in the dispatch table" }, 80 { 2193, "service control dispatcher pipe read failed" }, 81 { 2194, "thread create for the new service could not be created" }, 82 { 2200, "This workstation is already logged on to the local-area network" }, 83 { 2201, "workstation is not logged on to the local-area network" }, 84 { 2202, "user name or group name parameter is invalid" }, 85 { 2203, "password parameter is invalid" }, 86 { 2204, "logon processor did not add the message alias" }, 87 { 2205, "logon processor did not add the message alias" }, 88 { 2206, "logoff processor did not delete the message alias" }, 89 { 2207, "logoff processor did not delete the message alias" }, 90 { 2209, "Network logons are paused" }, 91 { 2210, "a centralized logon-server conflict occurred" }, 92 { 2211, "server is configured without a valid user path" }, 93 { 2212, "cannot run logon script" }, 94 { 2214, "logon server was not specified. computer will be logged on as STANDALONE" }, 95 { 2215, "logon server could not be found" }, 96 { 2216, "already a logon domain for this computer" }, 97 { 2217, "logon server could not validate the logon" }, 98 { 2219, "security database could not be found" }, 99 { 2220, "group name could not be found" }, 100 { 2221, "user name could not be found" }, 101 { 2222, "resource name could not be found" }, 102 { 2223, "group already exists" }, 103 { 2224, "user account already exists" }, 104 { 2225, "resource permission list already exists" }, 105 { 2226, "This operation is only allowed on the PDC of the domain" }, 106 { 2227, "security database has not been started" }, 107 { 2228, "There are too many names in the user accounts database" }, 108 { 2229, "disk I/O failure occurred" }, 109 { 2230, "limit of 64 entries per resource was exceeded" }, 110 { 2231, "Deleting a user with a session is not allowed" }, 111 { 2232, "parent directory could not be located" }, 112 { 2233, "Unable to add to the security database session cache segment" }, 113 { 2234, "This operation is not allowed on this special group" }, 114 { 2235, "This user is not cached in user accounts database session cache" }, 115 { 2236, "user already belongs to this group" }, 116 { 2237, "user does not belong to this group" }, 117 { 2238, "This user account is undefined" }, 118 { 2239, "This user account has expired" }, 119 { 2240, "user is not allowed to log on from this workstation" }, 120 { 2241, "user is not allowed to log on at this time" }, 121 { 2242, "password of this user has expired" }, 122 { 2243, "password of this user cannot change" }, 123 { 2244, "This password cannot be used now" }, 124 { 2245, "password does not meet the password policy requirements" }, 125 { 2246, "password of this user is too recent to change" }, 126 { 2247, "security database is corrupted" }, 127 { 2248, "No updates are necessary to this replicant network/local security database" }, 128 { 2249, "This replicant database is outdated; synchronization is required" }, 129 { 2250, "network connection could not be found" }, 130 { 2251, "This asg_type is invalid" }, 131 { 2252, "This device is currently being shared" }, 132 { 2270, "computer name cannot be added - name may already exist" }, 133 { 2271, "Messenger service is already started" }, 134 { 2272, "Messenger service failed to start" }, 135 { 2273, "message alias could not be found on the network" }, 136 { 2274, "This message alias has already been forwarded" }, 137 { 2275, "This message alias has been added but is still forwarded" }, 138 { 2276, "This message alias already exists locally" }, 139 { 2277, "maximum number of added message aliases has been exceeded" }, 140 { 2278, "computer name could not be deleted" }, 141 { 2279, "Messages cannot be forwarded back to the same workstation" }, 142 { 2280, "An error occurred in the domain message processor" }, 143 { 2281, "message was sent, but the recipient has paused the Messenger service" }, 144 { 2282, "message was sent but not received" }, 145 { 2283, "message alias is currently in use. Try again later" }, 146 { 2284, "Messenger service has not been started" }, 147 { 2285, "name is not on the local computer" }, 148 { 2286, "forwarded message alias could not be found on the network" }, 149 { 2287, "message alias table on the remote station is full" }, 150 { 2288, "Messages for this alias are not currently being forwarded" }, 151 { 2289, "broadcast message was truncated" }, 152 { 2294, "This is an invalid device name" }, 153 { 2295, "A write fault occurred" }, 154 { 2297, "A duplicate message alias exists on the network" }, 155 { 2298, "This message alias will be deleted later" }, 156 { 2299, "message alias was not successfully deleted from all networks" }, 157 { 2300, "This operation is not supported on computers with multiple networks" }, 158 { 2310, "This shared resource does not exist" }, 159 { 2311, "This device is not shared" }, 160 { 2312, "A session does not exist with that computer name" }, 161 { 2314, "There is not an open file with that identification number" }, 162 { 2315, "A failure occurred when executing a remote administration command" }, 163 { 2316, "A failure occurred when opening a remote temporary file" }, 164 { 2317, "Data returned from a RAP command has been truncated to 64K" }, 165 { 2318, "This device cannot be shared as both a spooled and a non-spooled resource" }, 166 { 2319, "information in the list of servers may be incorrect" }, 167 { 2320, "computer is not active in this domain" }, 168 { 2321, "share must be removed from DFS before it can be deleted" }, 169 { 2331, "operation is invalid for this device" }, 170 { 2332, "This device cannot be shared" }, 171 { 2333, "This device was not open" }, 172 { 2334, "This device name list is invalid" }, 173 { 2335, "queue priority is invalid" }, 174 { 2337, "There are no shared communication devices" }, 175 { 2338, "queue you specified does not exist" }, 176 { 2340, "This list of devices is invalid" }, 177 { 2341, "requested device is invalid" }, 178 { 2342, "This device is already in use by the spooler" }, 179 { 2343, "This device is already in use as a communication device" }, 180 { 2351, "This computer name is invalid" }, 181 { 2354, "string and prefix specified are too long" }, 182 { 2356, "This path component is invalid" }, 183 { 2357, "Could not determine the type of input" }, 184 { 2362, "buffer for types is not big enough" }, 185 { 2370, "Profile files cannot exceed 64K" }, 186 { 2371, "start offset is out of range" }, 187 { 2372, "system cannot delete current connections to network resources" }, 188 { 2373, "system was unable to parse the command line in this file" }, 189 { 2374, "An error occurred while loading the profile file" }, 190 { 2375, "Errors occurred while saving the profile file" }, 191 { 2377, "Log file %1 is full" }, 192 { 2378, "This log file has changed between reads" }, 193 { 2379, "Log file %1 is corrupt" }, 194 { 2380, "source path cannot be a directory" }, 195 { 2381, "source path is illegal" }, 196 { 2382, "destination path is illegal" }, 197 { 2383, "source and destination paths are on different servers" }, 198 { 2385, "Run server you requested is paused" }, 199 { 2389, "An error occurred when communicating with a Run server" }, 200 { 2391, "An error occurred when starting a background process" }, 201 { 2392, "shared resource you are connected to could not be found" }, 202 { 2400, "LAN adapter number is invalid" }, 203 { 2401, "There are open files on the connection" }, 204 { 2402, "Active connections still exist" }, 205 { 2403, "This share name or password is invalid" }, 206 { 2404, "device is being accessed by an active process" }, 207 { 2405, "drive letter is in use locally" }, 208 { 2430, "specified client is already registered for the specified event" }, 209 { 2431, "alert table is full" }, 210 { 2432, "An invalid or nonexistent alert name was raised" }, 211 { 2433, "alert recipient is invalid" }, 212 { 2434, "A user's session with this server has been deleted" }, 213 { 2440, "log file does not contain the requested record number" }, 214 { 2450, "user accounts database is not configured correctly" }, 215 { 2451, "This operation is not permitted when the Netlogon service is running" }, 216 { 2452, "This operation is not allowed on the last administrative account" }, 217 { 2453, "Could not find DC for this domain" }, 218 { 2454, "Could not set logon information for this user" }, 219 { 2455, "Netlogon service has not been started" }, 220 { 2456, "Unable to add to the user accounts database" }, 221 { 2457, "This server's clock is not synchronized with the PDC's clock" }, 222 { 2458, "A password mismatch has been detected" }, 223 { 2460, "server identification does not specify a valid server" }, 224 { 2461, "session identification does not specify a valid session" }, 225 { 2462, "connection identification does not specify a valid connection" }, 226 { 2463, "There is no space for another entry in the table of available servers" }, 227 { 2464, "server has reached the maximum number of sessions it supports" }, 228 { 2465, "server has reached the maximum number of connections it supports" }, 229 { 2466, "server cannot open more files because it has reached its maximum number" }, 230 { 2467, "There are no alternate servers registered on this server" }, 231 { 2470, "Try down-level (remote admin protocol) version of API instead" }, 232 { 2480, "UPS driver could not be accessed by the UPS service" }, 233 { 2481, "UPS service is not configured correctly" }, 234 { 2482, "UPS service could not access the specified Comm Port" }, 235 { 2483, "UPS indicated a line fail or low battery situation. Service not started" }, 236 { 2484, "UPS service failed to perform a system shut down" }, 237 { 2500, "program below returned an MS-DOS error code" }, 238 { 2501, "program below needs more memory" }, 239 { 2502, "program below called an unsupported MS-DOS function" }, 240 { 2503, "workstation failed to boot" }, 241 { 2504, "file below is corrupt" }, 242 { 2505, "No loader is specified in the boot-block definition file" }, 243 { 2506, "NetBIOS returned an error: The NCB and SMB are dumped above" }, 244 { 2507, "A disk I/O error occurred" }, 245 { 2508, "Image parameter substitution failed" }, 246 { 2509, "Too many image parameters cross disk sector boundaries" }, 247 { 2510, "image was not generated from an MS-DOS diskette formatted with /S" }, 248 { 2511, "Remote boot will be restarted later" }, 249 { 2512, "call to the Remoteboot server failed" }, 250 { 2513, "Cannot connect to the Remoteboot server" }, 251 { 2514, "Cannot open image file on the Remoteboot server" }, 252 { 2515, "Connecting to the Remoteboot server..." }, 253 { 2516, "Connecting to the Remoteboot server..." }, 254 { 2517, "Remote boot service was stopped" }, 255 { 2518, "Remote boot startup failed; check the error log" }, 256 { 2519, "A second connection to a Remoteboot resource is not allowed" }, 257 { 2550, "browser service was configured with MaintainServerList=No" }, 258 { 2610, "Service failed to startas no network adapters started with this service" }, 259 { 2611, "Service failed to start due to bad startup information in the registry" }, 260 { 2612, "Service failed to start because its database is absent or corrupt" }, 261 { 2613, "Service failed to start because RPLFILES share is absent" }, 262 { 2614, "Service failed to start because RPLUSER group is absent" }, 263 { 2615, "Cannot enumerate service records" }, 264 { 2616, "Workstation record information has been corrupted" }, 265 { 2617, "Workstation record was not found" }, 266 { 2618, "Workstation name is in use by some other workstation" }, 267 { 2619, "Profile record information has been corrupted" }, 268 { 2620, "Profile record was not found" }, 269 { 2621, "Profile name is in use by some other profile" }, 270 { 2622, "There are workstations using this profile" }, 271 { 2623, "Configuration record information has been corrupted" }, 272 { 2624, "Configuration record was not found" }, 273 { 2625, "Adapter ID record information has been corrupted" }, 274 { 2626, "An internal service error has occurred" }, 275 { 2627, "Vendor ID record information has been corrupted" }, 276 { 2628, "Boot block record information has been corrupted" }, 277 { 2629, "user account for this workstation record is missing" }, 278 { 2630, "RPLUSER local group could not be found" }, 279 { 2631, "Boot block record was not found" }, 280 { 2632, "Chosen profile is incompatible with this workstation" }, 281 { 2633, "Chosen network adapter ID is in use by some other workstation" }, 282 { 2634, "There are profiles using this configuration" }, 283 { 2635, "There are workstations, profiles, or configurations using this boot block" }, 284 { 2636, "Service failed to backup Remoteboot database" }, 285 { 2637, "Adapter record was not found" }, 286 { 2638, "Vendor record was not found" }, 287 { 2639, "Vendor name is in use by some other vendor record" }, 288 { 2640, "(boot name, vendor ID) is in use by some other boot block record" }, 289 { 2641, "Configuration name is in use by some other configuration" }, 290 { 2660, "internal database maintained by the Dfs service is corrupt" }, 291 { 2661, "One of the records in the internal Dfs database is corrupt" }, 292 { 2662, "There is no DFS name whose entry path matches the input Entry Path" }, 293 { 2663, "A root or link with the given name already exists" }, 294 { 2664, "server share specified is already shared in the Dfs" }, 295 { 2665, "indicated server share does not support the indicated DFS namespace" }, 296 { 2666, "operation is not valid on this portion of the namespace" }, 297 { 2667, "operation is not valid on this portion of the namespace" }, 298 { 2668, "operation is ambiguous because the link has multiple servers" }, 299 { 2669, "Unable to create a link" }, 300 { 2670, "server is not Dfs Aware" }, 301 { 2671, "specified rename target path is invalid" }, 302 { 2672, "specified DFS link is offline" }, 303 { 2673, "specified server is not a server for this link" }, 304 { 2674, "A cycle in the Dfs name was detected" }, 305 { 2675, "operation is not supported on a server-based Dfs" }, 306 { 2676, "This link is already supported by the specified server-share" }, 307 { 2677, "Can't remove the last server-share supporting this root or link" }, 308 { 2678, "operation is not supported for an Inter-DFS link" }, 309 { 2679, "internal state of the Dfs Service has become inconsistent" }, 310 { 2680, "Dfs Service has been installed on the specified server" }, 311 { 2681, "Dfs data being reconciled is identical" }, 312 { 2682, "DFS root cannot be deleted. Uninstall DFS if required" }, 313 { 2683, "A child or parent directory of the share is already in a Dfs" }, 314 { 2690, "Dfs internal error" }, 315 { 2691, "This machine is already joined to a domain" }, 316 { 2692, "This machine is not currently joined to a domain" }, 317 { 2693, "This machine is a DC and cannot be unjoined from a domain" }, 318 { 2694, "destination DC does not support creating machine accounts in OUs" }, 319 { 2695, "specified workgroup name is invalid" }, 320 { 2696, "specified computer name is incompatible with the default language used on the DC" }, 321 { 2697, "specified computer account could not be found" }, 322 { 2698, "This version of Windows cannot be joined to a domain" }, 323 { 2701, "password must change at the next logon" }, 324 { 2702, "account is locked out" }, 325 { 2703, "password is too long" }, 326 { 2704, "password does not meet the complexity policy" }, 327 { 2705, "password does not meet the requirements of the password filter DLLs" }, 328 }; 329 330 char * 331 raperrstr(uint err) 332 { 333 int i, match; 334 static char buf[0xff]; 335 336 match = -1; 337 for(i = 0; i < nelem(RAPerrs); i++) 338 if(RAPerrs[i].err == err) 339 match = i; 340 if(match != -1) 341 snprint(buf, sizeof buf, "rap: %s", RAPerrs[match].msg); 342 else 343 snprint(buf, sizeof buf, "rap: %ud/0x%ux - unknown error", 344 err, err); 345 return buf; 346 } 347