2.4 LDAP Error to Win32 Error Mapping
Windows contains an implementation of the LDAP resultCode ([RFC2251] section 4.1.10) which is used by higher-layer protocols to interpret the results of an LDAP operation.
Each LDAP error value is also mapped to the closest Win32 error value, for use by the higher-layer protocols. This mapping is as shown in the following table:
Value: Decimal |
Value: Hexadecimal representation |
LDAPResult.resultCode: RFC 1777 |
LDAPResult.resultCode: RFC 2251 |
Windows: Ldap Error (LDAP_RETCODE from winldap.w) |
Windows: Win32 error (from LdapMapErrorToWin32 / winmain\ds\ds\src\ldap\client\util.cxx) |
---|---|---|---|---|---|
0 |
0x0 |
success |
success |
LDAP_SUCCESS |
NO_ERROR |
1 |
0x1 |
operationsError |
operationsError |
LDAP_OPERATIONS_ERROR |
ERROR_OPEN_FAILED |
2 |
0x2 |
protocolError |
protocolError |
LDAP_PROTOCOL_ERROR |
ERROR_INVALID_LEVEL |
3 |
0x3 |
timeLimitExceeded |
timeLimitExceeded |
LDAP_TIMELIMIT_EXCEEDED |
ERROR_TIMEOUT |
4 |
0x4 |
sizeLimitExceeded |
sizeLimitExceeded |
LDAP_SIZELIMIT_EXCEEDED |
ERROR_MORE_DATA |
5 |
0x5 |
compareFalse |
compareFalse |
LDAP_COMPARE_FALSE |
ERROR_DS_GENERIC_ERROR |
6 |
0x6 |
compareTrue |
compareTrue |
LDAP_COMPARE_TRUE |
ERROR_DS_GENERIC_ERROR |
7 |
0x7 |
authMethodNotSupported |
authMethodNotSupported |
LDAP_AUTH_METHOD_NOT_SUPPORTED |
ERROR_ACCESS_DENIED |
8 |
0x8 |
strongAuthRequired |
strongAuthRequired |
LDAP_STRONG_AUTH_REQUIRED |
ERROR_ACCESS_DENIED |
9 |
0x9 |
|
9 reserved |
LDAP_REFERRAL_V2, LDAP_PARTIAL_RESULTS |
ERROR_MORE_DATA |
10 |
0xA |
|
referral |
LDAP_REFERRAL |
|
11 |
0xB |
|
adminLimitExceeded |
LDAP_ADMIN_LIMIT_EXCEEDED |
ERROR_NOT_ENOUGH_QUOTA |
12 |
0xC |
|
unavailableCriticalExtension |
LDAP_UNAVAILABLE_CRIT_EXTENSION |
ERROR_CAN_NOT_COMPLETE |
13 |
0xD |
|
confidentialityRequired |
LDAP_CONFIDENTIALITY_REQUIRED |
|
14 |
0xE |
|
saslBindInProgress |
LDAP_SASL_BIND_IN_PROGRESS |
|
15 |
0xF |
|
|
|
|
16 |
0x10 |
noSuchAttribute |
noSuchAttribute |
LDAP_NO_SUCH_ATTRIBUTE |
ERROR_INVALID_PARAMETER |
17 |
0x11 |
undefinedAttributeType |
undefinedAttributeType |
LDAP_UNDEFINED_TYPE |
ERROR_DS_GENERIC_ERROR |
18 |
0x12 |
inappropriateMatching |
inappropriateMatching |
LDAP_INAPPROPRIATE_MATCHING |
ERROR_INVALID_PARAMETER |
19 |
0x13 |
constraintViolation |
constraintViolation |
LDAP_CONSTRAINT_VIOLATION |
ERROR_INVALID_PARAMETER |
20 |
0x14 |
attributeOrValueExists |
attributeOrValueExists |
LDAP_ATTRIBUTE_OR_VALUE_EXISTS |
ERROR_ALREADY_EXISTS |
21 |
0x15 |
invalidAttributeSyntax |
invalidAttributeSyntax |
LDAP_INVALID_SYNTAX |
ERROR_INVALID_NAME |
22 |
0x16 |
|
|
|
|
23 |
0x17 |
|
|
|
|
24 |
0x18 |
|
|
|
|
25 |
0x19 |
|
|
|
|
26 |
0x1A |
|
|
|
|
27 |
0x1B |
|
|
|
|
28 |
0x1C |
|
|
|
|
29 |
0x1D |
|
|
|
|
30 |
0x1E |
|
|
|
|
31 |
0x1F |
|
|
|
|
32 |
0x20 |
noSuchObject |
noSuchObject |
LDAP_NO_SUCH_OBJECT |
ERROR_FILE_NOT_FOUND |
33 |
0x21 |
aliasProblem |
aliasProblem |
LDAP_ALIAS_PROBLEM |
ERROR_DS_GENERIC_ERROR |
34 |
0x22 |
invalidDNSyntax |
invalidDNSyntax |
LDAP_INVALID_DN_SYNTAX |
ERROR_INVALID_PARAMETER |
35 |
0x23 |
isLeaf |
35 reserved for undefined isLeaf |
LDAP_IS_LEAF |
ERROR_DS_GENERIC_ERROR |
36 |
0x24 |
aliasDereferencingProblem |
aliasDereferencingProblem |
LDAP_ALIAS_DEREF_PROBLEM |
ERROR_DS_GENERIC_ERROR |
37 |
0x25 |
|
37-47 unused |
|
|
38 |
0x26 |
|
|
|
|
39 |
0x27 |
|
|
|
|
40 |
0x28 |
|
|
|
|
41 |
0x29 |
|
|
|
|
42 |
0x2A |
|
|
|
|
43 |
0x2B |
|
|
|
|
44 |
0x2C |
|
|
|
|
45 |
0x2D |
|
|
|
|
46 |
0x2E |
|
|
|
|
47 |
0x2F |
|
|
|
|
48 |
0x30 |
inappropriateAuthentication |
inappropriateAuthentication |
LDAP_INAPPROPRIATE_AUTH |
ERROR_ACCESS_DENIED |
49 |
0x31 |
invalidCredentials |
invalidCredentials |
LDAP_INVALID_CREDENTIALS |
ERROR_LOGON_FAILURE |
50 |
0x32 |
insufficientAccessRights |
insufficientAccessRights |
LDAP_INSUFFICIENT_RIGHTS |
ERROR_ACCESS_DENIED |
51 |
0x33 |
busy |
busy |
LDAP_BUSY |
ERROR_BUSY |
52 |
0x34 |
unavailable |
unavailable |
LDAP_UNAVAILABLE |
ERROR_DEV_NOT_EXIST |
53 |
0x35 |
unwillingToPerform |
unwillingToPerform |
LDAP_UNWILLING_TO_PERFORM |
ERROR_CAN_NOT_COMPLETE |
54 |
0x36 |
loopDetect |
loopDetect |
LDAP_LOOP_DETECT |
ERROR_DS_GENERIC_ERROR |
55 |
0x37 |
|
55-63 unused |
|
|
56 |
0x38 |
|
|
|
|
57 |
0x39 |
|
|
|
|
58 |
0x3A |
|
|
|
|
59 |
0x3B |
|
|
|
|
60 |
0x3C |
|
|
LDAP_SORT_CONTROL_MISSING |
ERROR_DS_SORT_CONTROL_MISSING |
61 |
0x3D |
|
|
LDAP_OFFSET_RANGE_ERROR |
ERROR_DS_OFFSET_RANGE_ERROR |
62 |
0x3E |
|
|
|
|
63 |
0x3F |
|
|
|
|
64 |
0x40 |
namingViolation |
namingViolation |
LDAP_NAMING_VIOLATION |
ERROR_INVALID_PARAMETER |
65 |
0x41 |
objectClassViolation |
objectClassViolation |
LDAP_OBJECT_CLASS_VIOLATION |
ERROR_INVALID_PARAMETER |
66 |
0x42 |
notAllowedOnNonLeaf |
notAllowedOnNonLeaf |
LDAP_NOT_ALLOWED_ON_NONLEAF |
ERROR_CAN_NOT_COMPLETE |
67 |
0x43 |
notAllowedOnRDN |
notAllowedOnRDN |
LDAP_NOT_ALLOWED_ON_RDN |
ERROR_ACCESS_DENIED |
68 |
0x44 |
entryAlreadyExists |
entryAlreadyExists |
LDAP_ALREADY_EXISTS |
ERROR_ALREADY_EXISTS |
69 |
0x45 |
objectClassModsProhibited |
objectClassModsProhibited |
LDAP_NO_OBJECT_CLASS_MODS |
ERROR_ACCESS_DENIED |
70 |
0x46 |
|
70 reserved for CLDAP |
LDAP_RESULTS_TOO_LARGE |
ERROR_INSUFFICIENT_BUFFER |
71 |
0x47 |
|
affectsMultipleDSAs |
LDAP_AFFECTS_MULTIPLE_DSAS |
ERROR_CAN_NOT_COMPLETE |
72 |
0x48 |
|
72-79 unused |
|
|
73 |
0x49 |
|
|
|
|
74 |
0x4A |
|
|
|
|
75 |
0x4B |
|
|
|
|
76 |
0x4C |
|
|
LDAP_VIRTUAL_LIST_VIEW_ERROR |
|
77 |
0x4D |
|
|
|
|
78 |
0x4E |
|
|
|
|
79 |
0x4F |
|
|
|
|
80 |
0x50 |
other |
other |
LDAP_OTHER |
ERROR_DS_GENERIC_ERROR |
81 |
0x51 |
|
81-90 reserved for APIs |
LDAP_SERVER_DOWN |
ERROR_BAD_NET_RESP |
82 |
0x52 |
|
|
LDAP_LOCAL_ERROR |
ERROR_DS_GENERIC_ERROR |
83 |
0x53 |
|
|
LDAP_ENCODING_ERROR |
ERROR_UNEXP_NET_ERR |
84 |
0x54 |
|
|
LDAP_DECODING_ERROR |
ERROR_UNEXP_NET_ERR |
85 |
0x55 |
|
|
LDAP_TIMEOUT |
ERROR_SERVICE_REQUEST_TIMEOUT |
86 |
0x56 |
|
|
LDAP_AUTH_UNKNOWN |
ERROR_WRONG_PASSWORD |
87 |
0x57 |
|
|
LDAP_FILTER_ERROR |
ERROR_INVALID_PARAMETER |
88 |
0x58 |
|
|
LDAP_USER_CANCELLED |
ERROR_CANCELLED |
89 |
0x59 |
|
|
LDAP_PARAM_ERROR |
ERROR_INVALID_PARAMETER |
90 |
0x5A |
|
|
LDAP_NO_MEMORY |
ERROR_NOT_ENOUGH_MEMORY |
91 |
0x5B |
|
|
LDAP_CONNECT_ERROR |
ERROR_CONNECTION_REFUSED |
92 |
0x5C |
|
|
LDAP_NOT_SUPPORTED |
ERROR_CAN_NOT_COMPLETE |
93 |
0x5D |
|
|
LDAP_NO_RESULTS_RETURNED |
ERROR_MORE_DATA |
94 |
0x5E |
|
|
LDAP_CONTROL_NOT_FOUND |
ERROR_NOT_FOUND |
95 |
0x5F |
|
|
LDAP_MORE_RESULTS_TO_RETURN |
ERROR_MORE_DATA |
96 |
0x60 |
|
|
LDAP_CLIENT_LOOP |
|
97 |
0x61 |
|
|
LDAP_REFERRAL_LIMIT_EXCEEDED |
|
98 |
0x62 |
|
|
|
|