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