diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2007-11-21 13:07:16 +0100 |
---|---|---|
committer | Stefan Metzmacher <metze@samba.org> | 2007-12-21 05:45:59 +0100 |
commit | 39adc2418a0586261c6c4aea36f72596c6cf8897 (patch) | |
tree | 279396139bc8648aee80b0ae32b9ff7a23157593 /source4 | |
parent | f2b9a9ae11f43e4c283a151ca6d2d72f3e4d2283 (diff) | |
download | samba-39adc2418a0586261c6c4aea36f72596c6cf8897.tar.gz samba-39adc2418a0586261c6c4aea36f72596c6cf8897.tar.bz2 samba-39adc2418a0586261c6c4aea36f72596c6cf8897.zip |
r26088: Import some native-python python modules and move original python swig torture code to common python directory as well.
(This used to be commit cbf656ff054ab2b0b5ca81e1d4f16ac54c8098f1)
Diffstat (limited to 'source4')
21 files changed, 480 insertions, 683 deletions
diff --git a/source4/lib/ldb/ldb.i b/source4/lib/ldb/ldb.i index 9a55327a07..b37082af38 100644 --- a/source4/lib/ldb/ldb.i +++ b/source4/lib/ldb/ldb.i @@ -553,8 +553,8 @@ int ldb_valid_attr_name(const char *s); typedef unsigned long time_t; -%{ -char *timestring(time_t t) +%inline %{ +static char *timestring(time_t t) { char *tresult = ldb_timestring(NULL, t); char *result = strdup(tresult); @@ -562,7 +562,6 @@ char *timestring(time_t t) return result; } %} -char *timestring(time_t t); %rename(string_to_time) ldb_string_to_time; time_t ldb_string_to_time(const char *s); diff --git a/source4/libcli/util/errors.i b/source4/libcli/util/errors.i index 61cb7a090a..d51c9e0ded 100644 --- a/source4/libcli/util/errors.i +++ b/source4/libcli/util/errors.i @@ -36,4 +36,15 @@ } }; +%typemap(in) NTSTATUS { + if (PyLong_Check($input)) + $1 = NT_STATUS(PyLong_AsUnsignedLong($input)); + else if (PyInt_Check($input)) + $1 = NT_STATUS(PyInt_AsLong($input)); + else { + PyErr_SetString(PyExc_TypeError, "Expected a long or an int"); + return NULL; + } +} + #endif diff --git a/source4/main.mk b/source4/main.mk index a4c9764eb5..6080ab947d 100644 --- a/source4/main.mk +++ b/source4/main.mk @@ -29,7 +29,7 @@ include librpc/config.mk include client/config.mk include libcli/config.mk include scripting/ejs/config.mk -include scripting/swig/config.mk +include scripting/python/config.mk include kdc/config.mk DEFAULT_HEADERS = $(srcdir)/lib/util/dlinklist.h \ diff --git a/source4/scripting/python/config.mk b/source4/scripting/python/config.mk new file mode 100644 index 0000000000..1c9ffb20ac --- /dev/null +++ b/source4/scripting/python/config.mk @@ -0,0 +1,35 @@ +[PYTHON::python_param] +PRIVATE_DEPENDENCIES = LIBSAMBA-CONFIG +OBJ_FILES = parammodule.o + +[PYTHON::python_uuid] +PRIVATE_DEPENDENCIES = LIBNDR +OBJ_FILES = uuidmodule.o + +[PYTHON::python_sid] +PRIVATE_DEPENDENCIES = LIBNDR +OBJ_FILES = sidmodule.o + +[PYTHON::python_misc] +PRIVATE_DEPENDENCIES = LIBNDR LIBLDB +SWIG_FILE = misc.i + +# Swig extensions +swig: pythonmods + +.SUFFIXES: _wrap.c .i + +.i_wrap.c: + swig -Wall -I$(srcdir)/scripting/swig -python $< + +clean:: + @echo "Removing SWIG output files" + @-rm -f bin/python/* + # FIXME: Remove _wrap.c files + # +pythonmods: $(PYTHON_DSOS) + +PYDOCTOR_MODULES=bin/python/ldb.py bin/python/auth.py bin/python/credentials.py bin/python/registry.py + +pydoctor:: pythonmods + LD_LIBRARY_PATH=bin/shared PYTHONPATH=bin/python pydoctor --make-html --docformat=restructuredtext --add-package scripting/python/samba/ $(addprefix --add-module , $(PYDOCTOR_MODULES)) diff --git a/source4/scripting/python/misc.i b/source4/scripting/python/misc.i new file mode 100644 index 0000000000..088522320e --- /dev/null +++ b/source4/scripting/python/misc.i @@ -0,0 +1,32 @@ +/* + Unix SMB/CIFS implementation. + Copyright (C) Jelmer Vernooij <jelmer@samba.org> 2007 + + 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/>. +*/ + +%module(package="samba.misc") misc + +%{ +#include "includes.h" +#include "ldb.h" +#include "auth/credentials/credentials.h" +%} + +%import "stdint.i" +%import "../../lib/talloc/talloc.i" + +%rename(random_password) generate_random_str; +char *generate_random_str(TALLOC_CTX *mem_ctx, size_t len); + diff --git a/source4/scripting/python/parammodule.c b/source4/scripting/python/parammodule.c new file mode 100644 index 0000000000..38d312cf1d --- /dev/null +++ b/source4/scripting/python/parammodule.c @@ -0,0 +1,182 @@ +/* + Unix SMB/CIFS implementation. + + Python wrapper for reading smb.conf files + + Copyright (C) Jelmer Vernooij 2007 + + 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 2 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, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + +#include "includes.h" +#include "scripting/python/talloc.h" +#include "Python.h" +#include "param/param.h" + +staticforward PyTypeObject param_ParamFileType; + +typedef struct { + PyObject_HEAD + struct param_context *param_ctx; +} param_ParamFileObject; + +static param_ParamFileObject *py_param_init(void) +{ + param_ParamFileObject *param; + + param = PyObject_New(param_ParamFileObject, ¶m_ParamFileType); + + param->param_ctx = param_init(NULL); + + return param; +} + +static PyObject *py_param_load(PyObject *self, PyObject *args) +{ + char *filename = NULL; + param_ParamFileObject *param; + + if (!PyArg_ParseTuple(args, "|s:new", &filename)) + return NULL; + + param = py_param_init(); + + if (filename != NULL) { + int ret = param_read(param->param_ctx, filename); + + if (ret == -1) { + PyErr_SetString(PyExc_TypeError, "reading file failed"); + return NULL; + } + } + + return (PyObject *)param; +} + +static void +param_dealloc(PyObject* self) +{ + PyObject_Del(self); +} + +static PyObject *py_param_get(PyObject *_self, PyObject *args) +{ + struct param_opt *param; + const char *section_name = NULL, *param_name = NULL; + param_ParamFileObject *self = (param_ParamFileObject *)_self; + + if (!PyArg_ParseTuple(args, (char *)"s|s", ¶m_name, §ion_name)) + return NULL; + + param = param_get(self->param_ctx, section_name, param_name); + if (param == NULL) + return Py_None; + + return PyString_FromString(param->value); +} + +static PyObject *py_param_set(PyObject *_self, PyObject *args) +{ + param_ParamFileObject *self = (param_ParamFileObject *)_self; + const char *section_name = NULL, *param_name = NULL, *param_value = NULL; + + if (!PyArg_ParseTuple(args, "ss|s", ¶m_name, ¶m_value, §ion_name)) + return NULL; + + if (section_name == NULL) + section_name = GLOBAL_NAME; + + if (param_set_string(self->param_ctx, section_name, param_name, param_value) != 0) { + PyErr_SetString(PyExc_TypeError, "setting variable failed"); + return NULL; + } + + return Py_None; +} + +static PyObject *py_param_save(PyObject *_self, PyObject *args) +{ + param_ParamFileObject *self = (param_ParamFileObject *)_self; + const char *filename = NULL; + + if (!PyArg_ParseTuple(args, "s", &filename)) + return NULL; + + if (param_write(self->param_ctx, filename) != 0) { + PyErr_SetString(PyExc_TypeError, "unable to save"); + return NULL; + } + + return Py_None; +} + +static PyObject *py_param_use(PyObject *_self, PyObject *args) +{ + param_ParamFileObject *self = (param_ParamFileObject *)_self; + + if (!PyArg_ParseTuple(args, "")) + return NULL; + + if (param_use(global_loadparm, self->param_ctx) != 0) { + PyErr_SetString(PyExc_TypeError, "unable to use"); + return NULL; + } + + return Py_None; +} + +static PyMethodDef param_methods[] = { + {"get", (PyCFunction)py_param_get, METH_VARARGS, + "Get a parameter."}, + {"set", (PyCFunction)py_param_set, METH_VARARGS, + "Set a parameter."}, + {"save", (PyCFunction)py_param_save, METH_VARARGS, + "Save file" }, + {"use", (PyCFunction)py_param_use, METH_VARARGS, + "Use param file" }, + {NULL, NULL, 0, NULL} +}; + +static PyObject * +param_getattr(PyTypeObject *obj, char *name) +{ + return Py_FindMethod(param_methods, (PyObject *)obj, name); +} + +static PyTypeObject param_ParamFileType = { + PyObject_HEAD_INIT(NULL) 0, + .tp_name = "ParamFile", + .tp_basicsize = sizeof(param_ParamFileObject), + .tp_dealloc = param_dealloc, + .tp_getattr = param_getattr, +}; + + +static PyMethodDef methods[] = { + { "ParamFile", (PyCFunction)py_param_load, METH_VARARGS, NULL}, + { NULL, NULL } +}; + +PyDoc_STRVAR(param_doc, "Simple wrappers around the smb.conf parsers"); + +PyMODINIT_FUNC initparam(void) +{ + PyObject *mod = Py_InitModule3("param", methods, param_doc); + if (mod == NULL) + return; + + PyModule_AddObject(mod, "configfile", + PyString_FromString(lp_configfile(global_loadparm))); +} diff --git a/source4/scripting/python/samba/__init__.py b/source4/scripting/python/samba/__init__.py new file mode 100644 index 0000000000..46d8ff7d37 --- /dev/null +++ b/source4/scripting/python/samba/__init__.py @@ -0,0 +1,57 @@ +#!/usr/bin/python + +# Unix SMB/CIFS implementation. +# Copyright (C) Andrew Tridgell <tridge@samba.org> 2005 +# Copyright (C) Jelmer Vernooij <jelmer@samba.org> 2007 +# +# 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/>. +# + +import os +from misc import ldb_set_credentials + +def Ldb(url, session_info=None, credentials=None, modules_dir=None): + """Open a Samba Ldb file. + + This is different from a regular Ldb file in that the Samba-specific + modules-dir is used by default and that credentials and session_info + can be passed through (required by some modules). + """ + import ldb + ret = ldb.Ldb() + if modules_dir is None: + modules_dir = os.path.join(os.getcwd(), "bin", "modules", "ldb") + ret.set_modules_dir(modules_dir) + def samba_debug(level,text): + print "%d %s" % (level, text) + ldb_set_opaque("credentials", credentials) + ret.set_opaque("sessionInfo", session_info) + #ret.set_debug(samba_debug) + ret.connect(url) + return ret + + +def substitute_var(text, values): + """substitute strings of the form ${NAME} in str, replacing + with substitutions from subobj. + + :param text: Text in which to subsitute. + :param values: Dictionary with keys and values. + """ + + for (name, value) in values.items(): + text = text.replace("${%s}" % name, value) + + return text + diff --git a/source4/scripting/python/samba/getopt.py b/source4/scripting/python/samba/getopt.py new file mode 100644 index 0000000000..8143dcafdb --- /dev/null +++ b/source4/scripting/python/samba/getopt.py @@ -0,0 +1,46 @@ +#!/usr/bin/python + +# Samba-specific bits for optparse +# Copyright (C) Jelmer Vernooij <jelmer@samba.org> 2007 +# +# 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/>. +# + +import optparse +from credentials import Credentials + +class SambaOptions(optparse.OptionGroup): + def __init__(self, parser): + optparse.OptionGroup.__init__(self, parser, "Samba Common Options") + self.add_option("--configfile", type="string", metavar="FILE", + help="Configuration file") + + +class VersionOptions(optparse.OptionGroup): + def __init__(self, parser): + optparse.OptionGroup.__init__(self, parser, "Version Options") + + +class CredentialsOptions(optparse.OptionGroup): + def __init__(self, parser): + optparse.OptionGroup.__init__(self, parser, "Credentials Options") + self.add_option("--simple-bind-dn", type="string", metavar="DN", + help="DN to use for a simple bind") + self.add_option("--password", type="string", metavar="PASSWORD", + help="Password") + + def get_credentials(self): + creds = Credentials() + # FIXME: Update + return creds diff --git a/source4/scripting/swig/samr.py b/source4/scripting/python/samba/samr.py index 314f78b8ad..314f78b8ad 100644 --- a/source4/scripting/swig/samr.py +++ b/source4/scripting/python/samba/samr.py diff --git a/source4/scripting/swig/torture/pytorture b/source4/scripting/python/samba/torture/pytorture index e0123447e8..e0123447e8 100755 --- a/source4/scripting/swig/torture/pytorture +++ b/source4/scripting/python/samba/torture/pytorture diff --git a/source4/scripting/swig/torture/spoolss.py b/source4/scripting/python/samba/torture/spoolss.py index a75385e079..a75385e079 100644 --- a/source4/scripting/swig/torture/spoolss.py +++ b/source4/scripting/python/samba/torture/spoolss.py diff --git a/source4/scripting/swig/torture/torture_samr.py b/source4/scripting/python/samba/torture/torture_samr.py index 15c6dc1a76..15c6dc1a76 100755 --- a/source4/scripting/swig/torture/torture_samr.py +++ b/source4/scripting/python/samba/torture/torture_samr.py diff --git a/source4/scripting/swig/torture/torture_tdb.py b/source4/scripting/python/samba/torture/torture_tdb.py index 7f97caf6cb..7f97caf6cb 100755 --- a/source4/scripting/swig/torture/torture_tdb.py +++ b/source4/scripting/python/samba/torture/torture_tdb.py diff --git a/source4/scripting/swig/torture/winreg.py b/source4/scripting/python/samba/torture/winreg.py index eb60b9847e..eb60b9847e 100755 --- a/source4/scripting/swig/torture/winreg.py +++ b/source4/scripting/python/samba/torture/winreg.py diff --git a/source4/scripting/python/sidmodule.c b/source4/scripting/python/sidmodule.c new file mode 100644 index 0000000000..2b3f152e9b --- /dev/null +++ b/source4/scripting/python/sidmodule.c @@ -0,0 +1,57 @@ +/* + Unix SMB/CIFS implementation. + Samba utility functions + Copyright (C) Jelmer Vernooij <jelmer@samba.org> 2007 + + 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 "scripting/python/talloc.h" +#include "Python.h" +#include "libcli/security/security.h" + +static PyObject *sid_random(PyObject *self, PyObject *args) +{ + char *str; + + if (!PyArg_ParseTuple(args, "")) + return NULL; + + str = talloc_asprintf(NULL, "S-1-5-21-%u-%u-%u", + (unsigned)generate_random(), + (unsigned)generate_random(), + (unsigned)generate_random()); + + if (str == NULL) { + PyErr_SetString(PyExc_TypeError, "can't generate random sid"); + return NULL; + } + + return PyString_FromString(str); +} + +static PyMethodDef methods[] = { + { "random", (PyCFunction)sid_random, METH_VARARGS, NULL}, + { NULL, NULL } +}; + +PyDoc_STRVAR(param_doc, "SID helper routines"); + +PyMODINIT_FUNC initsid(void) +{ + PyObject *mod = Py_InitModule3("sid", methods, param_doc); + if (mod == NULL) + return; +} diff --git a/source4/scripting/python/uuidmodule.c b/source4/scripting/python/uuidmodule.c new file mode 100644 index 0000000000..9ae432dfa5 --- /dev/null +++ b/source4/scripting/python/uuidmodule.c @@ -0,0 +1,57 @@ +/* + Unix SMB/CIFS implementation. + Samba utility functions + Copyright (C) Jelmer Vernooij <jelmer@samba.org> 2007 + + 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 "Python.h" +#include "librpc/ndr/libndr.h" + +static PyObject *uuid_random(PyObject *self, PyObject *args) +{ + struct GUID guid; + char *str; + + if (!PyArg_ParseTuple(args, "")) + return NULL; + + guid = GUID_random(); + + str = GUID_string(NULL, &guid); + if (str == NULL) { + PyErr_SetString(PyExc_TypeError, "can't convert uuid to string"); + return NULL; + } + + talloc_free(str); + + return PyString_FromString(str); +} + +static PyMethodDef methods[] = { + { "random", (PyCFunction)uuid_random, METH_VARARGS, NULL}, + { NULL, NULL } +}; + +PyDoc_STRVAR(param_doc, "UUID helper routines"); + +PyMODINIT_FUNC inituuid(void) +{ + PyObject *mod = Py_InitModule3("uuid", methods, param_doc); + if (mod == NULL) + return; +} diff --git a/source4/scripting/swig/README b/source4/scripting/swig/README deleted file mode 100644 index 38b95b28f4..0000000000 --- a/source4/scripting/swig/README +++ /dev/null @@ -1,20 +0,0 @@ -README for Samba SWIG Python extensions ---------------------------------------- - -Instructions for building: - -1. Run configure with the --with-python option to enable python - extensions. - -2. Run 'make idl_full swig' to build extensions. - -3. At some stage there will be a proper system for installing the - extensions, but right now it's easier to run them in place. Set - your PYTHONPATH to include the modules. From the Samba source - directory, run: - - export PYTHONPATH=`pwd`/scripting/swig - -Now you can go nuts and use the extensions. Check the -scripting/swig/torture directory for a testsuite. There will -hopefully be a bunch of usage examples somewhere. diff --git a/source4/scripting/swig/config.m4 b/source4/scripting/swig/config.m4 deleted file mode 100644 index 9988399f70..0000000000 --- a/source4/scripting/swig/config.m4 +++ /dev/null @@ -1,29 +0,0 @@ -dnl # Scripting subsystem - -# Check for python support - -PYTHON= - -AC_ARG_WITH(python, -[ --with-python=PYTHONNAME build Python libraries], -[ case "${withval-python}" in - yes) - PYTHON=python - ;; - no) - PYTHON= - ;; - *) - PYTHON=${withval-python} - ;; - esac ]) - -if test x"$PYTHON" != "x"; then - incdir=`python -c 'import sys; print "%s/include/python%d.%d" % (sys.prefix, sys.version_info[[0]], sys.version_info[[1]])'` - CPPFLAGS="$CPPFLAGS -I $incdir" -else - SMB_ENABLE(swig_dcerpc, NO) -fi - -AC_SUBST(PYTHON) - diff --git a/source4/scripting/swig/config.mk b/source4/scripting/swig/config.mk deleted file mode 100644 index 193e84b255..0000000000 --- a/source4/scripting/swig/config.mk +++ /dev/null @@ -1,19 +0,0 @@ -# Swig extensions -swig: pythonmods - -pythonmods: $(PYTHON_DSOS) - -.SUFFIXES: _wrap.c .i - -.i_wrap.c: - swig -Wall -I$(srcdir)/scripting/swig -python $< - -clean:: - @echo "Removing SWIG output files" - @-rm -f bin/python/* - # FIXME: Remove _wrap.c files - -PYDOCTOR_MODULES=bin/python/ldb.py bin/python/auth.py bin/python/credentials.py bin/python/registry.py - -pydoctor:: - LD_LIBRARY_PATH=bin/shared PYTHONPATH=bin/python pydoctor --make-html --docformat=restructedtext --add-package scripting/python/samba/ $(addprefix --add-module , $(PYDOCTOR_MODULES)) diff --git a/source4/scripting/swig/samba.i b/source4/scripting/swig/samba.i deleted file mode 100644 index fe83ae3da9..0000000000 --- a/source4/scripting/swig/samba.i +++ /dev/null @@ -1,57 +0,0 @@ -/* - Unix SMB/CIFS implementation. - - Common swig definitions - - Copyright (C) 2004 Tim Potter <tpot@samba.org> - - ** NOTE! The following LGPL license applies to the swig - ** definitions. This does NOT imply that all of Samba is released - ** under the LGPL - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 3 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, see <http://www.gnu.org/licenses/>. -*/ - -%typemap(in) NTSTATUS { - if (PyLong_Check($input)) - $1 = NT_STATUS(PyLong_AsUnsignedLong($input)); - else if (PyInt_Check($input)) - $1 = NT_STATUS(PyInt_AsLong($input)); - else { - PyErr_SetString(PyExc_TypeError, "Expected a long or an int"); - return NULL; - } -} - -%typemap(in) struct cli_credentials * { - $1 = cli_credentials_init(arg1); - if ($input == Py_None) { - cli_credentials_set_anonymous($1); - } else { - if (!PyTuple_Check($input) || - PyTuple_Size($input) != 3) { - PyErr_SetString(PyExc_TypeError, "Expecting three element tuple"); - return NULL; - } - if (!PyString_Check(PyTuple_GetItem($input, 0)) || - !PyString_Check(PyTuple_GetItem($input, 1)) || - !PyString_Check(PyTuple_GetItem($input, 2))) { - PyErr_SetString(PyExc_TypeError, "Expecting string elements"); - return NULL; - } - cli_credentials_set_domain($1, PyString_AsString(PyTuple_GetItem($input, 0)), CRED_SPECIFIED); - cli_credentials_set_username($1, PyString_AsString(PyTuple_GetItem($input, 1)), CRED_SPECIFIED); - cli_credentials_set_password($1, PyString_AsString(PyTuple_GetItem($input, 2)), CRED_SPECIFIED); - } -} diff --git a/source4/scripting/swig/status_codes.i b/source4/scripting/swig/status_codes.i deleted file mode 100644 index cf13ac9852..0000000000 --- a/source4/scripting/swig/status_codes.i +++ /dev/null @@ -1,554 +0,0 @@ -/* Win32 status codes */ - -#define STATUS_BUFFER_OVERFLOW 0x80000005 -#define STATUS_NO_MORE_FILES 0x80000006 -#define NT_STATUS_NO_MORE_ENTRIES 0x8000001a - -#define STATUS_MORE_ENTRIES 0x0105 -#define STATUS_SOME_UNMAPPED 0x0107 -#define ERROR_INVALID_PARAMETER 0x0057 -#define ERROR_INSUFFICIENT_BUFFER 0x007a -#define STATUS_NOTIFY_ENUM_DIR 0x010c -#define ERROR_INVALID_DATATYPE 0x070c - -/* NT status codes */ - -#define NT_STATUS_OK 0x00000000 -#define NT_STATUS_UNSUCCESSFUL 0xC0000001 -#define NT_STATUS_NOT_IMPLEMENTED 0xC0000002 -#define NT_STATUS_INVALID_INFO_CLASS 0xC0000003 -#define NT_STATUS_INFO_LENGTH_MISMATCH 0xC0000004 -#define NT_STATUS_ACCESS_VIOLATION 0xC0000005 -#define NT_STATUS_IN_PAGE_ERROR 0xC0000006 -#define NT_STATUS_PAGEFILE_QUOTA 0xC0000007 -#define NT_STATUS_INVALID_HANDLE 0xC0000008 -#define NT_STATUS_BAD_INITIAL_STACK 0xC0000009 -#define NT_STATUS_BAD_INITIAL_PC 0xC000000a -#define NT_STATUS_INVALID_CID 0xC000000b -#define NT_STATUS_TIMER_NOT_CANCELED 0xC000000c -#define NT_STATUS_INVALID_PARAMETER 0xC000000d -#define NT_STATUS_NO_SUCH_DEVICE 0xC000000e -#define NT_STATUS_NO_SUCH_FILE 0xC000000f -#define NT_STATUS_INVALID_DEVICE_REQUEST 0xC0000010 -#define NT_STATUS_END_OF_FILE 0xC0000011 -#define NT_STATUS_WRONG_VOLUME 0xC0000012 -#define NT_STATUS_NO_MEDIA_IN_DEVICE 0xC0000013 -#define NT_STATUS_UNRECOGNIZED_MEDIA 0xC0000014 -#define NT_STATUS_NONEXISTENT_SECTOR 0xC0000015 -#define NT_STATUS_MORE_PROCESSING_REQUIRED 0xC0000016 -#define NT_STATUS_NO_MEMORY 0xC0000017 -#define NT_STATUS_CONFLICTING_ADDRESSES 0xC0000018 -#define NT_STATUS_NOT_MAPPED_VIEW 0xC0000019 -#define NT_STATUS_UNABLE_TO_FREE_VM 0xC000001a -#define NT_STATUS_UNABLE_TO_DELETE_SECTION 0xC000001b -#define NT_STATUS_INVALID_SYSTEM_SERVICE 0xC000001c -#define NT_STATUS_ILLEGAL_INSTRUCTION 0xC000001d -#define NT_STATUS_INVALID_LOCK_SEQUENCE 0xC000001e -#define NT_STATUS_INVALID_VIEW_SIZE 0xC000001f -#define NT_STATUS_INVALID_FILE_FOR_SECTION 0xC0000020 -#define NT_STATUS_ALREADY_COMMITTED 0xC0000021 -#define NT_STATUS_ACCESS_DENIED 0xC0000022 -#define NT_STATUS_BUFFER_TOO_SMALL 0xC0000023 -#define NT_STATUS_OBJECT_TYPE_MISMATCH 0xC0000024 -#define NT_STATUS_NONCONTINUABLE_EXCEPTION 0xC0000025 -#define NT_STATUS_INVALID_DISPOSITION 0xC0000026 -#define NT_STATUS_UNWIND 0xC0000027 -#define NT_STATUS_BAD_STACK 0xC0000028 -#define NT_STATUS_INVALID_UNWIND_TARGET 0xC0000029 -#define NT_STATUS_NOT_LOCKED 0xC000002a -#define NT_STATUS_PARITY_ERROR 0xC000002b -#define NT_STATUS_UNABLE_TO_DECOMMIT_VM 0xC000002c -#define NT_STATUS_NOT_COMMITTED 0xC000002d -#define NT_STATUS_INVALID_PORT_ATTRIBUTES 0xC000002e -#define NT_STATUS_PORT_MESSAGE_TOO_LONG 0xC000002f -#define NT_STATUS_INVALID_PARAMETER_MIX 0xC0000030 -#define NT_STATUS_INVALID_QUOTA_LOWER 0xC0000031 -#define NT_STATUS_DISK_CORRUPT_ERROR 0xC0000032 -#define NT_STATUS_OBJECT_NAME_INVALID 0xC0000033 -#define NT_STATUS_OBJECT_NAME_NOT_FOUND 0xC0000034 -#define NT_STATUS_OBJECT_NAME_COLLISION 0xC0000035 -#define NT_STATUS_HANDLE_NOT_WAITABLE 0xC0000036 -#define NT_STATUS_PORT_DISCONNECTED 0xC0000037 -#define NT_STATUS_DEVICE_ALREADY_ATTACHED 0xC0000038 -#define NT_STATUS_OBJECT_PATH_INVALID 0xC0000039 -#define NT_STATUS_OBJECT_PATH_NOT_FOUND 0xC000003a -#define NT_STATUS_OBJECT_PATH_SYNTAX_BAD 0xC000003b -#define NT_STATUS_DATA_OVERRUN 0xC000003c -#define NT_STATUS_DATA_LATE_ERROR 0xC000003d -#define NT_STATUS_DATA_ERROR 0xC000003e -#define NT_STATUS_CRC_ERROR 0xC000003f -#define NT_STATUS_SECTION_TOO_BIG 0xC0000040 -#define NT_STATUS_PORT_CONNECTION_REFUSED 0xC0000041 -#define NT_STATUS_INVALID_PORT_HANDLE 0xC0000042 -#define NT_STATUS_SHARING_VIOLATION 0xC0000043 -#define NT_STATUS_QUOTA_EXCEEDED 0xC0000044 -#define NT_STATUS_INVALID_PAGE_PROTECTION 0xC0000045 -#define NT_STATUS_MUTANT_NOT_OWNED 0xC0000046 -#define NT_STATUS_SEMAPHORE_LIMIT_EXCEEDED 0xC0000047 -#define NT_STATUS_PORT_ALREADY_SET 0xC0000048 -#define NT_STATUS_SECTION_NOT_IMAGE 0xC0000049 -#define NT_STATUS_SUSPEND_COUNT_EXCEEDED 0xC000004a -#define NT_STATUS_THREAD_IS_TERMINATING 0xC000004b -#define NT_STATUS_BAD_WORKING_SET_LIMIT 0xC000004c -#define NT_STATUS_INCOMPATIBLE_FILE_MAP 0xC000004d -#define NT_STATUS_SECTION_PROTECTION 0xC000004e -#define NT_STATUS_EAS_NOT_SUPPORTED 0xC000004f -#define NT_STATUS_EA_TOO_LARGE 0xC0000050 -#define NT_STATUS_NONEXISTENT_EA_ENTRY 0xC0000051 -#define NT_STATUS_NO_EAS_ON_FILE 0xC0000052 -#define NT_STATUS_EA_CORRUPT_ERROR 0xC0000053 -#define NT_STATUS_FILE_LOCK_CONFLICT 0xC0000054 -#define NT_STATUS_LOCK_NOT_GRANTED 0xC0000055 -#define NT_STATUS_DELETE_PENDING 0xC0000056 -#define NT_STATUS_CTL_FILE_NOT_SUPPORTED 0xC0000057 -#define NT_STATUS_UNKNOWN_REVISION 0xC0000058 -#define NT_STATUS_REVISION_MISMATCH 0xC0000059 -#define NT_STATUS_INVALID_OWNER 0xC000005a -#define NT_STATUS_INVALID_PRIMARY_GROUP 0xC000005b -#define NT_STATUS_NO_IMPERSONATION_TOKEN 0xC000005c -#define NT_STATUS_CANT_DISABLE_MANDATORY 0xC000005d -#define NT_STATUS_NO_LOGON_SERVERS 0xC000005e -#define NT_STATUS_NO_SUCH_LOGON_SESSION 0xC000005f -#define NT_STATUS_NO_SUCH_PRIVILEGE 0xC0000060 -#define NT_STATUS_PRIVILEGE_NOT_HELD 0xC0000061 -#define NT_STATUS_INVALID_ACCOUNT_NAME 0xC0000062 -#define NT_STATUS_USER_EXISTS 0xC0000063 -#define NT_STATUS_NO_SUCH_USER 0xC0000064 -#define NT_STATUS_GROUP_EXISTS 0xC0000065 -#define NT_STATUS_NO_SUCH_GROUP 0xC0000066 -#define NT_STATUS_MEMBER_IN_GROUP 0xC0000067 -#define NT_STATUS_MEMBER_NOT_IN_GROUP 0xC0000068 -#define NT_STATUS_LAST_ADMIN 0xC0000069 -#define NT_STATUS_WRONG_PASSWORD 0xC000006a -#define NT_STATUS_ILL_FORMED_PASSWORD 0xC000006b -#define NT_STATUS_PASSWORD_RESTRICTION 0xC000006c -#define NT_STATUS_LOGON_FAILURE 0xC000006d -#define NT_STATUS_ACCOUNT_RESTRICTION 0xC000006e -#define NT_STATUS_INVALID_LOGON_HOURS 0xC000006f -#define NT_STATUS_INVALID_WORKSTATION 0xC0000070 -#define NT_STATUS_PASSWORD_EXPIRED 0xC0000071 -#define NT_STATUS_ACCOUNT_DISABLED 0xC0000072 -#define NT_STATUS_NONE_MAPPED 0xC0000073 -#define NT_STATUS_TOO_MANY_LUIDS_REQUESTED 0xC0000074 -#define NT_STATUS_LUIDS_EXHAUSTED 0xC0000075 -#define NT_STATUS_INVALID_SUB_AUTHORITY 0xC0000076 -#define NT_STATUS_INVALID_ACL 0xC0000077 -#define NT_STATUS_INVALID_SID 0xC0000078 -#define NT_STATUS_INVALID_SECURITY_DESCR 0xC0000079 -#define NT_STATUS_PROCEDURE_NOT_FOUND 0xC000007a -#define NT_STATUS_INVALID_IMAGE_FORMAT 0xC000007b -#define NT_STATUS_NO_TOKEN 0xC000007c -#define NT_STATUS_BAD_INHERITANCE_ACL 0xC000007d -#define NT_STATUS_RANGE_NOT_LOCKED 0xC000007e -#define NT_STATUS_DISK_FULL 0xC000007f -#define NT_STATUS_SERVER_DISABLED 0xC0000080 -#define NT_STATUS_SERVER_NOT_DISABLED 0xC0000081 -#define NT_STATUS_TOO_MANY_GUIDS_REQUESTED 0xC0000082 -#define NT_STATUS_GUIDS_EXHAUSTED 0xC0000083 -#define NT_STATUS_INVALID_ID_AUTHORITY 0xC0000084 -#define NT_STATUS_AGENTS_EXHAUSTED 0xC0000085 -#define NT_STATUS_INVALID_VOLUME_LABEL 0xC0000086 -#define NT_STATUS_SECTION_NOT_EXTENDED 0xC0000087 -#define NT_STATUS_NOT_MAPPED_DATA 0xC0000088 -#define NT_STATUS_RESOURCE_DATA_NOT_FOUND 0xC0000089 -#define NT_STATUS_RESOURCE_TYPE_NOT_FOUND 0xC000008a -#define NT_STATUS_RESOURCE_NAME_NOT_FOUND 0xC000008b -#define NT_STATUS_ARRAY_BOUNDS_EXCEEDED 0xC000008c -#define NT_STATUS_FLOAT_DENORMAL_OPERAND 0xC000008d -#define NT_STATUS_FLOAT_DIVIDE_BY_ZERO 0xC000008e -#define NT_STATUS_FLOAT_INEXACT_RESULT 0xC000008f -#define NT_STATUS_FLOAT_INVALID_OPERATION 0xC0000090 -#define NT_STATUS_FLOAT_OVERFLOW 0xC0000091 -#define NT_STATUS_FLOAT_STACK_CHECK 0xC0000092 -#define NT_STATUS_FLOAT_UNDERFLOW 0xC0000093 -#define NT_STATUS_INTEGER_DIVIDE_BY_ZERO 0xC0000094 -#define NT_STATUS_INTEGER_OVERFLOW 0xC0000095 -#define NT_STATUS_PRIVILEGED_INSTRUCTION 0xC0000096 -#define NT_STATUS_TOO_MANY_PAGING_FILES 0xC0000097 -#define NT_STATUS_FILE_INVALID 0xC0000098 -#define NT_STATUS_ALLOTTED_SPACE_EXCEEDED 0xC0000099 -#define NT_STATUS_INSUFFICIENT_RESOURCES 0xC000009a -#define NT_STATUS_DFS_EXIT_PATH_FOUND 0xC000009b -#define NT_STATUS_DEVICE_DATA_ERROR 0xC000009c -#define NT_STATUS_DEVICE_NOT_CONNECTED 0xC000009d -#define NT_STATUS_DEVICE_POWER_FAILURE 0xC000009e -#define NT_STATUS_FREE_VM_NOT_AT_BASE 0xC000009f -#define NT_STATUS_MEMORY_NOT_ALLOCATED 0xC00000a0 -#define NT_STATUS_WORKING_SET_QUOTA 0xC00000a1 -#define NT_STATUS_MEDIA_WRITE_PROTECTED 0xC00000a2 -#define NT_STATUS_DEVICE_NOT_READY 0xC00000a3 -#define NT_STATUS_INVALID_GROUP_ATTRIBUTES 0xC00000a4 -#define NT_STATUS_BAD_IMPERSONATION_LEVEL 0xC00000a5 -#define NT_STATUS_CANT_OPEN_ANONYMOUS 0xC00000a6 -#define NT_STATUS_BAD_VALIDATION_CLASS 0xC00000a7 -#define NT_STATUS_BAD_TOKEN_TYPE 0xC00000a8 -#define NT_STATUS_BAD_MASTER_BOOT_RECORD 0xC00000a9 -#define NT_STATUS_INSTRUCTION_MISALIGNMENT 0xC00000aa -#define NT_STATUS_INSTANCE_NOT_AVAILABLE 0xC00000ab -#define NT_STATUS_PIPE_NOT_AVAILABLE 0xC00000ac -#define NT_STATUS_INVALID_PIPE_STATE 0xC00000ad -#define NT_STATUS_PIPE_BUSY 0xC00000ae -#define NT_STATUS_ILLEGAL_FUNCTION 0xC00000af -#define NT_STATUS_PIPE_DISCONNECTED 0xC00000b0 -#define NT_STATUS_PIPE_CLOSING 0xC00000b1 -#define NT_STATUS_PIPE_CONNECTED 0xC00000b2 -#define NT_STATUS_PIPE_LISTENING 0xC00000b3 -#define NT_STATUS_INVALID_READ_MODE 0xC00000b4 -#define NT_STATUS_IO_TIMEOUT 0xC00000b5 -#define NT_STATUS_FILE_FORCED_CLOSED 0xC00000b6 -#define NT_STATUS_PROFILING_NOT_STARTED 0xC00000b7 -#define NT_STATUS_PROFILING_NOT_STOPPED 0xC00000b8 -#define NT_STATUS_COULD_NOT_INTERPRET 0xC00000b9 -#define NT_STATUS_FILE_IS_A_DIRECTORY 0xC00000ba -#define NT_STATUS_NOT_SUPPORTED 0xC00000bb -#define NT_STATUS_REMOTE_NOT_LISTENING 0xC00000bc -#define NT_STATUS_DUPLICATE_NAME 0xC00000bd -#define NT_STATUS_BAD_NETWORK_PATH 0xC00000be -#define NT_STATUS_NETWORK_BUSY 0xC00000bf -#define NT_STATUS_DEVICE_DOES_NOT_EXIST 0xC00000c0 -#define NT_STATUS_TOO_MANY_COMMANDS 0xC00000c1 -#define NT_STATUS_ADAPTER_HARDWARE_ERROR 0xC00000c2 -#define NT_STATUS_INVALID_NETWORK_RESPONSE 0xC00000c3 -#define NT_STATUS_UNEXPECTED_NETWORK_ERROR 0xC00000c4 -#define NT_STATUS_BAD_REMOTE_ADAPTER 0xC00000c5 -#define NT_STATUS_PRINT_QUEUE_FULL 0xC00000c6 -#define NT_STATUS_NO_SPOOL_SPACE 0xC00000c7 -#define NT_STATUS_PRINT_CANCELLED 0xC00000c8 -#define NT_STATUS_NETWORK_NAME_DELETED 0xC00000c9 -#define NT_STATUS_NETWORK_ACCESS_DENIED 0xC00000ca -#define NT_STATUS_BAD_DEVICE_TYPE 0xC00000cb -#define NT_STATUS_BAD_NETWORK_NAME 0xC00000cc -#define NT_STATUS_TOO_MANY_NAMES 0xC00000cd -#define NT_STATUS_TOO_MANY_SESSIONS 0xC00000ce -#define NT_STATUS_SHARING_PAUSED 0xC00000cf -#define NT_STATUS_REQUEST_NOT_ACCEPTED 0xC00000d0 -#define NT_STATUS_REDIRECTOR_PAUSED 0xC00000d1 -#define NT_STATUS_NET_WRITE_FAULT 0xC00000d2 -#define NT_STATUS_PROFILING_AT_LIMIT 0xC00000d3 -#define NT_STATUS_NOT_SAME_DEVICE 0xC00000d4 -#define NT_STATUS_FILE_RENAMED 0xC00000d5 -#define NT_STATUS_VIRTUAL_CIRCUIT_CLOSED 0xC00000d6 -#define NT_STATUS_NO_SECURITY_ON_OBJECT 0xC00000d7 -#define NT_STATUS_CANT_WAIT 0xC00000d8 -#define NT_STATUS_PIPE_EMPTY 0xC00000d9 -#define NT_STATUS_CANT_ACCESS_DOMAIN_INFO 0xC00000da -#define NT_STATUS_CANT_TERMINATE_SELF 0xC00000db -#define NT_STATUS_INVALID_SERVER_STATE 0xC00000dc -#define NT_STATUS_INVALID_DOMAIN_STATE 0xC00000dd -#define NT_STATUS_INVALID_DOMAIN_ROLE 0xC00000de -#define NT_STATUS_NO_SUCH_DOMAIN 0xC00000df -#define NT_STATUS_DOMAIN_EXISTS 0xC00000e0 -#define NT_STATUS_DOMAIN_LIMIT_EXCEEDED 0xC00000e1 -#define NT_STATUS_OPLOCK_NOT_GRANTED 0xC00000e2 -#define NT_STATUS_INVALID_OPLOCK_PROTOCOL 0xC00000e3 -#define NT_STATUS_INTERNAL_DB_CORRUPTION 0xC00000e4 -#define NT_STATUS_INTERNAL_ERROR 0xC00000e5 -#define NT_STATUS_GENERIC_NOT_MAPPED 0xC00000e6 -#define NT_STATUS_BAD_DESCRIPTOR_FORMAT 0xC00000e7 -#define NT_STATUS_INVALID_USER_BUFFER 0xC00000e8 -#define NT_STATUS_UNEXPECTED_IO_ERROR 0xC00000e9 -#define NT_STATUS_UNEXPECTED_MM_CREATE_ERR 0xC00000ea -#define NT_STATUS_UNEXPECTED_MM_MAP_ERROR 0xC00000eb -#define NT_STATUS_UNEXPECTED_MM_EXTEND_ERR 0xC00000ec -#define NT_STATUS_NOT_LOGON_PROCESS 0xC00000ed -#define NT_STATUS_LOGON_SESSION_EXISTS 0xC00000ee -#define NT_STATUS_INVALID_PARAMETER_1 0xC00000ef -#define NT_STATUS_INVALID_PARAMETER_2 0xC00000f0 -#define NT_STATUS_INVALID_PARAMETER_3 0xC00000f1 -#define NT_STATUS_INVALID_PARAMETER_4 0xC00000f2 -#define NT_STATUS_INVALID_PARAMETER_5 0xC00000f3 -#define NT_STATUS_INVALID_PARAMETER_6 0xC00000f4 -#define NT_STATUS_INVALID_PARAMETER_7 0xC00000f5 -#define NT_STATUS_INVALID_PARAMETER_8 0xC00000f6 -#define NT_STATUS_INVALID_PARAMETER_9 0xC00000f7 -#define NT_STATUS_INVALID_PARAMETER_10 0xC00000f8 -#define NT_STATUS_INVALID_PARAMETER_11 0xC00000f9 -#define NT_STATUS_INVALID_PARAMETER_12 0xC00000fa -#define NT_STATUS_REDIRECTOR_NOT_STARTED 0xC00000fb -#define NT_STATUS_REDIRECTOR_STARTED 0xC00000fc -#define NT_STATUS_STACK_OVERFLOW 0xC00000fd -#define NT_STATUS_NO_SUCH_PACKAGE 0xC00000fe -#define NT_STATUS_BAD_FUNCTION_TABLE 0xC00000ff -#define NT_STATUS_DIRECTORY_NOT_EMPTY 0xC0000101 -#define NT_STATUS_FILE_CORRUPT_ERROR 0xC0000102 -#define NT_STATUS_NOT_A_DIRECTORY 0xC0000103 -#define NT_STATUS_BAD_LOGON_SESSION_STATE 0xC0000104 -#define NT_STATUS_LOGON_SESSION_COLLISION 0xC0000105 -#define NT_STATUS_NAME_TOO_LONG 0xC0000106 -#define NT_STATUS_FILES_OPEN 0xC0000107 -#define NT_STATUS_CONNECTION_IN_USE 0xC0000108 -#define NT_STATUS_MESSAGE_NOT_FOUND 0xC0000109 -#define NT_STATUS_PROCESS_IS_TERMINATING 0xC000010a -#define NT_STATUS_INVALID_LOGON_TYPE 0xC000010b -#define NT_STATUS_NO_GUID_TRANSLATION 0xC000010c -#define NT_STATUS_CANNOT_IMPERSONATE 0xC000010d -#define NT_STATUS_IMAGE_ALREADY_LOADED 0xC000010e -#define NT_STATUS_ABIOS_NOT_PRESENT 0xC000010f -#define NT_STATUS_ABIOS_LID_NOT_EXIST 0xC0000110 -#define NT_STATUS_ABIOS_LID_ALREADY_OWNED 0xC0000111 -#define NT_STATUS_ABIOS_NOT_LID_OWNER 0xC0000112 -#define NT_STATUS_ABIOS_INVALID_COMMAND 0xC0000113 -#define NT_STATUS_ABIOS_INVALID_LID 0xC0000114 -#define NT_STATUS_ABIOS_SELECTOR_NOT_AVAILABLE 0xC0000115 -#define NT_STATUS_ABIOS_INVALID_SELECTOR 0xC0000116 -#define NT_STATUS_NO_LDT 0xC0000117 -#define NT_STATUS_INVALID_LDT_SIZE 0xC0000118 -#define NT_STATUS_INVALID_LDT_OFFSET 0xC0000119 -#define NT_STATUS_INVALID_LDT_DESCRIPTOR 0xC000011a -#define NT_STATUS_INVALID_IMAGE_NE_FORMAT 0xC000011b -#define NT_STATUS_RXACT_INVALID_STATE 0xC000011c -#define NT_STATUS_RXACT_COMMIT_FAILURE 0xC000011d -#define NT_STATUS_MAPPED_FILE_SIZE_ZERO 0xC000011e -#define NT_STATUS_TOO_MANY_OPENED_FILES 0xC000011f -#define NT_STATUS_CANCELLED 0xC0000120 -#define NT_STATUS_CANNOT_DELETE 0xC0000121 -#define NT_STATUS_INVALID_COMPUTER_NAME 0xC0000122 -#define NT_STATUS_FILE_DELETED 0xC0000123 -#define NT_STATUS_SPECIAL_ACCOUNT 0xC0000124 -#define NT_STATUS_SPECIAL_GROUP 0xC0000125 -#define NT_STATUS_SPECIAL_USER 0xC0000126 -#define NT_STATUS_MEMBERS_PRIMARY_GROUP 0xC0000127 -#define NT_STATUS_FILE_CLOSED 0xC0000128 -#define NT_STATUS_TOO_MANY_THREADS 0xC0000129 -#define NT_STATUS_THREAD_NOT_IN_PROCESS 0xC000012a -#define NT_STATUS_TOKEN_ALREADY_IN_USE 0xC000012b -#define NT_STATUS_PAGEFILE_QUOTA_EXCEEDED 0xC000012c -#define NT_STATUS_COMMITMENT_LIMIT 0xC000012d -#define NT_STATUS_INVALID_IMAGE_LE_FORMAT 0xC000012e -#define NT_STATUS_INVALID_IMAGE_NOT_MZ 0xC000012f -#define NT_STATUS_INVALID_IMAGE_PROTECT 0xC0000130 -#define NT_STATUS_INVALID_IMAGE_WIN_16 0xC0000131 -#define NT_STATUS_LOGON_SERVER_CONFLICT 0xC0000132 -#define NT_STATUS_TIME_DIFFERENCE_AT_DC 0xC0000133 -#define NT_STATUS_SYNCHRONIZATION_REQUIRED 0xC0000134 -#define NT_STATUS_DLL_NOT_FOUND 0xC0000135 -#define NT_STATUS_OPEN_FAILED 0xC0000136 -#define NT_STATUS_IO_PRIVILEGE_FAILED 0xC0000137 -#define NT_STATUS_ORDINAL_NOT_FOUND 0xC0000138 -#define NT_STATUS_ENTRYPOINT_NOT_FOUND 0xC0000139 -#define NT_STATUS_CONTROL_C_EXIT 0xC000013a -#define NT_STATUS_LOCAL_DISCONNECT 0xC000013b -#define NT_STATUS_REMOTE_DISCONNECT 0xC000013c -#define NT_STATUS_REMOTE_RESOURCES 0xC000013d -#define NT_STATUS_LINK_FAILED 0xC000013e -#define NT_STATUS_LINK_TIMEOUT 0xC000013f -#define NT_STATUS_INVALID_CONNECTION 0xC0000140 -#define NT_STATUS_INVALID_ADDRESS 0xC0000141 -#define NT_STATUS_DLL_INIT_FAILED 0xC0000142 -#define NT_STATUS_MISSING_SYSTEMFILE 0xC0000143 -#define NT_STATUS_UNHANDLED_EXCEPTION 0xC0000144 -#define NT_STATUS_APP_INIT_FAILURE 0xC0000145 -#define NT_STATUS_PAGEFILE_CREATE_FAILED 0xC0000146 -#define NT_STATUS_NO_PAGEFILE 0xC0000147 -#define NT_STATUS_INVALID_LEVEL 0xC0000148 -#define NT_STATUS_WRONG_PASSWORD_CORE 0xC0000149 -#define NT_STATUS_ILLEGAL_FLOAT_CONTEXT 0xC000014a -#define NT_STATUS_PIPE_BROKEN 0xC000014b -#define NT_STATUS_REGISTRY_CORRUPT 0xC000014c -#define NT_STATUS_REGISTRY_IO_FAILED 0xC000014d -#define NT_STATUS_NO_EVENT_PAIR 0xC000014e -#define NT_STATUS_UNRECOGNIZED_VOLUME 0xC000014f -#define NT_STATUS_SERIAL_NO_DEVICE_INITED 0xC0000150 -#define NT_STATUS_NO_SUCH_ALIAS 0xC0000151 -#define NT_STATUS_MEMBER_NOT_IN_ALIAS 0xC0000152 -#define NT_STATUS_MEMBER_IN_ALIAS 0xC0000153 -#define NT_STATUS_ALIAS_EXISTS 0xC0000154 -#define NT_STATUS_LOGON_NOT_GRANTED 0xC0000155 -#define NT_STATUS_TOO_MANY_SECRETS 0xC0000156 -#define NT_STATUS_SECRET_TOO_LONG 0xC0000157 -#define NT_STATUS_INTERNAL_DB_ERROR 0xC0000158 -#define NT_STATUS_FULLSCREEN_MODE 0xC0000159 -#define NT_STATUS_TOO_MANY_CONTEXT_IDS 0xC000015a -#define NT_STATUS_LOGON_TYPE_NOT_GRANTED 0xC000015b -#define NT_STATUS_NOT_REGISTRY_FILE 0xC000015c -#define NT_STATUS_NT_CROSS_ENCRYPTION_REQUIRED 0xC000015d -#define NT_STATUS_DOMAIN_CTRLR_CONFIG_ERROR 0xC000015e -#define NT_STATUS_FT_MISSING_MEMBER 0xC000015f -#define NT_STATUS_ILL_FORMED_SERVICE_ENTRY 0xC0000160 -#define NT_STATUS_ILLEGAL_CHARACTER 0xC0000161 -#define NT_STATUS_UNMAPPABLE_CHARACTER 0xC0000162 -#define NT_STATUS_UNDEFINED_CHARACTER 0xC0000163 -#define NT_STATUS_FLOPPY_VOLUME 0xC0000164 -#define NT_STATUS_FLOPPY_ID_MARK_NOT_FOUND 0xC0000165 -#define NT_STATUS_FLOPPY_WRONG_CYLINDER 0xC0000166 -#define NT_STATUS_FLOPPY_UNKNOWN_ERROR 0xC0000167 -#define NT_STATUS_FLOPPY_BAD_REGISTERS 0xC0000168 -#define NT_STATUS_DISK_RECALIBRATE_FAILED 0xC0000169 -#define NT_STATUS_DISK_OPERATION_FAILED 0xC000016a -#define NT_STATUS_DISK_RESET_FAILED 0xC000016b -#define NT_STATUS_SHARED_IRQ_BUSY 0xC000016c -#define NT_STATUS_FT_ORPHANING 0xC000016d -#define NT_STATUS_PARTITION_FAILURE 0xC0000172 -#define NT_STATUS_INVALID_BLOCK_LENGTH 0xC0000173 -#define NT_STATUS_DEVICE_NOT_PARTITIONED 0xC0000174 -#define NT_STATUS_UNABLE_TO_LOCK_MEDIA 0xC0000175 -#define NT_STATUS_UNABLE_TO_UNLOAD_MEDIA 0xC0000176 -#define NT_STATUS_EOM_OVERFLOW 0xC0000177 -#define NT_STATUS_NO_MEDIA 0xC0000178 -#define NT_STATUS_NO_SUCH_MEMBER 0xC000017a -#define NT_STATUS_INVALID_MEMBER 0xC000017b -#define NT_STATUS_KEY_DELETED 0xC000017c -#define NT_STATUS_NO_LOG_SPACE 0xC000017d -#define NT_STATUS_TOO_MANY_SIDS 0xC000017e -#define NT_STATUS_LM_CROSS_ENCRYPTION_REQUIRED 0xC000017f -#define NT_STATUS_KEY_HAS_CHILDREN 0xC0000180 -#define NT_STATUS_CHILD_MUST_BE_VOLATILE 0xC0000181 -#define NT_STATUS_DEVICE_CONFIGURATION_ERROR 0xC0000182 -#define NT_STATUS_DRIVER_INTERNAL_ERROR 0xC0000183 -#define NT_STATUS_INVALID_DEVICE_STATE 0xC0000184 -#define NT_STATUS_IO_DEVICE_ERROR 0xC0000185 -#define NT_STATUS_DEVICE_PROTOCOL_ERROR 0xC0000186 -#define NT_STATUS_BACKUP_CONTROLLER 0xC0000187 -#define NT_STATUS_LOG_FILE_FULL 0xC0000188 -#define NT_STATUS_TOO_LATE 0xC0000189 -#define NT_STATUS_NO_TRUST_LSA_SECRET 0xC000018a -#define NT_STATUS_NO_TRUST_SAM_ACCOUNT 0xC000018b -#define NT_STATUS_TRUSTED_DOMAIN_FAILURE 0xC000018c -#define NT_STATUS_TRUSTED_RELATIONSHIP_FAILURE 0xC000018d -#define NT_STATUS_EVENTLOG_FILE_CORRUPT 0xC000018e -#define NT_STATUS_EVENTLOG_CANT_START 0xC000018f -#define NT_STATUS_TRUST_FAILURE 0xC0000190 -#define NT_STATUS_MUTANT_LIMIT_EXCEEDED 0xC0000191 -#define NT_STATUS_NETLOGON_NOT_STARTED 0xC0000192 -#define NT_STATUS_ACCOUNT_EXPIRED 0xC0000193 -#define NT_STATUS_POSSIBLE_DEADLOCK 0xC0000194 -#define NT_STATUS_NETWORK_CREDENTIAL_CONFLICT 0xC0000195 -#define NT_STATUS_REMOTE_SESSION_LIMIT 0xC0000196 -#define NT_STATUS_EVENTLOG_FILE_CHANGED 0xC0000197 -#define NT_STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT 0xC0000198 -#define NT_STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT 0xC0000199 -#define NT_STATUS_NOLOGON_SERVER_TRUST_ACCOUNT 0xC000019a -#define NT_STATUS_DOMAIN_TRUST_INCONSISTENT 0xC000019b -#define NT_STATUS_FS_DRIVER_REQUIRED 0xC000019c -#define NT_STATUS_NO_USER_SESSION_KEY 0xC0000202 -#define NT_STATUS_USER_SESSION_DELETED 0xC0000203 -#define NT_STATUS_RESOURCE_LANG_NOT_FOUND 0xC0000204 -#define NT_STATUS_INSUFF_SERVER_RESOURCES 0xC0000205 -#define NT_STATUS_INVALID_BUFFER_SIZE 0xC0000206 -#define NT_STATUS_INVALID_ADDRESS_COMPONENT 0xC0000207 -#define NT_STATUS_INVALID_ADDRESS_WILDCARD 0xC0000208 -#define NT_STATUS_TOO_MANY_ADDRESSES 0xC0000209 -#define NT_STATUS_ADDRESS_ALREADY_EXISTS 0xC000020a -#define NT_STATUS_ADDRESS_CLOSED 0xC000020b -#define NT_STATUS_CONNECTION_DISCONNECTED 0xC000020c -#define NT_STATUS_CONNECTION_RESET 0xC000020d -#define NT_STATUS_TOO_MANY_NODES 0xC000020e -#define NT_STATUS_TRANSACTION_ABORTED 0xC000020f -#define NT_STATUS_TRANSACTION_TIMED_OUT 0xC0000210 -#define NT_STATUS_TRANSACTION_NO_RELEASE 0xC0000211 -#define NT_STATUS_TRANSACTION_NO_MATCH 0xC0000212 -#define NT_STATUS_TRANSACTION_RESPONDED 0xC0000213 -#define NT_STATUS_TRANSACTION_INVALID_ID 0xC0000214 -#define NT_STATUS_TRANSACTION_INVALID_TYPE 0xC0000215 -#define NT_STATUS_NOT_SERVER_SESSION 0xC0000216 -#define NT_STATUS_NOT_CLIENT_SESSION 0xC0000217 -#define NT_STATUS_CANNOT_LOAD_REGISTRY_FILE 0xC0000218 -#define NT_STATUS_DEBUG_ATTACH_FAILED 0xC0000219 -#define NT_STATUS_SYSTEM_PROCESS_TERMINATED 0xC000021a -#define NT_STATUS_DATA_NOT_ACCEPTED 0xC000021b -#define NT_STATUS_NO_BROWSER_SERVERS_FOUND 0xC000021c -#define NT_STATUS_VDM_HARD_ERROR 0xC000021d -#define NT_STATUS_DRIVER_CANCEL_TIMEOUT 0xC000021e -#define NT_STATUS_REPLY_MESSAGE_MISMATCH 0xC000021f -#define NT_STATUS_MAPPED_ALIGNMENT 0xC0000220 -#define NT_STATUS_IMAGE_CHECKSUM_MISMATCH 0xC0000221 -#define NT_STATUS_LOST_WRITEBEHIND_DATA 0xC0000222 -#define NT_STATUS_CLIENT_SERVER_PARAMETERS_INVALID 0xC0000223 -#define NT_STATUS_PASSWORD_MUST_CHANGE 0xC0000224 -#define NT_STATUS_NOT_FOUND 0xC0000225 -#define NT_STATUS_NOT_TINY_STREAM 0xC0000226 -#define NT_STATUS_RECOVERY_FAILURE 0xC0000227 -#define NT_STATUS_STACK_OVERFLOW_READ 0xC0000228 -#define NT_STATUS_FAIL_CHECK 0xC0000229 -#define NT_STATUS_DUPLICATE_OBJECTID 0xC000022a -#define NT_STATUS_OBJECTID_EXISTS 0xC000022b -#define NT_STATUS_CONVERT_TO_LARGE 0xC000022c -#define NT_STATUS_RETRY 0xC000022d -#define NT_STATUS_FOUND_OUT_OF_SCOPE 0xC000022e -#define NT_STATUS_ALLOCATE_BUCKET 0xC000022f -#define NT_STATUS_PROPSET_NOT_FOUND 0xC0000230 -#define NT_STATUS_MARSHALL_OVERFLOW 0xC0000231 -#define NT_STATUS_INVALID_VARIANT 0xC0000232 -#define NT_STATUS_DOMAIN_CONTROLLER_NOT_FOUND 0xC0000233 -#define NT_STATUS_ACCOUNT_LOCKED_OUT 0xC0000234 -#define NT_STATUS_HANDLE_NOT_CLOSABLE 0xC0000235 -#define NT_STATUS_CONNECTION_REFUSED 0xC0000236 -#define NT_STATUS_GRACEFUL_DISCONNECT 0xC0000237 -#define NT_STATUS_ADDRESS_ALREADY_ASSOCIATED 0xC0000238 -#define NT_STATUS_ADDRESS_NOT_ASSOCIATED 0xC0000239 -#define NT_STATUS_CONNECTION_INVALID 0xC000023a -#define NT_STATUS_CONNECTION_ACTIVE 0xC000023b -#define NT_STATUS_NETWORK_UNREACHABLE 0xC000023c -#define NT_STATUS_HOST_UNREACHABLE 0xC000023d -#define NT_STATUS_PROTOCOL_UNREACHABLE 0xC000023e -#define NT_STATUS_PORT_UNREACHABLE 0xC000023f -#define NT_STATUS_REQUEST_ABORTED 0xC0000240 -#define NT_STATUS_CONNECTION_ABORTED 0xC0000241 -#define NT_STATUS_BAD_COMPRESSION_BUFFER 0xC0000242 -#define NT_STATUS_USER_MAPPED_FILE 0xC0000243 -#define NT_STATUS_AUDIT_FAILED 0xC0000244 -#define NT_STATUS_TIMER_RESOLUTION_NOT_SET 0xC0000245 -#define NT_STATUS_CONNECTION_COUNT_LIMIT 0xC0000246 -#define NT_STATUS_LOGIN_TIME_RESTRICTION 0xC0000247 -#define NT_STATUS_LOGIN_WKSTA_RESTRICTION 0xC0000248 -#define NT_STATUS_IMAGE_MP_UP_MISMATCH 0xC0000249 -#define NT_STATUS_INSUFFICIENT_LOGON_INFO 0xC0000250 -#define NT_STATUS_BAD_DLL_ENTRYPOINT 0xC0000251 -#define NT_STATUS_BAD_SERVICE_ENTRYPOINT 0xC0000252 -#define NT_STATUS_LPC_REPLY_LOST 0xC0000253 -#define NT_STATUS_IP_ADDRESS_CONFLICT1 0xC0000254 -#define NT_STATUS_IP_ADDRESS_CONFLICT2 0xC0000255 -#define NT_STATUS_REGISTRY_QUOTA_LIMIT 0xC0000256 -#define NT_STATUS_PATH_NOT_COVERED 0xC0000257 -#define NT_STATUS_NO_CALLBACK_ACTIVE 0xC0000258 -#define NT_STATUS_LICENSE_QUOTA_EXCEEDED 0xC0000259 -#define NT_STATUS_PWD_TOO_SHORT 0xC000025a -#define NT_STATUS_PWD_TOO_RECENT 0xC000025b -#define NT_STATUS_PWD_HISTORY_CONFLICT 0xC000025c -#define NT_STATUS_PLUGPLAY_NO_DEVICE 0xC000025e -#define NT_STATUS_UNSUPPORTED_COMPRESSION 0xC000025f -#define NT_STATUS_INVALID_HW_PROFILE 0xC0000260 -#define NT_STATUS_INVALID_PLUGPLAY_DEVICE_PATH 0xC0000261 -#define NT_STATUS_DRIVER_ORDINAL_NOT_FOUND 0xC0000262 -#define NT_STATUS_DRIVER_ENTRYPOINT_NOT_FOUND 0xC0000263 -#define NT_STATUS_RESOURCE_NOT_OWNED 0xC0000264 -#define NT_STATUS_TOO_MANY_LINKS 0xC0000265 -#define NT_STATUS_QUOTA_LIST_INCONSISTENT 0xC0000266 -#define NT_STATUS_FILE_IS_OFFLINE 0xC0000267 -#define NT_STATUS_NOT_A_REPARSE_POINT 0xC0000275 -#define NT_STATUS_NO_SUCH_JOB 0xC0000EDE - -#define WERR_OK 0 -#define WERR_BADFUNC 1 -#define WERR_BADFILE 2 -#define WERR_ACCESS_DENIED 5 -#define WERR_BADFID 6 -#define WERR_NOMEM 8 -#define WERR_GENERAL_FAILURE 31 -#define WERR_NOT_SUPPORTED 50 -#define WERR_BAD_NETPATH 53 -#define WERR_PRINTQ_FULL 61 -#define WERR_NO_SPOOL_SPACE 62 -#define WERR_NO_SUCH_SHARE 67 -#define WERR_ALREADY_EXISTS 80 -#define WERR_BAD_PASSWORD 86 -#define WERR_INVALID_PARAM 87 -#define WERR_INSUFFICIENT_BUFFER 122 -#define WERR_INVALID_NAME 123 -#define WERR_UNKNOWN_LEVEL 124 -#define WERR_OBJECT_PATH_INVALID 161 -#define WERR_NO_MORE_ITEMS 259 -#define WERR_MORE_DATA 234 -#define WERR_INVALID_OWNER 1307 -#define WERR_CAN_NOT_COMPLETE 1003 -#define WERR_INVALID_SECURITY_DESCRIPTOR 1338 -#define WERR_SERVER_UNAVAILABLE 1722 -#define WERR_UNKNOWN_PRINTER_DRIVER 1797 -#define WERR_INVALID_ENVIRONMENT 1805 -#define WERR_INVALID_FORM_NAME 1902 -#define WERR_INVALID_FORM_SIZE 1903 -#define WERR_BUF_TOO_SMALL 2123 -#define WERR_JOB_NOT_FOUND 2151 -#define WERR_DEST_NOT_FOUND 2152 -#define WERR_NOT_LOCAL_DOMAIN 2320 -#define WERR_STATUS_MORE_ENTRIES 0x0105 |