Merge branch 'master' of ssh://jra@git.samba.org/data/git/samba
authorJeremy Allison <jra@samba.org>
Sat, 17 Oct 2009 17:36:33 +0000 (10:36 -0700)
committerJeremy Allison <jra@samba.org>
Sat, 17 Oct 2009 17:36:33 +0000 (10:36 -0700)
580 files changed:
.gitignore
client/mount.cifs.c
docs-xml/Samba3-HOWTO/TOSHARG-Winbind.xml
docs-xml/manpages-3/ldbrename.1.xml
docs-xml/manpages-3/net.8.xml
docs-xml/manpages-3/wbinfo.1.xml
docs-xml/smbdotconf/ldap/ldapreffollow.xml [new file with mode: 0644]
docs-xml/smbdotconf/protocol/sharefakefscaps.xml [new file with mode: 0644]
docs-xml/smbdotconf/security/lanmanauth.xml
examples/ad-bench/README [new file with mode: 0644]
examples/ad-bench/ad-bench.sh [new file with mode: 0755]
examples/ad-bench/settings.sh [new file with mode: 0644]
examples/ad-bench/test_utils.sh [new file with mode: 0644]
examples/ad-bench/time_group.sh [new file with mode: 0644]
examples/ad-bench/time_join.sh [new file with mode: 0644]
examples/ad-bench/time_kinit.sh [new file with mode: 0644]
examples/ad-bench/time_ldap.sh [new file with mode: 0644]
examples/ad-bench/time_user.sh [new file with mode: 0644]
examples/ad-bench/utils.sh [new file with mode: 0644]
examples/perfcounter/Makefile
examples/perfcounter/perf.h
lib/talloc/configure.ac
lib/talloc/script/abi_checks.sh
lib/talloc/script/mksyms.awk
lib/talloc/script/mksyms.sh
lib/talloc/script/release-script.sh [moved from lib/talloc/release-script.sh with 84% similarity]
lib/talloc/talloc.exports
lib/talloc/talloc.signatures
lib/tdr/tdr.c
lib/tdr/tdr.h
lib/tevent/tevent_signal.c
lib/util/asn1.c
lib/util/asn1.h
lib/util/talloc_stack.h
lib/util/tests/asn1_tests.c [new file with mode: 0644]
lib/util/tests/data_blob.c
lib/util/util.c
lib/util/util_tdb.c
libcli/auth/schannel_state_ldb.c
libcli/util/doserr.c
libcli/util/ntstatus.h
libcli/util/werror.h
libds/common/flags.h
librpc/gen_ndr/cli_samr.c
librpc/gen_ndr/cli_samr.h
librpc/gen_ndr/drsuapi.h
librpc/gen_ndr/misc.h
librpc/gen_ndr/nbt.h
librpc/gen_ndr/ndr_dcerpc.c
librpc/gen_ndr/ndr_dfs.c
librpc/gen_ndr/ndr_drsblobs.c
librpc/gen_ndr/ndr_drsuapi.c
librpc/gen_ndr/ndr_drsuapi.h
librpc/gen_ndr/ndr_dssetup.c
librpc/gen_ndr/ndr_echo.c
librpc/gen_ndr/ndr_epmapper.c
librpc/gen_ndr/ndr_eventlog.c
librpc/gen_ndr/ndr_krb5pac.c
librpc/gen_ndr/ndr_lsa.c
librpc/gen_ndr/ndr_misc.c
librpc/gen_ndr/ndr_misc.h
librpc/gen_ndr/ndr_named_pipe_auth.c
librpc/gen_ndr/ndr_nbt.c
librpc/gen_ndr/ndr_netlogon.c
librpc/gen_ndr/ndr_ntlmssp.c
librpc/gen_ndr/ndr_ntsvcs.c
librpc/gen_ndr/ndr_samr.c
librpc/gen_ndr/ndr_samr.h
librpc/gen_ndr/ndr_schannel.c
librpc/gen_ndr/ndr_security.c
librpc/gen_ndr/ndr_spoolss.c
librpc/gen_ndr/ndr_srvsvc.c
librpc/gen_ndr/ndr_svcctl.c
librpc/gen_ndr/ndr_winreg.c
librpc/gen_ndr/ndr_winreg.h
librpc/gen_ndr/ndr_wkssvc.c
librpc/gen_ndr/ndr_xattr.c
librpc/gen_ndr/netlogon.h
librpc/gen_ndr/ntsvcs.h
librpc/gen_ndr/samr.h
librpc/gen_ndr/security.h
librpc/gen_ndr/srv_samr.c
librpc/gen_ndr/winreg.h
librpc/idl/drsuapi.idl
librpc/idl/lsa.idl
librpc/idl/misc.idl
librpc/idl/nbt.idl
librpc/idl/netlogon.idl
librpc/idl/ntsvcs.idl
librpc/idl/samr.idl
librpc/idl/security.idl
librpc/idl/winreg.idl
librpc/ndr/libndr.h
librpc/ndr/ndr_basic.c
librpc/ndr/ndr_drsuapi.c
librpc/ndr/ndr_drsuapi.h
nsswitch/libwbclient/tests/wbclient.c [new file with mode: 0644]
nsswitch/libwbclient/wbc_pam.c
nsswitch/libwbclient/wbc_sid.c
nsswitch/libwbclient/wbclient.c
nsswitch/libwbclient/wbclient.h
nsswitch/pam_winbind.c
nsswitch/wbinfo.c
nsswitch/winbind_struct_protocol.h
packaging/RHEL/makerpms.sh.tmpl
packaging/RHEL/samba.spec.tmpl
pidl/lib/Parse/Pidl/NDR.pm
pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm
pidl/lib/Parse/Pidl/Samba4/TDR.pm
pidl/lib/Parse/Pidl/Typelist.pm
pidl/lib/Parse/Pidl/Wireshark/Conformance.pm
pidl/lib/Parse/Pidl/Wireshark/NDR.pm
pidl/pidl
pidl/tests/ndr.pl
pidl/tests/samba-ndr.pl
pidl/tests/typelist.pl
source3/Makefile.in
source3/VERSION
source3/auth/auth_domain.c
source3/configure.in
source3/include/ads.h
source3/include/includes.h
source3/include/nss_info.h
source3/include/proto.h
source3/include/rpc_misc.h
source3/include/rpc_perfcount.h [deleted file]
source3/include/rpc_perfcount_defs.h [deleted file]
source3/include/smb.h
source3/include/vfs.h
source3/include/vfs_macros.h
source3/lib/ldb/ldb_tdb/ldb_tdb.h
source3/lib/netapi/examples/Makefile.in
source3/lib/netapi/examples/netlogon/netlogon_control.c [new file with mode: 0644]
source3/lib/netapi/examples/netlogon/netlogon_control2.c [new file with mode: 0644]
source3/lib/netapi/examples/netlogon/nltest.c [new file with mode: 0644]
source3/lib/netapi/group.c
source3/lib/netapi/libnetapi.c
source3/lib/netapi/libnetapi.h
source3/lib/netapi/netapi.h
source3/lib/netapi/netlogon.c [new file with mode: 0644]
source3/lib/smbldap.c
source3/lib/system.c
source3/lib/util_reg.c
source3/lib/util_unistr.c
source3/libads/dns.c
source3/libads/util.c
source3/libnet/libnet_join.c
source3/librpc/gen_ndr/cli_wbint.c
source3/librpc/gen_ndr/cli_wbint.h
source3/librpc/gen_ndr/libnetapi.h
source3/librpc/gen_ndr/messaging.h
source3/librpc/gen_ndr/ndr_libnetapi.c
source3/librpc/gen_ndr/ndr_libnetapi.h
source3/librpc/gen_ndr/ndr_messaging.c
source3/librpc/gen_ndr/ndr_notify.c
source3/librpc/gen_ndr/ndr_perfcount.c [new file with mode: 0644]
source3/librpc/gen_ndr/ndr_perfcount.h [new file with mode: 0644]
source3/librpc/gen_ndr/ndr_wbint.c
source3/librpc/gen_ndr/ndr_wbint.h
source3/librpc/gen_ndr/perfcount.h [new file with mode: 0644]
source3/librpc/gen_ndr/srv_wbint.c
source3/librpc/gen_ndr/srv_wbint.h
source3/librpc/gen_ndr/wbint.h
source3/librpc/idl/libnetapi.idl
source3/librpc/idl/perfcount.idl [new file with mode: 0644]
source3/librpc/idl/wbint.idl
source3/libsmb/clifile.c
source3/libsmb/clikrb5.c
source3/libsmb/clispnego.c
source3/libsmb/dsgetdcname.c
source3/libsmb/trusts_util.c
source3/locale/net/de.po
source3/locale/net/genmsg
source3/locking/brlock.c
source3/lua-5.1.4/COPYRIGHT [deleted file]
source3/lua-5.1.4/HISTORY [deleted file]
source3/lua-5.1.4/INSTALL [deleted file]
source3/lua-5.1.4/Makefile [deleted file]
source3/lua-5.1.4/README [deleted file]
source3/lua-5.1.4/doc/amazon.gif [deleted file]
source3/lua-5.1.4/doc/contents.html [deleted file]
source3/lua-5.1.4/doc/cover.png [deleted file]
source3/lua-5.1.4/doc/logo.gif [deleted file]
source3/lua-5.1.4/doc/lua.css [deleted file]
source3/lua-5.1.4/doc/lua.html [deleted file]
source3/lua-5.1.4/doc/luac.html [deleted file]
source3/lua-5.1.4/doc/manual.css [deleted file]
source3/lua-5.1.4/doc/manual.html [deleted file]
source3/lua-5.1.4/doc/readme.html [deleted file]
source3/lua-5.1.4/etc/Makefile [deleted file]
source3/lua-5.1.4/etc/README [deleted file]
source3/lua-5.1.4/etc/all.c [deleted file]
source3/lua-5.1.4/etc/lua.hpp [deleted file]
source3/lua-5.1.4/etc/lua.ico [deleted file]
source3/lua-5.1.4/etc/luavs.bat [deleted file]
source3/lua-5.1.4/etc/min.c [deleted file]
source3/lua-5.1.4/etc/noparser.c [deleted file]
source3/lua-5.1.4/etc/strict.lua [deleted file]
source3/lua-5.1.4/src/Makefile [deleted file]
source3/lua-5.1.4/src/lapi.c [deleted file]
source3/lua-5.1.4/src/lapi.h [deleted file]
source3/lua-5.1.4/src/lauxlib.c [deleted file]
source3/lua-5.1.4/src/lauxlib.h [deleted file]
source3/lua-5.1.4/src/lbaselib.c [deleted file]
source3/lua-5.1.4/src/lcode.c [deleted file]
source3/lua-5.1.4/src/lcode.h [deleted file]
source3/lua-5.1.4/src/ldblib.c [deleted file]
source3/lua-5.1.4/src/ldebug.c [deleted file]
source3/lua-5.1.4/src/ldebug.h [deleted file]
source3/lua-5.1.4/src/ldo.c [deleted file]
source3/lua-5.1.4/src/ldo.h [deleted file]
source3/lua-5.1.4/src/ldump.c [deleted file]
source3/lua-5.1.4/src/lfunc.c [deleted file]
source3/lua-5.1.4/src/lfunc.h [deleted file]
source3/lua-5.1.4/src/lgc.c [deleted file]
source3/lua-5.1.4/src/lgc.h [deleted file]
source3/lua-5.1.4/src/linit.c [deleted file]
source3/lua-5.1.4/src/liolib.c [deleted file]
source3/lua-5.1.4/src/llex.c [deleted file]
source3/lua-5.1.4/src/llex.h [deleted file]
source3/lua-5.1.4/src/llimits.h [deleted file]
source3/lua-5.1.4/src/lmathlib.c [deleted file]
source3/lua-5.1.4/src/lmem.c [deleted file]
source3/lua-5.1.4/src/lmem.h [deleted file]
source3/lua-5.1.4/src/loadlib.c [deleted file]
source3/lua-5.1.4/src/lobject.c [deleted file]
source3/lua-5.1.4/src/lobject.h [deleted file]
source3/lua-5.1.4/src/lopcodes.c [deleted file]
source3/lua-5.1.4/src/lopcodes.h [deleted file]
source3/lua-5.1.4/src/loslib.c [deleted file]
source3/lua-5.1.4/src/lparser.c [deleted file]
source3/lua-5.1.4/src/lparser.h [deleted file]
source3/lua-5.1.4/src/lstate.c [deleted file]
source3/lua-5.1.4/src/lstate.h [deleted file]
source3/lua-5.1.4/src/lstring.c [deleted file]
source3/lua-5.1.4/src/lstring.h [deleted file]
source3/lua-5.1.4/src/lstrlib.c [deleted file]
source3/lua-5.1.4/src/ltable.c [deleted file]
source3/lua-5.1.4/src/ltable.h [deleted file]
source3/lua-5.1.4/src/ltablib.c [deleted file]
source3/lua-5.1.4/src/ltm.c [deleted file]
source3/lua-5.1.4/src/ltm.h [deleted file]
source3/lua-5.1.4/src/lua.c [deleted file]
source3/lua-5.1.4/src/lua.h [deleted file]
source3/lua-5.1.4/src/luac.c [deleted file]
source3/lua-5.1.4/src/luaconf.h [deleted file]
source3/lua-5.1.4/src/lualib.h [deleted file]
source3/lua-5.1.4/src/lundump.c [deleted file]
source3/lua-5.1.4/src/lundump.h [deleted file]
source3/lua-5.1.4/src/lvm.c [deleted file]
source3/lua-5.1.4/src/lvm.h [deleted file]
source3/lua-5.1.4/src/lzio.c [deleted file]
source3/lua-5.1.4/src/lzio.h [deleted file]
source3/lua-5.1.4/src/print.c [deleted file]
source3/lua-5.1.4/test/README [deleted file]
source3/lua-5.1.4/test/bisect.lua [deleted file]
source3/lua-5.1.4/test/cf.lua [deleted file]
source3/lua-5.1.4/test/echo.lua [deleted file]
source3/lua-5.1.4/test/env.lua [deleted file]
source3/lua-5.1.4/test/factorial.lua [deleted file]
source3/lua-5.1.4/test/fib.lua [deleted file]
source3/lua-5.1.4/test/fibfor.lua [deleted file]
source3/lua-5.1.4/test/globals.lua [deleted file]
source3/lua-5.1.4/test/hello.lua [deleted file]
source3/lua-5.1.4/test/life.lua [deleted file]
source3/lua-5.1.4/test/luac.lua [deleted file]
source3/lua-5.1.4/test/printf.lua [deleted file]
source3/lua-5.1.4/test/readonly.lua [deleted file]
source3/lua-5.1.4/test/sieve.lua [deleted file]
source3/lua-5.1.4/test/sort.lua [deleted file]
source3/lua-5.1.4/test/table.lua [deleted file]
source3/lua-5.1.4/test/trace-calls.lua [deleted file]
source3/lua-5.1.4/test/trace-globals.lua [deleted file]
source3/lua-5.1.4/test/xd.lua [deleted file]
source3/modules/nfs4_acls.c
source3/modules/onefs_open.c
source3/modules/vfs_acl_common.c
source3/modules/vfs_acl_tdb.c
source3/modules/vfs_afsacl.c
source3/modules/vfs_default.c
source3/modules/vfs_full_audit.c
source3/modules/vfs_gpfs.c
source3/modules/vfs_hpuxacl.c
source3/modules/vfs_shadow_copy2.c
source3/modules/vfs_streams_xattr.c
source3/modules/vfs_xattr_tdb.c
source3/param/loadparm.c
source3/passdb/passdb.c
source3/passdb/secrets.c
source3/passdb/util_unixsids.c
source3/printing/nt_printing.c
source3/registry/reg_backend_current_version.c
source3/registry/reg_backend_db.c
source3/registry/reg_backend_printing.c
source3/registry/reg_backend_prod_options.c
source3/registry/reg_backend_tcpip_params.c
source3/registry/reg_eventlog.c
source3/registry/reg_objects.c
source3/registry/reg_perfcount.c
source3/registry/reg_util.c
source3/rpc_client/cli_netlogon.c
source3/rpc_client/cli_pipe.c
source3/rpc_client/cli_reg.c [deleted file]
source3/rpc_client/cli_samr.c
source3/rpc_parse/parse_misc.c
source3/rpc_parse/parse_prs.c
source3/rpc_server/srv_netlog_nt.c
source3/rpc_server/srv_ntsvcs_nt.c
source3/rpc_server/srv_pipe.c
source3/rpc_server/srv_samr_nt.c
source3/rpc_server/srv_spoolss_nt.c
source3/rpcclient/cmd_netlogon.c
source3/rpcclient/cmd_samr.c
source3/rpcclient/cmd_spoolss.c
source3/rpcclient/rpcclient.c
source3/script/tests/selftest.sh
source3/script/tests/test_posix_s3.sh
source3/script/tests/test_smbclient_s3.sh
source3/services/services_db.c
source3/smbd/aio.c
source3/smbd/chgpasswd.c
source3/smbd/close.c
source3/smbd/files.c
source3/smbd/nttrans.c
source3/smbd/open.c
source3/smbd/posix_acls.c
source3/smbd/process.c
source3/smbd/reply.c
source3/smbd/service.c
source3/smbd/vfs.c
source3/torture/torture.c
source3/utils/net.c
source3/utils/net_lua.c [deleted file]
source3/utils/net_proto.h
source3/utils/net_rpc.c
source3/utils/net_rpc_audit.c
source3/utils/net_rpc_join.c
source3/utils/net_rpc_printer.c
source3/utils/net_rpc_registry.c
source3/winbindd/idmap_adex/provider_unified.c
source3/winbindd/idmap_ldap.c
source3/winbindd/nss_info.c
source3/winbindd/wb_fill_pwent.c
source3/winbindd/wb_getpwsid.c
source3/winbindd/winbindd.c
source3/winbindd/winbindd_cache.c
source3/winbindd/winbindd_change_machine_acct.c [new file with mode: 0644]
source3/winbindd/winbindd_check_machine_acct.c
source3/winbindd/winbindd_cm.c
source3/winbindd/winbindd_dual.c
source3/winbindd/winbindd_dual_srv.c
source3/winbindd/winbindd_pam.c
source3/winbindd/winbindd_proto.h
source3/winbindd/winbindd_rpc.c
source3/winbindd/winbindd_user.c
source4/auth/credentials/credentials.c
source4/auth/credentials/credentials_files.c
source4/auth/gensec/config.mk
source4/auth/gensec/gensec_gssapi.c
source4/auth/gensec/pygensec.c
source4/auth/gensec/tests/bindings.py
source4/auth/kerberos/krb5_init_context.c
source4/auth/ntlm/auth_sam.c
source4/auth/ntlmssp/ntlmssp_server.c
source4/cldap_server/netlogon.c
source4/client/client.c
source4/dsdb/common/sidmap.c [deleted file]
source4/dsdb/common/util.c
source4/dsdb/config.mk
source4/dsdb/kcc/kcc_periodic.c
source4/dsdb/repl/drepl_out_helpers.c
source4/dsdb/repl/replicated_objects.c
source4/dsdb/samdb/cracknames.c
source4/dsdb/samdb/ldb_modules/acl.c
source4/dsdb/samdb/ldb_modules/anr.c
source4/dsdb/samdb/ldb_modules/config.mk
source4/dsdb/samdb/ldb_modules/extended_dn_out.c
source4/dsdb/samdb/ldb_modules/extended_dn_store.c
source4/dsdb/samdb/ldb_modules/instancetype.c
source4/dsdb/samdb/ldb_modules/kludge_acl.c
source4/dsdb/samdb/ldb_modules/lazy_commit.c [new file with mode: 0644]
source4/dsdb/samdb/ldb_modules/local_password.c
source4/dsdb/samdb/ldb_modules/naming_fsmo.c
source4/dsdb/samdb/ldb_modules/objectclass.c
source4/dsdb/samdb/ldb_modules/objectguid.c
source4/dsdb/samdb/ldb_modules/partition.c
source4/dsdb/samdb/ldb_modules/password_hash.c
source4/dsdb/samdb/ldb_modules/pdc_fsmo.c
source4/dsdb/samdb/ldb_modules/repl_meta_data.c
source4/dsdb/samdb/ldb_modules/rootdse.c
source4/dsdb/samdb/ldb_modules/samldb.c
source4/dsdb/samdb/ldb_modules/schema_fsmo.c
source4/dsdb/samdb/ldb_modules/subtree_delete.c
source4/dsdb/samdb/ldb_modules/tests/samba3sam.py
source4/dsdb/samdb/ldb_modules/util.c [new file with mode: 0644]
source4/dsdb/samdb/ldb_modules/util.h [new file with mode: 0644]
source4/dsdb/samdb/samdb_privilege.c
source4/dsdb/schema/prefixmap.h [new file with mode: 0644]
source4/dsdb/schema/schema.h
source4/dsdb/schema/schema_inferiors.c
source4/dsdb/schema/schema_init.c
source4/dsdb/schema/schema_prefixmap.c [new file with mode: 0644]
source4/dsdb/schema/schema_set.c
source4/dsdb/schema/schema_syntax.c
source4/heimdal/kdc/windc.c
source4/heimdal/kuser/kinit.c
source4/heimdal/lib/hdb/keytab.c
source4/heimdal/lib/hx509/ca.c
source4/heimdal/lib/hx509/cert.c
source4/heimdal/lib/hx509/file.c
source4/heimdal/lib/hx509/ks_file.c
source4/heimdal/lib/hx509/name.c
source4/heimdal/lib/hx509/sel.c
source4/kdc/kdc.c
source4/kdc/kpasswdd.c
source4/ldap_server/ldap_backend.c
source4/lib/com/main.c
source4/lib/ldb-samba/ldif_handlers.c
source4/lib/ldb/common/ldb_controls.c
source4/lib/ldb/common/ldb_dn.c
source4/lib/ldb/common/ldb_modules.c
source4/lib/ldb/common/ldb_msg.c
source4/lib/ldb/include/ldb.h
source4/lib/ldb/ldb_ildap/ldb_ildap.c
source4/lib/ldb/ldb_sqlite3/ldb_sqlite3.c
source4/lib/ldb/ldb_tdb/ldb_tdb.c
source4/lib/ldb/modules/asq.c
source4/lib/ldb/modules/paged_results.c
source4/lib/ldb/modules/rdn_name.c
source4/lib/ldb/modules/sort.c
source4/lib/ldb/pyldb.c
source4/lib/ldb/tests/python/ldap.py
source4/lib/socket/socket.h
source4/lib/tls/tls.c
source4/lib/wmi/tools/wmic.c
source4/libcli/clifile.c
source4/libcli/ldap/ldap_client.c
source4/libcli/ldap/ldap_controls.c
source4/libcli/raw/interfaces.h
source4/libcli/raw/rawfile.c
source4/libcli/security/access_check.c
source4/libcli/security/object_tree.c
source4/libcli/smb2/util.c
source4/libcli/smb_composite/appendacl.c
source4/libnet/libnet_become_dc.c
source4/libnet/libnet_samsync.c
source4/librpc/rpc/dcerpc_smb.c
source4/librpc/rpc/pyrpc.h
source4/nbt_server/wins/winsdb.c
source4/ntptr/simple_ldb/ntptr_simple_ldb.c
source4/ntvfs/ntvfs_generic.c
source4/ntvfs/posix/pvfs_acl.c
source4/ntvfs/posix/pvfs_open.c
source4/ntvfs/simple/vfs_simple.c
source4/ntvfs/unixuid/vfs_unixuid.c
source4/param/loadparm.c
source4/param/param.h
source4/param/provision.c
source4/rpc_server/common/common.h
source4/rpc_server/dcerpc_server.c
source4/rpc_server/drsuapi/addentry.c
source4/rpc_server/drsuapi/dcesrv_drsuapi.c
source4/rpc_server/drsuapi/dcesrv_drsuapi.h
source4/rpc_server/drsuapi/drsutil.c
source4/rpc_server/drsuapi/getncchanges.c
source4/rpc_server/drsuapi/updaterefs.c
source4/rpc_server/lsa/dcesrv_lsa.c
source4/rpc_server/lsa/lsa.h
source4/rpc_server/lsa/lsa_init.c
source4/rpc_server/netlogon/dcerpc_netlogon.c
source4/rpc_server/samr/dcesrv_samr.c
source4/rpc_server/samr/samr_password.c
source4/rpc_server/spoolss/dcesrv_spoolss.c
source4/rpc_server/srvsvc/srvsvc_ntvfs.c
source4/script/minimal_includes.pl
source4/scripting/bin/reorgldb.py [deleted file]
source4/scripting/bin/setup_dns.sh
source4/scripting/bin/w32err_code.py [new file with mode: 0755]
source4/scripting/devel/drs/fsmo.ldif.template [new file with mode: 0644]
source4/scripting/devel/drs/named.conf.ad.template [new file with mode: 0644]
source4/scripting/devel/drs/revampire_ad.sh [new file with mode: 0755]
source4/scripting/devel/drs/unvampire_ad.sh [new file with mode: 0755]
source4/scripting/devel/drs/vampire_ad.sh [new file with mode: 0755]
source4/scripting/devel/drs/vars [new file with mode: 0644]
source4/scripting/python/samba/__init__.py
source4/scripting/python/samba/provision.py
source4/scripting/python/samba/tests/samdb.py
source4/selftest/knownfail
source4/selftest/skip
source4/setup/domainlevel
source4/setup/fedorads-index.ldif [new file with mode: 0644]
source4/setup/fedorads-linked-attributes.ldif [new file with mode: 0644]
source4/setup/fedorads-pam.ldif [new file with mode: 0644]
source4/setup/fedorads-refint-add.ldif [new file with mode: 0644]
source4/setup/fedorads-refint-delete.ldif [new file with mode: 0644]
source4/setup/fedorads.inf
source4/setup/provision
source4/setup/provision.ldif
source4/setup/provision_basedn.ldif
source4/setup/provision_basedn_modify.ldif
source4/setup/provision_configuration.ldif
source4/setup/provision_configuration_basedn.ldif
source4/setup/provision_privilege.ldif [new file with mode: 0644]
source4/setup/provision_schema_basedn.ldif
source4/setup/provision_schema_basedn_modify.ldif
source4/setup/provision_self_join.ldif
source4/setup/provision_users.ldif
source4/setup/pwsettings
source4/setup/schema_samba4.ldif
source4/smb_server/smb/nttrans.c
source4/smb_server/smb/reply.c
source4/torture/basic/base.c
source4/torture/basic/charset.c
source4/torture/basic/cxd_known.h [new file with mode: 0644]
source4/torture/basic/denytest.c
source4/torture/basic/disconnect.c
source4/torture/basic/unlink.c
source4/torture/config.mk
source4/torture/drs/config.mk [new file with mode: 0644]
source4/torture/drs/drs_init.c [new file with mode: 0644]
source4/torture/drs/drs_util.c [new file with mode: 0644]
source4/torture/drs/internal/prefixmap_tests.c [new file with mode: 0644]
source4/torture/gentest.c
source4/torture/ldap/basic.c
source4/torture/ldap/cldap.c
source4/torture/ldb/ldb.c
source4/torture/local/config.mk
source4/torture/local/local.c
source4/torture/nbench/nbio.c
source4/torture/raw/acls.c
source4/torture/raw/context.c
source4/torture/raw/eas.c
source4/torture/raw/mux.c
source4/torture/raw/notify.c
source4/torture/raw/open.c
source4/torture/raw/openbench.c
source4/torture/raw/oplock.c
source4/torture/raw/read.c
source4/torture/raw/rename.c
source4/torture/raw/samba3misc.c
source4/torture/raw/streams.c
source4/torture/raw/tconrate.c
source4/torture/raw/unlink.c
source4/torture/rpc/drsuapi.c
source4/torture/rpc/drsuapi.h
source4/torture/rpc/dssync.c
source4/torture/rpc/frsapi.c
source4/torture/rpc/lsa_lookup.c
source4/torture/rpc/netlogon.c
source4/torture/rpc/samba3rpc.c
source4/torture/rpc/samlogon.c
source4/torture/rpc/samr.c
source4/torture/rpc/samsync.c
source4/torture/rpc/schannel.c
source4/torture/rpc/wkssvc.c
source4/torture/smb2/compound.c
source4/torture/smb2/config.mk
source4/torture/smb2/create.c
source4/torture/smb2/dir.c
source4/torture/smb2/oplock.c [new file with mode: 0644]
source4/torture/smb2/oplocks.c [deleted file]
source4/torture/smb2/smb2.c
source4/torture/smb2/streams.c [new file with mode: 0644]
source4/torture/smbtorture.c
source4/torture/smbtorture.h
source4/torture/torture.c
source4/torture/util.h
source4/torture/util_smb.c
source4/torture/winbind/config.mk
source4/torture/winbind/winbind.c
source4/winbind/wb_cmd_getgrgid.c
source4/winbind/wb_cmd_getgrnam.c
source4/winbind/wb_cmd_getpwuid.c
source4/winbind/wb_gid2sid.c
source4/winbind/wb_irpc.c
source4/winbind/wb_pam_auth.c
source4/winbind/wb_samba3_cmd.c
source4/winbind/wb_sids2xids.c
source4/winbind/wb_uid2sid.c
source4/winbind/wb_xids2sids.c

index 43f7846d1d3dcfe7b492ecc497615a488a4bb525..1d6420a1ab7ca545ef423c5790068290dfbec7fc 100644 (file)
@@ -141,6 +141,7 @@ source4/dsdb/common/proto.h
 source4/dsdb/kcc/kcc_service_proto.h
 source4/dsdb/repl/drepl_service_proto.h
 source4/dsdb/samdb/samdb_proto.h
+source4/dsdb/samdb/ldb_modules/util_proto.h
 source4/dsdb/schema/proto.h
 source4/extra_cflags.txt
 source4/foo.tdb
@@ -264,6 +265,7 @@ pidl/Makefile
 pidl/pm_to_blib
 source4/rpc_server/common/proto.h
 source4/rpc_server/dcerpc_server_proto.h
+source4/rpc_server/service_rpc.h
 source4/rpc_server/lsa/proto.h
 source4/rpc_server/samr/proto.h
 source4/rpc_server/srvsvc/proto.h
@@ -296,6 +298,7 @@ source4/torture/proto.h
 source4/torture/rap/proto.h
 source4/torture/raw/proto.h
 source4/torture/rpc/proto.h
+source4/torture/drs/proto.h
 source4/torture/smb2/proto.h
 source4/torture.tdb
 source4/torture/unix/proto.h
index 1c04e13c8d63aa30657d79f9a55d65d959e23af7..3baaad793713dbbe224348126cd57042f6d002f6 100644 (file)
@@ -320,6 +320,11 @@ static int open_cred_file(char * file_name)
        char * temp_val;
        FILE * fs;
        int i, length;
+
+       i = access(file_name, R_OK);
+       if (i)
+               return i;
+
        fs = fopen(file_name,"r");
        if(fs == NULL)
                return errno;
@@ -442,6 +447,12 @@ static int get_password_from_file(int file_descript, char * filename)
        }
 
        if(filename != NULL) {
+               rc = access(filename, R_OK);
+               if (rc) {
+                       fprintf(stderr, "mount.cifs failed: access check of %s failed: %s\n",
+                                       filename, strerror(errno));
+                       exit(EX_SYSERR);
+               }
                file_descript = open(filename, O_RDONLY);
                if(file_descript < 0) {
                        fprintf(stderr, "mount.cifs failed. %s attempting to open password file %s\n",
@@ -501,9 +512,6 @@ static int parse_options(char ** optionsp, unsigned long * filesys_flags)
                return 1;
        data = *optionsp;
 
-       if(verboseflag)
-               fprintf(stderr, "parsing options: %s\n", data);
-
        /* BB fixme check for separator override BB */
 
        if (getuid()) {
@@ -594,14 +602,23 @@ static int parse_options(char ** optionsp, unsigned long * filesys_flags)
                                } else
                                        got_password = 1;
                        } else if (strnlen(value, MOUNT_PASSWD_SIZE) < MOUNT_PASSWD_SIZE) {
-                               if(got_password)
+                               if (got_password) {
                                        fprintf(stderr, "\nmount.cifs warning - password specified twice\n");
-                               got_password = 1;
+                               } else {
+                                       mountpassword = strndup(value, MOUNT_PASSWD_SIZE);
+                                       if (!mountpassword) {
+                                               fprintf(stderr, "mount.cifs error: %s", strerror(ENOMEM));
+                                               SAFE_FREE(out);
+                                               return 1;
+                                       }
+                                       got_password = 1;
+                               }
                        } else {
                                fprintf(stderr, "password too long\n");
                                SAFE_FREE(out);
                                return 1;
                        }
+                       goto nocopy;
                } else if (strncmp(data, "sec", 3) == 0) {
                        if (value) {
                                if (!strncmp(value, "none", 4) ||
@@ -1501,15 +1518,6 @@ mount_retry:
                        strlcat(options,domain_name,options_size);
                }
        }
-       if(mountpassword) {
-               /* Commas have to be doubled, or else they will
-               look like the parameter separator */
-/*             if(sep is not set)*/
-               if(retry == 0)
-                       check_for_comma(&mountpassword);
-               strlcat(options,",pass=",options_size);
-               strlcat(options,mountpassword,options_size);
-       }
 
        strlcat(options,",ver=",options_size);
        strlcat(options,MOUNT_CIFS_VERSION_MAJOR,options_size);
@@ -1522,8 +1530,6 @@ mount_retry:
                strlcat(options,",prefixpath=",options_size);
                strlcat(options,prefixpath,options_size); /* no need to cat the / */
        }
-       if(verboseflag)
-               fprintf(stderr, "\nmount.cifs kernel mount options %s \n",options);
 
        /* convert all '\\' to '/' in share portion so that /proc/mounts looks pretty */
        replace_char(dev_name, '\\', '/', strlen(share_name));
@@ -1565,6 +1571,25 @@ mount_retry:
                         addr6->sin6_scope_id);
        }
 
+       if(verboseflag)
+               fprintf(stderr, "\nmount.cifs kernel mount options: %s", options);
+
+       if (mountpassword) {
+               /*
+                * Commas have to be doubled, or else they will
+                * look like the parameter separator
+                */
+               if(retry == 0)
+                       check_for_comma(&mountpassword);
+               strlcat(options,",pass=",options_size);
+               strlcat(options,mountpassword,options_size);
+               if (verboseflag)
+                       fprintf(stderr, ",pass=********");
+       }
+
+       if (verboseflag)
+               fprintf(stderr, "\n");
+
        if (!fakemnt && mount(dev_name, mountpoint, "cifs", flags, options)) {
                switch (errno) {
                case ECONNREFUSED:
index 33e2697bd3fac7f13c43f4fa24816bb2b495baae..b7eaa06b53923108238aed14ac50ce6f77d29077 100644 (file)
@@ -93,7 +93,6 @@
 <indexterm><primary>idmap uid</primary></indexterm>
 <indexterm><primary>idmap gid</primary></indexterm>
 <indexterm><primary>idmap backend</primary></indexterm>
-<indexterm><primary>LDAP</primary></indexterm>
                Winbind maintains a database called winbind_idmap.tdb in which it stores
                mappings between UNIX UIDs, GIDs, and NT SIDs. This mapping is used only
                for users and groups that do not have a local UID/GID. It stores the UID/GID
        Users on the UNIX machine can then use NT user and group
        names as they would <quote>native</quote> UNIX names. They can chown files
        so they are owned by NT domain users or even login to the
-       UNIX machine and run a UNIX X-Window session as a domain user.</para>
+       UNIX machine and run a UNIX X Window session as a domain user.</para>
 
        <para>
 <indexterm><primary>domain controller</primary></indexterm>
@@ -571,7 +570,7 @@ is for you.
 <para>
 <indexterm><primary>PAM</primary></indexterm>
 <indexterm><primary>back up</primary></indexterm>
-<indexterm><primary>boot disk`</primary></indexterm>
+<indexterm><primary>boot disk</primary></indexterm>
 If you have a Samba configuration file that you are currently using, <emphasis>BACK IT UP!</emphasis>
 If your system already uses PAM, <emphasis>back up the <filename>/etc/pam.d</filename> directory
 contents!</emphasis> If you haven't already made a boot disk, <emphasis>MAKE ONE NOW!</emphasis>
@@ -602,8 +601,8 @@ instructions on downloading the source code.
 <indexterm><primary>development libraries</primary></indexterm>
 To allow domain users the ability to access Samba shares and files, as well as potentially other services
 provided by your Samba machine, PAM must be set up properly on your
-machine. In order to compile the Winbind modules, you should have at least the PAM development libraries installed
-on your system. Please refer to the PAM Web site <ulink url="http://www.kernel.org/pub/linux/libs/pam/"/>.
+machine. In order to compile the Winbind modules, the PAM development libraries should be installed
+on your system. Please refer to the <ulink url="http://www.kernel.org/pub/linux/libs/pam/">PAM Web Site</ulink>.
 </para>
 </sect2>
 
@@ -976,9 +975,6 @@ The same thing can be done for groups with the command:
 <indexterm><primary>/etc/init.d/smb</primary></indexterm>
 <indexterm><primary>/etc/init.d/samba</primary></indexterm>
 <indexterm><primary>/usr/local/samba/bin</primary></indexterm>
-<indexterm><primary></primary></indexterm>
-<indexterm><primary></primary></indexterm>
-<indexterm><primary></primary></indexterm>
 The &winbindd; daemon needs to start up after the &smbd; and &nmbd; daemons are running.  To accomplish this
 task, you need to modify the startup scripts of your system.  They are located at
 <filename>/etc/init.d/smb</filename> in Red Hat Linux and in <filename>/etc/init.d/samba</filename> in Debian
@@ -1119,7 +1115,7 @@ usually only starts smbd and nmbd but should now start winbindd, too. If you hav
 </programlisting></para>
 
 <para>
-Again, if you would like to run Samba in dual daemon mode, replace:
+Again, if you would like to run winbindd in dual daemon mode, replace:
 <programlisting>
 /usr/local/samba/sbin/winbindd
 </programlisting>
@@ -1234,7 +1230,7 @@ pre-create the directories of users to make sure users can log in on UNIX with t
 <indexterm><primary>Winbind</primary></indexterm>
 <indexterm><primary>ftp access</primary></indexterm>
 The <filename>/etc/pam.d/ftp</filename> file can be changed to allow Winbind ftp access in a manner similar to
-the samba file. My <filename>/etc/pam.d/ftp</filename> file was changed to look like this:
+the <filename>/etc/pam.d/samba</filename>Samba file. My <filename>/etc/pam.d/ftp</filename> file was changed to look like this:
 <programlisting>
 auth       required     /lib/security/pam_listfile.so item=user sense=deny \
         file=/etc/ftpusers onerr=succeed
index 391ec84ccc3f56a6f4c05c4f613b29fc4bcc7f68..6a134f4268c5de52fa318547823b32a9cd6f14f8 100644 (file)
@@ -5,6 +5,9 @@
 <refmeta>
        <refentrytitle>ldbrename</refentrytitle>
        <manvolnum>1</manvolnum>
+        <refmiscinfo class="source">Samba</refmiscinfo>
+        <refmiscinfo class="manual">User Commands</refmiscinfo>
+        <refmiscinfo class="version">3.6</refmiscinfo>
 </refmeta>
 
 
index 82fd7a57af793b24089a1f5d360c1d4fb051955b..8ab33d58b06813d72ef5530348013f7afd4d6fee 100644 (file)
@@ -748,6 +748,9 @@ such as domain name, domain sid and number of users and groups.
 <para>Add a interdomain trust account for <replaceable>DOMAIN</replaceable>. 
 This is in fact a Samba account named <replaceable>DOMAIN$</replaceable> 
 with the account flag <constant>'I'</constant> (interdomain trust account). 
+This is required for incoming trusts to work. It makes Samba be a
+trusted domain of the foreign (trusting) domain.
+Users of the Samba domain will be made available in the foreign domain.
 If the command is used against localhost it has the same effect as 
 <command>smbpasswd -a -i DOMAIN</command>. Please note that both commands
 expect a appropriate UNIX account. 
@@ -769,8 +772,13 @@ it has the same effect as <command>smbpasswd -x DOMAIN$</command>.
 <title>RPC TRUSTDOM ESTABLISH <replaceable>DOMAIN</replaceable></title>
 
 <para>
-Establish a trust relationship to a trusting domain. 
+Establish a trust relationship to a trusted domain. 
 Interdomain account must already be created on the remote PDC.
+This is required for outgoing trusts to work. It makes Samba be a
+trusting domain of a foreign (trusted) domain.
+Users of the foreign domain will be made available in our domain.
+You'll need winbind and a working idmap config to make them
+appear in your system.
 </para>
 
 </refsect3>
@@ -784,7 +792,7 @@ Interdomain account must already be created on the remote PDC.
 <refsect3>
 <title>RPC TRUSTDOM LIST</title>
 
-<para>List all current interdomain trust relationships.</para>
+<para>List all interdomain trust relationships.</para>
 
 </refsect3>
 
@@ -835,7 +843,7 @@ Force shutting down all applications.
 Timeout before system will be shut down. An interactive 
 user of the system can use this time to cancel the shutdown.
 </para></listitem>
-</varlistentry>'>
+</varlistentry>
 
 <varlistentry>
 <term>-C message</term>
index 7803d1064f976974e475e06fc5664eec13cfcdb7..d6628e7da9efa63a360597f00a25d92196fbb1ea 100644 (file)
@@ -23,6 +23,7 @@
                <arg choice="opt">--all-domains</arg>
                <arg choice="opt">--allocate-gid</arg>
                <arg choice="opt">--allocate-uid</arg>
+               <arg choice="opt">-c</arg>
                <arg choice="opt">-D domain</arg>
                <arg choice="opt">--domain domain</arg>
                <arg choice="opt">-g</arg>
                </para></listitem>
                </varlistentry>
 
+               <varlistentry>
+               <term>-c|--change-secret</term>
+               <listitem><para>Change the trust account password. May be used
+               in conjunction with <option>domain</option> in order to change
+               interdomain trust account passwords.
+               </para></listitem>
+               </varlistentry>
+
                <varlistentry>
                <term>--domain <replaceable>name</replaceable></term>
                <listitem><para>This parameter sets the domain on which any specified
                <term>-t|--check-secret</term>
                <listitem><para>Verify that the workstation trust account
                created when the Samba server is added to the Windows NT
-               domain is working. </para></listitem>
+               domain is working. May be used in conjunction with
+               <option>domain</option> in order to verify interdomain
+               trust accounts.</para></listitem>
                </varlistentry>
 
                <varlistentry>
diff --git a/docs-xml/smbdotconf/ldap/ldapreffollow.xml b/docs-xml/smbdotconf/ldap/ldapreffollow.xml
new file mode 100644 (file)
index 0000000..f059f15
--- /dev/null
@@ -0,0 +1,21 @@
+<samba:parameter name="ldap ref follow" context="G" type="enum"
+       advanced="1" developer="1"
+       xmlns:samba="http://www.samba.org/samba/DTD/samba-doc">
+
+<description>
+
+       <para>This option controls whether to follow LDAP referrals or not when
+       searching for entries in the LDAP database. Possible values are
+       <emphasis>on</emphasis> to enable following referrals,
+       <emphasis>off</emphasis> to disable this, and
+       <emphasis>auto</emphasis>, to use the libldap default settings.
+       libldap's choice of following referrals or not is set in
+       /etc/openldap/ldap.conf with the REFERRALS parameter as documented in
+       ldap.conf(5).</para>
+
+</description>
+
+<value type="default">auto</value>
+<value type="example">off</value>
+
+</samba:parameter>
diff --git a/docs-xml/smbdotconf/protocol/sharefakefscaps.xml b/docs-xml/smbdotconf/protocol/sharefakefscaps.xml
new file mode 100644 (file)
index 0000000..713b95b
--- /dev/null
@@ -0,0 +1,20 @@
+<samba:parameter name="share:fake_fscaps"
+       context="G"
+       type="string"
+                advanced="1" developer="0"
+                 xmlns:samba="http://www.samba.org/samba/DTD/samba-doc">
+<description>
+
+       <para>
+       This is needed to support some special application that makes
+       QFSINFO calls to check whether we set the SPARSE_FILES bit
+       (0x40). If this bit is not set that particular application
+       refuses to work against
+       Samba. With <smbconfoption name="share:fake_fscaps">64</smbconfoption>
+       the SPARSE_FILES file system capability flag is set. Use other
+       decimal values to specify the bitmask you need to fake.
+       </para>
+
+</description>
+<value type="default">0</value>
+</samba:parameter>
index 4e68c5e03aa16b5c5529343c475f7f75e2cf7911..e055bd35f1af8b3b5c56024aae964d1aac558fc4 100644 (file)
     case-insensitive nature, and the choice of algorithm.  Servers
     without Windows 95/98/ME or MS DOS clients are advised to disable
     this option.  </para>
+
+    <para>When this parameter is set to <value>no</value> this
+    will also result in sambaLMPassword in Samba's passdb being
+    blanked after the next password change. As a result of that
+    lanman clients won't be able to authenticate, even if lanman
+    auth is reenabled later on.
+    </para>
                
     <para>Unlike the <command moreinfo="none">encrypt
     passwords</command> option, this parameter cannot alter client
diff --git a/examples/ad-bench/README b/examples/ad-bench/README
new file mode 100644 (file)
index 0000000..de6235f
--- /dev/null
@@ -0,0 +1,42 @@
+==========================
+Active Directory benchmark
+==========================
+
+Setup
+=====
+
+You need to modify settings.sh to point to the correct binaries for your
+platform. One thing you might want to do in order to be able to run the
+benchmark as a non-root user is to compile your own samba version with the
+--prefix configure option set to some location writeable by the user who will be
+running the benchmark. You then need to point the NET variable to the correct
+location.
+
+Most likely, you will also want to put the realm to kdc hostname mappings into
+krb5.conf and the hostname to IP address mappings for the kdcs to test into the
+hosts file, so you actually benchmark the AD speed, not DNS lookup speed.
+
+Running the benchmarks
+======================
+
+Per default, the benchmark looks for a file called runs.txt in the directory the
+benchmark is run from. (This is configurable in the settings.sh file)
+runs.txt contains the credentials and server names to connect to, one set of
+credentials/server per line. The format is as follows:
+
+user@REALM.EXAMPLE.COM%password:domain_controller_host_name
+
+License
+=======
+AD-Bench is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+AD-Bench is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with AD-Bench.  If not, see <http://www.gnu.org/licenses/>.
diff --git a/examples/ad-bench/ad-bench.sh b/examples/ad-bench/ad-bench.sh
new file mode 100755 (executable)
index 0000000..84bb770
--- /dev/null
@@ -0,0 +1,38 @@
+#!/bin/bash
+# AD-Bench main program, runs all the benchmarks
+#
+# Copyright (C) 2009  Kai Blin  <kai@samba.org>
+#
+# This file is part of AD-Bench, an Active Directory benchmark tool
+#
+# AD-Bench is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# AD-Bench is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with AD-Bench.  If not, see <http://www.gnu.org/licenses/>.
+
+source `dirname $0`/utils.sh
+
+if [ ! -f $RUNS ]; then
+       echo "Error: please fill in $RUNS"
+       echo "Sambple entries are"
+       echo "user@REALM.EXAMPLE.COM%password:domain_controller"
+       exit 1
+fi
+
+for run in `cat $RUNS`; do
+       echo "START RUN"
+       bash `dirname $0`/time_kinit.sh `echo $run|cut -d ":" -f 1`
+       bash `dirname $0`/time_join.sh `echo $run|cut -d ":" -f 1` `echo $run|cut -d ":" -f 2`
+       bash `dirname $0`/time_user.sh `echo $run|cut -d ":" -f 1` `echo $run|cut -d ":" -f 2`
+       bash `dirname $0`/time_group.sh `echo $run|cut -d ":" -f 1` `echo $run|cut -d ":" -f 2`
+       bash `dirname $0`/time_ldap.sh `echo $run|cut -d ":" -f 1` `echo $run|cut -d ":" -f 2`
+       echo "END RUN"
+done
diff --git a/examples/ad-bench/settings.sh b/examples/ad-bench/settings.sh
new file mode 100644 (file)
index 0000000..f01edc3
--- /dev/null
@@ -0,0 +1,41 @@
+#!/bin/bash
+# AD-Bench settings
+#
+# Copyright (C) 2009  Kai Blin  <kai@samba.org>
+#
+# This file is part of AD-Bench, an Active Directory benchmark tool
+#
+# AD-Bench is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# AD-Bench is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with AD-Bench.  If not, see <http://www.gnu.org/licenses/>.
+
+
+DATE=date
+BC=bc
+SED=sed
+DATE_FORMATSTR="+%s.%N"
+
+KINIT=kinit
+# MIT krb < 1.6
+KINIT_PARAM_OLD="--password-file=STDIN"
+# MIT krb >= 1.6
+KINIT_PARAM_NEW=""
+
+KDESTROY=kdestroy
+SEQ=seq
+
+NEW_KRB5CCNAME=/tmp/ad_test_ccname
+
+NET="${HOME}/samba/bin/net"
+CONFIG_FILE=`dirname $0`/smb.conf
+
+RUNS=`dirname $0`/runs.txt
diff --git a/examples/ad-bench/test_utils.sh b/examples/ad-bench/test_utils.sh
new file mode 100644 (file)
index 0000000..7f46b07
--- /dev/null
@@ -0,0 +1,31 @@
+#!/bin/bash
+# AD-Bench utility function tests
+#
+# Copyright (C) 2009  Kai Blin  <kai@samba.org>
+#
+# This file is part of AD-Bench, an Active Directory benchmark tool
+#
+# AD-Bench is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# AD-Bench is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with AD-Bench.  If not, see <http://www.gnu.org/licenses/>.
+
+
+source `dirname $0`/utils.sh
+
+INPUT="administrator@AD.EXAMPLE.COM%secret"
+echo "Principal for $INPUT is " $( get_principal $INPUT )
+echo "Password  for $INPUT is " $( get_password $INPUT )
+echo "Realm     for $INPUT is " $( get_realm $INPUT )
+echo "NT_DOM    for $INPUT is " $( get_nt_dom $INPUT )
+
+
+echo "Padding 2: " $( pad_number 1 2 ) " 4: " $(pad_number 23 4)
diff --git a/examples/ad-bench/time_group.sh b/examples/ad-bench/time_group.sh
new file mode 100644 (file)
index 0000000..438376e
--- /dev/null
@@ -0,0 +1,125 @@
+#!/bin/bash
+# AD-Bench group add/remove benchmark
+#
+# Copyright (C) 2009  Kai Blin  <kai@samba.org>
+#
+# This file is part of AD-Bench, an Active Directory benchmark tool
+#
+# AD-Bench is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# AD-Bench is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with AD-Bench.  If not, see <http://www.gnu.org/licenses/>.
+
+ITERATIONS=100
+
+source `dirname $0`/utils.sh
+
+PRINCIPAL=$(get_principal $1)
+PASSWORD=$(get_password $1)
+REALM=$(get_realm $1)
+NT_DOM=$(get_nt_dom $1)
+SERVER=$2
+
+add_group () {
+       GROUP=$1
+       ${NET} ads group add "${GROUP}" -k -s $CONFIG_FILE -S ${SERVER} > /dev/null
+       RET=$?
+       if [ $RET -ne 0 ]; then
+               echo "${NET} ads group add returned error: $RET"
+               exit 1
+       fi
+}
+
+del_group () {
+       GROUP=$1
+       ${NET} ads group delete "${GROUP}" -k -s $CONFIG_FILE -S ${SERVER} > /dev/null
+       RET=$?
+       if [ $RET -ne 0 ]; then
+               echo "${NET} returned error: $RET"
+               exit 1
+       fi
+}
+
+enum_group () {
+       ${NET} ads group -k -s $CONFIG_FILE -S $SERVER > /dev/null
+       RET=$?
+       if [ $RET -ne 0 ]; then
+               echo "${NET} returned error: $RET"
+               exit 1
+       fi
+}
+
+info_group () {
+       GROUP=$1
+       ${NET} ads group info "${GROUP}" -k -s $CONFIG_FILE -S ${SERVER} > /dev/null
+       RET=$?
+       if [ $RET -ne 0 ]; then
+               echo "${NET} returned error: $RET"
+               exit 1
+       fi
+}
+
+set_up () {
+       set_krb_env
+       setup_kinit
+       call_kinit "${PRINCIPAL}" "${PASSWORD}"
+       write_configfile "${REALM}" "${NT_DOM}"
+}
+
+tear_down () {
+       ${KDESTROY}
+       restore_krb_env
+}
+
+set_up
+
+echo -e "\tGROUP $SERVER"
+
+START_TIME=$(start_timer)
+
+echo -en "\t"
+for i in $( ${SEQ} 1 $ITERATIONS ); do
+       GROUP=$( echo "ad_test_$(pad_number $i 3)" )
+       add_group $GROUP
+       echo -n "."
+done
+echo "done"
+
+enum_group
+
+# Requires winbind, which requires root perms to start. Skip this for now
+#echo -en "\t"
+#for i in $( ${SEQ} 1 $ITERATIONS ); do
+#      GROUP=$( echo "ad_test_$(pad_number $i 3)" )
+#      info_group $GROUP
+#      echo -n "."
+#done
+#echo "done"
+
+echo -en "\t"
+for i in $( ${SEQ} 1 $ITERATIONS ); do
+       GROUP=$( echo "ad_test_$(pad_number $i 3)" )
+       del_group $GROUP
+       echo -n "."
+done
+echo "done"
+
+STOP_TIME=$(stop_timer)
+
+TOTAL_TIME=$( total_time $START_TIME $STOP_TIME )
+
+echo -e "\t\ttotal time:\t\t${TOTAL_TIME}s"
+
+LOGINS_PER_MINUTE=$(iterations_per_minute $START_TIME $STOP_TIME $ITERATIONS)
+
+echo -e "\t\titerations/min:\t\t$LOGINS_PER_MINUTE"
+
+tear_down
diff --git a/examples/ad-bench/time_join.sh b/examples/ad-bench/time_join.sh
new file mode 100644 (file)
index 0000000..e9c3873
--- /dev/null
@@ -0,0 +1,85 @@
+#!/bin/bash
+# AD-Bench Machine join/part benchmark
+#
+# Copyright (C) 2009  Kai Blin  <kai@samba.org>
+#
+# This file is part of AD-Bench, an Active Directory benchmark tool
+#
+# AD-Bench is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# AD-Bench is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with AD-Bench.  If not, see <http://www.gnu.org/licenses/>.
+
+ITERATIONS=100
+
+source `dirname $0`/utils.sh
+
+PRINCIPAL=$(get_principal $1)
+PASSWORD=$(get_password $1)
+REALM=$(get_realm $1)
+NT_DOM=$(get_nt_dom $1)
+
+join_domain () {
+       SERVER=$1
+       ${NET} ads join -k -s $CONFIG_FILE -S ${SERVER} > /dev/null
+       RET=$?
+       if [ $RET -ne 0 ]; then
+               echo "${NET} returned error: $RET"
+               exit 1
+       fi
+}
+
+leave_domain () {
+       SERVER=$1
+       ${NET} ads leave -k -s $CONFIG_FILE -S ${SERVER} > /dev/null
+       if [ $RET -ne 0 ]; then
+               echo "${NET} returned error: $RET"
+               exit 1
+       fi
+}
+
+set_up () {
+       set_krb_env
+       setup_kinit
+       call_kinit "${PRINCIPAL}" "${PASSWORD}"
+       write_configfile "${REALM}" "${NT_DOM}"
+}
+
+tear_down () {
+       ${KDESTROY}
+       restore_krb_env
+}
+
+set_up
+
+echo -e "\tJOIN $2"
+
+START_TIME=$(start_timer)
+
+echo -en "\t"
+for i in $( ${SEQ} 1 $ITERATIONS ); do
+       join_domain $2
+       leave_domain $2
+       echo -n "."
+done
+echo "done"
+
+STOP_TIME=$(stop_timer)
+
+TOTAL_TIME=$( total_time $START_TIME $STOP_TIME )
+
+echo -e "\t\ttotal time:\t\t${TOTAL_TIME}s"
+
+LOGINS_PER_MINUTE=$(iterations_per_minute $START_TIME $STOP_TIME $ITERATIONS)
+
+echo -e "\t\titerations/min:\t\t$LOGINS_PER_MINUTE"
+
+tear_down
diff --git a/examples/ad-bench/time_kinit.sh b/examples/ad-bench/time_kinit.sh
new file mode 100644 (file)
index 0000000..76c4ff4
--- /dev/null
@@ -0,0 +1,63 @@
+#!/bin/bash
+# AD-Bench Kerberos ticket benchmark
+#
+# Copyright (C) 2009  Kai Blin  <kai@samba.org>
+#
+# This file is part of AD-Bench, an Active Directory benchmark tool.
+#
+# AD-Bench is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# AD-Bench is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with AD-Bench.  If not, see <http://www.gnu.org/licenses/>.
+
+# Iterations are set per test, so more time-consuming tests can be run less
+# often
+ITERATIONS=100
+
+source `dirname $0`/utils.sh
+
+set_up () {
+       set_krb_env
+       setup_kinit
+}
+
+tear_down () {
+       restore_krb_env
+}
+
+set_up
+
+PRINCIPAL=$( get_principal $1)
+PASSWORD=$( get_password $1)
+
+echo -e "\tKINIT ${PRINCIPAL}"
+
+START_TIME=$( start_timer )
+
+echo -en "\t"
+for i in $(${SEQ} 1 $ITERATIONS); do
+       call_kinit "${PRINCIPAL}" "${PASSWORD}"
+       ${KDESTROY}
+       echo -n "."
+done
+echo "done"
+
+STOP_TIME=$( stop_timer )
+
+TOTAL_TIME=$( total_time $START_TIME $STOP_TIME )
+
+echo -e "\t\ttotal time:\t\t${TOTAL_TIME}s"
+
+LOGINS_PER_MINUTE=$(iterations_per_minute $START_TIME $STOP_TIME $ITERATIONS)
+
+echo -e "\t\titerations/min:\t\t$LOGINS_PER_MINUTE"
+
+tear_down
diff --git a/examples/ad-bench/time_ldap.sh b/examples/ad-bench/time_ldap.sh
new file mode 100644 (file)
index 0000000..586c568
--- /dev/null
@@ -0,0 +1,137 @@
+#!/bin/bash
+
+ITERATIONS=100
+
+source `dirname $0`/utils.sh
+
+PRINCIPAL=$(get_principal $1)
+PASSWORD=$(get_password $1)
+REALM=$(get_realm $1)
+NT_DOM=$(get_nt_dom $1)
+SERVER=$2
+
+search_users () {
+       ${NET} ads search '(objectCategory=user)' sAMAccountName -k -s $CONFIG_FILE -S ${SERVER} > /dev/null
+       RET=$?
+       if [ $RET -ne 0 ]; then
+               echo "${NET} returned error: $RET"
+               exit 1
+       fi
+}
+
+search_groups () {
+       ${NET} ads search '(objectCategory=group)' sAMAccountName -k -s $CONFIG_FILE -S ${SERVER} > /dev/null
+       if [ $RET -ne 0 ]; then
+               echo "${NET} returned error: $RET"
+               exit 1
+       fi
+}
+
+search_computers () {
+       ${NET} ads search '(objectCategory=computer)' sAMAccountName -k -s $CONFIG_FILE -S ${SERVER} > /dev/null
+       if [ $RET -ne 0 ]; then
+               echo "${NET} returned error: $RET"
+               exit 1
+       fi
+}
+
+search_wildcard () {
+       ${NET} ads search '(objectCategory=*)' sAMAccountName -k -s $CONFIG_FILE -S ${SERVER} > /dev/null
+       if [ $RET -ne 0 ]; then
+               echo "${NET} returned error: $RET"
+               exit 1
+       fi
+}
+
+search_unindexed () {
+       ${NET} ads search '(description=Built-in account for adminstering the computer/domain)' sAMAccountName -k -s $CONFIG_FILE -S ${SERVER} > /dev/null
+       if [ $RET -ne 0 ]; then
+               echo "${NET} returned error: $RET"
+               exit 1
+       fi
+}
+
+set_up () {
+       set_krb_env
+       setup_kinit
+       call_kinit "${PRINCIPAL}" "${PASSWORD}"
+       write_configfile "${REALM}" "${NT_DOM}"
+}
+
+tear_down () {
+       ${KDESTROY}
+       restore_krb_env
+}
+
+set_up
+
+echo -e "\tSEARCH INDEXED $2"
+
+START_TIME=$(start_timer)
+
+echo -en "\t"
+for i in $( ${SEQ} 1 $ITERATIONS ); do
+       search_users
+       search_groups
+       search_computers
+       echo -n "."
+done
+echo "done"
+
+STOP_TIME=$(stop_timer)
+
+TOTAL_TIME=$( total_time $START_TIME $STOP_TIME )
+
+echo -e "\t\ttotal time:\t\t${TOTAL_TIME}s"
+
+LOGINS_PER_MINUTE=$(iterations_per_minute $START_TIME $STOP_TIME $ITERATIONS)
+
+echo -e "\t\titerations/min:\t\t$LOGINS_PER_MINUTE"
+
+########################
+
+echo -e "\tSEARCH WILDCARD $2"
+
+START_TIME=$(start_timer)
+
+echo -en "\t"
+for i in $( ${SEQ} 1 $ITERATIONS ); do
+       search_wildcard
+       echo -n "."
+done
+echo "done"
+
+STOP_TIME=$(stop_timer)
+
+TOTAL_TIME=$( total_time $START_TIME $STOP_TIME )
+
+echo -e "\t\ttotal time:\t\t${TOTAL_TIME}s"
+
+LOGINS_PER_MINUTE=$(iterations_per_minute $START_TIME $STOP_TIME $ITERATIONS)
+
+echo -e "\t\titerations/min:\t\t$LOGINS_PER_MINUTE"
+
+########################
+
+echo -e "\tSEARCH UNINDEXED $2"
+
+START_TIME=$(start_timer)
+
+echo -en "\t"
+for i in $( ${SEQ} 1 $ITERATIONS ); do
+       search_unindexed
+       echo -n "."
+done
+echo "done"
+
+STOP_TIME=$(stop_timer)
+
+TOTAL_TIME=$( total_time $START_TIME $STOP_TIME )
+
+echo -e "\t\ttotal time:\t\t${TOTAL_TIME}s"
+
+LOGINS_PER_MINUTE=$(iterations_per_minute $START_TIME $STOP_TIME $ITERATIONS)
+
+echo -e "\t\titerations/min:\t\t$LOGINS_PER_MINUTE"
+
+tear_down
diff --git a/examples/ad-bench/time_user.sh b/examples/ad-bench/time_user.sh
new file mode 100644 (file)
index 0000000..5380115
--- /dev/null
@@ -0,0 +1,125 @@
+#!/bin/bash
+# AD-Bench user add/remove benchmark
+#
+# Copyright (C) 2009  Kai Blin  <kai@samba.org>
+#
+# This file is part of AD-Bench, an Active Directory benchmark tool
+#
+# AD-Bench is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# AD-Bench is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with AD-Bench.  If not, see <http://www.gnu.org/licenses/>.
+
+ITERATIONS=100
+
+source `dirname $0`/utils.sh
+
+PRINCIPAL=$(get_principal $1)
+PASSWORD=$(get_password $1)
+REALM=$(get_realm $1)
+NT_DOM=$(get_nt_dom $1)
+SERVER=$2
+
+add_user () {
+       USER=$1
+       ${NET} ads user add "${USER}" 'Sup3rS3cr3T!' -k -s $CONFIG_FILE -S ${SERVER} > /dev/null
+       RET=$?
+       if [ $RET -ne 0 ]; then
+               echo "${NET} ads user add returned error: $RET"
+               exit 1
+       fi
+}
+
+del_user () {
+       USER=$1
+       ${NET} ads user delete "${USER}" -k -s $CONFIG_FILE -S ${SERVER} > /dev/null
+       RET=$?
+       if [ $RET -ne 0 ]; then
+               echo "${NET} returned error: $RET"
+               exit 1
+       fi
+}
+
+enum_user () {
+       ${NET} ads user -k -s $CONFIG_FILE -S $SERVER > /dev/null
+       RET=$?
+       if [ $RET -ne 0 ]; then
+               echo "${NET} returned error: $RET"
+               exit 1
+       fi
+}
+
+info_user () {
+       USER=$1
+       ${NET} ads user info "${USER}" -k -s $CONFIG_FILE -S ${SERVER} > /dev/null
+       RET=$?
+       if [ $RET -ne 0 ]; then
+               echo "${NET} returned error: $RET"
+               exit 1
+       fi
+}
+
+set_up () {
+       set_krb_env
+       setup_kinit
+       call_kinit "${PRINCIPAL}" "${PASSWORD}"
+       write_configfile "${REALM}" "${NT_DOM}"
+}
+
+tear_down () {
+       ${KDESTROY}
+       restore_krb_env
+}
+
+set_up
+
+echo -e "\tUSER $SERVER"
+
+START_TIME=$(start_timer)
+
+echo -en "\t"
+for i in $( ${SEQ} 1 $ITERATIONS ); do
+       USER=$( echo "ad_test_$(pad_number $i 3)" )
+       add_user $USER
+       echo -n "."
+done
+echo "done"
+
+enum_user
+
+# Requires winbind, which requires root perms to start. Skip this for now
+#echo -en "\t"
+#for i in $( ${SEQ} 1 $ITERATIONS ); do
+#      USER=$( echo "ad_test_$(pad_number $i 3)" )
+#      info_user $USER
+#      echo -n "."
+#done
+#echo "done"
+
+echo -en "\t"
+for i in $( ${SEQ} 1 $ITERATIONS ); do
+       USER=$( echo "ad_test_$(pad_number $i 3)" )
+       del_user $USER
+       echo -n "."
+done
+echo "done"
+
+STOP_TIME=$(stop_timer)
+
+TOTAL_TIME=$( total_time $START_TIME $STOP_TIME )
+
+echo -e "\t\ttotal time:\t\t${TOTAL_TIME}s"
+
+LOGINS_PER_MINUTE=$(iterations_per_minute $START_TIME $STOP_TIME $ITERATIONS)
+
+echo -e "\t\titerations/min:\t\t$LOGINS_PER_MINUTE"
+
+tear_down
diff --git a/examples/ad-bench/utils.sh b/examples/ad-bench/utils.sh
new file mode 100644 (file)
index 0000000..89da09c
--- /dev/null
@@ -0,0 +1,116 @@
+#!/bin/bash
+# AD-Bench utility functions
+#
+# Copyright (C) 2009  Kai Blin  <kai@samba.org>
+#
+# This file is part of AD-Bench, an Active Directory benchmark tool
+#
+# AD-Bench is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# AD-Bench is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with AD-Bench.  If not, see <http://www.gnu.org/licenses/>.
+
+source `dirname $0`/settings.sh
+
+start_timer () {
+       START_TIME=$( ${DATE} ${DATE_FORMATSTR} )
+       echo "$START_TIME"
+}
+
+stop_timer () {
+       STOP_TIME=$( ${DATE} ${DATE_FORMATSTR} )
+       echo "$STOP_TIME"
+}
+
+total_time () {
+       START_TIME=$1
+       END_TIME=$2
+       TOTAL_TIME=$( echo "scale=9;$STOP_TIME - $START_TIME" | ${BC} )
+       echo "$TOTAL_TIME"
+}
+
+iterations_per_minute () {
+       START_TIME=$1
+       STOP_TIME=$2
+       TOTAL_RUNS=$3
+
+       TOTAL_TIME=$( total_time $START_TIME $STOP_TIME )
+
+       ITER_PER_MIN=$( echo "scale=2; 60 * $TOTAL_RUNS / $TOTAL_TIME" | ${BC} )
+       echo "$ITER_PER_MIN"
+}
+
+get_principal () {
+       PRINCIPAL=$( echo $1 | ${SED} -e "s/\(.*\)%.*/\1/" )
+       echo "$PRINCIPAL"
+}
+
+get_password () {
+       PASSWORD=$( echo $1 | ${SED} -e "s/.*%\(.*\)/\1/" )
+       echo "$PASSWORD"
+}
+
+get_realm () {
+       REALM=$( echo $1 | ${SED} -e "s/.*@\(.*\)%.*/\1/" )
+       echo "$REALM"
+}
+
+get_nt_dom () {
+       NT_DOM=$( echo $1 | ${SED} -e "s/.*@\([A-Z1-9-]*\)\..*/\1/" )
+       echo "$NT_DOM"
+}
+
+set_krb_env () {
+       OLD_KRB5CCNAME="${KRB5CCNAME}"
+       KRB5CCNAME="${NEW_KRB5CCNAME}"
+       export KRB5CCNAME
+}
+
+restore_krb_env () {
+       KRB5CCNAME="${OLD_KRB5CCNAME}"
+       export KRB5CCNAME
+}
+
+setup_kinit () {
+       ${KINIT} --invalid 2>&1 | grep -q "password-file"
+       if [ $? -eq 0 ]; then
+               KINIT="${KINIT} ${KINIT_PARAM_OLD}"
+       else
+               KINIT="${KINIT} ${KINIT_PARAM_NEW}"
+       fi
+}
+
+write_configfile () {
+       REALM=$1
+       NT_DOM=$2
+       echo -e "[global]" > $CONFIG_FILE
+       echo -e "\trealm = $REALM" >> $CONFIG_FILE
+       echo -e "\tworkgroup = $NT_DOM" >> $CONFIG_FILE
+       echo -e "\tsecurity = ADS" >> $CONFIG_FILE
+}
+
+call_kinit () {
+       PRINCIPAL=$1
+       PASSWORD=$2
+       echo "${PASSWORD}" | ${KINIT} ${PRINCIPAL} > /dev/null
+       RET=$?
+       if [ $RET -ne 0 ]; then
+               echo "kinit returned an error: $RET"
+               exit 1
+       fi
+}
+
+pad_number () {
+       NUMBER=$1
+       DIGITS=$2
+       PADDED_NO=$(printf "%0${DIGITS}d" $NUMBER)
+       echo $PADDED_NO
+}
index 925e2ea0803beaee81a6350f8616faf0a69279d8..bb7022e26c15363c35786cdd5c972f12b9aed930 100644 (file)
 # along with this program; if not, see <http://www.gnu.org/licenses/>.
 # 
 
-SAMBA_SRC_DIR=../../source
-TDB_SRC_DIR=$(SAMBA_SRC_DIR)/tdb
+SAMBA_SRC_DIR=../../source3
+TDB_SRC_DIR=$(SAMBA_SRC_DIR)/../lib/tdb
 
-CFLAGS = -g -I$(SAMBA_SRC_DIR)/include -I$(TDB_SRC_DIR)/include
+CFLAGS = -g -I$(SAMBA_SRC_DIR) -I$(SAMBA_SRC_DIR)/include -I$(TDB_SRC_DIR)/include -I../../
 CC = gcc
 
 PROGS = perfcount
index 2c24d31260a3519a6799e063a9bddd6fffb99971..7f06b05027ffb616605cb8bd05d1dbebdc9b4bd8 100644 (file)
@@ -36,8 +36,8 @@
 #include <sys/time.h>
 #include <sys/wait.h>
 #include <limits.h>
-#include "tdb.h"
-#include <rpc_perfcount_defs.h>
+#include <tdb.h>
+#include "librpc/gen_ndr/perfcount.h"
 #include <sys/statfs.h>
 #include <sys/times.h>
 #include <sys/sysinfo.h>
index a169f7972445577bc8cf1563b23b5db0ea8fbeb5..c1b1d2e4a1217cf80f6f55f280b7cba6f8b41829 100644 (file)
@@ -1,5 +1,5 @@
 AC_PREREQ(2.50)
-AC_INIT(talloc, 2.0.0)
+AC_INIT(talloc, 2.0.1)
 AC_CONFIG_SRCDIR([talloc.c])
 AC_SUBST(datarootdir)
 AC_CONFIG_HEADER(config.h)
index ba60ed003a95f9372fb7d667542f57945a80f90f..66c4e60e45cb9bdf869c2cfaf1c91daed8a19b97 100755 (executable)
@@ -33,6 +33,7 @@ LANG=C; export LANG
 LC_ALL=C; export LC_ALL
 LC_COLLATE=C; export LC_COLLATE
 
+exit_status=0
 script=$0
 dir_name=$(dirname ${script})
 
@@ -58,34 +59,22 @@ signatures_file_check=${signatures_file}.check
 
 
 ${dir_name}/mksyms.sh awk ${exports_file_check} ${headers} 2>&1 > /dev/null
+cat ${headers} | ${dir_name}/mksigs.pl | sort| uniq > ${signatures_file_check} 2> /dev/null
 
-cat ${headers} | ${dir_name}/mksigs.pl > ${signatures_file_check} 2> /dev/null
-
-normalize_exports_file() {
-       filename=$1
-       cat ${filename} \
-       | sed -e 's/^[ \t]*//g' \
-       | sed -e 's/^$//g' \
-       | sed -e 's/^#.*$//g' \
-       | sort | uniq > ${filename}.sort
-}
-
-normalize_exports_file ${exports_file}
-normalize_exports_file ${exports_file_check}
-
-normalize_exports_file ${signatures_file}
-normalize_exports_file ${signatures_file_check}
-
-diff -u ${exports_file}.sort ${exports_file_check}.sort
+diff -u ${exports_file} ${exports_file_check}
 if test "x$?" != "x0" ; then
        echo "WARNING: possible ABI change detected in exports!"
+       let exit_status++
 else
        echo "exports check: OK"
 fi
 
-diff -u ${signatures_file}.sort ${signatures_file_check}.sort
+diff -u ${signatures_file} ${signatures_file_check}
 if test "x$?" != "x0" ; then
        echo "WARNING: possible ABI change detected in signatures!"
+       let exit_status++
 else
        echo "signatures check: OK"
 fi
+
+exit $exit_status
index ca14da0f2177bf2005a3e5835d9e6679c813669f..8775faff3feea63784e541ea4128e05fcf7e3866 100644 (file)
@@ -8,25 +8,12 @@
 #
 BEGIN {
        inheader=0;
-       current_file="";
-       print "#"
-       print "# This file is automatically generated with \"make symbols\". DO NOT EDIT "
-       print "#"
-       print "{"
-       print "\tglobal:"
 }
 
 END {
-       print""
-       print "\tlocal: *;"
-       print "};"
 }
 
 {
-       if (FILENAME!=current_file) {
-               print "\t\t# The following definitions come from",FILENAME
-               current_file=FILENAME
-       }
        if (inheader) {
                if (match($0,"[)][^()]*[;][ \t]*$")) {
                        inheader = 0;
@@ -42,7 +29,7 @@ END {
 /^extern[ \t]+[^()]+[;][ \t]*$/ {
        gsub(/[^ \t]+[ \t]+/, "");
        sub(/[;][ \t]*$/, "");
-       printf "\t\t%s;\n", $0;
+       printf "           %s;\n", $0;
        next;
 }
 
@@ -61,7 +48,7 @@ END {
        sub(/[(].*$/, "");
        gsub(/[^ \t]+[ \t]+/, "");
        gsub(/^[*]+/, "");
-       printf "\t\t%s;\n",$0;
+       printf "           %s;\n",$0;
        next;
 }
 
@@ -70,7 +57,7 @@ END {
        sub(/[(].*$/, "");
        gsub(/[^ \t]+[ \t]+/, "");
        gsub(/^[*]/, "");
-       printf "\t\t%s;\n",$0;
+       printf "           %s;\n",$0;
        next;
 }
 
index 714d55abae6a7369e1bb1da1f0d5cc5f7f29734d..089344f8f03a79736779181f4add12c70b42a556 100755 (executable)
@@ -34,7 +34,24 @@ echo creating $symsfile
 
 mkdir -p `dirname $symsfile`
 
-${awk} -f `dirname $0`/mksyms.awk $proto_src > $symsfile_tmp
+#Write header
+cat > $symsfile_tmp << EOF
+# This file is autogenerated, please DO NOT EDIT
+{
+    global:
+EOF
+
+#loop on each header
+for i in $proto_src; do
+${awk} -f `dirname $0`/mksyms.awk $i | sort >> $symsfile_tmp
+done;
+
+#Write tail
+cat >> $symsfile_tmp << EOF
+
+    local: *;
+};
+EOF
 
 if cmp -s $symsfile $symsfile_tmp 2>/dev/null
 then
similarity index 84%
rename from lib/talloc/release-script.sh
rename to lib/talloc/script/release-script.sh
index 6b6c0e7aad0a58aa30f0d4132c498c56b01fc377..4804f6ff58d749088ad27062955ffc4485d87cf5 100755 (executable)
@@ -10,6 +10,16 @@ if [ ! -d "lib/talloc" ]; then
     exit 1
 fi
 
+# Check exports and signatures are up to date
+pushd lib/talloc
+./script/abi_checks.sh talloc talloc.h
+abicheck=$?
+popd
+if [ ! "$abicheck" = "0" ]; then
+    echo "ERROR: ABI Checks produced warnings!"
+    exit 1
+fi
+
 git clean -f -x -d lib/talloc
 git clean -f -x -d lib/replace
 
index 75134c08029c93cdafe4e9eba3b94f8095f15dd3..1b8062f4a058cf73d710c210733498fda38040aa 100644 (file)
@@ -1,7 +1,19 @@
+# This file is autogenerated, please DO NOT EDIT
 {
     global:
            _talloc;
            _talloc_array;
+           _talloc_free;
+           _talloc_get_type_abort;
+           _talloc_memdup;
+           _talloc_move;
+           _talloc_realloc;
+           _talloc_realloc_array;
+           _talloc_reference_loc;
+           _talloc_set_destructor;
+           _talloc_steal_loc;
+           _talloc_zero;
+           _talloc_zero_array;
            talloc_asprintf;
            talloc_asprintf_append;
            talloc_asprintf_append_buffer;
            talloc_enable_leak_report;
            talloc_enable_leak_report_full;
            talloc_enable_null_tracking;
+           talloc_enable_null_tracking_no_autofree;
            talloc_find_parent_byname;
-           _talloc_free;
            talloc_free_children;
            talloc_get_name;
            talloc_get_size;
-           _talloc_get_type_abort;
            talloc_increase_ref_count;
            talloc_init;
            talloc_is_parent;
-           _talloc_memdup;
-           _talloc_move;
            talloc_named;
            talloc_named_const;
            talloc_parent;
            talloc_parent_name;
            talloc_pool;
-           _talloc_realloc;
-           _talloc_realloc_array;
            talloc_realloc_fn;
            talloc_reference_count;
-           _talloc_reference_loc;
            talloc_reparent;
            talloc_report;
            talloc_report_depth_cb;
            talloc_report_depth_file;
            talloc_report_full;
            talloc_set_abort_fn;
-           _talloc_set_destructor;
            talloc_set_log_fn;
            talloc_set_log_stderr;
            talloc_set_name;
            talloc_set_name_const;
            talloc_show_parents;
-           _talloc_steal_loc;
            talloc_strdup;
            talloc_strdup_append;
            talloc_strdup_append_buffer;
@@ -59,8 +63,6 @@
            talloc_vasprintf_append_buffer;
            talloc_version_major;
            talloc_version_minor;
-           _talloc_zero;
-           _talloc_zero_array;
 
     local: *;
 };
index 00fb4a3296800bfdf7798e06aee4e40052f34bb3..f2868e8269890744d10b073bbb508a430e4f947f 100644 (file)
@@ -1,15 +1,15 @@
-char *talloc_asprintf_append_buffer (char *, const char *, ...);
-char *talloc_asprintf_append (char *, const char *, ...);
 char *talloc_asprintf (const void *, const char *, ...);
-char *talloc_strdup_append_buffer (char *, const char *);
-char *talloc_strdup_append (char *, const char *);
+char *talloc_asprintf_append (char *, const char *, ...);
+char *talloc_asprintf_append_buffer (char *, const char *, ...);
 char *talloc_strdup (const void *, const char *);
-char *talloc_strndup_append_buffer (char *, const char *, size_t);
-char *talloc_strndup_append (char *, const char *, size_t);
+char *talloc_strdup_append (char *, const char *);
+char *talloc_strdup_append_buffer (char *, const char *);
 char *talloc_strndup (const void *, const char *, size_t);
-char *talloc_vasprintf_append_buffer (char *, const char *, va_list);
-char *talloc_vasprintf_append (char *, const char *, va_list);
+char *talloc_strndup_append (char *, const char *, size_t);
+char *talloc_strndup_append_buffer (char *, const char *, size_t);
 char *talloc_vasprintf (const void *, const char *, va_list);
+char *talloc_vasprintf_append (char *, const char *, va_list);
+char *talloc_vasprintf_append_buffer (char *, const char *, va_list);
 const char *talloc_get_name (const void *);
 const char *talloc_parent_name (const void *);
 const char *talloc_set_name (const void *, const char *, ...);
@@ -23,39 +23,40 @@ size_t talloc_get_size (const void *);
 size_t talloc_reference_count (const void *);
 size_t talloc_total_blocks (const void *);
 size_t talloc_total_size (const void *);
+void *_talloc (const void *, size_t);
 void *_talloc_array (const void *, size_t, unsigned int, const char *);
+void *_talloc_get_type_abort (const void *, const char *, const char *);
+void *_talloc_memdup (const void *, const void *, size_t, const char *);
+void *_talloc_move (const void *, const void *);
+void *_talloc_realloc (const void *, void *, size_t, const char *);
+void *_talloc_realloc_array (const void *, void *, size_t, unsigned int, const char *);
+void *_talloc_reference_loc (const void *, const void *, const char *);
+void *_talloc_steal_loc (const void *, const void *, const char *);
+void *_talloc_zero (const void *, size_t, const char *);
+void *_talloc_zero_array (const void *, size_t, unsigned int, const char *);
 void *talloc_autofree_context (void);
 void *talloc_check_name (const void *, const char *);
-void *_talloc (const void *, size_t);
-void talloc_disable_null_tracking (void);
-void talloc_enable_leak_report_full (void);
-void talloc_enable_leak_report (void);
-void talloc_enable_null_tracking (void);
 void *talloc_find_parent_byname (const void *, const char *);
-void talloc_free_children (void *);
-void *_talloc_get_type_abort (const void *, const char *, const char *);
 void *talloc_init (const char *, ...);
-void *_talloc_memdup (const void *, const void *, size_t, const char *);
-void *_talloc_move (const void *, const void *);
-void *talloc_named_const (const void *, size_t, const char *);
 void *talloc_named (const void *, size_t, const char *, ...);
+void *talloc_named_const (const void *, size_t, const char *);
 void *talloc_parent (const void *);
 void *talloc_pool (const void *, size_t);
-void *_talloc_realloc_array (const void *, void *, size_t, unsigned int, const char *);
-void *_talloc_realloc (const void *, void *, size_t, const char *);
 void *talloc_realloc_fn (const void *, void *, size_t);
-void *_talloc_reference_loc (const void *, const void *, const char *);
 void *talloc_reparent (const void *, const void *, const void *);
+void _talloc_set_destructor (const void *, int (*) (void *));
+void talloc_disable_null_tracking (void);
+void talloc_enable_leak_report (void);
+void talloc_enable_leak_report_full (void);
+void talloc_enable_null_tracking (void);
+void talloc_enable_null_tracking_no_autofree (void);
+void talloc_free_children (void *);
 void talloc_report (const void *, FILE *);
 void talloc_report_depth_cb (const void *, int, int, void (*) (const void *, int, int, int, void *), void *);
 void talloc_report_depth_file (const void *, int, int, FILE *);
 void talloc_report_full (const void *, FILE *);
 void talloc_set_abort_fn (void (*) (const char *));
-void _talloc_set_destructor (const void *, int (*) (void *));
 void talloc_set_log_fn (void (*) (const char *));
 void talloc_set_log_stderr (void);
 void talloc_set_name_const (const void *, const char *);
 void talloc_show_parents (const void *, FILE *);
-void *_talloc_steal_loc (const void *, const void *, const char *);
-void *_talloc_zero_array (const void *, size_t, unsigned int, const char *);
-void *_talloc_zero (const void *, size_t, const char *);
index 293436ed5e3474a942a1ab53efadbe65892aec3e..ce67003f8bfdfae5a618ad20ea5fc17b858c5c13 100644 (file)
@@ -92,6 +92,11 @@ NTSTATUS tdr_pull_uint16(struct tdr_pull *tdr, TALLOC_CTX *ctx, uint16_t *v)
        return NT_STATUS_OK;
 }
 
+NTSTATUS tdr_pull_uint1632(struct tdr_pull *tdr, TALLOC_CTX *ctx, uint16_t *v)
+{
+       return tdr_pull_uint16(tdr, ctx, v);
+}
+
 NTSTATUS tdr_push_uint16(struct tdr_push *tdr, const uint16_t *v)
 {
        TDR_PUSH_NEED_BYTES(tdr, 2);
@@ -100,6 +105,11 @@ NTSTATUS tdr_push_uint16(struct tdr_push *tdr, const uint16_t *v)
        return NT_STATUS_OK;
 }
 
+NTSTATUS tdr_push_uint1632(struct tdr_push *tdr, const uint16_t *v)
+{
+       return tdr_push_uint16(tdr, v);
+}
+
 NTSTATUS tdr_print_uint16(struct tdr_print *tdr, const char *name, uint16_t *v)
 {
        tdr->print(tdr, "%-25s: 0x%02x (%u)", name, *v, *v);
index 1eedc580d54fda841406f6f6ada90534d59440fb..84f3e50c2ba89691aa38ff6f1ef46736facd0643 100644 (file)
@@ -55,7 +55,7 @@ struct tdr_print {
                         } while (0)
 
 #define TDR_ALLOC(ctx, s, n) do { \
-                              (s) = talloc_array_size(ctx, sizeof(*(s)), n); \
+                              (s) = talloc_array_ptrtype(ctx, (s), n); \
                            if ((n) && !(s)) return NT_STATUS_NO_MEMORY; \
                            } while (0)
 
index d3325b67ac06a4dced5c96307299bd352325d7ef..ab170a66cf75f38c5785e720e3c7ceff83419e79 100644 (file)
@@ -92,7 +92,7 @@ static void tevent_common_signal_handler(int signum)
 
        /* Write to each unique event context. */
        for (sl = sig_state->sig_handlers[signum]; sl; sl = sl->next) {
-               if (sl->se->event_ctx != ev) {
+               if (sl->se->event_ctx && sl->se->event_ctx != ev) {
                        ev = sl->se->event_ctx;
                        /* doesn't matter if this pipe overflows */
                        res = write(ev->pipe_fds[1], &c, 1);
index 70c2c57450cc1de869fab961de8ea55911e8c9e4..946f71359c049ba5fe4c64b11c3dc6734c3cbbca 100644 (file)
@@ -214,7 +214,7 @@ bool asn1_write_BitString(struct asn1_data *data, const void *p, size_t length,
        return asn1_pop_tag(data);
 }
 
-bool ber_write_OID_String(DATA_BLOB *blob, const char *OID)
+bool ber_write_OID_String(TALLOC_CTX *mem_ctx, DATA_BLOB *blob, const char *OID)
 {
        uint_t v, v2;
        const char *p = (const char *)OID;
@@ -230,7 +230,7 @@ bool ber_write_OID_String(DATA_BLOB *blob, const char *OID)
        p = newp + 1;
 
        /*the ber representation can't use more space then the string one */
-       *blob = data_blob(NULL, strlen(OID));
+       *blob = data_blob_talloc(mem_ctx, NULL, strlen(OID));
        if (!blob->data) return false;
 
        blob->data[0] = 40*v + v2;
@@ -258,6 +258,41 @@ bool ber_write_OID_String(DATA_BLOB *blob, const char *OID)
        return true;
 }
 
+/**
+ * Serialize partial OID string.
+ * Partial OIDs are in the form:
+ *   1:2.5.6:0x81
+ *   1:2.5.6:0x8182
+ */
+bool ber_write_partial_OID_String(TALLOC_CTX *mem_ctx, DATA_BLOB *blob, const char *partial_oid)
+{
+       TALLOC_CTX *tmp_ctx = talloc_new(mem_ctx);
+       char *oid = talloc_strdup(tmp_ctx, partial_oid);
+       char *p;
+
+       /* truncate partial part so ber_write_OID_String() works */
+       p = strchr(oid, ':');
+       if (p) {
+               *p = '\0';
+               p++;
+       }
+
+       if (!ber_write_OID_String(mem_ctx, blob, oid)) {
+               talloc_free(tmp_ctx);
+               return false;
+       }
+
+       /* Add partially endcoded subidentifier */
+       if (p) {
+               DATA_BLOB tmp_blob = strhex_to_data_blob(tmp_ctx, p);
+               data_blob_append(mem_ctx, blob, tmp_blob.data, tmp_blob.length);
+       }
+
+       talloc_free(tmp_ctx);
+
+       return true;
+}
+
 /* write an object ID to a ASN1 buffer */
 bool asn1_write_OID(struct asn1_data *data, const char *OID)
 {
@@ -265,7 +300,7 @@ bool asn1_write_OID(struct asn1_data *data, const char *OID)
 
        if (!asn1_push_tag(data, ASN1_OID)) return false;
 
-       if (!ber_write_OID_String(&blob, OID)) {
+       if (!ber_write_OID_String(NULL, &blob, OID)) {
                data->has_error = true;
                return false;
        }
@@ -543,8 +578,13 @@ int asn1_tag_remaining(struct asn1_data *data)
        return remaining;
 }
 
-/* read an object ID from a data blob */
-bool ber_read_OID_String(TALLOC_CTX *mem_ctx, DATA_BLOB blob, const char **OID)
+/**
+ * Internal implementation for reading binary OIDs
+ * Reading is done as far in the buffer as valid OID
+ * till buffer ends or not valid sub-identifier is found.
+ */
+static bool _ber_read_OID_String_impl(TALLOC_CTX *mem_ctx, DATA_BLOB blob,
+                                       const char **OID, size_t *bytes_eaten)
 {
        int i;
        uint8_t *b;
@@ -565,19 +605,63 @@ bool ber_read_OID_String(TALLOC_CTX *mem_ctx, DATA_BLOB blob, const char **OID)
                if ( ! (b[i] & 0x80)) {
                        tmp_oid = talloc_asprintf_append_buffer(tmp_oid, ".%u",  v);
                        v = 0;
+                       if (bytes_eaten)
+                               *bytes_eaten = i+1;
                }
                if (!tmp_oid) goto nomem;
        }
 
-       if (v != 0) {
-               talloc_free(tmp_oid);
+       *OID = tmp_oid;
+       return true;
+
+nomem:
+       return false;
+}
+
+/* read an object ID from a data blob */
+bool ber_read_OID_String(TALLOC_CTX *mem_ctx, DATA_BLOB blob, const char **OID)
+{
+       size_t bytes_eaten;
+
+       if (!_ber_read_OID_String_impl(mem_ctx, blob, OID, &bytes_eaten))
+               return false;
+
+       return (bytes_eaten == blob.length);
+}
+
+/**
+ * Deserialize partial OID string.
+ * Partial OIDs are in the form:
+ *   1:2.5.6:0x81
+ *   1:2.5.6:0x8182
+ */
+bool ber_read_partial_OID_String(TALLOC_CTX *mem_ctx, DATA_BLOB blob, const char **partial_oid)
+{
+       size_t bytes_left;
+       size_t bytes_eaten;
+       char *identifier = NULL;
+       char *tmp_oid = NULL;
+
+       if (!_ber_read_OID_String_impl(mem_ctx, blob, (const char **)&tmp_oid, &bytes_eaten))
                return false;
+
+       if (bytes_eaten < blob.length) {
+               bytes_left = blob.length - bytes_eaten;
+               identifier = hex_encode_talloc(mem_ctx, &blob.data[bytes_eaten], bytes_left);
+               if (!identifier)        goto nomem;
+
+               *partial_oid = talloc_asprintf_append_buffer(tmp_oid, ":0x%s", identifier);
+               if (!*partial_oid)      goto nomem;
+               TALLOC_FREE(identifier);
+       } else {
+               *partial_oid = tmp_oid;
        }
 
-       *OID = tmp_oid;
        return true;
 
-nomem: 
+nomem:
+       TALLOC_FREE(identifier);
+       TALLOC_FREE(tmp_oid);
        return false;
 }
 
index 9abae50d64ef6c1e1c905076d647eaccaa4287b7..ded3244bed15ce0b77859111926ef82428940f85 100644 (file)
@@ -61,7 +61,8 @@ bool asn1_pop_tag(struct asn1_data *data);
 bool asn1_write_implicit_Integer(struct asn1_data *data, int i);
 bool asn1_write_Integer(struct asn1_data *data, int i);
 bool asn1_write_BitString(struct asn1_data *data, const void *p, size_t length, uint8_t padding);
-bool ber_write_OID_String(DATA_BLOB *blob, const char *OID);
+bool ber_write_OID_String(TALLOC_CTX *mem_ctx, DATA_BLOB *blob, const char *OID);
+bool ber_write_partial_OID_String(TALLOC_CTX *mem_ctx, DATA_BLOB *blob, const char *partial_oid);
 bool asn1_write_OID(struct asn1_data *data, const char *OID);
 bool asn1_write_OctetString(struct asn1_data *data, const void *p, size_t length);
 bool asn1_write_LDAPString(struct asn1_data *data, const char *s);
@@ -83,6 +84,7 @@ bool asn1_start_tag(struct asn1_data *data, uint8_t tag);
 bool asn1_end_tag(struct asn1_data *data);
 int asn1_tag_remaining(struct asn1_data *data);
 bool ber_read_OID_String(TALLOC_CTX *mem_ctx, DATA_BLOB blob, const char **OID);
+bool ber_read_partial_OID_String(TALLOC_CTX *mem_ctx, DATA_BLOB blob, const char **partial_oid);
 bool asn1_read_OID(struct asn1_data *data, TALLOC_CTX *mem_ctx, const char **OID);
 bool asn1_check_OID(struct asn1_data *data, const char *OID);
 bool asn1_read_LDAPString(struct asn1_data *data, TALLOC_CTX *mem_ctx, char **s);
index bb22b8a0294aed21a94eb412ed143c18d88aebed..777671164d5039a4de46370d3a73fc821e7bbb5c 100644 (file)
@@ -35,7 +35,7 @@
 #ifndef _TALLOC_STACK_H
 #define _TALLOC_STACK_H
 
-#include "../talloc/talloc.h"
+#include "talloc.h"
 
 /*
  * Create a new talloc stack frame.
diff --git a/lib/util/tests/asn1_tests.c b/lib/util/tests/asn1_tests.c
new file mode 100644 (file)
index 0000000..25c8222
--- /dev/null
@@ -0,0 +1,260 @@
+/*
+   Unix SMB/CIFS implementation.
+
+   util_asn1 testing
+
+   Copyright (C) Kamen Mazdrashki <kamen.mazdrashki@postpath.com> 2009
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "includes.h"
+#include "torture/torture.h"
+#include "../asn1.h"
+
+struct oid_data {
+       const char *oid;        /* String OID */
+       const char *bin_oid;    /* Binary OID represented as string */
+};
+
+/* Data for successful OIDs conversions */
+struct oid_data oid_data_ok[] = {
+       {
+               .oid = "2.5.4.0",
+               .bin_oid = "550400"
+       },
+       {
+               .oid = "2.5.4.1",
+               .bin_oid = "550401"
+       },
+       {
+               .oid = "2.5.4.130",
+               .bin_oid = "55048102"
+       },
+       {
+               .oid = "2.5.130.4",
+               .bin_oid = "55810204"
+       },
+       {
+               .oid = "2.5.4.16387",
+               .bin_oid = "5504818003"
+       },
+       {
+               .oid = "2.5.16387.4",
+               .bin_oid = "5581800304"
+       },
+       {
+               .oid = "2.5.2097155.4",
+               .bin_oid = "558180800304"
+       },
+       {
+               .oid = "2.5.4.130.16387.2097155.268435459",
+               .bin_oid = "55048102818003818080038180808003"
+       },
+};
+
+/* Data for successful Partial OIDs conversions */
+struct oid_data partial_oid_data_ok[] = {
+       {
+               .oid = "2.5.4.130:0x81",
+               .bin_oid = "5504810281"
+       },
+       {
+               .oid = "2.5.4.16387:0x8180",
+               .bin_oid = "55048180038180"
+       },
+       {
+               .oid = "2.5.4.16387:0x81",
+               .bin_oid = "550481800381"
+       },
+       {
+               .oid = "2.5.2097155.4:0x818080",
+               .bin_oid = "558180800304818080"
+       },
+       {
+               .oid = "2.5.2097155.4:0x8180",
+               .bin_oid = "5581808003048180"
+       },
+       {
+               .oid = "2.5.2097155.4:0x81",
+               .bin_oid = "55818080030481"
+       },
+};
+
+
+/* Testing ber_write_OID_String() function */
+static bool test_ber_write_OID_String(struct torture_context *tctx)
+{
+       int i;
+       char *hex_str;
+       DATA_BLOB blob;
+       TALLOC_CTX *mem_ctx;
+       struct oid_data *data = oid_data_ok;
+
+       mem_ctx = talloc_new(tctx);
+
+       for (i = 0; i < ARRAY_SIZE(oid_data_ok); i++) {
+               torture_assert(tctx, ber_write_OID_String(mem_ctx, &blob, data[i].oid),
+                               "ber_write_OID_String failed");
+
+               hex_str = hex_encode_talloc(mem_ctx, blob.data, blob.length);
+               torture_assert(tctx, hex_str, "No memory!");
+
+               torture_assert(tctx, strequal(data[i].bin_oid, hex_str),
+                               talloc_asprintf(mem_ctx,
+                                               "Failed: oid=%s, bin_oid:%s",
+                                               data[i].oid, data[i].bin_oid));
+       }
+
+       talloc_free(mem_ctx);
+
+       return true;
+}
+
+/* Testing ber_read_OID_String() function */
+static bool test_ber_read_OID_String(struct torture_context *tctx)
+{
+       int i;
+       const char *oid;
+       DATA_BLOB oid_blob;
+       TALLOC_CTX *mem_ctx;
+       struct oid_data *data = oid_data_ok;
+
+       mem_ctx = talloc_new(tctx);
+
+       for (i = 0; i < ARRAY_SIZE(oid_data_ok); i++) {
+               oid_blob = strhex_to_data_blob(mem_ctx, data[i].bin_oid);
+
+               torture_assert(tctx, ber_read_OID_String(mem_ctx, oid_blob, &oid),
+                               "ber_read_OID_String failed");
+
+               torture_assert(tctx, strequal(data[i].oid, oid),
+                               talloc_asprintf(mem_ctx,
+                                               "Failed: oid=%s, bin_oid:%s",
+                                               data[i].oid, data[i].bin_oid));
+       }
+
+       talloc_free(mem_ctx);
+
+       return true;
+}
+
+/* Testing ber_write_partial_OID_String() function */
+static bool test_ber_write_partial_OID_String(struct torture_context *tctx)
+{
+       int i;
+       char *hex_str;
+       DATA_BLOB blob;
+       TALLOC_CTX *mem_ctx;
+       struct oid_data *data = oid_data_ok;
+
+       mem_ctx = talloc_new(tctx);
+
+       /* ber_write_partial_OID_String() should work with not partial OIDs also */
+       for (i = 0; i < ARRAY_SIZE(oid_data_ok); i++) {
+               torture_assert(tctx, ber_write_partial_OID_String(mem_ctx, &blob, data[i].oid),
+                               "ber_write_partial_OID_String failed");
+
+               hex_str = hex_encode_talloc(mem_ctx, blob.data, blob.length);
+               torture_assert(tctx, hex_str, "No memory!");
+
+               torture_assert(tctx, strequal(data[i].bin_oid, hex_str),
+                               talloc_asprintf(mem_ctx,
+                                               "Failed: oid=%s, bin_oid:%s",
+                                               data[i].oid, data[i].bin_oid));
+       }
+
+       /* ber_write_partial_OID_String() test with partial OIDs */
+       data = partial_oid_data_ok;
+       for (i = 0; i < ARRAY_SIZE(partial_oid_data_ok); i++) {
+               torture_assert(tctx, ber_write_partial_OID_String(mem_ctx, &blob, data[i].oid),
+                               "ber_write_partial_OID_String failed");
+
+               hex_str = hex_encode_talloc(mem_ctx, blob.data, blob.length);
+               torture_assert(tctx, hex_str, "No memory!");
+
+               torture_assert(tctx, strequal(data[i].bin_oid, hex_str),
+                               talloc_asprintf(mem_ctx,
+                                               "Failed: oid=%s, bin_oid:%s",
+                                               data[i].oid, data[i].bin_oid));
+       }
+
+       talloc_free(mem_ctx);
+
+       return true;
+}
+
+/* Testing ber_read_partial_OID_String() function */
+static bool test_ber_read_partial_OID_String(struct torture_context *tctx)
+{
+       int i;
+       const char *oid;
+       DATA_BLOB oid_blob;
+       TALLOC_CTX *mem_ctx;
+       struct oid_data *data = oid_data_ok;
+
+       mem_ctx = talloc_new(tctx);
+
+       /* ber_read_partial_OID_String() should work with not partial OIDs also */
+       for (i = 0; i < ARRAY_SIZE(oid_data_ok); i++) {
+               oid_blob = strhex_to_data_blob(mem_ctx, data[i].bin_oid);
+
+               torture_assert(tctx, ber_read_partial_OID_String(mem_ctx, oid_blob, &oid),
+                               "ber_read_partial_OID_String failed");
+
+               torture_assert(tctx, strequal(data[i].oid, oid),
+                               talloc_asprintf(mem_ctx,
+                                               "Failed: oid=%s, bin_oid:%s",
+                                               data[i].oid, data[i].bin_oid));
+       }
+
+       /* ber_read_partial_OID_String() test with partial OIDs */
+       data = partial_oid_data_ok;
+       for (i = 0; i < ARRAY_SIZE(partial_oid_data_ok); i++) {
+               oid_blob = strhex_to_data_blob(mem_ctx, data[i].bin_oid);
+
+               torture_assert(tctx, ber_read_partial_OID_String(mem_ctx, oid_blob, &oid),
+                               "ber_read_partial_OID_String failed");
+
+               torture_assert(tctx, strequal(data[i].oid, oid),
+                               talloc_asprintf(mem_ctx,
+                                               "Failed: oid=%s, bin_oid:%s",
+                                               data[i].oid, data[i].bin_oid));
+       }
+
+       talloc_free(mem_ctx);
+
+       return true;
+}
+
+
+/* LOCAL-ASN1 test suite creation */
+struct torture_suite *torture_local_util_asn1(TALLOC_CTX *mem_ctx)
+{
+       struct torture_suite *suite = torture_suite_create(mem_ctx, "ASN1");
+
+       torture_suite_add_simple_test(suite, "ber_write_OID_String",
+                                     test_ber_write_OID_String);
+
+       torture_suite_add_simple_test(suite, "ber_read_OID_String",
+                                     test_ber_read_OID_String);
+
+       torture_suite_add_simple_test(suite, "ber_write_partial_OID_String",
+                                     test_ber_write_partial_OID_String);
+
+       torture_suite_add_simple_test(suite, "ber_read_partial_OID_String",
+                                     test_ber_read_partial_OID_String);
+
+       return suite;
+}
index 875e5fdef8ef12b6825c8a3bf0b4ae93622395db..f0b02b8d171969437a90c19b85da148ce0be66f0 100644 (file)
@@ -78,7 +78,7 @@ static bool test_cmp(struct torture_context *tctx)
 static bool test_hex_string(struct torture_context *tctx)
 {
        DATA_BLOB a = data_blob_string_const("\xC\xA\xF\xE");
-       torture_assert_str_equal(tctx, data_blob_hex_string(tctx, &a), "0C0A0F0E", "hex string");
+       torture_assert_str_equal(tctx, data_blob_hex_string(tctx, &a), "0c0a0f0e", "hex string");
        return true;
 }
 
index 2a809d3ccb021d077e99e0c8a08b475ba2eb6dee..fd0e6b8d799c717b0b704bdc95ac0f3b6dd4e84c 100644 (file)
@@ -579,18 +579,18 @@ _PUBLIC_ _PURE_ size_t count_chars(const char *s, char c)
 **/
 _PUBLIC_ size_t strhex_to_str(char *p, size_t p_len, const char *strhex, size_t strhex_len)
 {
-       size_t i;
+       size_t i = 0;
        size_t num_chars = 0;
        uint8_t   lonybble, hinybble;
        const char     *hexchars = "0123456789ABCDEF";
        char           *p1 = NULL, *p2 = NULL;
 
-       for (i = 0; i < strhex_len && strhex[i] != 0; i++) {
-               if (strncasecmp(hexchars, "0x", 2) == 0) {
-                       i++; /* skip two chars */
-                       continue;
-               }
+       /* skip leading 0x prefix */
+       if (strncasecmp(strhex, "0x", 2) == 0) {
+               i += 2; /* skip two chars */
+       }
 
+       for (; i < strhex_len && strhex[i] != 0; i++) {
                if (!(p1 = strchr(hexchars, toupper((unsigned char)strhex[i]))))
                        break;
 
@@ -804,8 +804,8 @@ static bool next_token_internal_talloc(TALLOC_CTX *ctx,
                                 const char *sep,
                                 bool ltrim)
 {
-       char *s;
-       char *saved_s;
+       const char *s;
+       const char *saved_s;
        char *pbuf;
        bool quoted;
        size_t len=1;
@@ -815,7 +815,7 @@ static bool next_token_internal_talloc(TALLOC_CTX *ctx,
                return(false);
        }
 
-       s = (char *)*ptr;
+       s = *ptr;
 
        /* default to simple separators */
        if (!sep) {
index e107cbdc4abf7594e22cef7b96f23642d758da51..cda8dc75b20f85982d3b4a70e1614023ee10edbf 100644 (file)
@@ -20,7 +20,7 @@
 */
 
 #include "includes.h"
-#include "../tdb/include/tdb.h"
+#include "tdb.h"
 #include "../lib/util/util_tdb.h"
 
 /* these are little tdb utility functions that are meant to make
index 69d6bad22c2de123cacdcce15fa25ebd20e7cd51..62873a424b75a5f4db99947671e42801370aac9d 100644 (file)
@@ -28,8 +28,7 @@
 #include "libcli/auth/libcli_auth.h"
 #include "auth/auth.h"
 #include "param/param.h"
-#include "auth/gensec/schannel_state.h"
-#include "../libcli/auth/schannel_state_proto.h"
+#include "../libcli/auth/schannel_state.h"
 
 static struct ldb_val *schannel_dom_sid_ldb_val(TALLOC_CTX *mem_ctx,
                                                struct dom_sid *sid)
index 5e741384677e8cd477380687c3caf65642806217..958c617ac9669e9fd7c5fa0535cca47114286967 100644 (file)
@@ -66,7 +66,7 @@ static const struct werror_code_struct dos_errs[] =
        { "WERR_BUF_TOO_SMALL", WERR_BUF_TOO_SMALL },
        { "WERR_JOB_NOT_FOUND", WERR_JOB_NOT_FOUND },
        { "WERR_DEST_NOT_FOUND", WERR_DEST_NOT_FOUND },
-       { "WERR_GROUP_NOT_FOUND", WERR_GROUP_NOT_FOUND },
+       { "WERR_GROUPNOTFOUND", WERR_GROUPNOTFOUND },
        { "WERR_USER_NOT_FOUND", WERR_USER_NOT_FOUND },
        { "WERR_NOT_LOCAL_DOMAIN", WERR_NOT_LOCAL_DOMAIN },
        { "WERR_DOMAIN_CONTROLLER_NOT_FOUND", WERR_DOMAIN_CONTROLLER_NOT_FOUND },
@@ -76,7 +76,7 @@ static const struct werror_code_struct dos_errs[] =
        { "WERR_SETUP_DOMAIN_CONTROLLER", WERR_SETUP_DOMAIN_CONTROLLER },
        { "WERR_DEVICE_NOT_AVAILABLE", WERR_DEVICE_NOT_AVAILABLE },
        { "WERR_DEFAULT_JOIN_REQUIRED", WERR_DEFAULT_JOIN_REQUIRED },
-       { "WERR_USER_EXISTS", WERR_USER_EXISTS },
+       { "WERR_USEREXISTS", WERR_USEREXISTS },
        { "WERR_REVISION_MISMATCH", WERR_REVISION_MISMATCH },
        { "WERR_NO_LOGON_SERVERS", WERR_NO_LOGON_SERVERS },
        { "WERR_NO_SUCH_LOGON_SESSION", WERR_NO_SUCH_LOGON_SESSION },
@@ -105,7 +105,7 @@ static const struct werror_code_struct dos_errs[] =
        { "WERR_INVALID_COMPUTERNAME", WERR_INVALID_COMPUTERNAME },
        { "WERR_INVALID_DOMAINNAME", WERR_INVALID_DOMAINNAME },
        { "WERR_MACHINE_LOCKED", WERR_MACHINE_LOCKED },
-       { "WERR_DC_NOT_FOUND", WERR_DC_NOT_FOUND },
+       { "WERR_DCNOTFOUND", WERR_DCNOTFOUND },
        { "WERR_NO_LOGON_SERVERS", WERR_NO_LOGON_SERVERS },
        { "WERR_NO_SUCH_LOGON_SESSION", WERR_NO_SUCH_LOGON_SESSION },
        { "WERR_NO_SUCH_PRIVILEGE", WERR_NO_SUCH_PRIVILEGE },
@@ -217,6 +217,2366 @@ static const struct werror_code_struct dos_errs[] =
        { "WERR_PASSWORD_RESTRICTION", WERR_PASSWORD_RESTRICTION },
        { "WERR_WRONG_PASSWORD", WERR_WRONG_PASSWORD },
        { "WERR_CLASS_NOT_REGISTERED", WERR_CLASS_NOT_REGISTERED },
+       /*****************************************************************************
+        Auto-generated Win32 error from:
+        http://msdn.microsoft.com/en-us/library/cc231199%28PROT.10%29.aspx
+        *****************************************************************************/
+       /* BEGIN GENERATED-WIN32-ERROR-CODES */
+       { "WERR_NERR_SUCCESS", WERR_NERR_SUCCESS },
+       { "WERR_INVALID_FUNCTION", WERR_INVALID_FUNCTION },
+       { "WERR_FILE_NOT_FOUND", WERR_FILE_NOT_FOUND },
+       { "WERR_PATH_NOT_FOUND", WERR_PATH_NOT_FOUND },
+       { "WERR_TOO_MANY_OPEN_FILES", WERR_TOO_MANY_OPEN_FILES },
+       { "WERR_INVALID_HANDLE", WERR_INVALID_HANDLE },
+       { "WERR_ARENA_TRASHED", WERR_ARENA_TRASHED },
+       { "WERR_NOT_ENOUGH_MEMORY", WERR_NOT_ENOUGH_MEMORY },
+       { "WERR_INVALID_BLOCK", WERR_INVALID_BLOCK },
+       { "WERR_BAD_ENVIRONMENT", WERR_BAD_ENVIRONMENT },
+       { "WERR_BAD_FORMAT", WERR_BAD_FORMAT },
+       { "WERR_INVALID_ACCESS", WERR_INVALID_ACCESS },
+       { "WERR_INVALID_DATA", WERR_INVALID_DATA },
+       { "WERR_OUTOFMEMORY", WERR_OUTOFMEMORY },
+       { "WERR_INVALID_DRIVE", WERR_INVALID_DRIVE },
+       { "WERR_CURRENT_DIRECTORY", WERR_CURRENT_DIRECTORY },
+       { "WERR_NOT_SAME_DEVICE", WERR_NOT_SAME_DEVICE },
+       { "WERR_NO_MORE_FILES", WERR_NO_MORE_FILES },
+       { "WERR_WRITE_PROTECT", WERR_WRITE_PROTECT },
+       { "WERR_BAD_UNIT", WERR_BAD_UNIT },
+       { "WERR_NOT_READY", WERR_NOT_READY },
+       { "WERR_BAD_COMMAND", WERR_BAD_COMMAND },
+       { "WERR_CRC", WERR_CRC },
+       { "WERR_BAD_LENGTH", WERR_BAD_LENGTH },
+       { "WERR_SEEK", WERR_SEEK },
+       { "WERR_NOT_DOS_DISK", WERR_NOT_DOS_DISK },
+       { "WERR_SECTOR_NOT_FOUND", WERR_SECTOR_NOT_FOUND },
+       { "WERR_OUT_OF_PAPER", WERR_OUT_OF_PAPER },
+       { "WERR_WRITE_FAULT", WERR_WRITE_FAULT },
+       { "WERR_READ_FAULT", WERR_READ_FAULT },
+       { "WERR_GEN_FAILURE", WERR_GEN_FAILURE },
+       { "WERR_SHARING_VIOLATION", WERR_SHARING_VIOLATION },
+       { "WERR_LOCK_VIOLATION", WERR_LOCK_VIOLATION },
+       { "WERR_WRONG_DISK", WERR_WRONG_DISK },
+       { "WERR_SHARING_BUFFER_EXCEEDED", WERR_SHARING_BUFFER_EXCEEDED },
+       { "WERR_HANDLE_EOF", WERR_HANDLE_EOF },
+       { "WERR_HANDLE_DISK_FULL", WERR_HANDLE_DISK_FULL },
+       { "WERR_REM_NOT_LIST", WERR_REM_NOT_LIST },
+       { "WERR_NETWORK_BUSY", WERR_NETWORK_BUSY },
+       { "WERR_DEV_NOT_EXIST", WERR_DEV_NOT_EXIST },
+       { "WERR_TOO_MANY_CMDS", WERR_TOO_MANY_CMDS },
+       { "WERR_ADAP_HDW_ERR", WERR_ADAP_HDW_ERR },
+       { "WERR_BAD_REM_ADAP", WERR_BAD_REM_ADAP },
+       { "WERR_PRINT_CANCELLED", WERR_PRINT_CANCELLED },
+       { "WERR_NETNAME_DELETED", WERR_NETNAME_DELETED },
+       { "WERR_NETWORK_ACCESS_DENIED", WERR_NETWORK_ACCESS_DENIED },
+       { "WERR_BAD_DEV_TYPE", WERR_BAD_DEV_TYPE },
+       { "WERR_BAD_NET_NAME", WERR_BAD_NET_NAME },
+       { "WERR_TOO_MANY_NAMES", WERR_TOO_MANY_NAMES },
+       { "WERR_TOO_MANY_SESS", WERR_TOO_MANY_SESS },
+       { "WERR_SHARING_PAUSED", WERR_SHARING_PAUSED },
+       { "WERR_REQ_NOT_ACCEP", WERR_REQ_NOT_ACCEP },
+       { "WERR_REDIR_PAUSED", WERR_REDIR_PAUSED },
+       { "WERR_CANNOT_MAKE", WERR_CANNOT_MAKE },
+       { "WERR_FAIL_I24", WERR_FAIL_I24 },
+       { "WERR_OUT_OF_STRUCTURES", WERR_OUT_OF_STRUCTURES },
+       { "WERR_ALREADY_ASSIGNED", WERR_ALREADY_ASSIGNED },
+       { "WERR_INVALID_PASSWORD", WERR_INVALID_PASSWORD },
+       { "WERR_INVALID_PARAMETER", WERR_INVALID_PARAMETER },
+       { "WERR_NET_WRITE_FAULT", WERR_NET_WRITE_FAULT },
+       { "WERR_NO_PROC_SLOTS", WERR_NO_PROC_SLOTS },
+       { "WERR_TOO_MANY_SEMAPHORES", WERR_TOO_MANY_SEMAPHORES },
+       { "WERR_EXCL_SEM_ALREADY_OWNED", WERR_EXCL_SEM_ALREADY_OWNED },
+       { "WERR_SEM_IS_SET", WERR_SEM_IS_SET },
+       { "WERR_TOO_MANY_SEM_REQUESTS", WERR_TOO_MANY_SEM_REQUESTS },
+       { "WERR_INVALID_AT_INTERRUPT_TIME", WERR_INVALID_AT_INTERRUPT_TIME },
+       { "WERR_SEM_OWNER_DIED", WERR_SEM_OWNER_DIED },
+       { "WERR_SEM_USER_LIMIT", WERR_SEM_USER_LIMIT },
+       { "WERR_DISK_CHANGE", WERR_DISK_CHANGE },
+       { "WERR_DRIVE_LOCKED", WERR_DRIVE_LOCKED },
+       { "WERR_BROKEN_PIPE", WERR_BROKEN_PIPE },
+       { "WERR_OPEN_FAILED", WERR_OPEN_FAILED },
+       { "WERR_BUFFER_OVERFLOW", WERR_BUFFER_OVERFLOW },
+       { "WERR_DISK_FULL", WERR_DISK_FULL },
+       { "WERR_NO_MORE_SEARCH_HANDLES", WERR_NO_MORE_SEARCH_HANDLES },
+       { "WERR_INVALID_TARGET_HANDLE", WERR_INVALID_TARGET_HANDLE },
+       { "WERR_INVALID_CATEGORY", WERR_INVALID_CATEGORY },
+       { "WERR_INVALID_VERIFY_SWITCH", WERR_INVALID_VERIFY_SWITCH },
+       { "WERR_BAD_DRIVER_LEVEL", WERR_BAD_DRIVER_LEVEL },
+       { "WERR_INVALID_LEVEL", WERR_INVALID_LEVEL },
+       { "WERR_NO_VOLUME_LABEL", WERR_NO_VOLUME_LABEL },
+       { "WERR_MOD_NOT_FOUND", WERR_MOD_NOT_FOUND },
+       { "WERR_PROC_NOT_FOUND", WERR_PROC_NOT_FOUND },
+       { "WERR_WAIT_NO_CHILDREN", WERR_WAIT_NO_CHILDREN },
+       { "WERR_CHILD_NOT_COMPLETE", WERR_CHILD_NOT_COMPLETE },
+       { "WERR_DIRECT_ACCESS_HANDLE", WERR_DIRECT_ACCESS_HANDLE },
+       { "WERR_NEGATIVE_SEEK", WERR_NEGATIVE_SEEK },
+       { "WERR_SEEK_ON_DEVICE", WERR_SEEK_ON_DEVICE },
+       { "WERR_NOT_SUBSTED", WERR_NOT_SUBSTED },
+       { "WERR_JOIN_TO_JOIN", WERR_JOIN_TO_JOIN },
+       { "WERR_SUBST_TO_SUBST", WERR_SUBST_TO_SUBST },
+       { "WERR_JOIN_TO_SUBST", WERR_JOIN_TO_SUBST },
+       { "WERR_SAME_DRIVE", WERR_SAME_DRIVE },
+       { "WERR_DIR_NOT_ROOT", WERR_DIR_NOT_ROOT },
+       { "WERR_DIR_NOT_EMPTY", WERR_DIR_NOT_EMPTY },
+       { "WERR_IS_SUBST_PATH", WERR_IS_SUBST_PATH },
+       { "WERR_IS_JOIN_PATH", WERR_IS_JOIN_PATH },
+       { "WERR_PATH_BUSY", WERR_PATH_BUSY },
+       { "WERR_IS_SUBST_TARGET", WERR_IS_SUBST_TARGET },
+       { "WERR_SYSTEM_TRACE", WERR_SYSTEM_TRACE },
+       { "WERR_INVALID_EVENT_COUNT", WERR_INVALID_EVENT_COUNT },
+       { "WERR_TOO_MANY_MUXWAITERS", WERR_TOO_MANY_MUXWAITERS },
+       { "WERR_INVALID_LIST_FORMAT", WERR_INVALID_LIST_FORMAT },
+       { "WERR_LABEL_TOO_LONG", WERR_LABEL_TOO_LONG },
+       { "WERR_TOO_MANY_TCBS", WERR_TOO_MANY_TCBS },
+       { "WERR_SIGNAL_REFUSED", WERR_SIGNAL_REFUSED },
+       { "WERR_DISCARDED", WERR_DISCARDED },
+       { "WERR_NOT_LOCKED", WERR_NOT_LOCKED },
+       { "WERR_BAD_THREADID_ADDR", WERR_BAD_THREADID_ADDR },
+       { "WERR_BAD_ARGUMENTS", WERR_BAD_ARGUMENTS },
+       { "WERR_BAD_PATHNAME", WERR_BAD_PATHNAME },
+       { "WERR_SIGNAL_PENDING", WERR_SIGNAL_PENDING },
+       { "WERR_MAX_THRDS_REACHED", WERR_MAX_THRDS_REACHED },
+       { "WERR_LOCK_FAILED", WERR_LOCK_FAILED },
+       { "WERR_BUSY", WERR_BUSY },
+       { "WERR_CANCEL_VIOLATION", WERR_CANCEL_VIOLATION },
+       { "WERR_ATOMIC_LOCKS_NOT_SUPPORTED", WERR_ATOMIC_LOCKS_NOT_SUPPORTED },
+       { "WERR_INVALID_SEGMENT_NUMBER", WERR_INVALID_SEGMENT_NUMBER },
+       { "WERR_INVALID_ORDINAL", WERR_INVALID_ORDINAL },
+       { "WERR_INVALID_FLAG_NUMBER", WERR_INVALID_FLAG_NUMBER },
+       { "WERR_SEM_NOT_FOUND", WERR_SEM_NOT_FOUND },
+       { "WERR_INVALID_STARTING_CODESEG", WERR_INVALID_STARTING_CODESEG },
+       { "WERR_INVALID_STACKSEG", WERR_INVALID_STACKSEG },
+       { "WERR_INVALID_MODULETYPE", WERR_INVALID_MODULETYPE },
+       { "WERR_INVALID_EXE_SIGNATURE", WERR_INVALID_EXE_SIGNATURE },
+       { "WERR_EXE_MARKED_INVALID", WERR_EXE_MARKED_INVALID },
+       { "WERR_BAD_EXE_FORMAT", WERR_BAD_EXE_FORMAT },
+       { "WERR_ITERATED_DATA_EXCEEDS_64K", WERR_ITERATED_DATA_EXCEEDS_64K },
+       { "WERR_INVALID_MINALLOCSIZE", WERR_INVALID_MINALLOCSIZE },
+       { "WERR_DYNLINK_FROM_INVALID_RING", WERR_DYNLINK_FROM_INVALID_RING },
+       { "WERR_IOPL_NOT_ENABLED", WERR_IOPL_NOT_ENABLED },
+       { "WERR_INVALID_SEGDPL", WERR_INVALID_SEGDPL },
+       { "WERR_AUTODATASEG_EXCEEDS_64K", WERR_AUTODATASEG_EXCEEDS_64K },
+       { "WERR_RING2SEG_MUST_BE_MOVABLE", WERR_RING2SEG_MUST_BE_MOVABLE },
+       { "WERR_RELOC_CHAIN_XEEDS_SEGLIM", WERR_RELOC_CHAIN_XEEDS_SEGLIM },
+       { "WERR_INFLOOP_IN_RELOC_CHAIN", WERR_INFLOOP_IN_RELOC_CHAIN },
+       { "WERR_ENVVAR_NOT_FOUND", WERR_ENVVAR_NOT_FOUND },
+       { "WERR_NO_SIGNAL_SENT", WERR_NO_SIGNAL_SENT },
+       { "WERR_FILENAME_EXCED_RANGE", WERR_FILENAME_EXCED_RANGE },
+       { "WERR_RING2_STACK_IN_USE", WERR_RING2_STACK_IN_USE },
+       { "WERR_META_EXPANSION_TOO_LONG", WERR_META_EXPANSION_TOO_LONG },
+       { "WERR_INVALID_SIGNAL_NUMBER", WERR_INVALID_SIGNAL_NUMBER },
+       { "WERR_THREAD_1_INACTIVE", WERR_THREAD_1_INACTIVE },
+       { "WERR_LOCKED", WERR_LOCKED },
+       { "WERR_TOO_MANY_MODULES", WERR_TOO_MANY_MODULES },
+       { "WERR_NESTING_NOT_ALLOWED", WERR_NESTING_NOT_ALLOWED },
+       { "WERR_EXE_MACHINE_TYPE_MISMATCH", WERR_EXE_MACHINE_TYPE_MISMATCH },
+       { "WERR_EXE_CANNOT_MODIFY_SIGNED_BINARY", WERR_EXE_CANNOT_MODIFY_SIGNED_BINARY },
+       { "WERR_EXE_CANNOT_MODIFY_STRONG_SIGNED_BINARY", WERR_EXE_CANNOT_MODIFY_STRONG_SIGNED_BINARY },
+       { "WERR_FILE_CHECKED_OUT", WERR_FILE_CHECKED_OUT },
+       { "WERR_CHECKOUT_REQUIRED", WERR_CHECKOUT_REQUIRED },
+       { "WERR_BAD_FILE_TYPE", WERR_BAD_FILE_TYPE },
+       { "WERR_FILE_TOO_LARGE", WERR_FILE_TOO_LARGE },
+       { "WERR_FORMS_AUTH_REQUIRED", WERR_FORMS_AUTH_REQUIRED },
+       { "WERR_VIRUS_INFECTED", WERR_VIRUS_INFECTED },
+       { "WERR_VIRUS_DELETED", WERR_VIRUS_DELETED },
+       { "WERR_PIPE_LOCAL", WERR_PIPE_LOCAL },
+       { "WERR_BAD_PIPE", WERR_BAD_PIPE },
+       { "WERR_PIPE_BUSY", WERR_PIPE_BUSY },
+       { "WERR_NO_DATA", WERR_NO_DATA },
+       { "WERR_PIPE_NOT_CONNECTED", WERR_PIPE_NOT_CONNECTED },
+       { "WERR_VC_DISCONNECTED", WERR_VC_DISCONNECTED },
+       { "WERR_INVALID_EA_NAME", WERR_INVALID_EA_NAME },
+       { "WERR_EA_LIST_INCONSISTENT", WERR_EA_LIST_INCONSISTENT },
+       { "WERR_WAIT_TIMEOUT", WERR_WAIT_TIMEOUT },
+       { "WERR_CANNOT_COPY", WERR_CANNOT_COPY },
+       { "WERR_DIRECTORY", WERR_DIRECTORY },
+       { "WERR_EAS_DIDNT_FIT", WERR_EAS_DIDNT_FIT },
+       { "WERR_EA_FILE_CORRUPT", WERR_EA_FILE_CORRUPT },
+       { "WERR_EA_TABLE_FULL", WERR_EA_TABLE_FULL },
+       { "WERR_INVALID_EA_HANDLE", WERR_INVALID_EA_HANDLE },
+       { "WERR_EAS_NOT_SUPPORTED", WERR_EAS_NOT_SUPPORTED },
+       { "WERR_NOT_OWNER", WERR_NOT_OWNER },
+       { "WERR_TOO_MANY_POSTS", WERR_TOO_MANY_POSTS },
+       { "WERR_PARTIAL_COPY", WERR_PARTIAL_COPY },
+       { "WERR_OPLOCK_NOT_GRANTED", WERR_OPLOCK_NOT_GRANTED },
+       { "WERR_INVALID_OPLOCK_PROTOCOL", WERR_INVALID_OPLOCK_PROTOCOL },
+       { "WERR_DISK_TOO_FRAGMENTED", WERR_DISK_TOO_FRAGMENTED },
+       { "WERR_DELETE_PENDING", WERR_DELETE_PENDING },
+       { "WERR_MR_MID_NOT_FOUND", WERR_MR_MID_NOT_FOUND },
+       { "WERR_SCOPE_NOT_FOUND", WERR_SCOPE_NOT_FOUND },
+       { "WERR_FAIL_NOACTION_REBOOT", WERR_FAIL_NOACTION_REBOOT },
+       { "WERR_FAIL_SHUTDOWN", WERR_FAIL_SHUTDOWN },
+       { "WERR_FAIL_RESTART", WERR_FAIL_RESTART },
+       { "WERR_MAX_SESSIONS_REACHED", WERR_MAX_SESSIONS_REACHED },
+       { "WERR_THREAD_MODE_ALREADY_BACKGROUND", WERR_THREAD_MODE_ALREADY_BACKGROUND },
+       { "WERR_THREAD_MODE_NOT_BACKGROUND", WERR_THREAD_MODE_NOT_BACKGROUND },
+       { "WERR_PROCESS_MODE_ALREADY_BACKGROUND", WERR_PROCESS_MODE_ALREADY_BACKGROUND },
+       { "WERR_PROCESS_MODE_NOT_BACKGROUND", WERR_PROCESS_MODE_NOT_BACKGROUND },
+       { "WERR_INVALID_ADDRESS", WERR_INVALID_ADDRESS },
+       { "WERR_USER_PROFILE_LOAD", WERR_USER_PROFILE_LOAD },
+       { "WERR_ARITHMETIC_OVERFLOW", WERR_ARITHMETIC_OVERFLOW },
+       { "WERR_PIPE_CONNECTED", WERR_PIPE_CONNECTED },
+       { "WERR_PIPE_LISTENING", WERR_PIPE_LISTENING },
+       { "WERR_VERIFIER_STOP", WERR_VERIFIER_STOP },
+       { "WERR_ABIOS_ERROR", WERR_ABIOS_ERROR },
+       { "WERR_WX86_WARNING", WERR_WX86_WARNING },
+       { "WERR_WX86_ERROR", WERR_WX86_ERROR },
+       { "WERR_TIMER_NOT_CANCELED", WERR_TIMER_NOT_CANCELED },
+       { "WERR_UNWIND", WERR_UNWIND },
+       { "WERR_BAD_STACK", WERR_BAD_STACK },
+       { "WERR_INVALID_UNWIND_TARGET", WERR_INVALID_UNWIND_TARGET },
+       { "WERR_INVALID_PORT_ATTRIBUTES", WERR_INVALID_PORT_ATTRIBUTES },
+       { "WERR_PORT_MESSAGE_TOO_LONG", WERR_PORT_MESSAGE_TOO_LONG },
+       { "WERR_INVALID_QUOTA_LOWER", WERR_INVALID_QUOTA_LOWER },
+       { "WERR_DEVICE_ALREADY_ATTACHED", WERR_DEVICE_ALREADY_ATTACHED },
+       { "WERR_INSTRUCTION_MISALIGNMENT", WERR_INSTRUCTION_MISALIGNMENT },
+       { "WERR_PROFILING_NOT_STARTED", WERR_PROFILING_NOT_STARTED },
+       { "WERR_PROFILING_NOT_STOPPED", WERR_PROFILING_NOT_STOPPED },
+       { "WERR_COULD_NOT_INTERPRET", WERR_COULD_NOT_INTERPRET },
+       { "WERR_PROFILING_AT_LIMIT", WERR_PROFILING_AT_LIMIT },
+       { "WERR_CANT_WAIT", WERR_CANT_WAIT },
+       { "WERR_CANT_TERMINATE_SELF", WERR_CANT_TERMINATE_SELF },
+       { "WERR_UNEXPECTED_MM_CREATE_ERR", WERR_UNEXPECTED_MM_CREATE_ERR },
+       { "WERR_UNEXPECTED_MM_MAP_ERROR", WERR_UNEXPECTED_MM_MAP_ERROR },
+       { "WERR_UNEXPECTED_MM_EXTEND_ERR", WERR_UNEXPECTED_MM_EXTEND_ERR },
+       { "WERR_BAD_FUNCTION_TABLE", WERR_BAD_FUNCTION_TABLE },
+       { "WERR_NO_GUID_TRANSLATION", WERR_NO_GUID_TRANSLATION },
+       { "WERR_INVALID_LDT_SIZE", WERR_INVALID_LDT_SIZE },
+       { "WERR_INVALID_LDT_OFFSET", WERR_INVALID_LDT_OFFSET },
+       { "WERR_INVALID_LDT_DESCRIPTOR", WERR_INVALID_LDT_DESCRIPTOR },
+       { "WERR_TOO_MANY_THREADS", WERR_TOO_MANY_THREADS },
+       { "WERR_THREAD_NOT_IN_PROCESS", WERR_THREAD_NOT_IN_PROCESS },
+       { "WERR_PAGEFILE_QUOTA_EXCEEDED", WERR_PAGEFILE_QUOTA_EXCEEDED },
+       { "WERR_LOGON_SERVER_CONFLICT", WERR_LOGON_SERVER_CONFLICT },
+       { "WERR_SYNCHRONIZATION_REQUIRED", WERR_SYNCHRONIZATION_REQUIRED },
+       { "WERR_NET_OPEN_FAILED", WERR_NET_OPEN_FAILED },
+       { "WERR_IO_PRIVILEGE_FAILED", WERR_IO_PRIVILEGE_FAILED },
+       { "WERR_CONTROL_C_EXIT", WERR_CONTROL_C_EXIT },
+       { "WERR_MISSING_SYSTEMFILE", WERR_MISSING_SYSTEMFILE },
+       { "WERR_UNHANDLED_EXCEPTION", WERR_UNHANDLED_EXCEPTION },
+       { "WERR_APP_INIT_FAILURE", WERR_APP_INIT_FAILURE },
+       { "WERR_PAGEFILE_CREATE_FAILED", WERR_PAGEFILE_CREATE_FAILED },
+       { "WERR_INVALID_IMAGE_HASH", WERR_INVALID_IMAGE_HASH },
+       { "WERR_NO_PAGEFILE", WERR_NO_PAGEFILE },
+       { "WERR_ILLEGAL_FLOAT_CONTEXT", WERR_ILLEGAL_FLOAT_CONTEXT },
+       { "WERR_NO_EVENT_PAIR", WERR_NO_EVENT_PAIR },
+       { "WERR_DOMAIN_CTRLR_CONFIG_ERROR", WERR_DOMAIN_CTRLR_CONFIG_ERROR },
+       { "WERR_ILLEGAL_CHARACTER", WERR_ILLEGAL_CHARACTER },
+       { "WERR_UNDEFINED_CHARACTER", WERR_UNDEFINED_CHARACTER },
+       { "WERR_FLOPPY_VOLUME", WERR_FLOPPY_VOLUME },
+       { "WERR_BIOS_FAILED_TO_CONNECT_INTERRUPT", WERR_BIOS_FAILED_TO_CONNECT_INTERRUPT },
+       { "WERR_BACKUP_CONTROLLER", WERR_BACKUP_CONTROLLER },
+       { "WERR_MUTANT_LIMIT_EXCEEDED", WERR_MUTANT_LIMIT_EXCEEDED },
+       { "WERR_FS_DRIVER_REQUIRED", WERR_FS_DRIVER_REQUIRED },
+       { "WERR_CANNOT_LOAD_REGISTRY_FILE", WERR_CANNOT_LOAD_REGISTRY_FILE },
+       { "WERR_DEBUG_ATTACH_FAILED", WERR_DEBUG_ATTACH_FAILED },
+       { "WERR_SYSTEM_PROCESS_TERMINATED", WERR_SYSTEM_PROCESS_TERMINATED },
+       { "WERR_DATA_NOT_ACCEPTED", WERR_DATA_NOT_ACCEPTED },
+       { "WERR_VDM_HARD_ERROR", WERR_VDM_HARD_ERROR },
+       { "WERR_DRIVER_CANCEL_TIMEOUT", WERR_DRIVER_CANCEL_TIMEOUT },
+       { "WERR_REPLY_MESSAGE_MISMATCH", WERR_REPLY_MESSAGE_MISMATCH },
+       { "WERR_LOST_WRITEBEHIND_DATA", WERR_LOST_WRITEBEHIND_DATA },
+       { "WERR_CLIENT_SERVER_PARAMETERS_INVALID", WERR_CLIENT_SERVER_PARAMETERS_INVALID },
+       { "WERR_NOT_TINY_STREAM", WERR_NOT_TINY_STREAM },
+       { "WERR_STACK_OVERFLOW_READ", WERR_STACK_OVERFLOW_READ },
+       { "WERR_CONVERT_TO_LARGE", WERR_CONVERT_TO_LARGE },
+       { "WERR_FOUND_OUT_OF_SCOPE", WERR_FOUND_OUT_OF_SCOPE },
+       { "WERR_ALLOCATE_BUCKET", WERR_ALLOCATE_BUCKET },
+       { "WERR_MARSHALL_OVERFLOW", WERR_MARSHALL_OVERFLOW },
+       { "WERR_INVALID_VARIANT", WERR_INVALID_VARIANT },
+       { "WERR_BAD_COMPRESSION_BUFFER", WERR_BAD_COMPRESSION_BUFFER },
+       { "WERR_AUDIT_FAILED", WERR_AUDIT_FAILED },
+       { "WERR_TIMER_RESOLUTION_NOT_SET", WERR_TIMER_RESOLUTION_NOT_SET },
+       { "WERR_INSUFFICIENT_LOGON_INFO", WERR_INSUFFICIENT_LOGON_INFO },
+       { "WERR_BAD_DLL_ENTRYPOINT", WERR_BAD_DLL_ENTRYPOINT },
+       { "WERR_BAD_SERVICE_ENTRYPOINT", WERR_BAD_SERVICE_ENTRYPOINT },
+       { "WERR_IP_ADDRESS_CONFLICT1", WERR_IP_ADDRESS_CONFLICT1 },
+       { "WERR_IP_ADDRESS_CONFLICT2", WERR_IP_ADDRESS_CONFLICT2 },
+       { "WERR_REGISTRY_QUOTA_LIMIT", WERR_REGISTRY_QUOTA_LIMIT },
+       { "WERR_NO_CALLBACK_ACTIVE", WERR_NO_CALLBACK_ACTIVE },
+       { "WERR_PWD_TOO_SHORT", WERR_PWD_TOO_SHORT },
+       { "WERR_PWD_TOO_RECENT", WERR_PWD_TOO_RECENT },
+       { "WERR_PWD_HISTORY_CONFLICT", WERR_PWD_HISTORY_CONFLICT },
+       { "WERR_UNSUPPORTED_COMPRESSION", WERR_UNSUPPORTED_COMPRESSION },
+       { "WERR_INVALID_HW_PROFILE", WERR_INVALID_HW_PROFILE },
+       { "WERR_INVALID_PLUGPLAY_DEVICE_PATH", WERR_INVALID_PLUGPLAY_DEVICE_PATH },
+       { "WERR_QUOTA_LIST_INCONSISTENT", WERR_QUOTA_LIST_INCONSISTENT },
+       { "WERR_EVALUATION_EXPIRATION", WERR_EVALUATION_EXPIRATION },
+       { "WERR_ILLEGAL_DLL_RELOCATION", WERR_ILLEGAL_DLL_RELOCATION },
+       { "WERR_DLL_INIT_FAILED_LOGOFF", WERR_DLL_INIT_FAILED_LOGOFF },
+       { "WERR_VALIDATE_CONTINUE", WERR_VALIDATE_CONTINUE },
+       { "WERR_NO_MORE_MATCHES", WERR_NO_MORE_MATCHES },
+       { "WERR_RANGE_LIST_CONFLICT", WERR_RANGE_LIST_CONFLICT },
+       { "WERR_SERVER_SID_MISMATCH", WERR_SERVER_SID_MISMATCH },
+       { "WERR_CANT_ENABLE_DENY_ONLY", WERR_CANT_ENABLE_DENY_ONLY },
+       { "WERR_FLOAT_MULTIPLE_FAULTS", WERR_FLOAT_MULTIPLE_FAULTS },
+       { "WERR_FLOAT_MULTIPLE_TRAPS", WERR_FLOAT_MULTIPLE_TRAPS },
+       { "WERR_NOINTERFACE", WERR_NOINTERFACE },
+       { "WERR_DRIVER_FAILED_SLEEP", WERR_DRIVER_FAILED_SLEEP },
+       { "WERR_CORRUPT_SYSTEM_FILE", WERR_CORRUPT_SYSTEM_FILE },
+       { "WERR_COMMITMENT_MINIMUM", WERR_COMMITMENT_MINIMUM },
+       { "WERR_PNP_RESTART_ENUMERATION", WERR_PNP_RESTART_ENUMERATION },
+       { "WERR_SYSTEM_IMAGE_BAD_SIGNATURE", WERR_SYSTEM_IMAGE_BAD_SIGNATURE },
+       { "WERR_PNP_REBOOT_REQUIRED", WERR_PNP_REBOOT_REQUIRED },
+       { "WERR_INSUFFICIENT_POWER", WERR_INSUFFICIENT_POWER },
+       { "WERR_MULTIPLE_FAULT_VIOLATION", WERR_MULTIPLE_FAULT_VIOLATION },
+       { "WERR_SYSTEM_SHUTDOWN", WERR_SYSTEM_SHUTDOWN },
+       { "WERR_PORT_NOT_SET", WERR_PORT_NOT_SET },
+       { "WERR_DS_VERSION_CHECK_FAILURE", WERR_DS_VERSION_CHECK_FAILURE },
+       { "WERR_RANGE_NOT_FOUND", WERR_RANGE_NOT_FOUND },
+       { "WERR_NOT_SAFE_MODE_DRIVER", WERR_NOT_SAFE_MODE_DRIVER },
+       { "WERR_FAILED_DRIVER_ENTRY", WERR_FAILED_DRIVER_ENTRY },
+       { "WERR_DEVICE_ENUMERATION_ERROR", WERR_DEVICE_ENUMERATION_ERROR },
+       { "WERR_MOUNT_POINT_NOT_RESOLVED", WERR_MOUNT_POINT_NOT_RESOLVED },
+       { "WERR_INVALID_DEVICE_OBJECT_PARAMETER", WERR_INVALID_DEVICE_OBJECT_PARAMETER },
+       { "WERR_MCA_OCCURED", WERR_MCA_OCCURED },
+       { "WERR_DRIVER_DATABASE_ERROR", WERR_DRIVER_DATABASE_ERROR },
+       { "WERR_SYSTEM_HIVE_TOO_LARGE", WERR_SYSTEM_HIVE_TOO_LARGE },
+       { "WERR_DRIVER_FAILED_PRIOR_UNLOAD", WERR_DRIVER_FAILED_PRIOR_UNLOAD },
+       { "WERR_VOLSNAP_PREPARE_HIBERNATE", WERR_VOLSNAP_PREPARE_HIBERNATE },
+       { "WERR_HIBERNATION_FAILURE", WERR_HIBERNATION_FAILURE },
+       { "WERR_FILE_SYSTEM_LIMITATION", WERR_FILE_SYSTEM_LIMITATION },
+       { "WERR_ASSERTION_FAILURE", WERR_ASSERTION_FAILURE },
+       { "WERR_ACPI_ERROR", WERR_ACPI_ERROR },
+       { "WERR_WOW_ASSERTION", WERR_WOW_ASSERTION },
+       { "WERR_PNP_BAD_MPS_TABLE", WERR_PNP_BAD_MPS_TABLE },
+       { "WERR_PNP_TRANSLATION_FAILED", WERR_PNP_TRANSLATION_FAILED },
+       { "WERR_PNP_IRQ_TRANSLATION_FAILED", WERR_PNP_IRQ_TRANSLATION_FAILED },
+       { "WERR_PNP_INVALID_ID", WERR_PNP_INVALID_ID },
+       { "WERR_WAKE_SYSTEM_DEBUGGER", WERR_WAKE_SYSTEM_DEBUGGER },
+       { "WERR_HANDLES_CLOSED", WERR_HANDLES_CLOSED },
+       { "WERR_EXTRANEOUS_INFORMATION", WERR_EXTRANEOUS_INFORMATION },
+       { "WERR_RXACT_COMMIT_NECESSARY", WERR_RXACT_COMMIT_NECESSARY },
+       { "WERR_MEDIA_CHECK", WERR_MEDIA_CHECK },
+       { "WERR_GUID_SUBSTITUTION_MADE", WERR_GUID_SUBSTITUTION_MADE },
+       { "WERR_STOPPED_ON_SYMLINK", WERR_STOPPED_ON_SYMLINK },
+       { "WERR_LONGJUMP", WERR_LONGJUMP },
+       { "WERR_PLUGPLAY_QUERY_VETOED", WERR_PLUGPLAY_QUERY_VETOED },
+       { "WERR_UNWIND_CONSOLIDATE", WERR_UNWIND_CONSOLIDATE },
+       { "WERR_REGISTRY_HIVE_RECOVERED", WERR_REGISTRY_HIVE_RECOVERED },
+       { "WERR_DLL_MIGHT_BE_INSECURE", WERR_DLL_MIGHT_BE_INSECURE },
+       { "WERR_DLL_MIGHT_BE_INCOMPATIBLE", WERR_DLL_MIGHT_BE_INCOMPATIBLE },
+       { "WERR_DBG_EXCEPTION_NOT_HANDLED", WERR_DBG_EXCEPTION_NOT_HANDLED },
+       { "WERR_DBG_REPLY_LATER", WERR_DBG_REPLY_LATER },
+       { "WERR_DBG_UNABLE_TO_PROVIDE_HANDLE", WERR_DBG_UNABLE_TO_PROVIDE_HANDLE },
+       { "WERR_DBG_TERMINATE_THREAD", WERR_DBG_TERMINATE_THREAD },
+       { "WERR_DBG_TERMINATE_PROCESS", WERR_DBG_TERMINATE_PROCESS },
+       { "WERR_DBG_CONTROL_C", WERR_DBG_CONTROL_C },
+       { "WERR_DBG_PRINTEXCEPTION_C", WERR_DBG_PRINTEXCEPTION_C },
+       { "WERR_DBG_RIPEXCEPTION", WERR_DBG_RIPEXCEPTION },
+       { "WERR_DBG_CONTROL_BREAK", WERR_DBG_CONTROL_BREAK },
+       { "WERR_DBG_COMMAND_EXCEPTION", WERR_DBG_COMMAND_EXCEPTION },
+       { "WERR_OBJECT_NAME_EXISTS", WERR_OBJECT_NAME_EXISTS },
+       { "WERR_THREAD_WAS_SUSPENDED", WERR_THREAD_WAS_SUSPENDED },
+       { "WERR_IMAGE_NOT_AT_BASE", WERR_IMAGE_NOT_AT_BASE },
+       { "WERR_RXACT_STATE_CREATED", WERR_RXACT_STATE_CREATED },
+       { "WERR_SEGMENT_NOTIFICATION", WERR_SEGMENT_NOTIFICATION },
+       { "WERR_BAD_CURRENT_DIRECTORY", WERR_BAD_CURRENT_DIRECTORY },
+       { "WERR_FT_READ_RECOVERY_FROM_BACKUP", WERR_FT_READ_RECOVERY_FROM_BACKUP },
+       { "WERR_FT_WRITE_RECOVERY", WERR_FT_WRITE_RECOVERY },
+       { "WERR_IMAGE_MACHINE_TYPE_MISMATCH", WERR_IMAGE_MACHINE_TYPE_MISMATCH },
+       { "WERR_RECEIVE_PARTIAL", WERR_RECEIVE_PARTIAL },
+       { "WERR_RECEIVE_EXPEDITED", WERR_RECEIVE_EXPEDITED },
+       { "WERR_RECEIVE_PARTIAL_EXPEDITED", WERR_RECEIVE_PARTIAL_EXPEDITED },
+       { "WERR_EVENT_DONE", WERR_EVENT_DONE },
+       { "WERR_EVENT_PENDING", WERR_EVENT_PENDING },
+       { "WERR_CHECKING_FILE_SYSTEM", WERR_CHECKING_FILE_SYSTEM },
+       { "WERR_FATAL_APP_EXIT", WERR_FATAL_APP_EXIT },
+       { "WERR_PREDEFINED_HANDLE", WERR_PREDEFINED_HANDLE },
+       { "WERR_WAS_UNLOCKED", WERR_WAS_UNLOCKED },
+       { "WERR_SERVICE_NOTIFICATION", WERR_SERVICE_NOTIFICATION },
+       { "WERR_WAS_LOCKED", WERR_WAS_LOCKED },
+       { "WERR_LOG_HARD_ERROR", WERR_LOG_HARD_ERROR },
+       { "WERR_ALREADY_WIN32", WERR_ALREADY_WIN32 },
+       { "WERR_IMAGE_MACHINE_TYPE_MISMATCH_EXE", WERR_IMAGE_MACHINE_TYPE_MISMATCH_EXE },
+       { "WERR_NO_YIELD_PERFORMED", WERR_NO_YIELD_PERFORMED },
+       { "WERR_TIMER_RESUME_IGNORED", WERR_TIMER_RESUME_IGNORED },
+       { "WERR_ARBITRATION_UNHANDLED", WERR_ARBITRATION_UNHANDLED },
+       { "WERR_CARDBUS_NOT_SUPPORTED", WERR_CARDBUS_NOT_SUPPORTED },
+       { "WERR_MP_PROCESSOR_MISMATCH", WERR_MP_PROCESSOR_MISMATCH },
+       { "WERR_HIBERNATED", WERR_HIBERNATED },
+       { "WERR_RESUME_HIBERNATION", WERR_RESUME_HIBERNATION },
+       { "WERR_FIRMWARE_UPDATED", WERR_FIRMWARE_UPDATED },
+       { "WERR_DRIVERS_LEAKING_LOCKED_PAGES", WERR_DRIVERS_LEAKING_LOCKED_PAGES },
+       { "WERR_WAKE_SYSTEM", WERR_WAKE_SYSTEM },
+       { "WERR_WAIT_1", WERR_WAIT_1 },
+       { "WERR_WAIT_2", WERR_WAIT_2 },
+       { "WERR_WAIT_3", WERR_WAIT_3 },
+       { "WERR_WAIT_63", WERR_WAIT_63 },
+       { "WERR_ABANDONED_WAIT_0", WERR_ABANDONED_WAIT_0 },
+       { "WERR_ABANDONED_WAIT_63", WERR_ABANDONED_WAIT_63 },
+       { "WERR_USER_APC", WERR_USER_APC },
+       { "WERR_KERNEL_APC", WERR_KERNEL_APC },
+       { "WERR_ALERTED", WERR_ALERTED },
+       { "WERR_ELEVATION_REQUIRED", WERR_ELEVATION_REQUIRED },
+       { "WERR_REPARSE", WERR_REPARSE },
+       { "WERR_OPLOCK_BREAK_IN_PROGRESS", WERR_OPLOCK_BREAK_IN_PROGRESS },
+       { "WERR_VOLUME_MOUNTED", WERR_VOLUME_MOUNTED },
+       { "WERR_RXACT_COMMITTED", WERR_RXACT_COMMITTED },
+       { "WERR_NOTIFY_CLEANUP", WERR_NOTIFY_CLEANUP },
+       { "WERR_PRIMARY_TRANSPORT_CONNECT_FAILED", WERR_PRIMARY_TRANSPORT_CONNECT_FAILED },
+       { "WERR_PAGE_FAULT_TRANSITION", WERR_PAGE_FAULT_TRANSITION },
+       { "WERR_PAGE_FAULT_DEMAND_ZERO", WERR_PAGE_FAULT_DEMAND_ZERO },
+       { "WERR_PAGE_FAULT_COPY_ON_WRITE", WERR_PAGE_FAULT_COPY_ON_WRITE },
+       { "WERR_PAGE_FAULT_GUARD_PAGE", WERR_PAGE_FAULT_GUARD_PAGE },
+       { "WERR_PAGE_FAULT_PAGING_FILE", WERR_PAGE_FAULT_PAGING_FILE },
+       { "WERR_CACHE_PAGE_LOCKED", WERR_CACHE_PAGE_LOCKED },
+       { "WERR_CRASH_DUMP", WERR_CRASH_DUMP },
+       { "WERR_BUFFER_ALL_ZEROS", WERR_BUFFER_ALL_ZEROS },
+       { "WERR_REPARSE_OBJECT", WERR_REPARSE_OBJECT },
+       { "WERR_RESOURCE_REQUIREMENTS_CHANGED", WERR_RESOURCE_REQUIREMENTS_CHANGED },
+       { "WERR_TRANSLATION_COMPLETE", WERR_TRANSLATION_COMPLETE },
+       { "WERR_NOTHING_TO_TERMINATE", WERR_NOTHING_TO_TERMINATE },
+       { "WERR_PROCESS_NOT_IN_JOB", WERR_PROCESS_NOT_IN_JOB },
+       { "WERR_PROCESS_IN_JOB", WERR_PROCESS_IN_JOB },
+       { "WERR_VOLSNAP_HIBERNATE_READY", WERR_VOLSNAP_HIBERNATE_READY },
+       { "WERR_FSFILTER_OP_COMPLETED_SUCCESSFULLY", WERR_FSFILTER_OP_COMPLETED_SUCCESSFULLY },
+       { "WERR_INTERRUPT_VECTOR_ALREADY_CONNECTED", WERR_INTERRUPT_VECTOR_ALREADY_CONNECTED },
+       { "WERR_INTERRUPT_STILL_CONNECTED", WERR_INTERRUPT_STILL_CONNECTED },
+       { "WERR_WAIT_FOR_OPLOCK", WERR_WAIT_FOR_OPLOCK },
+       { "WERR_DBG_EXCEPTION_HANDLED", WERR_DBG_EXCEPTION_HANDLED },
+       { "WERR_DBG_CONTINUE", WERR_DBG_CONTINUE },
+       { "WERR_CALLBACK_POP_STACK", WERR_CALLBACK_POP_STACK },
+       { "WERR_COMPRESSION_DISABLED", WERR_COMPRESSION_DISABLED },
+       { "WERR_CANTFETCHBACKWARDS", WERR_CANTFETCHBACKWARDS },
+       { "WERR_CANTSCROLLBACKWARDS", WERR_CANTSCROLLBACKWARDS },
+       { "WERR_ROWSNOTRELEASED", WERR_ROWSNOTRELEASED },
+       { "WERR_BAD_ACCESSOR_FLAGS", WERR_BAD_ACCESSOR_FLAGS },
+       { "WERR_ERRORS_ENCOUNTERED", WERR_ERRORS_ENCOUNTERED },
+       { "WERR_NOT_CAPABLE", WERR_NOT_CAPABLE },
+       { "WERR_REQUEST_OUT_OF_SEQUENCE", WERR_REQUEST_OUT_OF_SEQUENCE },
+       { "WERR_VERSION_PARSE_ERROR", WERR_VERSION_PARSE_ERROR },
+       { "WERR_BADSTARTPOSITION", WERR_BADSTARTPOSITION },
+       { "WERR_MEMORY_HARDWARE", WERR_MEMORY_HARDWARE },
+       { "WERR_DISK_REPAIR_DISABLED", WERR_DISK_REPAIR_DISABLED },
+       { "WERR_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE", WERR_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE },
+       { "WERR_SYSTEM_POWERSTATE_TRANSITION", WERR_SYSTEM_POWERSTATE_TRANSITION },
+       { "WERR_SYSTEM_POWERSTATE_COMPLEX_TRANSITION", WERR_SYSTEM_POWERSTATE_COMPLEX_TRANSITION },
+       { "WERR_MCA_EXCEPTION", WERR_MCA_EXCEPTION },
+       { "WERR_ACCESS_AUDIT_BY_POLICY", WERR_ACCESS_AUDIT_BY_POLICY },
+       { "WERR_ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY", WERR_ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY },
+       { "WERR_ABANDON_HIBERFILE", WERR_ABANDON_HIBERFILE },
+       { "WERR_LOST_WRITEBEHIND_DATA_NETWORK_DISCONNECTED", WERR_LOST_WRITEBEHIND_DATA_NETWORK_DISCONNECTED },
+       { "WERR_LOST_WRITEBEHIND_DATA_NETWORK_SERVER_ERROR", WERR_LOST_WRITEBEHIND_DATA_NETWORK_SERVER_ERROR },
+       { "WERR_LOST_WRITEBEHIND_DATA_LOCAL_DISK_ERROR", WERR_LOST_WRITEBEHIND_DATA_LOCAL_DISK_ERROR },
+       { "WERR_EA_ACCESS_DENIED", WERR_EA_ACCESS_DENIED },
+       { "WERR_OPERATION_ABORTED", WERR_OPERATION_ABORTED },
+       { "WERR_IO_INCOMPLETE", WERR_IO_INCOMPLETE },
+       { "WERR_NOACCESS", WERR_NOACCESS },
+       { "WERR_SWAPERROR", WERR_SWAPERROR },
+       { "WERR_STACK_OVERFLOW", WERR_STACK_OVERFLOW },
+       { "WERR_INVALID_MESSAGE", WERR_INVALID_MESSAGE },
+       { "WERR_UNRECOGNIZED_VOLUME", WERR_UNRECOGNIZED_VOLUME },
+       { "WERR_FILE_INVALID", WERR_FILE_INVALID },
+       { "WERR_FULLSCREEN_MODE", WERR_FULLSCREEN_MODE },
+       { "WERR_NO_TOKEN", WERR_NO_TOKEN },
+       { "WERR_BADDB", WERR_BADDB },
+       { "WERR_BADKEY", WERR_BADKEY },
+       { "WERR_CANTOPEN", WERR_CANTOPEN },
+       { "WERR_CANTREAD", WERR_CANTREAD },
+       { "WERR_CANTWRITE", WERR_CANTWRITE },
+       { "WERR_REGISTRY_RECOVERED", WERR_REGISTRY_RECOVERED },
+       { "WERR_REGISTRY_CORRUPT", WERR_REGISTRY_CORRUPT },
+       { "WERR_REGISTRY_IO_FAILED", WERR_REGISTRY_IO_FAILED },
+       { "WERR_NOT_REGISTRY_FILE", WERR_NOT_REGISTRY_FILE },
+       { "WERR_KEY_DELETED", WERR_KEY_DELETED },
+       { "WERR_NO_LOG_SPACE", WERR_NO_LOG_SPACE },
+       { "WERR_KEY_HAS_CHILDREN", WERR_KEY_HAS_CHILDREN },
+       { "WERR_CHILD_MUST_BE_VOLATILE", WERR_CHILD_MUST_BE_VOLATILE },
+       { "WERR_NOTIFY_ENUM_DIR", WERR_NOTIFY_ENUM_DIR },
+       { "WERR_DEPENDENT_SERVICES_RUNNING", WERR_DEPENDENT_SERVICES_RUNNING },
+       { "WERR_SERVICE_REQUEST_TIMEOUT", WERR_SERVICE_REQUEST_TIMEOUT },
+       { "WERR_SERVICE_NO_THREAD", WERR_SERVICE_NO_THREAD },
+       { "WERR_SERVICE_DATABASE_LOCKED", WERR_SERVICE_DATABASE_LOCKED },
+       { "WERR_INVALID_SERVICE_ACCOUNT", WERR_INVALID_SERVICE_ACCOUNT },
+       { "WERR_CIRCULAR_DEPENDENCY", WERR_CIRCULAR_DEPENDENCY },
+       { "WERR_SERVICE_DOES_NOT_EXIST", WERR_SERVICE_DOES_NOT_EXIST },
+       { "WERR_SERVICE_CANNOT_ACCEPT_CTRL", WERR_SERVICE_CANNOT_ACCEPT_CTRL },
+       { "WERR_SERVICE_NOT_ACTIVE", WERR_SERVICE_NOT_ACTIVE },
+       { "WERR_FAILED_SERVICE_CONTROLLER_CONNECT", WERR_FAILED_SERVICE_CONTROLLER_CONNECT },
+       { "WERR_EXCEPTION_IN_SERVICE", WERR_EXCEPTION_IN_SERVICE },
+       { "WERR_DATABASE_DOES_NOT_EXIST", WERR_DATABASE_DOES_NOT_EXIST },
+       { "WERR_SERVICE_SPECIFIC_ERROR", WERR_SERVICE_SPECIFIC_ERROR },
+       { "WERR_PROCESS_ABORTED", WERR_PROCESS_ABORTED },
+       { "WERR_SERVICE_DEPENDENCY_FAIL", WERR_SERVICE_DEPENDENCY_FAIL },
+       { "WERR_SERVICE_LOGON_FAILED", WERR_SERVICE_LOGON_FAILED },
+       { "WERR_SERVICE_START_HANG", WERR_SERVICE_START_HANG },
+       { "WERR_INVALID_SERVICE_LOCK", WERR_INVALID_SERVICE_LOCK },
+       { "WERR_ALREADY_RUNNING_LKG", WERR_ALREADY_RUNNING_LKG },
+       { "WERR_SERVICE_DEPENDENCY_DELETED", WERR_SERVICE_DEPENDENCY_DELETED },
+       { "WERR_BOOT_ALREADY_ACCEPTED", WERR_BOOT_ALREADY_ACCEPTED },
+       { "WERR_DIFFERENT_SERVICE_ACCOUNT", WERR_DIFFERENT_SERVICE_ACCOUNT },
+       { "WERR_CANNOT_DETECT_DRIVER_FAILURE", WERR_CANNOT_DETECT_DRIVER_FAILURE },
+       { "WERR_CANNOT_DETECT_PROCESS_ABORT", WERR_CANNOT_DETECT_PROCESS_ABORT },
+       { "WERR_NO_RECOVERY_PROGRAM", WERR_NO_RECOVERY_PROGRAM },
+       { "WERR_SERVICE_NOT_IN_EXE", WERR_SERVICE_NOT_IN_EXE },
+       { "WERR_NOT_SAFEBOOT_SERVICE", WERR_NOT_SAFEBOOT_SERVICE },
+       { "WERR_END_OF_MEDIA", WERR_END_OF_MEDIA },
+       { "WERR_FILEMARK_DETECTED", WERR_FILEMARK_DETECTED },
+       { "WERR_BEGINNING_OF_MEDIA", WERR_BEGINNING_OF_MEDIA },
+       { "WERR_SETMARK_DETECTED", WERR_SETMARK_DETECTED },
+       { "WERR_NO_DATA_DETECTED", WERR_NO_DATA_DETECTED },
+       { "WERR_PARTITION_FAILURE", WERR_PARTITION_FAILURE },
+       { "WERR_INVALID_BLOCK_LENGTH", WERR_INVALID_BLOCK_LENGTH },
+       { "WERR_DEVICE_NOT_PARTITIONED", WERR_DEVICE_NOT_PARTITIONED },
+       { "WERR_UNABLE_TO_LOCK_MEDIA", WERR_UNABLE_TO_LOCK_MEDIA },
+       { "WERR_UNABLE_TO_UNLOAD_MEDIA", WERR_UNABLE_TO_UNLOAD_MEDIA },
+       { "WERR_MEDIA_CHANGED", WERR_MEDIA_CHANGED },
+       { "WERR_BUS_RESET", WERR_BUS_RESET },
+       { "WERR_NO_MEDIA_IN_DRIVE", WERR_NO_MEDIA_IN_DRIVE },
+       { "WERR_NO_UNICODE_TRANSLATION", WERR_NO_UNICODE_TRANSLATION },
+       { "WERR_DLL_INIT_FAILED", WERR_DLL_INIT_FAILED },
+       { "WERR_SHUTDOWN_IN_PROGRESS", WERR_SHUTDOWN_IN_PROGRESS },
+       { "WERR_IO_DEVICE", WERR_IO_DEVICE },
+       { "WERR_SERIAL_NO_DEVICE", WERR_SERIAL_NO_DEVICE },
+       { "WERR_IRQ_BUSY", WERR_IRQ_BUSY },
+       { "WERR_MORE_WRITES", WERR_MORE_WRITES },
+       { "WERR_COUNTER_TIMEOUT", WERR_COUNTER_TIMEOUT },
+       { "WERR_FLOPPY_ID_MARK_NOT_FOUND", WERR_FLOPPY_ID_MARK_NOT_FOUND },
+       { "WERR_FLOPPY_WRONG_CYLINDER", WERR_FLOPPY_WRONG_CYLINDER },
+       { "WERR_FLOPPY_UNKNOWN_ERROR", WERR_FLOPPY_UNKNOWN_ERROR },
+       { "WERR_FLOPPY_BAD_REGISTERS", WERR_FLOPPY_BAD_REGISTERS },
+       { "WERR_DISK_RECALIBRATE_FAILED", WERR_DISK_RECALIBRATE_FAILED },
+       { "WERR_DISK_OPERATION_FAILED", WERR_DISK_OPERATION_FAILED },
+       { "WERR_DISK_RESET_FAILED", WERR_DISK_RESET_FAILED },
+       { "WERR_EOM_OVERFLOW", WERR_EOM_OVERFLOW },
+       { "WERR_NOT_ENOUGH_SERVER_MEMORY", WERR_NOT_ENOUGH_SERVER_MEMORY },
+       { "WERR_POSSIBLE_DEADLOCK", WERR_POSSIBLE_DEADLOCK },
+       { "WERR_MAPPED_ALIGNMENT", WERR_MAPPED_ALIGNMENT },
+       { "WERR_SET_POWER_STATE_VETOED", WERR_SET_POWER_STATE_VETOED },
+       { "WERR_SET_POWER_STATE_FAILED", WERR_SET_POWER_STATE_FAILED },
+       { "WERR_TOO_MANY_LINKS", WERR_TOO_MANY_LINKS },
+       { "WERR_OLD_WIN_VERSION", WERR_OLD_WIN_VERSION },
+       { "WERR_APP_WRONG_OS", WERR_APP_WRONG_OS },
+       { "WERR_SINGLE_INSTANCE_APP", WERR_SINGLE_INSTANCE_APP },
+       { "WERR_RMODE_APP", WERR_RMODE_APP },
+       { "WERR_INVALID_DLL", WERR_INVALID_DLL },
+       { "WERR_NO_ASSOCIATION", WERR_NO_ASSOCIATION },
+       { "WERR_DDE_FAIL", WERR_DDE_FAIL },
+       { "WERR_DLL_NOT_FOUND", WERR_DLL_NOT_FOUND },
+       { "WERR_NO_MORE_USER_HANDLES", WERR_NO_MORE_USER_HANDLES },
+       { "WERR_MESSAGE_SYNC_ONLY", WERR_MESSAGE_SYNC_ONLY },
+       { "WERR_SOURCE_ELEMENT_EMPTY", WERR_SOURCE_ELEMENT_EMPTY },
+       { "WERR_DESTINATION_ELEMENT_FULL", WERR_DESTINATION_ELEMENT_FULL },
+       { "WERR_ILLEGAL_ELEMENT_ADDRESS", WERR_ILLEGAL_ELEMENT_ADDRESS },
+       { "WERR_MAGAZINE_NOT_PRESENT", WERR_MAGAZINE_NOT_PRESENT },
+       { "WERR_DEVICE_REINITIALIZATION_NEEDED", WERR_DEVICE_REINITIALIZATION_NEEDED },
+       { "WERR_DEVICE_REQUIRES_CLEANING", WERR_DEVICE_REQUIRES_CLEANING },
+       { "WERR_DEVICE_DOOR_OPEN", WERR_DEVICE_DOOR_OPEN },
+       { "WERR_NO_MATCH", WERR_NO_MATCH },
+       { "WERR_SET_NOT_FOUND", WERR_SET_NOT_FOUND },
+       { "WERR_POINT_NOT_FOUND", WERR_POINT_NOT_FOUND },
+       { "WERR_NO_TRACKING_SERVICE", WERR_NO_TRACKING_SERVICE },
+       { "WERR_NO_VOLUME_ID", WERR_NO_VOLUME_ID },
+       { "WERR_UNABLE_TO_REMOVE_REPLACED", WERR_UNABLE_TO_REMOVE_REPLACED },
+       { "WERR_UNABLE_TO_MOVE_REPLACEMENT", WERR_UNABLE_TO_MOVE_REPLACEMENT },
+       { "WERR_UNABLE_TO_MOVE_REPLACEMENT_2", WERR_UNABLE_TO_MOVE_REPLACEMENT_2 },
+       { "WERR_JOURNAL_DELETE_IN_PROGRESS", WERR_JOURNAL_DELETE_IN_PROGRESS },
+       { "WERR_JOURNAL_NOT_ACTIVE", WERR_JOURNAL_NOT_ACTIVE },
+       { "WERR_POTENTIAL_FILE_FOUND", WERR_POTENTIAL_FILE_FOUND },
+       { "WERR_JOURNAL_ENTRY_DELETED", WERR_JOURNAL_ENTRY_DELETED },
+       { "WERR_SHUTDOWN_IS_SCHEDULED", WERR_SHUTDOWN_IS_SCHEDULED },
+       { "WERR_SHUTDOWN_USERS_LOGGED_ON", WERR_SHUTDOWN_USERS_LOGGED_ON },
+       { "WERR_BAD_DEVICE", WERR_BAD_DEVICE },
+       { "WERR_CONNECTION_UNAVAIL", WERR_CONNECTION_UNAVAIL },
+       { "WERR_DEVICE_ALREADY_REMEMBERED", WERR_DEVICE_ALREADY_REMEMBERED },
+       { "WERR_NO_NET_OR_BAD_PATH", WERR_NO_NET_OR_BAD_PATH },
+       { "WERR_BAD_PROVIDER", WERR_BAD_PROVIDER },
+       { "WERR_CANNOT_OPEN_PROFILE", WERR_CANNOT_OPEN_PROFILE },
+       { "WERR_BAD_PROFILE", WERR_BAD_PROFILE },
+       { "WERR_NOT_CONTAINER", WERR_NOT_CONTAINER },
+       { "WERR_EXTENDED_ERROR", WERR_EXTENDED_ERROR },
+       { "WERR_INVALID_GROUPNAME", WERR_INVALID_GROUPNAME },
+       { "WERR_INVALID_EVENTNAME", WERR_INVALID_EVENTNAME },
+       { "WERR_INVALID_SERVICENAME", WERR_INVALID_SERVICENAME },
+       { "WERR_INVALID_NETNAME", WERR_INVALID_NETNAME },
+       { "WERR_INVALID_SHARENAME", WERR_INVALID_SHARENAME },
+       { "WERR_INVALID_PASSWORDNAME", WERR_INVALID_PASSWORDNAME },
+       { "WERR_INVALID_MESSAGENAME", WERR_INVALID_MESSAGENAME },
+       { "WERR_INVALID_MESSAGEDEST", WERR_INVALID_MESSAGEDEST },
+       { "WERR_SESSION_CREDENTIAL_CONFLICT", WERR_SESSION_CREDENTIAL_CONFLICT },
+       { "WERR_REMOTE_SESSION_LIMIT_EXCEEDED", WERR_REMOTE_SESSION_LIMIT_EXCEEDED },
+       { "WERR_DUP_DOMAINNAME", WERR_DUP_DOMAINNAME },
+       { "WERR_NO_NETWORK", WERR_NO_NETWORK },
+       { "WERR_CANCELLED", WERR_CANCELLED },
+       { "WERR_USER_MAPPED_FILE", WERR_USER_MAPPED_FILE },
+       { "WERR_CONNECTION_REFUSED", WERR_CONNECTION_REFUSED },
+       { "WERR_GRACEFUL_DISCONNECT", WERR_GRACEFUL_DISCONNECT },
+       { "WERR_ADDRESS_ALREADY_ASSOCIATED", WERR_ADDRESS_ALREADY_ASSOCIATED },
+       { "WERR_ADDRESS_NOT_ASSOCIATED", WERR_ADDRESS_NOT_ASSOCIATED },
+       { "WERR_CONNECTION_INVALID", WERR_CONNECTION_INVALID },
+       { "WERR_CONNECTION_ACTIVE", WERR_CONNECTION_ACTIVE },
+       { "WERR_NETWORK_UNREACHABLE", WERR_NETWORK_UNREACHABLE },
+       { "WERR_HOST_UNREACHABLE", WERR_HOST_UNREACHABLE },
+       { "WERR_PROTOCOL_UNREACHABLE", WERR_PROTOCOL_UNREACHABLE },
+       { "WERR_PORT_UNREACHABLE", WERR_PORT_UNREACHABLE },
+       { "WERR_REQUEST_ABORTED", WERR_REQUEST_ABORTED },
+       { "WERR_CONNECTION_ABORTED", WERR_CONNECTION_ABORTED },
+       { "WERR_RETRY", WERR_RETRY },
+       { "WERR_CONNECTION_COUNT_LIMIT", WERR_CONNECTION_COUNT_LIMIT },
+       { "WERR_LOGIN_TIME_RESTRICTION", WERR_LOGIN_TIME_RESTRICTION },
+       { "WERR_LOGIN_WKSTA_RESTRICTION", WERR_LOGIN_WKSTA_RESTRICTION },
+       { "WERR_INCORRECT_ADDRESS", WERR_INCORRECT_ADDRESS },
+       { "WERR_ALREADY_REGISTERED", WERR_ALREADY_REGISTERED },
+       { "WERR_SERVICE_NOT_FOUND", WERR_SERVICE_NOT_FOUND },
+       { "WERR_NOT_LOGGED_ON", WERR_NOT_LOGGED_ON },
+       { "WERR_CONTINUE", WERR_CONTINUE },
+       { "WERR_ALREADY_INITIALIZED", WERR_ALREADY_INITIALIZED },
+       { "WERR_NO_MORE_DEVICES", WERR_NO_MORE_DEVICES },
+       { "WERR_NO_SUCH_SITE", WERR_NO_SUCH_SITE },
+       { "WERR_DOMAIN_CONTROLLER_EXISTS", WERR_DOMAIN_CONTROLLER_EXISTS },
+       { "WERR_ONLY_IF_CONNECTED", WERR_ONLY_IF_CONNECTED },
+       { "WERR_OVERRIDE_NOCHANGES", WERR_OVERRIDE_NOCHANGES },
+       { "WERR_BAD_USER_PROFILE", WERR_BAD_USER_PROFILE },
+       { "WERR_NOT_SUPPORTED_ON_SBS", WERR_NOT_SUPPORTED_ON_SBS },
+       { "WERR_SERVER_SHUTDOWN_IN_PROGRESS", WERR_SERVER_SHUTDOWN_IN_PROGRESS },
+       { "WERR_HOST_DOWN", WERR_HOST_DOWN },
+       { "WERR_NON_ACCOUNT_SID", WERR_NON_ACCOUNT_SID },
+       { "WERR_NON_DOMAIN_SID", WERR_NON_DOMAIN_SID },
+       { "WERR_APPHELP_BLOCK", WERR_APPHELP_BLOCK },
+       { "WERR_ACCESS_DISABLED_BY_POLICY", WERR_ACCESS_DISABLED_BY_POLICY },
+       { "WERR_REG_NAT_CONSUMPTION", WERR_REG_NAT_CONSUMPTION },
+       { "WERR_CSCSHARE_OFFLINE", WERR_CSCSHARE_OFFLINE },
+       { "WERR_PKINIT_FAILURE", WERR_PKINIT_FAILURE },
+       { "WERR_SMARTCARD_SUBSYSTEM_FAILURE", WERR_SMARTCARD_SUBSYSTEM_FAILURE },
+       { "WERR_DOWNGRADE_DETECTED", WERR_DOWNGRADE_DETECTED },
+       { "WERR_CALLBACK_SUPPLIED_INVALID_DATA", WERR_CALLBACK_SUPPLIED_INVALID_DATA },
+       { "WERR_SYNC_FOREGROUND_REFRESH_REQUIRED", WERR_SYNC_FOREGROUND_REFRESH_REQUIRED },
+       { "WERR_DRIVER_BLOCKED", WERR_DRIVER_BLOCKED },
+       { "WERR_INVALID_IMPORT_OF_NON_DLL", WERR_INVALID_IMPORT_OF_NON_DLL },
+       { "WERR_ACCESS_DISABLED_WEBBLADE", WERR_ACCESS_DISABLED_WEBBLADE },
+       { "WERR_ACCESS_DISABLED_WEBBLADE_TAMPER", WERR_ACCESS_DISABLED_WEBBLADE_TAMPER },
+       { "WERR_RECOVERY_FAILURE", WERR_RECOVERY_FAILURE },
+       { "WERR_ALREADY_FIBER", WERR_ALREADY_FIBER },
+       { "WERR_ALREADY_THREAD", WERR_ALREADY_THREAD },
+       { "WERR_STACK_BUFFER_OVERRUN", WERR_STACK_BUFFER_OVERRUN },
+       { "WERR_PARAMETER_QUOTA_EXCEEDED", WERR_PARAMETER_QUOTA_EXCEEDED },
+       { "WERR_DEBUGGER_INACTIVE", WERR_DEBUGGER_INACTIVE },
+       { "WERR_DELAY_LOAD_FAILED", WERR_DELAY_LOAD_FAILED },
+       { "WERR_VDM_DISALLOWED", WERR_VDM_DISALLOWED },
+       { "WERR_UNIDENTIFIED_ERROR", WERR_UNIDENTIFIED_ERROR },
+       { "WERR_BEYOND_VDL", WERR_BEYOND_VDL },
+       { "WERR_INCOMPATIBLE_SERVICE_SID_TYPE", WERR_INCOMPATIBLE_SERVICE_SID_TYPE },
+       { "WERR_DRIVER_PROCESS_TERMINATED", WERR_DRIVER_PROCESS_TERMINATED },
+       { "WERR_IMPLEMENTATION_LIMIT", WERR_IMPLEMENTATION_LIMIT },
+       { "WERR_PROCESS_IS_PROTECTED", WERR_PROCESS_IS_PROTECTED },
+       { "WERR_SERVICE_NOTIFY_CLIENT_LAGGING", WERR_SERVICE_NOTIFY_CLIENT_LAGGING },
+       { "WERR_DISK_QUOTA_EXCEEDED", WERR_DISK_QUOTA_EXCEEDED },
+       { "WERR_CONTENT_BLOCKED", WERR_CONTENT_BLOCKED },
+       { "WERR_INCOMPATIBLE_SERVICE_PRIVILEGE", WERR_INCOMPATIBLE_SERVICE_PRIVILEGE },
+       { "WERR_INVALID_LABEL", WERR_INVALID_LABEL },
+       { "WERR_NOT_ALL_ASSIGNED", WERR_NOT_ALL_ASSIGNED },
+       { "WERR_SOME_NOT_MAPPED", WERR_SOME_NOT_MAPPED },
+       { "WERR_NO_QUOTAS_FOR_ACCOUNT", WERR_NO_QUOTAS_FOR_ACCOUNT },
+       { "WERR_LOCAL_USER_SESSION_KEY", WERR_LOCAL_USER_SESSION_KEY },
+       { "WERR_NULL_LM_PASSWORD", WERR_NULL_LM_PASSWORD },
+       { "WERR_NO_IMPERSONATION_TOKEN", WERR_NO_IMPERSONATION_TOKEN },
+       { "WERR_CANT_DISABLE_MANDATORY", WERR_CANT_DISABLE_MANDATORY },
+       { "WERR_INVALID_ACCOUNT_NAME", WERR_INVALID_ACCOUNT_NAME },
+       { "WERR_USER_EXISTS", WERR_USER_EXISTS },
+       { "WERR_MEMBER_NOT_IN_GROUP", WERR_MEMBER_NOT_IN_GROUP },
+       { "WERR_LAST_ADMIN", WERR_LAST_ADMIN },
+       { "WERR_ILL_FORMED_PASSWORD", WERR_ILL_FORMED_PASSWORD },
+       { "WERR_ACCOUNT_RESTRICTION", WERR_ACCOUNT_RESTRICTION },
+       { "WERR_INVALID_LOGON_HOURS", WERR_INVALID_LOGON_HOURS },
+       { "WERR_INVALID_WORKSTATION", WERR_INVALID_WORKSTATION },
+       { "WERR_PASSWORD_EXPIRED", WERR_PASSWORD_EXPIRED },
+       { "WERR_ACCOUNT_DISABLED", WERR_ACCOUNT_DISABLED },
+       { "WERR_TOO_MANY_LUIDS_REQUESTED", WERR_TOO_MANY_LUIDS_REQUESTED },
+       { "WERR_LUIDS_EXHAUSTED", WERR_LUIDS_EXHAUSTED },
+       { "WERR_INVALID_SUB_AUTHORITY", WERR_INVALID_SUB_AUTHORITY },
+       { "WERR_INVALID_ACL", WERR_INVALID_ACL },
+       { "WERR_INVALID_SID", WERR_INVALID_SID },
+       { "WERR_INVALID_SECURITY_DESCR", WERR_INVALID_SECURITY_DESCR },
+       { "WERR_BAD_INHERITANCE_ACL", WERR_BAD_INHERITANCE_ACL },
+       { "WERR_SERVER_DISABLED", WERR_SERVER_DISABLED },
+       { "WERR_SERVER_NOT_DISABLED", WERR_SERVER_NOT_DISABLED },
+       { "WERR_INVALID_ID_AUTHORITY", WERR_INVALID_ID_AUTHORITY },
+       { "WERR_ALLOTTED_SPACE_EXCEEDED", WERR_ALLOTTED_SPACE_EXCEEDED },
+       { "WERR_INVALID_GROUP_ATTRIBUTES", WERR_INVALID_GROUP_ATTRIBUTES },
+       { "WERR_BAD_IMPERSONATION_LEVEL", WERR_BAD_IMPERSONATION_LEVEL },
+       { "WERR_CANT_OPEN_ANONYMOUS", WERR_CANT_OPEN_ANONYMOUS },
+       { "WERR_BAD_VALIDATION_CLASS", WERR_BAD_VALIDATION_CLASS },
+       { "WERR_BAD_TOKEN_TYPE", WERR_BAD_TOKEN_TYPE },
+       { "WERR_NO_SECURITY_ON_OBJECT", WERR_NO_SECURITY_ON_OBJECT },
+       { "WERR_CANT_ACCESS_DOMAIN_INFO", WERR_CANT_ACCESS_DOMAIN_INFO },
+       { "WERR_INVALID_SERVER_STATE", WERR_INVALID_SERVER_STATE },
+       { "WERR_DOMAIN_EXISTS", WERR_DOMAIN_EXISTS },
+       { "WERR_DOMAIN_LIMIT_EXCEEDED", WERR_DOMAIN_LIMIT_EXCEEDED },
+       { "WERR_INTERNAL_DB_CORRUPTION", WERR_INTERNAL_DB_CORRUPTION },
+       { "WERR_INTERNAL_ERROR", WERR_INTERNAL_ERROR },
+       { "WERR_GENERIC_NOT_MAPPED", WERR_GENERIC_NOT_MAPPED },
+       { "WERR_BAD_DESCRIPTOR_FORMAT", WERR_BAD_DESCRIPTOR_FORMAT },
+       { "WERR_NOT_LOGON_PROCESS", WERR_NOT_LOGON_PROCESS },
+       { "WERR_LOGON_SESSION_EXISTS", WERR_LOGON_SESSION_EXISTS },
+       { "WERR_NO_SUCH_PACKAGE", WERR_NO_SUCH_PACKAGE },
+       { "WERR_BAD_LOGON_SESSION_STATE", WERR_BAD_LOGON_SESSION_STATE },
+       { "WERR_LOGON_SESSION_COLLISION", WERR_LOGON_SESSION_COLLISION },
+       { "WERR_INVALID_LOGON_TYPE", WERR_INVALID_LOGON_TYPE },
+       { "WERR_CANNOT_IMPERSONATE", WERR_CANNOT_IMPERSONATE },
+       { "WERR_RXACT_INVALID_STATE", WERR_RXACT_INVALID_STATE },
+       { "WERR_RXACT_COMMIT_FAILURE", WERR_RXACT_COMMIT_FAILURE },
+       { "WERR_SPECIAL_GROUP", WERR_SPECIAL_GROUP },
+       { "WERR_SPECIAL_USER", WERR_SPECIAL_USER },
+       { "WERR_MEMBERS_PRIMARY_GROUP", WERR_MEMBERS_PRIMARY_GROUP },
+       { "WERR_TOKEN_ALREADY_IN_USE", WERR_TOKEN_ALREADY_IN_USE },
+       { "WERR_MEMBER_NOT_IN_ALIAS", WERR_MEMBER_NOT_IN_ALIAS },
+       { "WERR_LOGON_NOT_GRANTED", WERR_LOGON_NOT_GRANTED },
+       { "WERR_TOO_MANY_SECRETS", WERR_TOO_MANY_SECRETS },
+       { "WERR_SECRET_TOO_LONG", WERR_SECRET_TOO_LONG },
+       { "WERR_INTERNAL_DB_ERROR", WERR_INTERNAL_DB_ERROR },
+       { "WERR_TOO_MANY_CONTEXT_IDS", WERR_TOO_MANY_CONTEXT_IDS },
+       { "WERR_LOGON_TYPE_NOT_GRANTED", WERR_LOGON_TYPE_NOT_GRANTED },
+       { "WERR_NT_CROSS_ENCRYPTION_REQUIRED", WERR_NT_CROSS_ENCRYPTION_REQUIRED },
+       { "WERR_NO_SUCH_MEMBER", WERR_NO_SUCH_MEMBER },
+       { "WERR_INVALID_MEMBER", WERR_INVALID_MEMBER },
+       { "WERR_TOO_MANY_SIDS", WERR_TOO_MANY_SIDS },
+       { "WERR_LM_CROSS_ENCRYPTION_REQUIRED", WERR_LM_CROSS_ENCRYPTION_REQUIRED },
+       { "WERR_NO_INHERITANCE", WERR_NO_INHERITANCE },
+       { "WERR_FILE_CORRUPT", WERR_FILE_CORRUPT },
+       { "WERR_DISK_CORRUPT", WERR_DISK_CORRUPT },
+       { "WERR_NO_USER_SESSION_KEY", WERR_NO_USER_SESSION_KEY },
+       { "WERR_LICENSE_QUOTA_EXCEEDED", WERR_LICENSE_QUOTA_EXCEEDED },
+       { "WERR_WRONG_TARGET_NAME", WERR_WRONG_TARGET_NAME },
+       { "WERR_MUTUAL_AUTH_FAILED", WERR_MUTUAL_AUTH_FAILED },
+       { "WERR_CURRENT_DOMAIN_NOT_ALLOWED", WERR_CURRENT_DOMAIN_NOT_ALLOWED },
+       { "WERR_INVALID_WINDOW_HANDLE", WERR_INVALID_WINDOW_HANDLE },
+       { "WERR_INVALID_MENU_HANDLE", WERR_INVALID_MENU_HANDLE },
+       { "WERR_INVALID_CURSOR_HANDLE", WERR_INVALID_CURSOR_HANDLE },
+       { "WERR_INVALID_ACCEL_HANDLE", WERR_INVALID_ACCEL_HANDLE },
+       { "WERR_INVALID_HOOK_HANDLE", WERR_INVALID_HOOK_HANDLE },
+       { "WERR_INVALID_DWP_HANDLE", WERR_INVALID_DWP_HANDLE },
+       { "WERR_TLW_WITH_WSCHILD", WERR_TLW_WITH_WSCHILD },
+       { "WERR_CANNOT_FIND_WND_CLASS", WERR_CANNOT_FIND_WND_CLASS },
+       { "WERR_WINDOW_OF_OTHER_THREAD", WERR_WINDOW_OF_OTHER_THREAD },
+       { "WERR_HOTKEY_ALREADY_REGISTERED", WERR_HOTKEY_ALREADY_REGISTERED },
+       { "WERR_CLASS_ALREADY_EXISTS", WERR_CLASS_ALREADY_EXISTS },
+       { "WERR_CLASS_DOES_NOT_EXIST", WERR_CLASS_DOES_NOT_EXIST },
+       { "WERR_CLASS_HAS_WINDOWS", WERR_CLASS_HAS_WINDOWS },
+       { "WERR_INVALID_INDEX", WERR_INVALID_INDEX },
+       { "WERR_INVALID_ICON_HANDLE", WERR_INVALID_ICON_HANDLE },
+       { "WERR_PRIVATE_DIALOG_INDEX", WERR_PRIVATE_DIALOG_INDEX },
+       { "WERR_LISTBOX_ID_NOT_FOUND", WERR_LISTBOX_ID_NOT_FOUND },
+       { "WERR_NO_WILDCARD_CHARACTERS", WERR_NO_WILDCARD_CHARACTERS },
+       { "WERR_CLIPBOARD_NOT_OPEN", WERR_CLIPBOARD_NOT_OPEN },
+       { "WERR_HOTKEY_NOT_REGISTERED", WERR_HOTKEY_NOT_REGISTERED },
+       { "WERR_WINDOW_NOT_DIALOG", WERR_WINDOW_NOT_DIALOG },
+       { "WERR_CONTROL_ID_NOT_FOUND", WERR_CONTROL_ID_NOT_FOUND },
+       { "WERR_INVALID_COMBOBOX_MESSAGE", WERR_INVALID_COMBOBOX_MESSAGE },
+       { "WERR_WINDOW_NOT_COMBOBOX", WERR_WINDOW_NOT_COMBOBOX },
+       { "WERR_INVALID_EDIT_HEIGHT", WERR_INVALID_EDIT_HEIGHT },
+       { "WERR_DC_NOT_FOUND", WERR_DC_NOT_FOUND },
+       { "WERR_INVALID_HOOK_FILTER", WERR_INVALID_HOOK_FILTER },
+       { "WERR_INVALID_FILTER_PROC", WERR_INVALID_FILTER_PROC },
+       { "WERR_HOOK_NEEDS_HMOD", WERR_HOOK_NEEDS_HMOD },
+       { "WERR_GLOBAL_ONLY_HOOK", WERR_GLOBAL_ONLY_HOOK },
+       { "WERR_JOURNAL_HOOK_SET", WERR_JOURNAL_HOOK_SET },
+       { "WERR_HOOK_NOT_INSTALLED", WERR_HOOK_NOT_INSTALLED },
+       { "WERR_INVALID_LB_MESSAGE", WERR_INVALID_LB_MESSAGE },
+       { "WERR_SETCOUNT_ON_BAD_LB", WERR_SETCOUNT_ON_BAD_LB },
+       { "WERR_LB_WITHOUT_TABSTOPS", WERR_LB_WITHOUT_TABSTOPS },
+       { "WERR_DESTROY_OBJECT_OF_OTHER_THREAD", WERR_DESTROY_OBJECT_OF_OTHER_THREAD },
+       { "WERR_CHILD_WINDOW_MENU", WERR_CHILD_WINDOW_MENU },
+       { "WERR_NO_SYSTEM_MENU", WERR_NO_SYSTEM_MENU },
+       { "WERR_INVALID_MSGBOX_STYLE", WERR_INVALID_MSGBOX_STYLE },
+       { "WERR_INVALID_SPI_VALUE", WERR_INVALID_SPI_VALUE },
+       { "WERR_SCREEN_ALREADY_LOCKED", WERR_SCREEN_ALREADY_LOCKED },
+       { "WERR_HWNDS_HAVE_DIFF_PARENT", WERR_HWNDS_HAVE_DIFF_PARENT },
+       { "WERR_NOT_CHILD_WINDOW", WERR_NOT_CHILD_WINDOW },
+       { "WERR_INVALID_GW_COMMAND", WERR_INVALID_GW_COMMAND },
+       { "WERR_INVALID_THREAD_ID", WERR_INVALID_THREAD_ID },
+       { "WERR_NON_MDICHILD_WINDOW", WERR_NON_MDICHILD_WINDOW },
+       { "WERR_POPUP_ALREADY_ACTIVE", WERR_POPUP_ALREADY_ACTIVE },
+       { "WERR_NO_SCROLLBARS", WERR_NO_SCROLLBARS },
+       { "WERR_INVALID_SCROLLBAR_RANGE", WERR_INVALID_SCROLLBAR_RANGE },
+       { "WERR_INVALID_SHOWWIN_COMMAND", WERR_INVALID_SHOWWIN_COMMAND },
+       { "WERR_NONPAGED_SYSTEM_RESOURCES", WERR_NONPAGED_SYSTEM_RESOURCES },
+       { "WERR_PAGED_SYSTEM_RESOURCES", WERR_PAGED_SYSTEM_RESOURCES },
+       { "WERR_WORKING_SET_QUOTA", WERR_WORKING_SET_QUOTA },
+       { "WERR_PAGEFILE_QUOTA", WERR_PAGEFILE_QUOTA },
+       { "WERR_COMMITMENT_LIMIT", WERR_COMMITMENT_LIMIT },
+       { "WERR_MENU_ITEM_NOT_FOUND", WERR_MENU_ITEM_NOT_FOUND },
+       { "WERR_INVALID_KEYBOARD_HANDLE", WERR_INVALID_KEYBOARD_HANDLE },
+       { "WERR_HOOK_TYPE_NOT_ALLOWED", WERR_HOOK_TYPE_NOT_ALLOWED },
+       { "WERR_REQUIRES_INTERACTIVE_WINDOWSTATION", WERR_REQUIRES_INTERACTIVE_WINDOWSTATION },
+       { "WERR_TIMEOUT", WERR_TIMEOUT },
+       { "WERR_INVALID_MONITOR_HANDLE", WERR_INVALID_MONITOR_HANDLE },
+       { "WERR_INCORRECT_SIZE", WERR_INCORRECT_SIZE },
+       { "WERR_SYMLINK_CLASS_DISABLED", WERR_SYMLINK_CLASS_DISABLED },
+       { "WERR_SYMLINK_NOT_SUPPORTED", WERR_SYMLINK_NOT_SUPPORTED },
+       { "WERR_EVENTLOG_CANT_START", WERR_EVENTLOG_CANT_START },
+       { "WERR_LOG_FILE_FULL", WERR_LOG_FILE_FULL },
+       { "WERR_EVENTLOG_FILE_CHANGED", WERR_EVENTLOG_FILE_CHANGED },
+       { "WERR_INVALID_TASK_NAME", WERR_INVALID_TASK_NAME },
+       { "WERR_INVALID_TASK_INDEX", WERR_INVALID_TASK_INDEX },
+       { "WERR_THREAD_ALREADY_IN_TASK", WERR_THREAD_ALREADY_IN_TASK },
+       { "WERR_INSTALL_SERVICE_FAILURE", WERR_INSTALL_SERVICE_FAILURE },
+       { "WERR_INSTALL_USEREXIT", WERR_INSTALL_USEREXIT },
+       { "WERR_INSTALL_FAILURE", WERR_INSTALL_FAILURE },
+       { "WERR_INSTALL_SUSPEND", WERR_INSTALL_SUSPEND },
+       { "WERR_UNKNOWN_PRODUCT", WERR_UNKNOWN_PRODUCT },
+       { "WERR_UNKNOWN_FEATURE", WERR_UNKNOWN_FEATURE },
+       { "WERR_UNKNOWN_COMPONENT", WERR_UNKNOWN_COMPONENT },
+       { "WERR_UNKNOWN_PROPERTY", WERR_UNKNOWN_PROPERTY },
+       { "WERR_INVALID_HANDLE_STATE", WERR_INVALID_HANDLE_STATE },
+       { "WERR_BAD_CONFIGURATION", WERR_BAD_CONFIGURATION },
+       { "WERR_INDEX_ABSENT", WERR_INDEX_ABSENT },
+       { "WERR_INSTALL_SOURCE_ABSENT", WERR_INSTALL_SOURCE_ABSENT },
+       { "WERR_INSTALL_PACKAGE_VERSION", WERR_INSTALL_PACKAGE_VERSION },
+       { "WERR_PRODUCT_UNINSTALLED", WERR_PRODUCT_UNINSTALLED },
+       { "WERR_BAD_QUERY_SYNTAX", WERR_BAD_QUERY_SYNTAX },
+       { "WERR_INVALID_FIELD", WERR_INVALID_FIELD },
+       { "WERR_DEVICE_REMOVED", WERR_DEVICE_REMOVED },
+       { "WERR_INSTALL_ALREADY_RUNNING", WERR_INSTALL_ALREADY_RUNNING },
+       { "WERR_INSTALL_PACKAGE_OPEN_FAILED", WERR_INSTALL_PACKAGE_OPEN_FAILED },
+       { "WERR_INSTALL_PACKAGE_INVALID", WERR_INSTALL_PACKAGE_INVALID },
+       { "WERR_INSTALL_UI_FAILURE", WERR_INSTALL_UI_FAILURE },
+       { "WERR_INSTALL_LOG_FAILURE", WERR_INSTALL_LOG_FAILURE },
+       { "WERR_INSTALL_LANGUAGE_UNSUPPORTED", WERR_INSTALL_LANGUAGE_UNSUPPORTED },
+       { "WERR_INSTALL_TRANSFORM_FAILURE", WERR_INSTALL_TRANSFORM_FAILURE },
+       { "WERR_INSTALL_PACKAGE_REJECTED", WERR_INSTALL_PACKAGE_REJECTED },
+       { "WERR_FUNCTION_NOT_CALLED", WERR_FUNCTION_NOT_CALLED },
+       { "WERR_FUNCTION_FAILED", WERR_FUNCTION_FAILED },
+       { "WERR_INVALID_TABLE", WERR_INVALID_TABLE },
+       { "WERR_DATATYPE_MISMATCH", WERR_DATATYPE_MISMATCH },
+       { "WERR_UNSUPPORTED_TYPE", WERR_UNSUPPORTED_TYPE },
+       { "WERR_CREATE_FAILED", WERR_CREATE_FAILED },
+       { "WERR_INSTALL_TEMP_UNWRITABLE", WERR_INSTALL_TEMP_UNWRITABLE },
+       { "WERR_INSTALL_PLATFORM_UNSUPPORTED", WERR_INSTALL_PLATFORM_UNSUPPORTED },
+       { "WERR_INSTALL_NOTUSED", WERR_INSTALL_NOTUSED },
+       { "WERR_PATCH_PACKAGE_OPEN_FAILED", WERR_PATCH_PACKAGE_OPEN_FAILED },
+       { "WERR_PATCH_PACKAGE_INVALID", WERR_PATCH_PACKAGE_INVALID },
+       { "WERR_PATCH_PACKAGE_UNSUPPORTED", WERR_PATCH_PACKAGE_UNSUPPORTED },
+       { "WERR_PRODUCT_VERSION", WERR_PRODUCT_VERSION },
+       { "WERR_INVALID_COMMAND_LINE", WERR_INVALID_COMMAND_LINE },
+       { "WERR_INSTALL_REMOTE_DISALLOWED", WERR_INSTALL_REMOTE_DISALLOWED },
+       { "WERR_SUCCESS_REBOOT_INITIATED", WERR_SUCCESS_REBOOT_INITIATED },
+       { "WERR_PATCH_TARGET_NOT_FOUND", WERR_PATCH_TARGET_NOT_FOUND },
+       { "WERR_PATCH_PACKAGE_REJECTED", WERR_PATCH_PACKAGE_REJECTED },
+       { "WERR_INSTALL_TRANSFORM_REJECTED", WERR_INSTALL_TRANSFORM_REJECTED },
+       { "WERR_INSTALL_REMOTE_PROHIBITED", WERR_INSTALL_REMOTE_PROHIBITED },
+       { "WERR_PATCH_REMOVAL_UNSUPPORTED", WERR_PATCH_REMOVAL_UNSUPPORTED },
+       { "WERR_UNKNOWN_PATCH", WERR_UNKNOWN_PATCH },
+       { "WERR_PATCH_NO_SEQUENCE", WERR_PATCH_NO_SEQUENCE },
+       { "WERR_PATCH_REMOVAL_DISALLOWED", WERR_PATCH_REMOVAL_DISALLOWED },
+       { "WERR_INVALID_PATCH_XML", WERR_INVALID_PATCH_XML },
+       { "WERR_PATCH_MANAGED_ADVERTISED_PRODUCT", WERR_PATCH_MANAGED_ADVERTISED_PRODUCT },
+       { "WERR_INSTALL_SERVICE_SAFEBOOT", WERR_INSTALL_SERVICE_SAFEBOOT },
+       { "WERR_RPC_S_INVALID_STRING_BINDING", WERR_RPC_S_INVALID_STRING_BINDING },
+       { "WERR_RPC_S_WRONG_KIND_OF_BINDING", WERR_RPC_S_WRONG_KIND_OF_BINDING },
+       { "WERR_RPC_S_INVALID_BINDING", WERR_RPC_S_INVALID_BINDING },
+       { "WERR_RPC_S_PROTSEQ_NOT_SUPPORTED", WERR_RPC_S_PROTSEQ_NOT_SUPPORTED },
+       { "WERR_RPC_S_INVALID_RPC_PROTSEQ", WERR_RPC_S_INVALID_RPC_PROTSEQ },
+       { "WERR_RPC_S_INVALID_STRING_UUID", WERR_RPC_S_INVALID_STRING_UUID },
+       { "WERR_RPC_S_INVALID_ENDPOINT_FORMAT", WERR_RPC_S_INVALID_ENDPOINT_FORMAT },
+       { "WERR_RPC_S_INVALID_NET_ADDR", WERR_RPC_S_INVALID_NET_ADDR },
+       { "WERR_RPC_S_NO_ENDPOINT_FOUND", WERR_RPC_S_NO_ENDPOINT_FOUND },
+       { "WERR_RPC_S_INVALID_TIMEOUT", WERR_RPC_S_INVALID_TIMEOUT },
+       { "WERR_RPC_S_OBJECT_NOT_FOUND", WERR_RPC_S_OBJECT_NOT_FOUND },
+       { "WERR_RPC_S_ALREADY_REGISTERED", WERR_RPC_S_ALREADY_REGISTERED },
+       { "WERR_RPC_S_TYPE_ALREADY_REGISTERED", WERR_RPC_S_TYPE_ALREADY_REGISTERED },
+       { "WERR_RPC_S_ALREADY_LISTENING", WERR_RPC_S_ALREADY_LISTENING },
+       { "WERR_RPC_S_NO_PROTSEQS_REGISTERED", WERR_RPC_S_NO_PROTSEQS_REGISTERED },
+       { "WERR_RPC_S_NOT_LISTENING", WERR_RPC_S_NOT_LISTENING },
+       { "WERR_RPC_S_UNKNOWN_MGR_TYPE", WERR_RPC_S_UNKNOWN_MGR_TYPE },
+       { "WERR_RPC_S_UNKNOWN_IF", WERR_RPC_S_UNKNOWN_IF },
+       { "WERR_RPC_S_NO_BINDINGS", WERR_RPC_S_NO_BINDINGS },
+       { "WERR_RPC_S_NO_PROTSEQS", WERR_RPC_S_NO_PROTSEQS },
+       { "WERR_RPC_S_CANT_CREATE_ENDPOINT", WERR_RPC_S_CANT_CREATE_ENDPOINT },
+       { "WERR_RPC_S_OUT_OF_RESOURCES", WERR_RPC_S_OUT_OF_RESOURCES },
+       { "WERR_RPC_S_SERVER_UNAVAILABLE", WERR_RPC_S_SERVER_UNAVAILABLE },
+       { "WERR_RPC_S_SERVER_TOO_BUSY", WERR_RPC_S_SERVER_TOO_BUSY },
+       { "WERR_RPC_S_INVALID_NETWORK_OPTIONS", WERR_RPC_S_INVALID_NETWORK_OPTIONS },
+       { "WERR_RPC_S_NO_CALL_ACTIVE", WERR_RPC_S_NO_CALL_ACTIVE },
+       { "WERR_RPC_S_CALL_FAILED", WERR_RPC_S_CALL_FAILED },
+       { "WERR_RPC_S_CALL_FAILED_DNE", WERR_RPC_S_CALL_FAILED_DNE },
+       { "WERR_RPC_S_PROTOCOL_ERROR", WERR_RPC_S_PROTOCOL_ERROR },
+       { "WERR_RPC_S_PROXY_ACCESS_DENIED", WERR_RPC_S_PROXY_ACCESS_DENIED },
+       { "WERR_RPC_S_UNSUPPORTED_TRANS_SYN", WERR_RPC_S_UNSUPPORTED_TRANS_SYN },
+       { "WERR_RPC_S_UNSUPPORTED_TYPE", WERR_RPC_S_UNSUPPORTED_TYPE },
+       { "WERR_RPC_S_INVALID_TAG", WERR_RPC_S_INVALID_TAG },
+       { "WERR_RPC_S_INVALID_BOUND", WERR_RPC_S_INVALID_BOUND },
+       { "WERR_RPC_S_NO_ENTRY_NAME", WERR_RPC_S_NO_ENTRY_NAME },
+       { "WERR_RPC_S_INVALID_NAME_SYNTAX", WERR_RPC_S_INVALID_NAME_SYNTAX },
+       { "WERR_RPC_S_UNSUPPORTED_NAME_SYNTAX", WERR_RPC_S_UNSUPPORTED_NAME_SYNTAX },
+       { "WERR_RPC_S_UUID_NO_ADDRESS", WERR_RPC_S_UUID_NO_ADDRESS },
+       { "WERR_RPC_S_DUPLICATE_ENDPOINT", WERR_RPC_S_DUPLICATE_ENDPOINT },
+       { "WERR_RPC_S_UNKNOWN_AUTHN_TYPE", WERR_RPC_S_UNKNOWN_AUTHN_TYPE },
+       { "WERR_RPC_S_MAX_CALLS_TOO_SMALL", WERR_RPC_S_MAX_CALLS_TOO_SMALL },
+       { "WERR_RPC_S_STRING_TOO_LONG", WERR_RPC_S_STRING_TOO_LONG },
+       { "WERR_RPC_S_PROTSEQ_NOT_FOUND", WERR_RPC_S_PROTSEQ_NOT_FOUND },
+       { "WERR_RPC_S_PROCNUM_OUT_OF_RANGE", WERR_RPC_S_PROCNUM_OUT_OF_RANGE },
+       { "WERR_RPC_S_BINDING_HAS_NO_AUTH", WERR_RPC_S_BINDING_HAS_NO_AUTH },
+       { "WERR_RPC_S_UNKNOWN_AUTHN_SERVICE", WERR_RPC_S_UNKNOWN_AUTHN_SERVICE },
+       { "WERR_RPC_S_UNKNOWN_AUTHN_LEVEL", WERR_RPC_S_UNKNOWN_AUTHN_LEVEL },
+       { "WERR_RPC_S_INVALID_AUTH_IDENTITY", WERR_RPC_S_INVALID_AUTH_IDENTITY },
+       { "WERR_RPC_S_UNKNOWN_AUTHZ_SERVICE", WERR_RPC_S_UNKNOWN_AUTHZ_SERVICE },
+       { "WERR_EPT_S_INVALID_ENTRY", WERR_EPT_S_INVALID_ENTRY },
+       { "WERR_EPT_S_CANT_PERFORM_OP", WERR_EPT_S_CANT_PERFORM_OP },
+       { "WERR_EPT_S_NOT_REGISTERED", WERR_EPT_S_NOT_REGISTERED },
+       { "WERR_RPC_S_NOTHING_TO_EXPORT", WERR_RPC_S_NOTHING_TO_EXPORT },
+       { "WERR_RPC_S_INCOMPLETE_NAME", WERR_RPC_S_INCOMPLETE_NAME },
+       { "WERR_RPC_S_INVALID_VERS_OPTION", WERR_RPC_S_INVALID_VERS_OPTION },
+       { "WERR_RPC_S_NO_MORE_MEMBERS", WERR_RPC_S_NO_MORE_MEMBERS },
+       { "WERR_RPC_S_NOT_ALL_OBJS_UNEXPORTED", WERR_RPC_S_NOT_ALL_OBJS_UNEXPORTED },
+       { "WERR_RPC_S_INTERFACE_NOT_FOUND", WERR_RPC_S_INTERFACE_NOT_FOUND },
+       { "WERR_RPC_S_ENTRY_ALREADY_EXISTS", WERR_RPC_S_ENTRY_ALREADY_EXISTS },
+       { "WERR_RPC_S_ENTRY_NOT_FOUND", WERR_RPC_S_ENTRY_NOT_FOUND },
+       { "WERR_RPC_S_NAME_SERVICE_UNAVAILABLE", WERR_RPC_S_NAME_SERVICE_UNAVAILABLE },
+       { "WERR_RPC_S_INVALID_NAF_ID", WERR_RPC_S_INVALID_NAF_ID },
+       { "WERR_RPC_S_CANNOT_SUPPORT", WERR_RPC_S_CANNOT_SUPPORT },
+       { "WERR_RPC_S_NO_CONTEXT_AVAILABLE", WERR_RPC_S_NO_CONTEXT_AVAILABLE },
+       { "WERR_RPC_S_INTERNAL_ERROR", WERR_RPC_S_INTERNAL_ERROR },
+       { "WERR_RPC_S_ZERO_DIVIDE", WERR_RPC_S_ZERO_DIVIDE },
+       { "WERR_RPC_S_ADDRESS_ERROR", WERR_RPC_S_ADDRESS_ERROR },
+       { "WERR_RPC_S_FP_DIV_ZERO", WERR_RPC_S_FP_DIV_ZERO },
+       { "WERR_RPC_S_FP_UNDERFLOW", WERR_RPC_S_FP_UNDERFLOW },
+       { "WERR_RPC_S_FP_OVERFLOW", WERR_RPC_S_FP_OVERFLOW },
+       { "WERR_RPC_X_NO_MORE_ENTRIES", WERR_RPC_X_NO_MORE_ENTRIES },
+       { "WERR_RPC_X_SS_CHAR_TRANS_OPEN_FAIL", WERR_RPC_X_SS_CHAR_TRANS_OPEN_FAIL },
+       { "WERR_RPC_X_SS_CHAR_TRANS_SHORT_FILE", WERR_RPC_X_SS_CHAR_TRANS_SHORT_FILE },
+       { "WERR_RPC_X_SS_IN_NULL_CONTEXT", WERR_RPC_X_SS_IN_NULL_CONTEXT },
+       { "WERR_RPC_X_SS_CONTEXT_DAMAGED", WERR_RPC_X_SS_CONTEXT_DAMAGED },
+       { "WERR_RPC_X_SS_HANDLES_MISMATCH", WERR_RPC_X_SS_HANDLES_MISMATCH },
+       { "WERR_RPC_X_SS_CANNOT_GET_CALL_HANDLE", WERR_RPC_X_SS_CANNOT_GET_CALL_HANDLE },
+       { "WERR_RPC_X_NULL_REF_POINTER", WERR_RPC_X_NULL_REF_POINTER },
+       { "WERR_RPC_X_ENUM_VALUE_OUT_OF_RANGE", WERR_RPC_X_ENUM_VALUE_OUT_OF_RANGE },
+       { "WERR_RPC_X_BYTE_COUNT_TOO_SMALL", WERR_RPC_X_BYTE_COUNT_TOO_SMALL },
+       { "WERR_RPC_X_BAD_STUB_DATA", WERR_RPC_X_BAD_STUB_DATA },
+       { "WERR_UNRECOGNIZED_MEDIA", WERR_UNRECOGNIZED_MEDIA },
+       { "WERR_NO_TRUST_LSA_SECRET", WERR_NO_TRUST_LSA_SECRET },
+       { "WERR_TRUSTED_DOMAIN_FAILURE", WERR_TRUSTED_DOMAIN_FAILURE },
+       { "WERR_TRUSTED_RELATIONSHIP_FAILURE", WERR_TRUSTED_RELATIONSHIP_FAILURE },
+       { "WERR_TRUST_FAILURE", WERR_TRUST_FAILURE },
+       { "WERR_RPC_S_CALL_IN_PROGRESS", WERR_RPC_S_CALL_IN_PROGRESS },
+       { "WERR_NETLOGON_NOT_STARTED", WERR_NETLOGON_NOT_STARTED },
+       { "WERR_ACCOUNT_EXPIRED", WERR_ACCOUNT_EXPIRED },
+       { "WERR_REDIRECTOR_HAS_OPEN_HANDLES", WERR_REDIRECTOR_HAS_OPEN_HANDLES },
+       { "WERR_RPC_S_NO_MORE_BINDINGS", WERR_RPC_S_NO_MORE_BINDINGS },
+       { "WERR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT", WERR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT },
+       { "WERR_NOLOGON_WORKSTATION_TRUST_ACCOUNT", WERR_NOLOGON_WORKSTATION_TRUST_ACCOUNT },
+       { "WERR_NOLOGON_SERVER_TRUST_ACCOUNT", WERR_NOLOGON_SERVER_TRUST_ACCOUNT },
+       { "WERR_DOMAIN_TRUST_INCONSISTENT", WERR_DOMAIN_TRUST_INCONSISTENT },
+       { "WERR_SERVER_HAS_OPEN_HANDLES", WERR_SERVER_HAS_OPEN_HANDLES },
+       { "WERR_RESOURCE_DATA_NOT_FOUND", WERR_RESOURCE_DATA_NOT_FOUND },
+       { "WERR_RESOURCE_TYPE_NOT_FOUND", WERR_RESOURCE_TYPE_NOT_FOUND },
+       { "WERR_RESOURCE_NAME_NOT_FOUND", WERR_RESOURCE_NAME_NOT_FOUND },
+       { "WERR_RESOURCE_LANG_NOT_FOUND", WERR_RESOURCE_LANG_NOT_FOUND },
+       { "WERR_NOT_ENOUGH_QUOTA", WERR_NOT_ENOUGH_QUOTA },
+       { "WERR_RPC_S_NO_INTERFACES", WERR_RPC_S_NO_INTERFACES },
+       { "WERR_RPC_S_CALL_CANCELLED", WERR_RPC_S_CALL_CANCELLED },
+       { "WERR_RPC_S_BINDING_INCOMPLETE", WERR_RPC_S_BINDING_INCOMPLETE },
+       { "WERR_RPC_S_COMM_FAILURE", WERR_RPC_S_COMM_FAILURE },
+       { "WERR_RPC_S_UNSUPPORTED_AUTHN_LEVEL", WERR_RPC_S_UNSUPPORTED_AUTHN_LEVEL },
+       { "WERR_RPC_S_NO_PRINC_NAME", WERR_RPC_S_NO_PRINC_NAME },
+       { "WERR_RPC_S_NOT_RPC_ERROR", WERR_RPC_S_NOT_RPC_ERROR },
+       { "WERR_RPC_S_UUID_LOCAL_ONLY", WERR_RPC_S_UUID_LOCAL_ONLY },
+       { "WERR_RPC_S_SEC_PKG_ERROR", WERR_RPC_S_SEC_PKG_ERROR },
+       { "WERR_RPC_S_NOT_CANCELLED", WERR_RPC_S_NOT_CANCELLED },
+       { "WERR_RPC_X_INVALID_ES_ACTION", WERR_RPC_X_INVALID_ES_ACTION },
+       { "WERR_RPC_X_WRONG_ES_VERSION", WERR_RPC_X_WRONG_ES_VERSION },
+       { "WERR_RPC_X_WRONG_STUB_VERSION", WERR_RPC_X_WRONG_STUB_VERSION },
+       { "WERR_RPC_X_INVALID_PIPE_OBJECT", WERR_RPC_X_INVALID_PIPE_OBJECT },
+       { "WERR_RPC_X_WRONG_PIPE_ORDER", WERR_RPC_X_WRONG_PIPE_ORDER },
+       { "WERR_RPC_X_WRONG_PIPE_VERSION", WERR_RPC_X_WRONG_PIPE_VERSION },
+       { "WERR_RPC_S_GROUP_MEMBER_NOT_FOUND", WERR_RPC_S_GROUP_MEMBER_NOT_FOUND },
+       { "WERR_EPT_S_CANT_CREATE", WERR_EPT_S_CANT_CREATE },
+       { "WERR_RPC_S_INVALID_OBJECT", WERR_RPC_S_INVALID_OBJECT },
+       { "WERR_INVALID_TIME", WERR_INVALID_TIME },
+       { "WERR_ALREADY_WAITING", WERR_ALREADY_WAITING },
+       { "WERR_PRINTER_DELETED", WERR_PRINTER_DELETED },
+       { "WERR_INVALID_PRINTER_STATE", WERR_INVALID_PRINTER_STATE },
+       { "WERR_OR_INVALID_OXID", WERR_OR_INVALID_OXID },
+       { "WERR_OR_INVALID_OID", WERR_OR_INVALID_OID },
+       { "WERR_OR_INVALID_SET", WERR_OR_INVALID_SET },
+       { "WERR_RPC_S_SEND_INCOMPLETE", WERR_RPC_S_SEND_INCOMPLETE },
+       { "WERR_RPC_S_INVALID_ASYNC_HANDLE", WERR_RPC_S_INVALID_ASYNC_HANDLE },
+       { "WERR_RPC_S_INVALID_ASYNC_CALL", WERR_RPC_S_INVALID_ASYNC_CALL },
+       { "WERR_RPC_X_PIPE_CLOSED", WERR_RPC_X_PIPE_CLOSED },
+       { "WERR_RPC_X_PIPE_DISCIPLINE_ERROR", WERR_RPC_X_PIPE_DISCIPLINE_ERROR },
+       { "WERR_RPC_X_PIPE_EMPTY", WERR_RPC_X_PIPE_EMPTY },
+       { "WERR_NO_SITENAME", WERR_NO_SITENAME },
+       { "WERR_CANT_ACCESS_FILE", WERR_CANT_ACCESS_FILE },
+       { "WERR_CANT_RESOLVE_FILENAME", WERR_CANT_RESOLVE_FILENAME },
+       { "WERR_RPC_S_ENTRY_TYPE_MISMATCH", WERR_RPC_S_ENTRY_TYPE_MISMATCH },
+       { "WERR_RPC_S_NOT_ALL_OBJS_EXPORTED", WERR_RPC_S_NOT_ALL_OBJS_EXPORTED },
+       { "WERR_RPC_S_INTERFACE_NOT_EXPORTED", WERR_RPC_S_INTERFACE_NOT_EXPORTED },
+       { "WERR_RPC_S_PROFILE_NOT_ADDED", WERR_RPC_S_PROFILE_NOT_ADDED },
+       { "WERR_RPC_S_PRF_ELT_NOT_ADDED", WERR_RPC_S_PRF_ELT_NOT_ADDED },
+       { "WERR_RPC_S_PRF_ELT_NOT_REMOVED", WERR_RPC_S_PRF_ELT_NOT_REMOVED },
+       { "WERR_RPC_S_GRP_ELT_NOT_ADDED", WERR_RPC_S_GRP_ELT_NOT_ADDED },
+       { "WERR_RPC_S_GRP_ELT_NOT_REMOVED", WERR_RPC_S_GRP_ELT_NOT_REMOVED },
+       { "WERR_KM_DRIVER_BLOCKED", WERR_KM_DRIVER_BLOCKED },
+       { "WERR_CONTEXT_EXPIRED", WERR_CONTEXT_EXPIRED },
+       { "WERR_PER_USER_TRUST_QUOTA_EXCEEDED", WERR_PER_USER_TRUST_QUOTA_EXCEEDED },
+       { "WERR_ALL_USER_TRUST_QUOTA_EXCEEDED", WERR_ALL_USER_TRUST_QUOTA_EXCEEDED },
+       { "WERR_USER_DELETE_TRUST_QUOTA_EXCEEDED", WERR_USER_DELETE_TRUST_QUOTA_EXCEEDED },
+       { "WERR_AUTHENTICATION_FIREWALL_FAILED", WERR_AUTHENTICATION_FIREWALL_FAILED },
+       { "WERR_REMOTE_PRINT_CONNECTIONS_BLOCKED", WERR_REMOTE_PRINT_CONNECTIONS_BLOCKED },
+       { "WERR_INVALID_PIXEL_FORMAT", WERR_INVALID_PIXEL_FORMAT },
+       { "WERR_BAD_DRIVER", WERR_BAD_DRIVER },
+       { "WERR_INVALID_WINDOW_STYLE", WERR_INVALID_WINDOW_STYLE },
+       { "WERR_METAFILE_NOT_SUPPORTED", WERR_METAFILE_NOT_SUPPORTED },
+       { "WERR_TRANSFORM_NOT_SUPPORTED", WERR_TRANSFORM_NOT_SUPPORTED },
+       { "WERR_CLIPPING_NOT_SUPPORTED", WERR_CLIPPING_NOT_SUPPORTED },
+       { "WERR_INVALID_CMM", WERR_INVALID_CMM },
+       { "WERR_INVALID_PROFILE", WERR_INVALID_PROFILE },
+       { "WERR_TAG_NOT_FOUND", WERR_TAG_NOT_FOUND },
+       { "WERR_TAG_NOT_PRESENT", WERR_TAG_NOT_PRESENT },
+       { "WERR_DUPLICATE_TAG", WERR_DUPLICATE_TAG },
+       { "WERR_PROFILE_NOT_ASSOCIATED_WITH_DEVICE", WERR_PROFILE_NOT_ASSOCIATED_WITH_DEVICE },
+       { "WERR_PROFILE_NOT_FOUND", WERR_PROFILE_NOT_FOUND },
+       { "WERR_INVALID_COLORSPACE", WERR_INVALID_COLORSPACE },
+       { "WERR_ICM_NOT_ENABLED", WERR_ICM_NOT_ENABLED },
+       { "WERR_DELETING_ICM_XFORM", WERR_DELETING_ICM_XFORM },
+       { "WERR_INVALID_TRANSFORM", WERR_INVALID_TRANSFORM },
+       { "WERR_COLORSPACE_MISMATCH", WERR_COLORSPACE_MISMATCH },
+       { "WERR_INVALID_COLORINDEX", WERR_INVALID_COLORINDEX },
+       { "WERR_PROFILE_DOES_NOT_MATCH_DEVICE", WERR_PROFILE_DOES_NOT_MATCH_DEVICE },
+       { "WERR_NERR_NETNOTSTARTED", WERR_NERR_NETNOTSTARTED },
+       { "WERR_NERR_UNKNOWNSERVER", WERR_NERR_UNKNOWNSERVER },
+       { "WERR_NERR_SHAREMEM", WERR_NERR_SHAREMEM },
+       { "WERR_NERR_NONETWORKRESOURCE", WERR_NERR_NONETWORKRESOURCE },
+       { "WERR_NERR_REMOTEONLY", WERR_NERR_REMOTEONLY },
+       { "WERR_NERR_DEVNOTREDIRECTED", WERR_NERR_DEVNOTREDIRECTED },
+       { "WERR_CONNECTED_OTHER_PASSWORD", WERR_CONNECTED_OTHER_PASSWORD },
+       { "WERR_CONNECTED_OTHER_PASSWORD_DEFAULT", WERR_CONNECTED_OTHER_PASSWORD_DEFAULT },
+       { "WERR_NERR_SERVERNOTSTARTED", WERR_NERR_SERVERNOTSTARTED },
+       { "WERR_NERR_ITEMNOTFOUND", WERR_NERR_ITEMNOTFOUND },
+       { "WERR_NERR_UNKNOWNDEVDIR", WERR_NERR_UNKNOWNDEVDIR },
+       { "WERR_NERR_REDIRECTEDPATH", WERR_NERR_REDIRECTEDPATH },
+       { "WERR_NERR_DUPLICATESHARE", WERR_NERR_DUPLICATESHARE },
+       { "WERR_NERR_NOROOM", WERR_NERR_NOROOM },
+       { "WERR_NERR_TOOMANYITEMS", WERR_NERR_TOOMANYITEMS },
+       { "WERR_NERR_INVALIDMAXUSERS", WERR_NERR_INVALIDMAXUSERS },
+       { "WERR_NERR_BUFTOOSMALL", WERR_NERR_BUFTOOSMALL },
+       { "WERR_NERR_REMOTEERR", WERR_NERR_REMOTEERR },
+       { "WERR_NERR_LANMANINIERROR", WERR_NERR_LANMANINIERROR },
+       { "WERR_NERR_NETWORKERROR", WERR_NERR_NETWORKERROR },
+       { "WERR_NERR_WKSTAINCONSISTENTSTATE", WERR_NERR_WKSTAINCONSISTENTSTATE },
+       { "WERR_NERR_WKSTANOTSTARTED", WERR_NERR_WKSTANOTSTARTED },
+       { "WERR_NERR_BROWSERNOTSTARTED", WERR_NERR_BROWSERNOTSTARTED },
+       { "WERR_NERR_INTERNALERROR", WERR_NERR_INTERNALERROR },
+       { "WERR_NERR_BADTRANSACTCONFIG", WERR_NERR_BADTRANSACTCONFIG },
+       { "WERR_NERR_INVALIDAPI", WERR_NERR_INVALIDAPI },
+       { "WERR_NERR_BADEVENTNAME", WERR_NERR_BADEVENTNAME },
+       { "WERR_NERR_DUPNAMEREBOOT", WERR_NERR_DUPNAMEREBOOT },
+       { "WERR_NERR_CFGCOMPNOTFOUND", WERR_NERR_CFGCOMPNOTFOUND },
+       { "WERR_NERR_CFGPARAMNOTFOUND", WERR_NERR_CFGPARAMNOTFOUND },
+       { "WERR_NERR_LINETOOLONG", WERR_NERR_LINETOOLONG },
+       { "WERR_NERR_QNOTFOUND", WERR_NERR_QNOTFOUND },
+       { "WERR_NERR_JOBNOTFOUND", WERR_NERR_JOBNOTFOUND },
+       { "WERR_NERR_DESTNOTFOUND", WERR_NERR_DESTNOTFOUND },
+       { "WERR_NERR_DESTEXISTS", WERR_NERR_DESTEXISTS },
+       { "WERR_NERR_QEXISTS", WERR_NERR_QEXISTS },
+       { "WERR_NERR_QNOROOM", WERR_NERR_QNOROOM },
+       { "WERR_NERR_JOBNOROOM", WERR_NERR_JOBNOROOM },
+       { "WERR_NERR_DESTNOROOM", WERR_NERR_DESTNOROOM },
+       { "WERR_NERR_DESTIDLE", WERR_NERR_DESTIDLE },
+       { "WERR_NERR_DESTINVALIDOP", WERR_NERR_DESTINVALIDOP },
+       { "WERR_NERR_PROCNORESPOND", WERR_NERR_PROCNORESPOND },
+       { "WERR_NERR_SPOOLERNOTLOADED", WERR_NERR_SPOOLERNOTLOADED },
+       { "WERR_NERR_DESTINVALIDSTATE", WERR_NERR_DESTINVALIDSTATE },
+       { "WERR_NERR_QINVALIDSTATE", WERR_NERR_QINVALIDSTATE },
+       { "WERR_NERR_JOBINVALIDSTATE", WERR_NERR_JOBINVALIDSTATE },
+       { "WERR_NERR_SPOOLNOMEMORY", WERR_NERR_SPOOLNOMEMORY },
+       { "WERR_NERR_DRIVERNOTFOUND", WERR_NERR_DRIVERNOTFOUND },
+       { "WERR_NERR_DATATYPEINVALID", WERR_NERR_DATATYPEINVALID },
+       { "WERR_NERR_PROCNOTFOUND", WERR_NERR_PROCNOTFOUND },
+       { "WERR_NERR_SERVICETABLELOCKED", WERR_NERR_SERVICETABLELOCKED },
+       { "WERR_NERR_SERVICETABLEFULL", WERR_NERR_SERVICETABLEFULL },
+       { "WERR_NERR_SERVICEINSTALLED", WERR_NERR_SERVICEINSTALLED },
+       { "WERR_NERR_SERVICEENTRYLOCKED", WERR_NERR_SERVICEENTRYLOCKED },
+       { "WERR_NERR_SERVICENOTINSTALLED", WERR_NERR_SERVICENOTINSTALLED },
+       { "WERR_NERR_BADSERVICENAME", WERR_NERR_BADSERVICENAME },
+       { "WERR_NERR_SERVICECTLTIMEOUT", WERR_NERR_SERVICECTLTIMEOUT },
+       { "WERR_NERR_SERVICECTLBUSY", WERR_NERR_SERVICECTLBUSY },
+       { "WERR_NERR_BADSERVICEPROGNAME", WERR_NERR_BADSERVICEPROGNAME },
+       { "WERR_NERR_SERVICENOTCTRL", WERR_NERR_SERVICENOTCTRL },
+       { "WERR_NERR_SERVICEKILLPROC", WERR_NERR_SERVICEKILLPROC },
+       { "WERR_NERR_SERVICECTLNOTVALID", WERR_NERR_SERVICECTLNOTVALID },
+       { "WERR_NERR_NOTINDISPATCHTBL", WERR_NERR_NOTINDISPATCHTBL },
+       { "WERR_NERR_BADCONTROLRECV", WERR_NERR_BADCONTROLRECV },
+       { "WERR_NERR_SERVICENOTSTARTING", WERR_NERR_SERVICENOTSTARTING },
+       { "WERR_NERR_ALREADYLOGGEDON", WERR_NERR_ALREADYLOGGEDON },
+       { "WERR_NERR_NOTLOGGEDON", WERR_NERR_NOTLOGGEDON },
+       { "WERR_NERR_BADUSERNAME", WERR_NERR_BADUSERNAME },
+       { "WERR_NERR_BADPASSWORD", WERR_NERR_BADPASSWORD },
+       { "WERR_NERR_UNABLETOADDNAME_W", WERR_NERR_UNABLETOADDNAME_W },
+       { "WERR_NERR_UNABLETOADDNAME_F", WERR_NERR_UNABLETOADDNAME_F },
+       { "WERR_NERR_UNABLETODELNAME_W", WERR_NERR_UNABLETODELNAME_W },
+       { "WERR_NERR_UNABLETODELNAME_F", WERR_NERR_UNABLETODELNAME_F },
+       { "WERR_NERR_LOGONSPAUSED", WERR_NERR_LOGONSPAUSED },
+       { "WERR_NERR_LOGONSERVERCONFLICT", WERR_NERR_LOGONSERVERCONFLICT },
+       { "WERR_NERR_LOGONNOUSERPATH", WERR_NERR_LOGONNOUSERPATH },
+       { "WERR_NERR_LOGONSCRIPTERROR", WERR_NERR_LOGONSCRIPTERROR },
+       { "WERR_NERR_STANDALONELOGON", WERR_NERR_STANDALONELOGON },
+       { "WERR_NERR_LOGONSERVERNOTFOUND", WERR_NERR_LOGONSERVERNOTFOUND },
+       { "WERR_NERR_LOGONDOMAINEXISTS", WERR_NERR_LOGONDOMAINEXISTS },
+       { "WERR_NERR_NONVALIDATEDLOGON", WERR_NERR_NONVALIDATEDLOGON },
+       { "WERR_NERR_ACFNOTFOUND", WERR_NERR_ACFNOTFOUND },
+       { "WERR_NERR_GROUPNOTFOUND", WERR_NERR_GROUPNOTFOUND },
+       { "WERR_NERR_USERNOTFOUND", WERR_NERR_USERNOTFOUND },
+       { "WERR_NERR_RESOURCENOTFOUND", WERR_NERR_RESOURCENOTFOUND },
+       { "WERR_NERR_GROUPEXISTS", WERR_NERR_GROUPEXISTS },
+       { "WERR_NERR_USEREXISTS", WERR_NERR_USEREXISTS },
+       { "WERR_NERR_RESOURCEEXISTS", WERR_NERR_RESOURCEEXISTS },
+       { "WERR_NERR_NOTPRIMARY", WERR_NERR_NOTPRIMARY },
+       { "WERR_NERR_ACFNOTLOADED", WERR_NERR_ACFNOTLOADED },
+       { "WERR_NERR_ACFNOROOM", WERR_NERR_ACFNOROOM },
+       { "WERR_NERR_ACFFILEIOFAIL", WERR_NERR_ACFFILEIOFAIL },
+       { "WERR_NERR_ACFTOOMANYLISTS", WERR_NERR_ACFTOOMANYLISTS },
+       { "WERR_NERR_USERLOGON", WERR_NERR_USERLOGON },
+       { "WERR_NERR_ACFNOPARENT", WERR_NERR_ACFNOPARENT },
+       { "WERR_NERR_CANNOTGROWSEGMENT", WERR_NERR_CANNOTGROWSEGMENT },
+       { "WERR_NERR_SPEGROUPOP", WERR_NERR_SPEGROUPOP },
+       { "WERR_NERR_NOTINCACHE", WERR_NERR_NOTINCACHE },
+       { "WERR_NERR_USERINGROUP", WERR_NERR_USERINGROUP },
+       { "WERR_NERR_USERNOTINGROUP", WERR_NERR_USERNOTINGROUP },
+       { "WERR_NERR_ACCOUNTUNDEFINED", WERR_NERR_ACCOUNTUNDEFINED },
+       { "WERR_NERR_ACCOUNTEXPIRED", WERR_NERR_ACCOUNTEXPIRED },
+       { "WERR_NERR_INVALIDWORKSTATION", WERR_NERR_INVALIDWORKSTATION },
+       { "WERR_NERR_INVALIDLOGONHOURS", WERR_NERR_INVALIDLOGONHOURS },
+       { "WERR_NERR_PASSWORDEXPIRED", WERR_NERR_PASSWORDEXPIRED },
+       { "WERR_NERR_PASSWORDCANTCHANGE", WERR_NERR_PASSWORDCANTCHANGE },
+       { "WERR_NERR_PASSWORDHISTCONFLICT", WERR_NERR_PASSWORDHISTCONFLICT },
+       { "WERR_NERR_PASSWORDTOOSHORT", WERR_NERR_PASSWORDTOOSHORT },
+       { "WERR_NERR_PASSWORDTOORECENT", WERR_NERR_PASSWORDTOORECENT },
+       { "WERR_NERR_INVALIDDATABASE", WERR_NERR_INVALIDDATABASE },
+       { "WERR_NERR_DATABASEUPTODATE", WERR_NERR_DATABASEUPTODATE },
+       { "WERR_NERR_SYNCREQUIRED", WERR_NERR_SYNCREQUIRED },
+       { "WERR_NERR_USENOTFOUND", WERR_NERR_USENOTFOUND },
+       { "WERR_NERR_BADASGTYPE", WERR_NERR_BADASGTYPE },
+       { "WERR_NERR_DEVICEISSHARED", WERR_NERR_DEVICEISSHARED },
+       { "WERR_NERR_NOCOMPUTERNAME", WERR_NERR_NOCOMPUTERNAME },
+       { "WERR_NERR_MSGALREADYSTARTED", WERR_NERR_MSGALREADYSTARTED },
+       { "WERR_NERR_MSGINITFAILED", WERR_NERR_MSGINITFAILED },
+       { "WERR_NERR_NAMENOTFOUND", WERR_NERR_NAMENOTFOUND },
+       { "WERR_NERR_ALREADYFORWARDED", WERR_NERR_ALREADYFORWARDED },
+       { "WERR_NERR_ADDFORWARDED", WERR_NERR_ADDFORWARDED },
+       { "WERR_NERR_ALREADYEXISTS", WERR_NERR_ALREADYEXISTS },
+       { "WERR_NERR_TOOMANYNAMES", WERR_NERR_TOOMANYNAMES },
+       { "WERR_NERR_DELCOMPUTERNAME", WERR_NERR_DELCOMPUTERNAME },
+       { "WERR_NERR_LOCALFORWARD", WERR_NERR_LOCALFORWARD },
+       { "WERR_NERR_GRPMSGPROCESSOR", WERR_NERR_GRPMSGPROCESSOR },
+       { "WERR_NERR_PAUSEDREMOTE", WERR_NERR_PAUSEDREMOTE },
+       { "WERR_NERR_BADRECEIVE", WERR_NERR_BADRECEIVE },
+       { "WERR_NERR_NAMEINUSE", WERR_NERR_NAMEINUSE },
+       { "WERR_NERR_MSGNOTSTARTED", WERR_NERR_MSGNOTSTARTED },
+       { "WERR_NERR_NOTLOCALNAME", WERR_NERR_NOTLOCALNAME },
+       { "WERR_NERR_NOFORWARDNAME", WERR_NERR_NOFORWARDNAME },
+       { "WERR_NERR_REMOTEFULL", WERR_NERR_REMOTEFULL },
+       { "WERR_NERR_NAMENOTFORWARDED", WERR_NERR_NAMENOTFORWARDED },
+       { "WERR_NERR_TRUNCATEDBROADCAST", WERR_NERR_TRUNCATEDBROADCAST },
+       { "WERR_NERR_INVALIDDEVICE", WERR_NERR_INVALIDDEVICE },
+       { "WERR_NERR_WRITEFAULT", WERR_NERR_WRITEFAULT },
+       { "WERR_NERR_DUPLICATENAME", WERR_NERR_DUPLICATENAME },
+       { "WERR_NERR_DELETELATER", WERR_NERR_DELETELATER },
+       { "WERR_NERR_INCOMPLETEDEL", WERR_NERR_INCOMPLETEDEL },
+       { "WERR_NERR_MULTIPLENETS", WERR_NERR_MULTIPLENETS },
+       { "WERR_NERR_NETNAMENOTFOUND", WERR_NERR_NETNAMENOTFOUND },
+       { "WERR_NERR_DEVICENOTSHARED", WERR_NERR_DEVICENOTSHARED },
+       { "WERR_NERR_CLIENTNAMENOTFOUND", WERR_NERR_CLIENTNAMENOTFOUND },
+       { "WERR_NERR_FILEIDNOTFOUND", WERR_NERR_FILEIDNOTFOUND },
+       { "WERR_NERR_EXECFAILURE", WERR_NERR_EXECFAILURE },
+       { "WERR_NERR_TMPFILE", WERR_NERR_TMPFILE },
+       { "WERR_NERR_TOOMUCHDATA", WERR_NERR_TOOMUCHDATA },
+       { "WERR_NERR_DEVICESHARECONFLICT", WERR_NERR_DEVICESHARECONFLICT },
+       { "WERR_NERR_BROWSERTABLEINCOMPLETE", WERR_NERR_BROWSERTABLEINCOMPLETE },
+       { "WERR_NERR_NOTLOCALDOMAIN", WERR_NERR_NOTLOCALDOMAIN },
+       { "WERR_NERR_ISDFSSHARE", WERR_NERR_ISDFSSHARE },
+       { "WERR_NERR_DEVINVALIDOPCODE", WERR_NERR_DEVINVALIDOPCODE },
+       { "WERR_NERR_DEVNOTFOUND", WERR_NERR_DEVNOTFOUND },
+       { "WERR_NERR_DEVNOTOPEN", WERR_NERR_DEVNOTOPEN },
+       { "WERR_NERR_BADQUEUEDEVSTRING", WERR_NERR_BADQUEUEDEVSTRING },
+       { "WERR_NERR_BADQUEUEPRIORITY", WERR_NERR_BADQUEUEPRIORITY },
+       { "WERR_NERR_NOCOMMDEVS", WERR_NERR_NOCOMMDEVS },
+       { "WERR_NERR_QUEUENOTFOUND", WERR_NERR_QUEUENOTFOUND },
+       { "WERR_NERR_BADDEVSTRING", WERR_NERR_BADDEVSTRING },
+       { "WERR_NERR_BADDEV", WERR_NERR_BADDEV },
+       { "WERR_NERR_INUSEBYSPOOLER", WERR_NERR_INUSEBYSPOOLER },
+       { "WERR_NERR_COMMDEVINUSE", WERR_NERR_COMMDEVINUSE },
+       { "WERR_NERR_INVALIDCOMPUTER", WERR_NERR_INVALIDCOMPUTER },
+       { "WERR_NERR_MAXLENEXCEEDED", WERR_NERR_MAXLENEXCEEDED },
+       { "WERR_NERR_BADCOMPONENT", WERR_NERR_BADCOMPONENT },
+       { "WERR_NERR_CANTTYPE", WERR_NERR_CANTTYPE },
+       { "WERR_NERR_TOOMANYENTRIES", WERR_NERR_TOOMANYENTRIES },
+       { "WERR_NERR_PROFILEFILETOOBIG", WERR_NERR_PROFILEFILETOOBIG },
+       { "WERR_NERR_PROFILEOFFSET", WERR_NERR_PROFILEOFFSET },
+       { "WERR_NERR_PROFILECLEANUP", WERR_NERR_PROFILECLEANUP },
+       { "WERR_NERR_PROFILEUNKNOWNCMD", WERR_NERR_PROFILEUNKNOWNCMD },
+       { "WERR_NERR_PROFILELOADERR", WERR_NERR_PROFILELOADERR },
+       { "WERR_NERR_PROFILESAVEERR", WERR_NERR_PROFILESAVEERR },
+       { "WERR_NERR_LOGOVERFLOW", WERR_NERR_LOGOVERFLOW },
+       { "WERR_NERR_LOGFILECHANGED", WERR_NERR_LOGFILECHANGED },
+       { "WERR_NERR_LOGFILECORRUPT", WERR_NERR_LOGFILECORRUPT },
+       { "WERR_NERR_SOURCEISDIR", WERR_NERR_SOURCEISDIR },
+       { "WERR_NERR_BADSOURCE", WERR_NERR_BADSOURCE },
+       { "WERR_NERR_BADDEST", WERR_NERR_BADDEST },
+       { "WERR_NERR_DIFFERENTSERVERS", WERR_NERR_DIFFERENTSERVERS },
+       { "WERR_NERR_RUNSRVPAUSED", WERR_NERR_RUNSRVPAUSED },
+       { "WERR_NERR_ERRCOMMRUNSRV", WERR_NERR_ERRCOMMRUNSRV },
+       { "WERR_NERR_ERROREXECINGGHOST", WERR_NERR_ERROREXECINGGHOST },
+       { "WERR_NERR_SHARENOTFOUND", WERR_NERR_SHARENOTFOUND },
+       { "WERR_NERR_INVALIDLANA", WERR_NERR_INVALIDLANA },
+       { "WERR_NERR_OPENFILES", WERR_NERR_OPENFILES },
+       { "WERR_NERR_ACTIVECONNS", WERR_NERR_ACTIVECONNS },
+       { "WERR_NERR_BADPASSWORDCORE", WERR_NERR_BADPASSWORDCORE },
+       { "WERR_NERR_DEVINUSE", WERR_NERR_DEVINUSE },
+       { "WERR_NERR_LOCALDRIVE", WERR_NERR_LOCALDRIVE },
+       { "WERR_NERR_ALERTEXISTS", WERR_NERR_ALERTEXISTS },
+       { "WERR_NERR_TOOMANYALERTS", WERR_NERR_TOOMANYALERTS },
+       { "WERR_NERR_NOSUCHALERT", WERR_NERR_NOSUCHALERT },
+       { "WERR_NERR_BADRECIPIENT", WERR_NERR_BADRECIPIENT },
+       { "WERR_NERR_ACCTLIMITEXCEEDED", WERR_NERR_ACCTLIMITEXCEEDED },
+       { "WERR_NERR_INVALIDLOGSEEK", WERR_NERR_INVALIDLOGSEEK },
+       { "WERR_NERR_BADUASCONFIG", WERR_NERR_BADUASCONFIG },
+       { "WERR_NERR_INVALIDUASOP", WERR_NERR_INVALIDUASOP },
+       { "WERR_NERR_LASTADMIN", WERR_NERR_LASTADMIN },
+       { "WERR_NERR_DCNOTFOUND", WERR_NERR_DCNOTFOUND },
+       { "WERR_NERR_LOGONTRACKINGERROR", WERR_NERR_LOGONTRACKINGERROR },
+       { "WERR_NERR_NETLOGONNOTSTARTED", WERR_NERR_NETLOGONNOTSTARTED },
+       { "WERR_NERR_CANNOTGROWUASFILE", WERR_NERR_CANNOTGROWUASFILE },
+       { "WERR_NERR_TIMEDIFFATDC", WERR_NERR_TIMEDIFFATDC },
+       { "WERR_NERR_PASSWORDMISMATCH", WERR_NERR_PASSWORDMISMATCH },
+       { "WERR_NERR_NOSUCHSERVER", WERR_NERR_NOSUCHSERVER },
+       { "WERR_NERR_NOSUCHSESSION", WERR_NERR_NOSUCHSESSION },
+       { "WERR_NERR_NOSUCHCONNECTION", WERR_NERR_NOSUCHCONNECTION },
+       { "WERR_NERR_TOOMANYSERVERS", WERR_NERR_TOOMANYSERVERS },
+       { "WERR_NERR_TOOMANYSESSIONS", WERR_NERR_TOOMANYSESSIONS },
+       { "WERR_NERR_TOOMANYCONNECTIONS", WERR_NERR_TOOMANYCONNECTIONS },
+       { "WERR_NERR_TOOMANYFILES", WERR_NERR_TOOMANYFILES },
+       { "WERR_NERR_NOALTERNATESERVERS", WERR_NERR_NOALTERNATESERVERS },
+       { "WERR_NERR_TRYDOWNLEVEL", WERR_NERR_TRYDOWNLEVEL },
+       { "WERR_NERR_UPSDRIVERNOTSTARTED", WERR_NERR_UPSDRIVERNOTSTARTED },
+       { "WERR_NERR_UPSINVALIDCONFIG", WERR_NERR_UPSINVALIDCONFIG },
+       { "WERR_NERR_UPSINVALIDCOMMPORT", WERR_NERR_UPSINVALIDCOMMPORT },
+       { "WERR_NERR_UPSSIGNALASSERTED", WERR_NERR_UPSSIGNALASSERTED },
+       { "WERR_NERR_UPSSHUTDOWNFAILED", WERR_NERR_UPSSHUTDOWNFAILED },
+       { "WERR_NERR_BADDOSRETCODE", WERR_NERR_BADDOSRETCODE },
+       { "WERR_NERR_PROGNEEDSEXTRAMEM", WERR_NERR_PROGNEEDSEXTRAMEM },
+       { "WERR_NERR_BADDOSFUNCTION", WERR_NERR_BADDOSFUNCTION },
+       { "WERR_NERR_REMOTEBOOTFAILED", WERR_NERR_REMOTEBOOTFAILED },
+       { "WERR_NERR_BADFILECHECKSUM", WERR_NERR_BADFILECHECKSUM },
+       { "WERR_NERR_NORPLBOOTSYSTEM", WERR_NERR_NORPLBOOTSYSTEM },
+       { "WERR_NERR_RPLLOADRNETBIOSERR", WERR_NERR_RPLLOADRNETBIOSERR },
+       { "WERR_NERR_RPLLOADRDISKERR", WERR_NERR_RPLLOADRDISKERR },
+       { "WERR_NERR_IMAGEPARAMERR", WERR_NERR_IMAGEPARAMERR },
+       { "WERR_NERR_TOOMANYIMAGEPARAMS", WERR_NERR_TOOMANYIMAGEPARAMS },
+       { "WERR_NERR_NONDOSFLOPPYUSED", WERR_NERR_NONDOSFLOPPYUSED },
+       { "WERR_NERR_RPLBOOTRESTART", WERR_NERR_RPLBOOTRESTART },
+       { "WERR_NERR_RPLSRVRCALLFAILED", WERR_NERR_RPLSRVRCALLFAILED },
+       { "WERR_NERR_CANTCONNECTRPLSRVR", WERR_NERR_CANTCONNECTRPLSRVR },
+       { "WERR_NERR_CANTOPENIMAGEFILE", WERR_NERR_CANTOPENIMAGEFILE },
+       { "WERR_NERR_CALLINGRPLSRVR", WERR_NERR_CALLINGRPLSRVR },
+       { "WERR_NERR_STARTINGRPLBOOT", WERR_NERR_STARTINGRPLBOOT },
+       { "WERR_NERR_RPLBOOTSERVICETERM", WERR_NERR_RPLBOOTSERVICETERM },
+       { "WERR_NERR_RPLBOOTSTARTFAILED", WERR_NERR_RPLBOOTSTARTFAILED },
+       { "WERR_NERR_RPL_CONNECTED", WERR_NERR_RPL_CONNECTED },
+       { "WERR_NERR_BROWSERCONFIGUREDTONOTRUN", WERR_NERR_BROWSERCONFIGUREDTONOTRUN },
+       { "WERR_NERR_RPLNOADAPTERSSTARTED", WERR_NERR_RPLNOADAPTERSSTARTED },
+       { "WERR_NERR_RPLBADREGISTRY", WERR_NERR_RPLBADREGISTRY },
+       { "WERR_NERR_RPLBADDATABASE", WERR_NERR_RPLBADDATABASE },
+       { "WERR_NERR_RPLRPLFILESSHARE", WERR_NERR_RPLRPLFILESSHARE },
+       { "WERR_NERR_RPLNOTRPLSERVER", WERR_NERR_RPLNOTRPLSERVER },
+       { "WERR_NERR_RPLCANNOTENUM", WERR_NERR_RPLCANNOTENUM },
+       { "WERR_NERR_RPLWKSTAINFOCORRUPTED", WERR_NERR_RPLWKSTAINFOCORRUPTED },
+       { "WERR_NERR_RPLWKSTANOTFOUND", WERR_NERR_RPLWKSTANOTFOUND },
+       { "WERR_NERR_RPLWKSTANAMEUNAVAILABLE", WERR_NERR_RPLWKSTANAMEUNAVAILABLE },
+       { "WERR_NERR_RPLPROFILEINFOCORRUPTED", WERR_NERR_RPLPROFILEINFOCORRUPTED },
+       { "WERR_NERR_RPLPROFILENOTFOUND", WERR_NERR_RPLPROFILENOTFOUND },
+       { "WERR_NERR_RPLPROFILENAMEUNAVAILABLE", WERR_NERR_RPLPROFILENAMEUNAVAILABLE },
+       { "WERR_NERR_RPLPROFILENOTEMPTY", WERR_NERR_RPLPROFILENOTEMPTY },
+       { "WERR_NERR_RPLCONFIGINFOCORRUPTED", WERR_NERR_RPLCONFIGINFOCORRUPTED },
+       { "WERR_NERR_RPLCONFIGNOTFOUND", WERR_NERR_RPLCONFIGNOTFOUND },
+       { "WERR_NERR_RPLADAPTERINFOCORRUPTED", WERR_NERR_RPLADAPTERINFOCORRUPTED },
+       { "WERR_NERR_RPLINTERNAL", WERR_NERR_RPLINTERNAL },
+       { "WERR_NERR_RPLVENDORINFOCORRUPTED", WERR_NERR_RPLVENDORINFOCORRUPTED },
+       { "WERR_NERR_RPLBOOTINFOCORRUPTED", WERR_NERR_RPLBOOTINFOCORRUPTED },
+       { "WERR_NERR_RPLWKSTANEEDSUSERACCT", WERR_NERR_RPLWKSTANEEDSUSERACCT },
+       { "WERR_NERR_RPLNEEDSRPLUSERACCT", WERR_NERR_RPLNEEDSRPLUSERACCT },
+       { "WERR_NERR_RPLBOOTNOTFOUND", WERR_NERR_RPLBOOTNOTFOUND },
+       { "WERR_NERR_RPLINCOMPATIBLEPROFILE", WERR_NERR_RPLINCOMPATIBLEPROFILE },
+       { "WERR_NERR_RPLADAPTERNAMEUNAVAILABLE", WERR_NERR_RPLADAPTERNAMEUNAVAILABLE },
+       { "WERR_NERR_RPLCONFIGNOTEMPTY", WERR_NERR_RPLCONFIGNOTEMPTY },
+       { "WERR_NERR_RPLBOOTINUSE", WERR_NERR_RPLBOOTINUSE },
+       { "WERR_NERR_RPLBACKUPDATABASE", WERR_NERR_RPLBACKUPDATABASE },
+       { "WERR_NERR_RPLADAPTERNOTFOUND", WERR_NERR_RPLADAPTERNOTFOUND },
+       { "WERR_NERR_RPLVENDORNOTFOUND", WERR_NERR_RPLVENDORNOTFOUND },
+       { "WERR_NERR_RPLVENDORNAMEUNAVAILABLE", WERR_NERR_RPLVENDORNAMEUNAVAILABLE },
+       { "WERR_NERR_RPLBOOTNAMEUNAVAILABLE", WERR_NERR_RPLBOOTNAMEUNAVAILABLE },
+       { "WERR_NERR_RPLCONFIGNAMEUNAVAILABLE", WERR_NERR_RPLCONFIGNAMEUNAVAILABLE },
+       { "WERR_NERR_DFSINTERNALCORRUPTION", WERR_NERR_DFSINTERNALCORRUPTION },
+       { "WERR_NERR_DFSVOLUMEDATACORRUPT", WERR_NERR_DFSVOLUMEDATACORRUPT },
+       { "WERR_NERR_DFSNOSUCHVOLUME", WERR_NERR_DFSNOSUCHVOLUME },
+       { "WERR_NERR_DFSVOLUMEALREADYEXISTS", WERR_NERR_DFSVOLUMEALREADYEXISTS },
+       { "WERR_NERR_DFSALREADYSHARED", WERR_NERR_DFSALREADYSHARED },
+       { "WERR_NERR_DFSNOSUCHSHARE", WERR_NERR_DFSNOSUCHSHARE },
+       { "WERR_NERR_DFSNOTALEAFVOLUME", WERR_NERR_DFSNOTALEAFVOLUME },
+       { "WERR_NERR_DFSLEAFVOLUME", WERR_NERR_DFSLEAFVOLUME },
+       { "WERR_NERR_DFSVOLUMEHASMULTIPLESERVERS", WERR_NERR_DFSVOLUMEHASMULTIPLESERVERS },
+       { "WERR_NERR_DFSCANTCREATEJUNCTIONPOINT", WERR_NERR_DFSCANTCREATEJUNCTIONPOINT },
+       { "WERR_NERR_DFSSERVERNOTDFSAWARE", WERR_NERR_DFSSERVERNOTDFSAWARE },
+       { "WERR_NERR_DFSBADRENAMEPATH", WERR_NERR_DFSBADRENAMEPATH },
+       { "WERR_NERR_DFSVOLUMEISOFFLINE", WERR_NERR_DFSVOLUMEISOFFLINE },
+       { "WERR_NERR_DFSNOSUCHSERVER", WERR_NERR_DFSNOSUCHSERVER },
+       { "WERR_NERR_DFSCYCLICALNAME", WERR_NERR_DFSCYCLICALNAME },
+       { "WERR_NERR_DFSNOTSUPPORTEDINSERVERDFS", WERR_NERR_DFSNOTSUPPORTEDINSERVERDFS },
+       { "WERR_NERR_DFSDUPLICATESERVICE", WERR_NERR_DFSDUPLICATESERVICE },
+       { "WERR_NERR_DFSCANTREMOVELASTSERVERSHARE", WERR_NERR_DFSCANTREMOVELASTSERVERSHARE },
+       { "WERR_NERR_DFSVOLUMEISINTERDFS", WERR_NERR_DFSVOLUMEISINTERDFS },
+       { "WERR_NERR_DFSINCONSISTENT", WERR_NERR_DFSINCONSISTENT },
+       { "WERR_NERR_DFSSERVERUPGRADED", WERR_NERR_DFSSERVERUPGRADED },
+       { "WERR_NERR_DFSDATAISIDENTICAL", WERR_NERR_DFSDATAISIDENTICAL },
+       { "WERR_NERR_DFSCANTREMOVEDFSROOT", WERR_NERR_DFSCANTREMOVEDFSROOT },
+       { "WERR_NERR_DFSCHILDORPARENTINDFS", WERR_NERR_DFSCHILDORPARENTINDFS },
+       { "WERR_NERR_DFSINTERNALERROR", WERR_NERR_DFSINTERNALERROR },
+       { "WERR_NERR_SETUPALREADYJOINED", WERR_NERR_SETUPALREADYJOINED },
+       { "WERR_NERR_SETUPNOTJOINED", WERR_NERR_SETUPNOTJOINED },
+       { "WERR_NERR_SETUPDOMAINCONTROLLER", WERR_NERR_SETUPDOMAINCONTROLLER },
+       { "WERR_NERR_DEFAULTJOINREQUIRED", WERR_NERR_DEFAULTJOINREQUIRED },
+       { "WERR_NERR_INVALIDWORKGROUPNAME", WERR_NERR_INVALIDWORKGROUPNAME },
+       { "WERR_NERR_NAMEUSESINCOMPATIBLECODEPAGE", WERR_NERR_NAMEUSESINCOMPATIBLECODEPAGE },
+       { "WERR_NERR_COMPUTERACCOUNTNOTFOUND", WERR_NERR_COMPUTERACCOUNTNOTFOUND },
+       { "WERR_NERR_PERSONALSKU", WERR_NERR_PERSONALSKU },
+       { "WERR_NERR_PASSWORDMUSTCHANGE", WERR_NERR_PASSWORDMUSTCHANGE },
+       { "WERR_NERR_ACCOUNTLOCKEDOUT", WERR_NERR_ACCOUNTLOCKEDOUT },
+       { "WERR_NERR_PASSWORDTOOLONG", WERR_NERR_PASSWORDTOOLONG },
+       { "WERR_NERR_PASSWORDNOTCOMPLEXENOUGH", WERR_NERR_PASSWORDNOTCOMPLEXENOUGH },
+       { "WERR_NERR_PASSWORDFILTERERROR", WERR_NERR_PASSWORDFILTERERROR },
+       { "WERR_SUCCESS_REBOOT_REQUIRED", WERR_SUCCESS_REBOOT_REQUIRED },
+       { "WERR_SUCCESS_RESTART_REQUIRED", WERR_SUCCESS_RESTART_REQUIRED },
+       { "WERR_PRINTER_NOT_FOUND", WERR_PRINTER_NOT_FOUND },
+       { "WERR_PRINTER_DRIVER_WARNED", WERR_PRINTER_DRIVER_WARNED },
+       { "WERR_PRINTER_DRIVER_BLOCKED", WERR_PRINTER_DRIVER_BLOCKED },
+       { "WERR_PRINTER_DRIVER_PACKAGE_IN_USE", WERR_PRINTER_DRIVER_PACKAGE_IN_USE },
+       { "WERR_CORE_DRIVER_PACKAGE_NOT_FOUND", WERR_CORE_DRIVER_PACKAGE_NOT_FOUND },
+       { "WERR_FAIL_REBOOT_REQUIRED", WERR_FAIL_REBOOT_REQUIRED },
+       { "WERR_FAIL_REBOOT_INITIATED", WERR_FAIL_REBOOT_INITIATED },
+       { "WERR_IO_REISSUE_AS_CACHED", WERR_IO_REISSUE_AS_CACHED },
+       { "WERR_WINS_INTERNAL", WERR_WINS_INTERNAL },
+       { "WERR_CAN_NOT_DEL_LOCAL_WINS", WERR_CAN_NOT_DEL_LOCAL_WINS },
+       { "WERR_STATIC_INIT", WERR_STATIC_INIT },
+       { "WERR_INC_BACKUP", WERR_INC_BACKUP },
+       { "WERR_FULL_BACKUP", WERR_FULL_BACKUP },
+       { "WERR_REC_NON_EXISTENT", WERR_REC_NON_EXISTENT },
+       { "WERR_RPL_NOT_ALLOWED", WERR_RPL_NOT_ALLOWED },
+       { "WERR_DHCP_ADDRESS_CONFLICT", WERR_DHCP_ADDRESS_CONFLICT },
+       { "WERR_WMI_GUID_NOT_FOUND", WERR_WMI_GUID_NOT_FOUND },
+       { "WERR_WMI_INSTANCE_NOT_FOUND", WERR_WMI_INSTANCE_NOT_FOUND },
+       { "WERR_WMI_ITEMID_NOT_FOUND", WERR_WMI_ITEMID_NOT_FOUND },
+       { "WERR_WMI_TRY_AGAIN", WERR_WMI_TRY_AGAIN },
+       { "WERR_WMI_DP_NOT_FOUND", WERR_WMI_DP_NOT_FOUND },
+       { "WERR_WMI_UNRESOLVED_INSTANCE_REF", WERR_WMI_UNRESOLVED_INSTANCE_REF },
+       { "WERR_WMI_ALREADY_ENABLED", WERR_WMI_ALREADY_ENABLED },
+       { "WERR_WMI_GUID_DISCONNECTED", WERR_WMI_GUID_DISCONNECTED },
+       { "WERR_WMI_SERVER_UNAVAILABLE", WERR_WMI_SERVER_UNAVAILABLE },
+       { "WERR_WMI_DP_FAILED", WERR_WMI_DP_FAILED },
+       { "WERR_WMI_INVALID_MOF", WERR_WMI_INVALID_MOF },
+       { "WERR_WMI_INVALID_REGINFO", WERR_WMI_INVALID_REGINFO },
+       { "WERR_WMI_ALREADY_DISABLED", WERR_WMI_ALREADY_DISABLED },
+       { "WERR_WMI_READ_ONLY", WERR_WMI_READ_ONLY },
+       { "WERR_WMI_SET_FAILURE", WERR_WMI_SET_FAILURE },
+       { "WERR_INVALID_MEDIA", WERR_INVALID_MEDIA },
+       { "WERR_INVALID_LIBRARY", WERR_INVALID_LIBRARY },
+       { "WERR_INVALID_MEDIA_POOL", WERR_INVALID_MEDIA_POOL },
+       { "WERR_DRIVE_MEDIA_MISMATCH", WERR_DRIVE_MEDIA_MISMATCH },
+       { "WERR_MEDIA_OFFLINE", WERR_MEDIA_OFFLINE },
+       { "WERR_LIBRARY_OFFLINE", WERR_LIBRARY_OFFLINE },
+       { "WERR_EMPTY", WERR_EMPTY },
+       { "WERR_NOT_EMPTY", WERR_NOT_EMPTY },
+       { "WERR_MEDIA_UNAVAILABLE", WERR_MEDIA_UNAVAILABLE },
+       { "WERR_RESOURCE_DISABLED", WERR_RESOURCE_DISABLED },
+       { "WERR_INVALID_CLEANER", WERR_INVALID_CLEANER },
+       { "WERR_UNABLE_TO_CLEAN", WERR_UNABLE_TO_CLEAN },
+       { "WERR_OBJECT_NOT_FOUND", WERR_OBJECT_NOT_FOUND },
+       { "WERR_DATABASE_FAILURE", WERR_DATABASE_FAILURE },
+       { "WERR_DATABASE_FULL", WERR_DATABASE_FULL },
+       { "WERR_MEDIA_INCOMPATIBLE", WERR_MEDIA_INCOMPATIBLE },
+       { "WERR_RESOURCE_NOT_PRESENT", WERR_RESOURCE_NOT_PRESENT },
+       { "WERR_INVALID_OPERATION", WERR_INVALID_OPERATION },
+       { "WERR_MEDIA_NOT_AVAILABLE", WERR_MEDIA_NOT_AVAILABLE },
+       { "WERR_REQUEST_REFUSED", WERR_REQUEST_REFUSED },
+       { "WERR_INVALID_DRIVE_OBJECT", WERR_INVALID_DRIVE_OBJECT },
+       { "WERR_LIBRARY_FULL", WERR_LIBRARY_FULL },
+       { "WERR_MEDIUM_NOT_ACCESSIBLE", WERR_MEDIUM_NOT_ACCESSIBLE },
+       { "WERR_UNABLE_TO_LOAD_MEDIUM", WERR_UNABLE_TO_LOAD_MEDIUM },
+       { "WERR_UNABLE_TO_INVENTORY_DRIVE", WERR_UNABLE_TO_INVENTORY_DRIVE },
+       { "WERR_UNABLE_TO_INVENTORY_SLOT", WERR_UNABLE_TO_INVENTORY_SLOT },
+       { "WERR_UNABLE_TO_INVENTORY_TRANSPORT", WERR_UNABLE_TO_INVENTORY_TRANSPORT },
+       { "WERR_TRANSPORT_FULL", WERR_TRANSPORT_FULL },
+       { "WERR_CONTROLLING_IEPORT", WERR_CONTROLLING_IEPORT },
+       { "WERR_UNABLE_TO_EJECT_MOUNTED_MEDIA", WERR_UNABLE_TO_EJECT_MOUNTED_MEDIA },
+       { "WERR_CLEANER_SLOT_SET", WERR_CLEANER_SLOT_SET },
+       { "WERR_CLEANER_SLOT_NOT_SET", WERR_CLEANER_SLOT_NOT_SET },
+       { "WERR_CLEANER_CARTRIDGE_SPENT", WERR_CLEANER_CARTRIDGE_SPENT },
+       { "WERR_UNEXPECTED_OMID", WERR_UNEXPECTED_OMID },
+       { "WERR_CANT_DELETE_LAST_ITEM", WERR_CANT_DELETE_LAST_ITEM },
+       { "WERR_MESSAGE_EXCEEDS_MAX_SIZE", WERR_MESSAGE_EXCEEDS_MAX_SIZE },
+       { "WERR_VOLUME_CONTAINS_SYS_FILES", WERR_VOLUME_CONTAINS_SYS_FILES },
+       { "WERR_INDIGENOUS_TYPE", WERR_INDIGENOUS_TYPE },
+       { "WERR_NO_SUPPORTING_DRIVES", WERR_NO_SUPPORTING_DRIVES },
+       { "WERR_CLEANER_CARTRIDGE_INSTALLED", WERR_CLEANER_CARTRIDGE_INSTALLED },
+       { "WERR_IEPORT_FULL", WERR_IEPORT_FULL },
+       { "WERR_FILE_OFFLINE", WERR_FILE_OFFLINE },
+       { "WERR_REMOTE_STORAGE_NOT_ACTIVE", WERR_REMOTE_STORAGE_NOT_ACTIVE },
+       { "WERR_REMOTE_STORAGE_MEDIA_ERROR", WERR_REMOTE_STORAGE_MEDIA_ERROR },
+       { "WERR_NOT_A_REPARSE_POINT", WERR_NOT_A_REPARSE_POINT },
+       { "WERR_REPARSE_ATTRIBUTE_CONFLICT", WERR_REPARSE_ATTRIBUTE_CONFLICT },
+       { "WERR_INVALID_REPARSE_DATA", WERR_INVALID_REPARSE_DATA },
+       { "WERR_REPARSE_TAG_INVALID", WERR_REPARSE_TAG_INVALID },
+       { "WERR_REPARSE_TAG_MISMATCH", WERR_REPARSE_TAG_MISMATCH },
+       { "WERR_VOLUME_NOT_SIS_ENABLED", WERR_VOLUME_NOT_SIS_ENABLED },
+       { "WERR_DEPENDENT_RESOURCE_EXISTS", WERR_DEPENDENT_RESOURCE_EXISTS },
+       { "WERR_DEPENDENCY_NOT_FOUND", WERR_DEPENDENCY_NOT_FOUND },
+       { "WERR_DEPENDENCY_ALREADY_EXISTS", WERR_DEPENDENCY_ALREADY_EXISTS },
+       { "WERR_RESOURCE_NOT_ONLINE", WERR_RESOURCE_NOT_ONLINE },
+       { "WERR_HOST_NODE_NOT_AVAILABLE", WERR_HOST_NODE_NOT_AVAILABLE },
+       { "WERR_RESOURCE_NOT_AVAILABLE", WERR_RESOURCE_NOT_AVAILABLE },
+       { "WERR_RESOURCE_NOT_FOUND", WERR_RESOURCE_NOT_FOUND },
+       { "WERR_SHUTDOWN_CLUSTER", WERR_SHUTDOWN_CLUSTER },
+       { "WERR_CANT_EVICT_ACTIVE_NODE", WERR_CANT_EVICT_ACTIVE_NODE },
+       { "WERR_OBJECT_ALREADY_EXISTS", WERR_OBJECT_ALREADY_EXISTS },
+       { "WERR_OBJECT_IN_LIST", WERR_OBJECT_IN_LIST },
+       { "WERR_GROUP_NOT_AVAILABLE", WERR_GROUP_NOT_AVAILABLE },
+       { "WERR_GROUP_NOT_FOUND", WERR_GROUP_NOT_FOUND },
+       { "WERR_GROUP_NOT_ONLINE", WERR_GROUP_NOT_ONLINE },
+       { "WERR_HOST_NODE_NOT_RESOURCE_OWNER", WERR_HOST_NODE_NOT_RESOURCE_OWNER },
+       { "WERR_HOST_NODE_NOT_GROUP_OWNER", WERR_HOST_NODE_NOT_GROUP_OWNER },
+       { "WERR_RESMON_CREATE_FAILED", WERR_RESMON_CREATE_FAILED },
+       { "WERR_RESMON_ONLINE_FAILED", WERR_RESMON_ONLINE_FAILED },
+       { "WERR_RESOURCE_ONLINE", WERR_RESOURCE_ONLINE },
+       { "WERR_QUORUM_RESOURCE", WERR_QUORUM_RESOURCE },
+       { "WERR_NOT_QUORUM_CAPABLE", WERR_NOT_QUORUM_CAPABLE },
+       { "WERR_CLUSTER_SHUTTING_DOWN", WERR_CLUSTER_SHUTTING_DOWN },
+       { "WERR_INVALID_STATE", WERR_INVALID_STATE },
+       { "WERR_RESOURCE_PROPERTIES_STORED", WERR_RESOURCE_PROPERTIES_STORED },
+       { "WERR_NOT_QUORUM_CLASS", WERR_NOT_QUORUM_CLASS },
+       { "WERR_CORE_RESOURCE", WERR_CORE_RESOURCE },
+       { "WERR_QUORUM_RESOURCE_ONLINE_FAILED", WERR_QUORUM_RESOURCE_ONLINE_FAILED },
+       { "WERR_QUORUMLOG_OPEN_FAILED", WERR_QUORUMLOG_OPEN_FAILED },
+       { "WERR_CLUSTERLOG_CORRUPT", WERR_CLUSTERLOG_CORRUPT },
+       { "WERR_CLUSTERLOG_RECORD_EXCEEDS_MAXSIZE", WERR_CLUSTERLOG_RECORD_EXCEEDS_MAXSIZE },
+       { "WERR_CLUSTERLOG_EXCEEDS_MAXSIZE", WERR_CLUSTERLOG_EXCEEDS_MAXSIZE },
+       { "WERR_CLUSTERLOG_CHKPOINT_NOT_FOUND", WERR_CLUSTERLOG_CHKPOINT_NOT_FOUND },
+       { "WERR_CLUSTERLOG_NOT_ENOUGH_SPACE", WERR_CLUSTERLOG_NOT_ENOUGH_SPACE },
+       { "WERR_QUORUM_OWNER_ALIVE", WERR_QUORUM_OWNER_ALIVE },
+       { "WERR_NETWORK_NOT_AVAILABLE", WERR_NETWORK_NOT_AVAILABLE },
+       { "WERR_NODE_NOT_AVAILABLE", WERR_NODE_NOT_AVAILABLE },
+       { "WERR_ALL_NODES_NOT_AVAILABLE", WERR_ALL_NODES_NOT_AVAILABLE },
+       { "WERR_RESOURCE_FAILED", WERR_RESOURCE_FAILED },
+       { "WERR_CLUSTER_INVALID_NODE", WERR_CLUSTER_INVALID_NODE },
+       { "WERR_CLUSTER_NODE_EXISTS", WERR_CLUSTER_NODE_EXISTS },
+       { "WERR_CLUSTER_JOIN_IN_PROGRESS", WERR_CLUSTER_JOIN_IN_PROGRESS },
+       { "WERR_CLUSTER_NODE_NOT_FOUND", WERR_CLUSTER_NODE_NOT_FOUND },
+       { "WERR_CLUSTER_LOCAL_NODE_NOT_FOUND", WERR_CLUSTER_LOCAL_NODE_NOT_FOUND },
+       { "WERR_CLUSTER_NETWORK_EXISTS", WERR_CLUSTER_NETWORK_EXISTS },
+       { "WERR_CLUSTER_NETWORK_NOT_FOUND", WERR_CLUSTER_NETWORK_NOT_FOUND },
+       { "WERR_CLUSTER_NETINTERFACE_EXISTS", WERR_CLUSTER_NETINTERFACE_EXISTS },
+       { "WERR_CLUSTER_NETINTERFACE_NOT_FOUND", WERR_CLUSTER_NETINTERFACE_NOT_FOUND },
+       { "WERR_CLUSTER_INVALID_REQUEST", WERR_CLUSTER_INVALID_REQUEST },
+       { "WERR_CLUSTER_INVALID_NETWORK_PROVIDER", WERR_CLUSTER_INVALID_NETWORK_PROVIDER },
+       { "WERR_CLUSTER_NODE_DOWN", WERR_CLUSTER_NODE_DOWN },
+       { "WERR_CLUSTER_NODE_UNREACHABLE", WERR_CLUSTER_NODE_UNREACHABLE },
+       { "WERR_CLUSTER_NODE_NOT_MEMBER", WERR_CLUSTER_NODE_NOT_MEMBER },
+       { "WERR_CLUSTER_JOIN_NOT_IN_PROGRESS", WERR_CLUSTER_JOIN_NOT_IN_PROGRESS },
+       { "WERR_CLUSTER_INVALID_NETWORK", WERR_CLUSTER_INVALID_NETWORK },
+       { "WERR_CLUSTER_NODE_UP", WERR_CLUSTER_NODE_UP },
+       { "WERR_CLUSTER_IPADDR_IN_USE", WERR_CLUSTER_IPADDR_IN_USE },
+       { "WERR_CLUSTER_NODE_NOT_PAUSED", WERR_CLUSTER_NODE_NOT_PAUSED },
+       { "WERR_CLUSTER_NO_SECURITY_CONTEXT", WERR_CLUSTER_NO_SECURITY_CONTEXT },
+       { "WERR_CLUSTER_NETWORK_NOT_INTERNAL", WERR_CLUSTER_NETWORK_NOT_INTERNAL },
+       { "WERR_CLUSTER_NODE_ALREADY_UP", WERR_CLUSTER_NODE_ALREADY_UP },
+       { "WERR_CLUSTER_NODE_ALREADY_DOWN", WERR_CLUSTER_NODE_ALREADY_DOWN },
+       { "WERR_CLUSTER_NETWORK_ALREADY_ONLINE", WERR_CLUSTER_NETWORK_ALREADY_ONLINE },
+       { "WERR_CLUSTER_NETWORK_ALREADY_OFFLINE", WERR_CLUSTER_NETWORK_ALREADY_OFFLINE },
+       { "WERR_CLUSTER_NODE_ALREADY_MEMBER", WERR_CLUSTER_NODE_ALREADY_MEMBER },
+       { "WERR_CLUSTER_LAST_INTERNAL_NETWORK", WERR_CLUSTER_LAST_INTERNAL_NETWORK },
+       { "WERR_CLUSTER_NETWORK_HAS_DEPENDENTS", WERR_CLUSTER_NETWORK_HAS_DEPENDENTS },
+       { "WERR_INVALID_OPERATION_ON_QUORUM", WERR_INVALID_OPERATION_ON_QUORUM },
+       { "WERR_DEPENDENCY_NOT_ALLOWED", WERR_DEPENDENCY_NOT_ALLOWED },
+       { "WERR_CLUSTER_NODE_PAUSED", WERR_CLUSTER_NODE_PAUSED },
+       { "WERR_NODE_CANT_HOST_RESOURCE", WERR_NODE_CANT_HOST_RESOURCE },
+       { "WERR_CLUSTER_NODE_NOT_READY", WERR_CLUSTER_NODE_NOT_READY },
+       { "WERR_CLUSTER_NODE_SHUTTING_DOWN", WERR_CLUSTER_NODE_SHUTTING_DOWN },
+       { "WERR_CLUSTER_JOIN_ABORTED", WERR_CLUSTER_JOIN_ABORTED },
+       { "WERR_CLUSTER_INCOMPATIBLE_VERSIONS", WERR_CLUSTER_INCOMPATIBLE_VERSIONS },
+       { "WERR_CLUSTER_MAXNUM_OF_RESOURCES_EXCEEDED", WERR_CLUSTER_MAXNUM_OF_RESOURCES_EXCEEDED },
+       { "WERR_CLUSTER_SYSTEM_CONFIG_CHANGED", WERR_CLUSTER_SYSTEM_CONFIG_CHANGED },
+       { "WERR_CLUSTER_RESOURCE_TYPE_NOT_FOUND", WERR_CLUSTER_RESOURCE_TYPE_NOT_FOUND },
+       { "WERR_CLUSTER_RESTYPE_NOT_SUPPORTED", WERR_CLUSTER_RESTYPE_NOT_SUPPORTED },
+       { "WERR_CLUSTER_RESNAME_NOT_FOUND", WERR_CLUSTER_RESNAME_NOT_FOUND },
+       { "WERR_CLUSTER_NO_RPC_PACKAGES_REGISTERED", WERR_CLUSTER_NO_RPC_PACKAGES_REGISTERED },
+       { "WERR_CLUSTER_OWNER_NOT_IN_PREFLIST", WERR_CLUSTER_OWNER_NOT_IN_PREFLIST },
+       { "WERR_CLUSTER_DATABASE_SEQMISMATCH", WERR_CLUSTER_DATABASE_SEQMISMATCH },
+       { "WERR_RESMON_INVALID_STATE", WERR_RESMON_INVALID_STATE },
+       { "WERR_CLUSTER_GUM_NOT_LOCKER", WERR_CLUSTER_GUM_NOT_LOCKER },
+       { "WERR_QUORUM_DISK_NOT_FOUND", WERR_QUORUM_DISK_NOT_FOUND },
+       { "WERR_DATABASE_BACKUP_CORRUPT", WERR_DATABASE_BACKUP_CORRUPT },
+       { "WERR_CLUSTER_NODE_ALREADY_HAS_DFS_ROOT", WERR_CLUSTER_NODE_ALREADY_HAS_DFS_ROOT },
+       { "WERR_RESOURCE_PROPERTY_UNCHANGEABLE", WERR_RESOURCE_PROPERTY_UNCHANGEABLE },
+       { "WERR_CLUSTER_MEMBERSHIP_INVALID_STATE", WERR_CLUSTER_MEMBERSHIP_INVALID_STATE },
+       { "WERR_CLUSTER_QUORUMLOG_NOT_FOUND", WERR_CLUSTER_QUORUMLOG_NOT_FOUND },
+       { "WERR_CLUSTER_MEMBERSHIP_HALT", WERR_CLUSTER_MEMBERSHIP_HALT },
+       { "WERR_CLUSTER_INSTANCE_ID_MISMATCH", WERR_CLUSTER_INSTANCE_ID_MISMATCH },
+       { "WERR_CLUSTER_NETWORK_NOT_FOUND_FOR_IP", WERR_CLUSTER_NETWORK_NOT_FOUND_FOR_IP },
+       { "WERR_CLUSTER_PROPERTY_DATA_TYPE_MISMATCH", WERR_CLUSTER_PROPERTY_DATA_TYPE_MISMATCH },
+       { "WERR_CLUSTER_EVICT_WITHOUT_CLEANUP", WERR_CLUSTER_EVICT_WITHOUT_CLEANUP },
+       { "WERR_CLUSTER_PARAMETER_MISMATCH", WERR_CLUSTER_PARAMETER_MISMATCH },
+       { "WERR_NODE_CANNOT_BE_CLUSTERED", WERR_NODE_CANNOT_BE_CLUSTERED },
+       { "WERR_CLUSTER_WRONG_OS_VERSION", WERR_CLUSTER_WRONG_OS_VERSION },
+       { "WERR_CLUSTER_CANT_CREATE_DUP_CLUSTER_NAME", WERR_CLUSTER_CANT_CREATE_DUP_CLUSTER_NAME },
+       { "WERR_CLUSCFG_ALREADY_COMMITTED", WERR_CLUSCFG_ALREADY_COMMITTED },
+       { "WERR_CLUSCFG_ROLLBACK_FAILED", WERR_CLUSCFG_ROLLBACK_FAILED },
+       { "WERR_CLUSCFG_SYSTEM_DISK_DRIVE_LETTER_CONFLICT", WERR_CLUSCFG_SYSTEM_DISK_DRIVE_LETTER_CONFLICT },
+       { "WERR_CLUSTER_OLD_VERSION", WERR_CLUSTER_OLD_VERSION },
+       { "WERR_CLUSTER_MISMATCHED_COMPUTER_ACCT_NAME", WERR_CLUSTER_MISMATCHED_COMPUTER_ACCT_NAME },
+       { "WERR_CLUSTER_NO_NET_ADAPTERS", WERR_CLUSTER_NO_NET_ADAPTERS },
+       { "WERR_CLUSTER_POISONED", WERR_CLUSTER_POISONED },
+       { "WERR_CLUSTER_GROUP_MOVING", WERR_CLUSTER_GROUP_MOVING },
+       { "WERR_CLUSTER_RESOURCE_TYPE_BUSY", WERR_CLUSTER_RESOURCE_TYPE_BUSY },
+       { "WERR_RESOURCE_CALL_TIMED_OUT", WERR_RESOURCE_CALL_TIMED_OUT },
+       { "WERR_INVALID_CLUSTER_IPV6_ADDRESS", WERR_INVALID_CLUSTER_IPV6_ADDRESS },
+       { "WERR_CLUSTER_INTERNAL_INVALID_FUNCTION", WERR_CLUSTER_INTERNAL_INVALID_FUNCTION },
+       { "WERR_CLUSTER_PARAMETER_OUT_OF_BOUNDS", WERR_CLUSTER_PARAMETER_OUT_OF_BOUNDS },
+       { "WERR_CLUSTER_PARTIAL_SEND", WERR_CLUSTER_PARTIAL_SEND },
+       { "WERR_CLUSTER_REGISTRY_INVALID_FUNCTION", WERR_CLUSTER_REGISTRY_INVALID_FUNCTION },
+       { "WERR_CLUSTER_INVALID_STRING_TERMINATION", WERR_CLUSTER_INVALID_STRING_TERMINATION },
+       { "WERR_CLUSTER_INVALID_STRING_FORMAT", WERR_CLUSTER_INVALID_STRING_FORMAT },
+       { "WERR_CLUSTER_DATABASE_TRANSACTION_IN_PROGRESS", WERR_CLUSTER_DATABASE_TRANSACTION_IN_PROGRESS },
+       { "WERR_CLUSTER_DATABASE_TRANSACTION_NOT_IN_PROGRESS", WERR_CLUSTER_DATABASE_TRANSACTION_NOT_IN_PROGRESS },
+       { "WERR_CLUSTER_NULL_DATA", WERR_CLUSTER_NULL_DATA },
+       { "WERR_CLUSTER_PARTIAL_READ", WERR_CLUSTER_PARTIAL_READ },
+       { "WERR_CLUSTER_PARTIAL_WRITE", WERR_CLUSTER_PARTIAL_WRITE },
+       { "WERR_CLUSTER_CANT_DESERIALIZE_DATA", WERR_CLUSTER_CANT_DESERIALIZE_DATA },
+       { "WERR_DEPENDENT_RESOURCE_PROPERTY_CONFLICT", WERR_DEPENDENT_RESOURCE_PROPERTY_CONFLICT },
+       { "WERR_CLUSTER_NO_QUORUM", WERR_CLUSTER_NO_QUORUM },
+       { "WERR_CLUSTER_INVALID_IPV6_NETWORK", WERR_CLUSTER_INVALID_IPV6_NETWORK },
+       { "WERR_CLUSTER_INVALID_IPV6_TUNNEL_NETWORK", WERR_CLUSTER_INVALID_IPV6_TUNNEL_NETWORK },
+       { "WERR_QUORUM_NOT_ALLOWED_IN_THIS_GROUP", WERR_QUORUM_NOT_ALLOWED_IN_THIS_GROUP },
+       { "WERR_ENCRYPTION_FAILED", WERR_ENCRYPTION_FAILED },
+       { "WERR_DECRYPTION_FAILED", WERR_DECRYPTION_FAILED },
+       { "WERR_FILE_ENCRYPTED", WERR_FILE_ENCRYPTED },
+       { "WERR_NO_RECOVERY_POLICY", WERR_NO_RECOVERY_POLICY },
+       { "WERR_NO_EFS", WERR_NO_EFS },
+       { "WERR_WRONG_EFS", WERR_WRONG_EFS },
+       { "WERR_NO_USER_KEYS", WERR_NO_USER_KEYS },
+       { "WERR_FILE_NOT_ENCRYPTED", WERR_FILE_NOT_ENCRYPTED },
+       { "WERR_NOT_EXPORT_FORMAT", WERR_NOT_EXPORT_FORMAT },
+       { "WERR_FILE_READ_ONLY", WERR_FILE_READ_ONLY },
+       { "WERR_DIR_EFS_DISALLOWED", WERR_DIR_EFS_DISALLOWED },
+       { "WERR_EFS_SERVER_NOT_TRUSTED", WERR_EFS_SERVER_NOT_TRUSTED },
+       { "WERR_BAD_RECOVERY_POLICY", WERR_BAD_RECOVERY_POLICY },
+       { "WERR_EFS_ALG_BLOB_TOO_BIG", WERR_EFS_ALG_BLOB_TOO_BIG },
+       { "WERR_VOLUME_NOT_SUPPORT_EFS", WERR_VOLUME_NOT_SUPPORT_EFS },
+       { "WERR_EFS_DISABLED", WERR_EFS_DISABLED },
+       { "WERR_EFS_VERSION_NOT_SUPPORT", WERR_EFS_VERSION_NOT_SUPPORT },
+       { "WERR_CS_ENCRYPTION_INVALID_SERVER_RESPONSE", WERR_CS_ENCRYPTION_INVALID_SERVER_RESPONSE },
+       { "WERR_CS_ENCRYPTION_UNSUPPORTED_SERVER", WERR_CS_ENCRYPTION_UNSUPPORTED_SERVER },
+       { "WERR_CS_ENCRYPTION_EXISTING_ENCRYPTED_FILE", WERR_CS_ENCRYPTION_EXISTING_ENCRYPTED_FILE },
+       { "WERR_CS_ENCRYPTION_NEW_ENCRYPTED_FILE", WERR_CS_ENCRYPTION_NEW_ENCRYPTED_FILE },
+       { "WERR_CS_ENCRYPTION_FILE_NOT_CSE", WERR_CS_ENCRYPTION_FILE_NOT_CSE },
+       { "WERR_NO_BROWSER_SERVERS_FOUND", WERR_NO_BROWSER_SERVERS_FOUND },
+       { "WERR_LOG_SECTOR_INVALID", WERR_LOG_SECTOR_INVALID },
+       { "WERR_LOG_SECTOR_PARITY_INVALID", WERR_LOG_SECTOR_PARITY_INVALID },
+       { "WERR_LOG_SECTOR_REMAPPED", WERR_LOG_SECTOR_REMAPPED },
+       { "WERR_LOG_BLOCK_INCOMPLETE", WERR_LOG_BLOCK_INCOMPLETE },
+       { "WERR_LOG_INVALID_RANGE", WERR_LOG_INVALID_RANGE },
+       { "WERR_LOG_BLOCKS_EXHAUSTED", WERR_LOG_BLOCKS_EXHAUSTED },
+       { "WERR_LOG_READ_CONTEXT_INVALID", WERR_LOG_READ_CONTEXT_INVALID },
+       { "WERR_LOG_RESTART_INVALID", WERR_LOG_RESTART_INVALID },
+       { "WERR_LOG_BLOCK_VERSION", WERR_LOG_BLOCK_VERSION },
+       { "WERR_LOG_BLOCK_INVALID", WERR_LOG_BLOCK_INVALID },
+       { "WERR_LOG_READ_MODE_INVALID", WERR_LOG_READ_MODE_INVALID },
+       { "WERR_LOG_NO_RESTART", WERR_LOG_NO_RESTART },
+       { "WERR_LOG_METADATA_CORRUPT", WERR_LOG_METADATA_CORRUPT },
+       { "WERR_LOG_METADATA_INVALID", WERR_LOG_METADATA_INVALID },
+       { "WERR_LOG_METADATA_INCONSISTENT", WERR_LOG_METADATA_INCONSISTENT },
+       { "WERR_LOG_RESERVATION_INVALID", WERR_LOG_RESERVATION_INVALID },
+       { "WERR_LOG_CANT_DELETE", WERR_LOG_CANT_DELETE },
+       { "WERR_LOG_CONTAINER_LIMIT_EXCEEDED", WERR_LOG_CONTAINER_LIMIT_EXCEEDED },
+       { "WERR_LOG_START_OF_LOG", WERR_LOG_START_OF_LOG },
+       { "WERR_LOG_POLICY_ALREADY_INSTALLED", WERR_LOG_POLICY_ALREADY_INSTALLED },
+       { "WERR_LOG_POLICY_NOT_INSTALLED", WERR_LOG_POLICY_NOT_INSTALLED },
+       { "WERR_LOG_POLICY_INVALID", WERR_LOG_POLICY_INVALID },
+       { "WERR_LOG_POLICY_CONFLICT", WERR_LOG_POLICY_CONFLICT },
+       { "WERR_LOG_PINNED_ARCHIVE_TAIL", WERR_LOG_PINNED_ARCHIVE_TAIL },
+       { "WERR_LOG_RECORD_NONEXISTENT", WERR_LOG_RECORD_NONEXISTENT },
+       { "WERR_LOG_RECORDS_RESERVED_INVALID", WERR_LOG_RECORDS_RESERVED_INVALID },
+       { "WERR_LOG_SPACE_RESERVED_INVALID", WERR_LOG_SPACE_RESERVED_INVALID },
+       { "WERR_LOG_TAIL_INVALID", WERR_LOG_TAIL_INVALID },
+       { "WERR_LOG_FULL", WERR_LOG_FULL },
+       { "WERR_COULD_NOT_RESIZE_LOG", WERR_COULD_NOT_RESIZE_LOG },
+       { "WERR_LOG_MULTIPLEXED", WERR_LOG_MULTIPLEXED },
+       { "WERR_LOG_DEDICATED", WERR_LOG_DEDICATED },
+       { "WERR_LOG_ARCHIVE_NOT_IN_PROGRESS", WERR_LOG_ARCHIVE_NOT_IN_PROGRESS },
+       { "WERR_LOG_ARCHIVE_IN_PROGRESS", WERR_LOG_ARCHIVE_IN_PROGRESS },
+       { "WERR_LOG_EPHEMERAL", WERR_LOG_EPHEMERAL },
+       { "WERR_LOG_NOT_ENOUGH_CONTAINERS", WERR_LOG_NOT_ENOUGH_CONTAINERS },
+       { "WERR_LOG_CLIENT_ALREADY_REGISTERED", WERR_LOG_CLIENT_ALREADY_REGISTERED },
+       { "WERR_LOG_CLIENT_NOT_REGISTERED", WERR_LOG_CLIENT_NOT_REGISTERED },
+       { "WERR_LOG_FULL_HANDLER_IN_PROGRESS", WERR_LOG_FULL_HANDLER_IN_PROGRESS },
+       { "WERR_LOG_CONTAINER_READ_FAILED", WERR_LOG_CONTAINER_READ_FAILED },
+       { "WERR_LOG_CONTAINER_WRITE_FAILED", WERR_LOG_CONTAINER_WRITE_FAILED },
+       { "WERR_LOG_CONTAINER_OPEN_FAILED", WERR_LOG_CONTAINER_OPEN_FAILED },
+       { "WERR_LOG_CONTAINER_STATE_INVALID", WERR_LOG_CONTAINER_STATE_INVALID },
+       { "WERR_LOG_STATE_INVALID", WERR_LOG_STATE_INVALID },
+       { "WERR_LOG_PINNED", WERR_LOG_PINNED },
+       { "WERR_LOG_METADATA_FLUSH_FAILED", WERR_LOG_METADATA_FLUSH_FAILED },
+       { "WERR_LOG_INCONSISTENT_SECURITY", WERR_LOG_INCONSISTENT_SECURITY },
+       { "WERR_LOG_APPENDED_FLUSH_FAILED", WERR_LOG_APPENDED_FLUSH_FAILED },
+       { "WERR_LOG_PINNED_RESERVATION", WERR_LOG_PINNED_RESERVATION },
+       { "WERR_INVALID_TRANSACTION", WERR_INVALID_TRANSACTION },
+       { "WERR_TRANSACTION_NOT_ACTIVE", WERR_TRANSACTION_NOT_ACTIVE },
+       { "WERR_TRANSACTION_REQUEST_NOT_VALID", WERR_TRANSACTION_REQUEST_NOT_VALID },
+       { "WERR_TRANSACTION_NOT_REQUESTED", WERR_TRANSACTION_NOT_REQUESTED },
+       { "WERR_TRANSACTION_ALREADY_ABORTED", WERR_TRANSACTION_ALREADY_ABORTED },
+       { "WERR_TRANSACTION_ALREADY_COMMITTED", WERR_TRANSACTION_ALREADY_COMMITTED },
+       { "WERR_TM_INITIALIZATION_FAILED", WERR_TM_INITIALIZATION_FAILED },
+       { "WERR_RESOURCEMANAGER_READ_ONLY", WERR_RESOURCEMANAGER_READ_ONLY },
+       { "WERR_TRANSACTION_NOT_JOINED", WERR_TRANSACTION_NOT_JOINED },
+       { "WERR_TRANSACTION_SUPERIOR_EXISTS", WERR_TRANSACTION_SUPERIOR_EXISTS },
+       { "WERR_CRM_PROTOCOL_ALREADY_EXISTS", WERR_CRM_PROTOCOL_ALREADY_EXISTS },
+       { "WERR_TRANSACTION_PROPAGATION_FAILED", WERR_TRANSACTION_PROPAGATION_FAILED },
+       { "WERR_CRM_PROTOCOL_NOT_FOUND", WERR_CRM_PROTOCOL_NOT_FOUND },
+       { "WERR_TRANSACTION_INVALID_MARSHALL_BUFFER", WERR_TRANSACTION_INVALID_MARSHALL_BUFFER },
+       { "WERR_CURRENT_TRANSACTION_NOT_VALID", WERR_CURRENT_TRANSACTION_NOT_VALID },
+       { "WERR_TRANSACTION_NOT_FOUND", WERR_TRANSACTION_NOT_FOUND },
+       { "WERR_RESOURCEMANAGER_NOT_FOUND", WERR_RESOURCEMANAGER_NOT_FOUND },
+       { "WERR_ENLISTMENT_NOT_FOUND", WERR_ENLISTMENT_NOT_FOUND },
+       { "WERR_TRANSACTIONMANAGER_NOT_FOUND", WERR_TRANSACTIONMANAGER_NOT_FOUND },
+       { "WERR_TRANSACTIONMANAGER_NOT_ONLINE", WERR_TRANSACTIONMANAGER_NOT_ONLINE },
+       { "WERR_TRANSACTIONMANAGER_RECOVERY_NAME_COLLISION", WERR_TRANSACTIONMANAGER_RECOVERY_NAME_COLLISION },
+       { "WERR_TRANSACTIONAL_CONFLICT", WERR_TRANSACTIONAL_CONFLICT },
+       { "WERR_RM_NOT_ACTIVE", WERR_RM_NOT_ACTIVE },
+       { "WERR_RM_METADATA_CORRUPT", WERR_RM_METADATA_CORRUPT },
+       { "WERR_DIRECTORY_NOT_RM", WERR_DIRECTORY_NOT_RM },
+       { "WERR_TRANSACTIONS_UNSUPPORTED_REMOTE", WERR_TRANSACTIONS_UNSUPPORTED_REMOTE },
+       { "WERR_LOG_RESIZE_INVALID_SIZE", WERR_LOG_RESIZE_INVALID_SIZE },
+       { "WERR_OBJECT_NO_LONGER_EXISTS", WERR_OBJECT_NO_LONGER_EXISTS },
+       { "WERR_STREAM_MINIVERSION_NOT_FOUND", WERR_STREAM_MINIVERSION_NOT_FOUND },
+       { "WERR_STREAM_MINIVERSION_NOT_VALID", WERR_STREAM_MINIVERSION_NOT_VALID },
+       { "WERR_MINIVERSION_INACCESSIBLE_FROM_SPECIFIED_TRANSACTION", WERR_MINIVERSION_INACCESSIBLE_FROM_SPECIFIED_TRANSACTION },
+       { "WERR_CANT_OPEN_MINIVERSION_WITH_MODIFY_INTENT", WERR_CANT_OPEN_MINIVERSION_WITH_MODIFY_INTENT },
+       { "WERR_CANT_CREATE_MORE_STREAM_MINIVERSIONS", WERR_CANT_CREATE_MORE_STREAM_MINIVERSIONS },
+       { "WERR_REMOTE_FILE_VERSION_MISMATCH", WERR_REMOTE_FILE_VERSION_MISMATCH },
+       { "WERR_HANDLE_NO_LONGER_VALID", WERR_HANDLE_NO_LONGER_VALID },
+       { "WERR_NO_TXF_METADATA", WERR_NO_TXF_METADATA },
+       { "WERR_LOG_CORRUPTION_DETECTED", WERR_LOG_CORRUPTION_DETECTED },
+       { "WERR_CANT_RECOVER_WITH_HANDLE_OPEN", WERR_CANT_RECOVER_WITH_HANDLE_OPEN },
+       { "WERR_RM_DISCONNECTED", WERR_RM_DISCONNECTED },
+       { "WERR_ENLISTMENT_NOT_SUPERIOR", WERR_ENLISTMENT_NOT_SUPERIOR },
+       { "WERR_RECOVERY_NOT_NEEDED", WERR_RECOVERY_NOT_NEEDED },
+       { "WERR_RM_ALREADY_STARTED", WERR_RM_ALREADY_STARTED },
+       { "WERR_FILE_IDENTITY_NOT_PERSISTENT", WERR_FILE_IDENTITY_NOT_PERSISTENT },
+       { "WERR_CANT_BREAK_TRANSACTIONAL_DEPENDENCY", WERR_CANT_BREAK_TRANSACTIONAL_DEPENDENCY },
+       { "WERR_CANT_CROSS_RM_BOUNDARY", WERR_CANT_CROSS_RM_BOUNDARY },
+       { "WERR_TXF_DIR_NOT_EMPTY", WERR_TXF_DIR_NOT_EMPTY },
+       { "WERR_INDOUBT_TRANSACTIONS_EXIST", WERR_INDOUBT_TRANSACTIONS_EXIST },
+       { "WERR_TM_VOLATILE", WERR_TM_VOLATILE },
+       { "WERR_ROLLBACK_TIMER_EXPIRED", WERR_ROLLBACK_TIMER_EXPIRED },
+       { "WERR_TXF_ATTRIBUTE_CORRUPT", WERR_TXF_ATTRIBUTE_CORRUPT },
+       { "WERR_EFS_NOT_ALLOWED_IN_TRANSACTION", WERR_EFS_NOT_ALLOWED_IN_TRANSACTION },
+       { "WERR_TRANSACTIONAL_OPEN_NOT_ALLOWED", WERR_TRANSACTIONAL_OPEN_NOT_ALLOWED },
+       { "WERR_LOG_GROWTH_FAILED", WERR_LOG_GROWTH_FAILED },
+       { "WERR_TRANSACTED_MAPPING_UNSUPPORTED_REMOTE", WERR_TRANSACTED_MAPPING_UNSUPPORTED_REMOTE },
+       { "WERR_TXF_METADATA_ALREADY_PRESENT", WERR_TXF_METADATA_ALREADY_PRESENT },
+       { "WERR_TRANSACTION_SCOPE_CALLBACKS_NOT_SET", WERR_TRANSACTION_SCOPE_CALLBACKS_NOT_SET },
+       { "WERR_TRANSACTION_REQUIRED_PROMOTION", WERR_TRANSACTION_REQUIRED_PROMOTION },
+       { "WERR_CANNOT_EXECUTE_FILE_IN_TRANSACTION", WERR_CANNOT_EXECUTE_FILE_IN_TRANSACTION },
+       { "WERR_TRANSACTIONS_NOT_FROZEN", WERR_TRANSACTIONS_NOT_FROZEN },
+       { "WERR_TRANSACTION_FREEZE_IN_PROGRESS", WERR_TRANSACTION_FREEZE_IN_PROGRESS },
+       { "WERR_NOT_SNAPSHOT_VOLUME", WERR_NOT_SNAPSHOT_VOLUME },
+       { "WERR_NO_SAVEPOINT_WITH_OPEN_FILES", WERR_NO_SAVEPOINT_WITH_OPEN_FILES },
+       { "WERR_DATA_LOST_REPAIR", WERR_DATA_LOST_REPAIR },
+       { "WERR_SPARSE_NOT_ALLOWED_IN_TRANSACTION", WERR_SPARSE_NOT_ALLOWED_IN_TRANSACTION },
+       { "WERR_TM_IDENTITY_MISMATCH", WERR_TM_IDENTITY_MISMATCH },
+       { "WERR_FLOATED_SECTION", WERR_FLOATED_SECTION },
+       { "WERR_CANNOT_ACCEPT_TRANSACTED_WORK", WERR_CANNOT_ACCEPT_TRANSACTED_WORK },
+       { "WERR_CANNOT_ABORT_TRANSACTIONS", WERR_CANNOT_ABORT_TRANSACTIONS },
+       { "WERR_CTX_WINSTATION_NAME_INVALID", WERR_CTX_WINSTATION_NAME_INVALID },
+       { "WERR_CTX_INVALID_PD", WERR_CTX_INVALID_PD },
+       { "WERR_CTX_PD_NOT_FOUND", WERR_CTX_PD_NOT_FOUND },
+       { "WERR_CTX_WD_NOT_FOUND", WERR_CTX_WD_NOT_FOUND },
+       { "WERR_CTX_CANNOT_MAKE_EVENTLOG_ENTRY", WERR_CTX_CANNOT_MAKE_EVENTLOG_ENTRY },
+       { "WERR_CTX_SERVICE_NAME_COLLISION", WERR_CTX_SERVICE_NAME_COLLISION },
+       { "WERR_CTX_CLOSE_PENDING", WERR_CTX_CLOSE_PENDING },
+       { "WERR_CTX_NO_OUTBUF", WERR_CTX_NO_OUTBUF },
+       { "WERR_CTX_MODEM_INF_NOT_FOUND", WERR_CTX_MODEM_INF_NOT_FOUND },
+       { "WERR_CTX_INVALID_MODEMNAME", WERR_CTX_INVALID_MODEMNAME },
+       { "WERR_CTX_MODEM_RESPONSE_ERROR", WERR_CTX_MODEM_RESPONSE_ERROR },
+       { "WERR_CTX_MODEM_RESPONSE_TIMEOUT", WERR_CTX_MODEM_RESPONSE_TIMEOUT },
+       { "WERR_CTX_MODEM_RESPONSE_NO_CARRIER", WERR_CTX_MODEM_RESPONSE_NO_CARRIER },
+       { "WERR_CTX_MODEM_RESPONSE_NO_DIALTONE", WERR_CTX_MODEM_RESPONSE_NO_DIALTONE },
+       { "WERR_CTX_MODEM_RESPONSE_BUSY", WERR_CTX_MODEM_RESPONSE_BUSY },
+       { "WERR_CTX_MODEM_RESPONSE_VOICE", WERR_CTX_MODEM_RESPONSE_VOICE },
+       { "WERR_CTX_TD_ERROR", WERR_CTX_TD_ERROR },
+       { "WERR_CTX_WINSTATION_NOT_FOUND", WERR_CTX_WINSTATION_NOT_FOUND },
+       { "WERR_CTX_WINSTATION_ALREADY_EXISTS", WERR_CTX_WINSTATION_ALREADY_EXISTS },
+       { "WERR_CTX_WINSTATION_BUSY", WERR_CTX_WINSTATION_BUSY },
+       { "WERR_CTX_BAD_VIDEO_MODE", WERR_CTX_BAD_VIDEO_MODE },
+       { "WERR_CTX_GRAPHICS_INVALID", WERR_CTX_GRAPHICS_INVALID },
+       { "WERR_CTX_LOGON_DISABLED", WERR_CTX_LOGON_DISABLED },
+       { "WERR_CTX_NOT_CONSOLE", WERR_CTX_NOT_CONSOLE },
+       { "WERR_CTX_CLIENT_QUERY_TIMEOUT", WERR_CTX_CLIENT_QUERY_TIMEOUT },
+       { "WERR_CTX_CONSOLE_DISCONNECT", WERR_CTX_CONSOLE_DISCONNECT },
+       { "WERR_CTX_CONSOLE_CONNECT", WERR_CTX_CONSOLE_CONNECT },
+       { "WERR_CTX_SHADOW_DENIED", WERR_CTX_SHADOW_DENIED },
+       { "WERR_CTX_WINSTATION_ACCESS_DENIED", WERR_CTX_WINSTATION_ACCESS_DENIED },
+       { "WERR_CTX_INVALID_WD", WERR_CTX_INVALID_WD },
+       { "WERR_CTX_SHADOW_INVALID", WERR_CTX_SHADOW_INVALID },
+       { "WERR_CTX_SHADOW_DISABLED", WERR_CTX_SHADOW_DISABLED },
+       { "WERR_CTX_CLIENT_LICENSE_IN_USE", WERR_CTX_CLIENT_LICENSE_IN_USE },
+       { "WERR_CTX_CLIENT_LICENSE_NOT_SET", WERR_CTX_CLIENT_LICENSE_NOT_SET },
+       { "WERR_CTX_LICENSE_NOT_AVAILABLE", WERR_CTX_LICENSE_NOT_AVAILABLE },
+       { "WERR_CTX_LICENSE_CLIENT_INVALID", WERR_CTX_LICENSE_CLIENT_INVALID },
+       { "WERR_CTX_LICENSE_EXPIRED", WERR_CTX_LICENSE_EXPIRED },
+       { "WERR_CTX_SHADOW_NOT_RUNNING", WERR_CTX_SHADOW_NOT_RUNNING },
+       { "WERR_CTX_SHADOW_ENDED_BY_MODE_CHANGE", WERR_CTX_SHADOW_ENDED_BY_MODE_CHANGE },
+       { "WERR_ACTIVATION_COUNT_EXCEEDED", WERR_ACTIVATION_COUNT_EXCEEDED },
+       { "WERR_CTX_WINSTATIONS_DISABLED", WERR_CTX_WINSTATIONS_DISABLED },
+       { "WERR_CTX_ENCRYPTION_LEVEL_REQUIRED", WERR_CTX_ENCRYPTION_LEVEL_REQUIRED },
+       { "WERR_CTX_SESSION_IN_USE", WERR_CTX_SESSION_IN_USE },
+       { "WERR_CTX_NO_FORCE_LOGOFF", WERR_CTX_NO_FORCE_LOGOFF },
+       { "WERR_CTX_ACCOUNT_RESTRICTION", WERR_CTX_ACCOUNT_RESTRICTION },
+       { "WERR_RDP_PROTOCOL_ERROR", WERR_RDP_PROTOCOL_ERROR },
+       { "WERR_CTX_CDM_CONNECT", WERR_CTX_CDM_CONNECT },
+       { "WERR_CTX_CDM_DISCONNECT", WERR_CTX_CDM_DISCONNECT },
+       { "WERR_CTX_SECURITY_LAYER_ERROR", WERR_CTX_SECURITY_LAYER_ERROR },
+       { "WERR_TS_INCOMPATIBLE_SESSIONS", WERR_TS_INCOMPATIBLE_SESSIONS },
+       { "WERR_FRS_ERR_INVALID_API_SEQUENCE", WERR_FRS_ERR_INVALID_API_SEQUENCE },
+       { "WERR_FRS_ERR_STARTING_SERVICE", WERR_FRS_ERR_STARTING_SERVICE },
+       { "WERR_FRS_ERR_STOPPING_SERVICE", WERR_FRS_ERR_STOPPING_SERVICE },
+       { "WERR_FRS_ERR_INTERNAL_API", WERR_FRS_ERR_INTERNAL_API },
+       { "WERR_FRS_ERR_INTERNAL", WERR_FRS_ERR_INTERNAL },
+       { "WERR_FRS_ERR_SERVICE_COMM", WERR_FRS_ERR_SERVICE_COMM },
+       { "WERR_FRS_ERR_INSUFFICIENT_PRIV", WERR_FRS_ERR_INSUFFICIENT_PRIV },
+       { "WERR_FRS_ERR_AUTHENTICATION", WERR_FRS_ERR_AUTHENTICATION },
+       { "WERR_FRS_ERR_PARENT_INSUFFICIENT_PRIV", WERR_FRS_ERR_PARENT_INSUFFICIENT_PRIV },
+       { "WERR_FRS_ERR_PARENT_AUTHENTICATION", WERR_FRS_ERR_PARENT_AUTHENTICATION },
+       { "WERR_FRS_ERR_CHILD_TO_PARENT_COMM", WERR_FRS_ERR_CHILD_TO_PARENT_COMM },
+       { "WERR_FRS_ERR_PARENT_TO_CHILD_COMM", WERR_FRS_ERR_PARENT_TO_CHILD_COMM },
+       { "WERR_FRS_ERR_SYSVOL_POPULATE", WERR_FRS_ERR_SYSVOL_POPULATE },
+       { "WERR_FRS_ERR_SYSVOL_POPULATE_TIMEOUT", WERR_FRS_ERR_SYSVOL_POPULATE_TIMEOUT },
+       { "WERR_FRS_ERR_SYSVOL_IS_BUSY", WERR_FRS_ERR_SYSVOL_IS_BUSY },
+       { "WERR_FRS_ERR_SYSVOL_DEMOTE", WERR_FRS_ERR_SYSVOL_DEMOTE },
+       { "WERR_FRS_ERR_INVALID_SERVICE_PARAMETER", WERR_FRS_ERR_INVALID_SERVICE_PARAMETER },
+       { "WERR_DS_NOT_INSTALLED", WERR_DS_NOT_INSTALLED },
+       { "WERR_DS_MEMBERSHIP_EVALUATED_LOCALLY", WERR_DS_MEMBERSHIP_EVALUATED_LOCALLY },
+       { "WERR_DS_INVALID_ATTRIBUTE_YNTAX", WERR_DS_INVALID_ATTRIBUTE_YNTAX },
+       { "WERR_DS_NO_RIDS_ALLOCATED", WERR_DS_NO_RIDS_ALLOCATED },
+       { "WERR_DS_NO_MORE_RIDS", WERR_DS_NO_MORE_RIDS },
+       { "WERR_DS_INCORRECT_ROLE_OWNER", WERR_DS_INCORRECT_ROLE_OWNER },
+       { "WERR_DS_RIDMGR_INIT_ERROR", WERR_DS_RIDMGR_INIT_ERROR },
+       { "WERR_DS_CROSS_DOM_MOVE_ERROR", WERR_DS_CROSS_DOM_MOVE_ERROR },
+       { "WERR_DS_GC_NOT_AVAILABLE", WERR_DS_GC_NOT_AVAILABLE },
+       { "WERR_SHARED_POLICY", WERR_SHARED_POLICY },
+       { "WERR_POLICY_OBJECT_NOT_FOUND", WERR_POLICY_OBJECT_NOT_FOUND },
+       { "WERR_POLICY_ONLY_IN_DS", WERR_POLICY_ONLY_IN_DS },
+       { "WERR_PROMOTION_ACTIVE", WERR_PROMOTION_ACTIVE },
+       { "WERR_NO_PROMOTION_ACTIVE", WERR_NO_PROMOTION_ACTIVE },
+       { "WERR_DS_SIZELIMIT_EXCEEDED", WERR_DS_SIZELIMIT_EXCEEDED },
+       { "WERR_DS_AUTH_UNKNOWN", WERR_DS_AUTH_UNKNOWN },
+       { "WERR_DS_IS_LEAF", WERR_DS_IS_LEAF },
+       { "WERR_DS_OBJECT_RESULTS_TOO_LARGE", WERR_DS_OBJECT_RESULTS_TOO_LARGE },
+       { "WERR_DS_SERVER_DOWN", WERR_DS_SERVER_DOWN },
+       { "WERR_DS_LOCAL_ERROR", WERR_DS_LOCAL_ERROR },
+       { "WERR_DS_ENCODING_ERROR", WERR_DS_ENCODING_ERROR },
+       { "WERR_DS_DECODING_ERROR", WERR_DS_DECODING_ERROR },
+       { "WERR_DS_FILTER_UNKNOWN", WERR_DS_FILTER_UNKNOWN },
+       { "WERR_DS_PARAM_ERROR", WERR_DS_PARAM_ERROR },
+       { "WERR_DS_NOT_SUPPORTED", WERR_DS_NOT_SUPPORTED },
+       { "WERR_DS_NO_RESULTS_RETURNED", WERR_DS_NO_RESULTS_RETURNED },
+       { "WERR_DS_CONTROL_NOT_FOUND", WERR_DS_CONTROL_NOT_FOUND },
+       { "WERR_DS_CLIENT_LOOP", WERR_DS_CLIENT_LOOP },
+       { "WERR_DS_REFERRAL_LIMIT_EXCEEDED", WERR_DS_REFERRAL_LIMIT_EXCEEDED },
+       { "WERR_DS_SORT_CONTROL_MISSING", WERR_DS_SORT_CONTROL_MISSING },
+       { "WERR_DS_OFFSET_RANGE_ERROR", WERR_DS_OFFSET_RANGE_ERROR },
+       { "WERR_DS_ROOT_MUST_BE_NC", WERR_DS_ROOT_MUST_BE_NC },
+       { "WERR_DS_ADD_REPLICA_INHIBITED", WERR_DS_ADD_REPLICA_INHIBITED },
+       { "WERR_DS_ATT_NOT_DEF_IN_SCHEMA", WERR_DS_ATT_NOT_DEF_IN_SCHEMA },
+       { "WERR_DS_MAX_OBJ_SIZE_EXCEEDED", WERR_DS_MAX_OBJ_SIZE_EXCEEDED },
+       { "WERR_DS_NO_RDN_DEFINED_IN_SCHEMA", WERR_DS_NO_RDN_DEFINED_IN_SCHEMA },
+       { "WERR_DS_RDN_DOESNT_MATCH_SCHEMA", WERR_DS_RDN_DOESNT_MATCH_SCHEMA },
+       { "WERR_DS_NO_REQUESTED_ATTS_FOUND", WERR_DS_NO_REQUESTED_ATTS_FOUND },
+       { "WERR_DS_USER_BUFFER_TO_SMALL", WERR_DS_USER_BUFFER_TO_SMALL },
+       { "WERR_DS_ATT_IS_NOT_ON_OBJ", WERR_DS_ATT_IS_NOT_ON_OBJ },
+       { "WERR_DS_ILLEGAL_MOD_OPERATION", WERR_DS_ILLEGAL_MOD_OPERATION },
+       { "WERR_DS_OBJ_TOO_LARGE", WERR_DS_OBJ_TOO_LARGE },
+       { "WERR_DS_BAD_INSTANCE_TYPE", WERR_DS_BAD_INSTANCE_TYPE },
+       { "WERR_DS_MASTERDSA_REQUIRED", WERR_DS_MASTERDSA_REQUIRED },
+       { "WERR_DS_OBJECT_CLASS_REQUIRED", WERR_DS_OBJECT_CLASS_REQUIRED },
+       { "WERR_DS_MISSING_REQUIRED_ATT", WERR_DS_MISSING_REQUIRED_ATT },
+       { "WERR_DS_ATT_NOT_DEF_FOR_CLASS", WERR_DS_ATT_NOT_DEF_FOR_CLASS },
+       { "WERR_DS_ATT_ALREADY_EXISTS", WERR_DS_ATT_ALREADY_EXISTS },
+       { "WERR_DS_CANT_ADD_ATT_VALUES", WERR_DS_CANT_ADD_ATT_VALUES },
+       { "WERR_DS_RANGE_CONSTRAINT", WERR_DS_RANGE_CONSTRAINT },
+       { "WERR_DS_ATT_VAL_ALREADY_EXISTS", WERR_DS_ATT_VAL_ALREADY_EXISTS },
+       { "WERR_DS_CANT_REM_MISSING_ATT", WERR_DS_CANT_REM_MISSING_ATT },
+       { "WERR_DS_CANT_REM_MISSING_ATT_VAL", WERR_DS_CANT_REM_MISSING_ATT_VAL },
+       { "WERR_DS_ROOT_CANT_BE_SUBREF", WERR_DS_ROOT_CANT_BE_SUBREF },
+       { "WERR_DS_NO_CHAINING", WERR_DS_NO_CHAINING },
+       { "WERR_DS_NO_CHAINED_EVAL", WERR_DS_NO_CHAINED_EVAL },
+       { "WERR_DS_NO_PARENT_OBJECT", WERR_DS_NO_PARENT_OBJECT },
+       { "WERR_DS_PARENT_IS_AN_ALIAS", WERR_DS_PARENT_IS_AN_ALIAS },
+       { "WERR_DS_CANT_MIX_MASTER_AND_REPS", WERR_DS_CANT_MIX_MASTER_AND_REPS },
+       { "WERR_DS_CHILDREN_EXIST", WERR_DS_CHILDREN_EXIST },
+       { "WERR_DS_ALIASED_OBJ_MISSING", WERR_DS_ALIASED_OBJ_MISSING },
+       { "WERR_DS_BAD_NAME_SYNTAX", WERR_DS_BAD_NAME_SYNTAX },
+       { "WERR_DS_ALIAS_POINTS_TO_ALIAS", WERR_DS_ALIAS_POINTS_TO_ALIAS },
+       { "WERR_DS_CANT_DEREF_ALIAS", WERR_DS_CANT_DEREF_ALIAS },
+       { "WERR_DS_OUT_OF_SCOPE", WERR_DS_OUT_OF_SCOPE },
+       { "WERR_DS_OBJECT_BEING_REMOVED", WERR_DS_OBJECT_BEING_REMOVED },
+       { "WERR_DS_CANT_DELETE_DSA_OBJ", WERR_DS_CANT_DELETE_DSA_OBJ },
+       { "WERR_DS_DSA_MUST_BE_INT_MASTER", WERR_DS_DSA_MUST_BE_INT_MASTER },
+       { "WERR_DS_CLASS_NOT_DSA", WERR_DS_CLASS_NOT_DSA },
+       { "WERR_DS_ILLEGAL_SUPERIOR", WERR_DS_ILLEGAL_SUPERIOR },
+       { "WERR_DS_ATTRIBUTE_OWNED_BY_SAM", WERR_DS_ATTRIBUTE_OWNED_BY_SAM },
+       { "WERR_DS_NAME_TOO_MANY_PARTS", WERR_DS_NAME_TOO_MANY_PARTS },
+       { "WERR_DS_NAME_TOO_LONG", WERR_DS_NAME_TOO_LONG },
+       { "WERR_DS_NAME_VALUE_TOO_LONG", WERR_DS_NAME_VALUE_TOO_LONG },
+       { "WERR_DS_NAME_UNPARSEABLE", WERR_DS_NAME_UNPARSEABLE },
+       { "WERR_DS_NAME_TYPE_UNKNOWN", WERR_DS_NAME_TYPE_UNKNOWN },
+       { "WERR_DS_NOT_AN_OBJECT", WERR_DS_NOT_AN_OBJECT },
+       { "WERR_DS_SEC_DESC_TOO_SHORT", WERR_DS_SEC_DESC_TOO_SHORT },
+       { "WERR_DS_SEC_DESC_INVALID", WERR_DS_SEC_DESC_INVALID },
+       { "WERR_DS_NO_DELETED_NAME", WERR_DS_NO_DELETED_NAME },
+       { "WERR_DS_SUBREF_MUST_HAVE_PARENT", WERR_DS_SUBREF_MUST_HAVE_PARENT },
+       { "WERR_DS_NCNAME_MUST_BE_NC", WERR_DS_NCNAME_MUST_BE_NC },
+       { "WERR_DS_CANT_ADD_SYSTEM_ONLY", WERR_DS_CANT_ADD_SYSTEM_ONLY },
+       { "WERR_DS_CLASS_MUST_BE_CONCRETE", WERR_DS_CLASS_MUST_BE_CONCRETE },
+       { "WERR_DS_INVALID_DMD", WERR_DS_INVALID_DMD },
+       { "WERR_DS_OBJ_GUID_EXISTS", WERR_DS_OBJ_GUID_EXISTS },
+       { "WERR_DS_NOT_ON_BACKLINK", WERR_DS_NOT_ON_BACKLINK },
+       { "WERR_DS_NO_CROSSREF_FOR_NC", WERR_DS_NO_CROSSREF_FOR_NC },
+       { "WERR_DS_SHUTTING_DOWN", WERR_DS_SHUTTING_DOWN },
+       { "WERR_DS_UNKNOWN_OPERATION", WERR_DS_UNKNOWN_OPERATION },
+       { "WERR_DS_INVALID_ROLE_OWNER", WERR_DS_INVALID_ROLE_OWNER },
+       { "WERR_DS_COULDNT_CONTACT_FSMO", WERR_DS_COULDNT_CONTACT_FSMO },
+       { "WERR_DS_CROSS_NC_DN_RENAME", WERR_DS_CROSS_NC_DN_RENAME },
+       { "WERR_DS_CANT_MOD_SYSTEM_ONLY", WERR_DS_CANT_MOD_SYSTEM_ONLY },
+       { "WERR_DS_REPLICATOR_ONLY", WERR_DS_REPLICATOR_ONLY },
+       { "WERR_DS_OBJ_CLASS_NOT_DEFINED", WERR_DS_OBJ_CLASS_NOT_DEFINED },
+       { "WERR_DS_OBJ_CLASS_NOT_SUBCLASS", WERR_DS_OBJ_CLASS_NOT_SUBCLASS },
+       { "WERR_DS_NAME_REFERENCE_INVALID", WERR_DS_NAME_REFERENCE_INVALID },
+       { "WERR_DS_CROSS_REF_EXISTS", WERR_DS_CROSS_REF_EXISTS },
+       { "WERR_DS_CANT_DEL_MASTER_CROSSREF", WERR_DS_CANT_DEL_MASTER_CROSSREF },
+       { "WERR_DS_SUBTREE_NOTIFY_NOT_NC_HEAD", WERR_DS_SUBTREE_NOTIFY_NOT_NC_HEAD },
+       { "WERR_DS_NOTIFY_FILTER_TOO_COMPLEX", WERR_DS_NOTIFY_FILTER_TOO_COMPLEX },
+       { "WERR_DS_DUP_RDN", WERR_DS_DUP_RDN },
+       { "WERR_DS_DUP_OID", WERR_DS_DUP_OID },
+       { "WERR_DS_DUP_MAPI_ID", WERR_DS_DUP_MAPI_ID },
+       { "WERR_DS_DUP_SCHEMA_ID_GUID", WERR_DS_DUP_SCHEMA_ID_GUID },
+       { "WERR_DS_DUP_LDAP_DISPLAY_NAME", WERR_DS_DUP_LDAP_DISPLAY_NAME },
+       { "WERR_DS_SEMANTIC_ATT_TEST", WERR_DS_SEMANTIC_ATT_TEST },
+       { "WERR_DS_SYNTAX_MISMATCH", WERR_DS_SYNTAX_MISMATCH },
+       { "WERR_DS_EXISTS_IN_MUST_HAVE", WERR_DS_EXISTS_IN_MUST_HAVE },
+       { "WERR_DS_EXISTS_IN_MAY_HAVE", WERR_DS_EXISTS_IN_MAY_HAVE },
+       { "WERR_DS_NONEXISTENT_MAY_HAVE", WERR_DS_NONEXISTENT_MAY_HAVE },
+       { "WERR_DS_NONEXISTENT_MUST_HAVE", WERR_DS_NONEXISTENT_MUST_HAVE },
+       { "WERR_DS_AUX_CLS_TEST_FAIL", WERR_DS_AUX_CLS_TEST_FAIL },
+       { "WERR_DS_NONEXISTENT_POSS_SUP", WERR_DS_NONEXISTENT_POSS_SUP },
+       { "WERR_DS_SUB_CLS_TEST_FAIL", WERR_DS_SUB_CLS_TEST_FAIL },
+       { "WERR_DS_BAD_RDN_ATT_ID_SYNTAX", WERR_DS_BAD_RDN_ATT_ID_SYNTAX },
+       { "WERR_DS_EXISTS_IN_AUX_CLS", WERR_DS_EXISTS_IN_AUX_CLS },
+       { "WERR_DS_EXISTS_IN_SUB_CLS", WERR_DS_EXISTS_IN_SUB_CLS },
+       { "WERR_DS_EXISTS_IN_POSS_SUP", WERR_DS_EXISTS_IN_POSS_SUP },
+       { "WERR_DS_RECALCSCHEMA_FAILED", WERR_DS_RECALCSCHEMA_FAILED },
+       { "WERR_DS_TREE_DELETE_NOT_FINISHED", WERR_DS_TREE_DELETE_NOT_FINISHED },
+       { "WERR_DS_CANT_DELETE", WERR_DS_CANT_DELETE },
+       { "WERR_DS_ATT_SCHEMA_REQ_ID", WERR_DS_ATT_SCHEMA_REQ_ID },
+       { "WERR_DS_BAD_ATT_SCHEMA_SYNTAX", WERR_DS_BAD_ATT_SCHEMA_SYNTAX },
+       { "WERR_DS_CANT_CACHE_ATT", WERR_DS_CANT_CACHE_ATT },
+       { "WERR_DS_CANT_CACHE_CLASS", WERR_DS_CANT_CACHE_CLASS },
+       { "WERR_DS_CANT_REMOVE_ATT_CACHE", WERR_DS_CANT_REMOVE_ATT_CACHE },
+       { "WERR_DS_CANT_REMOVE_CLASS_CACHE", WERR_DS_CANT_REMOVE_CLASS_CACHE },
+       { "WERR_DS_CANT_RETRIEVE_DN", WERR_DS_CANT_RETRIEVE_DN },
+       { "WERR_DS_MISSING_SUPREF", WERR_DS_MISSING_SUPREF },
+       { "WERR_DS_CANT_RETRIEVE_INSTANCE", WERR_DS_CANT_RETRIEVE_INSTANCE },
+       { "WERR_DS_CODE_INCONSISTENCY", WERR_DS_CODE_INCONSISTENCY },
+       { "WERR_DS_DATABASE_ERROR", WERR_DS_DATABASE_ERROR },
+       { "WERR_DS_MISSING_EXPECTED_ATT", WERR_DS_MISSING_EXPECTED_ATT },
+       { "WERR_DS_NCNAME_MISSING_CR_REF", WERR_DS_NCNAME_MISSING_CR_REF },
+       { "WERR_DS_SECURITY_CHECKING_ERROR", WERR_DS_SECURITY_CHECKING_ERROR },
+       { "WERR_DS_GCVERIFY_ERROR", WERR_DS_GCVERIFY_ERROR },
+       { "WERR_DS_CANT_FIND_DSA_OBJ", WERR_DS_CANT_FIND_DSA_OBJ },
+       { "WERR_DS_CANT_FIND_EXPECTED_NC", WERR_DS_CANT_FIND_EXPECTED_NC },
+       { "WERR_DS_CANT_FIND_NC_IN_CACHE", WERR_DS_CANT_FIND_NC_IN_CACHE },
+       { "WERR_DS_CANT_RETRIEVE_CHILD", WERR_DS_CANT_RETRIEVE_CHILD },
+       { "WERR_DS_SECURITY_ILLEGAL_MODIFY", WERR_DS_SECURITY_ILLEGAL_MODIFY },
+       { "WERR_DS_CANT_REPLACE_HIDDEN_REC", WERR_DS_CANT_REPLACE_HIDDEN_REC },
+       { "WERR_DS_BAD_HIERARCHY_FILE", WERR_DS_BAD_HIERARCHY_FILE },
+       { "WERR_DS_BUILD_HIERARCHY_TABLE_FAILED", WERR_DS_BUILD_HIERARCHY_TABLE_FAILED },
+       { "WERR_DS_CONFIG_PARAM_MISSING", WERR_DS_CONFIG_PARAM_MISSING },
+       { "WERR_DS_COUNTING_AB_INDICES_FAILED", WERR_DS_COUNTING_AB_INDICES_FAILED },
+       { "WERR_DS_HIERARCHY_TABLE_MALLOC_FAILED", WERR_DS_HIERARCHY_TABLE_MALLOC_FAILED },
+       { "WERR_DS_INTERNAL_FAILURE", WERR_DS_INTERNAL_FAILURE },
+       { "WERR_DS_UNKNOWN_ERROR", WERR_DS_UNKNOWN_ERROR },
+       { "WERR_DS_ROOT_REQUIRES_CLASS_TOP", WERR_DS_ROOT_REQUIRES_CLASS_TOP },
+       { "WERR_DS_REFUSING_FSMO_ROLES", WERR_DS_REFUSING_FSMO_ROLES },
+       { "WERR_DS_MISSING_FSMO_SETTINGS", WERR_DS_MISSING_FSMO_SETTINGS },
+       { "WERR_DS_UNABLE_TO_SURRENDER_ROLES", WERR_DS_UNABLE_TO_SURRENDER_ROLES },
+       { "WERR_DS_DRA_GENERIC", WERR_DS_DRA_GENERIC },
+       { "WERR_DS_DRA_BUSY", WERR_DS_DRA_BUSY },
+       { "WERR_DS_DRA_DN_EXISTS", WERR_DS_DRA_DN_EXISTS },
+       { "WERR_DS_DRA_INCONSISTENT_DIT", WERR_DS_DRA_INCONSISTENT_DIT },
+       { "WERR_DS_DRA_CONNECTION_FAILED", WERR_DS_DRA_CONNECTION_FAILED },
+       { "WERR_DS_DRA_BAD_INSTANCE_TYPE", WERR_DS_DRA_BAD_INSTANCE_TYPE },
+       { "WERR_DS_DRA_MAIL_PROBLEM", WERR_DS_DRA_MAIL_PROBLEM },
+       { "WERR_DS_DRA_REF_ALREADY_EXISTS", WERR_DS_DRA_REF_ALREADY_EXISTS },
+       { "WERR_DS_DRA_REF_NOT_FOUND", WERR_DS_DRA_REF_NOT_FOUND },
+       { "WERR_DS_DRA_OBJ_IS_REP_SOURCE", WERR_DS_DRA_OBJ_IS_REP_SOURCE },
+       { "WERR_DS_DRA_NOT_SUPPORTED", WERR_DS_DRA_NOT_SUPPORTED },
+       { "WERR_DS_DRA_RPC_CANCELLED", WERR_DS_DRA_RPC_CANCELLED },
+       { "WERR_DS_DRA_SINK_DISABLED", WERR_DS_DRA_SINK_DISABLED },
+       { "WERR_DS_DRA_NAME_COLLISION", WERR_DS_DRA_NAME_COLLISION },
+       { "WERR_DS_DRA_SOURCE_REINSTALLED", WERR_DS_DRA_SOURCE_REINSTALLED },
+       { "WERR_DS_DRA_MISSING_PARENT", WERR_DS_DRA_MISSING_PARENT },
+       { "WERR_DS_DRA_PREEMPTED", WERR_DS_DRA_PREEMPTED },
+       { "WERR_DS_DRA_ABANDON_SYNC", WERR_DS_DRA_ABANDON_SYNC },
+       { "WERR_DS_DRA_SHUTDOWN", WERR_DS_DRA_SHUTDOWN },
+       { "WERR_DS_DRA_INCOMPATIBLE_PARTIAL_SET", WERR_DS_DRA_INCOMPATIBLE_PARTIAL_SET },
+       { "WERR_DS_DRA_SOURCE_IS_PARTIAL_REPLICA", WERR_DS_DRA_SOURCE_IS_PARTIAL_REPLICA },
+       { "WERR_DS_DRA_EXTN_CONNECTION_FAILED", WERR_DS_DRA_EXTN_CONNECTION_FAILED },
+       { "WERR_DS_INSTALL_SCHEMA_MISMATCH", WERR_DS_INSTALL_SCHEMA_MISMATCH },
+       { "WERR_DS_DUP_LINK_ID", WERR_DS_DUP_LINK_ID },
+       { "WERR_DS_NAME_ERROR_RESOLVING", WERR_DS_NAME_ERROR_RESOLVING },
+       { "WERR_DS_NAME_ERROR_NOT_FOUND", WERR_DS_NAME_ERROR_NOT_FOUND },
+       { "WERR_DS_NAME_ERROR_NOT_UNIQUE", WERR_DS_NAME_ERROR_NOT_UNIQUE },
+       { "WERR_DS_NAME_ERROR_NO_MAPPING", WERR_DS_NAME_ERROR_NO_MAPPING },
+       { "WERR_DS_NAME_ERROR_DOMAIN_ONLY", WERR_DS_NAME_ERROR_DOMAIN_ONLY },
+       { "WERR_DS_NAME_ERROR_NO_SYNTACTICAL_MAPPING", WERR_DS_NAME_ERROR_NO_SYNTACTICAL_MAPPING },
+       { "WERR_DS_CONSTRUCTED_ATT_MOD", WERR_DS_CONSTRUCTED_ATT_MOD },
+       { "WERR_DS_WRONG_OM_OBJ_CLASS", WERR_DS_WRONG_OM_OBJ_CLASS },
+       { "WERR_DS_DRA_REPL_PENDING", WERR_DS_DRA_REPL_PENDING },
+       { "WERR_DS_DS_REQUIRED", WERR_DS_DS_REQUIRED },
+       { "WERR_DS_INVALID_LDAP_DISPLAY_NAME", WERR_DS_INVALID_LDAP_DISPLAY_NAME },
+       { "WERR_DS_NON_BASE_SEARCH", WERR_DS_NON_BASE_SEARCH },
+       { "WERR_DS_CANT_RETRIEVE_ATTS", WERR_DS_CANT_RETRIEVE_ATTS },
+       { "WERR_DS_BACKLINK_WITHOUT_LINK", WERR_DS_BACKLINK_WITHOUT_LINK },
+       { "WERR_DS_EPOCH_MISMATCH", WERR_DS_EPOCH_MISMATCH },
+       { "WERR_DS_SRC_NAME_MISMATCH", WERR_DS_SRC_NAME_MISMATCH },
+       { "WERR_DS_SRC_AND_DST_NC_IDENTICAL", WERR_DS_SRC_AND_DST_NC_IDENTICAL },
+       { "WERR_DS_DST_NC_MISMATCH", WERR_DS_DST_NC_MISMATCH },
+       { "WERR_DS_NOT_AUTHORITIVE_FOR_DST_NC", WERR_DS_NOT_AUTHORITIVE_FOR_DST_NC },
+       { "WERR_DS_SRC_GUID_MISMATCH", WERR_DS_SRC_GUID_MISMATCH },
+       { "WERR_DS_CANT_MOVE_DELETED_OBJECT", WERR_DS_CANT_MOVE_DELETED_OBJECT },
+       { "WERR_DS_PDC_OPERATION_IN_PROGRESS", WERR_DS_PDC_OPERATION_IN_PROGRESS },
+       { "WERR_DS_CROSS_DOMAIN_CLEANUP_REQD", WERR_DS_CROSS_DOMAIN_CLEANUP_REQD },
+       { "WERR_DS_ILLEGAL_XDOM_MOVE_OPERATION", WERR_DS_ILLEGAL_XDOM_MOVE_OPERATION },
+       { "WERR_DS_CANT_WITH_ACCT_GROUP_MEMBERSHPS", WERR_DS_CANT_WITH_ACCT_GROUP_MEMBERSHPS },
+       { "WERR_DS_NC_MUST_HAVE_NC_PARENT", WERR_DS_NC_MUST_HAVE_NC_PARENT },
+       { "WERR_DS_CR_IMPOSSIBLE_TO_VALIDATE", WERR_DS_CR_IMPOSSIBLE_TO_VALIDATE },
+       { "WERR_DS_DST_DOMAIN_NOT_NATIVE", WERR_DS_DST_DOMAIN_NOT_NATIVE },
+       { "WERR_DS_MISSING_INFRASTRUCTURE_CONTAINER", WERR_DS_MISSING_INFRASTRUCTURE_CONTAINER },
+       { "WERR_DS_CANT_MOVE_ACCOUNT_GROUP", WERR_DS_CANT_MOVE_ACCOUNT_GROUP },
+       { "WERR_DS_CANT_MOVE_RESOURCE_GROUP", WERR_DS_CANT_MOVE_RESOURCE_GROUP },
+       { "WERR_DS_INVALID_SEARCH_FLAG", WERR_DS_INVALID_SEARCH_FLAG },
+       { "WERR_DS_NO_TREE_DELETE_ABOVE_NC", WERR_DS_NO_TREE_DELETE_ABOVE_NC },
+       { "WERR_DS_COULDNT_LOCK_TREE_FOR_DELETE", WERR_DS_COULDNT_LOCK_TREE_FOR_DELETE },
+       { "WERR_DS_COULDNT_IDENTIFY_OBJECTS_FOR_TREE_DELETE", WERR_DS_COULDNT_IDENTIFY_OBJECTS_FOR_TREE_DELETE },
+       { "WERR_DS_SAM_INIT_FAILURE", WERR_DS_SAM_INIT_FAILURE },
+       { "WERR_DS_SENSITIVE_GROUP_VIOLATION", WERR_DS_SENSITIVE_GROUP_VIOLATION },
+       { "WERR_DS_CANT_MOD_PRIMARYGROUPID", WERR_DS_CANT_MOD_PRIMARYGROUPID },
+       { "WERR_DS_ILLEGAL_BASE_SCHEMA_MOD", WERR_DS_ILLEGAL_BASE_SCHEMA_MOD },
+       { "WERR_DS_NONSAFE_SCHEMA_CHANGE", WERR_DS_NONSAFE_SCHEMA_CHANGE },
+       { "WERR_DS_SCHEMA_UPDATE_DISALLOWED", WERR_DS_SCHEMA_UPDATE_DISALLOWED },
+       { "WERR_DS_CANT_CREATE_UNDER_SCHEMA", WERR_DS_CANT_CREATE_UNDER_SCHEMA },
+       { "WERR_DS_INVALID_GROUP_TYPE", WERR_DS_INVALID_GROUP_TYPE },
+       { "WERR_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN", WERR_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN },
+       { "WERR_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN", WERR_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN },
+       { "WERR_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER", WERR_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER },
+       { "WERR_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER", WERR_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER },
+       { "WERR_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER", WERR_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER },
+       { "WERR_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER", WERR_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER },
+       { "WERR_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER", WERR_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER },
+       { "WERR_DS_HAVE_PRIMARY_MEMBERS", WERR_DS_HAVE_PRIMARY_MEMBERS },
+       { "WERR_DS_STRING_SD_CONVERSION_FAILED", WERR_DS_STRING_SD_CONVERSION_FAILED },
+       { "WERR_DS_NAMING_MASTER_GC", WERR_DS_NAMING_MASTER_GC },
+       { "WERR_DS_COULDNT_UPDATE_SPNS", WERR_DS_COULDNT_UPDATE_SPNS },
+       { "WERR_DS_CANT_RETRIEVE_SD", WERR_DS_CANT_RETRIEVE_SD },
+       { "WERR_DS_KEY_NOT_UNIQUE", WERR_DS_KEY_NOT_UNIQUE },
+       { "WERR_DS_WRONG_LINKED_ATT_SYNTAX", WERR_DS_WRONG_LINKED_ATT_SYNTAX },
+       { "WERR_DS_SAM_NEED_BOOTKEY_PASSWORD", WERR_DS_SAM_NEED_BOOTKEY_PASSWORD },
+       { "WERR_DS_SAM_NEED_BOOTKEY_FLOPPY", WERR_DS_SAM_NEED_BOOTKEY_FLOPPY },
+       { "WERR_DS_CANT_START", WERR_DS_CANT_START },
+       { "WERR_DS_INIT_FAILURE", WERR_DS_INIT_FAILURE },
+       { "WERR_DS_NO_PKT_PRIVACY_ON_CONNECTION", WERR_DS_NO_PKT_PRIVACY_ON_CONNECTION },
+       { "WERR_DS_SOURCE_DOMAIN_IN_FOREST", WERR_DS_SOURCE_DOMAIN_IN_FOREST },
+       { "WERR_DS_DESTINATION_DOMAIN_NOT_IN_FOREST", WERR_DS_DESTINATION_DOMAIN_NOT_IN_FOREST },
+       { "WERR_DS_DESTINATION_AUDITING_NOT_ENABLED", WERR_DS_DESTINATION_AUDITING_NOT_ENABLED },
+       { "WERR_DS_CANT_FIND_DC_FOR_SRC_DOMAIN", WERR_DS_CANT_FIND_DC_FOR_SRC_DOMAIN },
+       { "WERR_DS_SRC_OBJ_NOT_GROUP_OR_USER", WERR_DS_SRC_OBJ_NOT_GROUP_OR_USER },
+       { "WERR_DS_SRC_SID_EXISTS_IN_FOREST", WERR_DS_SRC_SID_EXISTS_IN_FOREST },
+       { "WERR_DS_SRC_AND_DST_OBJECT_CLASS_MISMATCH", WERR_DS_SRC_AND_DST_OBJECT_CLASS_MISMATCH },
+       { "WERR_SAM_INIT_FAILURE", WERR_SAM_INIT_FAILURE },
+       { "WERR_DS_DRA_SCHEMA_INFO_SHIP", WERR_DS_DRA_SCHEMA_INFO_SHIP },
+       { "WERR_DS_DRA_SCHEMA_CONFLICT", WERR_DS_DRA_SCHEMA_CONFLICT },
+       { "WERR_DS_DRA_EARLIER_SCHEMA_CONFLICT", WERR_DS_DRA_EARLIER_SCHEMA_CONFLICT },
+       { "WERR_DS_DRA_OBJ_NC_MISMATCH", WERR_DS_DRA_OBJ_NC_MISMATCH },
+       { "WERR_DS_NC_STILL_HAS_DSAS", WERR_DS_NC_STILL_HAS_DSAS },
+       { "WERR_DS_GC_REQUIRED", WERR_DS_GC_REQUIRED },
+       { "WERR_DS_LOCAL_MEMBER_OF_LOCAL_ONLY", WERR_DS_LOCAL_MEMBER_OF_LOCAL_ONLY },
+       { "WERR_DS_NO_FPO_IN_UNIVERSAL_GROUPS", WERR_DS_NO_FPO_IN_UNIVERSAL_GROUPS },
+       { "WERR_DS_CANT_ADD_TO_GC", WERR_DS_CANT_ADD_TO_GC },
+       { "WERR_DS_NO_CHECKPOINT_WITH_PDC", WERR_DS_NO_CHECKPOINT_WITH_PDC },
+       { "WERR_DS_SOURCE_AUDITING_NOT_ENABLED", WERR_DS_SOURCE_AUDITING_NOT_ENABLED },
+       { "WERR_DS_CANT_CREATE_IN_NONDOMAIN_NC", WERR_DS_CANT_CREATE_IN_NONDOMAIN_NC },
+       { "WERR_DS_INVALID_NAME_FOR_SPN", WERR_DS_INVALID_NAME_FOR_SPN },
+       { "WERR_DS_FILTER_USES_CONTRUCTED_ATTRS", WERR_DS_FILTER_USES_CONTRUCTED_ATTRS },
+       { "WERR_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED", WERR_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED },
+       { "WERR_DS_MUST_BE_RUN_ON_DST_DC", WERR_DS_MUST_BE_RUN_ON_DST_DC },
+       { "WERR_DS_SRC_DC_MUST_BE_SP4_OR_GREATER", WERR_DS_SRC_DC_MUST_BE_SP4_OR_GREATER },
+       { "WERR_DS_CANT_TREE_DELETE_CRITICAL_OBJ", WERR_DS_CANT_TREE_DELETE_CRITICAL_OBJ },
+       { "WERR_DS_INIT_FAILURE_CONSOLE", WERR_DS_INIT_FAILURE_CONSOLE },
+       { "WERR_DS_SAM_INIT_FAILURE_CONSOLE", WERR_DS_SAM_INIT_FAILURE_CONSOLE },
+       { "WERR_DS_FOREST_VERSION_TOO_HIGH", WERR_DS_FOREST_VERSION_TOO_HIGH },
+       { "WERR_DS_DOMAIN_VERSION_TOO_HIGH", WERR_DS_DOMAIN_VERSION_TOO_HIGH },
+       { "WERR_DS_FOREST_VERSION_TOO_LOW", WERR_DS_FOREST_VERSION_TOO_LOW },
+       { "WERR_DS_DOMAIN_VERSION_TOO_LOW", WERR_DS_DOMAIN_VERSION_TOO_LOW },
+       { "WERR_DS_INCOMPATIBLE_VERSION", WERR_DS_INCOMPATIBLE_VERSION },
+       { "WERR_DS_LOW_DSA_VERSION", WERR_DS_LOW_DSA_VERSION },
+       { "WERR_DS_NO_BEHAVIOR_VERSION_IN_MIXEDDOMAIN", WERR_DS_NO_BEHAVIOR_VERSION_IN_MIXEDDOMAIN },
+       { "WERR_DS_NOT_SUPPORTED_SORT_ORDER", WERR_DS_NOT_SUPPORTED_SORT_ORDER },
+       { "WERR_DS_NAME_NOT_UNIQUE", WERR_DS_NAME_NOT_UNIQUE },
+       { "WERR_DS_MACHINE_ACCOUNT_CREATED_PRENT4", WERR_DS_MACHINE_ACCOUNT_CREATED_PRENT4 },
+       { "WERR_DS_OUT_OF_VERSION_STORE", WERR_DS_OUT_OF_VERSION_STORE },
+       { "WERR_DS_INCOMPATIBLE_CONTROLS_USED", WERR_DS_INCOMPATIBLE_CONTROLS_USED },
+       { "WERR_DS_NO_REF_DOMAIN", WERR_DS_NO_REF_DOMAIN },
+       { "WERR_DS_RESERVED_LINK_ID", WERR_DS_RESERVED_LINK_ID },
+       { "WERR_DS_LINK_ID_NOT_AVAILABLE", WERR_DS_LINK_ID_NOT_AVAILABLE },
+       { "WERR_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER", WERR_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER },
+       { "WERR_DS_MODIFYDN_DISALLOWED_BY_INSTANCE_TYPE", WERR_DS_MODIFYDN_DISALLOWED_BY_INSTANCE_TYPE },
+       { "WERR_DS_NO_OBJECT_MOVE_IN_SCHEMA_NC", WERR_DS_NO_OBJECT_MOVE_IN_SCHEMA_NC },
+       { "WERR_DS_MODIFYDN_DISALLOWED_BY_FLAG", WERR_DS_MODIFYDN_DISALLOWED_BY_FLAG },
+       { "WERR_DS_MODIFYDN_WRONG_GRANDPARENT", WERR_DS_MODIFYDN_WRONG_GRANDPARENT },
+       { "WERR_DS_NAME_ERROR_TRUST_REFERRAL", WERR_DS_NAME_ERROR_TRUST_REFERRAL },
+       { "WERR_NOT_SUPPORTED_ON_STANDARD_SERVER", WERR_NOT_SUPPORTED_ON_STANDARD_SERVER },
+       { "WERR_DS_CANT_ACCESS_REMOTE_PART_OF_AD", WERR_DS_CANT_ACCESS_REMOTE_PART_OF_AD },
+       { "WERR_DS_CR_IMPOSSIBLE_TO_VALIDATE_V2", WERR_DS_CR_IMPOSSIBLE_TO_VALIDATE_V2 },
+       { "WERR_DS_THREAD_LIMIT_EXCEEDED", WERR_DS_THREAD_LIMIT_EXCEEDED },
+       { "WERR_DS_NOT_CLOSEST", WERR_DS_NOT_CLOSEST },
+       { "WERR_DS_SINGLE_USER_MODE_FAILED", WERR_DS_SINGLE_USER_MODE_FAILED },
+       { "WERR_DS_NTDSCRIPT_SYNTAX_ERROR", WERR_DS_NTDSCRIPT_SYNTAX_ERROR },
+       { "WERR_DS_NTDSCRIPT_PROCESS_ERROR", WERR_DS_NTDSCRIPT_PROCESS_ERROR },
+       { "WERR_DS_DIFFERENT_REPL_EPOCHS", WERR_DS_DIFFERENT_REPL_EPOCHS },
+       { "WERR_DS_DRS_EXTENSIONS_CHANGED", WERR_DS_DRS_EXTENSIONS_CHANGED },
+       { "WERR_DS_REPLICA_SET_CHANGE_NOT_ALLOWED_ON_DISABLED_CR", WERR_DS_REPLICA_SET_CHANGE_NOT_ALLOWED_ON_DISABLED_CR },
+       { "WERR_DS_EXISTS_IN_RDNATTID", WERR_DS_EXISTS_IN_RDNATTID },
+       { "WERR_DS_AUTHORIZATION_FAILED", WERR_DS_AUTHORIZATION_FAILED },
+       { "WERR_DS_INVALID_SCRIPT", WERR_DS_INVALID_SCRIPT },