summaryrefslogtreecommitdiff
path: root/indra/cmake
diff options
context:
space:
mode:
Diffstat (limited to 'indra/cmake')
-rw-r--r--indra/cmake/00-COMPILE-LINK-RUN.txt344
-rwxr-xr-x[-rw-r--r--]indra/cmake/00-Common.cmake136
-rwxr-xr-x[-rw-r--r--]indra/cmake/APR.cmake24
-rwxr-xr-x[-rw-r--r--]indra/cmake/Audio.cmake8
-rwxr-xr-x[-rw-r--r--]indra/cmake/BerkeleyDB.cmake11
-rwxr-xr-x[-rw-r--r--]indra/cmake/Boost.cmake122
-rw-r--r--indra/cmake/BuildPackagesInfo.cmake10
-rwxr-xr-x[-rw-r--r--]indra/cmake/BuildVersion.cmake67
-rwxr-xr-x[-rw-r--r--]indra/cmake/CARes.cmake11
-rwxr-xr-x[-rw-r--r--]indra/cmake/CMakeCopyIfDifferent.cmake0
-rwxr-xr-x[-rw-r--r--]indra/cmake/CMakeLists.txt61
-rw-r--r--indra/cmake/CSharpMacros.cmake142
-rwxr-xr-x[-rw-r--r--]indra/cmake/CURL.cmake6
-rw-r--r--indra/cmake/ConfigurePkgConfig.cmake74
-rwxr-xr-x[-rw-r--r--]indra/cmake/Copy3rdPartyLibs.cmake268
-rw-r--r--indra/cmake/CopyBackToSource.cmake16
-rwxr-xr-x[-rw-r--r--]indra/cmake/DBusGlib.cmake8
-rwxr-xr-x[-rw-r--r--]indra/cmake/DeploySharedLibs.cmake0
-rwxr-xr-x[-rw-r--r--]indra/cmake/DirectX.cmake8
-rwxr-xr-x[-rw-r--r--]indra/cmake/DragDrop.cmake3
-rw-r--r--indra/cmake/ELFIO.cmake19
-rwxr-xr-x[-rw-r--r--]indra/cmake/EXPAT.cmake6
-rwxr-xr-x[-rw-r--r--]indra/cmake/ExamplePlugin.cmake6
-rw-r--r--indra/cmake/Externals.cmake34
-rw-r--r--indra/cmake/FMOD.cmake26
-rw-r--r--indra/cmake/FMODEX.cmake46
-rwxr-xr-x[-rw-r--r--]indra/cmake/FindAPR.cmake0
-rwxr-xr-xindra/cmake/FindAutobuild.cmake43
-rwxr-xr-x[-rw-r--r--]indra/cmake/FindBerkeleyDB.cmake0
-rwxr-xr-x[-rw-r--r--]indra/cmake/FindCARes.cmake0
-rw-r--r--indra/cmake/FindELFIO.cmake48
-rw-r--r--indra/cmake/FindFMOD.cmake44
-rw-r--r--indra/cmake/FindFMODEX.cmake65
-rwxr-xr-xindra/cmake/FindGLH.cmake30
-rwxr-xr-x[-rw-r--r--]indra/cmake/FindGoogleBreakpad.cmake0
-rwxr-xr-x[-rw-r--r--]indra/cmake/FindGooglePerfTools.cmake0
-rwxr-xr-xindra/cmake/FindHUNSPELL.cmake38
-rwxr-xr-x[-rw-r--r--]indra/cmake/FindJsonCpp.cmake8
-rw-r--r--indra/cmake/FindLLQtWebkit.cmake62
-rw-r--r--indra/cmake/FindMT.cmake15
-rw-r--r--indra/cmake/FindMono.cmake68
-rw-r--r--indra/cmake/FindMySQL.cmake48
-rwxr-xr-x[-rw-r--r--]indra/cmake/FindNDOF.cmake0
-rwxr-xr-x[-rw-r--r--]indra/cmake/FindOpenJPEG.cmake0
-rwxr-xr-x[-rw-r--r--]indra/cmake/FindSCP.cmake0
-rw-r--r--indra/cmake/FindSVN.cmake34
-rw-r--r--indra/cmake/FindTut.cmake30
-rw-r--r--indra/cmake/FindURIPARSER.cmake46
-rwxr-xr-x[-rw-r--r--]indra/cmake/FindXmlRpcEpi.cmake0
-rwxr-xr-x[-rw-r--r--]indra/cmake/FindZLIB.cmake6
-rwxr-xr-x[-rw-r--r--]indra/cmake/FreeType.cmake14
-rw-r--r--indra/cmake/GLEXT.cmake10
-rwxr-xr-xindra/cmake/GLH.cmake11
-rwxr-xr-xindra/cmake/GLOD.cmake9
-rwxr-xr-x[-rw-r--r--]indra/cmake/GStreamer010Plugin.cmake14
-rwxr-xr-x[-rw-r--r--]indra/cmake/GetPrerequisites_2_8.cmake0
-rwxr-xr-x[-rw-r--r--]indra/cmake/Glui.cmake6
-rwxr-xr-x[-rw-r--r--]indra/cmake/Glut.cmake0
-rwxr-xr-x[-rw-r--r--]indra/cmake/GoogleBreakpad.cmake11
-rwxr-xr-x[-rw-r--r--]indra/cmake/GoogleMock.cmake13
-rwxr-xr-x[-rw-r--r--]indra/cmake/GooglePerfTools.cmake49
-rwxr-xr-xindra/cmake/Havok.cmake137
-rwxr-xr-xindra/cmake/Hunspell.cmake22
-rwxr-xr-x[-rw-r--r--]indra/cmake/JPEG.cmake11
-rwxr-xr-x[-rw-r--r--]indra/cmake/JsonCpp.cmake16
-rw-r--r--indra/cmake/LLAddBuildTest.cmake34
-rw-r--r--indra/cmake/LLAppearance.cmake17
-rw-r--r--indra/cmake/LLAppearanceUtility.cmake12
-rwxr-xr-x[-rw-r--r--]indra/cmake/LLAudio.cmake0
-rwxr-xr-x[-rw-r--r--]indra/cmake/LLCharacter.cmake0
-rwxr-xr-x[-rw-r--r--]indra/cmake/LLCommon.cmake6
-rwxr-xr-xindra/cmake/LLCoreHttp.cmake16
-rwxr-xr-x[-rw-r--r--]indra/cmake/LLCrashLogger.cmake0
-rw-r--r--indra/cmake/LLDatabase.cmake10
-rwxr-xr-x[-rw-r--r--]indra/cmake/LLImage.cmake0
-rwxr-xr-x[-rw-r--r--]indra/cmake/LLImageJ2COJ.cmake0
-rwxr-xr-x[-rw-r--r--]indra/cmake/LLInventory.cmake0
-rwxr-xr-x[-rw-r--r--]indra/cmake/LLKDU.cmake15
-rwxr-xr-x[-rw-r--r--]indra/cmake/LLLogin.cmake0
-rwxr-xr-x[-rw-r--r--]indra/cmake/LLMath.cmake0
-rwxr-xr-x[-rw-r--r--]indra/cmake/LLMessage.cmake0
-rwxr-xr-xindra/cmake/LLPhysicsExtensions.cmake35
-rwxr-xr-x[-rw-r--r--]indra/cmake/LLPlugin.cmake4
-rwxr-xr-x[-rw-r--r--]indra/cmake/LLPrimitive.cmake44
-rwxr-xr-x[-rw-r--r--]indra/cmake/LLRender.cmake24
-rw-r--r--indra/cmake/LLScene.cmake7
-rwxr-xr-x[-rw-r--r--]indra/cmake/LLSharedLibs.cmake26
-rwxr-xr-x[-rw-r--r--]indra/cmake/LLTestCommand.cmake4
-rwxr-xr-x[-rw-r--r--]indra/cmake/LLUI.cmake0
-rwxr-xr-x[-rw-r--r--]indra/cmake/LLVFS.cmake0
-rwxr-xr-x[-rw-r--r--]indra/cmake/LLWindow.cmake25
-rwxr-xr-x[-rw-r--r--]indra/cmake/LLXML.cmake4
-rw-r--r--indra/cmake/LLXUIXML.cmake7
-rwxr-xr-x[-rw-r--r--]indra/cmake/LScript.cmake2
-rwxr-xr-x[-rw-r--r--]indra/cmake/Linking.cmake74
-rwxr-xr-x[-rw-r--r--]indra/cmake/MediaPluginBase.cmake0
-rw-r--r--indra/cmake/MonoDeps.cmake48
-rw-r--r--indra/cmake/MonoEmbed.cmake57
-rw-r--r--indra/cmake/MySQL.cmake26
-rwxr-xr-x[-rw-r--r--]indra/cmake/NDOF.cmake30
-rwxr-xr-xindra/cmake/NVAPI.cmake16
-rwxr-xr-x[-rw-r--r--]indra/cmake/OPENAL.cmake26
-rwxr-xr-x[-rw-r--r--]indra/cmake/OpenGL.cmake15
-rwxr-xr-x[-rw-r--r--]indra/cmake/OpenJPEG.cmake6
-rwxr-xr-x[-rw-r--r--]indra/cmake/OpenSSL.cmake16
-rwxr-xr-x[-rw-r--r--]indra/cmake/PNG.cmake31
-rwxr-xr-x[-rw-r--r--]indra/cmake/PluginAPI.cmake0
-rwxr-xr-x[-rw-r--r--]indra/cmake/Prebuilt.cmake88
-rw-r--r--indra/cmake/Pth.cmake21
-rwxr-xr-x[-rw-r--r--]indra/cmake/PulseAudio.cmake4
-rwxr-xr-x[-rw-r--r--]indra/cmake/Python.cmake2
-rwxr-xr-x[-rw-r--r--]indra/cmake/QuickTimePlugin.cmake6
-rwxr-xr-x[-rw-r--r--]indra/cmake/TemplateCheck.cmake7
-rwxr-xr-x[-rw-r--r--]indra/cmake/Tut.cmake9
-rwxr-xr-x[-rw-r--r--]indra/cmake/UI.cmake17
-rw-r--r--indra/cmake/URIPARSER.cmake35
-rwxr-xr-x[-rw-r--r--]indra/cmake/UnixInstall.cmake0
-rwxr-xr-x[-rw-r--r--]indra/cmake/Variables.cmake169
-rwxr-xr-x[-rw-r--r--]indra/cmake/ViewerMiscLibs.cmake18
-rwxr-xr-xindra/cmake/VisualLeakDetector.cmake12
-rwxr-xr-x[-rw-r--r--]indra/cmake/WebKitLibPlugin.cmake107
-rwxr-xr-x[-rw-r--r--]indra/cmake/XmlRpcEpi.cmake11
-rwxr-xr-x[-rw-r--r--]indra/cmake/ZLIB.cmake27
-rwxr-xr-x[-rw-r--r--]indra/cmake/cmake_dummy.cpp0
-rwxr-xr-x[-rw-r--r--]indra/cmake/run_build_test.py198
-rw-r--r--indra/cmake/windows-rcs.html15157
126 files changed, 17411 insertions, 1478 deletions
diff --git a/indra/cmake/00-COMPILE-LINK-RUN.txt b/indra/cmake/00-COMPILE-LINK-RUN.txt
new file mode 100644
index 0000000000..49b899c50d
--- /dev/null
+++ b/indra/cmake/00-COMPILE-LINK-RUN.txt
@@ -0,0 +1,344 @@
+
+ A short guide to compiling, linking, running and debugging issues
+ in the viewer and its packaged libraries.
+
+Introduction
+
+ A recent pass through some third-party libraries resulted in the
+ collection of a lot of information about how things should and
+ shouldn't be built in the viewer. Some of that is presented below
+ with hints and rules about doing things well. What's presented is
+ a guideline only. Not all suggestions are hard rules and you'll
+ find exceptions all over. Some exceptions arise from solid
+ reasoning, others may be legacy that hasn't been re-examined.
+
+ Use good engineering judgement when applying this information.
+
+Compilation
+
+ Windows Targets
+
+ Significant compilation flags and defines follow:
+
+ ----------------------------------------------------------------------------
+ Option Release RelWithDebInfo Debug
+ ----------------------------------------------------------------------------
+ wchar_t /Zc:wchar_t- " "
+ RTL type /MD /MD /MDd
+ FLoating Point /fp:fast " "
+ Debug Info /Zi (app/dll), /Z7 (lib) " "
+ Optimizer /O2 /Ob2 /GR /Od /Ob0 /GR /Od /GR
+ Incr. Link /INCREMENTAL:NO /INCREMENTAL /INCREMENTAL:NO
+ Debug /DEBUG /DEBUG /DEBUG
+ /OPT:REF
+ Ignore Libs LIBCMT LIBCMT LIBCMT;LIBCMTD;MSVCRT
+ Alignment Default " "
+
+ Defines WIN32 " "
+ _WINDOWS " "
+ LL_RELEASE=1 LL_RELEASE=1 n/a
+ LL_RELEASE_FOR_DOWNLOAD=1 n/a n/a
+ NDEBUG NDEBUG _DEBUG
+ n/a n/a LL_DEBUG=1
+ n/a LL_RELEASE_WITH_\ n/a
+ DEBUG_INFO=1
+ n/a n/a _SCL_SECURE_NO_WARNINGS=1
+ _SECURE_STL=0 _SECURE_STL=0 _SECURE_STL=0
+ _HAS_ITERATOR_DEBUGGING=0 n/a n/a
+ LL_WINDOWS=1 " "
+ UNICODE " "
+ _UNICODE " "
+ WINVER=0x0501 " "
+ _WIN32_WINNT=0x0501 " "
+ LL_OS_DRAGDROP_ENABLED=1 " "
+ CARES_STATICLIB " "
+ LIB_NDOF=1 " "
+
+ ----------------------------------------------------------------------------
+ Notes:
+
+ 1. /Zc:wchar_t-. Not certain where this comes from. It may be
+ due to a default set of compilation flags in Qt 4.X that then
+ propagates outward. In Qt 5.X, this setting is flipped back to
+ default (wchar_t is a built-in). Other options for dealing with
+ this include:
+
+ http://msdn.microsoft.com/en-us/library/dh8che7s%28v=vs.110%29.aspx
+
+ Recommend trying to stay with /Zc:wchar_t (the default) when
+ adding libraries. If incompatible, you'll typically get some
+ missing ostream '<<' operators or something similar in the stream
+ headers.
+
+ 2. /Z7 (VC 7.0 compatibility symbols) gives us debug information
+ in the static libraries we build. Otherwise builds generate
+ vc100.pdb files all over the place which generally aren't useful.
+ DLL's and .EXEs are to get /Zi or /ZI with separate .PDB files.
+ These .PDB files can then be packaged up in symbol tarballs for
+ the crash dump analyzer or used in debugging. There are issues here
+ for VS 2013 (see below).
+
+
+ Mac Targets
+
+ Fairly straightforward, optimization level is easily changed (may
+ be little or negative gain for -O3 and RelWithDebInfo should be
+ kicked up to 1 or 2. Boost debug symbols to dwarf-2 with a goal
+ of dwarf-2 in separate dSYM file when building .dylibs and
+ executables.
+
+ ----------------------------------------------------------------------------
+ Option Release RelWithDebInfo Debug
+ ----------------------------------------------------------------------------
+ Strip Debug Symbols On " "
+ During Copy
+
+ Generate Debug Syms On " "
+
+ Level Debug Syms -gdwarf-2 " "
+
+ Optimization -O3 -O0 -O0
+
+ PIC -fPIC -DPIC " "
+
+ Defines LL_RELEASE=1 LL_RELEASE=1 n/a
+ LL_RELEASE_FOR_DOWNLOAD=1 n/a n/a
+ NDEBUG NDEBUG _DEBUG
+ n/a n/a LL_DEBUG=1
+ n/a LL_RELEASE_WITH_\ n/a
+ DEBUG_INFO=1
+ LL_DARWIN=1 " "
+ LL_OS_DRAGDROP_ENABLED=1 " "
+ CARES_STATICLIB " "
+ LIB_NDOF=1 " "
+
+ ----------------------------------------------------------------------------
+ Notes:
+
+ 1. We're also building dylibs in a somewhat unusual way. They're
+ currently being generated with a link path of
+ '@executable_path/../Resources/<library>'. If we were to follow
+ the recommendations in dyld's man page, we’d instead reference
+ '@loader_path/<library>', use -rpath on the executable link
+ (pointing to the 'Resources' subdir of the main executable), and
+ be able to avoid some symlinking in the .app tree.
+
+ 2. Use the -headerpad_max_install_names link option on all .dylibs.
+
+
+ Linux Targets
+
+ Not much variety here.
+
+ ----------------------------------------------------------------------------
+ Option Release RelWithDebInfo Debug
+ ----------------------------------------------------------------------------
+ Debug Level -g (-g0/1 better?) -g -g
+ During Copy
+
+ Optimization -O2 -O0 -O0
+
+ PIC -fPIC " "
+ ----------------------------------------------------------------------------
+ Notes:
+
+
+Linking
+
+ The library update work has generally moved in the direction of
+ preferring static libraries over dynamic (Qt4 being the notable
+ exception). It also mostly eliminated the extremely bad practice
+ of having multiple versions of a library built into an image.
+
+ How bad was it? Very. Appalling. A nightmare. On Windows, at
+ least four versions of zlib (1.2.3, 1.2.5, 1.2.6, unknown), three
+ versions of Boost (1.45, 1.48, 1.52), two versions of OpenSSL
+ (0.9.8q, 1.0.0g) and three different builds of libexpat
+ 2.0.5/1.5.2 were used. Mac was worse with five builds or versions
+ of zlib, two of PCRE, two of c-ares, and three of OpenSSL. Linux
+ topped that by adding two builds of libpng.
+
+ DO NOT ALLOW THIS TO HAPPEN AGAIN. It isn't enough to update a
+ library and then stuff a new triplet of S3 URLs into the viewer's
+ autobuild.xml. If you update a library you MUST:
+
+ * Update the autobuild.xml of ALL consumers of the library. In
+ the case of zlib, that meant updating freetype, libpng, openssl,
+ libxml2, fontconfig, curl, Boost, SDL, llqtwebkit, google-mock and
+ colladadom.
+
+ * Confirm by test and observation that the consumers actually use
+ your library rather than 'call home to mother' and find
+ system-supplied versions of your library. This may consist of
+ watching configuration scripts, probing with ldd/depends/otool,
+ pulling text out of binaries with 'strings'. The previously-
+ mentioned libraries all have a README.Linden file that gives
+ examples specific to the consumer library.
+
+ * DO NOT RE-EXPORT LIBRARIES. Colladadom was the worst offender
+ of this rule. As a shared library, it was re-exporting part, but
+ not all, of Boost filesystem and system, some zlib, some PCRE,
+ some libxml2 and minizip. This meant that depending upon link-
+ time and run-time symbol resolution, data constructed with one
+ version of a library might be processed by a method built in a
+ second, incompatible version of the library. Switching colladadom
+ to a static library ended the re-export problem.
+
+ * Preventing re-export is not sufficient. Other libraries will
+ still be shipped as shared and they can still have Singleton and
+ Fragile Base Class issues. A DLL may be built with a static
+ archive of a library that has global data. That same static
+ archive might be linked into the application proper. An object
+ created with a method in the DLL may pass into a method in the
+ application where the archive's global data has a second instance
+ and no knowledge of the object. This is a failure due to an
+ assumption of Singleton global data which leads to some kind of
+ failure. This is the same effect as when, in Windows, both MSVCRT
+ and MSVCRTD get activated in a program. If you're lucky, some
+ asserts fail in that case having to do with file handle global
+ data.
+
+
+Running
+
+ Windows Debug Build. Seems to have been rendered nearly useless
+ by having the LL_CHECK_MEMORY define in llmemory.h calling
+ _CrtCheckMemory(). Viewer is almost useful disabling this in
+ llvoavatar code alone but not quite.
+
+
+Futures
+
+ Static Versus Dynamic Libraries
+
+ One solution to the above linking problems is the use of static
+ libraries for everything. Single version, singleton instancing of
+ data, etc. But it's not the 1950's and we're not running our
+ applications on bare metal. Every platform comes with 100s of
+ libraries waiting to interfere with operations by breaking the
+ single-version and singleton-data assumption.
+
+ Additionally, there are libraries that simply expect to be built
+ into shared libraries. Qt4 is one such. The version we're using
+ now, 4.7.1, is actually trying to disable both Webkit and plugin
+ modules because we're building it statically on Mac and Linux.
+ It's only because of configuration bugs that we're getting the
+ functionality out of it that we want.
+
+ With enough libraries and a single, global namespace, eventually
+ there will be collisions and there may not be a warning. All it
+ takes is two programmers who thought that 'FILE * open_file(const
+ char *);' was a safe signature to use between compilation units in
+ their libraries and glorious debugging sessions are in your
+ future. Having debugged it, you will now become the proud owner
+ of a one-off version of one of those libraries that uses a special
+ symbol prefix which you will be maintaining forever.
+
+ Lastly, we have some binary blobs that we must use as delivered.
+ Executables can be isolated at run-time if necessary. Shared
+ libraries are a different problem. They may bring their own
+ library dependencies that affect link- and run-time symbol
+ resolution and they'll impose that on us according to platform
+ rules.
+
+ So, what to do? My natural bias for large software is to use
+ shared libraries for everything. It's a path to single-version
+ and singleton data and isolates namespaces and prevents
+ interactions. It also has some field serviceability benefits if
+ you need to debug some bizarre problem a user has.
+
+ But there's a local preference for static. Here, my
+ rules-of-thumb are:
+
+ * Static library used by default.
+
+ * Shared library where the library must be built shared.
+
+ * Shared library if that is the only means to enforce the
+ single-version and singleton-data requirements.
+
+ * Shared library *on a case-by-case basis* if the library is also
+ provided by the platform and some benefit is plausible. (An
+ example of this is freetype/fontconfig on Linux. The .so
+ versions we build with, and incompletely ship, are inferior in
+ behavior to the platform libraries. By being shared libraries,
+ the platform-supplied option is available to all Linux users.)
+
+ In all cases, beware of cmake which appears to collapse and move
+ library references in links. This can drastically affect symbol
+ resolution when there are multiple sources for a symbol.
+
+ General
+
+ VS 2013. The /Z7 flag is rumored to be somewhat broken in 2013.
+ But it also sounds like there are explicit controls to name .PDB
+ files associated with static archives. That would make this an
+ ideal time to switch to /Zi or /ZI everywhere with explicit naming
+ and bring all the .PDBs together.
+
+ The embedded browser technology (e.g. Qt4 with Webkit) is the
+ 800-pound gorilla in the viewer. When starting any major work,
+ decide what changes you need here as those changes will propagate
+ outwards forcing many other decisions (cf: /Zc:wchar_t- flag).
+
+ The current package structure (./include, ./lib/release,
+ ./lib/debug, etc.) really works against the conventions used by
+ configure-like programs. I wasted a lot of time getting each
+ library to work with our structure without having to go back to
+ automake/autoconf. For Linux and Mac (and even for Windows), a
+ structure like the following where each grouping is optional would
+ probably save some work:
+
+ ./debug/bin
+ /include
+ /lib
+ ./debug/shared/bin
+ /include
+ /lib
+ ./debug/static/bin
+ /include
+ /lib
+ ./release/bin
+ /include
+ /lib
+ ...
+
+ In zlib and openssl and in a few of the libraries that consume
+ them, I experimented with packaging both static and shared
+ libraries and then having the consumer library move the unwanted
+ pieces out of the way to use the library type of choice (see
+ restore_dylibs() and restore_sos() functions). It was a bit fussy
+ and simplicity and clarity are the keys to maintaining libraries
+ in the future.
+
+ But it did suggest another approach. The idea is that every build
+ pre-stages inputs. Before anything is built, package pieces are
+ copied or symlinked from the 'stage/packages' area to the
+ 'stage/input' area. Builds then proceed with a single set of
+ -I/-L options for the dependencies. And products are built and
+ installed in a similar output staging structure for the next
+ consumer:
+
+ stage/packages/<package>/[above structure]
+ stage/input/{bin,include,lib}
+ stage/<package>/[above structure]
+
+ Next library project. I'd recommend working on the related set of
+ libexpat, apr, aprutil, xmlrpc-epi. We know libexpat has some
+ updates that should improve stability. Libapr consumes it and it
+ could use some /Z7 flag work to get rid of some 1000's of PDB
+ warnings and improve our debug symbols.
+
+ Miscellany to be sorted out:
+
+ * The packaging of libfreetype and libfontconfig on Linux.
+ Determine what the right thing is, do it.
+
+ * Maybe do something with ICU4C. Qt5 will require it and a number
+ of our packages can consume it typically replacing iconv or some
+ other library. But it is a huge bolus of static data. It can be
+ trimmed, but still.
+
+ * Revisit openssl. Package as a shared library? Replace with
+ LibreSSL when available? Start using platform-supplied crypto?
+
diff --git a/indra/cmake/00-Common.cmake b/indra/cmake/00-Common.cmake
index dbe0cf5cd0..7a320ffc59 100644..100755
--- a/indra/cmake/00-Common.cmake
+++ b/indra/cmake/00-Common.cmake
@@ -2,15 +2,18 @@
#
# Compilation options shared by all Second Life components.
+if(NOT DEFINED ${CMAKE_CURRENT_LIST_FILE}_INCLUDED)
+set(${CMAKE_CURRENT_LIST_FILE}_INCLUDED "YES")
+
include(Variables)
# Portable compilation flags.
set(CMAKE_CXX_FLAGS_DEBUG "-D_DEBUG -DLL_DEBUG=1")
set(CMAKE_CXX_FLAGS_RELEASE
- "-DLL_RELEASE=1 -DLL_RELEASE_FOR_DOWNLOAD=1 -D_SECURE_SCL=0 -DNDEBUG")
+ "-DLL_RELEASE=1 -DLL_RELEASE_FOR_DOWNLOAD=1 -DNDEBUG")
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO
- "-DLL_RELEASE=1 -D_SECURE_SCL=0 -DNDEBUG -DLL_RELEASE_WITH_DEBUG_INFO=1")
+ "-DLL_RELEASE=1 -DNDEBUG -DLL_RELEASE_WITH_DEBUG_INFO=1")
# Configure crash reporting
set(RELEASE_CRASH_REPORTING OFF CACHE BOOL "Enable use of crash reporting in release builds")
@@ -36,20 +39,31 @@ if (WINDOWS)
# Don't build DLLs.
set(BUILD_SHARED_LIBS OFF)
- set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /Od /Zi /MDd /MP"
+ # for "backwards compatibility", cmake sneaks in the Zm1000 option which royally
+ # screws incredibuild. this hack disables it.
+ # for details see: http://connect.microsoft.com/VisualStudio/feedback/details/368107/clxx-fatal-error-c1027-inconsistent-values-for-ym-between-creation-and-use-of-precompiled-headers
+ # http://www.ogre3d.org/forums/viewtopic.php?f=2&t=60015
+ # http://www.cmake.org/pipermail/cmake/2009-September/032143.html
+ string(REPLACE "/Zm1000" " " CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
+
+ set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /Od /Zi /MDd /MP -D_SCL_SECURE_NO_WARNINGS=1"
CACHE STRING "C++ compiler debug options" FORCE)
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO
- "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /Od /Zi /MD /MP /Ob2"
+ "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /Od /Zi /Zo /MD /MP /Ob0 -D_SECURE_STL=0"
CACHE STRING "C++ compiler release-with-debug options" FORCE)
set(CMAKE_CXX_FLAGS_RELEASE
- "${CMAKE_CXX_FLAGS_RELEASE} ${LL_CXX_FLAGS} /O2 /Zi /MD /MP /Ob2"
+ "${CMAKE_CXX_FLAGS_RELEASE} ${LL_CXX_FLAGS} /O2 /Zi /Zo /MD /MP /Ob2 -D_SECURE_STL=0 -D_HAS_ITERATOR_DEBUGGING=0"
CACHE STRING "C++ compiler release options" FORCE)
+ # zlib has assembly-language object files incompatible with SAFESEH
+ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /LARGEADDRESSAWARE /SAFESEH:NO /NODEFAULTLIB:LIBCMT")
set(CMAKE_CXX_STANDARD_LIBRARIES "")
set(CMAKE_C_STANDARD_LIBRARIES "")
add_definitions(
/DLL_WINDOWS=1
+ /DNOMINMAX
+# /DDOM_DYNAMIC # For shared library colladadom
/DUNICODE
/D_UNICODE
/GS
@@ -59,18 +73,11 @@ if (WINDOWS)
/Zc:forScope
/nologo
/Oy-
- )
-
- if(MSVC80 OR MSVC90)
- set(CMAKE_CXX_FLAGS_RELEASE
- "${CMAKE_CXX_FLAGS_RELEASE} -D_SECURE_STL=0 -D_HAS_ITERATOR_DEBUGGING=0"
- CACHE STRING "C++ compiler release options" FORCE)
-
- add_definitions(
/Zc:wchar_t-
+ /arch:SSE2
+ /fp:fast
)
- endif (MSVC80 OR MSVC90)
-
+
# Are we using the crummy Visual Studio KDU build workaround?
if (NOT VS_DISABLE_FATAL_WARNINGS)
add_definitions(/WX)
@@ -126,6 +133,17 @@ if (LINUX)
# Let's actually get a numerical version of gxx's version
STRING(REGEX REPLACE ".* ([0-9])\\.([0-9])\\.([0-9]).*" "\\1\\2\\3" CXX_VERSION_NUMBER ${CXX_VERSION})
+ # Hacks to work around gcc 4.1 TC build pool machines which can't process pragma warning disables
+ # This is pure rubbish; I wish there was another way.
+ #
+ if(${CXX_VERSION_NUMBER} LESS 420)
+ set(CMAKE_CXX_FLAGS "-Wno-deprecated -Wno-uninitialized -Wno-unused-variable -Wno-unused-function ${CMAKE_CXX_FLAGS}")
+ endif (${CXX_VERSION_NUMBER} LESS 420)
+
+ if(${CXX_VERSION_NUMBER} GREATER 459)
+ set(CMAKE_CXX_FLAGS "-Wno-deprecated -Wno-unused-but-set-variable -Wno-unused-variable ${CMAKE_CXX_FLAGS}")
+ endif (${CXX_VERSION_NUMBER} GREATER 459)
+
# gcc 4.3 and above don't like the LL boost and also
# cause warnings due to our use of deprecated headers
if(${CXX_VERSION_NUMBER} GREATER 429)
@@ -143,43 +161,26 @@ if (LINUX)
-fno-strict-aliasing
-fsigned-char
-g
+ -msse2
+ -mfpmath=sse
-pthread
)
- if (SERVER)
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ftemplate-depth-60")
- if (EXISTS /etc/debian_version)
- FILE(READ /etc/debian_version DEBIAN_VERSION)
- else (EXISTS /etc/debian_version)
- set(DEBIAN_VERSION "")
- endif (EXISTS /etc/debian_version)
-
- if (NOT DEBIAN_VERSION STREQUAL "3.1")
- add_definitions(-DCTYPE_WORKAROUND)
- endif (NOT DEBIAN_VERSION STREQUAL "3.1")
-
- if (EXISTS /usr/lib/mysql4/mysql)
- link_directories(/usr/lib/mysql4/mysql)
- endif (EXISTS /usr/lib/mysql4/mysql)
-
- add_definitions(
- -msse2
- -mfpmath=sse
- )
- endif (SERVER)
-
- if (VIEWER)
- add_definitions(-DAPPID=secondlife)
- add_definitions(-fvisibility=hidden)
- # don't catch SIGCHLD in our base application class for the viewer - some of our 3rd party libs may need their *own* SIGCHLD handler to work. Sigh! The viewer doesn't need to catch SIGCHLD anyway.
- add_definitions(-DLL_IGNORE_SIGCHLD)
- if (NOT STANDALONE)
- # this stops us requiring a really recent glibc at runtime
- add_definitions(-fno-stack-protector)
- # linking can be very memory-hungry, especially the final viewer link
- set(CMAKE_CXX_LINK_FLAGS "-Wl,--no-keep-memory")
- endif (NOT STANDALONE)
- endif (VIEWER)
+ add_definitions(-DAPPID=secondlife)
+ add_definitions(-fvisibility=hidden)
+ # don't catch SIGCHLD in our base application class for the viewer - some of our 3rd party libs may need their *own* SIGCHLD handler to work. Sigh! The viewer doesn't need to catch SIGCHLD anyway.
+ add_definitions(-DLL_IGNORE_SIGCHLD)
+ if (WORD_SIZE EQUAL 32)
+ add_definitions(-march=pentium4)
+ endif (WORD_SIZE EQUAL 32)
+ add_definitions(-mfpmath=sse)
+ #add_definitions(-ftree-vectorize) # THIS CRASHES GCC 3.1-3.2
+ if (NOT USESYSTEMLIBS)
+ # this stops us requiring a really recent glibc at runtime
+ add_definitions(-fno-stack-protector)
+ # linking can be very memory-hungry, especially the final viewer link
+ set(CMAKE_CXX_LINK_FLAGS "-Wl,--no-keep-memory")
+ endif (NOT USESYSTEMLIBS)
set(CMAKE_CXX_FLAGS_DEBUG "-fno-inline ${CMAKE_CXX_FLAGS_DEBUG}")
set(CMAKE_CXX_FLAGS_RELEASE "-O2 ${CMAKE_CXX_FLAGS_RELEASE}")
@@ -187,32 +188,37 @@ endif (LINUX)
if (DARWIN)
- # NOTE (per http://lists.apple.com/archives/darwin-dev/2008/Jan/msg00232.html):
- # > Why the bus error? What am I doing wrong?
- # This is a known issue where getcontext(3) is writing past the end of the
- # ucontext_t struct when _XOPEN_SOURCE is not defined (rdar://problem/5578699 ).
- # As a workaround, define _XOPEN_SOURCE before including ucontext.h.
- add_definitions(-DLL_DARWIN=1 -D_XOPEN_SOURCE)
- set(CMAKE_CXX_LINK_FLAGS "-Wl,-headerpad_max_install_names,-search_paths_first")
+ add_definitions(-DLL_DARWIN=1)
+ set(CMAKE_CXX_LINK_FLAGS "-Wl,-no_compact_unwind -Wl,-headerpad_max_install_names,-search_paths_first")
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_CXX_LINK_FLAGS}")
- set(DARWIN_extra_cstar_flags "-mlong-branch")
+ set(DARWIN_extra_cstar_flags "-g")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${DARWIN_extra_cstar_flags}")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${DARWIN_extra_cstar_flags}")
# NOTE: it's critical that the optimization flag is put in front.
# NOTE: it's critical to have both CXX_FLAGS and C_FLAGS covered.
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O0 ${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O0 ${CMAKE_C_FLAGS_RELWITHDEBINFO}")
+ set(ENABLE_SIGNING TRUE)
+ set(SIGNING_IDENTITY "Developer ID Application: Linden Research, Inc.")
endif (DARWIN)
if (LINUX OR DARWIN)
- set(GCC_WARNINGS "-Wall -Wno-sign-compare -Wno-trigraphs")
+ if (CMAKE_CXX_COMPILER MATCHES ".*clang")
+ set(CMAKE_COMPILER_IS_CLANGXX 1)
+ endif (CMAKE_CXX_COMPILER MATCHES ".*clang")
+
+ if (CMAKE_COMPILER_IS_GNUCXX)
+ set(GCC_WARNINGS "-Wall -Wno-sign-compare -Wno-trigraphs")
+ elseif (CMAKE_COMPILER_IS_CLANGXX)
+ set(GCC_WARNINGS "-Wall -Wno-sign-compare -Wno-trigraphs")
+ endif()
if (NOT GCC_DISABLE_FATAL_WARNINGS)
set(GCC_WARNINGS "${GCC_WARNINGS} -Werror")
endif (NOT GCC_DISABLE_FATAL_WARNINGS)
- set(GCC_CXX_WARNINGS "${GCC_WARNINGS} -Wno-reorder -Wno-non-virtual-dtor -Woverloaded-virtual")
+ set(GCC_CXX_WARNINGS "${GCC_WARNINGS} -Wno-reorder -Wno-non-virtual-dtor")
set(CMAKE_C_FLAGS "${GCC_WARNINGS} ${CMAKE_C_FLAGS}")
set(CMAKE_CXX_FLAGS "${GCC_CXX_WARNINGS} ${CMAKE_CXX_FLAGS}")
@@ -227,14 +233,14 @@ if (LINUX OR DARWIN)
endif (LINUX OR DARWIN)
-if (STANDALONE)
- add_definitions(-DLL_STANDALONE=1)
+if (USESYSTEMLIBS)
+ add_definitions(-DLL_USESYSTEMLIBS=1)
if (LINUX AND ${ARCH} STREQUAL "i686")
add_definitions(-march=pentiumpro)
endif (LINUX AND ${ARCH} STREQUAL "i686")
-else (STANDALONE)
+else (USESYSTEMLIBS)
set(${ARCH}_linux_INCLUDES
ELFIO
atk-1.0
@@ -243,8 +249,6 @@ else (STANDALONE)
gtk-2.0
pango-1.0
)
-endif (STANDALONE)
+endif (USESYSTEMLIBS)
-if(SERVER)
- include_directories(${LIBS_PREBUILT_DIR}/include/havok)
-endif(SERVER)
+endif(NOT DEFINED ${CMAKE_CURRENT_LIST_FILE}_INCLUDED)
diff --git a/indra/cmake/APR.cmake b/indra/cmake/APR.cmake
index 180504d286..1a01671002 100644..100755
--- a/indra/cmake/APR.cmake
+++ b/indra/cmake/APR.cmake
@@ -8,9 +8,9 @@ set(APR_FIND_REQUIRED ON)
set(APRUTIL_FIND_QUIETLY ON)
set(APRUTIL_FIND_REQUIRED ON)
-if (STANDALONE)
+if (USESYSTEMLIBS)
include(FindAPR)
-else (STANDALONE)
+else (USESYSTEMLIBS)
use_prebuilt_binary(apr_suite)
if (WINDOWS)
if (LLCOMMON_LINK_SHARED)
@@ -32,32 +32,24 @@ else (STANDALONE)
)
elseif (DARWIN)
if (LLCOMMON_LINK_SHARED)
- set(APR_selector "0.3.7.dylib")
- set(APRUTIL_selector "0.3.8.dylib")
+ set(APR_selector "0.dylib")
+ set(APRUTIL_selector "0.dylib")
else (LLCOMMON_LINK_SHARED)
set(APR_selector "a")
set(APRUTIL_selector "a")
endif (LLCOMMON_LINK_SHARED)
- set(APR_LIBRARIES
- debug ${ARCH_PREBUILT_DIRS_DEBUG}/libapr-1.${APR_selector}
- optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libapr-1.${APR_selector}
- )
- set(APRUTIL_LIBRARIES
- debug ${ARCH_PREBUILT_DIRS_DEBUG}/libaprutil-1.${APRUTIL_selector}
- optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libaprutil-1.${APRUTIL_selector}
- )
+ set(APR_LIBRARIES libapr-1.${APR_selector})
+ set(APRUTIL_LIBRARIES libaprutil-1.${APRUTIL_selector})
set(APRICONV_LIBRARIES iconv)
else (WINDOWS)
set(APR_LIBRARIES apr-1)
set(APRUTIL_LIBRARIES aprutil-1)
set(APRICONV_LIBRARIES iconv)
endif (WINDOWS)
- set(APR_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/include/apr-1)
+ set(APR_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/include/apr-1)
if (LINUX)
- if (VIEWER)
list(APPEND APRUTIL_LIBRARIES ${DB_LIBRARIES} uuid)
- endif (VIEWER)
list(APPEND APRUTIL_LIBRARIES ${DB_LIBRARIES} rt)
endif (LINUX)
-endif (STANDALONE)
+endif (USESYSTEMLIBS)
diff --git a/indra/cmake/Audio.cmake b/indra/cmake/Audio.cmake
index d23bc2f9c6..f95439245a 100644..100755
--- a/indra/cmake/Audio.cmake
+++ b/indra/cmake/Audio.cmake
@@ -1,14 +1,14 @@
# -*- cmake -*-
include(Prebuilt)
-if (STANDALONE)
+if (USESYSTEMLIBS)
include(FindPkgConfig)
pkg_check_modules(OGG REQUIRED ogg)
pkg_check_modules(VORBIS REQUIRED vorbis)
pkg_check_modules(VORBISENC REQUIRED vorbisenc)
pkg_check_modules(VORBISFILE REQUIRED vorbisfile)
-else (STANDALONE)
- use_prebuilt_binary(ogg-vorbis)
+else (USESYSTEMLIBS)
+ use_prebuilt_binary(ogg_vorbis)
set(VORBIS_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include)
set(VORBISENC_INCLUDE_DIRS ${VORBIS_INCLUDE_DIRS})
set(VORBISFILE_INCLUDE_DIRS ${VORBIS_INCLUDE_DIRS})
@@ -32,7 +32,7 @@ else (STANDALONE)
set(VORBISENC_LIBRARIES vorbisenc)
set(VORBISFILE_LIBRARIES vorbisfile)
endif (WINDOWS)
-endif (STANDALONE)
+endif (USESYSTEMLIBS)
link_directories(
${VORBIS_LIBRARY_DIRS}
diff --git a/indra/cmake/BerkeleyDB.cmake b/indra/cmake/BerkeleyDB.cmake
index e3ca0fd77d..ee670ac650 100644..100755
--- a/indra/cmake/BerkeleyDB.cmake
+++ b/indra/cmake/BerkeleyDB.cmake
@@ -1,16 +1,17 @@
# -*- cmake -*-
-
+include(Prebuilt)
set(DB_FIND_QUIETLY ON)
set(DB_FIND_REQUIRED ON)
-if (STANDALONE)
+if (USESYSTEMLIBS)
include(FindBerkeleyDB)
-else (STANDALONE)
+else (USESYSTEMLIBS)
if (LINUX)
# Need to add dependency pthread explicitely to support ld.gold.
- set(DB_LIBRARIES db-4.2 pthread)
+ use_prebuilt_binary(db)
+ set(DB_LIBRARIES db-5.1 pthread)
else (LINUX)
set(DB_LIBRARIES db-4.2)
endif (LINUX)
set(DB_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include)
-endif (STANDALONE)
+endif (USESYSTEMLIBS)
diff --git a/indra/cmake/Boost.cmake b/indra/cmake/Boost.cmake
index 7ce57a5572..25e54b7cbd 100644..100755
--- a/indra/cmake/Boost.cmake
+++ b/indra/cmake/Boost.cmake
@@ -4,29 +4,31 @@ include(Prebuilt)
set(Boost_FIND_QUIETLY ON)
set(Boost_FIND_REQUIRED ON)
-if (STANDALONE)
+if (USESYSTEMLIBS)
include(FindBoost)
+ set(BOOST_CONTEXT_LIBRARY boost_context-mt)
+ set(BOOST_COROUTINE_LIBRARY boost_coroutine-mt)
+ set(BOOST_FILESYSTEM_LIBRARY boost_filesystem-mt)
set(BOOST_PROGRAM_OPTIONS_LIBRARY boost_program_options-mt)
set(BOOST_REGEX_LIBRARY boost_regex-mt)
set(BOOST_SIGNALS_LIBRARY boost_signals-mt)
-else (STANDALONE)
+ set(BOOST_SYSTEM_LIBRARY boost_system-mt)
+ set(BOOST_THREAD_LIBRARY boost_thread-mt)
+else (USESYSTEMLIBS)
use_prebuilt_binary(boost)
set(Boost_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include)
+ set(BOOST_VERSION "1.55")
if (WINDOWS)
- set(BOOST_VERSION 1_39)
- if (MSVC71)
- set(BOOST_PROGRAM_OPTIONS_LIBRARY
- optimized libboost_program_options-vc71-mt-s-${BOOST_VERSION}
- debug libboost_program_options-vc71-mt-sgd-${BOOST_VERSION})
- set(BOOST_REGEX_LIBRARY
- optimized libboost_regex-vc71-mt-s-${BOOST_VERSION}
- debug libboost_regex-vc71-mt-sgd-${BOOST_VERSION})
- set(BOOST_SIGNALS_LIBRARY
- optimized libboost_signals-vc71-mt-s-${BOOST_VERSION}
- debug libboost_signals-vc71-mt-sgd-${BOOST_VERSION})
- else (MSVC71)
+ if(MSVC80)
+ # This should be obsolete at this point
+ set(BOOST_CONTEXT_LIBRARY
+ optimized libboost_context-vc80-mt-${BOOST_VERSION}
+ debug libboost_context-vc80-mt-gd-${BOOST_VERSION})
+ set(BOOST_FILESYSTEM_LIBRARY
+ optimized libboost_filesystem-vc80-mt-${BOOST_VERSION}
+ debug libboost_filesystem-vc80-mt-gd-${BOOST_VERSION})
set(BOOST_PROGRAM_OPTIONS_LIBRARY
optimized libboost_program_options-vc80-mt-${BOOST_VERSION}
debug libboost_program_options-vc80-mt-gd-${BOOST_VERSION})
@@ -36,14 +38,88 @@ else (STANDALONE)
set(BOOST_SIGNALS_LIBRARY
optimized libboost_signals-vc80-mt-${BOOST_VERSION}
debug libboost_signals-vc80-mt-gd-${BOOST_VERSION})
- endif (MSVC71)
- elseif (DARWIN)
- set(BOOST_PROGRAM_OPTIONS_LIBRARY boost_program_options-xgcc40-mt)
- set(BOOST_REGEX_LIBRARY boost_regex-xgcc40-mt)
- set(BOOST_SIGNALS_LIBRARY boost_signals-xgcc40-mt)
+ set(BOOST_SYSTEM_LIBRARY
+ optimized libboost_system-vc80-mt-${BOOST_VERSION}
+ debug libboost_system-vc80-mt-gd-${BOOST_VERSION})
+ set(BOOST_THREAD_LIBRARY
+ optimized libboost_thread-vc80-mt-${BOOST_VERSION}
+ debug libboost_thread-vc80-mt-gd-${BOOST_VERSION})
+ else(MSVC80)
+ # MSVC 10.0 config
+ set(BOOST_CONTEXT_LIBRARY
+ optimized libboost_context-mt
+ debug libboost_context-mt-gd)
+ set(BOOST_COROUTINE_LIBRARY
+ optimized libboost_coroutine-mt
+ debug libboost_coroutine-mt-gd)
+ set(BOOST_FILESYSTEM_LIBRARY
+ optimized libboost_filesystem-mt
+ debug libboost_filesystem-mt-gd)
+ set(BOOST_PROGRAM_OPTIONS_LIBRARY
+ optimized libboost_program_options-mt
+ debug libboost_program_options-mt-gd)
+ set(BOOST_REGEX_LIBRARY
+ optimized libboost_regex-mt
+ debug libboost_regex-mt-gd)
+ set(BOOST_SIGNALS_LIBRARY
+ optimized libboost_signals-mt
+ debug libboost_signals-mt-gd)
+ set(BOOST_SYSTEM_LIBRARY
+ optimized libboost_system-mt
+ debug libboost_system-mt-gd)
+ set(BOOST_THREAD_LIBRARY
+ optimized libboost_thread-mt
+ debug libboost_thread-mt-gd)
+ endif (MSVC80)
elseif (LINUX)
- set(BOOST_PROGRAM_OPTIONS_LIBRARY boost_program_options-gcc41-mt)
- set(BOOST_REGEX_LIBRARY boost_regex-gcc41-mt)
- set(BOOST_SIGNALS_LIBRARY boost_signals-gcc41-mt)
+ set(BOOST_CONTEXT_LIBRARY
+ optimized boost_context-mt
+ debug boost_context-mt-d)
+ set(BOOST_COROUTINE_LIBRARY
+ optimized boost_coroutine-mt
+ debug boost_coroutine-mt-d)
+ set(BOOST_FILESYSTEM_LIBRARY
+ optimized boost_filesystem-mt
+ debug boost_filesystem-mt-d)
+ set(BOOST_PROGRAM_OPTIONS_LIBRARY
+ optimized boost_program_options-mt
+ debug boost_program_options-mt-d)
+ set(BOOST_REGEX_LIBRARY
+ optimized boost_regex-mt
+ debug boost_regex-mt-d)
+ set(BOOST_SIGNALS_LIBRARY
+ optimized boost_signals-mt
+ debug boost_signals-mt-d)
+ set(BOOST_SYSTEM_LIBRARY
+ optimized boost_system-mt
+ debug boost_system-mt-d)
+ set(BOOST_THREAD_LIBRARY
+ optimized boost_thread-mt
+ debug boost_thread-mt-d)
+ elseif (DARWIN)
+ set(BOOST_CONTEXT_LIBRARY
+ optimized boost_context-mt
+ debug boost_context-mt-d)
+ set(BOOST_COROUTINE_LIBRARY
+ optimized boost_coroutine-mt
+ debug boost_coroutine-mt-d)
+ set(BOOST_FILESYSTEM_LIBRARY
+ optimized boost_filesystem-mt
+ debug boost_filesystem-mt-d)
+ set(BOOST_PROGRAM_OPTIONS_LIBRARY
+ optimized boost_program_options-mt
+ debug boost_program_options-mt-d)
+ set(BOOST_REGEX_LIBRARY
+ optimized boost_regex-mt
+ debug boost_regex-mt-d)
+ set(BOOST_SIGNALS_LIBRARY
+ optimized boost_signals-mt
+ debug boost_signals-mt-d)
+ set(BOOST_SYSTEM_LIBRARY
+ optimized boost_system-mt
+ debug boost_system-mt-d)
+ set(BOOST_THREAD_LIBRARY
+ optimized boost_thread-mt
+ debug boost_thread-mt-d)
endif (WINDOWS)
-endif (STANDALONE)
+endif (USESYSTEMLIBS)
diff --git a/indra/cmake/BuildPackagesInfo.cmake b/indra/cmake/BuildPackagesInfo.cmake
new file mode 100644
index 0000000000..0f574ee39a
--- /dev/null
+++ b/indra/cmake/BuildPackagesInfo.cmake
@@ -0,0 +1,10 @@
+# -*- cmake -*-
+# Construct the version and copyright information based on package data.
+include(Python)
+
+add_custom_command(OUTPUT packages-info.txt
+ COMMENT Generating packages-info.txt for the about box
+ MAIN_DEPENDENCY ${CMAKE_SOURCE_DIR}/../autobuild.xml
+ DEPENDS ${CMAKE_SOURCE_DIR}/../scripts/packages-formatter.py
+ COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/../scripts/packages-formatter.py > packages-info.txt
+ )
diff --git a/indra/cmake/BuildVersion.cmake b/indra/cmake/BuildVersion.cmake
index 60a519c9af..e618a988b8 100644..100755
--- a/indra/cmake/BuildVersion.cmake
+++ b/indra/cmake/BuildVersion.cmake
@@ -1,18 +1,57 @@
# -*- cmake -*-
+# Construct the viewer version number based on the indra/VIEWER_VERSION file
-include(Python)
+if (NOT DEFINED VIEWER_SHORT_VERSION) # will be true in indra/, false in indra/newview/
+ set(VIEWER_VERSION_BASE_FILE "${CMAKE_CURRENT_SOURCE_DIR}/newview/VIEWER_VERSION.txt")
-macro (build_version _target)
- execute_process(
- COMMAND ${PYTHON_EXECUTABLE} ${SCRIPTS_DIR}/build_version.py
- llversion${_target}.h ${LLCOMMON_INCLUDE_DIRS}
- OUTPUT_VARIABLE ${_target}_VERSION
- OUTPUT_STRIP_TRAILING_WHITESPACE
- )
+ if ( EXISTS ${VIEWER_VERSION_BASE_FILE} )
+ file(STRINGS ${VIEWER_VERSION_BASE_FILE} VIEWER_SHORT_VERSION REGEX "^[0-9]+\\.[0-9]+\\.[0-9]+")
+ string(REGEX REPLACE "^([0-9]+)\\.[0-9]+\\.[0-9]+" "\\1" VIEWER_VERSION_MAJOR ${VIEWER_SHORT_VERSION})
+ string(REGEX REPLACE "^[0-9]+\\.([0-9]+)\\.[0-9]+" "\\1" VIEWER_VERSION_MINOR ${VIEWER_SHORT_VERSION})
+ string(REGEX REPLACE "^[0-9]+\\.[0-9]+\\.([0-9]+)" "\\1" VIEWER_VERSION_PATCH ${VIEWER_SHORT_VERSION})
- if (${_target}_VERSION)
- message(STATUS "Version of ${_target} is ${${_target}_VERSION}")
- else (${_target}_VERSION)
- message(SEND_ERROR "Could not determine ${_target} version")
- endif (${_target}_VERSION)
-endmacro (build_version)
+ if (DEFINED ENV{revision})
+ set(VIEWER_VERSION_REVISION $ENV{revision})
+ message("Revision (from environment): ${VIEWER_VERSION_REVISION}")
+
+ else (DEFINED ENV{revision})
+ find_program(MERCURIAL hg)
+ find_program(WORDCOUNT wc)
+ find_program(SED sed)
+ if (DEFINED MERCURIAL AND DEFINED WORDCOUNT AND DEFINED SED)
+ execute_process(
+ COMMAND ${MERCURIAL} log -r tip:0 --template '\\n'
+ COMMAND ${WORDCOUNT} -l
+ COMMAND ${SED} "s/ //g"
+ OUTPUT_VARIABLE VIEWER_VERSION_REVISION
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+ if ("${VIEWER_VERSION_REVISION}" MATCHES "^[0-9]+$")
+ message("Revision (from hg) ${VIEWER_VERSION_REVISION}")
+ else ("${VIEWER_VERSION_REVISION}" MATCHES "^[0-9]+$")
+ message("Revision not set (repository not found?); using 0")
+ set(VIEWER_VERSION_REVISION 0 )
+ endif ("${VIEWER_VERSION_REVISION}" MATCHES "^[0-9]+$")
+ else (DEFINED MERCURIAL AND DEFINED WORDCOUNT AND DEFINED SED)
+ message("Revision not set: 'hg', 'wc' or 'sed' not found; using 0")
+ set(VIEWER_VERSION_REVISION 0)
+ endif (DEFINED MERCURIAL AND DEFINED WORDCOUNT AND DEFINED SED)
+ endif (DEFINED ENV{revision})
+ message("Building '${VIEWER_CHANNEL}' Version ${VIEWER_SHORT_VERSION}.${VIEWER_VERSION_REVISION}")
+ else ( EXISTS ${VIEWER_VERSION_BASE_FILE} )
+ message(SEND_ERROR "Cannot get viewer version from '${VIEWER_VERSION_BASE_FILE}'")
+ endif ( EXISTS ${VIEWER_VERSION_BASE_FILE} )
+
+ if ("${VIEWER_VERSION_REVISION}" STREQUAL "")
+ message("Ultimate fallback, revision was blank or not set: will use 0")
+ set(VIEWER_VERSION_REVISION 0)
+ endif ("${VIEWER_VERSION_REVISION}" STREQUAL "")
+
+ set(VIEWER_CHANNEL_VERSION_DEFINES
+ "LL_VIEWER_CHANNEL=\"${VIEWER_CHANNEL}\""
+ "LL_VIEWER_VERSION_MAJOR=${VIEWER_VERSION_MAJOR}"
+ "LL_VIEWER_VERSION_MINOR=${VIEWER_VERSION_MINOR}"
+ "LL_VIEWER_VERSION_PATCH=${VIEWER_VERSION_PATCH}"
+ "LL_VIEWER_VERSION_BUILD=${VIEWER_VERSION_REVISION}"
+ )
+endif (NOT DEFINED VIEWER_SHORT_VERSION)
diff --git a/indra/cmake/CARes.cmake b/indra/cmake/CARes.cmake
index 1850b706ac..baa55aa49d 100644..100755
--- a/indra/cmake/CARes.cmake
+++ b/indra/cmake/CARes.cmake
@@ -5,20 +5,17 @@ include(Prebuilt)
set(CARES_FIND_QUIETLY ON)
set(CARES_FIND_REQUIRED ON)
-if (STANDALONE)
+if (USESYSTEMLIBS)
include(FindCARes)
-else (STANDALONE)
+else (USESYSTEMLIBS)
use_prebuilt_binary(ares)
add_definitions("-DCARES_STATICLIB")
if (WINDOWS)
set(CARES_LIBRARIES areslib)
elseif (DARWIN)
- set(CARES_LIBRARIES
- optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libcares.a
- debug ${ARCH_PREBUILT_DIRS_DEBUG}/libcares.a
- )
+ set(CARES_LIBRARIES cares)
else (WINDOWS)
set(CARES_LIBRARIES cares)
endif (WINDOWS)
set(CARES_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/ares)
-endif (STANDALONE)
+endif (USESYSTEMLIBS)
diff --git a/indra/cmake/CMakeCopyIfDifferent.cmake b/indra/cmake/CMakeCopyIfDifferent.cmake
index 55e71ff153..55e71ff153 100644..100755
--- a/indra/cmake/CMakeCopyIfDifferent.cmake
+++ b/indra/cmake/CMakeCopyIfDifferent.cmake
diff --git a/indra/cmake/CMakeLists.txt b/indra/cmake/CMakeLists.txt
index 3f421b270b..cd7da5d6c1 100644..100755
--- a/indra/cmake/CMakeLists.txt
+++ b/indra/cmake/CMakeLists.txt
@@ -14,47 +14,67 @@ set(cmake_SOURCE_FILES
Boost.cmake
BuildVersion.cmake
CARes.cmake
- CURL.cmake
CMakeCopyIfDifferent.cmake
+ ConfigurePkgConfig.cmake
+ CURL.cmake
Copy3rdPartyLibs.cmake
- CSharpMacros.cmake
DBusGlib.cmake
+ DeploySharedLibs.cmake
DirectX.cmake
- ELFIO.cmake
+ DragDrop.cmake
EXPAT.cmake
+## ExamplePlugin.cmake
FindAPR.cmake
+ FindAutobuild.cmake
FindBerkeleyDB.cmake
FindCARes.cmake
- FindELFIO.cmake
- FindFMOD.cmake
+ FindFMODEX.cmake
+ FindGLH.cmake
+ FindGoogleBreakpad.cmake
FindGooglePerfTools.cmake
- FindMono.cmake
- FindMT.cmake
- FindMySQL.cmake
+ FindHUNSPELL.cmake
+ FindJsonCpp.cmake
+ FindNDOF.cmake
FindOpenJPEG.cmake
+ FindSCP.cmake
+ FindURIPARSER.cmake
FindXmlRpcEpi.cmake
FindZLIB.cmake
- FMOD.cmake
+ FMODEX.cmake
FreeType.cmake
- GStreamer010Plugin.cmake
+ GLEXT.cmake
+ GLH.cmake
+ GLOD.cmake
+## GStreamer010Plugin.cmake
+ GetPrerequisites_2_8.cmake
+## Glui.cmake
+ Glut.cmake
+ GoogleBreakpad.cmake
+ GoogleMock.cmake
GooglePerfTools.cmake
+ Havok.cmake
+ Hunspell.cmake
JPEG.cmake
+ JsonCpp.cmake
LLAddBuildTest.cmake
+ LLAppearance.cmake
+ LLAppearanceUtility.cmake
LLAudio.cmake
LLCharacter.cmake
LLCommon.cmake
LLCrashLogger.cmake
- LLDatabase.cmake
LLImage.cmake
LLImageJ2COJ.cmake
LLInventory.cmake
LLKDU.cmake
+ LLLogin.cmake
LLMath.cmake
LLMessage.cmake
+ LLPhysicsExtensions.cmake
LLPlugin.cmake
LLPrimitive.cmake
LLRender.cmake
- LLScene.cmake
+ LLSharedLibs.cmake
LLTestCommand.cmake
LLUI.cmake
LLVFS.cmake
@@ -62,21 +82,27 @@ set(cmake_SOURCE_FILES
LLXML.cmake
LScript.cmake
Linking.cmake
- MonoEmbed.cmake
- MySQL.cmake
+## MediaPluginBase.cmake
NDOF.cmake
OPENAL.cmake
OpenGL.cmake
OpenJPEG.cmake
OpenSSL.cmake
PNG.cmake
- Python.cmake
+## PluginAPI.cmake
Prebuilt.cmake
+ PulseAudio.cmake
+ Python.cmake
+## QuickTimePlugin.cmake
TemplateCheck.cmake
Tut.cmake
UI.cmake
UnixInstall.cmake
+ URIPARSER.cmake
Variables.cmake
+ ViewerMiscLibs.cmake
+ VisualLeakDetector.cmake
+## WebKitLibPlugin.cmake
XmlRpcEpi.cmake
ZLIB.cmake
)
@@ -85,13 +111,8 @@ source_group("Shared Rules" FILES ${cmake_SOURCE_FILES})
set(master_SOURCE_FILES
../CMakeLists.txt
- ../develop.py
)
-if (SERVER)
- list(APPEND master_SOURCE_FILES ../Server.cmake)
-endif (SERVER)
-
source_group("Master Rules" FILES ${master_SOURCE_FILES})
set_source_files_properties(${cmake_SOURCE_FILES} ${master_SOURCE_FILES}
diff --git a/indra/cmake/CSharpMacros.cmake b/indra/cmake/CSharpMacros.cmake
deleted file mode 100644
index a4dd815043..0000000000
--- a/indra/cmake/CSharpMacros.cmake
+++ /dev/null
@@ -1,142 +0,0 @@
-# - This is a support module for easy Mono/C# handling with CMake
-# It defines the following macros:
-#
-# ADD_CS_LIBRARY (<target> <source>)
-# ADD_CS_EXECUTABLE (<target> <source>)
-# INSTALL_GAC (<target>)
-#
-# Note that the order of the arguments is important.
-#
-# You can optionally set the variable CS_FLAGS to tell the macros whether
-# to pass additional flags to the compiler. This is particularly useful to
-# set assembly references, unsafe code, etc... These flags are always reset
-# after the target was added so you don't have to care about that.
-#
-# copyright (c) 2007 Arno Rehn arno@arnorehn.de
-#
-# Redistribution and use is allowed according to the terms of the GPL license.
-
-
-# ----- support macros -----
-MACRO(GET_CS_LIBRARY_TARGET_DIR)
- IF (NOT LIBRARY_OUTPUT_PATH)
- SET(CS_LIBRARY_TARGET_DIR ${CMAKE_CURRENT_BINARY_DIR})
- ELSE (NOT LIBRARY_OUTPUT_PATH)
- SET(CS_LIBRARY_TARGET_DIR ${LIBRARY_OUTPUT_PATH})
- ENDIF (NOT LIBRARY_OUTPUT_PATH)
-ENDMACRO(GET_CS_LIBRARY_TARGET_DIR)
-
-MACRO(GET_CS_EXECUTABLE_TARGET_DIR)
- IF (NOT EXECUTABLE_OUTPUT_PATH)
- SET(CS_EXECUTABLE_TARGET_DIR ${CMAKE_CURRENT_BINARY_DIR})
- ELSE (NOT EXECUTABLE_OUTPUT_PATH)
- SET(CS_EXECUTABLE_TARGET_DIR ${EXECUTABLE_OUTPUT_PATH})
- ENDIF (NOT EXECUTABLE_OUTPUT_PATH)
-ENDMACRO(GET_CS_EXECUTABLE_TARGET_DIR)
-
-MACRO(MAKE_PROPER_FILE_LIST)
- FOREACH(file ${ARGN})
- # first assume it's a relative path
- FILE(GLOB globbed ${CMAKE_CURRENT_SOURCE_DIR}/${file})
- IF(globbed)
- FILE(TO_NATIVE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/${file} native)
- ELSE(globbed)
- FILE(TO_NATIVE_PATH ${file} native)
- ENDIF(globbed)
- SET(proper_file_list ${proper_file_list} ${native})
- SET(native "")
- ENDFOREACH(file)
-ENDMACRO(MAKE_PROPER_FILE_LIST)
-# ----- end support macros -----
-
-MACRO(ADD_CS_LIBRARY target)
- GET_CS_LIBRARY_TARGET_DIR()
-
- SET(target_DLL "${CS_LIBRARY_TARGET_DIR}/${target}.dll")
- MAKE_PROPER_FILE_LIST(${ARGN})
- FILE(RELATIVE_PATH relative_path ${CMAKE_BINARY_DIR} ${target_DLL})
-
- SET(target_KEY "${CMAKE_CURRENT_SOURCE_DIR}/${target}.key")
- SET(target_CS_FLAGS "${CS_FLAGS}")
- IF(${target}_CS_FLAGS)
- LIST(APPEND target_CS_FLAGS ${${target}_CS_FLAGS})
- ENDIF(${target}_CS_FLAGS)
- IF(EXISTS ${target_KEY})
- LIST(APPEND target_CS_FLAGS -keyfile:${target_KEY})
- ENDIF(EXISTS ${target_KEY})
-
- FOREACH(ref ${${target}_REFS})
- SET(ref_DLL ${CMAKE_CURRENT_BINARY_DIR}/${ref}.dll)
- IF(EXISTS ${ref_DLL})
- LIST(APPEND target_CS_FLAGS -r:${ref_DLL})
- ELSE(EXISTS ${ref_DLL})
- LIST(APPEND target_CS_FLAGS -r:${ref})
- ENDIF(EXISTS ${ref_DLL})
- ENDFOREACH(ref ${${target}_REFS})
-
- ADD_CUSTOM_COMMAND (OUTPUT ${target_DLL}
- COMMAND ${MCS_EXECUTABLE} ${target_CS_FLAGS} -out:${target_DLL} -target:library ${proper_file_list}
- MAIN_DEPENDENCY ${proper_file_list}
- DEPENDS ${ARGN}
- COMMENT "Building ${relative_path}")
- ADD_CUSTOM_TARGET (${target} ALL DEPENDS ${target_DLL})
-
- FOREACH(ref ${${target}_REFS})
- GET_TARGET_PROPERTY(is_target ${ref} TYPE)
- IF(is_target)
- ADD_DEPENDENCIES(${target} ${ref})
- ENDIF(is_target)
- ENDFOREACH(ref ${${target}_REFS})
-
- SET(relative_path "")
- SET(proper_file_list "")
-ENDMACRO(ADD_CS_LIBRARY)
-
-MACRO(ADD_CS_EXECUTABLE target)
- GET_CS_EXECUTABLE_TARGET_DIR()
-
- # Seems like cmake doesn't like the ".exe" ending for custom commands.
- # If we call it ${target}.exe, 'make' will later complain about a missing rule.
- # Create a fake target instead.
- SET(target_EXE "${CS_EXECUTABLE_TARGET_DIR}/${target}.exe")
- SET(target_TOUCH "${CS_EXECUTABLE_TARGET_DIR}/${target}.exe-built")
- GET_DIRECTORY_PROPERTY(clean ADDITIONAL_MAKE_CLEAN_FILES)
- LIST(APPEND clean ${target}.exe)
- SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${clean}")
- MAKE_PROPER_FILE_LIST(${ARGN})
- FILE(RELATIVE_PATH relative_path ${CMAKE_BINARY_DIR} ${target_EXE})
- SET(target_CS_FLAGS "${CS_FLAGS}")
-
- FOREACH(ref ${${target}_REFS})
- SET(ref_DLL ${CMAKE_CURRENT_SOURCE_DIR}/${ref}.dll)
- IF(EXISTS ${ref_DLL})
- LIST(APPEND target_CS_FLAGS -r:${ref_DLL})
- ELSE(EXISTS ${ref_DLL})
- LIST(APPEND target_CS_FLAGS -r:${ref})
- ENDIF(EXISTS ${ref_DLL})
- ENDFOREACH(ref ${${target}_REFS})
-
- ADD_CUSTOM_COMMAND (OUTPUT "${target_TOUCH}"
- COMMAND ${MCS_EXECUTABLE} ${target_CS_FLAGS} -out:${target_EXE} ${proper_file_list}
- COMMAND ${CMAKE_COMMAND} -E touch ${target_TOUCH}
- MAIN_DEPENDENCY ${ARGN}
- DEPENDS ${ARGN}
- COMMENT "Building ${relative_path}")
- ADD_CUSTOM_TARGET ("${target}" ALL DEPENDS "${target_TOUCH}")
-
- FOREACH(ref ${${target}_REFS})
- GET_TARGET_PROPERTY(is_target ${ref} TYPE)
- IF(is_target)
- ADD_DEPENDENCIES(${target} ${ref})
- ENDIF(is_target)
- ENDFOREACH(ref ${${target}_REFS})
-
- SET(relative_path "")
- SET(proper_file_list "")
-ENDMACRO(ADD_CS_EXECUTABLE)
-
-MACRO(INSTALL_GAC target)
- GET_CS_LIBRARY_TARGET_DIR()
-
- INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${GACUTIL_EXECUTABLE} -i ${CS_LIBRARY_TARGET_DIR}/${target}.dll -package 2.0)")
-ENDMACRO(INSTALL_GAC target)
diff --git a/indra/cmake/CURL.cmake b/indra/cmake/CURL.cmake
index 9aba08e573..04afae594d 100644..100755
--- a/indra/cmake/CURL.cmake
+++ b/indra/cmake/CURL.cmake
@@ -4,9 +4,9 @@ include(Prebuilt)
set(CURL_FIND_QUIETLY ON)
set(CURL_FIND_REQUIRED ON)
-if (STANDALONE)
+if (USESYSTEMLIBS)
include(FindCURL)
-else (STANDALONE)
+else (USESYSTEMLIBS)
use_prebuilt_binary(curl)
if (WINDOWS)
set(CURL_LIBRARIES
@@ -16,4 +16,4 @@ else (STANDALONE)
set(CURL_LIBRARIES libcurl.a)
endif (WINDOWS)
set(CURL_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include)
-endif (STANDALONE)
+endif (USESYSTEMLIBS)
diff --git a/indra/cmake/ConfigurePkgConfig.cmake b/indra/cmake/ConfigurePkgConfig.cmake
new file mode 100644
index 0000000000..82ee3e7a5b
--- /dev/null
+++ b/indra/cmake/ConfigurePkgConfig.cmake
@@ -0,0 +1,74 @@
+# -*- cmake -*-
+
+SET(DEBUG_PKG_CONFIG "YES")
+
+# Don't change this if manually set by user.
+IF("$ENV{PKG_CONFIG_LIBDIR}" STREQUAL "")
+
+ # Guess at architecture-specific system library paths.
+ if (WORD_SIZE EQUAL 32)
+ SET(PKG_CONFIG_NO_MULTI_GUESS /usr/lib32 /usr/lib)
+ SET(PKG_CONFIG_NO_MULTI_LOCAL_GUESS /usr/local/lib32 /usr/local/lib)
+ SET(PKG_CONFIG_MULTI_GUESS /usr/lib/i386-linux-gnu)
+ SET(PKG_CONFIG_MULTI_LOCAL_GUESS /usr/local/lib/i386-linux-gnu)
+ else (WORD_SIZE EQUAL 32)
+ SET(PKG_CONFIG_NO_MULTI_GUESS /usr/lib64 /usr/lib)
+ SET(PKG_CONFIG_NO_MULTI_LOCAL_GUESS /usr/local/lib64 /usr/local/lib)
+ SET(PKG_CONFIG_MULTI_GUESS /usr/local/lib/x86_64-linux-gnu)
+ SET(PKG_CONFIG_MULTI_LOCAL_GUESS /usr/local/lib/x86_64-linux-gnu)
+ endif (WORD_SIZE EQUAL 32)
+
+ # Use DPKG architecture, if available.
+ IF (${DPKG_ARCH})
+ SET(PKG_CONFIG_MULTI_GUESS /usr/lib/${DPKG_ARCH})
+ SET(PKG_CONFIG_MULTI_LOCAL_GUESS /usrlocal/lib/${DPKG_ARCH})
+ ENDIF (${DPKG_ARCH})
+
+ # Explicitly include anything listed in PKG_CONFIG_PATH
+ string(REPLACE ":" ";" PKG_CONFIG_PATH_LIST "$ENV{PKG_CONFIG_PATH}")
+ FOREACH(PKG_CONFIG_DIR ${PKG_CONFIG_PATH_LIST})
+ SET(VALID_PKG_LIBDIRS "${VALID_PKG_LIBDIRS}:${PKG_CONFIG_DIR}/pkgconfig")
+ ENDFOREACH(PKG_CONFIG_DIR)
+
+ # Look for valid pkgconfig directories.
+ FIND_PATH(PKG_CONFIG_ENV pkgconfig ENV LD_LIBRARY_PATH)
+ FIND_PATH(PKG_CONFIG_MULTI pkgconfig HINT ${PKG_CONFIG_MULTI_GUESS})
+ FIND_PATH(PKG_CONFIG_MULTI_LOCAL pkgconfig HINT ${PKG_CONFIG_MULTI_LOCAL_GUESS})
+ FIND_PATH(PKG_CONFIG_NO_MULTI pkgconfig HINT ${PKG_CONFIG_NO_MULTI_GUESS})
+ FIND_PATH(PKG_CONFIG_NO_MULTI_LOCAL pkgconfig HINT ${PKG_CONFIG_NO_MULTI_LOCAL_GUESS})
+
+ # Add anything we found to our list.
+ IF(NOT PKG_CONFIG_ENV STREQUAL PKG_CONFIG_ENV-NOTFOUND)
+ SET(VALID_PKG_LIBDIRS "${VALID_PKG_LIBDIRS}:${PKG_CONFIG_ENV}/pkgconfig")
+ ENDIF(NOT PKG_CONFIG_ENV STREQUAL PKG_CONFIG_ENV-NOTFOUND)
+
+ IF(NOT PKG_CONFIG_MULTI STREQUAL PKG_CONFIG_MULTI-NOTFOUND)
+ SET(VALID_PKG_LIBDIRS "${VALID_PKG_LIBDIRS}:${PKG_CONFIG_MULTI}/pkgconfig")
+ ENDIF(NOT PKG_CONFIG_MULTI STREQUAL PKG_CONFIG_MULTI-NOTFOUND)
+
+ IF(NOT PKG_CONFIG_MULTI_LOCAL STREQUAL PKG_CONFIG_MULTI_LOCAL-NOTFOUND)
+ SET(VALID_PKG_LIBDIRS "${VALID_PKG_LIBDIRS}:${PKG_CONFIG_MULTI_LOCAL}/pkgconfig")
+ ENDIF(NOT PKG_CONFIG_MULTI_LOCAL STREQUAL PKG_CONFIG_MULTI_LOCAL-NOTFOUND)
+
+ IF(NOT PKG_CONFIG_NO_MULTI STREQUAL PKG_CONFIG_NO_MULTI-NOTFOUND)
+ SET(VALID_PKG_LIBDIRS "${VALID_PKG_LIBDIRS}:${PKG_CONFIG_NO_MULTI}/pkgconfig")
+ ENDIF(NOT PKG_CONFIG_NO_MULTI STREQUAL PKG_CONFIG_NO_MULTI-NOTFOUND)
+
+ IF(NOT PKG_CONFIG_NO_MULTI_LOCAL STREQUAL PKG_CONFIG_NO_MULTI_LOCAL-NOTFOUND)
+ SET(VALID_PKG_LIBDIRS "${VALID_PKG_LIBDIRS}:${PKG_CONFIG_NO_MULTI_LOCAL}/pkgconfig")
+ ENDIF(NOT PKG_CONFIG_NO_MULTI_LOCAL STREQUAL PKG_CONFIG_NO_MULTI_LOCAL-NOTFOUND)
+
+ # Also add some non-architecture specific package locations.
+ SET(VALID_PKG_LIBDIRS "${VALID_PKG_LIBDIRS}:/usr/share/pkgconfig:/usr/local/share/pkgconfig")
+
+ # Remove first unwanted ':'
+ string(SUBSTRING ${VALID_PKG_LIBDIRS} 1 -1 VALID_PKG_LIBDIRS)
+
+ # Set PKG_CONFIG_LIBDIR environment.
+ SET(ENV{PKG_CONFIG_LIBDIR} ${VALID_PKG_LIBDIRS})
+ENDIF("$ENV{PKG_CONFIG_LIBDIR}" STREQUAL "")
+
+IF(DEBUG_PKG_CONFIG)
+ MESSAGE(STATUS "Using PKG_CONFIG_LIBDIR=$ENV{PKG_CONFIG_LIBDIR}")
+ENDIF(DEBUG_PKG_CONFIG)
+
diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake
index 1b08c3fd2e..a6fd756c88 100644..100755
--- a/indra/cmake/Copy3rdPartyLibs.cmake
+++ b/indra/cmake/Copy3rdPartyLibs.cmake
@@ -5,6 +5,7 @@
# VisualStudio.
include(CMakeCopyIfDifferent)
+include(Linking)
###################################################################
# set up platform specific lists of files that need to be copied
@@ -16,9 +17,10 @@ if(WINDOWS)
#*******************************
# VIVOX - *NOTE: no debug version
- set(vivox_src_dir "${CMAKE_SOURCE_DIR}/newview/vivox-runtime/i686-win32")
+ set(vivox_src_dir "${ARCH_PREBUILT_DIRS_RELEASE}")
set(vivox_files
SLVoice.exe
+ ca-bundle.crt
libsndfile-1.dll
vivoxplatform.dll
vivoxsdk.dll
@@ -30,135 +32,162 @@ if(WINDOWS)
#*******************************
# Misc shared libs
- # *TODO - update this to use LIBS_PREBUILT_DIR and LL_ARCH_DIR variables
- # or ARCH_PREBUILT_DIRS
- set(debug_src_dir "${CMAKE_SOURCE_DIR}/../libraries/i686-win32/lib/debug")
+ set(debug_src_dir "${ARCH_PREBUILT_DIRS_DEBUG}")
set(debug_files
openjpegd.dll
libapr-1.dll
libaprutil-1.dll
libapriconv-1.dll
+ ssleay32.dll
+ libeay32.dll
+ glod.dll
+ libhunspell.dll
)
- # *TODO - update this to use LIBS_PREBUILT_DIR and LL_ARCH_DIR variables
- # or ARCH_PREBUILT_DIRS
- set(release_src_dir "${CMAKE_SOURCE_DIR}/../libraries/i686-win32/lib/release")
+ set(release_src_dir "${ARCH_PREBUILT_DIRS_RELEASE}")
set(release_files
openjpeg.dll
libapr-1.dll
libaprutil-1.dll
libapriconv-1.dll
+ ssleay32.dll
+ libeay32.dll
+ glod.dll
+ libhunspell.dll
)
- if(USE_GOOGLE_PERFTOOLS)
+ if(USE_TCMALLOC)
set(debug_files ${debug_files} libtcmalloc_minimal-debug.dll)
set(release_files ${release_files} libtcmalloc_minimal.dll)
- endif(USE_GOOGLE_PERFTOOLS)
-
- if (FMOD)
- set(debug_files ${debug_files} fmod.dll)
- set(release_files ${release_files} fmod.dll)
- endif (FMOD)
-
-#*******************************
-# Copy MS C runtime dlls, required for packaging.
-# *TODO - Adapt this to support VC9
-if (MSVC80)
- FIND_PATH(debug_msvc8_redist_path msvcr80d.dll
- PATHS
- ${MSVC_DEBUG_REDIST_PATH}
- [HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\8.0\\Setup\\VC;ProductDir]/redist/Debug_NonRedist/x86/Microsoft.VC80.DebugCRT
- NO_DEFAULT_PATH
- NO_DEFAULT_PATH
- )
+ endif(USE_TCMALLOC)
- if(EXISTS ${debug_msvc8_redist_path})
- set(debug_msvc8_files
- msvcr80d.dll
- msvcp80d.dll
- Microsoft.VC80.DebugCRT.manifest
- )
+ if (FMODEX)
+ set(debug_files ${debug_files} fmodexL.dll)
+ set(release_files ${release_files} fmodex.dll)
+ endif (FMODEX)
- copy_if_different(
- ${debug_msvc8_redist_path}
- "${SHARED_LIB_STAGING_DIR_DEBUG}"
- out_targets
- ${debug_msvc8_files}
- )
- set(third_party_targets ${third_party_targets} ${out_targets})
-
- endif (EXISTS ${debug_msvc8_redist_path})
-
- FIND_PATH(release_msvc8_redist_path msvcr80.dll
- PATHS
- ${MSVC_REDIST_PATH}
- [HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\8.0\\Setup\\VC;ProductDir]/redist/x86/Microsoft.VC80.CRT
- NO_DEFAULT_PATH
- NO_DEFAULT_PATH
- )
-
- if(EXISTS ${release_msvc8_redist_path})
- set(release_msvc8_files
- msvcr80.dll
- msvcp80.dll
- Microsoft.VC80.CRT.manifest
+ #*******************************
+ # Copy MS C runtime dlls, required for packaging.
+ # *TODO - Adapt this to support VC9
+ if (MSVC80)
+ list(APPEND LMSVC_VER 80)
+ list(APPEND LMSVC_VERDOT 8.0)
+ elseif (MSVC_VERSION EQUAL 1600) # VisualStudio 2010
+ MESSAGE(STATUS "MSVC_VERSION ${MSVC_VERSION}")
+ elseif (MSVC_VERSION EQUAL 1800) # VisualStudio 2013, which is (sigh) VS 12
+ list(APPEND LMSVC_VER 120)
+ list(APPEND LMSVC_VERDOT 12.0)
+ else (MSVC80)
+ MESSAGE(WARNING "New MSVC_VERSION ${MSVC_VERSION} of MSVC: adapt Copy3rdPartyLibs.cmake")
+ endif (MSVC80)
+
+ # try to copy VS2010 redist independently of system version
+ list(APPEND LMSVC_VER 100)
+ list(APPEND LMSVC_VERDOT 10.0)
+
+ list(LENGTH LMSVC_VER count)
+ math(EXPR count "${count}-1")
+ foreach(i RANGE ${count})
+ list(GET LMSVC_VER ${i} MSVC_VER)
+ list(GET LMSVC_VERDOT ${i} MSVC_VERDOT)
+ MESSAGE(STATUS "Copying redist libs for VC ${MSVC_VERDOT}")
+ FIND_PATH(debug_msvc_redist_path NAME msvcr${MSVC_VER}d.dll
+ PATHS
+ [HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\${MSVC_VERDOT}\\Setup\\VC;ProductDir]/redist/Debug_NonRedist/x86/Microsoft.VC${MSVC_VER}.DebugCRT
+ [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Windows;Directory]/SysWOW64
+ [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Windows;Directory]/System32
+ ${MSVC_DEBUG_REDIST_PATH}
+ NO_DEFAULT_PATH
)
- copy_if_different(
- ${release_msvc8_redist_path}
- "${SHARED_LIB_STAGING_DIR_RELEASE}"
- out_targets
- ${release_msvc8_files}
+ if(EXISTS ${debug_msvc_redist_path})
+ set(debug_msvc_files
+ msvcr${MSVC_VER}d.dll
+ msvcp${MSVC_VER}d.dll
+ )
+
+ copy_if_different(
+ ${debug_msvc_redist_path}
+ "${SHARED_LIB_STAGING_DIR_DEBUG}"
+ out_targets
+ ${debug_msvc_files}
+ )
+ set(third_party_targets ${third_party_targets} ${out_targets})
+
+ unset(debug_msvc_redist_path CACHE)
+ endif()
+
+ FIND_PATH(release_msvc_redist_path NAME msvcr${MSVC_VER}.dll
+ PATHS
+ [HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\${MSVC_VERDOT}\\Setup\\VC;ProductDir]/redist/x86/Microsoft.VC${MSVC_VER}.CRT
+ [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Windows;Directory]/SysWOW64
+ [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Windows;Directory]/System32
+ ${MSVC_REDIST_PATH}
+ NO_DEFAULT_PATH
)
- set(third_party_targets ${third_party_targets} ${out_targets})
- copy_if_different(
- ${release_msvc8_redist_path}
- "${SHARED_LIB_STAGING_DIR_RELWITHDEBINFO}"
- out_targets
- ${release_msvc8_files}
- )
- set(third_party_targets ${third_party_targets} ${out_targets})
-
- endif (EXISTS ${release_msvc8_redist_path})
-endif (MSVC80)
+ if(EXISTS ${release_msvc_redist_path})
+ set(release_msvc_files
+ msvcr${MSVC_VER}.dll
+ msvcp${MSVC_VER}.dll
+ )
+
+ copy_if_different(
+ ${release_msvc_redist_path}
+ "${SHARED_LIB_STAGING_DIR_RELEASE}"
+ out_targets
+ ${release_msvc_files}
+ )
+ set(third_party_targets ${third_party_targets} ${out_targets})
+
+ copy_if_different(
+ ${release_msvc_redist_path}
+ "${SHARED_LIB_STAGING_DIR_RELWITHDEBINFO}"
+ out_targets
+ ${release_msvc_files}
+ )
+ set(third_party_targets ${third_party_targets} ${out_targets})
+
+ unset(release_msvc_redist_path CACHE)
+ endif()
+ endforeach()
elseif(DARWIN)
set(SHARED_LIB_STAGING_DIR_DEBUG "${SHARED_LIB_STAGING_DIR}/Debug/Resources")
set(SHARED_LIB_STAGING_DIR_RELWITHDEBINFO "${SHARED_LIB_STAGING_DIR}/RelWithDebInfo/Resources")
set(SHARED_LIB_STAGING_DIR_RELEASE "${SHARED_LIB_STAGING_DIR}/Release/Resources")
- set(vivox_src_dir "${CMAKE_SOURCE_DIR}/newview/vivox-runtime/universal-darwin")
+ set(vivox_src_dir "${ARCH_PREBUILT_DIRS_RELEASE}")
set(vivox_files
SLVoice
+ ca-bundle.crt
libsndfile.dylib
libvivoxoal.dylib
libortp.dylib
libvivoxplatform.dylib
libvivoxsdk.dylib
)
- # *TODO - update this to use LIBS_PREBUILT_DIR and LL_ARCH_DIR variables
- # or ARCH_PREBUILT_DIRS
- set(debug_src_dir "${CMAKE_SOURCE_DIR}/../libraries/universal-darwin/lib_debug")
+ set(debug_src_dir "${ARCH_PREBUILT_DIRS_DEBUG}")
set(debug_files
)
- # *TODO - update this to use LIBS_PREBUILT_DIR and LL_ARCH_DIR variables
- # or ARCH_PREBUILT_DIRS
- set(release_src_dir "${CMAKE_SOURCE_DIR}/../libraries/universal-darwin/lib_release")
+ set(release_src_dir "${ARCH_PREBUILT_DIRS_RELEASE}")
set(release_files
- libapr-1.0.3.7.dylib
+ libapr-1.0.dylib
libapr-1.dylib
- libaprutil-1.0.3.8.dylib
+ libaprutil-1.0.dylib
libaprutil-1.dylib
- libexpat.0.5.0.dylib
+ libexception_handler.dylib
+ libexpat.1.5.2.dylib
libexpat.dylib
- libllqtwebkit.dylib
+ libGLOD.dylib
+ libhunspell-1.3.0.dylib
libndofdev.dylib
- libexception_handler.dylib
)
- # fmod is statically linked on darwin
- set(fmod_files "")
+ if (FMODEX)
+ set(debug_files ${debug_files} libfmodexL.dylib)
+ set(release_files ${release_files} libfmodex.dylib)
+ endif (FMODEX)
elseif(LINUX)
# linux is weird, multiple side by side configurations aren't supported
@@ -167,7 +196,7 @@ elseif(LINUX)
set(SHARED_LIB_STAGING_DIR_RELWITHDEBINFO "${SHARED_LIB_STAGING_DIR}")
set(SHARED_LIB_STAGING_DIR_RELEASE "${SHARED_LIB_STAGING_DIR}")
- set(vivox_src_dir "${CMAKE_SOURCE_DIR}/newview/vivox-runtime/i686-linux")
+ set(vivox_src_dir "${ARCH_PREBUILT_DIRS_RELEASE}")
set(vivox_files
libsndfile.so.1
libortp.so
@@ -175,43 +204,46 @@ elseif(LINUX)
libvivoxplatform.so
libvivoxsdk.so
SLVoice
+ # ca-bundle.crt #No cert for linux. It is actually still 3.2SDK.
)
# *TODO - update this to use LIBS_PREBUILT_DIR and LL_ARCH_DIR variables
# or ARCH_PREBUILT_DIRS
- set(debug_src_dir "${CMAKE_SOURCE_DIR}/../libraries/i686-linux/lib_debug")
+ set(debug_src_dir "${ARCH_PREBUILT_DIRS_DEBUG}")
set(debug_files
)
# *TODO - update this to use LIBS_PREBUILT_DIR and LL_ARCH_DIR variables
# or ARCH_PREBUILT_DIRS
- set(release_src_dir "${CMAKE_SOURCE_DIR}/../libraries/i686-linux/lib_release_client")
+ set(release_src_dir "${ARCH_PREBUILT_DIRS_RELEASE}")
# *FIX - figure out what to do with duplicate libalut.so here -brad
set(release_files
libapr-1.so.0
libaprutil-1.so.0
libatk-1.0.so
- libbreakpad_client.so.0
- libcrypto.so.0.9.7
- libdb-4.2.so
+ libdb-5.1.so
libexpat.so
libexpat.so.1
- libgmock_main.so
- libgmock.so.0
+ libfreetype.so.6.6.2
+ libfreetype.so.6
+ libGLOD.so
libgmodule-2.0.so
libgobject-2.0.so
- libgtest_main.so
- libgtest.so.0
+ libhunspell-1.3.so.0.0.0
libopenal.so
libopenjpeg.so
- libssl.so
- libstacktrace.so
- libtcmalloc.so
- libuuid.so.1
- libssl.so.0.9.7
+ libuuid.so.16
+ libuuid.so.16.0.22
+ libfontconfig.so.1.8.0
+ libfontconfig.so.1
)
- if (FMOD)
- set(release_files ${release_files} "libfmod-3.75.so")
- endif (FMOD)
+ if (USE_TCMALLOC)
+ set(release_files ${release_files} "libtcmalloc_minimal.so")
+ endif (USE_TCMALLOC)
+
+ if (FMODEX)
+ set(debug_files ${debug_files} "libfmodexL.so")
+ set(release_files ${release_files} "libfmodex.so")
+ endif (FMODEX)
else(WINDOWS)
message(STATUS "WARNING: unrecognized platform for staging 3rd party libs, skipping...")
@@ -226,8 +258,6 @@ else(WINDOWS)
set(release_src_dir "${CMAKE_SOURCE_DIR}/../libraries/i686-linux/lib/release")
set(release_files "")
- set(fmod_files "")
-
set(debug_llkdu_src "")
set(debug_llkdu_dst "")
set(release_llkdu_src "")
@@ -290,33 +320,9 @@ copy_if_different(
)
set(third_party_targets ${third_party_targets} ${out_targets})
-if (FMOD_SDK_DIR)
- copy_if_different(
- ${FMOD_SDK_DIR}
- "${CMAKE_CURRENT_BINARY_DIR}/Debug"
- out_targets
- ${fmod_files}
- )
- set(all_targets ${all_targets} ${out_targets})
- copy_if_different(
- ${FMOD_SDK_DIR}
- "${CMAKE_CURRENT_BINARY_DIR}/Release"
- out_targets
- ${fmod_files}
- )
- set(all_targets ${all_targets} ${out_targets})
- copy_if_different(
- ${FMOD_SDK_DIR}
- "${CMAKE_CURRENT_BINARY_DIR}/RelWithDbgInfo"
- out_targets
- ${fmod_files}
- )
- set(all_targets ${all_targets} ${out_targets})
-endif (FMOD_SDK_DIR)
-
-if(NOT STANDALONE)
+if(NOT USESYSTEMLIBS)
add_custom_target(
stage_third_party_libs ALL
DEPENDS ${third_party_targets}
)
-endif(NOT STANDALONE)
+endif(NOT USESYSTEMLIBS)
diff --git a/indra/cmake/CopyBackToSource.cmake b/indra/cmake/CopyBackToSource.cmake
deleted file mode 100644
index d217df9aec..0000000000
--- a/indra/cmake/CopyBackToSource.cmake
+++ /dev/null
@@ -1,16 +0,0 @@
-# -*- cmake -*-
-# Copies a binary back to the source directory
-
-MACRO(COPY_BACK_TO_SOURCE target)
- GET_TARGET_PROPERTY(FROM ${target} LOCATION)
- SET(TO ${CMAKE_CURRENT_SOURCE_DIR})
- #MESSAGE("TARGET ${target} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${FROM} ${TO}")
- ADD_CUSTOM_COMMAND(
- TARGET ${target} POST_BUILD
- COMMAND ${CMAKE_COMMAND} -E copy ${FROM} ${TO}
- DEPENDS ${FROM}
- COMMENT "Copying ${target} to ${CMAKE_CURRENT_BINARY_DIR}"
- )
-ENDMACRO(COPY_BACK_TO_SOURCE)
-
-
diff --git a/indra/cmake/DBusGlib.cmake b/indra/cmake/DBusGlib.cmake
index cfc4ccd404..5e46b6711a 100644..100755
--- a/indra/cmake/DBusGlib.cmake
+++ b/indra/cmake/DBusGlib.cmake
@@ -1,16 +1,16 @@
# -*- cmake -*-
include(Prebuilt)
-if (STANDALONE)
+if (USESYSTEMLIBS)
include(FindPkgConfig)
pkg_check_modules(DBUSGLIB REQUIRED dbus-glib-1)
elseif (LINUX)
- use_prebuilt_binary(dbusglib)
+ use_prebuilt_binary(dbus_glib)
set(DBUSGLIB_FOUND ON FORCE BOOL)
set(DBUSGLIB_INCLUDE_DIRS
- ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/include/glib-2.0
+ ${LIBS_PREBUILT_DIR}/include/dbus
)
# We don't need to explicitly link against dbus-glib itself, because
# the viewer probes for the system's copy at runtime.
@@ -18,7 +18,7 @@ elseif (LINUX)
gobject-2.0
glib-2.0
)
-endif (STANDALONE)
+endif (USESYSTEMLIBS)
if (DBUSGLIB_FOUND)
set(DBUSGLIB ON CACHE BOOL "Build with dbus-glib message bus support.")
diff --git a/indra/cmake/DeploySharedLibs.cmake b/indra/cmake/DeploySharedLibs.cmake
index 663c272e50..663c272e50 100644..100755
--- a/indra/cmake/DeploySharedLibs.cmake
+++ b/indra/cmake/DeploySharedLibs.cmake
diff --git a/indra/cmake/DirectX.cmake b/indra/cmake/DirectX.cmake
index 29724ee2fc..25163d0322 100644..100755
--- a/indra/cmake/DirectX.cmake
+++ b/indra/cmake/DirectX.cmake
@@ -1,8 +1,10 @@
# -*- cmake -*-
-if (VIEWER AND WINDOWS)
+if (WINDOWS)
find_path(DIRECTX_INCLUDE_DIR dxdiag.h
"$ENV{DXSDK_DIR}/Include"
+ "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (June 2010)/Include"
+ "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (August 2009)/Include"
"$ENV{PROGRAMFILES}/Microsoft DirectX SDK (March 2009)/Include"
"$ENV{PROGRAMFILES}/Microsoft DirectX SDK (August 2008)/Include"
"$ENV{PROGRAMFILES}/Microsoft DirectX SDK (June 2008)/Include"
@@ -24,6 +26,8 @@ if (VIEWER AND WINDOWS)
find_path(DIRECTX_LIBRARY_DIR dxguid.lib
"$ENV{DXSDK_DIR}/Lib/x86"
+ "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (June 2010)/Lib/x86"
+ "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (August 2009)/Lib/x86"
"$ENV{PROGRAMFILES}/Microsoft DirectX SDK (March 2009)/Lib/x86"
"$ENV{PROGRAMFILES}/Microsoft DirectX SDK (August 2008)/Lib/x86"
"$ENV{PROGRAMFILES}/Microsoft DirectX SDK (June 2008)/Lib/x86"
@@ -41,4 +45,4 @@ if (VIEWER AND WINDOWS)
message(FATAL_ERROR "Could not find DirectX SDK Libraries")
endif (DIRECTX_LIBRARY_DIR)
-endif (VIEWER AND WINDOWS)
+endif (WINDOWS)
diff --git a/indra/cmake/DragDrop.cmake b/indra/cmake/DragDrop.cmake
index c0424396e5..73ef59b18f 100644..100755
--- a/indra/cmake/DragDrop.cmake
+++ b/indra/cmake/DragDrop.cmake
@@ -1,7 +1,5 @@
# -*- cmake -*-
-if (VIEWER)
-
set(OS_DRAG_DROP ON CACHE BOOL "Build the viewer with OS level drag and drop turned on or off")
if (OS_DRAG_DROP)
@@ -20,4 +18,3 @@ if (VIEWER)
endif (OS_DRAG_DROP)
-endif (VIEWER)
diff --git a/indra/cmake/ELFIO.cmake b/indra/cmake/ELFIO.cmake
deleted file mode 100644
index e51993b0f7..0000000000
--- a/indra/cmake/ELFIO.cmake
+++ /dev/null
@@ -1,19 +0,0 @@
-# -*- cmake -*-
-include(Prebuilt)
-
-set(ELFIO_FIND_QUIETLY ON)
-
-if (STANDALONE)
- include(FindELFIO)
-elseif (LINUX)
- use_prebuilt_binary(elfio)
- set(ELFIO_LIBRARIES ELFIO)
- set(ELFIO_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/include)
- set(ELFIO_FOUND "YES")
-endif (STANDALONE)
-
-if (ELFIO_FOUND)
- add_definitions(-DLL_ELFBIN=1)
-else (ELFIO_FOUND)
- set(ELFIO_INCLUDE_DIR "")
-endif (ELFIO_FOUND)
diff --git a/indra/cmake/EXPAT.cmake b/indra/cmake/EXPAT.cmake
index acb15dc623..c1155531ff 100644..100755
--- a/indra/cmake/EXPAT.cmake
+++ b/indra/cmake/EXPAT.cmake
@@ -4,9 +4,9 @@ include(Prebuilt)
set(EXPAT_FIND_QUIETLY ON)
set(EXPAT_FIND_REQUIRED ON)
-if (STANDALONE)
+if (USESYSTEMLIBS)
include(FindEXPAT)
-else (STANDALONE)
+else (USESYSTEMLIBS)
use_prebuilt_binary(expat)
if (WINDOWS)
set(EXPAT_LIBRARIES libexpatMT)
@@ -14,4 +14,4 @@ else (STANDALONE)
set(EXPAT_LIBRARIES expat)
endif (WINDOWS)
set(EXPAT_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include)
-endif (STANDALONE)
+endif (USESYSTEMLIBS)
diff --git a/indra/cmake/ExamplePlugin.cmake b/indra/cmake/ExamplePlugin.cmake
index 599787ad21..5d826c1f66 100644..100755
--- a/indra/cmake/ExamplePlugin.cmake
+++ b/indra/cmake/ExamplePlugin.cmake
@@ -2,13 +2,13 @@
include(Linking)
include(Prebuilt)
-if (STANDALONE)
+if (USESYSTEMLIBS)
set(EXAMPLEPLUGIN OFF CACHE BOOL
"EXAMPLEPLUGIN support for the llplugin/llmedia test apps.")
-else (STANDALONE)
+else (USESYSTEMLIBS)
set(EXAMPLEPLUGIN ON CACHE BOOL
"EXAMPLEPLUGIN support for the llplugin/llmedia test apps.")
-endif (STANDALONE)
+endif (USESYSTEMLIBS)
if (WINDOWS)
elseif (DARWIN)
diff --git a/indra/cmake/Externals.cmake b/indra/cmake/Externals.cmake
deleted file mode 100644
index 26f3b56049..0000000000
--- a/indra/cmake/Externals.cmake
+++ /dev/null
@@ -1,34 +0,0 @@
-# -*- cmake -*-
-
-include(Python)
-include(FindSVN)
-
-macro (use_svn_external _binary _path _url _rev)
- if (NOT STANDALONE)
- if(${CMAKE_BINARY_DIR}/temp/sentinel_installed IS_NEWER_THAN ${CMAKE_BINARY_DIR}/temp/${_binary}_installed)
- if(SVN_FOUND)
- if(DEBUG_EXTERNALS)
- message("cd ${_path} && ${SVN_EXECUTABLE} checkout -r ${_rev} ${_url} ${_binary}")
- endif(DEBUG_EXTERNALS)
- execute_process(COMMAND ${SVN_EXECUTABLE}
- checkout
- -r ${_rev}
- ${_url}
- ${_binary}
- WORKING_DIRECTORY ${_path}
- RESULT_VARIABLE ${_binary}_installed
- )
- else(SVN_FOUND)
- message(FATAL_ERROR "Failed to find SVN_EXECUTABLE")
- endif(SVN_FOUND)
- file(WRITE ${CMAKE_BINARY_DIR}/temp/${_binary}_installed "${${_binary}_installed}")
- else(${CMAKE_BINARY_DIR}/temp/sentinel_installed IS_NEWER_THAN ${CMAKE_BINARY_DIR}/temp/${_binary}_installed)
- set(${_binary}_installed 0)
- endif(${CMAKE_BINARY_DIR}/temp/sentinel_installed IS_NEWER_THAN ${CMAKE_BINARY_DIR}/temp/${_binary}_installed)
- if(NOT ${_binary}_installed EQUAL 0)
- message(FATAL_ERROR
- "Failed to download or unpack prebuilt '${_binary}'."
- " Process returned ${${_binary}_installed}.")
- endif (NOT ${_binary}_installed EQUAL 0)
- endif (NOT STANDALONE)
-endmacro (use_svn_external _binary _path _url _rev)
diff --git a/indra/cmake/FMOD.cmake b/indra/cmake/FMOD.cmake
deleted file mode 100644
index dcf44cd642..0000000000
--- a/indra/cmake/FMOD.cmake
+++ /dev/null
@@ -1,26 +0,0 @@
-# -*- cmake -*-
-
-set(FMOD ON CACHE BOOL "Use FMOD sound library.")
-
-if (FMOD)
- if (STANDALONE)
- set(FMOD_FIND_REQUIRED ON)
- include(FindFMOD)
- else (STANDALONE)
- if (INSTALL_PROPRIETARY)
- include(Prebuilt)
- use_prebuilt_binary(fmod)
- endif (INSTALL_PROPRIETARY)
-
- if (WINDOWS)
- set(FMOD_LIBRARY fmod)
- elseif (DARWIN)
- set(FMOD_LIBRARY fmod)
- elseif (LINUX)
- set(FMOD_LIBRARY fmod-3.75)
- endif (WINDOWS)
-
- SET(FMOD_LIBRARIES ${FMOD_LIBRARY})
- set(FMOD_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/include)
- endif (STANDALONE)
-endif (FMOD)
diff --git a/indra/cmake/FMODEX.cmake b/indra/cmake/FMODEX.cmake
new file mode 100644
index 0000000000..720933d1b7
--- /dev/null
+++ b/indra/cmake/FMODEX.cmake
@@ -0,0 +1,46 @@
+# -*- cmake -*-
+
+# FMOD can be set when launching the make using the argument -DFMOD:BOOL=ON
+# When building using proprietary binaries though (i.e. having access to LL private servers),
+# we always build with FMODEX.
+# Open source devs should use the -DFMODEX:BOOL=ON then if they want to build with FMOD, whether
+# they are using USESYSTEMLIBS or not.
+if (INSTALL_PROPRIETARY)
+ set(FMODEX ON CACHE BOOL "Using FMOD Ex sound library.")
+endif (INSTALL_PROPRIETARY)
+
+if (FMODEX)
+ if (USESYSTEMLIBS)
+ # In that case, we use the version of the library installed on the system
+ set(FMODEX_FIND_REQUIRED ON)
+ include(FindFMODEX)
+ else (USESYSTEMLIBS)
+ if (FMODEX_LIBRARY AND FMODEX_INCLUDE_DIR)
+ # If the path have been specified in the arguments, use that
+ set(FMODEX_LIBRARIES ${FMODEX_LIBRARY})
+ MESSAGE(STATUS "Using FMODEX path: ${FMODEX_LIBRARIES}, ${FMODEX_INCLUDE_DIR}")
+ else (FMODEX_LIBRARY AND FMODEX_INCLUDE_DIR)
+ # If not, we're going to try to get the package listed in autobuild.xml
+ # Note: if you're not using INSTALL_PROPRIETARY, the package URL should be local (file:/// URL)
+ # as accessing the private LL location will fail if you don't have the credential
+ include(Prebuilt)
+ use_prebuilt_binary(fmodex)
+ if (WINDOWS)
+ set(FMODEX_LIBRARY
+ debug fmodexL_vc
+ optimized fmodex_vc)
+ elseif (DARWIN)
+ set(FMODEX_LIBRARY
+ debug fmodexL
+ optimized fmodex)
+ elseif (LINUX)
+ set(FMODEX_LIBRARY
+ debug fmodexL
+ optimized fmodex)
+ endif (WINDOWS)
+ set(FMODEX_LIBRARIES ${FMODEX_LIBRARY})
+ set(FMODEX_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/include/fmodex)
+ endif (FMODEX_LIBRARY AND FMODEX_INCLUDE_DIR)
+ endif (USESYSTEMLIBS)
+endif (FMODEX)
+
diff --git a/indra/cmake/FindAPR.cmake b/indra/cmake/FindAPR.cmake
index 906b6c9452..906b6c9452 100644..100755
--- a/indra/cmake/FindAPR.cmake
+++ b/indra/cmake/FindAPR.cmake
diff --git a/indra/cmake/FindAutobuild.cmake b/indra/cmake/FindAutobuild.cmake
new file mode 100755
index 0000000000..ea5ad6d108
--- /dev/null
+++ b/indra/cmake/FindAutobuild.cmake
@@ -0,0 +1,43 @@
+# -*- cmake -*-
+#
+# Find the autobuild tool
+#
+# Output variables:
+#
+# AUTOBUILD_EXECUTABLE - path to autobuild executable
+
+
+
+IF (NOT AUTOBUILD_EXECUTABLE)
+
+ # If cmake was executed by autobuild, autobuild will have set the AUTOBUILD env var
+ IF (DEFINED ENV{AUTOBUILD})
+ SET(AUTOBUILD_EXECUTABLE $ENV{AUTOBUILD})
+ ELSE (DEFINED ENV{AUTOBUILD})
+ IF(WIN32)
+ SET(AUTOBUILD_EXE_NAMES autobuild.exe autobuild.cmd)
+ ELSE(WIN32)
+ SET(AUTOBUILD_EXE_NAMES autobuild)
+ ENDIF(WIN32)
+
+ SET(AUTOBUILD_EXECUTABLE)
+ FIND_PROGRAM(
+ AUTOBUILD_EXECUTABLE
+ NAMES ${AUTOBUILD_EXE_NAMES}
+ PATHS
+ ENV PATH
+ ${CMAKE_SOURCE_DIR}/..
+ ${CMAKE_SOURCE_DIR}/../..
+ ${CMAKE_SOURCE_DIR}/../../..
+ PATH_SUFFIXES "/autobuild/bin/"
+ )
+ ENDIF (DEFINED ENV{AUTOBUILD})
+
+ IF (NOT AUTOBUILD_EXECUTABLE)
+ IF (AUTOBUILD_FIND_REQUIRED)
+ MESSAGE(FATAL_ERROR "Could not find autobuild executable")
+ ENDIF (AUTOBUILD_FIND_REQUIRED)
+ ENDIF (NOT AUTOBUILD_EXECUTABLE)
+
+ MARK_AS_ADVANCED(AUTOBUILD_EXECUTABLE)
+ENDIF (NOT AUTOBUILD_EXECUTABLE)
diff --git a/indra/cmake/FindBerkeleyDB.cmake b/indra/cmake/FindBerkeleyDB.cmake
index 2d633c74ec..2d633c74ec 100644..100755
--- a/indra/cmake/FindBerkeleyDB.cmake
+++ b/indra/cmake/FindBerkeleyDB.cmake
diff --git a/indra/cmake/FindCARes.cmake b/indra/cmake/FindCARes.cmake
index 1ed5b32913..1ed5b32913 100644..100755
--- a/indra/cmake/FindCARes.cmake
+++ b/indra/cmake/FindCARes.cmake
diff --git a/indra/cmake/FindELFIO.cmake b/indra/cmake/FindELFIO.cmake
deleted file mode 100644
index 8a5421ab9c..0000000000
--- a/indra/cmake/FindELFIO.cmake
+++ /dev/null
@@ -1,48 +0,0 @@
-# -*- cmake -*-
-
-# - Find ELFIO
-# Find the ELFIO includes and library
-# This module defines
-# ELFIO_INCLUDE_DIR, where to find elfio.h, etc.
-# ELFIO_LIBRARIES, the libraries needed to use ELFIO.
-# ELFIO_FOUND, If false, do not try to use ELFIO.
-# also defined, but not for general use are
-# ELFIO_LIBRARY, where to find the ELFIO library.
-
-FIND_PATH(ELFIO_INCLUDE_DIR ELFIO/ELFIO.h
-/usr/local/include
-/usr/include
-)
-
-SET(ELFIO_NAMES ${ELFIO_NAMES} ELFIO)
-FIND_LIBRARY(ELFIO_LIBRARY
- NAMES ${ELFIO_NAMES}
- PATHS /usr/lib /usr/local/lib
- )
-
-IF (ELFIO_LIBRARY AND ELFIO_INCLUDE_DIR)
- SET(ELFIO_LIBRARIES ${ELFIO_LIBRARY})
- SET(ELFIO_FOUND "YES")
-ELSE (ELFIO_LIBRARY AND ELFIO_INCLUDE_DIR)
- SET(ELFIO_FOUND "NO")
-ENDIF (ELFIO_LIBRARY AND ELFIO_INCLUDE_DIR)
-
-
-IF (ELFIO_FOUND)
- IF (NOT ELFIO_FIND_QUIETLY)
- MESSAGE(STATUS "Found ELFIO: ${ELFIO_LIBRARIES}")
- ENDIF (NOT ELFIO_FIND_QUIETLY)
-ELSE (ELFIO_FOUND)
- IF (ELFIO_FIND_REQUIRED)
- MESSAGE(FATAL_ERROR "Could not find ELFIO library")
- ENDIF (ELFIO_FIND_REQUIRED)
-ENDIF (ELFIO_FOUND)
-
-# Deprecated declarations.
-SET (NATIVE_ELFIO_INCLUDE_PATH ${ELFIO_INCLUDE_DIR} )
-GET_FILENAME_COMPONENT (NATIVE_ELFIO_LIB_PATH ${ELFIO_LIBRARY} PATH)
-
-MARK_AS_ADVANCED(
- ELFIO_LIBRARY
- ELFIO_INCLUDE_DIR
- )
diff --git a/indra/cmake/FindFMOD.cmake b/indra/cmake/FindFMOD.cmake
deleted file mode 100644
index e60b386027..0000000000
--- a/indra/cmake/FindFMOD.cmake
+++ /dev/null
@@ -1,44 +0,0 @@
-# -*- cmake -*-
-
-# - Find FMOD
-# Find the FMOD includes and library
-# This module defines
-# FMOD_INCLUDE_DIR, where to find fmod.h and fmod_errors.h
-# FMOD_LIBRARIES, the libraries needed to use FMOD.
-# FMOD, If false, do not try to use FMOD.
-# also defined, but not for general use are
-# FMOD_LIBRARY, where to find the FMOD library.
-
-FIND_PATH(FMOD_INCLUDE_DIR fmod.h PATH_SUFFIXES fmod)
-
-SET(FMOD_NAMES ${FMOD_NAMES} fmod fmodvc fmod-3.75)
-FIND_LIBRARY(FMOD_LIBRARY
- NAMES ${FMOD_NAMES}
- PATH_SUFFIXES fmod
- )
-
-IF (FMOD_LIBRARY AND FMOD_INCLUDE_DIR)
- SET(FMOD_LIBRARIES ${FMOD_LIBRARY})
- SET(FMOD_FOUND "YES")
-ELSE (FMOD_LIBRARY AND FMOD_INCLUDE_DIR)
- SET(FMOD_FOUND "NO")
-ENDIF (FMOD_LIBRARY AND FMOD_INCLUDE_DIR)
-
-IF (FMOD_FOUND)
- IF (NOT FMOD_FIND_QUIETLY)
- MESSAGE(STATUS "Found FMOD: ${FMOD_LIBRARIES}")
- ENDIF (NOT FMOD_FIND_QUIETLY)
-ELSE (FMOD_FOUND)
- IF (FMOD_FIND_REQUIRED)
- MESSAGE(FATAL_ERROR "Could not find FMOD library")
- ENDIF (FMOD_FIND_REQUIRED)
-ENDIF (FMOD_FOUND)
-
-# Deprecated declarations.
-SET (NATIVE_FMOD_INCLUDE_PATH ${FMOD_INCLUDE_DIR} )
-GET_FILENAME_COMPONENT (NATIVE_FMOD_LIB_PATH ${FMOD_LIBRARY} PATH)
-
-MARK_AS_ADVANCED(
- FMOD_LIBRARY
- FMOD_INCLUDE_DIR
- )
diff --git a/indra/cmake/FindFMODEX.cmake b/indra/cmake/FindFMODEX.cmake
new file mode 100644
index 0000000000..b621727c0e
--- /dev/null
+++ b/indra/cmake/FindFMODEX.cmake
@@ -0,0 +1,65 @@
+# -*- cmake -*-
+
+# - Find FMODEX
+# Find the FMODEX includes and library
+# This module defines
+# FMODEX_INCLUDE_DIR, where to find fmod.h and fmod_errors.h
+# FMODEX_LIBRARIES, the libraries needed to use FMODEX.
+# FMODEX, If false, do not try to use FMODEX.
+# also defined, but not for general use are
+# FMODEX_LIBRARY, where to find the FMODEX library.
+
+FIND_PATH(FMODEX_INCLUDE_DIR fmod.h PATH_SUFFIXES fmod)
+
+SET(FMODEX_NAMES ${FMODEX_NAMES} fmodex fmodvc fmodexL_vc)
+FIND_LIBRARY(FMODEX_LIBRARY
+ NAMES ${FMODEX_NAMES}
+ PATH_SUFFIXES fmodex
+ )
+
+IF (FMODEX_SDK_DIR OR WINDOWS)
+ if(WINDOWS)
+ set(FMODEX_SDK_DIR "$ENV{PROGRAMFILES}/FMOD SoundSystem/FMOD Programmers API Windows" CACHE PATH "Path to FMODEX")
+ STRING(REGEX REPLACE "\\\\" "/" FMODEX_SDK_DIR ${FMODEX_SDK_DIR})
+ endif(WINDOWS)
+ find_library(FMODEX_LIBRARY
+ fmodex_vc fmodexL_vc
+ PATHS
+ ${FMODEX_SDK_DIR}/api/lib
+ ${FMODEX_SDK_DIR}/api
+ ${FMODEX_SDK_DIR}
+ )
+ find_path(FMODEX_INCLUDE_DIR fmod.h
+ ${FMODEX_SDK_DIR}/api/inc
+ ${FMODEX_SDK_DIR}/api
+ ${FMODEX_SDK_DIR}
+ )
+ find_path(FMODEX_INCLUDE_DIR fmod.h
+ ${FMODEX_SDK_DIR}/api/inc
+ ${FMODEX_SDK_DIR}/api
+ ${FMODEX_SDK_DIR}
+ )
+ IF (FMODEX_LIBRARY AND FMODEX_INCLUDE_DIR)
+ SET(FMODEX_LIBRARIES ${FMODEX_LIBRARY})
+ SET(FMODEX_FOUND "YES")
+ endif (FMODEX_LIBRARY AND FMODEX_INCLUDE_DIR)
+ENDIF (FMODEX_SDK_DIR OR WINDOWS)
+
+IF (FMODEX_FOUND)
+ IF (NOT FMODEX_FIND_QUIETLY)
+ MESSAGE(STATUS "Found FMODEX: ${FMODEX_LIBRARIES}")
+ ENDIF (NOT FMODEX_FIND_QUIETLY)
+ELSE (FMODEX_FOUND)
+ IF (FMODEX_FIND_REQUIRED)
+ MESSAGE(FATAL_ERROR "Could not find FMODEX library")
+ ENDIF (FMODEX_FIND_REQUIRED)
+ENDIF (FMODEX_FOUND)
+
+# Deprecated declarations.
+SET (NATIVE_FMODEX_INCLUDE_PATH ${FMODEX_INCLUDE_DIR} )
+GET_FILENAME_COMPONENT (NATIVE_FMODEX_LIB_PATH ${FMODEX_LIBRARY} PATH)
+
+MARK_AS_ADVANCED(
+ FMODEX_LIBRARY
+ FMODEX_INCLUDE_DIR
+ )
diff --git a/indra/cmake/FindGLH.cmake b/indra/cmake/FindGLH.cmake
new file mode 100755
index 0000000000..3d16adaf03
--- /dev/null
+++ b/indra/cmake/FindGLH.cmake
@@ -0,0 +1,30 @@
+# -*- cmake -*-
+
+# - Find GLH
+# Find the Graphic Library Helper includes.
+# This module defines
+# GLH_INCLUDE_DIR, where to find glh/glh_linear.h.
+# GLH_FOUND, If false, do not try to use GLH.
+
+find_path(GLH_INCLUDE_DIR glh/glh_linear.h
+ NO_SYSTEM_ENVIRONMENT_PATH
+ )
+
+if (GLH_INCLUDE_DIR)
+ set(GLH_FOUND "YES")
+else (GLH_INCLUDE_DIR)
+ set(GLH_FOUND "NO")
+endif (GLH_INCLUDE_DIR)
+
+if (GLH_FOUND)
+ if (NOT GLH_FIND_QUIETLY)
+ message(STATUS "Found GLH: ${GLH_INCLUDE_DIR}")
+ set(GLH_FIND_QUIETLY TRUE) # Only alert us the first time
+ endif (NOT GLH_FIND_QUIETLY)
+else (GLH_FOUND)
+ if (GLH_FIND_REQUIRED)
+ message(FATAL_ERROR "Could not find GLH")
+ endif (GLH_FIND_REQUIRED)
+endif (GLH_FOUND)
+
+mark_as_advanced(GLH_INCLUDE_DIR)
diff --git a/indra/cmake/FindGoogleBreakpad.cmake b/indra/cmake/FindGoogleBreakpad.cmake
index 1a0493be5e..1a0493be5e 100644..100755
--- a/indra/cmake/FindGoogleBreakpad.cmake
+++ b/indra/cmake/FindGoogleBreakpad.cmake
diff --git a/indra/cmake/FindGooglePerfTools.cmake b/indra/cmake/FindGooglePerfTools.cmake
index bb125d538e..bb125d538e 100644..100755
--- a/indra/cmake/FindGooglePerfTools.cmake
+++ b/indra/cmake/FindGooglePerfTools.cmake
diff --git a/indra/cmake/FindHUNSPELL.cmake b/indra/cmake/FindHUNSPELL.cmake
new file mode 100755
index 0000000000..6faf22959c
--- /dev/null
+++ b/indra/cmake/FindHUNSPELL.cmake
@@ -0,0 +1,38 @@
+# -*- cmake -*-
+
+# - Find HUNSPELL
+# This module defines
+# HUNSPELL_INCLUDE_DIR, where to find libhunspell.h, etc.
+# HUNSPELL_LIBRARY, the library needed to use HUNSPELL.
+# HUNSPELL_FOUND, If false, do not try to use HUNSPELL.
+
+find_path(HUNSPELL_INCLUDE_DIR hunspell.h
+ PATH_SUFFIXES hunspell
+ )
+
+set(HUNSPELL_NAMES ${HUNSPELL_NAMES} libhunspell-1.3.0 libhunspell)
+find_library(HUNSPELL_LIBRARY
+ NAMES ${HUNSPELL_NAMES}
+ )
+
+if (HUNSPELL_LIBRARY AND HUNSPELL_INCLUDE_DIR)
+ set(HUNSPELL_FOUND "YES")
+else (HUNSPELL_LIBRARY AND HUNSPELL_INCLUDE_DIR)
+ set(HUNSPELL_FOUND "NO")
+endif (HUNSPELL_LIBRARY AND HUNSPELL_INCLUDE_DIR)
+
+
+if (HUNSPELL_FOUND)
+ if (NOT HUNSPELL_FIND_QUIETLY)
+ message(STATUS "Found Hunspell: Library in '${HUNSPELL_LIBRARY}' and header in '${HUNSPELL_INCLUDE_DIR}' ")
+ endif (NOT HUNSPELL_FIND_QUIETLY)
+else (HUNSPELL_FOUND)
+ if (HUNSPELL_FIND_REQUIRED)
+ message(FATAL_ERROR " * * *\nCould not find HUNSPELL library! * * *")
+ endif (HUNSPELL_FIND_REQUIRED)
+endif (HUNSPELL_FOUND)
+
+mark_as_advanced(
+ HUNSPELL_LIBRARY
+ HUNSPELL_INCLUDE_DIR
+ )
diff --git a/indra/cmake/FindJsonCpp.cmake b/indra/cmake/FindJsonCpp.cmake
index cf84b309c1..9398779cff 100644..100755
--- a/indra/cmake/FindJsonCpp.cmake
+++ b/indra/cmake/FindJsonCpp.cmake
@@ -23,10 +23,10 @@ EXEC_PROGRAM(${CMAKE_CXX_COMPILER}
# Try to find a library that was compiled with the same compiler version as we currently use.
SET(JSONCPP_NAMES ${JSONCPP_NAMES} libjson_linux-gcc-${_gcc_COMPILER_VERSION}_libmt.so)
-IF (STANDALONE)
- # On standalone, assume that the system installed library was compiled with the used compiler.
- SET(JSONCPP_NAMES ${JSONCPP_NAMES} libjson.so)
-ENDIF (STANDALONE)
+IF (USESYSTEMLIBS)
+ # On standalone, assume that the system installed library was compiled with the used compiler.
+ SET(JSONCPP_NAMES ${JSONCPP_NAMES} libjson.so)
+ENDIF (USESYSTEMLIBS)
FIND_LIBRARY(JSONCPP_LIBRARY
NAMES ${JSONCPP_NAMES}
PATHS /usr/lib /usr/local/lib
diff --git a/indra/cmake/FindLLQtWebkit.cmake b/indra/cmake/FindLLQtWebkit.cmake
deleted file mode 100644
index c747ec32a2..0000000000
--- a/indra/cmake/FindLLQtWebkit.cmake
+++ /dev/null
@@ -1,62 +0,0 @@
-# -*- cmake -*-
-
-# - Find llqtwebkit
-# Find the llqtwebkit includes and library
-# This module defines
-# LLQTWEBKIT_INCLUDE_DIR, where to find llqtwebkit.h, etc.
-# LLQTWEBKIT_LIBRARY, the llqtwebkit library with full path.
-# LLQTWEBKIT_FOUND, If false, do not try to use llqtwebkit.
-# also defined, but not for general use are
-# LLQTWEBKIT_LIBRARIES, the libraries needed to use llqtwebkit.
-# LLQTWEBKIT_LIBRARY_DIRS, where to find the llqtwebkit library.
-# LLQTWEBKIT_DEFINITIONS - You should add_definitions(${LLQTWEBKIT_DEFINITIONS})
-# before compiling code that includes llqtwebkit library files.
-
-# Try to use pkg-config first.
-# This allows to have two different libllqtwebkit packages installed:
-# one for viewer 2.x and one for viewer 1.x.
-include(FindPkgConfig)
-if (PKG_CONFIG_FOUND)
- if (LLQtWebkit_FIND_REQUIRED AND LLQtWebkit_FIND_VERSION)
- set(_PACKAGE_ARGS libllqtwebkit>=${LLQtWebkit_FIND_VERSION} REQUIRED)
- else (LLQtWebkit_FIND_REQUIRED AND LLQtWebkit_FIND_VERSION)
- set(_PACKAGE_ARGS libllqtwebkit)
- endif (LLQtWebkit_FIND_REQUIRED AND LLQtWebkit_FIND_VERSION)
- if (NOT "${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" VERSION_LESS "2.8")
- # As virtually nobody will have a pkg-config file for this, do this check always quiet.
- # Unfortunately cmake 2.8 or higher is required for pkg_check_modules to have a 'QUIET'.
- set(_PACKAGE_ARGS ${_PACKAGE_ARGS} QUIET)
- endif ()
- pkg_check_modules(LLQTWEBKIT ${_PACKAGE_ARGS})
-endif (PKG_CONFIG_FOUND)
-set(LLQTWEBKIT_DEFINITIONS ${LLQTWEBKIT_CFLAGS_OTHER})
-
-find_path(LLQTWEBKIT_INCLUDE_DIR llqtwebkit.h NO_SYSTEM_ENVIRONMENT_PATH HINTS ${LLQTWEBKIT_INCLUDE_DIRS})
-
-find_library(LLQTWEBKIT_LIBRARY NAMES llqtwebkit NO_SYSTEM_ENVIRONMENT_PATH HINTS ${LLQTWEBKIT_LIBRARY_DIRS})
-
-if (NOT PKG_CONFIG_FOUND OR NOT LLQTWEBKIT_FOUND) # If pkg-config couldn't find it, pretend we don't have pkg-config.
- set(LLQTWEBKIT_LIBRARIES llqtwebkit)
- get_filename_component(LLQTWEBKIT_LIBRARY_DIRS ${LLQTWEBKIT_LIBRARY} PATH)
-endif (NOT PKG_CONFIG_FOUND OR NOT LLQTWEBKIT_FOUND)
-
-# Handle the QUIETLY and REQUIRED arguments and set LLQTWEBKIT_FOUND
-# to TRUE if all listed variables are TRUE.
-include(FindPackageHandleStandardArgs)
-find_package_handle_standard_args(
- LLQTWEBKIT
- DEFAULT_MSG
- LLQTWEBKIT_LIBRARY
- LLQTWEBKIT_INCLUDE_DIR
- LLQTWEBKIT_LIBRARIES
- LLQTWEBKIT_LIBRARY_DIRS
- )
-
-mark_as_advanced(
- LLQTWEBKIT_LIBRARY
- LLQTWEBKIT_INCLUDE_DIR
- LLQTWEBKIT_LIBRARIES
- LLQTWEBKIT_LIBRARY_DIRS
- LLQTWEBKIT_DEFINITIONS
- )
-
diff --git a/indra/cmake/FindMT.cmake b/indra/cmake/FindMT.cmake
deleted file mode 100644
index 5239a4c2f5..0000000000
--- a/indra/cmake/FindMT.cmake
+++ /dev/null
@@ -1,15 +0,0 @@
-#Find the windows manifest tool.
-
-FIND_PROGRAM(HAVE_MANIFEST_TOOL NAMES mt
- PATHS
- "$ENV{PROGRAMFILES}/Microsoft Visual Studio 8/VC/bin"
- "$ENV{PROGRAMFILES}/Microsoft Visual Studio 8/Common7/Tools/Bin"
- "$ENV{PROGRAMFILES}/Microsoft Visual Studio 8/SDK/v2.0/Bin")
-IF(HAVE_MANIFEST_TOOL)
- MESSAGE(STATUS "Found Mainfest Tool. Embedding custom manifests.")
-ELSE(HAVE_MANIFEST_TOOL)
- MESSAGE(FATAL_ERROR "Manifest tool, mt.exe, can't be found.")
-ENDIF(HAVE_MANIFEST_TOOL)
-
-STRING(REPLACE "/MANIFEST" "/MANIFEST:NO" CMAKE_EXE_LINKER_FLAGS
- ${CMAKE_EXE_LINKER_FLAGS})
diff --git a/indra/cmake/FindMono.cmake b/indra/cmake/FindMono.cmake
deleted file mode 100644
index d956c48656..0000000000
--- a/indra/cmake/FindMono.cmake
+++ /dev/null
@@ -1,68 +0,0 @@
-# - Try to find the mono, mcs, gmcs and gacutil
-#
-# defines
-#
-# MONO_FOUND - system has mono, mcs, gmcs and gacutil
-# MONO_PATH - where to find 'mono'
-# MCS_PATH - where to find 'mcs'
-# GMCS_PATH - where to find 'gmcs'
-# GACUTIL_PATH - where to find 'gacutil'
-#
-# copyright (c) 2007 Arno Rehn arno@arnorehn.de
-#
-# Redistribution and use is allowed according to the terms of the GPL license.
-# Removed the check for gmcs
-
-FIND_PROGRAM (MONO_EXECUTABLE mono
- "$ENV{PROGRAMFILES}/Mono-1.9.1/bin"
- "$ENV{PROGRAMFILES}/Mono-1.2.6/bin"
- /bin
- /usr/bin
- /usr/local/bin
-)
-FIND_PROGRAM (MCS_EXECUTABLE mcs
- "$ENV{PROGRAMFILES}/Mono-1.9.1/bin"
- "$ENV{PROGRAMFILES}/Mono-1.2.6/bin"
- /bin
- /usr/bin
- /usr/local/bin
-)
-FIND_PROGRAM (GMCS_EXECUTABLE gmcs
- "$ENV{PROGRAMFILES}/Mono-1.9.1/bin"
- "$ENV{PROGRAMFILES}/Mono-1.2.6/bin"
- /bin
- /usr/bin
- /usr/local/bin
-)
-FIND_PROGRAM (GACUTIL_EXECUTABLE gacutil
- "$ENV{PROGRAMFILES}/Mono-1.9.1/bin"
- "$ENV{PROGRAMFILES}/Mono-1.2.6/bin"
- /bin
- /usr/bin
- /usr/local/bin
-)
-FIND_PROGRAM (ILASM_EXECUTABLE
- NAMES ilasm.bat ilasm
- NO_DEFAULT_PATH
- PATHS "$ENV{PROGRAMFILES}/Mono-1.9.1/bin" "$ENV{PROGRAMFILES}/Mono-1.2.6/bin" /bin /usr/bin /usr/local/bin
-)
-
-SET (MONO_FOUND FALSE)
-
-IF (MONO_EXECUTABLE AND MCS_EXECUTABLE AND GACUTIL_EXECUTABLE)
- SET (MONO_FOUND TRUE)
-ENDIF (MONO_EXECUTABLE AND MCS_EXECUTABLE AND GACUTIL_EXECUTABLE)
-
-IF (MONO_FOUND)
- IF (NOT Mono_FIND_QUIETLY)
- MESSAGE(STATUS "Found mono: ${MONO_EXECUTABLE}")
- MESSAGE(STATUS "Found mcs: ${MCS_EXECUTABLE}")
- MESSAGE(STATUS "Found gacutil: ${GACUTIL_EXECUTABLE}")
- ENDIF (NOT Mono_FIND_QUIETLY)
-ELSE (MONO_FOUND)
- IF (Mono_FIND_REQUIRED)
- MESSAGE(FATAL_ERROR "Could not find one or more of the following programs: mono, mcs, gacutil")
- ENDIF (Mono_FIND_REQUIRED)
-ENDIF (MONO_FOUND)
-
-MARK_AS_ADVANCED(MONO_EXECUTABLE MCS_EXECUTABLE GACUTIL_EXECUTABLE)
diff --git a/indra/cmake/FindMySQL.cmake b/indra/cmake/FindMySQL.cmake
deleted file mode 100644
index 431940328f..0000000000
--- a/indra/cmake/FindMySQL.cmake
+++ /dev/null
@@ -1,48 +0,0 @@
-# -*- cmake -*-
-
-# - Find MySQL
-# Find the MySQL includes and library
-# This module defines
-# MYSQL_INCLUDE_DIR, where to find mysql.h, etc.
-# MYSQL_LIBRARIES, the libraries needed to use Mysql.
-# MYSQL_FOUND, If false, do not try to use Mysql.
-# also defined, but not for general use are
-# MYSQL_LIBRARY, where to find the Mysql library.
-
-FIND_PATH(MYSQL_INCLUDE_DIR mysql/mysql.h
-/usr/local/include
-/usr/include
-)
-
-SET(MYSQL_NAMES ${MYSQL_NAMES} mysqlclient)
-FIND_LIBRARY(MYSQL_LIBRARY
- NAMES ${MYSQL_NAMES}
- PATHS /usr/lib/mysql /usr/lib /usr/local/lib/mysql /usr/local/lib
- )
-
-IF (MYSQL_LIBRARY AND MYSQL_INCLUDE_DIR)
- SET(MYSQL_LIBRARIES ${MYSQL_LIBRARY})
- SET(MYSQL_FOUND "YES")
-ELSE (MYSQL_LIBRARY AND MYSQL_INCLUDE_DIR)
- SET(MYSQL_FOUND "NO")
-ENDIF (MYSQL_LIBRARY AND MYSQL_INCLUDE_DIR)
-
-
-IF (MYSQL_FOUND)
- IF (NOT MYSQL_FIND_QUIETLY)
- MESSAGE(STATUS "Found MySQL: ${MYSQL_LIBRARIES}")
- ENDIF (NOT MYSQL_FIND_QUIETLY)
-ELSE (MYSQL_FOUND)
- IF (MYSQL_FIND_REQUIRED)
- MESSAGE(FATAL_ERROR "Could not find MySQL library")
- ENDIF (MYSQL_FIND_REQUIRED)
-ENDIF (MYSQL_FOUND)
-
-# Deprecated declarations.
-SET (NATIVE_MYSQL_INCLUDE_PATH ${MYSQL_INCLUDE_DIR} )
-GET_FILENAME_COMPONENT (NATIVE_MYSQL_LIB_PATH ${MYSQL_LIBRARY} PATH)
-
-MARK_AS_ADVANCED(
- MYSQL_LIBRARY
- MYSQL_INCLUDE_DIR
- )
diff --git a/indra/cmake/FindNDOF.cmake b/indra/cmake/FindNDOF.cmake
index 6dcf590a53..6dcf590a53 100644..100755
--- a/indra/cmake/FindNDOF.cmake
+++ b/indra/cmake/FindNDOF.cmake
diff --git a/indra/cmake/FindOpenJPEG.cmake b/indra/cmake/FindOpenJPEG.cmake
index 949384eec4..949384eec4 100644..100755
--- a/indra/cmake/FindOpenJPEG.cmake
+++ b/indra/cmake/FindOpenJPEG.cmake
diff --git a/indra/cmake/FindSCP.cmake b/indra/cmake/FindSCP.cmake
index ea02102908..ea02102908 100644..100755
--- a/indra/cmake/FindSCP.cmake
+++ b/indra/cmake/FindSCP.cmake
diff --git a/indra/cmake/FindSVN.cmake b/indra/cmake/FindSVN.cmake
deleted file mode 100644
index 3322be4ca9..0000000000
--- a/indra/cmake/FindSVN.cmake
+++ /dev/null
@@ -1,34 +0,0 @@
-# -*- cmake -*-
-#
-# Find the svn executable for exporting old svn:externals.
-#
-# Input variables:
-# SVN_FIND_REQUIRED - set this if configuration should fail without scp
-#
-# Output variables:
-#
-# SVN_FOUND - set if svn was found
-# SVN_EXECUTABLE - path to svn executable
-# SVN_BATCH_FLAG - how to put svn into batch mode
-
-
-SET(SVN_EXECUTABLE)
-FIND_PROGRAM(SVN_EXECUTABLE NAMES svn svn.exe)
-
-IF (SVN_EXECUTABLE)
- SET(SVN_FOUND ON)
-ELSE (SVN_EXECUTABLE)
- SET(SVN_FOUND OFF)
-ENDIF (SVN_EXECUTABLE)
-
-IF (SVN_FOUND)
- GET_FILENAME_COMPONENT(_svn_name ${SVN_EXECUTABLE} NAME_WE)
- SET(SVN_BATCH_FLAG --non-interactive)
-ELSE (SVN_FOUND)
- IF (SVN_FIND_REQUIRED)
- MESSAGE(FATAL_ERROR "Could not find svn executable")
- ENDIF (SVN_FIND_REQUIRED)
-ENDIF (SVN_FOUND)
-
-MARK_AS_ADVANCED(SVN_EXECUTABLE SVN_FOUND SVN_BATCH_FLAG)
-
diff --git a/indra/cmake/FindTut.cmake b/indra/cmake/FindTut.cmake
deleted file mode 100644
index c2a9f43053..0000000000
--- a/indra/cmake/FindTut.cmake
+++ /dev/null
@@ -1,30 +0,0 @@
-# -*- cmake -*-
-
-# - Find Tut
-# Find the Tut unit test framework includes and library
-# This module defines
-# TUT_INCLUDE_DIR, where to find tut/tut.hpp.
-# TUT_FOUND, If false, do not try to use Tut.
-
-find_path(TUT_INCLUDE_DIR tut/tut.hpp
- NO_SYSTEM_ENVIRONMENT_PATH
- )
-
-if (TUT_INCLUDE_DIR)
- set(TUT_FOUND "YES")
-else (TUT_INCLUDE_DIR)
- set(TUT_FOUND "NO")
-endif (TUT_INCLUDE_DIR)
-
-if (TUT_FOUND)
- if (NOT TUT_FIND_QUIETLY)
- message(STATUS "Found Tut: ${TUT_INCLUDE_DIR}")
- set(TUT_FIND_QUIETLY TRUE) # Only alert us the first time
- endif (NOT TUT_FIND_QUIETLY)
-else (TUT_FOUND)
- if (TUT_FIND_REQUIRED)
- message(FATAL_ERROR "Could not find Tut")
- endif (TUT_FIND_REQUIRED)
-endif (TUT_FOUND)
-
-mark_as_advanced(TUT_INCLUDE_DIR)
diff --git a/indra/cmake/FindURIPARSER.cmake b/indra/cmake/FindURIPARSER.cmake
new file mode 100644
index 0000000000..8ab9f0f4ed
--- /dev/null
+++ b/indra/cmake/FindURIPARSER.cmake
@@ -0,0 +1,46 @@
+# -*- cmake -*-
+
+# - Find uriparser
+# Find the URIPARSER includes and library
+# This module defines
+# URIPARSER_INCLUDE_DIRS, where to find uriparser.h, etc.
+# URIPARSER_LIBRARIES, the libraries needed to use uriparser.
+# URIPARSER_FOUND, If false, do not try to use uriparser.
+#
+# This FindURIPARSER is about 43 times as fast the one provided with cmake (2.8.x),
+# because it doesn't look up the version of uriparser, resulting in a dramatic
+# speed up for configure (from 4 minutes 22 seconds to 6 seconds).
+#
+# Note: Since this file is only used for standalone, the windows
+# specific parts were left out.
+
+FIND_PATH(URIPARSER_INCLUDE_DIR uriparser/uri.h
+ NO_SYSTEM_ENVIRONMENT_PATH
+ )
+
+FIND_LIBRARY(URIPARSER_LIBRARY uriparser)
+
+if (URIPARSER_LIBRARY AND URIPARSER_INCLUDE_DIR)
+ SET(URIPARSER_INCLUDE_DIRS ${URIPARSER_INCLUDE_DIR})
+ SET(URIPARSER_LIBRARIES ${URIPARSER_LIBRARY})
+ SET(URIPARSER_FOUND "YES")
+else (URIPARSER_LIBRARY AND URIPARSER_INCLUDE_DIR)
+ SET(URIPARSER_FOUND "NO")
+endif (URIPARSER_LIBRARY AND URIPARSER_INCLUDE_DIR)
+
+if (URIPARSER_FOUND)
+ if (NOT URIPARSER_FIND_QUIETLY)
+ message(STATUS "Found URIPARSER: ${URIPARSER_LIBRARIES}")
+ SET(URIPARSER_FIND_QUIETLY TRUE)
+ endif (NOT URIPARSER_FIND_QUIETLY)
+else (URIPARSER_FOUND)
+ if (URIPARSER_FIND_REQUIRED)
+ message(FATAL_ERROR "Could not find URIPARSER library")
+ endif (URIPARSER_FIND_REQUIRED)
+endif (URIPARSER_FOUND)
+
+mark_as_advanced(
+ URIPARSER_LIBRARY
+ URIPARSER_INCLUDE_DIR
+ )
+
diff --git a/indra/cmake/FindXmlRpcEpi.cmake b/indra/cmake/FindXmlRpcEpi.cmake
index ba217e7467..ba217e7467 100644..100755
--- a/indra/cmake/FindXmlRpcEpi.cmake
+++ b/indra/cmake/FindXmlRpcEpi.cmake
diff --git a/indra/cmake/FindZLIB.cmake b/indra/cmake/FindZLIB.cmake
index 6d630f1ba9..03a7db9d6f 100644..100755
--- a/indra/cmake/FindZLIB.cmake
+++ b/indra/cmake/FindZLIB.cmake
@@ -30,12 +30,12 @@ endif (ZLIB_LIBRARY AND ZLIB_INCLUDE_DIR)
if (ZLIB_FOUND)
if (NOT ZLIB_FIND_QUIETLY)
- message(STATUS "Found ZLIB: ${ZLIB_LIBRARIES}")
- SET(ZLIB_FIND_QUIETLY TRUE)
+ message(STATUS "Found ZLIB: ${ZLIB_LIBRARIES}")
+ SET(ZLIB_FIND_QUIETLY TRUE)
endif (NOT ZLIB_FIND_QUIETLY)
else (ZLIB_FOUND)
if (ZLIB_FIND_REQUIRED)
- message(FATAL_ERROR "Could not find ZLIB library")
+ message(FATAL_ERROR "Could not find ZLIB library")
endif (ZLIB_FIND_REQUIRED)
endif (ZLIB_FOUND)
diff --git a/indra/cmake/FreeType.cmake b/indra/cmake/FreeType.cmake
index 5f1aa26e89..a36485f6d0 100644..100755
--- a/indra/cmake/FreeType.cmake
+++ b/indra/cmake/FreeType.cmake
@@ -1,20 +1,14 @@
# -*- cmake -*-
include(Prebuilt)
-if (STANDALONE)
+if (USESYSTEMLIBS)
include(FindPkgConfig)
pkg_check_modules(FREETYPE REQUIRED freetype2)
-else (STANDALONE)
+else (USESYSTEMLIBS)
use_prebuilt_binary(freetype)
- if (LINUX)
- set(FREETYPE_INCLUDE_DIRS
- ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/include)
- else (LINUX)
- set(FREETYPE_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include)
- endif (LINUX)
-
+ set(FREETYPE_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/freetype2/)
set(FREETYPE_LIBRARIES freetype)
-endif (STANDALONE)
+endif (USESYSTEMLIBS)
link_directories(${FREETYPE_LIBRARY_DIRS})
diff --git a/indra/cmake/GLEXT.cmake b/indra/cmake/GLEXT.cmake
new file mode 100644
index 0000000000..2a08c8fbae
--- /dev/null
+++ b/indra/cmake/GLEXT.cmake
@@ -0,0 +1,10 @@
+# -*- cmake -*-
+include(Prebuilt)
+
+if (NOT USESYSTEMLIBS)
+ if (WINDOWS OR LINUX)
+ use_prebuilt_binary(glext)
+ endif (WINDOWS OR LINUX)
+ use_prebuilt_binary(glh-linear)
+ set(GLEXT_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/include)
+endif (NOT USESYSTEMLIBS)
diff --git a/indra/cmake/GLH.cmake b/indra/cmake/GLH.cmake
new file mode 100755
index 0000000000..d0992f57b8
--- /dev/null
+++ b/indra/cmake/GLH.cmake
@@ -0,0 +1,11 @@
+# -*- cmake -*-
+include(Prebuilt)
+
+set(GLH_FIND_REQUIRED TRUE)
+set(GLH_FIND_QUIETLY TRUE)
+
+if (USESYSTEMLIBS)
+ include(FindGLH)
+else (USESYSTEMLIBS)
+ use_prebuilt_binary(glh-linear)
+endif (USESYSTEMLIBS)
diff --git a/indra/cmake/GLOD.cmake b/indra/cmake/GLOD.cmake
new file mode 100755
index 0000000000..a347eb6fee
--- /dev/null
+++ b/indra/cmake/GLOD.cmake
@@ -0,0 +1,9 @@
+# -*- cmake -*-
+include(Prebuilt)
+
+if (NOT USESYSTEMLIBS)
+ use_prebuilt_binary(glod)
+endif (NOT USESYSTEMLIBS)
+
+set(GLOD_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/include)
+set(GLOD_LIBRARIES GLOD)
diff --git a/indra/cmake/GStreamer010Plugin.cmake b/indra/cmake/GStreamer010Plugin.cmake
index 0ca432da18..3fbc40ef8f 100644..100755
--- a/indra/cmake/GStreamer010Plugin.cmake
+++ b/indra/cmake/GStreamer010Plugin.cmake
@@ -1,21 +1,21 @@
# -*- cmake -*-
include(Prebuilt)
-if (STANDALONE)
+if (USESYSTEMLIBS)
include(FindPkgConfig)
pkg_check_modules(GSTREAMER010 REQUIRED gstreamer-0.10)
pkg_check_modules(GSTREAMER010_PLUGINS_BASE REQUIRED gstreamer-plugins-base-0.10)
elseif (LINUX)
use_prebuilt_binary(gstreamer)
- # possible libxml should have its own .cmake file instead
- use_prebuilt_binary(libxml)
+ # possible libxml2 should have its own .cmake file instead
+ use_prebuilt_binary(libxml2)
set(GSTREAMER010_FOUND ON FORCE BOOL)
set(GSTREAMER010_PLUGINS_BASE_FOUND ON FORCE BOOL)
set(GSTREAMER010_INCLUDE_DIRS
- ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/include/gstreamer-0.10
- ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/include/glib-2.0
- ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/include/libxml2
+ ${LIBS_PREBUILT_DIR}/include/gstreamer-0.10
+ ${LIBS_PREBUILT_DIR}/include/glib-2.0
+ ${LIBS_PREBUILT_DIR}/include/libxml2
)
# We don't need to explicitly link against gstreamer itself, because
# LLMediaImplGStreamer probes for the system's copy at runtime.
@@ -26,7 +26,7 @@ elseif (LINUX)
gthread-2.0
glib-2.0
)
-endif (STANDALONE)
+endif (USESYSTEMLIBS)
if (GSTREAMER010_FOUND AND GSTREAMER010_PLUGINS_BASE_FOUND)
set(GSTREAMER010 ON CACHE BOOL "Build with GStreamer-0.10 streaming media support.")
diff --git a/indra/cmake/GetPrerequisites_2_8.cmake b/indra/cmake/GetPrerequisites_2_8.cmake
index 05ec1539ba..05ec1539ba 100644..100755
--- a/indra/cmake/GetPrerequisites_2_8.cmake
+++ b/indra/cmake/GetPrerequisites_2_8.cmake
diff --git a/indra/cmake/Glui.cmake b/indra/cmake/Glui.cmake
index f62a56856c..db353a91ec 100644..100755
--- a/indra/cmake/Glui.cmake
+++ b/indra/cmake/Glui.cmake
@@ -2,14 +2,14 @@
include(Linking)
include(Prebuilt)
-if (STANDALONE)
+if (USESYSTEMLIBS)
set(GLUI OFF CACHE BOOL
"GLUI support for the llplugin/llmedia test apps.")
-else (STANDALONE)
+else (USESYSTEMLIBS)
use_prebuilt_binary(glui)
set(GLUI ON CACHE BOOL
"GLUI support for the llplugin/llmedia test apps.")
-endif (STANDALONE)
+endif (USESYSTEMLIBS)
if (LINUX)
set(GLUI ON CACHE BOOL
diff --git a/indra/cmake/Glut.cmake b/indra/cmake/Glut.cmake
index 314da30652..314da30652 100644..100755
--- a/indra/cmake/Glut.cmake
+++ b/indra/cmake/Glut.cmake
diff --git a/indra/cmake/GoogleBreakpad.cmake b/indra/cmake/GoogleBreakpad.cmake
index 7498674042..829e1ac08a 100644..100755
--- a/indra/cmake/GoogleBreakpad.cmake
+++ b/indra/cmake/GoogleBreakpad.cmake
@@ -1,10 +1,10 @@
# -*- cmake -*-
include(Prebuilt)
-if (STANDALONE)
+if (USESYSTEMLIBS)
set(BREAKPAD_EXCEPTION_HANDLER_FIND_REQUIRED ON)
include(FindGoogleBreakpad)
-else (STANDALONE)
+else (USESYSTEMLIBS)
use_prebuilt_binary(google_breakpad)
if (DARWIN)
set(BREAKPAD_EXCEPTION_HANDLER_LIBRARIES exception_handler)
@@ -13,7 +13,10 @@ else (STANDALONE)
set(BREAKPAD_EXCEPTION_HANDLER_LIBRARIES breakpad_client)
endif (LINUX)
if (WINDOWS)
- set(BREAKPAD_EXCEPTION_HANDLER_LIBRARIES exception_handler crash_generation_client common)
+ set(BREAKPAD_EXCEPTION_HANDLER_LIBRARIES exception_handler crash_generation_client crash_generation_server common)
endif (WINDOWS)
-endif (STANDALONE)
+ # yes, this does look dumb, no, it's not incorrect
+ #
+ set(BREAKPAD_INCLUDE_DIRECTORIES "${LIBS_PREBUILT_DIR}/include/google_breakpad" "${LIBS_PREBUILT_DIR}/include/google_breakpad/google_breakpad")
+endif (USESYSTEMLIBS)
diff --git a/indra/cmake/GoogleMock.cmake b/indra/cmake/GoogleMock.cmake
index ca5a8034ba..5a00546927 100644..100755
--- a/indra/cmake/GoogleMock.cmake
+++ b/indra/cmake/GoogleMock.cmake
@@ -4,17 +4,18 @@ include(Linking)
use_prebuilt_binary(googlemock)
-set(GOOGLEMOCK_INCLUDE_DIRS
+set(GOOGLEMOCK_INCLUDE_DIRS
${LIBS_PREBUILT_DIR}/include)
if (LINUX)
- set(GOOGLEMOCK_LIBRARIES
- gmock
- gtest)
+ # VWR-24366: gmock is underlinked, it needs gtest.
+ set(GOOGLEMOCK_LIBRARIES
+ gmock -Wl,--no-as-needed
+ gtest -Wl,--as-needed)
elseif(WINDOWS)
- set(GOOGLEMOCK_LIBRARIES
+ set(GOOGLEMOCK_LIBRARIES
gmock)
- set(GOOGLEMOCK_INCLUDE_DIRS
+ set(GOOGLEMOCK_INCLUDE_DIRS
${LIBS_PREBUILT_DIR}/include
${LIBS_PREBUILT_DIR}/include/gmock
${LIBS_PREBUILT_DIR}/include/gmock/boost/tr1/tr1)
diff --git a/indra/cmake/GooglePerfTools.cmake b/indra/cmake/GooglePerfTools.cmake
index 946fc6b375..c1faeb9325 100644..100755
--- a/indra/cmake/GooglePerfTools.cmake
+++ b/indra/cmake/GooglePerfTools.cmake
@@ -1,26 +1,40 @@
# -*- cmake -*-
include(Prebuilt)
-if (STANDALONE)
+# If you want to enable or disable TCMALLOC in viewer builds, this is the place.
+# set ON or OFF as desired.
+set (USE_TCMALLOC OFF)
+
+if (USESYSTEMLIBS)
include(FindGooglePerfTools)
-else (STANDALONE)
- use_prebuilt_binary(google)
+else (USESYSTEMLIBS)
if (WINDOWS)
- use_prebuilt_binary(google-perftools)
- set(TCMALLOC_LIBRARIES
- debug libtcmalloc_minimal-debug
- optimized libtcmalloc_minimal)
+ if (USE_TCMALLOC)
+ use_prebuilt_binary(gperftools)
+ set(TCMALLOC_LIBRARIES
+ debug libtcmalloc_minimal-debug
+ optimized libtcmalloc_minimal)
+ set(TCMALLOC_LINK_FLAGS "/INCLUDE:__tcmalloc")
+ else (USE_TCMALLOC)
+ set(TCMALLOC_LIBRARIES)
+ set(TCMALLOC_LINK_FLAGS)
+ endif (USE_TCMALLOC)
set(GOOGLE_PERFTOOLS_FOUND "YES")
endif (WINDOWS)
if (LINUX)
- set(TCMALLOC_LIBRARIES tcmalloc)
- set(STACKTRACE_LIBRARIES stacktrace)
+ if (USE_TCMALLOC)
+ use_prebuilt_binary(gperftools)
+ set(TCMALLOC_LIBRARIES
+ tcmalloc)
+ else (USE_TCMALLOC)
+ set(TCMALLOC_LIBRARIES)
+ endif (USE_TCMALLOC)
set(PROFILER_LIBRARIES profiler)
set(GOOGLE_PERFTOOLS_INCLUDE_DIR
- ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/include)
+ ${LIBS_PREBUILT_DIR}/include)
set(GOOGLE_PERFTOOLS_FOUND "YES")
endif (LINUX)
-endif (STANDALONE)
+endif (USESYSTEMLIBS)
if (GOOGLE_PERFTOOLS_FOUND)
# XXX Disable temporarily, until we have compilation issues on 64-bit
@@ -29,14 +43,19 @@ if (GOOGLE_PERFTOOLS_FOUND)
endif (GOOGLE_PERFTOOLS_FOUND)
if (WINDOWS)
- # *TODO -reenable this once we get server usage sorted out
- #set(USE_GOOGLE_PERFTOOLS ON)
+ set(USE_GOOGLE_PERFTOOLS ON)
endif (WINDOWS)
if (USE_GOOGLE_PERFTOOLS)
- set(TCMALLOC_FLAG -DLL_USE_TCMALLOC=1)
+ if (USE_TCMALLOC)
+ set(TCMALLOC_FLAG -DLL_USE_TCMALLOC=1)
+ else (USE_TCMALLOC)
+ set(TCMALLOC_FLAG -ULL_USE_TCMALLOC)
+ endif (USE_TCMALLOC)
+endif (USE_GOOGLE_PERFTOOLS)
+
+if (USE_GOOGLE_PERFTOOLS)
include_directories(${GOOGLE_PERFTOOLS_INCLUDE_DIR})
set(GOOGLE_PERFTOOLS_LIBRARIES ${TCMALLOC_LIBRARIES} ${STACKTRACE_LIBRARIES} ${PROFILER_LIBRARIES})
else (USE_GOOGLE_PERFTOOLS)
- set(TCMALLOC_FLAG -ULL_USE_TCMALLOC)
endif (USE_GOOGLE_PERFTOOLS)
diff --git a/indra/cmake/Havok.cmake b/indra/cmake/Havok.cmake
new file mode 100755
index 0000000000..99e7334118
--- /dev/null
+++ b/indra/cmake/Havok.cmake
@@ -0,0 +1,137 @@
+# -*- cmake -*-
+include(Prebuilt)
+if(NOT DEFINED ${CMAKE_CURRENT_LIST_FILE}_INCLUDED)
+set(${CMAKE_CURRENT_LIST_FILE}_INCLUDED "YES")
+
+use_prebuilt_binary(havok-source)
+
+set(Havok_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/havok/Source)
+list(APPEND Havok_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/havok/Demo)
+
+set(HAVOK_DEBUG_LIBRARY_PATH ${LIBS_PREBUILT_DIR}/lib/debug/havok-fulldebug)
+set(HAVOK_RELEASE_LIBRARY_PATH ${LIBS_PREBUILT_DIR}/lib/release/havok)
+
+if (LL_DEBUG_HAVOK)
+ if (WIN32)
+ # Always link relwithdebinfo to havok-hybrid on windows.
+ set(HAVOK_RELWITHDEBINFO_LIBRARY_PATH ${LIBS_PREBUILT_DIR}/lib/debug/havok-hybrid)
+ else (WIN32)
+ set(HAVOK_RELWITHDEBINFO_LIBRARY_PATH ${LIBS_PREBUILT_DIR}/lib/debug/havok-fulldebug)
+ endif (WIN32)
+else (LL_DEBUG_HAVOK)
+ set(HAVOK_RELWITHDEBINFO_LIBRARY_PATH ${LIBS_PREBUILT_DIR}/lib/release/havok)
+endif (LL_DEBUG_HAVOK)
+
+set(HAVOK_LIBS
+ hkBase
+ hkCompat
+ hkGeometryUtilities
+ hkInternal
+ hkSerialize
+ hkSceneData
+ hkpCollide
+ hkpUtilities
+ hkpConstraintSolver
+ hkpDynamics
+ hkpInternal
+ hkaiInternal
+ hkaiPathfinding
+ hkaiAiPhysicsBridge
+ hkcdInternal
+ hkcdCollide
+ hkpVehicle
+ hkVisualize
+ hkaiVisualize
+ hkgpConvexDecomposition
+)
+
+unset(HK_DEBUG_LIBRARIES)
+unset(HK_RELEASE_LIBRARIES)
+unset(HK_RELWITHDEBINFO_LIBRARIES)
+
+# *TODO: Figure out why we need to extract like this...
+foreach(HAVOK_LIB ${HAVOK_LIBS})
+ find_library(HAVOK_DEBUG_LIB_${HAVOK_LIB} ${HAVOK_LIB} PATHS ${HAVOK_DEBUG_LIBRARY_PATH})
+ find_library(HAVOK_RELEASE_LIB_${HAVOK_LIB} ${HAVOK_LIB} PATHS ${HAVOK_RELEASE_LIBRARY_PATH})
+ find_library(HAVOK_RELWITHDEBINFO_LIB_${HAVOK_LIB} ${HAVOK_LIB} PATHS ${HAVOK_RELWITHDEBINFO_LIBRARY_PATH})
+
+ if(LINUX)
+ set(debug_dir "${HAVOK_DEBUG_LIBRARY_PATH}/${HAVOK_LIB}")
+ set(release_dir "${HAVOK_RELEASE_LIBRARY_PATH}/${HAVOK_LIB}")
+ set(relwithdebinfo_dir "${HAVOK_RELWITHDEBINFO_LIBRARY_PATH}/${HAVOK_LIB}")
+
+ # Try to avoid extracting havok library each time we run cmake.
+ if("${havok_${HAVOK_LIB}_extracted}" STREQUAL "" AND EXISTS "${PREBUILD_TRACKING_DIR}/havok_${HAVOK_LIB}_extracted")
+ file(READ ${PREBUILD_TRACKING_DIR}/havok_${HAVOK_LIB}_extracted "havok_${HAVOK_LIB}_extracted")
+ if(DEBUG_PREBUILT)
+ message(STATUS "havok_${HAVOK_LIB}_extracted: \"${havok_${HAVOK_LIB}_extracted}\"")
+ endif(DEBUG_PREBUILT)
+ endif("${havok_${HAVOK_LIB}_extracted}" STREQUAL "" AND EXISTS "${PREBUILD_TRACKING_DIR}/havok_${HAVOK_LIB}_extracted")
+
+ if(${PREBUILD_TRACKING_DIR}/havok_source_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/havok_${HAVOK_LIB}_extracted OR NOT ${havok_${HAVOK_LIB}_extracted} EQUAL 0)
+ if(DEBUG_PREBUILT)
+ MESSAGE(STATUS "Extracting ${HAVOK_LIB}...")
+ endif(DEBUG_PREBUILT)
+ set(cmd "mkdir")
+
+ if(DEBUG_PREBUILT)
+ MESSAGE(STATUS "${cmd} ${debug_dir}")
+ endif(DEBUG_PREBUILT)
+ exec_program( ${cmd} ${HAVOK_DEBUG_LIBRARY_PATH} ARGS ${debug_dir} OUTPUT_VARIABLE rv)
+
+ if(DEBUG_PREBUILT)
+ MESSAGE(STATUS "${cmd} ${release_dir}")
+ endif(DEBUG_PREBUILT)
+ exec_program( ${cmd} ${HAVOK_RELEASE_LIBRARY_PATH} ARGS ${release_dir} OUTPUT_VARIABLE rv)
+
+ if(DEBUG_PREBUILT)
+ MESSAGE(STATUS "${cmd} ${relwithdebinfo_dir}")
+ endif(DEBUG_PREBUILT)
+ exec_program( ${cmd} ${HAVOK_RELWITHDEBINFO_LIBRARY_PATH} ARGS ${relwithdebinfo_dir} OUTPUT_VARIABLE rv)
+
+ set(cmd "ar")
+ set(arg " -xv")
+ set(arg "${arg} ../lib${HAVOK_LIB}.a")
+ if(DEBUG_PREBUILT)
+ MESSAGE(STATUS "cd ${debug_dir} && ${cmd} ${arg}")
+ endif(DEBUG_PREBUILT)
+ exec_program( ${cmd} ${debug_dir} ARGS ${arg} OUTPUT_VARIABLE rv)
+
+ if(DEBUG_PREBUILT)
+ MESSAGE(STATUS "cd ${release_dir} && ${cmd} ${arg}")
+ endif(DEBUG_PREBUILT)
+ exec_program( ${cmd} ${release_dir} ARGS ${arg} OUTPUT_VARIABLE rv)
+
+ if(DEBUG_PREBUILT)
+ MESSAGE(STATUS "cd ${relwithdebinfo_dir} && ${cmd} ${arg}")
+ endif(DEBUG_PREBUILT)
+ exec_program( ${cmd} ${relwithdebinfo_dir} ARGS ${arg} OUTPUT_VARIABLE rv)
+
+ # Just assume success for now.
+ set(havok_${HAVOK_LIB}_extracted 0)
+ file(WRITE ${PREBUILD_TRACKING_DIR}/havok_${HAVOK_LIB}_extracted "${havok_${HAVOK_LIB}_extracted}")
+
+ endif(${PREBUILD_TRACKING_DIR}/havok_source_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/havok_${HAVOK_LIB}_extracted OR NOT ${havok_${HAVOK_LIB}_extracted} EQUAL 0)
+
+ file(GLOB extracted_debug "${debug_dir}/*.o")
+ file(GLOB extracted_release "${release_dir}/*.o")
+ file(GLOB extracted_relwithdebinfo "${relwithdebinfo_dir}/*.o")
+
+ if(DEBUG_PREBUILT)
+ MESSAGE(STATUS "extracted_debug ${debug_dir}/*.o")
+ MESSAGE(STATUS "extracted_release ${release_dir}/*.o")
+ MESSAGE(STATUS "extracted_relwithdebinfo ${relwithdebinfo_dir}/*.o")
+ endif(DEBUG_PREBUILT)
+
+ list(APPEND HK_DEBUG_LIBRARIES ${extracted_debug})
+ list(APPEND HK_RELEASE_LIBRARIES ${extracted_release})
+ list(APPEND HK_RELWITHDEBINFO_LIBRARIES ${extracted_relwithdebinfo})
+ else(LINUX)
+ # Win32
+ list(APPEND HK_DEBUG_LIBRARIES ${HAVOK_DEBUG_LIB_${HAVOK_LIB}})
+ list(APPEND HK_RELEASE_LIBRARIES ${HAVOK_RELEASE_LIB_${HAVOK_LIB}})
+ list(APPEND HK_RELWITHDEBINFO_LIBRARIES ${HAVOK_RELWITHDEBINFO_LIB_${HAVOK_LIB}})
+ endif (LINUX)
+endforeach(HAVOK_LIB)
+
+endif(NOT DEFINED ${CMAKE_CURRENT_LIST_FILE}_INCLUDED)
diff --git a/indra/cmake/Hunspell.cmake b/indra/cmake/Hunspell.cmake
new file mode 100755
index 0000000000..ef74d95b2a
--- /dev/null
+++ b/indra/cmake/Hunspell.cmake
@@ -0,0 +1,22 @@
+# -*- cmake -*-
+include(Prebuilt)
+
+set(HUNSPELL_FIND_QUIETLY ON)
+set(HUNSPELL_FIND_REQUIRED ON)
+
+if (USESYSTEMLIBS)
+ include(FindHUNSPELL)
+else (USESYSTEMLIBS)
+ use_prebuilt_binary(libhunspell)
+ if (WINDOWS)
+ set(HUNSPELL_LIBRARY libhunspell)
+ elseif(DARWIN)
+ set(HUNSPELL_LIBRARY hunspell-1.3.0)
+ elseif(LINUX)
+ set(HUNSPELL_LIBRARY hunspell-1.3)
+ else()
+ message(FATAL_ERROR "Invalid platform")
+ endif()
+ set(HUNSPELL_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/hunspell)
+ use_prebuilt_binary(dictionaries)
+endif (USESYSTEMLIBS)
diff --git a/indra/cmake/JPEG.cmake b/indra/cmake/JPEG.cmake
index 9514d59f64..d6da22aecc 100644..100755
--- a/indra/cmake/JPEG.cmake
+++ b/indra/cmake/JPEG.cmake
@@ -5,19 +5,16 @@ include(Linking)
set(JPEG_FIND_QUIETLY ON)
set(JPEG_FIND_REQUIRED ON)
-if (STANDALONE)
+if (USESYSTEMLIBS)
include(FindJPEG)
-else (STANDALONE)
+else (USESYSTEMLIBS)
use_prebuilt_binary(jpeglib)
if (LINUX)
set(JPEG_LIBRARIES jpeg)
elseif (DARWIN)
- set(JPEG_LIBRARIES
- optimized ${ARCH_PREBUILT_DIRS_RELEASE}/liblljpeg.a
- debug ${ARCH_PREBUILT_DIRS_DEBUG}/liblljpeg.a
- )
+ set(JPEG_LIBRARIES jpeg)
elseif (WINDOWS)
set(JPEG_LIBRARIES jpeglib)
endif (LINUX)
set(JPEG_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include)
-endif (STANDALONE)
+endif (USESYSTEMLIBS)
diff --git a/indra/cmake/JsonCpp.cmake b/indra/cmake/JsonCpp.cmake
index 7dd565be7c..079619adf8 100644..100755
--- a/indra/cmake/JsonCpp.cmake
+++ b/indra/cmake/JsonCpp.cmake
@@ -5,18 +5,18 @@ include(Prebuilt)
set(JSONCPP_FIND_QUIETLY ON)
set(JSONCPP_FIND_REQUIRED ON)
-if (STANDALONE)
+if (USESYSTEMLIBS)
include(FindJsonCpp)
-else (STANDALONE)
+else (USESYSTEMLIBS)
use_prebuilt_binary(jsoncpp)
if (WINDOWS)
set(JSONCPP_LIBRARIES
- debug json_vc80d
- optimized json_vc80)
+ debug json_libmdd.lib
+ optimized json_libmd.lib)
elseif (DARWIN)
- set(JSONCPP_LIBRARIES json_mac-universal-gcc_libmt)
+ set(JSONCPP_LIBRARIES libjson_darwin_libmt.a)
elseif (LINUX)
- set(JSONCPP_LIBRARIES jsoncpp)
+ set(JSONCPP_LIBRARIES libjson_linux-gcc-4.1.3_libmt.a)
endif (WINDOWS)
- set(JSONCPP_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/jsoncpp)
-endif (STANDALONE)
+ set(JSONCPP_INCLUDE_DIR "${LIBS_PREBUILT_DIR}/include/jsoncpp" "${LIBS_PREBUILT_DIR}/include/json")
+endif (USESYSTEMLIBS)
diff --git a/indra/cmake/LLAddBuildTest.cmake b/indra/cmake/LLAddBuildTest.cmake
index 05f0492234..ac5c5c6a2a 100644
--- a/indra/cmake/LLAddBuildTest.cmake
+++ b/indra/cmake/LLAddBuildTest.cmake
@@ -1,6 +1,7 @@
# -*- cmake -*-
include(LLTestCommand)
include(GoogleMock)
+include(Tut)
MACRO(LL_ADD_PROJECT_UNIT_TESTS project sources)
# Given a project name and a list of sourcefiles (with optional properties on each),
@@ -57,11 +58,6 @@ INCLUDE(GoogleMock)
${CMAKE_SOURCE_DIR}/test/test.h
)
- # Use the default flags
- if (LINUX)
- SET(CMAKE_EXE_LINKER_FLAGS "")
- endif (LINUX)
-
# start the source test executable definitions
SET(${project}_TEST_OUTPUT "")
FOREACH (source ${sources})
@@ -99,7 +95,7 @@ INCLUDE(GoogleMock)
IF(${name}_test_additional_INCLUDE_DIRS MATCHES NOTFOUND)
SET(${name}_test_additional_INCLUDE_DIRS "")
ENDIF(${name}_test_additional_INCLUDE_DIRS MATCHES NOTFOUND)
- INCLUDE_DIRECTORIES(${alltest_INCLUDE_DIRS} ${name}_test_additional_INCLUDE_DIRS )
+ INCLUDE_DIRECTORIES(${alltest_INCLUDE_DIRS} ${${name}_test_additional_INCLUDE_DIRS} )
IF(LL_TEST_VERBOSE)
MESSAGE("LL_ADD_PROJECT_UNIT_TESTS ${name}_test_additional_INCLUDE_DIRS ${${name}_test_additional_INCLUDE_DIRS}")
ENDIF(LL_TEST_VERBOSE)
@@ -141,7 +137,7 @@ INCLUDE(GoogleMock)
#
# Setup test targets
#
- GET_TARGET_PROPERTY(TEST_EXE PROJECT_${project}_TEST_${name} LOCATION)
+ SET(TEST_EXE $<TARGET_FILE:PROJECT_${project}_TEST_${name}>)
SET(TEST_OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/PROJECT_${project}_TEST_${name}_ok.txt)
SET(TEST_CMD ${TEST_EXE} --touch=${TEST_OUTPUT} --sourcedir=${CMAKE_CURRENT_SOURCE_DIR})
@@ -205,9 +201,21 @@ FUNCTION(LL_ADD_INTEGRATION_TEST
endif(TEST_DEBUG)
ADD_EXECUTABLE(INTEGRATION_TEST_${testname} ${source_files})
SET_TARGET_PROPERTIES(INTEGRATION_TEST_${testname} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${EXE_STAGING_DIR}")
- if(STANDALONE)
+
+ if(USESYSTEMLIBS)
SET_TARGET_PROPERTIES(INTEGRATION_TEST_${testname} PROPERTIES COMPILE_FLAGS -I"${TUT_INCLUDE_DIR}")
- endif(STANDALONE)
+ endif(USESYSTEMLIBS)
+
+ # The following was copied to llcorehttp/CMakeLists.txt's texture_load target.
+ # Any changes made here should be replicated there.
+ if (WINDOWS)
+ SET_TARGET_PROPERTIES(INTEGRATION_TEST_${testname}
+ PROPERTIES
+ LINK_FLAGS "/debug /NODEFAULTLIB:LIBCMT /SUBSYSTEM:CONSOLE"
+ LINK_FLAGS_DEBUG "/NODEFAULTLIB:\"LIBCMT;LIBCMTD;MSVCRT\" /INCREMENTAL:NO"
+ LINK_FLAGS_RELEASE ""
+ )
+ endif (WINDOWS)
# Add link deps to the executable
if(TEST_DEBUG)
@@ -217,7 +225,7 @@ FUNCTION(LL_ADD_INTEGRATION_TEST
# Create the test running command
SET(test_command ${ARGN})
- GET_TARGET_PROPERTY(TEST_EXE INTEGRATION_TEST_${testname} LOCATION)
+ SET(TEST_EXE $<TARGET_FILE:INTEGRATION_TEST_${testname}>)
LIST(FIND test_command "{}" test_exe_pos)
IF(test_exe_pos LESS 0)
# The {} marker means "the full pathname of the test executable."
@@ -267,10 +275,10 @@ MACRO(SET_TEST_PATH LISTVAR)
set(${LISTVAR} ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/Resources ${SHARED_LIB_STAGING_DIR}/Release/Resources /usr/lib)
ELSE(WINDOWS)
# Linux uses a single staging directory anyway.
- IF (STANDALONE)
+ IF (USESYSTEMLIBS)
set(${LISTVAR} ${CMAKE_BINARY_DIR}/llcommon /usr/lib /usr/local/lib)
- ELSE (STANDALONE)
+ ELSE (USESYSTEMLIBS)
set(${LISTVAR} ${SHARED_LIB_STAGING_DIR} /usr/lib)
- ENDIF (STANDALONE)
+ ENDIF (USESYSTEMLIBS)
ENDIF(WINDOWS)
ENDMACRO(SET_TEST_PATH)
diff --git a/indra/cmake/LLAppearance.cmake b/indra/cmake/LLAppearance.cmake
new file mode 100644
index 0000000000..bd3795a526
--- /dev/null
+++ b/indra/cmake/LLAppearance.cmake
@@ -0,0 +1,17 @@
+# -*- cmake -*-
+
+include(Variables)
+
+set(LLAPPEARANCE_INCLUDE_DIRS
+ ${LIBS_OPEN_DIR}/llappearance
+ )
+
+if (BUILD_HEADLESS)
+ set(LLAPPEARANCE_HEADLESS_LIBRARIES
+ llappearanceheadless
+ )
+endif (BUILD_HEADLESS)
+
+set(LLAPPEARANCE_LIBRARIES llappearance)
+
+
diff --git a/indra/cmake/LLAppearanceUtility.cmake b/indra/cmake/LLAppearanceUtility.cmake
new file mode 100644
index 0000000000..709b91c134
--- /dev/null
+++ b/indra/cmake/LLAppearanceUtility.cmake
@@ -0,0 +1,12 @@
+# -*- cmake -*-
+include(Prebuilt)
+
+# Linux proprietary build only
+if (INSTALL_PROPRIETARY)
+ if(LINUX)
+ use_prebuilt_binary(llappearance_utility)
+ set(LLAPPEARANCEUTILITY_SRC_DIR ${LIBS_PREBUILT_DIR}/llappearanceutility/src)
+ set(LLAPPEARANCEUTILITY_BIN_DIR ${CMAKE_BINARY_DIR}/llappearanceutility)
+ endif (LINUX)
+endif (INSTALL_PROPRIETARY)
+
diff --git a/indra/cmake/LLAudio.cmake b/indra/cmake/LLAudio.cmake
index 7c248dfc72..7c248dfc72 100644..100755
--- a/indra/cmake/LLAudio.cmake
+++ b/indra/cmake/LLAudio.cmake
diff --git a/indra/cmake/LLCharacter.cmake b/indra/cmake/LLCharacter.cmake
index 9b2f5c4956..9b2f5c4956 100644..100755
--- a/indra/cmake/LLCharacter.cmake
+++ b/indra/cmake/LLCharacter.cmake
diff --git a/indra/cmake/LLCommon.cmake b/indra/cmake/LLCommon.cmake
index 17e211cb99..b52556a73e 100644..100755
--- a/indra/cmake/LLCommon.cmake
+++ b/indra/cmake/LLCommon.cmake
@@ -10,6 +10,8 @@ set(LLCOMMON_INCLUDE_DIRS
${LIBS_OPEN_DIR}/llcommon
${APRUTIL_INCLUDE_DIR}
${APR_INCLUDE_DIR}
+ )
+set(LLCOMMON_SYSTEM_INCLUDE_DIRS
${Boost_INCLUDE_DIRS}
)
@@ -22,9 +24,9 @@ else (LINUX)
set(LLCOMMON_LIBRARIES llcommon)
endif (LINUX)
-add_definitions(${TCMALLOC_FLAG})
+# add_definitions(${TCMALLOC_FLAG})
-set(LLCOMMON_LINK_SHARED ON CACHE BOOL "Build the llcommon target as a shared library.")
+set(LLCOMMON_LINK_SHARED OFF CACHE BOOL "Build the llcommon target as a static library.")
if(LLCOMMON_LINK_SHARED)
add_definitions(-DLL_COMMON_LINK_SHARED=1)
endif(LLCOMMON_LINK_SHARED)
diff --git a/indra/cmake/LLCoreHttp.cmake b/indra/cmake/LLCoreHttp.cmake
new file mode 100755
index 0000000000..61e4b23d98
--- /dev/null
+++ b/indra/cmake/LLCoreHttp.cmake
@@ -0,0 +1,16 @@
+# -*- cmake -*-
+
+include(CARes)
+include(CURL)
+include(OpenSSL)
+include(Boost)
+
+set(LLCOREHTTP_INCLUDE_DIRS
+ ${LIBS_OPEN_DIR}/llcorehttp
+ ${CARES_INCLUDE_DIRS}
+ ${CURL_INCLUDE_DIRS}
+ ${OPENSSL_INCLUDE_DIRS}
+ ${BOOST_INCLUDE_DIRS}
+ )
+
+set(LLCOREHTTP_LIBRARIES llcorehttp)
diff --git a/indra/cmake/LLCrashLogger.cmake b/indra/cmake/LLCrashLogger.cmake
index f2cb83eb8b..f2cb83eb8b 100644..100755
--- a/indra/cmake/LLCrashLogger.cmake
+++ b/indra/cmake/LLCrashLogger.cmake
diff --git a/indra/cmake/LLDatabase.cmake b/indra/cmake/LLDatabase.cmake
deleted file mode 100644
index 6526101386..0000000000
--- a/indra/cmake/LLDatabase.cmake
+++ /dev/null
@@ -1,10 +0,0 @@
-# -*- cmake -*-
-
-include(MySQL)
-
-set(LLDATABASE_INCLUDE_DIRS
- ${LIBS_SERVER_DIR}/lldatabase
- ${MYSQL_INCLUDE_DIR}
- )
-
-set(LLDATABASE_LIBRARIES lldatabase)
diff --git a/indra/cmake/LLImage.cmake b/indra/cmake/LLImage.cmake
index ec3da89081..ec3da89081 100644..100755
--- a/indra/cmake/LLImage.cmake
+++ b/indra/cmake/LLImage.cmake
diff --git a/indra/cmake/LLImageJ2COJ.cmake b/indra/cmake/LLImageJ2COJ.cmake
index 1bcf205f2d..1bcf205f2d 100644..100755
--- a/indra/cmake/LLImageJ2COJ.cmake
+++ b/indra/cmake/LLImageJ2COJ.cmake
diff --git a/indra/cmake/LLInventory.cmake b/indra/cmake/LLInventory.cmake
index c3dc077a2b..c3dc077a2b 100644..100755
--- a/indra/cmake/LLInventory.cmake
+++ b/indra/cmake/LLInventory.cmake
diff --git a/indra/cmake/LLKDU.cmake b/indra/cmake/LLKDU.cmake
index f5cbad03a6..e478b01f84 100644..100755
--- a/indra/cmake/LLKDU.cmake
+++ b/indra/cmake/LLKDU.cmake
@@ -1,20 +1,21 @@
# -*- cmake -*-
-include(Prebuilt)
-# USE_KDU can be set when launching cmake or develop.py as an option using the argument -DUSE_KDU:BOOL=ON
-# When building using proprietary binaries though (i.e. having access to LL private servers), we always build with KDU
-if (INSTALL_PROPRIETARY AND NOT STANDALONE)
- set(USE_KDU ON)
-endif (INSTALL_PROPRIETARY AND NOT STANDALONE)
+# USE_KDU can be set when launching cmake as an option using the argument -DUSE_KDU:BOOL=ON
+# When building using proprietary binaries though (i.e. having access to LL private servers),
+# we always build with KDU
+if (INSTALL_PROPRIETARY)
+ set(USE_KDU ON CACHE BOOL "Use Kakadu library.")
+endif (INSTALL_PROPRIETARY)
if (USE_KDU)
+ include(Prebuilt)
use_prebuilt_binary(kdu)
if (WINDOWS)
set(KDU_LIBRARY kdu.lib)
else (WINDOWS)
set(KDU_LIBRARY libkdu.a)
endif (WINDOWS)
- set(KDU_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/include/kdu)
+ set(KDU_INCLUDE_DIR ${AUTOBUILD_INSTALL_DIR}/include/kdu)
set(LLKDU_INCLUDE_DIRS ${LIBS_OPEN_DIR}/llkdu)
set(LLKDU_LIBRARIES llkdu)
endif (USE_KDU)
diff --git a/indra/cmake/LLLogin.cmake b/indra/cmake/LLLogin.cmake
index 47d171876a..47d171876a 100644..100755
--- a/indra/cmake/LLLogin.cmake
+++ b/indra/cmake/LLLogin.cmake
diff --git a/indra/cmake/LLMath.cmake b/indra/cmake/LLMath.cmake
index 893920ae6f..893920ae6f 100644..100755
--- a/indra/cmake/LLMath.cmake
+++ b/indra/cmake/LLMath.cmake
diff --git a/indra/cmake/LLMessage.cmake b/indra/cmake/LLMessage.cmake
index 0143d04fd7..0143d04fd7 100644..100755
--- a/indra/cmake/LLMessage.cmake
+++ b/indra/cmake/LLMessage.cmake
diff --git a/indra/cmake/LLPhysicsExtensions.cmake b/indra/cmake/LLPhysicsExtensions.cmake
new file mode 100755
index 0000000000..e6afee762e
--- /dev/null
+++ b/indra/cmake/LLPhysicsExtensions.cmake
@@ -0,0 +1,35 @@
+# -*- cmake -*-
+include(Prebuilt)
+
+# There are three possible solutions to provide the llphysicsextensions:
+# - The full source package, selected by -DHAVOK:BOOL=ON
+# - The stub source package, selected by -DHAVOK:BOOL=OFF
+# - The prebuilt package available to those with sublicenses, selected by -DHAVOK_TPV:BOOL=ON
+
+if (INSTALL_PROPRIETARY)
+ set(HAVOK ON CACHE BOOL "Use Havok physics library")
+endif (INSTALL_PROPRIETARY)
+
+
+# Note that the use_prebuilt_binary macros below do not in fact include binaries;
+# the llphysicsextensions_* packages are source only and are built here.
+# The source package and the stub package both build libraries of the same name.
+
+if (HAVOK)
+ include(Havok)
+ use_prebuilt_binary(llphysicsextensions_source)
+ set(LLPHYSICSEXTENSIONS_SRC_DIR ${LIBS_PREBUILT_DIR}/llphysicsextensions/src)
+ set(LLPHYSICSEXTENSIONS_LIBRARIES llphysicsextensions)
+
+elseif (HAVOK_TPV)
+ use_prebuilt_binary(llphysicsextensions_tpv)
+ set(LLPHYSICSEXTENSIONS_LIBRARIES llphysicsextensions_tpv)
+
+else (HAVOK)
+ use_prebuilt_binary(llphysicsextensions_stub)
+ set(LLPHYSICSEXTENSIONS_SRC_DIR ${LIBS_PREBUILT_DIR}/llphysicsextensions/stub)
+ set(LLPHYSICSEXTENSIONS_LIBRARIES llphysicsextensionsstub)
+
+endif (HAVOK)
+
+set(LLPHYSICSEXTENSIONS_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/llphysicsextensions)
diff --git a/indra/cmake/LLPlugin.cmake b/indra/cmake/LLPlugin.cmake
index 7ee404b9bd..399cb332dd 100644..100755
--- a/indra/cmake/LLPlugin.cmake
+++ b/indra/cmake/LLPlugin.cmake
@@ -8,7 +8,7 @@ set(LLPLUGIN_INCLUDE_DIRS
if (LINUX)
# In order to support using ld.gold on linux, we need to explicitely
# specify all libraries that llplugin uses.
- set(LLPLUGIN_LIBRARIES llplugin pthread)
+ set(LLPLUGIN_LIBRARIES llplugin pthread)
else (LINUX)
- set(LLPLUGIN_LIBRARIES llplugin)
+ set(LLPLUGIN_LIBRARIES llplugin)
endif (LINUX)
diff --git a/indra/cmake/LLPrimitive.cmake b/indra/cmake/LLPrimitive.cmake
index d397b78f1c..93626f689f 100644..100755
--- a/indra/cmake/LLPrimitive.cmake
+++ b/indra/cmake/LLPrimitive.cmake
@@ -1,7 +1,49 @@
# -*- cmake -*-
+# these should be moved to their own cmake file
+include(Prebuilt)
+include(Boost)
+
+use_prebuilt_binary(colladadom)
+use_prebuilt_binary(pcre)
+use_prebuilt_binary(libxml2)
+
set(LLPRIMITIVE_INCLUDE_DIRS
${LIBS_OPEN_DIR}/llprimitive
)
+if (WINDOWS)
+ set(LLPRIMITIVE_LIBRARIES
+ debug llprimitive
+ optimized llprimitive
+ debug libcollada14dom23-sd
+ optimized libcollada14dom23-s
+ libxml2_a
+ debug pcrecppd
+ optimized pcrecpp
+ debug pcred
+ optimized pcre
+ ${BOOST_SYSTEM_LIBRARIES}
+ )
+elseif (DARWIN)
+ set(LLPRIMITIVE_LIBRARIES
+ llprimitive
+ debug collada14dom-d
+ optimized collada14dom
+ minizip
+ xml2
+ pcrecpp
+ pcre
+ iconv # Required by libxml2
+ )
+elseif (LINUX)
+ set(LLPRIMITIVE_LIBRARIES
+ llprimitive
+ debug collada14dom-d
+ optimized collada14dom
+ minizip
+ xml2
+ pcrecpp
+ pcre
+ )
+endif (WINDOWS)
-set(LLPRIMITIVE_LIBRARIES llprimitive)
diff --git a/indra/cmake/LLRender.cmake b/indra/cmake/LLRender.cmake
index c47e8878e9..868922451f 100644..100755
--- a/indra/cmake/LLRender.cmake
+++ b/indra/cmake/LLRender.cmake
@@ -1,32 +1,20 @@
# -*- cmake -*-
+include(Variables)
include(FreeType)
+include(GLH)
set(LLRENDER_INCLUDE_DIRS
${LIBS_OPEN_DIR}/llrender
+ ${GLH_INCLUDE_DIR}
)
-if (SERVER AND LINUX)
- set(LLRENDER_LIBRARIES
+if (BUILD_HEADLESS)
+ set(LLRENDER_HEADLESS_LIBRARIES
llrenderheadless
)
-else (SERVER AND LINUX)
+endif (BUILD_HEADLESS)
set(LLRENDER_LIBRARIES
llrender
)
-endif (SERVER AND LINUX)
-# mapserver requires certain files to be copied so LL_MESA_HEADLESS can be set
-# differently for different object files.
-macro (copy_server_sources )
- foreach (PREFIX ${ARGV})
- add_custom_command(
- OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${PREFIX}_server.cpp
- COMMAND ${CMAKE_COMMAND}
- ARGS -E copy ${CMAKE_CURRENT_SOURCE_DIR}/${PREFIX}.cpp
- ${CMAKE_CURRENT_BINARY_DIR}/${PREFIX}_server.cpp
- DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${PREFIX}.cpp
- )
- list(APPEND server_SOURCE_FILES ${PREFIX}_server.cpp)
- endforeach (PREFIX ${_copied_SOURCES})
-endmacro (copy_server_sources _copied_SOURCES)
diff --git a/indra/cmake/LLScene.cmake b/indra/cmake/LLScene.cmake
deleted file mode 100644
index 96ad5085a2..0000000000
--- a/indra/cmake/LLScene.cmake
+++ /dev/null
@@ -1,7 +0,0 @@
-# -*- cmake -*-
-
-set(LLSCENE_INCLUDE_DIRS
- ${LIBS_SERVER_DIR}/llscene
- )
-
-set(LLSCENE_LIBRARIES llscene)
diff --git a/indra/cmake/LLSharedLibs.cmake b/indra/cmake/LLSharedLibs.cmake
index e29076c738..a3c1c871aa 100644..100755
--- a/indra/cmake/LLSharedLibs.cmake
+++ b/indra/cmake/LLSharedLibs.cmake
@@ -1,7 +1,7 @@
# ll_deploy_sharedlibs_command
# target_exe: the cmake target of the executable for which the shared libs will be deployed.
macro(ll_deploy_sharedlibs_command target_exe)
- get_target_property(TARGET_LOCATION ${target_exe} LOCATION)
+ set(TARGET_LOCATION $<TARGET_FILE:${target_exe}>)
get_filename_component(OUTPUT_PATH ${TARGET_LOCATION} PATH)
if(DARWIN)
@@ -38,18 +38,17 @@ endmacro(ll_deploy_sharedlibs_command)
# ll_stage_sharedlib
# Performs config and adds a copy command for a sharedlib target.
macro(ll_stage_sharedlib DSO_TARGET)
- if(SHARED_LIB_STAGING_DIR)
- # target gets written to the DLL staging directory.
- # Also this directory is shared with RunBuildTest.cmake, y'know, for the tests.
- set_target_properties(${DSO_TARGET} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${SHARED_LIB_STAGING_DIR})
- if(NOT WINDOWS)
- get_target_property(DSO_PATH ${DSO_TARGET} LOCATION)
- get_filename_component(DSO_FILE ${DSO_PATH} NAME)
- if(DARWIN)
- set(SHARED_LIB_STAGING_DIR_CONFIG ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/Resources)
- else(DARWIN)
- set(SHARED_LIB_STAGING_DIR_CONFIG ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR})
- endif(DARWIN)
+ # target gets written to the DLL staging directory.
+ # Also this directory is shared with RunBuildTest.cmake, y'know, for the tests.
+ set_target_properties(${DSO_TARGET} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${SHARED_LIB_STAGING_DIR})
+ if(NOT WINDOWS)
+ get_target_property(DSO_PATH ${DSO_TARGET} LOCATION)
+ get_filename_component(DSO_FILE ${DSO_PATH} NAME)
+ if(DARWIN)
+ set(SHARED_LIB_STAGING_DIR_CONFIG ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/Resources)
+ else(DARWIN)
+ set(SHARED_LIB_STAGING_DIR_CONFIG ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR})
+ endif(DARWIN)
# *TODO - maybe make this a symbolic link? -brad
add_custom_command(
@@ -63,7 +62,6 @@ macro(ll_stage_sharedlib DSO_TARGET)
COMMENT "Copying llcommon to the staging folder."
)
endif(NOT WINDOWS)
- endif(SHARED_LIB_STAGING_DIR)
if (DARWIN)
set_target_properties(${DSO_TARGET} PROPERTIES
diff --git a/indra/cmake/LLTestCommand.cmake b/indra/cmake/LLTestCommand.cmake
index 554559edbd..f75c23a5de 100644..100755
--- a/indra/cmake/LLTestCommand.cmake
+++ b/indra/cmake/LLTestCommand.cmake
@@ -1,3 +1,4 @@
+include(Python)
MACRO(LL_TEST_COMMAND OUTVAR LD_LIBRARY_PATH)
# nat wonders how Kitware can use the term 'function' for a construct that
# cannot return a value. And yet, variables you set inside a FUNCTION are
@@ -8,6 +9,9 @@ MACRO(LL_TEST_COMMAND OUTVAR LD_LIBRARY_PATH)
FOREACH(dir ${LD_LIBRARY_PATH})
LIST(APPEND value "-l${dir}")
ENDFOREACH(dir)
+ # Enough different tests want to be able to find CMake's PYTHON_EXECUTABLE
+ # that we should just pop it into the environment for everybody.
+ LIST(APPEND value "-DPYTHON=${PYTHON_EXECUTABLE}")
LIST(APPEND value ${ARGN})
SET(${OUTVAR} ${value})
##IF(LL_TEST_VERBOSE)
diff --git a/indra/cmake/LLUI.cmake b/indra/cmake/LLUI.cmake
index 34de57108b..34de57108b 100644..100755
--- a/indra/cmake/LLUI.cmake
+++ b/indra/cmake/LLUI.cmake
diff --git a/indra/cmake/LLVFS.cmake b/indra/cmake/LLVFS.cmake
index 0fe87cdea6..0fe87cdea6 100644..100755
--- a/indra/cmake/LLVFS.cmake
+++ b/indra/cmake/LLVFS.cmake
diff --git a/indra/cmake/LLWindow.cmake b/indra/cmake/LLWindow.cmake
index a5b9cf47a4..ba07a80f05 100644..100755
--- a/indra/cmake/LLWindow.cmake
+++ b/indra/cmake/LLWindow.cmake
@@ -1,9 +1,10 @@
# -*- cmake -*-
-include(OpenGL)
+include(Variables)
+include(GLEXT)
include(Prebuilt)
-if (STANDALONE)
+if (USESYSTEMLIBS)
include(FindSDL)
# This should be done by FindSDL. Sigh.
@@ -12,18 +13,16 @@ if (STANDALONE)
SDL_INCLUDE_DIR
SDL_LIBRARY
)
-else (STANDALONE)
- use_prebuilt_binary(mesa)
- if (LINUX AND VIEWER)
+else (USESYSTEMLIBS)
+ if (LINUX)
use_prebuilt_binary(SDL)
set (SDL_FOUND TRUE)
set (SDL_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/i686-linux)
- set (SDL_LIBRARY SDL)
- endif (LINUX AND VIEWER)
-endif (STANDALONE)
+ set (SDL_LIBRARY SDL directfb fusion direct)
+ endif (LINUX)
+endif (USESYSTEMLIBS)
if (SDL_FOUND)
- add_definitions(-DLL_SDL=1)
include_directories(${SDL_INCLUDE_DIR})
endif (SDL_FOUND)
@@ -32,12 +31,12 @@ set(LLWINDOW_INCLUDE_DIRS
${LIBS_OPEN_DIR}/llwindow
)
-if (SERVER AND LINUX)
- set(LLWINDOW_LIBRARIES
+if (BUILD_HEADLESS)
+ set(LLWINDOW_HEADLESS_LIBRARIES
llwindowheadless
)
-else (SERVER AND LINUX)
+endif (BUILD_HEADLESS)
+
set(LLWINDOW_LIBRARIES
llwindow
)
-endif (SERVER AND LINUX)
diff --git a/indra/cmake/LLXML.cmake b/indra/cmake/LLXML.cmake
index 64dfdb604f..b093c76297 100644..100755
--- a/indra/cmake/LLXML.cmake
+++ b/indra/cmake/LLXML.cmake
@@ -5,8 +5,10 @@ include(EXPAT)
set(LLXML_INCLUDE_DIRS
${LIBS_OPEN_DIR}/llxml
- ${Boost_INCLUDE_DIRS}
${EXPAT_INCLUDE_DIRS}
)
+set(LLXML_SYSTEM_INCLUDE_DIRS
+ ${Boost_INCLUDE_DIRS}
+ )
set(LLXML_LIBRARIES llxml)
diff --git a/indra/cmake/LLXUIXML.cmake b/indra/cmake/LLXUIXML.cmake
deleted file mode 100644
index b8bfe48c77..0000000000
--- a/indra/cmake/LLXUIXML.cmake
+++ /dev/null
@@ -1,7 +0,0 @@
-# -*- cmake -*-
-
-set(LLXUIXML_INCLUDE_DIRS
- ${LIBS_OPEN_DIR}/llxuixml
- )
-
-set(LLXUIXML_LIBRARIES llxuixml)
diff --git a/indra/cmake/LScript.cmake b/indra/cmake/LScript.cmake
index 86bfcb7440..21e78fc2c0 100644..100755
--- a/indra/cmake/LScript.cmake
+++ b/indra/cmake/LScript.cmake
@@ -13,4 +13,4 @@ set(LSCRIPT_LIBRARIES
lscript_library
)
-set(LSCRIPT_EXECUTE_MONO_LIBRARIES lscript_execute_mono) \ No newline at end of file
+set(LSCRIPT_EXECUTE_MONO_LIBRARIES lscript_execute_mono)
diff --git a/indra/cmake/Linking.cmake b/indra/cmake/Linking.cmake
index bca99caf2a..c95f0c3702 100644..100755
--- a/indra/cmake/Linking.cmake
+++ b/indra/cmake/Linking.cmake
@@ -1,32 +1,50 @@
# -*- cmake -*-
-if (NOT STANDALONE)
- if (WINDOWS)
- set(ARCH_PREBUILT_DIRS ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/lib)
- set(ARCH_PREBUILT_DIRS_RELEASE ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/lib/release)
- set(ARCH_PREBUILT_DIRS_DEBUG ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/lib/debug)
- set(SHARED_LIB_STAGING_DIR ${CMAKE_BINARY_DIR}/sharedlibs CACHE FILEPATH "Location of staged DLLs")
- set(EXE_STAGING_DIR ${CMAKE_BINARY_DIR}/sharedlibs CACHE FILEPATH "Location of staged executables")
- elseif (LINUX)
- if (VIEWER)
- set(ARCH_PREBUILT_DIRS ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/lib_release_client)
- else (VIEWER)
- set(ARCH_PREBUILT_DIRS ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/lib_release)
- endif (VIEWER)
- set(ARCH_PREBUILT_DIRS_RELEASE ${ARCH_PREBUILT_DIRS})
- set(ARCH_PREBUILT_DIRS_DEBUG ${ARCH_PREBUILT_DIRS})
- set(SHARED_LIB_STAGING_DIR ${CMAKE_BINARY_DIR}/sharedlibs/lib CACHE FILEPATH "Location of staged .sos")
- set(EXE_STAGING_DIR ${CMAKE_BINARY_DIR}/sharedlibs/bin CACHE FILEPATH "Location of staged executables")
- elseif (DARWIN)
- set(ARCH_PREBUILT_DIRS_RELEASE ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/lib_release)
- set(ARCH_PREBUILT_DIRS ${ARCH_PREBUILT_DIRS_RELEASE})
- set(ARCH_PREBUILT_DIRS_DEBUG ${ARCH_PREBUILT_DIRS_RELEASE})
- set(SHARED_LIB_STAGING_DIR ${CMAKE_BINARY_DIR}/sharedlibs CACHE FILEPATH "Location of staged DLLs")
- set(EXE_STAGING_DIR "${CMAKE_BINARY_DIR}/sharedlibs/\$(CONFIGURATION)" CACHE FILEPATH "Location of staged executables")
- endif (WINDOWS)
-endif (NOT STANDALONE)
-
-link_directories(${ARCH_PREBUILT_DIRS})
+if(NOT DEFINED ${CMAKE_CURRENT_LIST_FILE}_INCLUDED)
+set(${CMAKE_CURRENT_LIST_FILE}_INCLUDED "YES")
+
+include(Variables)
+
+set(ARCH_PREBUILT_DIRS ${AUTOBUILD_INSTALL_DIR}/lib)
+##set(ARCH_PREBUILT_DIRS_PLUGINS ${AUTOBUILD_INSTALL_DIR}/plugins)
+set(ARCH_PREBUILT_DIRS_RELEASE ${AUTOBUILD_INSTALL_DIR}/lib/release)
+set(ARCH_PREBUILT_DIRS_DEBUG ${AUTOBUILD_INSTALL_DIR}/lib/debug)
+if (WINDOWS)
+ set(SHARED_LIB_STAGING_DIR ${CMAKE_BINARY_DIR}/sharedlibs)
+ set(EXE_STAGING_DIR ${CMAKE_BINARY_DIR}/sharedlibs)
+elseif (LINUX)
+ set(SHARED_LIB_STAGING_DIR ${CMAKE_BINARY_DIR}/sharedlibs/lib)
+ set(EXE_STAGING_DIR ${CMAKE_BINARY_DIR}/sharedlibs/bin)
+elseif (DARWIN)
+ set(SHARED_LIB_STAGING_DIR ${CMAKE_BINARY_DIR}/sharedlibs)
+ set(EXE_STAGING_DIR "${CMAKE_BINARY_DIR}/sharedlibs")
+endif (WINDOWS)
+
+# Autobuild packages must provide 'release' versions of libraries, but may provide versions for
+# specific build types. AUTOBUILD_LIBS_INSTALL_DIRS lists first the build type directory and then
+# the 'release' directory (as a default fallback).
+# *NOTE - we have to take special care to use CMAKE_CFG_INTDIR on IDE generators (like mac and
+# windows) and CMAKE_BUILD_TYPE on Makefile based generators (like linux). The reason for this is
+# that CMAKE_BUILD_TYPE is essentially meaningless at configuration time for IDE generators and
+# CMAKE_CFG_INTDIR is meaningless at build time for Makefile generators
+if(WINDOWS OR DARWIN)
+ # the cmake xcode and VS generators implicitly append ${CMAKE_CFG_INTDIR} to the library paths for us
+ # fortunately both windows and darwin are case insensitive filesystems so this works.
+ set(AUTOBUILD_LIBS_INSTALL_DIRS "${AUTOBUILD_INSTALL_DIR}/lib/")
+else(WINDOWS OR DARWIN)
+ # else block is for linux and any other makefile based generators
+ string(TOLOWER ${CMAKE_BUILD_TYPE} CMAKE_BUILD_TYPE_LOWER)
+ set(AUTOBUILD_LIBS_INSTALL_DIRS ${AUTOBUILD_INSTALL_DIR}/lib/${CMAKE_BUILD_TYPE_LOWER})
+endif(WINDOWS OR DARWIN)
+
+if (NOT "${CMAKE_BUILD_TYPE}" STREQUAL "Release")
+ # When we're building something other than Release, append the
+ # packages/lib/release directory to deal with autobuild packages that don't
+ # provide (e.g.) lib/debug libraries.
+ list(APPEND AUTOBUILD_LIBS_INSTALL_DIRS ${ARCH_PREBUILT_DIRS_RELEASE})
+endif (NOT "${CMAKE_BUILD_TYPE}" STREQUAL "Release")
+
+link_directories(${AUTOBUILD_LIBS_INSTALL_DIRS})
if (LINUX)
set(DL_LIBRARY dl)
@@ -55,3 +73,5 @@ else (WINDOWS)
endif (WINDOWS)
mark_as_advanced(DL_LIBRARY PTHREAD_LIBRARY WINDOWS_LIBRARIES)
+
+endif(NOT DEFINED ${CMAKE_CURRENT_LIST_FILE}_INCLUDED)
diff --git a/indra/cmake/MediaPluginBase.cmake b/indra/cmake/MediaPluginBase.cmake
index 2be035b641..2be035b641 100644..100755
--- a/indra/cmake/MediaPluginBase.cmake
+++ b/indra/cmake/MediaPluginBase.cmake
diff --git a/indra/cmake/MonoDeps.cmake b/indra/cmake/MonoDeps.cmake
deleted file mode 100644
index 52d5491563..0000000000
--- a/indra/cmake/MonoDeps.cmake
+++ /dev/null
@@ -1,48 +0,0 @@
-# -*- cmake -*-
-
-set(MONO_PREBUILT_LIBRARIES_DIR ${LIBS_PREBUILT_DIR}/mono/1.0)
-
-set(MONO_PREBUILT_LIBRARIES
- Iesi.Collections.dll
- Iesi.Collections.pdb
- Mono.CompilerServices.SymbolWriter.dll
- Mono.PEToolkit.dll
- Mono.PEToolkit.pdb
- Mono.Security.dll
- PEAPI.dll
- RAIL.dll
- RAIL.pdb
- )
-
- set(MONO_CORE_LIBRARIES
- System.dll
- System.Xml.dll
- mscorlib.dll)
-
-if(WINDOWS)
- set(MONO_DEPENDENCIES
- DomainCreator
- DomainRegister
- LslLibrary
- LslUserScript
- Script
- ScriptTypes
- TestFormat
- UserScript
- UThread
- UThreadInjector
- )
-else(WINDOWS)
- set(MONO_DEPENDENCIES
- DomainCreator_POST_BUILD
- DomainRegister_POST_BUILD
- LslLibrary_POST_BUILD
- LslUserScript_POST_BUILD
- Script_POST_BUILD
- ScriptTypes_POST_BUILD
- TestFormat_POST_BUILD
- UserScript_POST_BUILD
- UThread_POST_BUILD
- UThreadInjector_POST_BUILD
- )
-endif(WINDOWS)
diff --git a/indra/cmake/MonoEmbed.cmake b/indra/cmake/MonoEmbed.cmake
deleted file mode 100644
index 0f1f23309c..0000000000
--- a/indra/cmake/MonoEmbed.cmake
+++ /dev/null
@@ -1,57 +0,0 @@
-# -*- cmake -*-
-
-include(Prebuilt)
-use_prebuilt_binary(libmono)
-
-SET(GLIB_2_0 glib-2.0)
-
-if (WINDOWS)
- SET(MONO_LIB mono)
-else (WINDOWS)
- SET(MONO_LIB mono)
- SET(M_LIBRARIES m)
- SET(GTHREAD_2_0 gthread-2.0)
-endif(WINDOWS)
-
-
-IF (DARWIN)
-
- FIND_LIBRARY(MONO_LIBRARY NAMES Mono)
- # Find_file doesnt work as expected. Hardcode relative to Mono.framework.
- #FIND_FILE(GLIB_CONFIG glibconfig.h ${MONO_LIBRARY})
- #FIND_FILE(MONO_GLIB_LIBRARY glib.h ${MONO_LIBRARY})
- SET(MONO_GLIB_LIBRARY ${MONO_LIBRARY}/Headers/glib-2.0/)
- SET(GLIB_CONFIG ${MONO_LIBRARY}/Libraries/glib-2.0/include/)
- SET(MONO_LIB_DIRECTORY ${MONO_LIBRARY}/Libraries)
-
- IF (MONO_LIBRARY AND MONO_GLIB_LIBRARY AND GLIB_CONFIG)
- MESSAGE(STATUS "Found Mono for embedding")
- INCLUDE_DIRECTORIES(${MONO_GLIB_LIBRARY} ${GLIB_CONFIG})
- LINK_DIRECTORIES(${MONO_LIB_DIRECTORY})
- ELSE (MONO_LIBRARY AND MONO_GLIB_LIBRARY AND GLIB_CONFIG)
- MESSAGE(FATAL_ERROR "Mono not found for embedding")
- MESSAGE(${MONO_LIBRARY})
- MESSAGE(${MONO_GLIB_LIBRARY})
- MESSAGE(${GLIB_CONFIG})
- ENDIF (MONO_LIBRARY AND MONO_GLIB_LIBRARY AND GLIB_CONFIG)
-
-ELSE (DARWIN)
-
- SET(MONO_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/include)
- SET(GLIB_2_0_PLATFORM_INCLUDE_DIR
- ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/include/glib-2.0)
- SET(GLIB_2_0_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/include/glib-2.0)
-
- INCLUDE_DIRECTORIES(
- ${MONO_INCLUDE_DIR}
- ${GLIB_2_0_PLATFORM_INCLUDE_DIR}
- ${GLIB_2_0_INCLUDE_DIR})
-
-ENDIF (DARWIN)
-
-SET(MONO_LIBRARIES
- ${MONO_LIB}
- ${M_LIBRARIES}
- ${GLIB_2_0}
- ${GTHREAD_2_0}
-)
diff --git a/indra/cmake/MySQL.cmake b/indra/cmake/MySQL.cmake
deleted file mode 100644
index e591fbc3d8..0000000000
--- a/indra/cmake/MySQL.cmake
+++ /dev/null
@@ -1,26 +0,0 @@
-# -*- cmake -*-
-include(Linking)
-include(Prebuilt)
-
-use_prebuilt_binary(mysql)
-
-if (LINUX)
- if (WORD_SIZE EQUAL 32 OR DEBIAN_VERSION STREQUAL "3.1")
- set(MYSQL_LIBRARIES mysqlclient)
- set(MYSQL_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/include)
- else (WORD_SIZE EQUAL 32 OR DEBIAN_VERSION STREQUAL "3.1")
- # Use the native MySQL library on a 64-bit system.
- set(MYSQL_FIND_QUIETLY ON)
- set(MYSQL_FIND_REQUIRED ON)
- include(FindMySQL)
- endif (WORD_SIZE EQUAL 32 OR DEBIAN_VERSION STREQUAL "3.1")
-elseif (WINDOWS)
- set(MYSQL_LIBRARIES mysqlclient)
- set(MYSQL_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/include)
-elseif (DARWIN)
- set(MYSQL_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/include)
- set(MYSQL_LIBRARIES
- optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libmysqlclient.a
- debug ${ARCH_PREBUILT_DIRS_DEBUG}/libmysqlclient.a
- )
-endif (LINUX)
diff --git a/indra/cmake/NDOF.cmake b/indra/cmake/NDOF.cmake
index 7a463d1190..388df16a52 100644..100755
--- a/indra/cmake/NDOF.cmake
+++ b/indra/cmake/NDOF.cmake
@@ -4,21 +4,25 @@ include(Prebuilt)
set(NDOF ON CACHE BOOL "Use NDOF space navigator joystick library.")
if (NDOF)
- if (STANDALONE)
- set(NDOF_FIND_REQUIRED ON)
- include(FindNDOF)
- else (STANDALONE)
- use_prebuilt_binary(ndofdev)
+ if (USESYSTEMLIBS)
+ set(NDOF_FIND_REQUIRED ON)
+ include(FindNDOF)
+ else (USESYSTEMLIBS)
+ if (WINDOWS OR DARWIN)
+ use_prebuilt_binary(libndofdev)
+ elseif (LINUX)
+ use_prebuilt_binary(open-libndofdev)
+ endif (WINDOWS OR DARWIN)
- if (WINDOWS)
- set(NDOF_LIBRARY libndofdev)
- elseif (DARWIN OR LINUX)
- set(NDOF_LIBRARY ndofdev)
- endif (WINDOWS)
+ if (WINDOWS)
+ set(NDOF_LIBRARY libndofdev)
+ elseif (DARWIN OR LINUX)
+ set(NDOF_LIBRARY ndofdev)
+ endif (WINDOWS)
- set(NDOF_INCLUDE_DIR ${ARCH_PREBUILT_DIRS}/include/ndofdev)
- set(NDOF_FOUND 1)
- endif (STANDALONE)
+ set(NDOF_INCLUDE_DIR ${ARCH_PREBUILT_DIRS}/include/ndofdev)
+ set(NDOF_FOUND 1)
+ endif (USESYSTEMLIBS)
endif (NDOF)
if (NDOF_FOUND)
diff --git a/indra/cmake/NVAPI.cmake b/indra/cmake/NVAPI.cmake
new file mode 100755
index 0000000000..105f442a30
--- /dev/null
+++ b/indra/cmake/NVAPI.cmake
@@ -0,0 +1,16 @@
+# -*- cmake -*-
+include(Prebuilt)
+
+set(NVAPI ON CACHE BOOL "Use NVAPI.")
+
+if (NVAPI)
+ if (WINDOWS)
+ use_prebuilt_binary(nvapi)
+ set(NVAPI_LIBRARY nvapi)
+ else (WINDOWS)
+ set(NVAPI_LIBRARY "")
+ endif (WINDOWS)
+else (NVAPI)
+ set(NVAPI_LIBRARY "")
+endif (NVAPI)
+
diff --git a/indra/cmake/OPENAL.cmake b/indra/cmake/OPENAL.cmake
index d01c680ed1..1bbfff6f98 100644..100755
--- a/indra/cmake/OPENAL.cmake
+++ b/indra/cmake/OPENAL.cmake
@@ -9,20 +9,24 @@ else (LINUX)
endif (LINUX)
if (OPENAL)
- if (STANDALONE)
+ set(OPENAL_LIB_INCLUDE_DIRS "${LIBS_PREBUILT_DIR}/include/AL")
+ if (USESYSTEMLIBS)
include(FindPkgConfig)
include(FindOpenAL)
pkg_check_modules(OPENAL_LIB REQUIRED openal)
pkg_check_modules(FREEALUT_LIB REQUIRED freealut)
- else (STANDALONE)
- use_prebuilt_binary(openal-soft)
- endif (STANDALONE)
- set(OPENAL_LIBRARIES
- openal
- alut
+ else (USESYSTEMLIBS)
+ use_prebuilt_binary(openal)
+ endif (USESYSTEMLIBS)
+ if(WINDOWS)
+ set(OPENAL_LIBRARIES
+ OpenAL32
+ alut
)
-endif (OPENAL)
-
-if (OPENAL)
- message(STATUS "Building with OpenAL audio support")
+ else()
+ set(OPENAL_LIBRARIES
+ openal
+ alut
+ )
+ endif()
endif (OPENAL)
diff --git a/indra/cmake/OpenGL.cmake b/indra/cmake/OpenGL.cmake
index 6a2b6811af..2259c99293 100644..100755
--- a/indra/cmake/OpenGL.cmake
+++ b/indra/cmake/OpenGL.cmake
@@ -1,9 +1,12 @@
# -*- cmake -*-
+
+include(Variables)
include(Prebuilt)
-if (NOT STANDALONE)
- use_prebuilt_binary(GL)
- # possible glh_linear should have its own .cmake file instead
- use_prebuilt_binary(glh_linear)
- set(GLEXT_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/include)
-endif (NOT STANDALONE)
+if (BUILD_HEADLESS)
+ SET(OPENGL_glu_LIBRARY GLU)
+ SET(OPENGL_HEADLESS_LIBRARIES OSMesa16 dl GLU)
+endif (BUILD_HEADLESS)
+
+include(FindOpenGL)
+
diff --git a/indra/cmake/OpenJPEG.cmake b/indra/cmake/OpenJPEG.cmake
index fcc82c2f49..bf0bde2ba7 100644..100755
--- a/indra/cmake/OpenJPEG.cmake
+++ b/indra/cmake/OpenJPEG.cmake
@@ -4,9 +4,9 @@ include(Prebuilt)
set(OPENJPEG_FIND_QUIETLY ON)
set(OPENJPEG_FIND_REQUIRED ON)
-if (STANDALONE)
+if (USESYSTEMLIBS)
include(FindOpenJPEG)
-else (STANDALONE)
+else (USESYSTEMLIBS)
use_prebuilt_binary(openjpeg)
if(WINDOWS)
@@ -19,4 +19,4 @@ else (STANDALONE)
endif(WINDOWS)
set(OPENJPEG_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/include/openjpeg)
-endif (STANDALONE)
+endif (USESYSTEMLIBS)
diff --git a/indra/cmake/OpenSSL.cmake b/indra/cmake/OpenSSL.cmake
index 81584c09ea..eb548bdcc1 100644..100755
--- a/indra/cmake/OpenSSL.cmake
+++ b/indra/cmake/OpenSSL.cmake
@@ -4,20 +4,20 @@ include(Prebuilt)
set(OpenSSL_FIND_QUIETLY ON)
set(OpenSSL_FIND_REQUIRED ON)
-if (STANDALONE)
+if (USESYSTEMLIBS)
include(FindOpenSSL)
-else (STANDALONE)
- use_prebuilt_binary(openSSL)
+else (USESYSTEMLIBS)
+ use_prebuilt_binary(openssl)
if (WINDOWS)
set(OPENSSL_LIBRARIES ssleay32 libeay32)
else (WINDOWS)
- set(OPENSSL_LIBRARIES ssl)
+ set(OPENSSL_LIBRARIES ssl crypto)
endif (WINDOWS)
- set(OPENSSL_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/include)
-endif (STANDALONE)
+ set(OPENSSL_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include)
+endif (USESYSTEMLIBS)
if (LINUX)
- set(CRYPTO_LIBRARIES crypto)
+ set(CRYPTO_LIBRARIES crypto dl)
elseif (DARWIN)
- set(CRYPTO_LIBRARIES llcrypto)
+ set(CRYPTO_LIBRARIES crypto)
endif (LINUX)
diff --git a/indra/cmake/PNG.cmake b/indra/cmake/PNG.cmake
index f6522d9e2f..248a875a19 100644..100755
--- a/indra/cmake/PNG.cmake
+++ b/indra/cmake/PNG.cmake
@@ -4,10 +4,31 @@ include(Prebuilt)
set(PNG_FIND_QUIETLY ON)
set(PNG_FIND_REQUIRED ON)
-if (STANDALONE)
+if (USESYSTEMLIBS)
include(FindPNG)
-else (STANDALONE)
+else (USESYSTEMLIBS)
use_prebuilt_binary(libpng)
- set(PNG_LIBRARIES png12)
- set(PNG_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/libpng12)
-endif (STANDALONE)
+ if (WINDOWS)
+ set(PNG_LIBRARIES libpng16)
+ set(PNG_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/libpng16)
+ elseif(DARWIN)
+ set(PNG_LIBRARIES png16)
+ set(PNG_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/libpng16)
+ else()
+ #
+ # When we have updated static libraries in competition with older
+ # shared libraries and we want the former to win, we need to do some
+ # extra work. The *_PRELOAD_ARCHIVES settings are invoked early
+ # and will pull in the entire archive to the binary giving it
+ # priority in symbol resolution. Beware of cmake moving the
+ # achive load itself to another place on the link command line. If
+ # that happens, you can try something like -Wl,-lpng16 here to hide
+ # the archive. Also be aware that the linker will not tolerate a
+ # second whole-archive load of the archive. See viewer's
+ # CMakeLists.txt for more information.
+ #
+ set(PNG_PRELOAD_ARCHIVES -Wl,--whole-archive png16 -Wl,--no-whole-archive)
+ set(PNG_LIBRARIES png16)
+ set(PNG_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/libpng16)
+ endif()
+endif (USESYSTEMLIBS)
diff --git a/indra/cmake/PluginAPI.cmake b/indra/cmake/PluginAPI.cmake
index d1649e8248..d1649e8248 100644..100755
--- a/indra/cmake/PluginAPI.cmake
+++ b/indra/cmake/PluginAPI.cmake
diff --git a/indra/cmake/Prebuilt.cmake b/indra/cmake/Prebuilt.cmake
index a91519278c..98013da2f2 100644..100755
--- a/indra/cmake/Prebuilt.cmake
+++ b/indra/cmake/Prebuilt.cmake
@@ -1,44 +1,64 @@
# -*- cmake -*-
-include(Python)
-include(FindSCP)
+if(NOT DEFINED ${CMAKE_CURRENT_LIST_FILE}_INCLUDED)
+set(${CMAKE_CURRENT_LIST_FILE}_INCLUDED "YES")
+include(FindAutobuild)
+if(INSTALL_PROPRIETARY)
+ include(FindSCP)
+endif(INSTALL_PROPRIETARY)
+
+set(PREBUILD_TRACKING_DIR ${AUTOBUILD_INSTALL_DIR}/cmake_tracking)
+# For the library installation process;
+# see cmake/Prebuild.cmake for the counterpart code.
+if ("${CMAKE_SOURCE_DIR}/../autobuild.xml" IS_NEWER_THAN "${PREBUILD_TRACKING_DIR}/sentinel_installed")
+ file(MAKE_DIRECTORY ${PREBUILD_TRACKING_DIR})
+ file(WRITE ${PREBUILD_TRACKING_DIR}/sentinel_installed "0")
+endif ("${CMAKE_SOURCE_DIR}/../autobuild.xml" IS_NEWER_THAN "${PREBUILD_TRACKING_DIR}/sentinel_installed")
+
+# The use_prebuilt_binary macro handles automated installation of package
+# dependencies using autobuild. The goal is that 'autobuild install' should
+# only be run when we know we need to install a new package. This should be
+# the case in a clean checkout, or if autobuild.xml has been updated since the
+# last run (encapsulated by the file ${PREBUILD_TRACKING_DIR}/sentinel_installed),
+# or if a previous attempt to install the package has failed (the exit status
+# of previous attempts is serialized in the file
+# ${PREBUILD_TRACKING_DIR}/${_binary}_installed)
macro (use_prebuilt_binary _binary)
- if (NOT STANDALONE)
- if(${CMAKE_BINARY_DIR}/temp/sentinel_installed IS_NEWER_THAN ${CMAKE_BINARY_DIR}/temp/${_binary}_installed)
- if(INSTALL_PROPRIETARY)
- include(FindSCP)
- if(DEBUG_PREBUILT)
- message("cd ${SCRIPTS_DIR} && ${PYTHON_EXECUTABLE} install.py --install-dir=${CMAKE_SOURCE_DIR}/.. --scp=${SCP_EXECUTABLE} ${_binary}")
- endif(DEBUG_PREBUILT)
- execute_process(COMMAND ${PYTHON_EXECUTABLE}
- install.py
- --install-dir=${CMAKE_SOURCE_DIR}/..
- --scp=${SCP_EXECUTABLE}
- ${_binary}
- WORKING_DIRECTORY ${SCRIPTS_DIR}
- RESULT_VARIABLE ${_binary}_installed
- )
- else(INSTALL_PROPRIETARY)
- if(DEBUG_PREBUILT)
- message("cd ${SCRIPTS_DIR} && ${PYTHON_EXECUTABLE} install.py --install-dir=${CMAKE_SOURCE_DIR}/.. ${_binary}")
- endif(DEBUG_PREBUILT)
- execute_process(COMMAND ${PYTHON_EXECUTABLE}
- install.py
- --install-dir=${CMAKE_SOURCE_DIR}/..
- ${_binary}
- WORKING_DIRECTORY ${SCRIPTS_DIR}
- RESULT_VARIABLE ${_binary}_installed
- )
- endif(INSTALL_PROPRIETARY)
- file(WRITE ${CMAKE_BINARY_DIR}/temp/${_binary}_installed "${${_binary}_installed}")
- else(${CMAKE_BINARY_DIR}/temp/sentinel_installed IS_NEWER_THAN ${CMAKE_BINARY_DIR}/temp/${_binary}_installed)
- set(${_binary}_installed 0)
- endif(${CMAKE_BINARY_DIR}/temp/sentinel_installed IS_NEWER_THAN ${CMAKE_BINARY_DIR}/temp/${_binary}_installed)
+ if (NOT DEFINED USESYSTEMLIBS_${_binary})
+ set(USESYSTEMLIBS_${_binary} ${USESYSTEMLIBS})
+ endif (NOT DEFINED USESYSTEMLIBS_${_binary})
+
+ if (NOT USESYSTEMLIBS_${_binary})
+ if("${${_binary}_installed}" STREQUAL "" AND EXISTS "${PREBUILD_TRACKING_DIR}/${_binary}_installed")
+ file(READ ${PREBUILD_TRACKING_DIR}/${_binary}_installed "${_binary}_installed")
+ if(DEBUG_PREBUILT)
+ message(STATUS "${_binary}_installed: \"${${_binary}_installed}\"")
+ endif(DEBUG_PREBUILT)
+ endif("${${_binary}_installed}" STREQUAL "" AND EXISTS "${PREBUILD_TRACKING_DIR}/${_binary}_installed")
+
+ if(${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/${_binary}_installed OR NOT ${${_binary}_installed} EQUAL 0)
+ if(DEBUG_PREBUILT)
+ message("cd ${CMAKE_SOURCE_DIR} && ${AUTOBUILD_EXECUTABLE} install
+ --install-dir=${AUTOBUILD_INSTALL_DIR}
+ ${_binary} ")
+ endif(DEBUG_PREBUILT)
+ execute_process(COMMAND "${AUTOBUILD_EXECUTABLE}"
+ install
+ --install-dir=${AUTOBUILD_INSTALL_DIR}
+ ${_binary}
+ WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
+ RESULT_VARIABLE ${_binary}_installed
+ )
+ file(WRITE ${PREBUILD_TRACKING_DIR}/${_binary}_installed "${${_binary}_installed}")
+ endif(${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/${_binary}_installed OR NOT ${${_binary}_installed} EQUAL 0)
+
if(NOT ${_binary}_installed EQUAL 0)
message(FATAL_ERROR
"Failed to download or unpack prebuilt '${_binary}'."
" Process returned ${${_binary}_installed}.")
endif (NOT ${_binary}_installed EQUAL 0)
- endif (NOT STANDALONE)
+ endif (NOT USESYSTEMLIBS_${_binary})
endmacro (use_prebuilt_binary _binary)
+
+endif(NOT DEFINED ${CMAKE_CURRENT_LIST_FILE}_INCLUDED)
diff --git a/indra/cmake/Pth.cmake b/indra/cmake/Pth.cmake
deleted file mode 100644
index a28f6ec696..0000000000
--- a/indra/cmake/Pth.cmake
+++ /dev/null
@@ -1,21 +0,0 @@
-# -*- cmake -*-
-include(Prebuilt)
-
-set(PTH_FIND_QUIETLY ON)
-set(PTH_FIND_REQUIRED ON)
-
-if (STANDALONE)
-# ?? How would I construct FindPTH.cmake? This file was cloned from
-# CURL.cmake, which uses include(FindCURL), but there's no FindCURL.cmake?
-# include(FindPTH)
-else (STANDALONE)
- # This library is only needed to support Boost.Coroutine, and only on Mac.
- if (DARWIN)
- use_prebuilt_binary(pth)
- set(PTH_LIBRARIES pth)
- set(PTH_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include)
- else (DARWIN)
- set(PTH_LIBRARIES)
- set(PTH_INCLUDE_DIRS)
- endif (DARWIN)
-endif (STANDALONE)
diff --git a/indra/cmake/PulseAudio.cmake b/indra/cmake/PulseAudio.cmake
index 360a971058..cce27f1bdd 100644..100755
--- a/indra/cmake/PulseAudio.cmake
+++ b/indra/cmake/PulseAudio.cmake
@@ -4,7 +4,7 @@ include(Prebuilt)
set(PULSEAUDIO OFF CACHE BOOL "Build with PulseAudio support, if available.")
if (PULSEAUDIO)
- if (STANDALONE)
+ if (USESYSTEMLIBS)
include(FindPkgConfig)
pkg_check_modules(PULSEAUDIO libpulse)
@@ -20,7 +20,7 @@ if (PULSEAUDIO)
set(PULSEAUDIO_LIBRARIES
# none needed!
)
- endif (STANDALONE)
+ endif (USESYSTEMLIBS)
endif (PULSEAUDIO)
if (PULSEAUDIO_FOUND)
diff --git a/indra/cmake/Python.cmake b/indra/cmake/Python.cmake
index 748c8c2bec..a81c9307fc 100644..100755
--- a/indra/cmake/Python.cmake
+++ b/indra/cmake/Python.cmake
@@ -23,7 +23,7 @@ if (WINDOWS)
elseif (EXISTS /etc/debian_version)
# On Debian and Ubuntu, avoid Python 2.4 if possible.
- find_program(PYTHON_EXECUTABLE python2.5 python2.3 python PATHS /usr/bin)
+ find_program(PYTHON_EXECUTABLE python PATHS /usr/bin)
if (PYTHON_EXECUTABLE)
set(PYTHONINTERP_FOUND ON)
diff --git a/indra/cmake/QuickTimePlugin.cmake b/indra/cmake/QuickTimePlugin.cmake
index 02f432e3c1..c08e153ee3 100644..100755
--- a/indra/cmake/QuickTimePlugin.cmake
+++ b/indra/cmake/QuickTimePlugin.cmake
@@ -2,7 +2,9 @@
if(INSTALL_PROPRIETARY)
include(Prebuilt)
- use_prebuilt_binary(quicktime)
+ if (WINDOWS)
+ use_prebuilt_binary(quicktime)
+ endif (WINDOWS)
endif(INSTALL_PROPRIETARY)
if (DARWIN)
@@ -33,7 +35,7 @@ elseif (WINDOWS)
endif (DEBUG_QUICKTIME_LIBRARY AND RELEASE_QUICKTIME_LIBRARY)
include_directories(
- ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/include/quicktime
+ ${LIBS_PREBUILT_DIR}/include/quicktime
"${QUICKTIME_SDK_DIR}\\CIncludes"
)
endif (DARWIN)
diff --git a/indra/cmake/TemplateCheck.cmake b/indra/cmake/TemplateCheck.cmake
index 90d58d93ad..2fada2eda9 100644..100755
--- a/indra/cmake/TemplateCheck.cmake
+++ b/indra/cmake/TemplateCheck.cmake
@@ -5,11 +5,10 @@ include(Python)
macro (check_message_template _target)
add_custom_command(
TARGET ${_target}
- POST_BUILD
+ PRE_LINK
COMMAND ${PYTHON_EXECUTABLE}
- ARGS ${SCRIPTS_DIR}/md5check.py
- 3f19d130400c547de36278a6b6f9b028
- ${SCRIPTS_DIR}/messages/message_template.msg
+ ARGS ${SCRIPTS_DIR}/template_verifier.py
+ --mode=development --cache_master --master_url=${TEMPLATE_VERIFIER_MASTER_URL} ${TEMPLATE_VERIFIER_OPTIONS}
COMMENT "Verifying message template - See http://wiki.secondlife.com/wiki/Template_verifier.py"
)
endmacro (check_message_template)
diff --git a/indra/cmake/Tut.cmake b/indra/cmake/Tut.cmake
index 738c08c42f..e11a3c3314 100644..100755
--- a/indra/cmake/Tut.cmake
+++ b/indra/cmake/Tut.cmake
@@ -1,11 +1,6 @@
# -*- cmake -*-
include(Prebuilt)
-set(TUT_FIND_REQUIRED TRUE)
-set(TUT_FIND_QUIETLY TRUE)
-
-if (STANDALONE)
- include(FindTut)
-else (STANDALONE)
+if (NOT USESYSTEMLIBS)
use_prebuilt_binary(tut)
-endif (STANDALONE)
+endif(NOT USESYSTEMLIBS)
diff --git a/indra/cmake/UI.cmake b/indra/cmake/UI.cmake
index f529f5b644..31174209a3 100644..100755
--- a/indra/cmake/UI.cmake
+++ b/indra/cmake/UI.cmake
@@ -1,7 +1,8 @@
# -*- cmake -*-
include(Prebuilt)
+include(FreeType)
-if (STANDALONE)
+if (USESYSTEMLIBS)
include(FindPkgConfig)
if (LINUX)
@@ -30,8 +31,11 @@ if (STANDALONE)
list(APPEND UI_LIBRARIES ${${pkg}_LIBRARIES})
add_definitions(${${pkg}_CFLAGS_OTHERS})
endforeach(pkg)
-else (STANDALONE)
- use_prebuilt_binary(gtk-atk-pango-glib)
+else (USESYSTEMLIBS)
+ if (LINUX OR WINDOWS)
+ use_prebuilt_binary(gtk-atk-pango-glib)
+ endif (LINUX OR WINDOWS)
+
if (LINUX)
set(UI_LIBRARIES
atk-1.0
@@ -47,17 +51,18 @@ else (STANDALONE)
pangoft2-1.0
pangox-1.0
pangoxft-1.0
+ ${FREETYPE_LIBRARIES}
)
endif (LINUX)
include_directories (
- ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/include
+ ${LIBS_PREBUILT_DIR}/include
${LIBS_PREBUILT_DIR}/include
)
foreach(include ${${LL_ARCH}_INCLUDES})
- include_directories(${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/include/${include})
+ include_directories(${LIBS_PREBUILT_DIR}/include/${include})
endforeach(include)
-endif (STANDALONE)
+endif (USESYSTEMLIBS)
if (LINUX)
add_definitions(-DLL_GTK=1 -DLL_X11=1)
diff --git a/indra/cmake/URIPARSER.cmake b/indra/cmake/URIPARSER.cmake
new file mode 100644
index 0000000000..de146885a0
--- /dev/null
+++ b/indra/cmake/URIPARSER.cmake
@@ -0,0 +1,35 @@
+# -*- cmake -*-
+
+set(URIPARSER_FIND_QUIETLY ON)
+set(URIPARSER_FIND_REQUIRED ON)
+
+include(Prebuilt)
+
+if (USESYSTEMLIBS)
+ include(FindURIPARSER)
+else (USESYSTEMLIBS)
+ use_prebuilt_binary(uriparser)
+ if (WINDOWS)
+ set(URIPARSER_LIBRARIES
+ debug uriparserd
+ optimized uriparser)
+ elseif (LINUX)
+ #
+ # When we have updated static libraries in competition with older
+ # shared libraries and we want the former to win, we need to do some
+ # extra work. The *_PRELOAD_ARCHIVES settings are invoked early
+ # and will pull in the entire archive to the binary giving it.
+ # priority in symbol resolution. Beware of cmake moving the
+ # achive load itself to another place on the link command line. If
+ # that happens, you can try something like -Wl,-luriparser here to hide
+ # the archive. Also be aware that the linker will not tolerate a
+ # second whole-archive load of the archive. See viewer's
+ # CMakeLists.txt for more information.
+ #
+ set(URIPARSER_PRELOAD_ARCHIVES -Wl,--whole-archive uriparser -Wl,--no-whole-archive)
+ set(URIPARSER_LIBRARIES uriparser)
+ elseif (DARWIN)
+ set(URIPARSER_LIBRARIES uriparser)
+ endif (WINDOWS)
+ set(URIPARSER_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/uriparser)
+endif (USESYSTEMLIBS)
diff --git a/indra/cmake/UnixInstall.cmake b/indra/cmake/UnixInstall.cmake
index 139be0a008..139be0a008 100644..100755
--- a/indra/cmake/UnixInstall.cmake
+++ b/indra/cmake/UnixInstall.cmake
diff --git a/indra/cmake/Variables.cmake b/indra/cmake/Variables.cmake
index 5dc0cabf03..76d92d7a48 100644..100755
--- a/indra/cmake/Variables.cmake
+++ b/indra/cmake/Variables.cmake
@@ -8,39 +8,57 @@
# DARWIN - Mac OS X
# LINUX - Linux
# WINDOWS - Windows
-#
-# What to build:
-#
-# VIEWER - viewer and other viewer-side components
-# SERVER - simulator and other server-side bits
# Relative and absolute paths to subtrees.
+if(NOT DEFINED ${CMAKE_CURRENT_LIST_FILE}_INCLUDED)
+set(${CMAKE_CURRENT_LIST_FILE}_INCLUDED "YES")
+
+if(NOT DEFINED COMMON_CMAKE_DIR)
+ set(COMMON_CMAKE_DIR "${CMAKE_SOURCE_DIR}/cmake")
+endif(NOT DEFINED COMMON_CMAKE_DIR)
+
set(LIBS_CLOSED_PREFIX)
set(LIBS_OPEN_PREFIX)
-set(LIBS_SERVER_PREFIX)
set(SCRIPTS_PREFIX ../scripts)
-set(SERVER_PREFIX)
set(VIEWER_PREFIX)
set(INTEGRATION_TESTS_PREFIX)
set(LL_TESTS ON CACHE BOOL "Build and run unit and integration tests (disable for build timing runs to reduce variation")
+set(INCREMENTAL_LINK OFF CACHE BOOL "Use incremental linking on win32 builds (enable for faster links on some machines)")
+set(ENABLE_MEDIA_PLUGINS OFF CACHE BOOL "Turn off building media plugins if they are imported by third-party library mechanism")
+
+if(LIBS_CLOSED_DIR)
+ file(TO_CMAKE_PATH "${LIBS_CLOSED_DIR}" LIBS_CLOSED_DIR)
+else(LIBS_CLOSED_DIR)
+ set(LIBS_CLOSED_DIR ${CMAKE_SOURCE_DIR}/${LIBS_CLOSED_PREFIX})
+endif(LIBS_CLOSED_DIR)
+if(LIBS_COMMON_DIR)
+ file(TO_CMAKE_PATH "${LIBS_COMMON_DIR}" LIBS_COMMON_DIR)
+else(LIBS_COMMON_DIR)
+ set(LIBS_COMMON_DIR ${CMAKE_SOURCE_DIR}/${LIBS_OPEN_PREFIX})
+endif(LIBS_COMMON_DIR)
+set(LIBS_OPEN_DIR ${LIBS_COMMON_DIR})
-set(LIBS_CLOSED_DIR ${CMAKE_SOURCE_DIR}/${LIBS_CLOSED_PREFIX})
-set(LIBS_OPEN_DIR ${CMAKE_SOURCE_DIR}/${LIBS_OPEN_PREFIX})
-set(LIBS_SERVER_DIR ${CMAKE_SOURCE_DIR}/${LIBS_SERVER_PREFIX})
set(SCRIPTS_DIR ${CMAKE_SOURCE_DIR}/${SCRIPTS_PREFIX})
-set(SERVER_DIR ${CMAKE_SOURCE_DIR}/${SERVER_PREFIX})
set(VIEWER_DIR ${CMAKE_SOURCE_DIR}/${VIEWER_PREFIX})
-set(LIBS_PREBUILT_DIR ${CMAKE_SOURCE_DIR}/../libraries CACHE PATH
+set(AUTOBUILD_INSTALL_DIR ${CMAKE_BINARY_DIR}/packages)
+
+set(LIBS_PREBUILT_DIR ${AUTOBUILD_INSTALL_DIR} CACHE PATH
"Location of prebuilt libraries.")
if (EXISTS ${CMAKE_SOURCE_DIR}/Server.cmake)
# We use this as a marker that you can try to use the proprietary libraries.
set(INSTALL_PROPRIETARY ON CACHE BOOL "Install proprietary binaries")
endif (EXISTS ${CMAKE_SOURCE_DIR}/Server.cmake)
+set(TEMPLATE_VERIFIER_OPTIONS "" CACHE STRING "Options for scripts/template_verifier.py")
+set(TEMPLATE_VERIFIER_MASTER_URL "http://bitbucket.org/lindenlab/master-message-template/raw/tip/message_template.msg" CACHE STRING "Location of the master message template")
+if (NOT CMAKE_BUILD_TYPE)
+ set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING
+ "Build type. One of: Debug Release RelWithDebInfo" FORCE)
+endif (NOT CMAKE_BUILD_TYPE)
if (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
set(WINDOWS ON BOOL FORCE)
@@ -54,65 +72,83 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
set(LINUX ON BOOl FORCE)
# If someone has specified a word size, use that to determine the
- # architecture. Otherwise, let the compiler specify the word size.
- # Using uname will break under chroots and other cross arch compiles. RC
+ # architecture. Otherwise, let the architecture specify the word size.
if (WORD_SIZE EQUAL 32)
+ #message(STATUS "WORD_SIZE is 32")
set(ARCH i686)
elseif (WORD_SIZE EQUAL 64)
+ #message(STATUS "WORD_SIZE is 64")
set(ARCH x86_64)
else (WORD_SIZE EQUAL 32)
- if(CMAKE_SIZEOF_VOID_P MATCHES 4)
- set(ARCH i686)
- set(WORD_SIZE 32)
- else(CMAKE_SIZEOF_VOID_P MATCHES 4)
- set(ARCH x86_64)
+ #message(STATUS "WORD_SIZE is UNDEFINED")
+ execute_process(COMMAND uname -m COMMAND sed s/i.86/i686/
+ OUTPUT_VARIABLE ARCH OUTPUT_STRIP_TRAILING_WHITESPACE)
+ if (ARCH STREQUAL x86_64)
+ #message(STATUS "ARCH is detected as 64; ARCH is ${ARCH}")
set(WORD_SIZE 64)
- endif(CMAKE_SIZEOF_VOID_P MATCHES 4)
+ else (ARCH STREQUAL x86_64)
+ #message(STATUS "ARCH is detected as 32; ARCH is ${ARCH}")
+ set(WORD_SIZE 32)
+ endif (ARCH STREQUAL x86_64)
+ endif (WORD_SIZE EQUAL 32)
+
+ if (WORD_SIZE EQUAL 32)
+ set(DEB_ARCHITECTURE i386)
+ set(FIND_LIBRARY_USE_LIB64_PATHS OFF)
+ set(CMAKE_SYSTEM_LIBRARY_PATH /usr/lib32 ${CMAKE_SYSTEM_LIBRARY_PATH})
+ else (WORD_SIZE EQUAL 32)
+ set(DEB_ARCHITECTURE amd64)
+ set(FIND_LIBRARY_USE_LIB64_PATHS ON)
endif (WORD_SIZE EQUAL 32)
+ execute_process(COMMAND dpkg-architecture -a${DEB_ARCHITECTURE} -qDEB_HOST_MULTIARCH
+ RESULT_VARIABLE DPKG_RESULT
+ OUTPUT_VARIABLE DPKG_ARCH
+ OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET)
+ #message (STATUS "DPKG_RESULT ${DPKG_RESULT}, DPKG_ARCH ${DPKG_ARCH}")
+ if (DPKG_RESULT EQUAL 0)
+ set(CMAKE_LIBRARY_ARCHITECTURE ${DPKG_ARCH})
+ set(CMAKE_SYSTEM_LIBRARY_PATH /usr/lib/${DPKG_ARCH} /usr/local/lib/${DPKG_ARCH} ${CMAKE_SYSTEM_LIBRARY_PATH})
+ endif (DPKG_RESULT EQUAL 0)
+
+ include(ConfigurePkgConfig)
+
set(LL_ARCH ${ARCH}_linux)
set(LL_ARCH_DIR ${ARCH}-linux)
+
+ if (INSTALL_PROPRIETARY)
+ # Only turn on headless if we can find osmesa libraries.
+ include(FindPkgConfig)
+ #pkg_check_modules(OSMESA osmesa)
+ #if (OSMESA_FOUND)
+ # set(BUILD_HEADLESS ON CACHE BOOL "Build headless libraries.")
+ #endif (OSMESA_FOUND)
+ endif (INSTALL_PROPRIETARY)
+
endif (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
set(DARWIN 1)
-
- # NOTE: If specifying a different SDK with CMAKE_OSX_SYSROOT at configure
- # time you should also specify CMAKE_OSX_DEPLOYMENT_TARGET explicitly,
- # otherwise CMAKE_OSX_SYSROOT will be overridden here. We can't just check
- # for it being unset, as it gets set to the system default :(
-
- # Default to building against the 10.4 SDK if no deployment target is
- # specified.
- if (NOT CMAKE_OSX_DEPLOYMENT_TARGET)
- # NOTE: setting -isysroot is NOT adequate: http://lists.apple.com/archives/Xcode-users/2007/Oct/msg00696.html
- # see http://public.kitware.com/Bug/view.php?id=9959 + poppy
- set(CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX10.5.sdk)
- set(CMAKE_OSX_DEPLOYMENT_TARGET 10.4)
- endif (NOT CMAKE_OSX_DEPLOYMENT_TARGET)
-
- # GCC 4.2 is incompatible with the MacOSX 10.4 SDK
- if (${CMAKE_OSX_SYSROOT} MATCHES "10.4u")
- set(CMAKE_XCODE_ATTRIBUTE_GCC_VERSION "4.0")
- endif (${CMAKE_OSX_SYSROOT} MATCHES "10.4u")
-
- # NOTE: To attempt an i386/PPC Universal build, add this on the configure line:
- # -DCMAKE_OSX_ARCHITECTURES:STRING='i386;ppc'
- # Build only for i386 by default, system default on MacOSX 10.6 is x86_64
+
+ # now we only support Xcode 6.0 using 10.9 (Mavericks), minimum OS 10.7 (Lion)
+ set(XCODE_VERSION 6.0)
+ set(CMAKE_OSX_DEPLOYMENT_TARGET 10.7)
+ set(CMAKE_OSX_SYSROOT macosx10.9)
+
+ set(CMAKE_XCODE_ATTRIBUTE_GCC_VERSION "com.apple.compilers.llvm.clang.1_0")
+ set(CMAKE_XCODE_ATTRIBUTE_GCC_OPTIMIZATION_LEVEL 3)
+ set(CMAKE_XCODE_ATTRIBUTE_GCC_STRICT_ALIASING NO)
+ set(CMAKE_XCODE_ATTRIBUTE_GCC_FAST_MATH NO)
+ set(CMAKE_XCODE_ATTRIBUTE_CLANG_X86_VECTOR_INSTRUCTIONS ssse3)
+ set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libstdc++")
+ set(CMAKE_XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT dwarf-with-dsym)
+
+ # Build only for i386 by default, system default on MacOSX 10.6+ is x86_64
if (NOT CMAKE_OSX_ARCHITECTURES)
- set(CMAKE_OSX_ARCHITECTURES i386)
+ set(CMAKE_OSX_ARCHITECTURES "i386")
endif (NOT CMAKE_OSX_ARCHITECTURES)
- if (CMAKE_OSX_ARCHITECTURES MATCHES "i386" AND CMAKE_OSX_ARCHITECTURES MATCHES "ppc")
- set(ARCH universal)
- else (CMAKE_OSX_ARCHITECTURES MATCHES "i386" AND CMAKE_OSX_ARCHITECTURES MATCHES "ppc")
- if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "ppc")
- set(ARCH ppc)
- else (${CMAKE_SYSTEM_PROCESSOR} MATCHES "ppc")
- set(ARCH i386)
- endif (${CMAKE_SYSTEM_PROCESSOR} MATCHES "ppc")
- endif (CMAKE_OSX_ARCHITECTURES MATCHES "i386" AND CMAKE_OSX_ARCHITECTURES MATCHES "ppc")
-
+ set(ARCH ${CMAKE_OSX_ARCHITECTURES})
set(LL_ARCH ${ARCH}_darwin)
set(LL_ARCH_DIR universal-darwin)
set(WORD_SIZE 32)
@@ -121,26 +157,17 @@ endif (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
# Default deploy grid
set(GRID agni CACHE STRING "Target Grid")
-set(VIEWER ON CACHE BOOL "Build Second Life viewer.")
-set(VIEWER_CHANNEL "LindenDeveloper" CACHE STRING "Viewer Channel Name")
-set(VIEWER_LOGIN_CHANNEL ${VIEWER_CHANNEL} CACHE STRING "Fake login channel for A/B Testing")
-
-set(STANDALONE OFF CACHE BOOL "Do not use Linden-supplied prebuilt libraries.")
+set(VIEWER_CHANNEL "Second Life Test" CACHE STRING "Viewer Channel Name")
-if (NOT STANDALONE AND EXISTS ${CMAKE_SOURCE_DIR}/llphysics)
- set(SERVER ON CACHE BOOL "Build Second Life server software.")
-endif (NOT STANDALONE AND EXISTS ${CMAKE_SOURCE_DIR}/llphysics)
-
-if (LINUX AND SERVER AND VIEWER)
- MESSAGE(FATAL_ERROR "
-The indra source does not currently support building SERVER and VIEWER at the same time.
-Please set one of these values to OFF in your CMake cache file.
-(either by running ccmake or by editing CMakeCache.txt by hand)
-For more information, please see JIRA DEV-14943 - Cmake Linux cannot build both VIEWER and SERVER in one build environment
- ")
-endif (LINUX AND SERVER AND VIEWER)
+set(ENABLE_SIGNING OFF CACHE BOOL "Enable signing the viewer")
+set(SIGNING_IDENTITY "" CACHE STRING "Specifies the signing identity to use, if necessary.")
+set(VERSION_BUILD "0" CACHE STRING "Revision number passed in from the outside")
+set(USESYSTEMLIBS OFF CACHE BOOL "Use libraries from your system rather than Linden-supplied prebuilt libraries.")
+set(UNATTENDED OFF CACHE BOOL "Should be set to ON for building with VC Express editions.")
set(USE_PRECOMPILED_HEADERS ON CACHE BOOL "Enable use of precompiled header directives where supported.")
source_group("CMake Rules" FILES CMakeLists.txt)
+
+endif(NOT DEFINED ${CMAKE_CURRENT_LIST_FILE}_INCLUDED)
diff --git a/indra/cmake/ViewerMiscLibs.cmake b/indra/cmake/ViewerMiscLibs.cmake
index df013b1665..fc5bdedb5a 100644..100755
--- a/indra/cmake/ViewerMiscLibs.cmake
+++ b/indra/cmake/ViewerMiscLibs.cmake
@@ -1,16 +1,12 @@
# -*- cmake -*-
include(Prebuilt)
-if (NOT STANDALONE)
- use_prebuilt_binary(libuuid)
+if (NOT USESYSTEMLIBS)
+ if (LINUX)
+ use_prebuilt_binary(libuuid)
+ use_prebuilt_binary(fontconfig)
+ endif (LINUX)
+ use_prebuilt_binary(libhunspell)
use_prebuilt_binary(slvoice)
- use_prebuilt_binary(fontconfig)
-endif(NOT STANDALONE)
+endif(NOT USESYSTEMLIBS)
-if(VIEWER AND NOT STANDALONE)
- if(EXISTS ${CMAKE_SOURCE_DIR}/newview/res/have_artwork_bundle.marker)
- message(STATUS "We seem to have an artwork bundle in the tree - brilliant.")
- else(EXISTS ${CMAKE_SOURCE_DIR}/newview/res/have_artwork_bundle.marker)
- message(FATAL_ERROR "Didn't find an artwork bundle - this needs to be downloaded separately and unpacked into this tree. You can probably get it from the same place you got your viewer source. Thanks!")
- endif(EXISTS ${CMAKE_SOURCE_DIR}/newview/res/have_artwork_bundle.marker)
-endif(VIEWER AND NOT STANDALONE)
diff --git a/indra/cmake/VisualLeakDetector.cmake b/indra/cmake/VisualLeakDetector.cmake
new file mode 100755
index 0000000000..6a20148b47
--- /dev/null
+++ b/indra/cmake/VisualLeakDetector.cmake
@@ -0,0 +1,12 @@
+# -*- cmake -*-
+
+ set(INCLUDE_VLD_CMAKE OFF CACHE BOOL "Build the Windows viewer with Visual Leak Detector turned on or off")
+
+ if (INCLUDE_VLD_CMAKE)
+
+ if (WINDOWS)
+ add_definitions(-DINCLUDE_VLD=1)
+ endif (WINDOWS)
+
+ endif (INCLUDE_VLD_CMAKE)
+
diff --git a/indra/cmake/WebKitLibPlugin.cmake b/indra/cmake/WebKitLibPlugin.cmake
index 1f5b0f5d84..f7c548a2fd 100644..100755
--- a/indra/cmake/WebKitLibPlugin.cmake
+++ b/indra/cmake/WebKitLibPlugin.cmake
@@ -1,82 +1,93 @@
# -*- cmake -*-
include(Linking)
include(Prebuilt)
+include(OpenSSL)
-if (STANDALONE)
+if (USESYSTEMLIBS)
# The minimal version, 4.4.3, is rather arbitrary: it's the version in Debian/Lenny.
find_package(Qt4 4.4.3 COMPONENTS QtCore QtGui QtNetwork QtOpenGL QtWebKit REQUIRED)
include(${QT_USE_FILE})
set(QTDIR $ENV{QTDIR})
if (QTDIR AND NOT "${QT_BINARY_DIR}" STREQUAL "${QTDIR}/bin")
- message(FATAL_ERROR "\"${QT_BINARY_DIR}\" is unequal \"${QTDIR}/bin\"; "
- "Qt is found by looking for qmake in your PATH. "
- "Please set your PATH such that 'qmake' is found in \$QTDIR/bin, "
- "or unset QTDIR if the found Qt is correct.")
- endif (QTDIR AND NOT "${QT_BINARY_DIR}" STREQUAL "${QTDIR}/bin")
+ message(FATAL_ERROR "\"${QT_BINARY_DIR}\" is unequal \"${QTDIR}/bin\"; "
+ "Qt is found by looking for qmake in your PATH. "
+ "Please set your PATH such that 'qmake' is found in \$QTDIR/bin, "
+ "or unset QTDIR if the found Qt is correct.")
+ endif (QTDIR AND NOT "${QT_BINARY_DIR}" STREQUAL "${QTDIR}/bin")
find_package(LLQtWebkit REQUIRED QUIET)
# Add the plugins.
set(QT_PLUGIN_LIBRARIES)
foreach(qlibname qgif qjpeg)
- find_library(QT_PLUGIN_${qlibname} ${qlibname} PATHS ${QT_PLUGINS_DIR}/imageformats NO_DEFAULT_PATH)
- if (QT_PLUGIN_${qlibname})
- list(APPEND QT_PLUGIN_LIBRARIES ${QT_PLUGIN_${qlibname}})
- else (QT_PLUGIN_${qtlibname})
- message(FATAL_ERROR "Could not find the Qt plugin ${qlibname} in \"${QT_PLUGINS_DIR}/imageformats\"!")
- endif (QT_PLUGIN_${qlibname})
+ find_library(QT_PLUGIN_${qlibname} ${qlibname} PATHS ${QT_PLUGINS_DIR}/imageformats NO_DEFAULT_PATH)
+ if (QT_PLUGIN_${qlibname})
+ list(APPEND QT_PLUGIN_LIBRARIES ${QT_PLUGIN_${qlibname}})
+ else (QT_PLUGIN_${qtlibname})
+ message(FATAL_ERROR "Could not find the Qt plugin ${qlibname} in \"${QT_PLUGINS_DIR}/imageformats\"!")
+ endif (QT_PLUGIN_${qlibname})
endforeach(qlibname)
# qjpeg depends on libjpeg
list(APPEND QT_PLUGIN_LIBRARIES jpeg)
- set(WEBKITLIBPLUGIN OFF CACHE BOOL
- "WEBKITLIBPLUGIN support for the llplugin/llmedia test apps.")
-else (STANDALONE)
- use_prebuilt_binary(llqtwebkit)
- set(WEBKITLIBPLUGIN ON CACHE BOOL
- "WEBKITLIBPLUGIN support for the llplugin/llmedia test apps.")
-endif (STANDALONE)
+ set(WEBKITLIBPLUGIN OFF CACHE BOOL
+ "WEBKITLIBPLUGIN support for the llplugin/llmedia test apps.")
+else (USESYSTEMLIBS)
+ use_prebuilt_binary(llqtwebkit)
+ set(WEBKITLIBPLUGIN ON CACHE BOOL
+ "WEBKITLIBPLUGIN support for the llplugin/llmedia test apps.")
+endif (USESYSTEMLIBS)
if (WINDOWS)
- set(WEBKIT_PLUGIN_LIBRARIES
- debug llqtwebkitd
- debug QtWebKitd4
- debug QtOpenGLd4
- debug QtNetworkd4
- debug QtGuid4
- debug QtCored4
- debug qtmaind
- optimized llqtwebkit
- optimized QtWebKit4
- optimized QtOpenGL4
- optimized QtNetwork4
- optimized QtGui4
- optimized QtCore4
- optimized qtmain
- )
+ set(WEBKIT_PLUGIN_LIBRARIES
+ debug llqtwebkitd
+ debug QtWebKitd4
+ debug QtOpenGLd4
+ debug QtNetworkd4
+ debug QtGuid4
+ debug QtCored4
+ debug qtmaind
+ optimized llqtwebkit
+ optimized QtWebKit4
+ optimized QtOpenGL4
+ optimized QtNetwork4
+ optimized QtGui4
+ optimized QtCore4
+ optimized qtmain
+ )
elseif (DARWIN)
- set(WEBKIT_PLUGIN_LIBRARIES
- optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libllqtwebkit.dylib
- debug ${ARCH_PREBUILT_DIRS_RELEASE}/libllqtwebkit.dylib
- )
+ set(WEBKIT_PLUGIN_LIBRARIES
+ ${ARCH_PREBUILT_DIRS_RELEASE}/libllqtwebkit.a
+ ${ARCH_PREBUILT_DIRS_RELEASE}/libQtWebKit.4.dylib
+ ${ARCH_PREBUILT_DIRS_RELEASE}/libQtOpenGL.4.dylib
+ ${ARCH_PREBUILT_DIRS_RELEASE}/libQtNetwork.4.dylib
+ ${ARCH_PREBUILT_DIRS_RELEASE}/libQtGui.4.dylib
+ ${ARCH_PREBUILT_DIRS_RELEASE}/libQtCore.4.dylib
+ )
elseif (LINUX)
- if (STANDALONE)
+ # *HUH: What does this do?
set(WEBKIT_PLUGIN_LIBRARIES ${LLQTWEBKIT_LIBRARY} ${QT_LIBRARIES} ${QT_PLUGIN_LIBRARIES})
- else (STANDALONE)
set(WEBKIT_PLUGIN_LIBRARIES
llqtwebkit
-
- qgif
- qjpeg
-
+# qico
+# qpng
+# qtiff
+# qsvg
+# QtSvg
QtWebKit
QtOpenGL
QtNetwork
+ ${OPENSSL_LIBRARIES}
QtGui
QtCore
-
- jpeg
+# jscore
+# qgif
+# qjpeg
+# jpeg
fontconfig
X11
Xrender
GL
+
+# sqlite3
+# Xi
+# SM
)
- endif (STANDALONE)
endif (WINDOWS)
diff --git a/indra/cmake/XmlRpcEpi.cmake b/indra/cmake/XmlRpcEpi.cmake
index 107d1926ba..8c3790ea89 100644..100755
--- a/indra/cmake/XmlRpcEpi.cmake
+++ b/indra/cmake/XmlRpcEpi.cmake
@@ -4,14 +4,17 @@ include(Prebuilt)
set(XMLRPCEPI_FIND_QUIETLY ON)
set(XMLRPCEPI_FIND_REQUIRED ON)
-if (STANDALONE)
+if (USESYSTEMLIBS)
include(FindXmlRpcEpi)
-else (STANDALONE)
+else (USESYSTEMLIBS)
use_prebuilt_binary(xmlrpc-epi)
if (WINDOWS)
- set(XMLRPCEPI_LIBRARIES xmlrpcepi)
+ set(XMLRPCEPI_LIBRARIES
+ debug xmlrpc-epid
+ optimized xmlrpc-epi
+ )
else (WINDOWS)
set(XMLRPCEPI_LIBRARIES xmlrpc-epi)
endif (WINDOWS)
set(XMLRPCEPI_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include)
-endif (STANDALONE)
+endif (USESYSTEMLIBS)
diff --git a/indra/cmake/ZLIB.cmake b/indra/cmake/ZLIB.cmake
index 48e5130ad5..6cff0753b2 100644..100755
--- a/indra/cmake/ZLIB.cmake
+++ b/indra/cmake/ZLIB.cmake
@@ -5,18 +5,31 @@ set(ZLIB_FIND_REQUIRED ON)
include(Prebuilt)
-if (STANDALONE)
+if (USESYSTEMLIBS)
include(FindZLIB)
-else (STANDALONE)
+else (USESYSTEMLIBS)
use_prebuilt_binary(zlib)
if (WINDOWS)
set(ZLIB_LIBRARIES
debug zlibd
optimized zlib)
- else (WINDOWS)
+ elseif (LINUX)
+ #
+ # When we have updated static libraries in competition with older
+ # shared libraries and we want the former to win, we need to do some
+ # extra work. The *_PRELOAD_ARCHIVES settings are invoked early
+ # and will pull in the entire archive to the binary giving it
+ # priority in symbol resolution. Beware of cmake moving the
+ # achive load itself to another place on the link command line. If
+ # that happens, you can try something like -Wl,-lz here to hide
+ # the archive. Also be aware that the linker will not tolerate a
+ # second whole-archive load of the archive. See viewer's
+ # CMakeLists.txt for more information.
+ #
+ set(ZLIB_PRELOAD_ARCHIVES -Wl,--whole-archive z -Wl,--no-whole-archive)
+ set(ZLIB_LIBRARIES z)
+ elseif (DARWIN)
set(ZLIB_LIBRARIES z)
endif (WINDOWS)
- if (WINDOWS OR LINUX)
- set(ZLIB_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/zlib)
- endif (WINDOWS OR LINUX)
-endif (STANDALONE)
+ set(ZLIB_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/zlib)
+endif (USESYSTEMLIBS)
diff --git a/indra/cmake/cmake_dummy.cpp b/indra/cmake/cmake_dummy.cpp
index ae4475a73e..ae4475a73e 100644..100755
--- a/indra/cmake/cmake_dummy.cpp
+++ b/indra/cmake/cmake_dummy.cpp
diff --git a/indra/cmake/run_build_test.py b/indra/cmake/run_build_test.py
index 37aa75e364..a79d09a9ea 100644..100755
--- a/indra/cmake/run_build_test.py
+++ b/indra/cmake/run_build_test.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python
"""\
@file run_build_test.py
@author Nat Goodspeed
@@ -46,6 +46,10 @@ $/LicenseInfo$
import os
import sys
+import errno
+import HTMLParser
+import re
+import signal
import subprocess
def main(command, libpath=[], vars={}):
@@ -109,7 +113,195 @@ def main(command, libpath=[], vars={}):
os.environ.update(dict([(str(key), str(value)) for key, value in vars.iteritems()]))
# Run the child process.
print "Running: %s" % " ".join(command)
- return subprocess.call(command)
+ # Make sure we see all relevant output *before* child-process output.
+ sys.stdout.flush()
+ try:
+ return subprocess.call(command)
+ except OSError as err:
+ # If the caller is trying to execute a test program that doesn't
+ # exist, we want to produce a reasonable error message rather than a
+ # traceback. This happens when the build is halted by errors, but
+ # CMake tries to proceed with testing anyway <eyeroll/>. However, do
+ # NOT attempt to handle any error but "doesn't exist."
+ if err.errno != errno.ENOENT:
+ raise
+ # In practice, the pathnames into CMake's build tree are so long as to
+ # obscure the name of the test program. Just print its basename.
+ print "No such program %s; check for preceding build errors" % \
+ os.path.basename(command[0])
+ # What rc should we simulate for missing executable? Windows produces
+ # 9009.
+ return 9009
+
+# swiped from vita, sigh, seems like a Bad Idea to introduce dependency
+def translate_rc(rc):
+ """
+ Accept an rc encoded as for subprocess.Popen.returncode:
+ None means still running
+ int >= 0 means terminated voluntarily with specified rc
+ int < 0 means terminated by signal (-rc)
+
+ Return a string explaining the outcome. In case of a signal, try to
+ name the corresponding symbol from the 'signal' module.
+ """
+ if rc is None:
+ return "still running"
+
+ if rc >= 0:
+ return "terminated with rc %s" % rc
+
+ if sys.platform.startswith("win"):
+ # From http://stackoverflow.com/questions/20629027/process-finished-with-exit-code-1073741571
+ # [-1073741571] is the signed integer representation of Microsoft's
+ # "stack overflow/stack exhaustion" error code 0xC00000FD.
+ # Anytime you see strange, large negative exit codes in windows, convert
+ # them to hex and then look them up in the ntstatus error codes
+ # http://msdn.microsoft.com/en-us/library/cc704588.aspx
+
+ # Python bends over backwards to give you all the integer precision
+ # you need, avoiding truncation. But only with 32-bit signed ints is
+ # -1073741571 equivalent to 0xC00000FD! Explicitly truncate before
+ # converting.
+ hexrc = "0x%X" % (rc & 0xFFFFFFFF)
+ # At this point, we're only trying to format the rc to make it easier
+ # for a human being to understand. Any exception here -- file doesn't
+ # exist, HTML parsing error, unrecognized table structure, unknown key
+ # -- should NOT kill the script! It should only cause us to shrug and
+ # present our caller with the best information available.
+ try:
+ table = get_windows_table()
+ symbol, desc = table[hexrc]
+ except Exception, err:
+ print >>sys.stderr, "(%s -- carrying on)" % err
+ return "terminated with rc %s (%s)" % (rc, hexrc)
+ else:
+ return "terminated with rc %s: %s: %s" % (hexrc, symbol, desc)
+
+ else:
+ # On Posix, negative rc means the child was terminated by signal -rc.
+ rc = -rc
+ for attr in dir(signal):
+ if attr.startswith('SIG') and getattr(signal, attr) == rc:
+ strc = attr
+ break
+ else:
+ strc = str(rc)
+ return "terminated by signal %s" % strc
+
+class TableParser(HTMLParser.HTMLParser):
+ """
+ This HTMLParser subclass is designed to parse the table we know exists
+ in windows-rcs.html, hopefully without building in too much knowledge of
+ the specific way that table is currently formatted.
+ """
+ # regular expression matching any string containing only whitespace
+ whitespace = re.compile(r'\s*$')
+
+ def __init__(self):
+ # Because Python 2.x's HTMLParser is an old-style class, we must use
+ # old-style syntax to forward the __init__() call -- not super().
+ HTMLParser.HTMLParser.__init__(self)
+ # this will collect all the data, eventually
+ self.table = []
+ # Stack whose top (last item) indicates where to append current
+ # element data. When empty, don't collect data at all.
+ self.dest = []
+
+ def handle_starttag(self, tag, attrs):
+ if tag == "table":
+ # This is the outermost tag we recognize. Collect nested elements
+ # within self.table.
+ self.dest.append(self.table)
+ elif tag in ("tr", "td"):
+ # Nested elements whose contents we want to capture as sublists.
+ # To the list currently designated by the top of the dest stack,
+ # append a new empty sublist.
+ self.dest[-1].append([])
+ # Now push THAT new, empty list as the new top of the dest stack.
+ self.dest.append(self.dest[-1][-1])
+ elif tag == "p":
+ # We could handle <p> ... </p> just like <tr> or <td>, but that
+ # introduces an unnecessary extra level of nesting. Just skip.
+ pass
+ else:
+ # For any tag we don't recognize (notably <th>), push a new, empty
+ # list to the top of the dest stack. This new list is NOT
+ # referenced by anything in self.table; thus, when we pop it, any
+ # data we've collected inside that list will be discarded.
+ self.dest.append([])
+
+ def handle_endtag(self, tag):
+ # Because we avoid pushing self.dest for <p> in handle_starttag(), we
+ # must refrain from popping it for </p> here.
+ if tag != "p":
+ # For everything else, including unrecognized tags, pop the dest
+ # stack, reverting to outer collection.
+ self.dest.pop()
+
+ def handle_startendtag(self, tag, attrs):
+ # The table of interest contains <td> entries of the form:
+ # <p>0x00000000<br />STATUS_SUCCESS</p>
+ # The <br/> is very useful -- we definitely want two different data
+ # items for "0x00000000" and "STATUS_SUCCESS" -- but we don't need or
+ # want it to push, then discard, an empty list as it would if we let
+ # the default HTMLParser.handle_startendtag() call handle_starttag()
+ # followed by handle_endtag(). Just ignore <br/> or any other
+ # singleton tag.
+ pass
+
+ def handle_data(self, data):
+ # Outside the <table> of interest, self.dest is empty. Do not bother
+ # collecting data when self.dest is empty.
+ # HTMLParser calls handle_data() with every chunk of whitespace
+ # between tags. That would be lovely if our eventual goal was to
+ # reconstitute the original input stream with its existing formatting,
+ # but for us, whitespace only clutters the table. Ignore it.
+ if self.dest and not self.whitespace.match(data):
+ # Here we're within our <table> and we have non-whitespace data.
+ # Append it to the list designated by the top of the dest stack.
+ self.dest[-1].append(data)
+
+# cache for get_windows_table()
+_windows_table = None
+
+def get_windows_table():
+ global _windows_table
+ # If we already loaded _windows_table, no need to load it all over again.
+ if _windows_table:
+ return _windows_table
+
+ # windows-rcs.html was fetched on 2015-03-24 with the following command:
+ # curl -o windows-rcs.html \
+ # https://msdn.microsoft.com/en-us/library/cc704588.aspx
+ parser = TableParser()
+ with open(os.path.join(os.path.dirname(__file__), "windows-rcs.html")) as hf:
+ # We tried feeding the file data to TableParser in chunks, to avoid
+ # buffering the entire file as a single string. Unfortunately its
+ # handle_data() cannot tell the difference between distinct calls
+ # separated by HTML tags, and distinct calls necessitated by a chunk
+ # boundary. Sigh! Read in the whole file. At the time this was
+ # written, it was only 500KB anyway.
+ parser.feed(hf.read())
+ parser.close()
+ table = parser.table
+
+ # With our parser, any <tr><th>...</th></tr> row leaves a table entry
+ # consisting only of an empty list. Remove any such.
+ while table and not table[0]:
+ table.pop(0)
+
+ # We expect rows of the form:
+ # [['0x00000000', 'STATUS_SUCCESS'],
+ # ['The operation completed successfully.']]
+ # The latter list will have multiple entries if Microsoft embedded <br/>
+ # or <p> ... </p> in the text, in which case joining with '\n' is
+ # appropriate.
+ # Turn that into a dict whose key is the hex string, and whose value is
+ # the pair (symbol, desc).
+ _windows_table = dict((key, (symbol, '\n'.join(desc)))
+ for (key, symbol), desc in table)
+
+ return _windows_table
if __name__ == "__main__":
from optparse import OptionParser
@@ -138,5 +330,5 @@ if __name__ == "__main__":
vars=dict([(pair.split('=', 1) + [""])[:2] for pair in opts.vars]))
if rc not in (None, 0):
print >>sys.stderr, "Failure running: %s" % " ".join(args)
- print >>sys.stderr, "Error: %s" % rc
+ print >>sys.stderr, "Error %s: %s" % (rc, translate_rc(rc))
sys.exit((rc < 0) and 255 or rc)
diff --git a/indra/cmake/windows-rcs.html b/indra/cmake/windows-rcs.html
new file mode 100644
index 0000000000..da2fbcdaef
--- /dev/null
+++ b/indra/cmake/windows-rcs.html
@@ -0,0 +1,15157 @@
+<!DOCTYPE html>
+
+<html dir="ltr" xmlns="http://www.w3.org/1999/xhtml" lang="en">
+ <head><meta name="Search.MSHKeywordA" content="596a1078-e883-4972-9bbc-49e60bebca55" xmlns:c="urn:msdn-com:mtps/2004/1/common" xmlns="http://www.w3.org/1999/xhtml" />
+<meta name="Search.MSHAttr.DCSext.appliesToProduct" content="Windows" xmlns:c="urn:msdn-com:mtps/2004/1/common" xmlns="http://www.w3.org/1999/xhtml" />
+<meta name="Search.MSHAttr.DCSext.MSDNLibOpenProtocol" content="WINDOWS" xmlns:c="urn:msdn-com:mtps/2004/1/common" xmlns="http://www.w3.org/1999/xhtml" />
+<meta name="Search.MSHAttr.Locale" content="en-us" xmlns:c="urn:msdn-com:mtps/2004/1/common" xmlns="http://www.w3.org/1999/xhtml" />
+<meta name="Search.MSHAttr.AssetID" content="596a1078-e883-4972-9bbc-49e60bebca55" xmlns:c="urn:msdn-com:mtps/2004/1/common" xmlns="http://www.w3.org/1999/xhtml" />
+<meta name="Search.MSHAttr.TopicType" content="kbRef" xmlns:c="urn:msdn-com:mtps/2004/1/common" xmlns="http://www.w3.org/1999/xhtml" />
+<meta name="Search.Microsoft.Help.Id" content="596a1078-e883-4972-9bbc-49e60bebca55" xmlns:c="urn:msdn-com:mtps/2004/1/common" xmlns="http://www.w3.org/1999/xhtml" />
+<meta name="Search.MSCategory" content="ms310241" xmlns="http://www.w3.org/1999/xhtml" />
+<meta name="Search.MSCategoryV" content="ms310241MSDN10" xmlns="http://www.w3.org/1999/xhtml" />
+<meta name="Search.MSCategory" content="cc203350" xmlns="http://www.w3.org/1999/xhtml" />
+<meta name="Search.MSCategoryV" content="cc203350PROT20" xmlns="http://www.w3.org/1999/xhtml" />
+<meta name="Search.MSCategory" content="ee815853" xmlns="http://www.w3.org/1999/xhtml" />
+<meta name="Search.MSCategoryV" content="ee815853PROT20" xmlns="http://www.w3.org/1999/xhtml" />
+<meta name="Search.MSCategory" content="ee939280" xmlns="http://www.w3.org/1999/xhtml" />
+<meta name="Search.MSCategoryV" content="ee939280PROT20" xmlns="http://www.w3.org/1999/xhtml" />
+<meta name="Search.MSCategory" content="dn781106" xmlns="http://www.w3.org/1999/xhtml" />
+<meta name="Search.MSCategoryV" content="dn781106PROT20" xmlns="http://www.w3.org/1999/xhtml" />
+<meta name="Search.MSCategory" content="ee914698" xmlns="http://www.w3.org/1999/xhtml" />
+<meta name="Search.MSCategoryV" content="ee914698PROT20" xmlns="http://www.w3.org/1999/xhtml" />
+<meta name="Search.MSCategory" content="ee914688" xmlns="http://www.w3.org/1999/xhtml" />
+<meta name="Search.MSCategoryV" content="ee914688PROT20" xmlns="http://www.w3.org/1999/xhtml" />
+<meta name="Search.MSCategory" content="ee914687" xmlns="http://www.w3.org/1999/xhtml" />
+<meta name="Search.MSCategoryV" content="ee914687PROT20" xmlns="http://www.w3.org/1999/xhtml" />
+<meta name="Search.MSCategory" content="cc704588" xmlns="http://www.w3.org/1999/xhtml" />
+<meta name="Search.MSCategoryV" content="cc704588PROT20" xmlns="http://www.w3.org/1999/xhtml" />
+<meta name="Search.TocNodeId" content="cc704588" xmlns="http://www.w3.org/1999/xhtml" />
+<meta name="MSHKeywordA" content="596a1078-e883-4972-9bbc-49e60bebca55" xmlns:c="urn:msdn-com:mtps/2004/1/common" xmlns="http://www.w3.org/1999/xhtml" />
+<meta name="MSHAttr" content="DCSext.appliesToProduct:Windows" xmlns:c="urn:msdn-com:mtps/2004/1/common" xmlns="http://www.w3.org/1999/xhtml" />
+<meta name="MSHAttr" content="DCSext.MSDNLibOpenProtocol:WINDOWS" xmlns:c="urn:msdn-com:mtps/2004/1/common" xmlns="http://www.w3.org/1999/xhtml" />
+<meta name="MSHAttr" content="Locale:en-us" xmlns:c="urn:msdn-com:mtps/2004/1/common" xmlns="http://www.w3.org/1999/xhtml" />
+<meta name="MSHAttr" content="AssetID:596a1078-e883-4972-9bbc-49e60bebca55" xmlns:c="urn:msdn-com:mtps/2004/1/common" xmlns="http://www.w3.org/1999/xhtml" />
+<meta name="MSHAttr" content="TopicType:kbRef" xmlns:c="urn:msdn-com:mtps/2004/1/common" xmlns="http://www.w3.org/1999/xhtml" />
+<meta name="Microsoft.Help.Id" content="596a1078-e883-4972-9bbc-49e60bebca55" xmlns:c="urn:msdn-com:mtps/2004/1/common" xmlns="http://www.w3.org/1999/xhtml" />
+<meta name="MSHAttr" content="Rating:58.871" xmlns="http://www.w3.org/1999/xhtml" />
+<meta name="Search.Rating" content="58.870967" xmlns="http://www.w3.org/1999/xhtml" />
+<meta name="Search.Rating.FiveStarScale" content="2.94354835" xmlns="http://www.w3.org/1999/xhtml" />
+<meta name="MSMETANRatingMSMETAV" content="58.870967" xmlns="http://www.w3.org/1999/xhtml" />
+<meta name="TotalHelpfulVotes" content="17" xmlns="http://www.w3.org/1999/xhtml" />
+<meta name="TotalVotes" content="31" xmlns="http://www.w3.org/1999/xhtml" />
+<meta name="HasCodeSamples" content="false" xmlns="http://www.w3.org/1999/xhtml" />
+<meta name="Search.RootTocId" content="ms310241" xmlns="http://www.w3.org/1999/xhtml" />
+<meta name="Search.library.Url" content="https://msdn.microsoft.com/en-us/library/cc704588.aspx" xmlns="http://www.w3.org/1999/xhtml" /><link rel="canonical" href="https://msdn.microsoft.com/en-us/library/cc704588.aspx" />
+ <title>2.3.1 NTSTATUS values</title>
+
+
+
+
+
+<meta name="DCS.dcsuri" content="/en-us/library/cc704588(d=default,l=en-us,v=prot.20).aspx" />
+
+<meta name="NormalizedUrl" content="https://msdn.microsoft.com/en-us/library/cc704588(d=default,l=en-us,v=prot.20).aspx" />
+
+<meta name="ms.normalizedurl" content="https://msdn.microsoft.com/en-us/library/cc704588(d=default,l=en-us,v=prot.20).aspx" />
+
+<meta name="DCSext.appliesToProduct" content="Windows" />
+
+<meta name="DCSext.MSDNLibOpenProtocol" content="WINDOWS" />
+
+<meta name="VotingContextUrl" content="https://msdn.microsoft.com/en-us/library/cc704588(d=default,l=en-us,v=prot.20).aspx" />
+
+<meta name="MN" content="FB361394-9:41:50 AM" />
+
+<meta name="Search.ShortId" content="cc704588" />
+
+<meta name="ms.shortidmsdn" content="cc704588" />
+
+<meta name="Ms.Locale" content="en-us" />
+
+<meta name="ms.prodver" content="PROT.20" />
+
+<meta name="ms.contentlang" content="EN" />
+
+<meta name="ms.lang" content="EN" />
+
+<meta name="ms.loc" content="US" />
+
+<meta name="ms.sitever" content="2015.02.26.3" />
+
+<meta name="ms.assetid" content="596a1078-e883-4972-9bbc-49e60bebca55" />
+
+<meta name="ms.auth" content="0" />
+
+
+
+
+
+
+
+
+
+ <link rel="stylesheet" type="text/css" href="https://i-msdn.sec.s-msft.com/Combined.css?resources=0:Topic,0:CodeSnippet,0:ProgrammingSelector,0:ExpandableCollapsibleArea,1:CommunityContent,0:TopicNotInScope,0:FeedViewerBasic,0:ImageSprite,2:Header,2:HeaderFooterSprite,3:LinkList,4:PrintExportButton,1:Toc,1:NavigationResize,1:LibraryMemberFilter,2:Footer,3:FooterSock,3:Base,5:Msdn;/Areas/Epx/Content/Css:0,/Areas/Library/Content:1,/Areas/Centers/Themes/StandardDevCenter/Content:2,/Areas/Epx/Themes/Base/Content:3,/Areas/Library/Themes/Base/Content:4,/Areas/Library/Themes/Msdn/Content:5&amp;amp;v=AA60BEA00AEACA3B8F447C4DD8D8022E" /></head>
+ <body class="library ">
+ <div id="page">
+
+
+
+
+
+
+
+
+ <link type="text/css" rel="stylesheet" />
+
+ <input type="hidden" id="isHeaderBleeding" value="true" />
+ <div id="ux-header" dir="ltr" class="ltr msdn">
+
+
+ <header>
+ <span id="moveDrawer"></span>
+ <span id="singleCol"></span>
+ <span id="doubleCol"></span>
+
+ <div class="row">
+ <div class="top">
+ <div class="left">
+
+ <a class="msdnLogoImg" href="https://msdn.microsoft.com/en-us">
+ <img src="https://i-msdn.sec.s-msft.com/Areas/Centers/Themes/StandardDevCenter/Content/Images/microsoftLogoForHeader.png?v=635605659908771441" />
+ </a>
+ </div>
+
+ <div class="right">
+ <div id="signIn">
+
+<a class="scarabLink" href="https://login.live.com/login.srf?wa=wsignin1.0&amp;rpsnv=12&amp;ct=1427215310&amp;rver=6.0.5276.0&amp;wp=MCMBI&amp;wlcxt=MSDN%24MSDN%24MSDN&amp;wreply=https%3a%2f%2fmsdn.microsoft.com%2fen-us%2flibrary%2fcc704588.aspx&amp;lc=1033&amp;id=254354&amp;mkt=en-US" title="Sign in">Sign in</a></div>
+
+
+
+ <div class="auxNav">
+ <div data-fragmentName="Subscriptions" id="Fragment_Subscriptions" xmlns="http://www.w3.org/1999/xhtml">
+ <a href="https://msdn.microsoft.com/subscriptions/manage/hh442900" id="Subscriptions_2153_1" xmlns="http://www.w3.org/1999/xhtml">MSDN subscriptions</a>
+</div>
+ <div data-fragmentName="GetTools" id="Fragment_GetTools" xmlns="http://www.w3.org/1999/xhtml">
+ <a href="http://go.microsoft.com/fwlink/?LinkId=309297&amp;clcid=0x409&amp;slcid=0x409&amp;campaign=o~msft~msdn~gettools-header~dn308572" id="GetTools_2153_3" xmlns="http://www.w3.org/1999/xhtml">Get tools</a>
+</div>
+ <div data-fragmentName="SocialLinks" id="Fragment_SocialLinks" xmlns="http://www.w3.org/1999/xhtml">
+
+ <div class="linkList">
+ <ul class="links horizontal">
+ <li>
+ <a href="http://www.facebook.com/microsoftdeveloper" target="_blank" id="SocialLinks_2152_4" class="facebook" xmlns="http://www.w3.org/1999/xhtml">http://www.facebook.com/microsoftdeveloper</a>
+ </li>
+ <li>
+ <a href="https://twitter.com/msdev" target="_blank" id="SocialLinks_2152_5" class="twitter" xmlns="http://www.w3.org/1999/xhtml">https://twitter.com/msdev</a>
+ </li>
+ <li>
+ <a href="http://plus.google.com/111221966647232053570/" target="_blank" id="SocialLinks_2152_6" class="googlePlus" xmlns="http://www.w3.org/1999/xhtml">http://plus.google.com/111221966647232053570/</a>
+ </li>
+ </ul>
+ </div>
+</div>
+ </div>
+ </div>
+ </div>
+
+ <div class="bottom">
+ <div class="left">
+ <div data-fragmentName="SiteLogo" id="Fragment_SiteLogo" xmlns="http://www.w3.org/1999/xhtml">
+ <div class="LinkWithImage topImage">
+ <a id="SiteLogo_2152_1" href="https://msdn.microsoft.com">
+ <img id="msdnLogo-black" src="https://i-msdn.sec.s-msft.com/en-us/msdn/ux/library/dn610975.msdnLogo-black.jpg?Segments=%2flibrary&amp;isLibrary=true&amp;isMtpsRequest=true&amp;HideProfileLink=true" xmlns="" />
+ <span></span>
+ </a>
+ </div>
+</div>
+ <div id="drawer">
+ <div class="toc">
+
+ <nav>
+ <ul class="navL1">
+ <li class="inactive toggle">
+ <a href="javascript:void(0)" title="Technologies">Technologies</a>
+ <ul class="navL2">
+ <li class="inactive">
+ <a href="https://msdn.microsoft.com/cloud-app-development-msdn" title="Cloud">Cloud</a>
+
+
+ </li>
+ <li class="inactive">
+ <a href="https://msdn.microsoft.com/mobile-app-development-msdn" title="Mobile">Mobile</a>
+
+
+ </li>
+ <li class="inactive">
+ <a href="https://msdn.microsoft.com/web-app-development-msdn" title="Web">Web</a>
+
+
+ </li>
+ <li class="inactive">
+ <a href="https://msdn.microsoft.com/business-and-productivity-app-development-msdn" title="Business">Business</a>
+
+
+ </li>
+ <li class="inactive">
+ <a href="https://msdn.microsoft.com/big-data-development-msdn" title="Data">Data</a>
+
+
+ </li>
+ <li class="inactive">
+ <a href="https://msdn.microsoft.com/games-development-msdn" title="Gaming">Gaming</a>
+
+
+ </li>
+ </ul>
+ </li>
+ <li class="inactive toggle">
+ <a href="javascript:void(0)" title="Downloads">Downloads</a>
+ <ul class="navL2">
+ <li class="inactive">
+ <a href="https://www.visualstudio.com/downloads/download-visual-studio-vs" title="Visual Studio">Visual Studio</a>
+
+
+ </li>
+ <li class="inactive">
+ <a href="https://msdn.microsoft.com/subscriptions" title="MSDN subscriptions">MSDN subscriptions</a>
+
+
+ </li>
+ <li class="inactive">
+ <a href="https://msdn.microsoft.com/microsoft-sdks-msdn" title="SDKs">SDKs</a>
+
+
+ </li>
+ </ul>
+ </li>
+ <li class="inactive toggle">
+ <a href="javascript:void(0)" title="Programs">Programs</a>
+ <ul class="navL2">
+ <li class="inactive">
+ <a href="https://www.microsoft.com/bizspark" title="BizSpark">BizSpark</a>
+
+
+ </li>
+ <li class="inactive toggle">
+ <a href="javascript:void(0)" title="Students">Students</a>
+
+ <ul class="navL3">
+ <li class="inactive">
+ <a href="https://msdn.microsoft.com/student-developer-program" title="Develop apps">Develop apps</a>
+ </li>
+ <li class="inactive">
+ <a href="http://blogs.msdn.com/b/microsoft_student_developer_blog" title="Blog">Blog</a>
+ </li>
+ </ul>
+
+ </li>
+ <li class="inactive toggle">
+ <a href="javascript:void(0)" title="Architects">Architects</a>
+
+ <ul class="navL3">
+ <li class="inactive">
+ <a href="https://msdn.microsoft.com/architects-overview-msdn" title="Overview">Overview</a>
+ </li>
+ <li class="inactive">
+ <a href="https://msdn.microsoft.com/architects-case-studies-msdn" title="Case studies">Case studies</a>
+ </li>
+ <li class="inactive">
+ <a href="https://msdn.microsoft.com/architects-blueprints-msdn" title="Blueprints">Blueprints</a>
+ </li>
+ <li class="inactive">
+ <a href="http://blogs.msdn.com/b/msarchitecture/" title="Blog">Blog</a>
+ </li>
+ <li class="inactive">
+ <a href="http://social.msdn.microsoft.com/forums/en-us/home?brandignore=true&amp;sort=relevancedesc&amp;searchterm=architecture+or+architect" title="Forums">Forums</a>
+ </li>
+ </ul>
+
+ </li>
+ <li class="inactive">
+ <a href="http://events.msdn.microsoft.com/" title="Events">Events</a>
+
+
+ </li>
+ </ul>
+ </li>
+ <li class="inactive toggle">
+ <a href="javascript:void(0)" title="Community">Community</a>
+ <ul class="navL2">
+ <li class="inactive">
+ <a href="https://social.msdn.microsoft.com/forums/" title="Forums">Forums</a>
+
+
+ </li>
+ <li class="inactive">
+ <a href="http://blogs.msdn.com/b/developer-tools/" title="Blogs">Blogs</a>
+
+
+ </li>
+ <li class="inactive">
+ <a href="http://tech-advisors.msdn.microsoft.com/en-us" title="Tech Advisors">Tech Advisors</a>
+
+
+ </li>
+ <li class="inactive">
+ <a href="http://channel9.msdn.com/" title="Channel 9">Channel 9</a>
+
+
+ </li>
+ </ul>
+ </li>
+ <li class="inactive current toggle">
+ <a href="javascript:void(0)" title="Documentation">Documentation</a>
+ <ul class="navL2">
+ <li class="inactive current">
+ <a href="https://msdn.microsoft.com/library" title="APIs and reference">APIs and reference</a>
+
+
+ </li>
+ <li class="inactive">
+ <a href="https://msdn.microsoft.com/developer-centers-msdn" title="Dev centers">Dev centers</a>
+
+
+ </li>
+ </ul>
+ </li>
+ <li class="inactive">
+ <a href="https://code.msdn.microsoft.com/" title="Samples">Samples</a>
+ </li>
+ </ul>
+ </nav>
+
+ </div>
+ </div>
+ </div>
+
+ <div class="right">
+ <div data-fragmentName="SearchBox" id="Fragment_SearchBox" xmlns="http://www.w3.org/1999/xhtml">
+ <div class="SearchBox">
+ <form id="HeaderSearchForm" name="HeaderSearchForm" method="get" onsubmit="return Epx.Controls.SearchBox.searchBoxOnSubmit(this);">
+ <input id="HeaderSearchTextBox" name="query" type="text" maxlength="200" onfocus="Epx.Controls.SearchBox.watermarkFocus(event, this.title)" onblur="Epx.Controls.SearchBox.watermarkBlur(event, this.title)" />
+ <button id="HeaderSearchButton" value="" type="submit" class="header-search-button"></button>
+ </form>
+
+
+ </div>
+</div>
+ <a id="grip" href="javascript:void(0)"></a>
+ </div>
+ </div>
+ </div>
+ </header>
+ </div>
+
+
+
+
+ <div class="printExportMenus ltr">
+ <a id="isd_printABook" href="/en-us/library/export/help/?returnUrl=%2fen-us%2flibrary%2fcc704588.aspx">
+ Export (<span class="count">0</span>)
+ </a>
+ <a id="isd_print" href="https://msdn.microsoft.com/en-us/library/cc704588(d=printer).aspx" rel="nofollow">
+ Print
+ </a>
+ </div>
+
+
+ <div class="printExportMenus ltr">
+ <a id="expandCollapseAll" accesskey="e" href="javascript:void(0)" title="Expand/Collapse all sections by pressing Ctrl + Shift + e">Expand All</a>
+ </div>
+
+
+
+
+ <div id="body">
+
+
+
+
+
+
+
+
+
+ <div id="leftNav">
+
+
+
+<div id="tocnav">
+
+ <div class="toclevel0" data-toclevel="0">
+<a data-tochassubtree="true" href="https://msdn.microsoft.com/en-us/library/ms123401.aspx" id="ms310241_MSDN.10_en-us" mtpsaliasid="" mtpsassetid="5DDC0A78-6B2C-43E3-9C56-55F45C0DFFA5_MSDN.10_en-us" mtpsshortid="ms123401_MSDN.10_en-us" title="MSDN Library">MSDN Library</a> </div>
+ <div class="toclevel0" data-toclevel="0">
+<a data-tochassubtree="true" href="https://msdn.microsoft.com/en-us/library/dd208104(v=prot.10).aspx" id="cc203350_PROT.20_en-us" mtpsaliasid="" mtpsassetid="3589baea-5b22-48f2-9d43-f5bea4960ddb_PROT.20_en-us" mtpsshortid="dd208104_PROT.10_en-us" title="Open Specifications">Open Specifications</a> </div>
+ <div class="toclevel0" data-toclevel="0">
+<a data-tochassubtree="true" href="https://msdn.microsoft.com/en-us/library/gg685446.aspx" id="ee815853_PROT.20_en-us" mtpsaliasid="" mtpsassetid="9a3ae8a2-02e5-4d05-874a-b3551405d8f9_PROT.20_en-us" mtpsshortid="gg685446_MSDN.10_en-us" title="Protocols">Protocols</a> </div>
+ <div class="toclevel0" data-toclevel="0">
+<a data-tochassubtree="true" href="https://msdn.microsoft.com/en-us/library/cc216517.aspx" id="ee939280_PROT.20_en-us" mtpsaliasid="" mtpsassetid="92b33e19-6fff-496b-86c3-d168206f9845_PROT.20_en-us" mtpsshortid="cc216517_PROT.20_en-us" title="Windows Protocols">Windows Protocols</a> </div>
+ <div class="toclevel0" data-toclevel="0">
+<a data-tochassubtree="true" href="https://msdn.microsoft.com/en-us/library/cc216516.aspx" id="dn781106_PROT.20_en-us" mtpsaliasid="" mtpsassetid="1593dc07-6116-4e9e-8aeb-85c7438fab0a_PROT.20_en-us" mtpsshortid="cc216516_PROT.20_en-us" title="References">References</a> </div>
+ <div class="toclevel0" data-toclevel="0">
+<a data-tochassubtree="true" href="https://msdn.microsoft.com/en-us/library/cc231196.aspx" id="ee914698_PROT.20_en-us" mtpsaliasid="" mtpsassetid="1bc92ddf-b79e-413c-bbaa-99a5281a6c90_PROT.20_en-us" mtpsshortid="cc231196_PROT.20_en-us" title="[MS-ERREF]: Windows Error Codes">[MS-ERREF]: Windows Error Codes</a> </div>
+ <div class="toclevel0" data-toclevel="0">
+<a data-tochassubtree="true" href="https://msdn.microsoft.com/en-us/library/cc231210.aspx" id="ee914688_PROT.20_en-us" mtpsaliasid="" mtpsassetid="32cce05d-3a39-4c7e-8f66-5e788e1107cf_PROT.20_en-us" mtpsshortid="cc231210_PROT.20_en-us" title="2 Structures">2 Structures</a> </div>
+ <div class="toclevel1" data-toclevel="1">
+<a data-tochassubtree="true" href="https://msdn.microsoft.com/en-us/library/cc231200.aspx" id="ee914687_PROT.20_en-us" mtpsaliasid="" mtpsassetid="87fba13e-bf06-450e-83b1-9241dc81e781_PROT.20_en-us" mtpsshortid="cc231200_PROT.20_en-us" title="2.3 NTSTATUS">2.3 NTSTATUS</a> </div>
+ <div class="toclevel2 current" data-toclevel="2">
+<a href="https://msdn.microsoft.com/en-us/library/cc704588.aspx" mtpsaliasid="" mtpsassetid="" mtpsshortid="" title="2.3.1 NTSTATUS values">2.3.1 NTSTATUS values</a> </div>
+</div>
+
+
+
+
+
+
+ <div id="toc-resizable-ew" class="toc-resizable-ew"></div>
+
+
+<a id="NavigationResize" href="javascript:void(0)">
+ <img class="cl_nav_resize_open" src="https://i-msdn.sec.s-msft.com/Areas/Epx/Content/Images/ImageSprite.png?v=635605659960334597" title="Expand" alt="Expand" />
+ <img class="cl_nav_resize_close" src="https://i-msdn.sec.s-msft.com/Areas/Epx/Content/Images/ImageSprite.png?v=635605659960334597" title="Minimize" alt="Minimize" />
+</a>
+
+
+
+ </div>
+<div id="content" class="content">
+
+
+
+
+
+
+
+
+<div xmlns="http://www.w3.org/1999/xhtml">
+<div class="topic" xmlns="http://www.w3.org/1999/xhtml" xmlns:mtps="http://msdn2.microsoft.com/mtps">
+ <h1 class="title">2.3.1 NTSTATUS values</h1>
+
+ <div id="mainSection">
+ <div id="mainBody">
+ <div id="sectionSection0" class="section">
+ <p>By combining the NTSTATUS into a single 32-bit numbering space, the following NTSTATUS values are defined. Most values also have a defined default message that can be used to map the value to a human-readable text message. When this is done, the NTSTATUS value is also known as a <a href="https://msdn.microsoft.com/en-us/library/2ac5d774-07c9-4de4-a2a8-6baa333455fa#message_identifier">message identifier</a>. </p>
+ <p>This document provides the common usage details of the NTSTATUS values; individual protocol specifications may provide expanded or modified definitions.</p>
+ <p>In the following descriptions, a percentage sign that is followed by one or more alphanumeric characters (for example, "%1" or "%hs") indicates a variable that is replaced by text at the time the value is returned. </p>
+ <p />
+ <table class="FixedWidth-40-60">
+ <tr>
+ <th id="ShadedCell">
+ Return value/code
+ </th>
+ <th id="ShadedCell1">
+ Description
+ </th>
+ </tr>
+ <tr>
+ <td>
+ <p>0x00000000<br />STATUS_SUCCESS</p>
+ </td>
+ <td>
+ <p>The operation completed successfully. </p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x00000000<br />STATUS_WAIT_0</p>
+ </td>
+ <td>
+ <p>The caller specified WaitAny for WaitType and one of the dispatcher objects in the Object array has been set to the signaled state.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x00000001<br />STATUS_WAIT_1</p>
+ </td>
+ <td>
+ <p>The caller specified WaitAny for WaitType and one of the dispatcher objects in the Object array has been set to the signaled state.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x00000002<br />STATUS_WAIT_2</p>
+ </td>
+ <td>
+ <p>The caller specified WaitAny for WaitType and one of the dispatcher objects in the Object array has been set to the signaled state.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x00000003<br />STATUS_WAIT_3</p>
+ </td>
+ <td>
+ <p>The caller specified WaitAny for WaitType and one of the dispatcher objects in the Object array has been set to the signaled state.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x0000003F<br />STATUS_WAIT_63</p>
+ </td>
+ <td>
+ <p>The caller specified WaitAny for WaitType and one of the dispatcher objects in the Object array has been set to the signaled state.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x00000080<br />STATUS_ABANDONED</p>
+ </td>
+ <td>
+ <p>The caller attempted to wait for a mutex that has been abandoned.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x00000080<br />STATUS_ABANDONED_WAIT_0</p>
+ </td>
+ <td>
+ <p>The caller attempted to wait for a mutex that has been abandoned.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x000000BF<br />STATUS_ABANDONED_WAIT_63</p>
+ </td>
+ <td>
+ <p>The caller attempted to wait for a mutex that has been abandoned.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x000000C0<br />STATUS_USER_APC</p>
+ </td>
+ <td>
+ <p>A user-mode APC was delivered before the given Interval expired.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x00000101<br />STATUS_ALERTED</p>
+ </td>
+ <td>
+ <p>The delay completed because the thread was alerted.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x00000102<br />STATUS_TIMEOUT</p>
+ </td>
+ <td>
+ <p>The given Timeout interval expired.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x00000103<br />STATUS_PENDING</p>
+ </td>
+ <td>
+ <p>The operation that was requested is pending completion.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x00000104<br />STATUS_REPARSE</p>
+ </td>
+ <td>
+ <p>A reparse should be performed by the Object Manager because the name of the file resulted in a symbolic link.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x00000105<br />STATUS_MORE_ENTRIES</p>
+ </td>
+ <td>
+ <p>Returned by enumeration APIs to indicate more information is available to successive calls.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x00000106<br />STATUS_NOT_ALL_ASSIGNED</p>
+ </td>
+ <td>
+ <p>Indicates not all privileges or groups that are referenced are assigned to the caller. This allows, for example, all privileges to be disabled without having to know exactly which privileges are assigned.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x00000107<br />STATUS_SOME_NOT_MAPPED</p>
+ </td>
+ <td>
+ <p>Some of the information to be translated has not been translated.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x00000108<br />STATUS_OPLOCK_BREAK_IN_PROGRESS</p>
+ </td>
+ <td>
+ <p>An open/create operation completed while an opportunistic lock (oplock) break is underway.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x00000109<br />STATUS_VOLUME_MOUNTED</p>
+ </td>
+ <td>
+ <p>A new volume has been mounted by a file system.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x0000010A<br />STATUS_RXACT_COMMITTED</p>
+ </td>
+ <td>
+ <p>This success level status indicates that the transaction state already exists for the registry subtree but that a transaction commit was previously aborted. The commit has now been completed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x0000010B<br />STATUS_NOTIFY_CLEANUP</p>
+ </td>
+ <td>
+ <p>Indicates that a notify change request has been completed due to closing the handle that made the notify change request.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x0000010C<br />STATUS_NOTIFY_ENUM_DIR</p>
+ </td>
+ <td>
+ <p>Indicates that a notify change request is being completed and that the information is not being returned in the caller's buffer. The caller now needs to enumerate the files to find the changes.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x0000010D<br />STATUS_NO_QUOTAS_FOR_ACCOUNT</p>
+ </td>
+ <td>
+ <p>{No Quotas} No system quota limits are specifically set for this account.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x0000010E<br />STATUS_PRIMARY_TRANSPORT_CONNECT_FAILED</p>
+ </td>
+ <td>
+ <p>{Connect Failure on Primary Transport} An attempt was made to connect to the remote server %hs on the primary transport, but the connection failed. The computer WAS able to connect on a secondary transport.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x00000110<br />STATUS_PAGE_FAULT_TRANSITION</p>
+ </td>
+ <td>
+ <p>The page fault was a transition fault.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x00000111<br />STATUS_PAGE_FAULT_DEMAND_ZERO</p>
+ </td>
+ <td>
+ <p>The page fault was a demand zero fault.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x00000112<br />STATUS_PAGE_FAULT_COPY_ON_WRITE</p>
+ </td>
+ <td>
+ <p>The page fault was a demand zero fault.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x00000113<br />STATUS_PAGE_FAULT_GUARD_PAGE</p>
+ </td>
+ <td>
+ <p>The page fault was a demand zero fault.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x00000114<br />STATUS_PAGE_FAULT_PAGING_FILE</p>
+ </td>
+ <td>
+ <p>The page fault was satisfied by reading from a secondary storage device.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x00000115<br />STATUS_CACHE_PAGE_LOCKED</p>
+ </td>
+ <td>
+ <p>The cached page was locked during operation.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x00000116<br />STATUS_CRASH_DUMP</p>
+ </td>
+ <td>
+ <p>The crash dump exists in a paging file.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x00000117<br />STATUS_BUFFER_ALL_ZEROS</p>
+ </td>
+ <td>
+ <p>The specified buffer contains all zeros.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x00000118<br />STATUS_REPARSE_OBJECT</p>
+ </td>
+ <td>
+ <p>A reparse should be performed by the Object Manager because the name of the file resulted in a symbolic link.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x00000119<br />STATUS_RESOURCE_REQUIREMENTS_CHANGED</p>
+ </td>
+ <td>
+ <p>The device has succeeded a query-stop and its resource requirements have changed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x00000120<br />STATUS_TRANSLATION_COMPLETE</p>
+ </td>
+ <td>
+ <p>The translator has translated these resources into the global space and no additional translations should be performed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x00000121<br />STATUS_DS_MEMBERSHIP_EVALUATED_LOCALLY</p>
+ </td>
+ <td>
+ <p>The directory service evaluated group memberships locally, because it was unable to contact a global catalog server.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x00000122<br />STATUS_NOTHING_TO_TERMINATE</p>
+ </td>
+ <td>
+ <p>A process being terminated has no threads to terminate.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x00000123<br />STATUS_PROCESS_NOT_IN_JOB</p>
+ </td>
+ <td>
+ <p>The specified process is not part of a job.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x00000124<br />STATUS_PROCESS_IN_JOB</p>
+ </td>
+ <td>
+ <p>The specified process is part of a job.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x00000125<br />STATUS_VOLSNAP_HIBERNATE_READY</p>
+ </td>
+ <td>
+ <p>{Volume Shadow Copy Service} The system is now ready for hibernation.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x00000126<br />STATUS_FSFILTER_OP_COMPLETED_SUCCESSFULLY</p>
+ </td>
+ <td>
+ <p>A file system or file system filter driver has successfully completed an FsFilter operation.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x00000127<br />STATUS_INTERRUPT_VECTOR_ALREADY_CONNECTED</p>
+ </td>
+ <td>
+ <p>The specified interrupt vector was already connected.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x00000128<br />STATUS_INTERRUPT_STILL_CONNECTED</p>
+ </td>
+ <td>
+ <p>The specified interrupt vector is still connected.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x00000129<br />STATUS_PROCESS_CLONED</p>
+ </td>
+ <td>
+ <p>The current process is a cloned process.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x0000012A<br />STATUS_FILE_LOCKED_WITH_ONLY_READERS</p>
+ </td>
+ <td>
+ <p>The file was locked and all users of the file can only read.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x0000012B<br />STATUS_FILE_LOCKED_WITH_WRITERS</p>
+ </td>
+ <td>
+ <p>The file was locked and at least one user of the file can write.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x00000202<br />STATUS_RESOURCEMANAGER_READ_ONLY</p>
+ </td>
+ <td>
+ <p>The specified ResourceManager made no changes or updates to the resource under this transaction.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x00000367<br />STATUS_WAIT_FOR_OPLOCK</p>
+ </td>
+ <td>
+ <p>An operation is blocked and waiting for an oplock.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x00010001<br />DBG_EXCEPTION_HANDLED</p>
+ </td>
+ <td>
+ <p>Debugger handled the exception.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x00010002<br />DBG_CONTINUE</p>
+ </td>
+ <td>
+ <p>The debugger continued.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x001C0001<br />STATUS_FLT_IO_COMPLETE</p>
+ </td>
+ <td>
+ <p>The IO was completed by a filter.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000467<br />STATUS_FILE_NOT_AVAILABLE</p>
+ </td>
+ <td>
+ <p>The file is temporarily unavailable.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000721<br />STATUS_CALLBACK_RETURNED_THREAD_AFFINITY</p>
+ </td>
+ <td>
+ <p>A threadpool worker thread entered a callback at thread affinity %p and exited at affinity %p.</p>
+ <p>This is unexpected, indicating that the callback missed restoring the priority.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x40000000<br />STATUS_OBJECT_NAME_EXISTS</p>
+ </td>
+ <td>
+ <p>{Object Exists} An attempt was made to create an object but the object name already exists.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x40000001<br />STATUS_THREAD_WAS_SUSPENDED</p>
+ </td>
+ <td>
+ <p>{Thread Suspended} A thread termination occurred while the thread was suspended. The thread resumed, and termination proceeded.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x40000002<br />STATUS_WORKING_SET_LIMIT_RANGE</p>
+ </td>
+ <td>
+ <p>{Working Set Range Error} An attempt was made to set the working set minimum or maximum to values that are outside the allowable range.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x40000003<br />STATUS_IMAGE_NOT_AT_BASE</p>
+ </td>
+ <td>
+ <p>{Image Relocated} An image file could not be mapped at the address that is specified in the image file. Local fixes must be performed on this image.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x40000004<br />STATUS_RXACT_STATE_CREATED</p>
+ </td>
+ <td>
+ <p>This informational level status indicates that a specified registry subtree transaction state did not yet exist and had to be created.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x40000005<br />STATUS_SEGMENT_NOTIFICATION</p>
+ </td>
+ <td>
+ <p>{Segment Load} A virtual DOS machine (VDM) is loading, unloading, or moving an MS-DOS or Win16 program segment image. An exception is raised so that a debugger can load, unload, or track symbols and breakpoints within these 16-bit segments.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x40000006<br />STATUS_LOCAL_USER_SESSION_KEY</p>
+ </td>
+ <td>
+ <p>{Local Session Key} A user session key was requested for a local remote procedure call (RPC) connection. The session key that is returned is a constant value and not unique to this connection.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x40000007<br />STATUS_BAD_CURRENT_DIRECTORY</p>
+ </td>
+ <td>
+ <p>{Invalid Current Directory} The process cannot switch to the startup current directory %hs. Select OK to set the current directory to %hs, or select CANCEL to exit.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x40000008<br />STATUS_SERIAL_MORE_WRITES</p>
+ </td>
+ <td>
+ <p>{Serial IOCTL Complete} A serial I/O operation was completed by another write to a serial port. (The IOCTL_SERIAL_XOFF_COUNTER reached zero.)</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x40000009<br />STATUS_REGISTRY_RECOVERED</p>
+ </td>
+ <td>
+ <p>{Registry Recovery} One of the files that contains the system registry data had to be recovered by using a log or alternate copy. The recovery was successful.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x4000000A<br />STATUS_FT_READ_RECOVERY_FROM_BACKUP</p>
+ </td>
+ <td>
+ <p>{Redundant Read} To satisfy a read request, the Windows NT fault-tolerant file system successfully read the requested data from a redundant copy. This was done because the file system encountered a failure on a member of the fault-tolerant volume but was unable to reassign the failing area of the device.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x4000000B<br />STATUS_FT_WRITE_RECOVERY</p>
+ </td>
+ <td>
+ <p>{Redundant Write} To satisfy a write request, the Windows NT fault-tolerant file system successfully wrote a redundant copy of the information. This was done because the file system encountered a failure on a member of the fault-tolerant volume but was unable to reassign the failing area of the device.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x4000000C<br />STATUS_SERIAL_COUNTER_TIMEOUT</p>
+ </td>
+ <td>
+ <p>{Serial IOCTL Timeout} A serial I/O operation completed because the time-out period expired. (The IOCTL_SERIAL_XOFF_COUNTER had not reached zero.)</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x4000000D<br />STATUS_NULL_LM_PASSWORD</p>
+ </td>
+ <td>
+ <p>{Password Too Complex} The Windows password is too complex to be converted to a LAN Manager password. The LAN Manager password that returned is a NULL string.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x4000000E<br />STATUS_IMAGE_MACHINE_TYPE_MISMATCH</p>
+ </td>
+ <td>
+ <p>{Machine Type Mismatch} The image file %hs is valid but is for a machine type other than the current machine. Select OK to continue, or CANCEL to fail the DLL load.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x4000000F<br />STATUS_RECEIVE_PARTIAL</p>
+ </td>
+ <td>
+ <p>{Partial Data Received} The network transport returned partial data to its client. The remaining data will be sent later.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x40000010<br />STATUS_RECEIVE_EXPEDITED</p>
+ </td>
+ <td>
+ <p>{Expedited Data Received} The network transport returned data to its client that was marked as expedited by the remote system.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x40000011<br />STATUS_RECEIVE_PARTIAL_EXPEDITED</p>
+ </td>
+ <td>
+ <p>{Partial Expedited Data Received} The network transport returned partial data to its client and this data was marked as expedited by the remote system. The remaining data will be sent later.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x40000012<br />STATUS_EVENT_DONE</p>
+ </td>
+ <td>
+ <p>{TDI Event Done} The TDI indication has completed successfully.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x40000013<br />STATUS_EVENT_PENDING</p>
+ </td>
+ <td>
+ <p>{TDI Event Pending} The TDI indication has entered the pending state.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x40000014<br />STATUS_CHECKING_FILE_SYSTEM</p>
+ </td>
+ <td>
+ <p>Checking file system on %wZ.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x40000015<br />STATUS_FATAL_APP_EXIT</p>
+ </td>
+ <td>
+ <p>{Fatal Application Exit} %hs</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x40000016<br />STATUS_PREDEFINED_HANDLE</p>
+ </td>
+ <td>
+ <p>The specified registry key is referenced by a predefined handle.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x40000017<br />STATUS_WAS_UNLOCKED</p>
+ </td>
+ <td>
+ <p>{Page Unlocked} The page protection of a locked page was changed to 'No Access' and the page was unlocked from memory and from the process.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x40000018<br />STATUS_SERVICE_NOTIFICATION</p>
+ </td>
+ <td>
+ <p>%hs</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x40000019<br />STATUS_WAS_LOCKED</p>
+ </td>
+ <td>
+ <p>{Page Locked} One of the pages to lock was already locked.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x4000001A<br />STATUS_LOG_HARD_ERROR</p>
+ </td>
+ <td>
+ <p>Application popup: %1 : %2</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x4000001B<br />STATUS_ALREADY_WIN32</p>
+ </td>
+ <td>
+ <p>A Win32 process already exists.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x4000001C<br />STATUS_WX86_UNSIMULATE</p>
+ </td>
+ <td>
+ <p>An exception status code that is used by the Win32 x86 emulation subsystem.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x4000001D<br />STATUS_WX86_CONTINUE</p>
+ </td>
+ <td>
+ <p>An exception status code that is used by the Win32 x86 emulation subsystem.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x4000001E<br />STATUS_WX86_SINGLE_STEP</p>
+ </td>
+ <td>
+ <p>An exception status code that is used by the Win32 x86 emulation subsystem.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x4000001F<br />STATUS_WX86_BREAKPOINT</p>
+ </td>
+ <td>
+ <p>An exception status code that is used by the Win32 x86 emulation subsystem.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x40000020<br />STATUS_WX86_EXCEPTION_CONTINUE</p>
+ </td>
+ <td>
+ <p>An exception status code that is used by the Win32 x86 emulation subsystem.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x40000021<br />STATUS_WX86_EXCEPTION_LASTCHANCE</p>
+ </td>
+ <td>
+ <p>An exception status code that is used by the Win32 x86 emulation subsystem.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x40000022<br />STATUS_WX86_EXCEPTION_CHAIN</p>
+ </td>
+ <td>
+ <p>An exception status code that is used by the Win32 x86 emulation subsystem.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x40000023<br />STATUS_IMAGE_MACHINE_TYPE_MISMATCH_EXE</p>
+ </td>
+ <td>
+ <p>{Machine Type Mismatch} The image file %hs is valid but is for a machine type other than the current machine.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x40000024<br />STATUS_NO_YIELD_PERFORMED</p>
+ </td>
+ <td>
+ <p>A yield execution was performed and no thread was available to run.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x40000025<br />STATUS_TIMER_RESUME_IGNORED</p>
+ </td>
+ <td>
+ <p>The resume flag to a timer API was ignored.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x40000026<br />STATUS_ARBITRATION_UNHANDLED</p>
+ </td>
+ <td>
+ <p>The arbiter has deferred arbitration of these resources to its parent.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x40000027<br />STATUS_CARDBUS_NOT_SUPPORTED</p>
+ </td>
+ <td>
+ <p>The device has detected a CardBus card in its slot.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x40000028<br />STATUS_WX86_CREATEWX86TIB</p>
+ </td>
+ <td>
+ <p>An exception status code that is used by the Win32 x86 emulation subsystem.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x40000029<br />STATUS_MP_PROCESSOR_MISMATCH</p>
+ </td>
+ <td>
+ <p>The CPUs in this multiprocessor system are not all the same revision level. To use all processors, the operating system restricts itself to the features of the least capable processor in the system. If problems occur with this system, contact the CPU manufacturer to see if this mix of processors is supported.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x4000002A<br />STATUS_HIBERNATED</p>
+ </td>
+ <td>
+ <p>The system was put into hibernation.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x4000002B<br />STATUS_RESUME_HIBERNATION</p>
+ </td>
+ <td>
+ <p>The system was resumed from hibernation.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x4000002C<br />STATUS_FIRMWARE_UPDATED</p>
+ </td>
+ <td>
+ <p>
+ Windows has detected that the system firmware (BIOS) was updated [previous firmware date = %2, current firmware date %3].</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x4000002D<br />STATUS_DRIVERS_LEAKING_LOCKED_PAGES</p>
+ </td>
+ <td>
+ <p>A device driver is leaking locked I/O pages and is causing system degradation. The system has automatically enabled the tracking code to try and catch the culprit.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x4000002E<br />STATUS_MESSAGE_RETRIEVED</p>
+ </td>
+ <td>
+ <p>The ALPC message being canceled has already been retrieved from the queue on the other side.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x4000002F<br />STATUS_SYSTEM_POWERSTATE_TRANSITION</p>
+ </td>
+ <td>
+ <p>The system power state is transitioning from %2 to %3.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x40000030<br />STATUS_ALPC_CHECK_COMPLETION_LIST</p>
+ </td>
+ <td>
+ <p>The receive operation was successful. Check the ALPC completion list for the received message.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x40000031<br />STATUS_SYSTEM_POWERSTATE_COMPLEX_TRANSITION</p>
+ </td>
+ <td>
+ <p>The system power state is transitioning from %2 to %3 but could enter %4.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x40000032<br />STATUS_ACCESS_AUDIT_BY_POLICY</p>
+ </td>
+ <td>
+ <p>Access to %1 is monitored by policy rule %2.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x40000033<br />STATUS_ABANDON_HIBERFILE</p>
+ </td>
+ <td>
+ <p>A valid hibernation file has been invalidated and should be abandoned.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x40000034<br />STATUS_BIZRULES_NOT_ENABLED</p>
+ </td>
+ <td>
+ <p>Business rule scripts are disabled for the calling application.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x40000294<br />STATUS_WAKE_SYSTEM</p>
+ </td>
+ <td>
+ <p>The system has awoken.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x40000370<br />STATUS_DS_SHUTTING_DOWN</p>
+ </td>
+ <td>
+ <p>The directory service is shutting down.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x40010001<br />DBG_REPLY_LATER</p>
+ </td>
+ <td>
+ <p>Debugger will reply later.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x40010002<br />DBG_UNABLE_TO_PROVIDE_HANDLE</p>
+ </td>
+ <td>
+ <p>Debugger cannot provide a handle.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x40010003<br />DBG_TERMINATE_THREAD</p>
+ </td>
+ <td>
+ <p>Debugger terminated the thread.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x40010004<br />DBG_TERMINATE_PROCESS</p>
+ </td>
+ <td>
+ <p>Debugger terminated the process.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x40010005<br />DBG_CONTROL_C</p>
+ </td>
+ <td>
+ <p>Debugger obtained control of C.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x40010006<br />DBG_PRINTEXCEPTION_C</p>
+ </td>
+ <td>
+ <p>Debugger printed an exception on control C.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x40010007<br />DBG_RIPEXCEPTION</p>
+ </td>
+ <td>
+ <p>Debugger received a RIP exception.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x40010008<br />DBG_CONTROL_BREAK</p>
+ </td>
+ <td>
+ <p>Debugger received a control break.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x40010009<br />DBG_COMMAND_EXCEPTION</p>
+ </td>
+ <td>
+ <p>Debugger command communication exception.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x40020056<br />RPC_NT_UUID_LOCAL_ONLY</p>
+ </td>
+ <td>
+ <p>A <a href="https://msdn.microsoft.com/en-us/library/513bb0aa-c8d8-456f-8a31-4e200ca7970c#uuid">UUID</a> that is valid only on this computer has been allocated.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x400200AF<br />RPC_NT_SEND_INCOMPLETE</p>
+ </td>
+ <td>
+ <p>Some data remains to be sent in the request buffer.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x400A0004<br />STATUS_CTX_CDM_CONNECT</p>
+ </td>
+ <td>
+ <p>The Client Drive Mapping Service has connected on Terminal Connection.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x400A0005<br />STATUS_CTX_CDM_DISCONNECT</p>
+ </td>
+ <td>
+ <p>The Client Drive Mapping Service has disconnected on Terminal Connection.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x4015000D<br />STATUS_SXS_RELEASE_ACTIVATION_CONTEXT</p>
+ </td>
+ <td>
+ <p>A kernel mode component is releasing a reference on an activation context.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x40190034<br />STATUS_RECOVERY_NOT_NEEDED</p>
+ </td>
+ <td>
+ <p>The transactional resource manager is already consistent. Recovery is not needed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x40190035<br />STATUS_RM_ALREADY_STARTED</p>
+ </td>
+ <td>
+ <p>The transactional resource manager has already been started.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x401A000C<br />STATUS_LOG_NO_RESTART</p>
+ </td>
+ <td>
+ <p>The log service encountered a log stream with no restart area.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x401B00EC<br />STATUS_VIDEO_DRIVER_DEBUG_REPORT_REQUEST</p>
+ </td>
+ <td>
+ <p>{Display Driver Recovered From Failure} The %hs display driver has detected a failure and recovered from it. Some graphical operations may have failed. The next time you restart the machine, a dialog box appears, giving you an opportunity to upload data about this failure to Microsoft.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x401E000A<br />STATUS_GRAPHICS_PARTIAL_DATA_POPULATED</p>
+ </td>
+ <td>
+ <p>The specified buffer is not big enough to contain the entire requested dataset. Partial data is populated up to the size of the buffer.</p>
+ <p>The caller needs to provide a buffer of the size as specified in the partially populated buffer's content (interface specific).</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x401E0117<br />STATUS_GRAPHICS_DRIVER_MISMATCH</p>
+ </td>
+ <td>
+ <p>The kernel driver detected a version mismatch between it and the user mode driver.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x401E0307<br />STATUS_GRAPHICS_MODE_NOT_PINNED</p>
+ </td>
+ <td>
+ <p>No mode is pinned on the specified VidPN source/target.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x401E031E<br />STATUS_GRAPHICS_NO_PREFERRED_MODE</p>
+ </td>
+ <td>
+ <p>The specified mode set does not specify a preference for one of its modes.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x401E034B<br />STATUS_GRAPHICS_DATASET_IS_EMPTY</p>
+ </td>
+ <td>
+ <p>The specified dataset (for example, mode set, frequency range set, descriptor set, or topology) is empty.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x401E034C<br />STATUS_GRAPHICS_NO_MORE_ELEMENTS_IN_DATASET</p>
+ </td>
+ <td>
+ <p>The specified dataset (for example, mode set, frequency range set, descriptor set, or topology) does not contain any more elements.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x401E0351<br />STATUS_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_PINNED</p>
+ </td>
+ <td>
+ <p>The specified content transformation is not pinned on the specified VidPN present path.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x401E042F<br />STATUS_GRAPHICS_UNKNOWN_CHILD_STATUS</p>
+ </td>
+ <td>
+ <p>The child device presence was not reliably detected.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x401E0437<br />STATUS_GRAPHICS_LEADLINK_START_DEFERRED</p>
+ </td>
+ <td>
+ <p>Starting the lead adapter in a linked configuration has been temporarily deferred.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x401E0439<br />STATUS_GRAPHICS_POLLING_TOO_FREQUENTLY</p>
+ </td>
+ <td>
+ <p>The display adapter is being polled for children too frequently at the same polling level.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x401E043A<br />STATUS_GRAPHICS_START_DEFERRED</p>
+ </td>
+ <td>
+ <p>Starting the adapter has been temporarily deferred.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x40230001<br />STATUS_NDIS_INDICATION_REQUIRED</p>
+ </td>
+ <td>
+ <p>The request will be completed later by an NDIS status indication.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x80000001<br />STATUS_GUARD_PAGE_VIOLATION</p>
+ </td>
+ <td>
+ <p>{EXCEPTION} Guard Page Exception A page of memory that marks the end of a data structure, such as a stack or an array, has been accessed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x80000002<br />STATUS_DATATYPE_MISALIGNMENT</p>
+ </td>
+ <td>
+ <p>{EXCEPTION} Alignment Fault A data type misalignment was detected in a load or store instruction.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x80000003<br />STATUS_BREAKPOINT</p>
+ </td>
+ <td>
+ <p>{EXCEPTION} Breakpoint A breakpoint has been reached.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x80000004<br />STATUS_SINGLE_STEP</p>
+ </td>
+ <td>
+ <p>{EXCEPTION} Single Step A single step or trace operation has just been completed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x80000005<br />STATUS_BUFFER_OVERFLOW</p>
+ </td>
+ <td>
+ <p>{Buffer Overflow} The data was too large to fit into the specified buffer.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x80000006<br />STATUS_NO_MORE_FILES</p>
+ </td>
+ <td>
+ <p>{No More Files} No more files were found which match the file specification.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x80000007<br />STATUS_WAKE_SYSTEM_DEBUGGER</p>
+ </td>
+ <td>
+ <p>{Kernel Debugger Awakened} The system debugger was awakened by an interrupt.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x8000000A<br />STATUS_HANDLES_CLOSED</p>
+ </td>
+ <td>
+ <p>{Handles Closed} Handles to objects have been automatically closed because of the requested operation.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x8000000B<br />STATUS_NO_INHERITANCE</p>
+ </td>
+ <td>
+ <p>{Non-Inheritable ACL} An access control list (ACL) contains no components that can be inherited.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x8000000C<br />STATUS_GUID_SUBSTITUTION_MADE</p>
+ </td>
+ <td>
+ <p>{GUID Substitution} During the translation of a globally unique identifier (GUID) to a Windows security ID (SID), no administratively defined GUID prefix was found. A substitute prefix was used, which will not compromise system security. However, this may provide a more restrictive access than intended.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x8000000D<br />STATUS_PARTIAL_COPY</p>
+ </td>
+ <td>
+ <p>Because of protection conflicts, not all the requested bytes could be copied.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x8000000E<br />STATUS_DEVICE_PAPER_EMPTY</p>
+ </td>
+ <td>
+ <p>{Out of Paper} The printer is out of paper.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x8000000F<br />STATUS_DEVICE_POWERED_OFF</p>
+ </td>
+ <td>
+ <p>{Device Power Is Off} The printer power has been turned off.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x80000010<br />STATUS_DEVICE_OFF_LINE</p>
+ </td>
+ <td>
+ <p>{Device Offline} The printer has been taken offline.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x80000011<br />STATUS_DEVICE_BUSY</p>
+ </td>
+ <td>
+ <p>{Device Busy} The device is currently busy.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x80000012<br />STATUS_NO_MORE_EAS</p>
+ </td>
+ <td>
+ <p>{No More EAs} No more extended attributes (EAs) were found for the file.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x80000013<br />STATUS_INVALID_EA_NAME</p>
+ </td>
+ <td>
+ <p>{Illegal EA} The specified extended attribute (EA) name contains at least one illegal character.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x80000014<br />STATUS_EA_LIST_INCONSISTENT</p>
+ </td>
+ <td>
+ <p>{Inconsistent EA List} The extended attribute (EA) list is inconsistent.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x80000015<br />STATUS_INVALID_EA_FLAG</p>
+ </td>
+ <td>
+ <p>{Invalid EA Flag} An invalid extended attribute (EA) flag was set.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x80000016<br />STATUS_VERIFY_REQUIRED</p>
+ </td>
+ <td>
+ <p>{Verifying Disk} The media has changed and a verify operation is in progress; therefore, no reads or writes may be performed to the device, except those that are used in the verify operation.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x80000017<br />STATUS_EXTRANEOUS_INFORMATION</p>
+ </td>
+ <td>
+ <p>{Too Much Information} The specified access control list (ACL) contained more information than was expected.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x80000018<br />STATUS_RXACT_COMMIT_NECESSARY</p>
+ </td>
+ <td>
+ <p>This warning level status indicates that the transaction state already exists for the registry subtree, but that a transaction commit was previously aborted. The commit has NOT been completed but has not been rolled back either; therefore, it may still be committed, if needed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x8000001A<br />STATUS_NO_MORE_ENTRIES</p>
+ </td>
+ <td>
+ <p>{No More Entries} No more entries are available from an enumeration operation.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x8000001B<br />STATUS_FILEMARK_DETECTED</p>
+ </td>
+ <td>
+ <p>{Filemark Found} A filemark was detected.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x8000001C<br />STATUS_MEDIA_CHANGED</p>
+ </td>
+ <td>
+ <p>{Media Changed} The media may have changed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x8000001D<br />STATUS_BUS_RESET</p>
+ </td>
+ <td>
+ <p>{I/O Bus Reset} An I/O bus reset was detected.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x8000001E<br />STATUS_END_OF_MEDIA</p>
+ </td>
+ <td>
+ <p>{End of Media} The end of the media was encountered.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x8000001F<br />STATUS_BEGINNING_OF_MEDIA</p>
+ </td>
+ <td>
+ <p>The beginning of a tape or partition has been detected.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x80000020<br />STATUS_MEDIA_CHECK</p>
+ </td>
+ <td>
+ <p>{Media Changed} The media may have changed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x80000021<br />STATUS_SETMARK_DETECTED</p>
+ </td>
+ <td>
+ <p>A tape access reached a set mark.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x80000022<br />STATUS_NO_DATA_DETECTED</p>
+ </td>
+ <td>
+ <p>During a tape access, the end of the data written is reached.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x80000023<br />STATUS_REDIRECTOR_HAS_OPEN_HANDLES</p>
+ </td>
+ <td>
+ <p>The redirector is in use and cannot be unloaded.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x80000024<br />STATUS_SERVER_HAS_OPEN_HANDLES</p>
+ </td>
+ <td>
+ <p>The server is in use and cannot be unloaded.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x80000025<br />STATUS_ALREADY_DISCONNECTED</p>
+ </td>
+ <td>
+ <p>The specified connection has already been disconnected.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x80000026<br />STATUS_LONGJUMP</p>
+ </td>
+ <td>
+ <p>A long jump has been executed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x80000027<br />STATUS_CLEANER_CARTRIDGE_INSTALLED</p>
+ </td>
+ <td>
+ <p>A cleaner cartridge is present in the tape library.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x80000028<br />STATUS_PLUGPLAY_QUERY_VETOED</p>
+ </td>
+ <td>
+ <p>The Plug and Play query operation was not successful.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x80000029<br />STATUS_UNWIND_CONSOLIDATE</p>
+ </td>
+ <td>
+ <p>A frame consolidation has been executed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x8000002A<br />STATUS_REGISTRY_HIVE_RECOVERED</p>
+ </td>
+ <td>
+ <p>{Registry Hive Recovered} The registry hive (file): %hs was corrupted and it has been recovered. Some data might have been lost.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x8000002B<br />STATUS_DLL_MIGHT_BE_INSECURE</p>
+ </td>
+ <td>
+ <p>The application is attempting to run executable code from the module %hs. This may be insecure. An alternative, %hs, is available. Should the application use the secure module %hs?</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x8000002C<br />STATUS_DLL_MIGHT_BE_INCOMPATIBLE</p>
+ </td>
+ <td>
+ <p>The application is loading executable code from the module %hs. This is secure but may be incompatible with previous releases of the operating system. An alternative, %hs, is available. Should the application use the secure module %hs?</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x8000002D<br />STATUS_STOPPED_ON_SYMLINK</p>
+ </td>
+ <td>
+ <p>The create operation stopped after reaching a symbolic link.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x80000288<br />STATUS_DEVICE_REQUIRES_CLEANING</p>
+ </td>
+ <td>
+ <p>The device has indicated that cleaning is necessary.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x80000289<br />STATUS_DEVICE_DOOR_OPEN</p>
+ </td>
+ <td>
+ <p>The device has indicated that its door is open. Further operations require it closed and secured.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x80000803<br />STATUS_DATA_LOST_REPAIR</p>
+ </td>
+ <td>
+ <p>
+ Windows discovered a corruption in the file %hs. This file has now been repaired. Check if any data in the file was lost because of the corruption.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x80010001<br />DBG_EXCEPTION_NOT_HANDLED</p>
+ </td>
+ <td>
+ <p>Debugger did not handle the exception.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x80130001<br />STATUS_CLUSTER_NODE_ALREADY_UP</p>
+ </td>
+ <td>
+ <p>The cluster node is already up.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x80130002<br />STATUS_CLUSTER_NODE_ALREADY_DOWN</p>
+ </td>
+ <td>
+ <p>The cluster node is already down.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x80130003<br />STATUS_CLUSTER_NETWORK_ALREADY_ONLINE</p>
+ </td>
+ <td>
+ <p>The cluster network is already online.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x80130004<br />STATUS_CLUSTER_NETWORK_ALREADY_OFFLINE</p>
+ </td>
+ <td>
+ <p>The cluster network is already offline.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x80130005<br />STATUS_CLUSTER_NODE_ALREADY_MEMBER</p>
+ </td>
+ <td>
+ <p>The cluster node is already a member of the cluster.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x80190009<br />STATUS_COULD_NOT_RESIZE_LOG</p>
+ </td>
+ <td>
+ <p>The log could not be set to the requested size.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x80190029<br />STATUS_NO_TXF_METADATA</p>
+ </td>
+ <td>
+ <p>There is no transaction metadata on the file.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x80190031<br />STATUS_CANT_RECOVER_WITH_HANDLE_OPEN</p>
+ </td>
+ <td>
+ <p>The file cannot be recovered because there is a handle still open on it.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x80190041<br />STATUS_TXF_METADATA_ALREADY_PRESENT</p>
+ </td>
+ <td>
+ <p>Transaction metadata is already present on this file and cannot be superseded.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x80190042<br />STATUS_TRANSACTION_SCOPE_CALLBACKS_NOT_SET</p>
+ </td>
+ <td>
+ <p>A transaction scope could not be entered because the scope handler has not been initialized.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x801B00EB<br />STATUS_VIDEO_HUNG_DISPLAY_DRIVER_THREAD_RECOVERED</p>
+ </td>
+ <td>
+ <p>{Display Driver Stopped Responding and recovered} The %hs display driver has stopped working normally. The recovery had been performed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x801C0001<br />STATUS_FLT_BUFFER_TOO_SMALL</p>
+ </td>
+ <td>
+ <p>{Buffer too small} The buffer is too small to contain the entry. No information has been written to the buffer.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x80210001<br />STATUS_FVE_PARTIAL_METADATA</p>
+ </td>
+ <td>
+ <p>Volume metadata read or write is incomplete.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0x80210002<br />STATUS_FVE_TRANSIENT_STATE</p>
+ </td>
+ <td>
+ <p>BitLocker encryption keys were ignored because the volume was in a transient state.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000001<br />STATUS_UNSUCCESSFUL</p>
+ </td>
+ <td>
+ <p>{Operation Failed} The requested operation was unsuccessful.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000002<br />STATUS_NOT_IMPLEMENTED</p>
+ </td>
+ <td>
+ <p>{Not Implemented} The requested operation is not implemented.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000003<br />STATUS_INVALID_INFO_CLASS</p>
+ </td>
+ <td>
+ <p>{Invalid Parameter} The specified information class is not a valid information class for the specified object.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000004<br />STATUS_INFO_LENGTH_MISMATCH</p>
+ </td>
+ <td>
+ <p>The specified information record length does not match the length that is required for the specified information class.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000005<br />STATUS_ACCESS_VIOLATION</p>
+ </td>
+ <td>
+ <p>The instruction at 0x%08lx referenced memory at 0x%08lx. The memory could not be %s.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000006<br />STATUS_IN_PAGE_ERROR</p>
+ </td>
+ <td>
+ <p>The instruction at 0x%08lx referenced memory at 0x%08lx. The required data was not placed into memory because of an I/O error status of 0x%08lx.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000007<br />STATUS_PAGEFILE_QUOTA</p>
+ </td>
+ <td>
+ <p>The page file quota for the process has been exhausted.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000008<br />STATUS_INVALID_HANDLE</p>
+ </td>
+ <td>
+ <p>An invalid HANDLE was specified.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000009<br />STATUS_BAD_INITIAL_STACK</p>
+ </td>
+ <td>
+ <p>An invalid initial stack was specified in a call to NtCreateThread.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000000A<br />STATUS_BAD_INITIAL_PC</p>
+ </td>
+ <td>
+ <p>An invalid initial start address was specified in a call to NtCreateThread.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000000B<br />STATUS_INVALID_CID</p>
+ </td>
+ <td>
+ <p>An invalid client ID was specified.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000000C<br />STATUS_TIMER_NOT_CANCELED</p>
+ </td>
+ <td>
+ <p>An attempt was made to cancel or set a timer that has an associated APC and the specified thread is not the thread that originally set the timer with an associated APC routine.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000000D<br />STATUS_INVALID_PARAMETER</p>
+ </td>
+ <td>
+ <p>An invalid parameter was passed to a service or function.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000000E<br />STATUS_NO_SUCH_DEVICE</p>
+ </td>
+ <td>
+ <p>A device that does not exist was specified.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000000F<br />STATUS_NO_SUCH_FILE</p>
+ </td>
+ <td>
+ <p>{File Not Found} The file %hs does not exist.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000010<br />STATUS_INVALID_DEVICE_REQUEST</p>
+ </td>
+ <td>
+ <p>The specified request is not a valid operation for the target device.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000011<br />STATUS_END_OF_FILE</p>
+ </td>
+ <td>
+ <p>The end-of-file marker has been reached. There is no valid data in the file beyond this marker.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000012<br />STATUS_WRONG_VOLUME</p>
+ </td>
+ <td>
+ <p>{Wrong Volume} The wrong volume is in the drive. Insert volume %hs into drive %hs.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000013<br />STATUS_NO_MEDIA_IN_DEVICE</p>
+ </td>
+ <td>
+ <p>{No Disk} There is no disk in the drive. Insert a disk into drive %hs.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000014<br />STATUS_UNRECOGNIZED_MEDIA</p>
+ </td>
+ <td>
+ <p>{Unknown Disk Format} The disk in drive %hs is not formatted properly. Check the disk, and reformat it, if needed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000015<br />STATUS_NONEXISTENT_SECTOR</p>
+ </td>
+ <td>
+ <p>{Sector Not Found} The specified sector does not exist.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000016<br />STATUS_MORE_PROCESSING_REQUIRED</p>
+ </td>
+ <td>
+ <p>{Still Busy} The specified I/O request packet (IRP) cannot be disposed of because the I/O operation is not complete.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000017<br />STATUS_NO_MEMORY</p>
+ </td>
+ <td>
+ <p>{Not Enough Quota} Not enough virtual memory or paging file quota is available to complete the specified operation.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000018<br />STATUS_CONFLICTING_ADDRESSES</p>
+ </td>
+ <td>
+ <p>{Conflicting Address Range} The specified address range conflicts with the address space.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000019<br />STATUS_NOT_MAPPED_VIEW</p>
+ </td>
+ <td>
+ <p>The address range to unmap is not a mapped view.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000001A<br />STATUS_UNABLE_TO_FREE_VM</p>
+ </td>
+ <td>
+ <p>The virtual memory cannot be freed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000001B<br />STATUS_UNABLE_TO_DELETE_SECTION</p>
+ </td>
+ <td>
+ <p>The specified section cannot be deleted.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000001C<br />STATUS_INVALID_SYSTEM_SERVICE</p>
+ </td>
+ <td>
+ <p>An invalid system service was specified in a system service call.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000001D<br />STATUS_ILLEGAL_INSTRUCTION</p>
+ </td>
+ <td>
+ <p>{EXCEPTION} Illegal Instruction An attempt was made to execute an illegal instruction.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000001E<br />STATUS_INVALID_LOCK_SEQUENCE</p>
+ </td>
+ <td>
+ <p>{Invalid Lock Sequence} An attempt was made to execute an invalid lock sequence.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000001F<br />STATUS_INVALID_VIEW_SIZE</p>
+ </td>
+ <td>
+ <p>{Invalid Mapping} An attempt was made to create a view for a section that is bigger than the section.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000020<br />STATUS_INVALID_FILE_FOR_SECTION</p>
+ </td>
+ <td>
+ <p>{Bad File} The attributes of the specified mapping file for a section of memory cannot be read.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000021<br />STATUS_ALREADY_COMMITTED</p>
+ </td>
+ <td>
+ <p>{Already Committed} The specified address range is already committed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000022<br />STATUS_ACCESS_DENIED</p>
+ </td>
+ <td>
+ <p>{Access Denied} A process has requested access to an object but has not been granted those access rights.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000023<br />STATUS_BUFFER_TOO_SMALL</p>
+ </td>
+ <td>
+ <p>{Buffer Too Small} The buffer is too small to contain the entry. No information has been written to the buffer.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000024<br />STATUS_OBJECT_TYPE_MISMATCH</p>
+ </td>
+ <td>
+ <p>{Wrong Type} There is a mismatch between the type of object that is required by the requested operation and the type of object that is specified in the request.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000025<br />STATUS_NONCONTINUABLE_EXCEPTION</p>
+ </td>
+ <td>
+ <p>{EXCEPTION} Cannot Continue Windows cannot continue from this exception.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000026<br />STATUS_INVALID_DISPOSITION</p>
+ </td>
+ <td>
+ <p>An invalid exception disposition was returned by an exception handler.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000027<br />STATUS_UNWIND</p>
+ </td>
+ <td>
+ <p>Unwind exception code.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000028<br />STATUS_BAD_STACK</p>
+ </td>
+ <td>
+ <p>An invalid or unaligned stack was encountered during an unwind operation.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000029<br />STATUS_INVALID_UNWIND_TARGET</p>
+ </td>
+ <td>
+ <p>An invalid unwind target was encountered during an unwind operation.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000002A<br />STATUS_NOT_LOCKED</p>
+ </td>
+ <td>
+ <p>An attempt was made to unlock a page of memory that was not locked.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000002B<br />STATUS_PARITY_ERROR</p>
+ </td>
+ <td>
+ <p>A device parity error on an I/O operation.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000002C<br />STATUS_UNABLE_TO_DECOMMIT_VM</p>
+ </td>
+ <td>
+ <p>An attempt was made to decommit uncommitted virtual memory.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000002D<br />STATUS_NOT_COMMITTED</p>
+ </td>
+ <td>
+ <p>An attempt was made to change the attributes on memory that has not been committed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000002E<br />STATUS_INVALID_PORT_ATTRIBUTES</p>
+ </td>
+ <td>
+ <p>Invalid object attributes specified to NtCreatePort or invalid port attributes specified to NtConnectPort.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000002F<br />STATUS_PORT_MESSAGE_TOO_LONG</p>
+ </td>
+ <td>
+ <p>The length of the message that was passed to NtRequestPort or NtRequestWaitReplyPort is longer than the maximum message that is allowed by the port.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000030<br />STATUS_INVALID_PARAMETER_MIX</p>
+ </td>
+ <td>
+ <p>An invalid combination of parameters was specified.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000031<br />STATUS_INVALID_QUOTA_LOWER</p>
+ </td>
+ <td>
+ <p>An attempt was made to lower a quota limit below the current usage.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000032<br />STATUS_DISK_CORRUPT_ERROR</p>
+ </td>
+ <td>
+ <p>{Corrupt Disk} The file system structure on the disk is corrupt and unusable. Run the Chkdsk utility on the volume %hs.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000033<br />STATUS_OBJECT_NAME_INVALID</p>
+ </td>
+ <td>
+ <p>The object name is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000034<br />STATUS_OBJECT_NAME_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>The object name is not found.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000035<br />STATUS_OBJECT_NAME_COLLISION</p>
+ </td>
+ <td>
+ <p>The object name already exists.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000037<br />STATUS_PORT_DISCONNECTED</p>
+ </td>
+ <td>
+ <p>An attempt was made to send a message to a disconnected communication port.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000038<br />STATUS_DEVICE_ALREADY_ATTACHED</p>
+ </td>
+ <td>
+ <p>An attempt was made to attach to a device that was already attached to another device.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000039<br />STATUS_OBJECT_PATH_INVALID</p>
+ </td>
+ <td>
+ <p>The object path component was not a directory object.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000003A<br />STATUS_OBJECT_PATH_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>{Path Not Found} The path %hs does not exist.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000003B<br />STATUS_OBJECT_PATH_SYNTAX_BAD</p>
+ </td>
+ <td>
+ <p>The object path component was not a directory object.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000003C<br />STATUS_DATA_OVERRUN</p>
+ </td>
+ <td>
+ <p>{Data Overrun} A data overrun error occurred.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000003D<br />STATUS_DATA_LATE_ERROR</p>
+ </td>
+ <td>
+ <p>{Data Late} A data late error occurred.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000003E<br />STATUS_DATA_ERROR</p>
+ </td>
+ <td>
+ <p>{Data Error} An error occurred in reading or writing data.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000003F<br />STATUS_CRC_ERROR</p>
+ </td>
+ <td>
+ <p>{Bad CRC} A cyclic redundancy check (CRC) checksum error occurred.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000040<br />STATUS_SECTION_TOO_BIG</p>
+ </td>
+ <td>
+ <p>{Section Too Large} The specified section is too big to map the file.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000041<br />STATUS_PORT_CONNECTION_REFUSED</p>
+ </td>
+ <td>
+ <p>The NtConnectPort request is refused.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000042<br />STATUS_INVALID_PORT_HANDLE</p>
+ </td>
+ <td>
+ <p>The type of port handle is invalid for the operation that is requested.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000043<br />STATUS_SHARING_VIOLATION</p>
+ </td>
+ <td>
+ <p>A file cannot be opened because the share access flags are incompatible.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000044<br />STATUS_QUOTA_EXCEEDED</p>
+ </td>
+ <td>
+ <p>Insufficient quota exists to complete the operation.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000045<br />STATUS_INVALID_PAGE_PROTECTION</p>
+ </td>
+ <td>
+ <p>The specified page protection was not valid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000046<br />STATUS_MUTANT_NOT_OWNED</p>
+ </td>
+ <td>
+ <p>An attempt to release a mutant object was made by a thread that was not the owner of the mutant object.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000047<br />STATUS_SEMAPHORE_LIMIT_EXCEEDED</p>
+ </td>
+ <td>
+ <p>An attempt was made to release a semaphore such that its maximum count would have been exceeded.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000048<br />STATUS_PORT_ALREADY_SET</p>
+ </td>
+ <td>
+ <p>An attempt was made to set the DebugPort or ExceptionPort of a process, but a port already exists in the process, or an attempt was made to set the CompletionPort of a file but a port was already set in the file, or an attempt was made to set the associated completion port of an ALPC port but it is already set.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000049<br />STATUS_SECTION_NOT_IMAGE</p>
+ </td>
+ <td>
+ <p>An attempt was made to query image information on a section that does not map an image.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000004A<br />STATUS_SUSPEND_COUNT_EXCEEDED</p>
+ </td>
+ <td>
+ <p>An attempt was made to suspend a thread whose suspend count was at its maximum.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000004B<br />STATUS_THREAD_IS_TERMINATING</p>
+ </td>
+ <td>
+ <p>An attempt was made to suspend a thread that has begun termination.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000004C<br />STATUS_BAD_WORKING_SET_LIMIT</p>
+ </td>
+ <td>
+ <p>An attempt was made to set the working set limit to an invalid value (for example, the minimum greater than maximum).</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000004D<br />STATUS_INCOMPATIBLE_FILE_MAP</p>
+ </td>
+ <td>
+ <p>A section was created to map a file that is not compatible with an already existing section that maps the same file.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000004E<br />STATUS_SECTION_PROTECTION</p>
+ </td>
+ <td>
+ <p>A view to a section specifies a protection that is incompatible with the protection of the initial view.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000004F<br />STATUS_EAS_NOT_SUPPORTED</p>
+ </td>
+ <td>
+ <p>An operation involving EAs failed because the file system does not support EAs.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000050<br />STATUS_EA_TOO_LARGE</p>
+ </td>
+ <td>
+ <p>An EA operation failed because the EA set is too large.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000051<br />STATUS_NONEXISTENT_EA_ENTRY</p>
+ </td>
+ <td>
+ <p>An EA operation failed because the name or EA index is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000052<br />STATUS_NO_EAS_ON_FILE</p>
+ </td>
+ <td>
+ <p>The file for which EAs were requested has no EAs.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000053<br />STATUS_EA_CORRUPT_ERROR</p>
+ </td>
+ <td>
+ <p>The EA is corrupt and cannot be read.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000054<br />STATUS_FILE_LOCK_CONFLICT</p>
+ </td>
+ <td>
+ <p>A requested read/write cannot be granted due to a conflicting file lock.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000055<br />STATUS_LOCK_NOT_GRANTED</p>
+ </td>
+ <td>
+ <p>A requested file lock cannot be granted due to other existing locks.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000056<br />STATUS_DELETE_PENDING</p>
+ </td>
+ <td>
+ <p>A non-close operation has been requested of a file object that has a delete pending.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000057<br />STATUS_CTL_FILE_NOT_SUPPORTED</p>
+ </td>
+ <td>
+ <p>An attempt was made to set the control attribute on a file. This attribute is not supported in the destination file system.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000058<br />STATUS_UNKNOWN_REVISION</p>
+ </td>
+ <td>
+ <p>Indicates a revision number that was encountered or specified is not one that is known by the service. It may be a more recent revision than the service is aware of.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000059<br />STATUS_REVISION_MISMATCH</p>
+ </td>
+ <td>
+ <p>Indicates that two revision levels are incompatible.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000005A<br />STATUS_INVALID_OWNER</p>
+ </td>
+ <td>
+ <p>Indicates a particular security ID may not be assigned as the owner of an object.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000005B<br />STATUS_INVALID_PRIMARY_GROUP</p>
+ </td>
+ <td>
+ <p>Indicates a particular security ID may not be assigned as the primary group of an object.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000005C<br />STATUS_NO_IMPERSONATION_TOKEN</p>
+ </td>
+ <td>
+ <p>An attempt has been made to operate on an impersonation token by a thread that is not currently impersonating a client.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000005D<br />STATUS_CANT_DISABLE_MANDATORY</p>
+ </td>
+ <td>
+ <p>A mandatory group may not be disabled.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000005E<br />STATUS_NO_LOGON_SERVERS</p>
+ </td>
+ <td>
+ <p>No logon servers are currently available to service the logon request.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000005F<br />STATUS_NO_SUCH_LOGON_SESSION</p>
+ </td>
+ <td>
+ <p>A specified logon session does not exist. It may already have been terminated.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000060<br />STATUS_NO_SUCH_PRIVILEGE</p>
+ </td>
+ <td>
+ <p>A specified privilege does not exist.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000061<br />STATUS_PRIVILEGE_NOT_HELD</p>
+ </td>
+ <td>
+ <p>A required privilege is not held by the client.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000062<br />STATUS_INVALID_ACCOUNT_NAME</p>
+ </td>
+ <td>
+ <p>The name provided is not a properly formed account name.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000063<br />STATUS_USER_EXISTS</p>
+ </td>
+ <td>
+ <p>The specified account already exists.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000064<br />STATUS_NO_SUCH_USER</p>
+ </td>
+ <td>
+ <p>The specified account does not exist.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000065<br />STATUS_GROUP_EXISTS</p>
+ </td>
+ <td>
+ <p>The specified group already exists.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000066<br />STATUS_NO_SUCH_GROUP</p>
+ </td>
+ <td>
+ <p>The specified group does not exist.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000067<br />STATUS_MEMBER_IN_GROUP</p>
+ </td>
+ <td>
+ <p>The specified user account is already in the specified group account. Also used to indicate a group cannot be deleted because it contains a member.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000068<br />STATUS_MEMBER_NOT_IN_GROUP</p>
+ </td>
+ <td>
+ <p>The specified user account is not a member of the specified group account.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000069<br />STATUS_LAST_ADMIN</p>
+ </td>
+ <td>
+ <p>Indicates the requested operation would disable or delete the last remaining administration account. This is not allowed to prevent creating a situation in which the system cannot be administrated.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000006A<br />STATUS_WRONG_PASSWORD</p>
+ </td>
+ <td>
+ <p>When trying to update a password, this return status indicates that the value provided as the current password is not correct.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000006B<br />STATUS_ILL_FORMED_PASSWORD</p>
+ </td>
+ <td>
+ <p>When trying to update a password, this return status indicates that the value provided for the new password contains values that are not allowed in passwords.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000006C<br />STATUS_PASSWORD_RESTRICTION</p>
+ </td>
+ <td>
+ <p>When trying to update a password, this status indicates that some password update rule has been violated. For example, the password may not meet length criteria.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000006D<br />STATUS_LOGON_FAILURE</p>
+ </td>
+ <td>
+ <p>The attempted logon is invalid. This is either due to a bad username or authentication information.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000006E<br />STATUS_ACCOUNT_RESTRICTION</p>
+ </td>
+ <td>
+ <p>Indicates a referenced user name and authentication information are valid, but some user account restriction has prevented successful authentication (such as time-of-day restrictions).</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000006F<br />STATUS_INVALID_LOGON_HOURS</p>
+ </td>
+ <td>
+ <p>The user account has time restrictions and may not be logged onto at this time.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000070<br />STATUS_INVALID_WORKSTATION</p>
+ </td>
+ <td>
+ <p>The user account is restricted so that it may not be used to log on from the source workstation.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000071<br />STATUS_PASSWORD_EXPIRED</p>
+ </td>
+ <td>
+ <p>The user account password has expired.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000072<br />STATUS_ACCOUNT_DISABLED</p>
+ </td>
+ <td>
+ <p>The referenced account is currently disabled and may not be logged on to.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000073<br />STATUS_NONE_MAPPED</p>
+ </td>
+ <td>
+ <p>None of the information to be translated has been translated.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000074<br />STATUS_TOO_MANY_LUIDS_REQUESTED</p>
+ </td>
+ <td>
+ <p>The number of LUIDs requested may not be allocated with a single allocation.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000075<br />STATUS_LUIDS_EXHAUSTED</p>
+ </td>
+ <td>
+ <p>Indicates there are no more LUIDs to allocate.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000076<br />STATUS_INVALID_SUB_AUTHORITY</p>
+ </td>
+ <td>
+ <p>Indicates the sub-authority value is invalid for the particular use.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000077<br />STATUS_INVALID_ACL</p>
+ </td>
+ <td>
+ <p>Indicates the ACL structure is not valid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000078<br />STATUS_INVALID_SID</p>
+ </td>
+ <td>
+ <p>Indicates the SID structure is not valid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000079<br />STATUS_INVALID_SECURITY_DESCR</p>
+ </td>
+ <td>
+ <p>Indicates the SECURITY_DESCRIPTOR structure is not valid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000007A<br />STATUS_PROCEDURE_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>Indicates the specified procedure address cannot be found in the DLL.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000007B<br />STATUS_INVALID_IMAGE_FORMAT</p>
+ </td>
+ <td>
+ <p>{Bad Image} %hs is either not designed to run on Windows or it contains an error. Try installing the program again using the original installation media or contact your system administrator or the software vendor for support.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000007C<br />STATUS_NO_TOKEN</p>
+ </td>
+ <td>
+ <p>An attempt was made to reference a token that does not exist. This is typically done by referencing the token that is associated with a thread when the thread is not impersonating a client.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000007D<br />STATUS_BAD_INHERITANCE_ACL</p>
+ </td>
+ <td>
+ <p>Indicates that an attempt to build either an inherited ACL or ACE was not successful. This can be caused by a number of things. One of the more probable causes is the replacement of a CreatorId with a SID that did not fit into the ACE or ACL.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000007E<br />STATUS_RANGE_NOT_LOCKED</p>
+ </td>
+ <td>
+ <p>The range specified in NtUnlockFile was not locked.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000007F<br />STATUS_DISK_FULL</p>
+ </td>
+ <td>
+ <p>An operation failed because the disk was full.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000080<br />STATUS_SERVER_DISABLED</p>
+ </td>
+ <td>
+ <p>The GUID allocation server is disabled at the moment.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000081<br />STATUS_SERVER_NOT_DISABLED</p>
+ </td>
+ <td>
+ <p>The GUID allocation server is enabled at the moment.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000082<br />STATUS_TOO_MANY_GUIDS_REQUESTED</p>
+ </td>
+ <td>
+ <p>Too many GUIDs were requested from the allocation server at once.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000083<br />STATUS_GUIDS_EXHAUSTED</p>
+ </td>
+ <td>
+ <p>The GUIDs could not be allocated because the Authority Agent was exhausted.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000084<br />STATUS_INVALID_ID_AUTHORITY</p>
+ </td>
+ <td>
+ <p>The value provided was an invalid value for an identifier authority.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000085<br />STATUS_AGENTS_EXHAUSTED</p>
+ </td>
+ <td>
+ <p>No more authority agent values are available for the particular identifier authority value.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000086<br />STATUS_INVALID_VOLUME_LABEL</p>
+ </td>
+ <td>
+ <p>An invalid volume label has been specified.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000087<br />STATUS_SECTION_NOT_EXTENDED</p>
+ </td>
+ <td>
+ <p>A mapped section could not be extended.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000088<br />STATUS_NOT_MAPPED_DATA</p>
+ </td>
+ <td>
+ <p>Specified section to flush does not map a data file.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000089<br />STATUS_RESOURCE_DATA_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>Indicates the specified image file did not contain a resource section.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000008A<br />STATUS_RESOURCE_TYPE_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>Indicates the specified resource type cannot be found in the image file.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000008B<br />STATUS_RESOURCE_NAME_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>Indicates the specified resource name cannot be found in the image file.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000008C<br />STATUS_ARRAY_BOUNDS_EXCEEDED</p>
+ </td>
+ <td>
+ <p>{EXCEPTION} Array bounds exceeded.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000008D<br />STATUS_FLOAT_DENORMAL_OPERAND</p>
+ </td>
+ <td>
+ <p>{EXCEPTION} Floating-point denormal operand.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000008E<br />STATUS_FLOAT_DIVIDE_BY_ZERO</p>
+ </td>
+ <td>
+ <p>{EXCEPTION} Floating-point division by zero.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000008F<br />STATUS_FLOAT_INEXACT_RESULT</p>
+ </td>
+ <td>
+ <p>{EXCEPTION} Floating-point inexact result.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000090<br />STATUS_FLOAT_INVALID_OPERATION</p>
+ </td>
+ <td>
+ <p>{EXCEPTION} Floating-point invalid operation.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000091<br />STATUS_FLOAT_OVERFLOW</p>
+ </td>
+ <td>
+ <p>{EXCEPTION} Floating-point overflow.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000092<br />STATUS_FLOAT_STACK_CHECK</p>
+ </td>
+ <td>
+ <p>{EXCEPTION} Floating-point stack check.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000093<br />STATUS_FLOAT_UNDERFLOW</p>
+ </td>
+ <td>
+ <p>{EXCEPTION} Floating-point underflow.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000094<br />STATUS_INTEGER_DIVIDE_BY_ZERO</p>
+ </td>
+ <td>
+ <p>{EXCEPTION} Integer division by zero.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000095<br />STATUS_INTEGER_OVERFLOW</p>
+ </td>
+ <td>
+ <p>{EXCEPTION} Integer overflow.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000096<br />STATUS_PRIVILEGED_INSTRUCTION</p>
+ </td>
+ <td>
+ <p>{EXCEPTION} Privileged instruction.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000097<br />STATUS_TOO_MANY_PAGING_FILES</p>
+ </td>
+ <td>
+ <p>An attempt was made to install more paging files than the system supports.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000098<br />STATUS_FILE_INVALID</p>
+ </td>
+ <td>
+ <p>The volume for a file has been externally altered such that the opened file is no longer valid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000099<br />STATUS_ALLOTTED_SPACE_EXCEEDED</p>
+ </td>
+ <td>
+ <p>When a block of memory is allotted for future updates, such as the memory allocated to hold discretionary access control and primary group information, successive updates may exceed the amount of memory originally allotted. Because a quota may already have been charged to several processes that have handles to the object, it is not reasonable to alter the size of the allocated memory. Instead, a request that requires more memory than has been allotted must fail and the STATUS_ALLOTTED_SPACE_EXCEEDED error returned.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000009A<br />STATUS_INSUFFICIENT_RESOURCES</p>
+ </td>
+ <td>
+ <p>Insufficient system resources exist to complete the API.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000009B<br />STATUS_DFS_EXIT_PATH_FOUND</p>
+ </td>
+ <td>
+ <p>An attempt has been made to open a DFS exit path control file.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000009C<br />STATUS_DEVICE_DATA_ERROR</p>
+ </td>
+ <td>
+ <p>There are bad blocks (sectors) on the hard disk.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000009D<br />STATUS_DEVICE_NOT_CONNECTED</p>
+ </td>
+ <td>
+ <p>There is bad cabling, non-termination, or the controller is not able to obtain access to the hard disk.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000009F<br />STATUS_FREE_VM_NOT_AT_BASE</p>
+ </td>
+ <td>
+ <p>Virtual memory cannot be freed because the base address is not the base of the region and a region size of zero was specified.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000A0<br />STATUS_MEMORY_NOT_ALLOCATED</p>
+ </td>
+ <td>
+ <p>An attempt was made to free virtual memory that is not allocated.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000A1<br />STATUS_WORKING_SET_QUOTA</p>
+ </td>
+ <td>
+ <p>The working set is not big enough to allow the requested pages to be locked.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000A2<br />STATUS_MEDIA_WRITE_PROTECTED</p>
+ </td>
+ <td>
+ <p>{Write Protect Error} The disk cannot be written to because it is write-protected. Remove the write protection from the volume %hs in drive %hs.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000A3<br />STATUS_DEVICE_NOT_READY</p>
+ </td>
+ <td>
+ <p>{Drive Not Ready} The drive is not ready for use; its door may be open. Check drive %hs and make sure that a disk is inserted and that the drive door is closed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000A4<br />STATUS_INVALID_GROUP_ATTRIBUTES</p>
+ </td>
+ <td>
+ <p>The specified attributes are invalid or are incompatible with the attributes for the group as a whole.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000A5<br />STATUS_BAD_IMPERSONATION_LEVEL</p>
+ </td>
+ <td>
+ <p>A specified impersonation level is invalid. Also used to indicate that a required impersonation level was not provided.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000A6<br />STATUS_CANT_OPEN_ANONYMOUS</p>
+ </td>
+ <td>
+ <p>An attempt was made to open an anonymous-level token. Anonymous tokens may not be opened.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000A7<br />STATUS_BAD_VALIDATION_CLASS</p>
+ </td>
+ <td>
+ <p>The validation information class requested was invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000A8<br />STATUS_BAD_TOKEN_TYPE</p>
+ </td>
+ <td>
+ <p>The type of a token object is inappropriate for its attempted use.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000A9<br />STATUS_BAD_MASTER_BOOT_RECORD</p>
+ </td>
+ <td>
+ <p>The type of a token object is inappropriate for its attempted use.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000AA<br />STATUS_INSTRUCTION_MISALIGNMENT</p>
+ </td>
+ <td>
+ <p>An attempt was made to execute an instruction at an unaligned address and the host system does not support unaligned instruction references.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000AB<br />STATUS_INSTANCE_NOT_AVAILABLE</p>
+ </td>
+ <td>
+ <p>The maximum named pipe instance count has been reached.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000AC<br />STATUS_PIPE_NOT_AVAILABLE</p>
+ </td>
+ <td>
+ <p>An instance of a named pipe cannot be found in the listening state.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000AD<br />STATUS_INVALID_PIPE_STATE</p>
+ </td>
+ <td>
+ <p>The named pipe is not in the connected or closing state.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000AE<br />STATUS_PIPE_BUSY</p>
+ </td>
+ <td>
+ <p>The specified pipe is set to complete operations and there are current I/O operations queued so that it cannot be changed to queue operations.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000AF<br />STATUS_ILLEGAL_FUNCTION</p>
+ </td>
+ <td>
+ <p>The specified handle is not open to the server end of the named pipe.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000B0<br />STATUS_PIPE_DISCONNECTED</p>
+ </td>
+ <td>
+ <p>The specified named pipe is in the disconnected state.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000B1<br />STATUS_PIPE_CLOSING</p>
+ </td>
+ <td>
+ <p>The specified named pipe is in the closing state.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000B2<br />STATUS_PIPE_CONNECTED</p>
+ </td>
+ <td>
+ <p>The specified named pipe is in the connected state.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000B3<br />STATUS_PIPE_LISTENING</p>
+ </td>
+ <td>
+ <p>The specified named pipe is in the listening state.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000B4<br />STATUS_INVALID_READ_MODE</p>
+ </td>
+ <td>
+ <p>The specified named pipe is not in message mode.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000B5<br />STATUS_IO_TIMEOUT</p>
+ </td>
+ <td>
+ <p>{Device Timeout} The specified I/O operation on %hs was not completed before the time-out period expired.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000B6<br />STATUS_FILE_FORCED_CLOSED</p>
+ </td>
+ <td>
+ <p>The specified file has been closed by another process.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000B7<br />STATUS_PROFILING_NOT_STARTED</p>
+ </td>
+ <td>
+ <p>Profiling is not started.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000B8<br />STATUS_PROFILING_NOT_STOPPED</p>
+ </td>
+ <td>
+ <p>Profiling is not stopped.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000B9<br />STATUS_COULD_NOT_INTERPRET</p>
+ </td>
+ <td>
+ <p>The passed ACL did not contain the minimum required information.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000BA<br />STATUS_FILE_IS_A_DIRECTORY</p>
+ </td>
+ <td>
+ <p>The file that was specified as a target is a directory, and the caller specified that it could be anything but a directory.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000BB<br />STATUS_NOT_SUPPORTED</p>
+ </td>
+ <td>
+ <p>The request is not supported.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000BC<br />STATUS_REMOTE_NOT_LISTENING</p>
+ </td>
+ <td>
+ <p>This remote computer is not listening.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000BD<br />STATUS_DUPLICATE_NAME</p>
+ </td>
+ <td>
+ <p>A duplicate name exists on the network.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000BE<br />STATUS_BAD_NETWORK_PATH</p>
+ </td>
+ <td>
+ <p>The network path cannot be located.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000BF<br />STATUS_NETWORK_BUSY</p>
+ </td>
+ <td>
+ <p>The network is busy.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000C0<br />STATUS_DEVICE_DOES_NOT_EXIST</p>
+ </td>
+ <td>
+ <p>This device does not exist.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000C1<br />STATUS_TOO_MANY_COMMANDS</p>
+ </td>
+ <td>
+ <p>The network BIOS command limit has been reached.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000C2<br />STATUS_ADAPTER_HARDWARE_ERROR</p>
+ </td>
+ <td>
+ <p>An I/O adapter hardware error has occurred.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000C3<br />STATUS_INVALID_NETWORK_RESPONSE</p>
+ </td>
+ <td>
+ <p>The network responded incorrectly.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000C4<br />STATUS_UNEXPECTED_NETWORK_ERROR</p>
+ </td>
+ <td>
+ <p>An unexpected network error occurred.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000C5<br />STATUS_BAD_REMOTE_ADAPTER</p>
+ </td>
+ <td>
+ <p>The remote adapter is not compatible.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000C6<br />STATUS_PRINT_QUEUE_FULL</p>
+ </td>
+ <td>
+ <p>The print queue is full.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000C7<br />STATUS_NO_SPOOL_SPACE</p>
+ </td>
+ <td>
+ <p>Space to store the file that is waiting to be printed is not available on the server.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000C8<br />STATUS_PRINT_CANCELLED</p>
+ </td>
+ <td>
+ <p>The requested print file has been canceled.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000C9<br />STATUS_NETWORK_NAME_DELETED</p>
+ </td>
+ <td>
+ <p>The network name was deleted.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000CA<br />STATUS_NETWORK_ACCESS_DENIED</p>
+ </td>
+ <td>
+ <p>Network access is denied.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000CB<br />STATUS_BAD_DEVICE_TYPE</p>
+ </td>
+ <td>
+ <p>{Incorrect Network Resource Type} The specified device type (LPT, for example) conflicts with the actual device type on the remote resource.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000CC<br />STATUS_BAD_NETWORK_NAME</p>
+ </td>
+ <td>
+ <p>{Network Name Not Found} The specified share name cannot be found on the remote server.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000CD<br />STATUS_TOO_MANY_NAMES</p>
+ </td>
+ <td>
+ <p>The name limit for the network adapter card of the local computer was exceeded.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000CE<br />STATUS_TOO_MANY_SESSIONS</p>
+ </td>
+ <td>
+ <p>The network BIOS session limit was exceeded.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000CF<br />STATUS_SHARING_PAUSED</p>
+ </td>
+ <td>
+ <p>File sharing has been temporarily paused.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000D0<br />STATUS_REQUEST_NOT_ACCEPTED</p>
+ </td>
+ <td>
+ <p>No more connections can be made to this remote computer at this time because the computer has already accepted the maximum number of connections.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000D1<br />STATUS_REDIRECTOR_PAUSED</p>
+ </td>
+ <td>
+ <p>Print or disk redirection is temporarily paused.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000D2<br />STATUS_NET_WRITE_FAULT</p>
+ </td>
+ <td>
+ <p>A network data fault occurred.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000D3<br />STATUS_PROFILING_AT_LIMIT</p>
+ </td>
+ <td>
+ <p>The number of active profiling objects is at the maximum and no more may be started.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000D4<br />STATUS_NOT_SAME_DEVICE</p>
+ </td>
+ <td>
+ <p>{Incorrect Volume} The destination file of a rename request is located on a different device than the source of the rename request.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000D5<br />STATUS_FILE_RENAMED</p>
+ </td>
+ <td>
+ <p>The specified file has been renamed and thus cannot be modified.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000D6<br />STATUS_VIRTUAL_CIRCUIT_CLOSED</p>
+ </td>
+ <td>
+ <p>{Network Request Timeout} The session with a remote server has been disconnected because the time-out interval for a request has expired.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000D7<br />STATUS_NO_SECURITY_ON_OBJECT</p>
+ </td>
+ <td>
+ <p>Indicates an attempt was made to operate on the security of an object that does not have security associated with it.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000D8<br />STATUS_CANT_WAIT</p>
+ </td>
+ <td>
+ <p>Used to indicate that an operation cannot continue without blocking for I/O.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000D9<br />STATUS_PIPE_EMPTY</p>
+ </td>
+ <td>
+ <p>Used to indicate that a read operation was done on an empty pipe.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000DA<br />STATUS_CANT_ACCESS_DOMAIN_INFO</p>
+ </td>
+ <td>
+ <p>Configuration information could not be read from the domain controller, either because the machine is unavailable or access has been denied.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000DB<br />STATUS_CANT_TERMINATE_SELF</p>
+ </td>
+ <td>
+ <p>Indicates that a thread attempted to terminate itself by default (called NtTerminateThread with NULL) and it was the last thread in the current process.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000DC<br />STATUS_INVALID_SERVER_STATE</p>
+ </td>
+ <td>
+ <p>Indicates the Sam Server was in the wrong state to perform the desired operation.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000DD<br />STATUS_INVALID_DOMAIN_STATE</p>
+ </td>
+ <td>
+ <p>Indicates the domain was in the wrong state to perform the desired operation.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000DE<br />STATUS_INVALID_DOMAIN_ROLE</p>
+ </td>
+ <td>
+ <p>This operation is only allowed for the primary domain controller of the domain.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000DF<br />STATUS_NO_SUCH_DOMAIN</p>
+ </td>
+ <td>
+ <p>The specified domain did not exist.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000E0<br />STATUS_DOMAIN_EXISTS</p>
+ </td>
+ <td>
+ <p>The specified domain already exists.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000E1<br />STATUS_DOMAIN_LIMIT_EXCEEDED</p>
+ </td>
+ <td>
+ <p>An attempt was made to exceed the limit on the number of domains per server for this release.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000E2<br />STATUS_OPLOCK_NOT_GRANTED</p>
+ </td>
+ <td>
+ <p>An error status returned when the opportunistic lock (oplock) request is denied.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000E3<br />STATUS_INVALID_OPLOCK_PROTOCOL</p>
+ </td>
+ <td>
+ <p>An error status returned when an invalid opportunistic lock (oplock) acknowledgment is received by a file system.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000E4<br />STATUS_INTERNAL_DB_CORRUPTION</p>
+ </td>
+ <td>
+ <p>This error indicates that the requested operation cannot be completed due to a catastrophic media failure or an on-disk data structure corruption.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000E5<br />STATUS_INTERNAL_ERROR</p>
+ </td>
+ <td>
+ <p>An internal error occurred.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000E6<br />STATUS_GENERIC_NOT_MAPPED</p>
+ </td>
+ <td>
+ <p>Indicates generic access types were contained in an access mask which should already be mapped to non-generic access types.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000E7<br />STATUS_BAD_DESCRIPTOR_FORMAT</p>
+ </td>
+ <td>
+ <p>Indicates a security descriptor is not in the necessary format (absolute or self-relative).</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000E8<br />STATUS_INVALID_USER_BUFFER</p>
+ </td>
+ <td>
+ <p>An access to a user buffer failed at an expected point in time. This code is defined because the caller does not want to accept STATUS_ACCESS_VIOLATION in its filter.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000E9<br />STATUS_UNEXPECTED_IO_ERROR</p>
+ </td>
+ <td>
+ <p>If an I/O error that is not defined in the standard FsRtl filter is returned, it is converted to the following error, which is guaranteed to be in the filter. In this case, information is lost; however, the filter correctly handles the exception.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000EA<br />STATUS_UNEXPECTED_MM_CREATE_ERR</p>
+ </td>
+ <td>
+ <p>If an MM error that is not defined in the standard FsRtl filter is returned, it is converted to one of the following errors, which are guaranteed to be in the filter. In this case, information is lost; however, the filter correctly handles the exception.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000EB<br />STATUS_UNEXPECTED_MM_MAP_ERROR</p>
+ </td>
+ <td>
+ <p>If an MM error that is not defined in the standard FsRtl filter is returned, it is converted to one of the following errors, which are guaranteed to be in the filter. In this case, information is lost; however, the filter correctly handles the exception.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000EC<br />STATUS_UNEXPECTED_MM_EXTEND_ERR</p>
+ </td>
+ <td>
+ <p>If an MM error that is not defined in the standard FsRtl filter is returned, it is converted to one of the following errors, which are guaranteed to be in the filter. In this case, information is lost; however, the filter correctly handles the exception.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000ED<br />STATUS_NOT_LOGON_PROCESS</p>
+ </td>
+ <td>
+ <p>The requested action is restricted for use by logon processes only. The calling process has not registered as a logon process.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000EE<br />STATUS_LOGON_SESSION_EXISTS</p>
+ </td>
+ <td>
+ <p>An attempt has been made to start a new session manager or LSA logon session by using an ID that is already in use.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000EF<br />STATUS_INVALID_PARAMETER_1</p>
+ </td>
+ <td>
+ <p>An invalid parameter was passed to a service or function as the first argument.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000F0<br />STATUS_INVALID_PARAMETER_2</p>
+ </td>
+ <td>
+ <p>An invalid parameter was passed to a service or function as the second argument.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000F1<br />STATUS_INVALID_PARAMETER_3</p>
+ </td>
+ <td>
+ <p>An invalid parameter was passed to a service or function as the third argument.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000F2<br />STATUS_INVALID_PARAMETER_4</p>
+ </td>
+ <td>
+ <p>An invalid parameter was passed to a service or function as the fourth argument.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000F3<br />STATUS_INVALID_PARAMETER_5</p>
+ </td>
+ <td>
+ <p>An invalid parameter was passed to a service or function as the fifth argument.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000F4<br />STATUS_INVALID_PARAMETER_6</p>
+ </td>
+ <td>
+ <p>An invalid parameter was passed to a service or function as the sixth argument.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000F5<br />STATUS_INVALID_PARAMETER_7</p>
+ </td>
+ <td>
+ <p>An invalid parameter was passed to a service or function as the seventh argument.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000F6<br />STATUS_INVALID_PARAMETER_8</p>
+ </td>
+ <td>
+ <p>An invalid parameter was passed to a service or function as the eighth argument.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000F7<br />STATUS_INVALID_PARAMETER_9</p>
+ </td>
+ <td>
+ <p>An invalid parameter was passed to a service or function as the ninth argument.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000F8<br />STATUS_INVALID_PARAMETER_10</p>
+ </td>
+ <td>
+ <p>An invalid parameter was passed to a service or function as the tenth argument.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000F9<br />STATUS_INVALID_PARAMETER_11</p>
+ </td>
+ <td>
+ <p>An invalid parameter was passed to a service or function as the eleventh argument.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000FA<br />STATUS_INVALID_PARAMETER_12</p>
+ </td>
+ <td>
+ <p>An invalid parameter was passed to a service or function as the twelfth argument.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000FB<br />STATUS_REDIRECTOR_NOT_STARTED</p>
+ </td>
+ <td>
+ <p>An attempt was made to access a network file, but the network software was not yet started.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000FC<br />STATUS_REDIRECTOR_STARTED</p>
+ </td>
+ <td>
+ <p>An attempt was made to start the redirector, but the redirector has already been started.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000FD<br />STATUS_STACK_OVERFLOW</p>
+ </td>
+ <td>
+ <p>A new guard page for the stack cannot be created.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000FE<br />STATUS_NO_SUCH_PACKAGE</p>
+ </td>
+ <td>
+ <p>A specified authentication package is unknown.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00000FF<br />STATUS_BAD_FUNCTION_TABLE</p>
+ </td>
+ <td>
+ <p>A malformed function table was encountered during an unwind operation.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000100<br />STATUS_VARIABLE_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>Indicates the specified environment variable name was not found in the specified environment block.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000101<br />STATUS_DIRECTORY_NOT_EMPTY</p>
+ </td>
+ <td>
+ <p>Indicates that the directory trying to be deleted is not empty.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000102<br />STATUS_FILE_CORRUPT_ERROR</p>
+ </td>
+ <td>
+ <p>{Corrupt File} The file or directory %hs is corrupt and unreadable. Run the Chkdsk utility.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000103<br />STATUS_NOT_A_DIRECTORY</p>
+ </td>
+ <td>
+ <p>A requested opened file is not a directory.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000104<br />STATUS_BAD_LOGON_SESSION_STATE</p>
+ </td>
+ <td>
+ <p>The logon session is not in a state that is consistent with the requested operation.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000105<br />STATUS_LOGON_SESSION_COLLISION</p>
+ </td>
+ <td>
+ <p>An internal LSA error has occurred. An authentication package has requested the creation of a logon session but the ID of an already existing logon session has been specified.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000106<br />STATUS_NAME_TOO_LONG</p>
+ </td>
+ <td>
+ <p>A specified name string is too long for its intended use.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000107<br />STATUS_FILES_OPEN</p>
+ </td>
+ <td>
+ <p>The user attempted to force close the files on a redirected drive, but there were opened files on the drive, and the user did not specify a sufficient level of force.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000108<br />STATUS_CONNECTION_IN_USE</p>
+ </td>
+ <td>
+ <p>The user attempted to force close the files on a redirected drive, but there were opened directories on the drive, and the user did not specify a sufficient level of force.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000109<br />STATUS_MESSAGE_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>RtlFindMessage could not locate the requested message ID in the message table resource.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000010A<br />STATUS_PROCESS_IS_TERMINATING</p>
+ </td>
+ <td>
+ <p>An attempt was made to duplicate an object handle into or out of an exiting process.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000010B<br />STATUS_INVALID_LOGON_TYPE</p>
+ </td>
+ <td>
+ <p>Indicates an invalid value has been provided for the LogonType requested.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000010C<br />STATUS_NO_GUID_TRANSLATION</p>
+ </td>
+ <td>
+ <p>Indicates that an attempt was made to assign protection to a file system file or directory and one of the SIDs in the security descriptor could not be translated into a GUID that could be stored by the file system. This causes the protection attempt to fail, which may cause a file creation attempt to fail.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000010D<br />STATUS_CANNOT_IMPERSONATE</p>
+ </td>
+ <td>
+ <p>Indicates that an attempt has been made to impersonate via a named pipe that has not yet been read from.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000010E<br />STATUS_IMAGE_ALREADY_LOADED</p>
+ </td>
+ <td>
+ <p>Indicates that the specified image is already loaded.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000117<br />STATUS_NO_LDT</p>
+ </td>
+ <td>
+ <p>Indicates that an attempt was made to change the size of the LDT for a process that has no LDT.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000118<br />STATUS_INVALID_LDT_SIZE</p>
+ </td>
+ <td>
+ <p>Indicates that an attempt was made to grow an LDT by setting its size, or that the size was not an even number of selectors.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000119<br />STATUS_INVALID_LDT_OFFSET</p>
+ </td>
+ <td>
+ <p>Indicates that the starting value for the LDT information was not an integral multiple of the selector size.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000011A<br />STATUS_INVALID_LDT_DESCRIPTOR</p>
+ </td>
+ <td>
+ <p>Indicates that the user supplied an invalid descriptor when trying to set up LDT descriptors.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000011B<br />STATUS_INVALID_IMAGE_NE_FORMAT</p>
+ </td>
+ <td>
+ <p>The specified image file did not have the correct format. It appears to be NE format.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000011C<br />STATUS_RXACT_INVALID_STATE</p>
+ </td>
+ <td>
+ <p>Indicates that the transaction state of a registry subtree is incompatible with the requested operation. For example, a request has been made to start a new transaction with one already in progress, or a request has been made to apply a transaction when one is not currently in progress.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000011D<br />STATUS_RXACT_COMMIT_FAILURE</p>
+ </td>
+ <td>
+ <p>Indicates an error has occurred during a registry transaction commit. The database has been left in an unknown, but probably inconsistent, state. The state of the registry transaction is left as COMMITTING.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000011E<br />STATUS_MAPPED_FILE_SIZE_ZERO</p>
+ </td>
+ <td>
+ <p>An attempt was made to map a file of size zero with the maximum size specified as zero.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000011F<br />STATUS_TOO_MANY_OPENED_FILES</p>
+ </td>
+ <td>
+ <p>Too many files are opened on a remote server. This error should only be returned by the Windows redirector on a remote drive.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000120<br />STATUS_CANCELLED</p>
+ </td>
+ <td>
+ <p>The I/O request was canceled.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000121<br />STATUS_CANNOT_DELETE</p>
+ </td>
+ <td>
+ <p>An attempt has been made to remove a file or directory that cannot be deleted.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000122<br />STATUS_INVALID_COMPUTER_NAME</p>
+ </td>
+ <td>
+ <p>Indicates a name that was specified as a remote computer name is syntactically invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000123<br />STATUS_FILE_DELETED</p>
+ </td>
+ <td>
+ <p>An I/O request other than close was performed on a file after it was deleted, which can only happen to a request that did not complete before the last handle was closed via NtClose.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000124<br />STATUS_SPECIAL_ACCOUNT</p>
+ </td>
+ <td>
+ <p>Indicates an operation that is incompatible with built-in accounts has been attempted on a built-in (special) SAM account. For example, built-in accounts cannot be deleted.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000125<br />STATUS_SPECIAL_GROUP</p>
+ </td>
+ <td>
+ <p>The operation requested may not be performed on the specified group because it is a built-in special group.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000126<br />STATUS_SPECIAL_USER</p>
+ </td>
+ <td>
+ <p>The operation requested may not be performed on the specified user because it is a built-in special user.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000127<br />STATUS_MEMBERS_PRIMARY_GROUP</p>
+ </td>
+ <td>
+ <p>Indicates a member cannot be removed from a group because the group is currently the member's primary group.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000128<br />STATUS_FILE_CLOSED</p>
+ </td>
+ <td>
+ <p>An I/O request other than close and several other special case operations was attempted using a file object that had already been closed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000129<br />STATUS_TOO_MANY_THREADS</p>
+ </td>
+ <td>
+ <p>Indicates a process has too many threads to perform the requested action. For example, assignment of a primary token may only be performed when a process has zero or one threads.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000012A<br />STATUS_THREAD_NOT_IN_PROCESS</p>
+ </td>
+ <td>
+ <p>An attempt was made to operate on a thread within a specific process, but the specified thread is not in the specified process.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000012B<br />STATUS_TOKEN_ALREADY_IN_USE</p>
+ </td>
+ <td>
+ <p>An attempt was made to establish a token for use as a primary token but the token is already in use. A token can only be the primary token of one process at a time.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000012C<br />STATUS_PAGEFILE_QUOTA_EXCEEDED</p>
+ </td>
+ <td>
+ <p>The page file quota was exceeded.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000012D<br />STATUS_COMMITMENT_LIMIT</p>
+ </td>
+ <td>
+ <p>{Out of Virtual Memory} Your system is low on virtual memory. To ensure that Windows runs correctly, increase the size of your virtual memory paging file. For more information, see Help.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000012E<br />STATUS_INVALID_IMAGE_LE_FORMAT</p>
+ </td>
+ <td>
+ <p>The specified image file did not have the correct format: it appears to be LE format.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000012F<br />STATUS_INVALID_IMAGE_NOT_MZ</p>
+ </td>
+ <td>
+ <p>The specified image file did not have the correct format: it did not have an initial MZ.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000130<br />STATUS_INVALID_IMAGE_PROTECT</p>
+ </td>
+ <td>
+ <p>The specified image file did not have the correct format: it did not have a proper e_lfarlc in the MZ header.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000131<br />STATUS_INVALID_IMAGE_WIN_16</p>
+ </td>
+ <td>
+ <p>The specified image file did not have the correct format: it appears to be a 16-bit Windows image.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000132<br />STATUS_LOGON_SERVER_CONFLICT</p>
+ </td>
+ <td>
+ <p>The Netlogon service cannot start because another Netlogon service running in the domain conflicts with the specified role.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000133<br />STATUS_TIME_DIFFERENCE_AT_DC</p>
+ </td>
+ <td>
+ <p>The time at the primary domain controller is different from the time at the backup domain controller or member server by too large an amount.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000134<br />STATUS_SYNCHRONIZATION_REQUIRED</p>
+ </td>
+ <td>
+ <p>The SAM database on a Windows Server is significantly out of synchronization with the copy on the domain controller. A complete synchronization is required.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000135<br />STATUS_DLL_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>{Unable To Locate Component} This application has failed to start because %hs was not found. Reinstalling the application may fix this problem.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000136<br />STATUS_OPEN_FAILED</p>
+ </td>
+ <td>
+ <p>The NtCreateFile API failed. This error should never be returned to an application; it is a place holder for the Windows LAN Manager Redirector to use in its internal error-mapping routines.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000137<br />STATUS_IO_PRIVILEGE_FAILED</p>
+ </td>
+ <td>
+ <p>{Privilege Failed} The I/O permissions for the process could not be changed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000138<br />STATUS_ORDINAL_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>{Ordinal Not Found} The ordinal %ld could not be located in the dynamic link library %hs.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000139<br />STATUS_ENTRYPOINT_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>{Entry Point Not Found} The procedure entry point %hs could not be located in the dynamic link library %hs.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000013A<br />STATUS_CONTROL_C_EXIT</p>
+ </td>
+ <td>
+ <p>{Application Exit by CTRL+C} The application terminated as a result of a CTRL+C.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000013B<br />STATUS_LOCAL_DISCONNECT</p>
+ </td>
+ <td>
+ <p>{Virtual Circuit Closed} The network transport on your computer has closed a network connection. There may or may not be I/O requests outstanding.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000013C<br />STATUS_REMOTE_DISCONNECT</p>
+ </td>
+ <td>
+ <p>{Virtual Circuit Closed} The network transport on a remote computer has closed a network connection. There may or may not be I/O requests outstanding.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000013D<br />STATUS_REMOTE_RESOURCES</p>
+ </td>
+ <td>
+ <p>{Insufficient Resources on Remote Computer} The remote computer has insufficient resources to complete the network request. For example, the remote computer may not have enough available memory to carry out the request at this time.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000013E<br />STATUS_LINK_FAILED</p>
+ </td>
+ <td>
+ <p>{Virtual Circuit Closed} An existing connection (virtual circuit) has been broken at the remote computer. There is probably something wrong with the network software protocol or the network hardware on the remote computer.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000013F<br />STATUS_LINK_TIMEOUT</p>
+ </td>
+ <td>
+ <p>{Virtual Circuit Closed} The network transport on your computer has closed a network connection because it had to wait too long for a response from the remote computer.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000140<br />STATUS_INVALID_CONNECTION</p>
+ </td>
+ <td>
+ <p>The connection handle that was given to the transport was invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000141<br />STATUS_INVALID_ADDRESS</p>
+ </td>
+ <td>
+ <p>The address handle that was given to the transport was invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000142<br />STATUS_DLL_INIT_FAILED</p>
+ </td>
+ <td>
+ <p>{DLL Initialization Failed} Initialization of the dynamic link library %hs failed. The process is terminating abnormally.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000143<br />STATUS_MISSING_SYSTEMFILE</p>
+ </td>
+ <td>
+ <p>{Missing System File} The required system file %hs is bad or missing.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000144<br />STATUS_UNHANDLED_EXCEPTION</p>
+ </td>
+ <td>
+ <p>{Application Error} The exception %s (0x%08lx) occurred in the application at location 0x%08lx.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000145<br />STATUS_APP_INIT_FAILURE</p>
+ </td>
+ <td>
+ <p>{Application Error} The application failed to initialize properly (0x%lx). Click OK to terminate the application.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000146<br />STATUS_PAGEFILE_CREATE_FAILED</p>
+ </td>
+ <td>
+ <p>{Unable to Create Paging File} The creation of the paging file %hs failed (%lx). The requested size was %ld.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000147<br />STATUS_NO_PAGEFILE</p>
+ </td>
+ <td>
+ <p>{No Paging File Specified} No paging file was specified in the system configuration.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000148<br />STATUS_INVALID_LEVEL</p>
+ </td>
+ <td>
+ <p>{Incorrect System Call Level} An invalid level was passed into the specified system call.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000149<br />STATUS_WRONG_PASSWORD_CORE</p>
+ </td>
+ <td>
+ <p>{Incorrect Password to LAN Manager Server} You specified an incorrect password to a LAN Manager 2.x or MS-NET server.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000014A<br />STATUS_ILLEGAL_FLOAT_CONTEXT</p>
+ </td>
+ <td>
+ <p>{EXCEPTION} A real-mode application issued a floating-point instruction and floating-point hardware is not present.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000014B<br />STATUS_PIPE_BROKEN</p>
+ </td>
+ <td>
+ <p>The pipe operation has failed because the other end of the pipe has been closed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000014C<br />STATUS_REGISTRY_CORRUPT</p>
+ </td>
+ <td>
+ <p>{The Registry Is Corrupt} The structure of one of the files that contains registry data is corrupt; the image of the file in memory is corrupt; or the file could not be recovered because the alternate copy or log was absent or corrupt.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000014D<br />STATUS_REGISTRY_IO_FAILED</p>
+ </td>
+ <td>
+ <p>An I/O operation initiated by the Registry failed and cannot be recovered. The registry could not read in, write out, or flush one of the files that contain the system's image of the registry.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000014E<br />STATUS_NO_EVENT_PAIR</p>
+ </td>
+ <td>
+ <p>An event pair synchronization operation was performed using the thread-specific client/server event pair object, but no event pair object was associated with the thread.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000014F<br />STATUS_UNRECOGNIZED_VOLUME</p>
+ </td>
+ <td>
+ <p>The volume does not contain a recognized file system. Be sure that all required file system drivers are loaded and that the volume is not corrupt.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000150<br />STATUS_SERIAL_NO_DEVICE_INITED</p>
+ </td>
+ <td>
+ <p>No serial device was successfully initialized. The serial driver will unload.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000151<br />STATUS_NO_SUCH_ALIAS</p>
+ </td>
+ <td>
+ <p>The specified local group does not exist.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000152<br />STATUS_MEMBER_NOT_IN_ALIAS</p>
+ </td>
+ <td>
+ <p>The specified account name is not a member of the group.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000153<br />STATUS_MEMBER_IN_ALIAS</p>
+ </td>
+ <td>
+ <p>The specified account name is already a member of the group.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000154<br />STATUS_ALIAS_EXISTS</p>
+ </td>
+ <td>
+ <p>The specified local group already exists.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000155<br />STATUS_LOGON_NOT_GRANTED</p>
+ </td>
+ <td>
+ <p>A requested type of logon (for example, interactive, network, and service) is not granted by the local security policy of the target system. Ask the system administrator to grant the necessary form of logon.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000156<br />STATUS_TOO_MANY_SECRETS</p>
+ </td>
+ <td>
+ <p>The maximum number of secrets that may be stored in a single system was exceeded. The length and number of secrets is limited to satisfy U.S. State Department export restrictions.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000157<br />STATUS_SECRET_TOO_LONG</p>
+ </td>
+ <td>
+ <p>The length of a secret exceeds the maximum allowable length. The length and number of secrets is limited to satisfy U.S. State Department export restrictions.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000158<br />STATUS_INTERNAL_DB_ERROR</p>
+ </td>
+ <td>
+ <p>The local security authority (LSA) database contains an internal inconsistency.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000159<br />STATUS_FULLSCREEN_MODE</p>
+ </td>
+ <td>
+ <p>The requested operation cannot be performed in full-screen mode.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000015A<br />STATUS_TOO_MANY_CONTEXT_IDS</p>
+ </td>
+ <td>
+ <p>During a logon attempt, the user's security context accumulated too many security IDs. This is a very unusual situation. Remove the user from some global or local groups to reduce the number of security IDs to incorporate into the security context.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000015B<br />STATUS_LOGON_TYPE_NOT_GRANTED</p>
+ </td>
+ <td>
+ <p>A user has requested a type of logon (for example, interactive or network) that has not been granted. An administrator has control over who may logon interactively and through the network.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000015C<br />STATUS_NOT_REGISTRY_FILE</p>
+ </td>
+ <td>
+ <p>The system has attempted to load or restore a file into the registry, and the specified file is not in the format of a registry file.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000015D<br />STATUS_NT_CROSS_ENCRYPTION_REQUIRED</p>
+ </td>
+ <td>
+ <p>An attempt was made to change a user password in the security account manager without providing the necessary Windows cross-encrypted password.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000015E<br />STATUS_DOMAIN_CTRLR_CONFIG_ERROR</p>
+ </td>
+ <td>
+ <p>A Windows Server has an incorrect configuration.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000015F<br />STATUS_FT_MISSING_MEMBER</p>
+ </td>
+ <td>
+ <p>An attempt was made to explicitly access the secondary copy of information via a device control to the fault tolerance driver and the secondary copy is not present in the system.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000160<br />STATUS_ILL_FORMED_SERVICE_ENTRY</p>
+ </td>
+ <td>
+ <p>A configuration registry node that represents a driver service entry was ill-formed and did not contain the required value entries.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000161<br />STATUS_ILLEGAL_CHARACTER</p>
+ </td>
+ <td>
+ <p>An illegal character was encountered. For a multibyte character set, this includes a lead byte without a succeeding trail byte. For the Unicode character set this includes the characters 0xFFFF and 0xFFFE.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000162<br />STATUS_UNMAPPABLE_CHARACTER</p>
+ </td>
+ <td>
+ <p>No mapping for the Unicode character exists in the target multibyte code page.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000163<br />STATUS_UNDEFINED_CHARACTER</p>
+ </td>
+ <td>
+ <p>The Unicode character is not defined in the Unicode character set that is installed on the system.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000164<br />STATUS_FLOPPY_VOLUME</p>
+ </td>
+ <td>
+ <p>The paging file cannot be created on a floppy disk.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000165<br />STATUS_FLOPPY_ID_MARK_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>{Floppy Disk Error} While accessing a floppy disk, an ID address mark was not found.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000166<br />STATUS_FLOPPY_WRONG_CYLINDER</p>
+ </td>
+ <td>
+ <p>{Floppy Disk Error} While accessing a floppy disk, the track address from the sector ID field was found to be different from the track address that is maintained by the controller.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000167<br />STATUS_FLOPPY_UNKNOWN_ERROR</p>
+ </td>
+ <td>
+ <p>{Floppy Disk Error} The floppy disk controller reported an error that is not recognized by the floppy disk driver.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000168<br />STATUS_FLOPPY_BAD_REGISTERS</p>
+ </td>
+ <td>
+ <p>{Floppy Disk Error} While accessing a floppy-disk, the controller returned inconsistent results via its registers.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000169<br />STATUS_DISK_RECALIBRATE_FAILED</p>
+ </td>
+ <td>
+ <p>{Hard Disk Error} While accessing the hard disk, a recalibrate operation failed, even after retries.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000016A<br />STATUS_DISK_OPERATION_FAILED</p>
+ </td>
+ <td>
+ <p>{Hard Disk Error} While accessing the hard disk, a disk operation failed even after retries.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000016B<br />STATUS_DISK_RESET_FAILED</p>
+ </td>
+ <td>
+ <p>{Hard Disk Error} While accessing the hard disk, a disk controller reset was needed, but even that failed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000016C<br />STATUS_SHARED_IRQ_BUSY</p>
+ </td>
+ <td>
+ <p>An attempt was made to open a device that was sharing an interrupt request (IRQ) with other devices. At least one other device that uses that IRQ was already opened. Two concurrent opens of devices that share an IRQ and only work via interrupts is not supported for the particular bus type that the devices use.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000016D<br />STATUS_FT_ORPHANING</p>
+ </td>
+ <td>
+ <p>{FT Orphaning} A disk that is part of a fault-tolerant volume can no longer be accessed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000016E<br />STATUS_BIOS_FAILED_TO_CONNECT_INTERRUPT</p>
+ </td>
+ <td>
+ <p>The basic input/output system (BIOS) failed to connect a system interrupt to the device or bus for which the device is connected.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000172<br />STATUS_PARTITION_FAILURE</p>
+ </td>
+ <td>
+ <p>The tape could not be partitioned.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000173<br />STATUS_INVALID_BLOCK_LENGTH</p>
+ </td>
+ <td>
+ <p>When accessing a new tape of a multi-volume partition, the current blocksize is incorrect.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000174<br />STATUS_DEVICE_NOT_PARTITIONED</p>
+ </td>
+ <td>
+ <p>The tape partition information could not be found when loading a tape.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000175<br />STATUS_UNABLE_TO_LOCK_MEDIA</p>
+ </td>
+ <td>
+ <p>An attempt to lock the eject media mechanism failed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000176<br />STATUS_UNABLE_TO_UNLOAD_MEDIA</p>
+ </td>
+ <td>
+ <p>An attempt to unload media failed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000177<br />STATUS_EOM_OVERFLOW</p>
+ </td>
+ <td>
+ <p>The physical end of tape was detected.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000178<br />STATUS_NO_MEDIA</p>
+ </td>
+ <td>
+ <p>{No Media} There is no media in the drive. Insert media into drive %hs.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000017A<br />STATUS_NO_SUCH_MEMBER</p>
+ </td>
+ <td>
+ <p>A member could not be added to or removed from the local group because the member does not exist.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000017B<br />STATUS_INVALID_MEMBER</p>
+ </td>
+ <td>
+ <p>A new member could not be added to a local group because the member has the wrong account type.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000017C<br />STATUS_KEY_DELETED</p>
+ </td>
+ <td>
+ <p>An illegal operation was attempted on a registry key that has been marked for deletion.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000017D<br />STATUS_NO_LOG_SPACE</p>
+ </td>
+ <td>
+ <p>The system could not allocate the required space in a registry log.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000017E<br />STATUS_TOO_MANY_SIDS</p>
+ </td>
+ <td>
+ <p>Too many SIDs have been specified.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000017F<br />STATUS_LM_CROSS_ENCRYPTION_REQUIRED</p>
+ </td>
+ <td>
+ <p>An attempt was made to change a user password in the security account manager without providing the necessary LM cross-encrypted password.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000180<br />STATUS_KEY_HAS_CHILDREN</p>
+ </td>
+ <td>
+ <p>An attempt was made to create a symbolic link in a registry key that already has subkeys or values.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000181<br />STATUS_CHILD_MUST_BE_VOLATILE</p>
+ </td>
+ <td>
+ <p>An attempt was made to create a stable subkey under a volatile parent key.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000182<br />STATUS_DEVICE_CONFIGURATION_ERROR</p>
+ </td>
+ <td>
+ <p>The I/O device is configured incorrectly or the configuration parameters to the driver are incorrect.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000183<br />STATUS_DRIVER_INTERNAL_ERROR</p>
+ </td>
+ <td>
+ <p>An error was detected between two drivers or within an I/O driver.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000184<br />STATUS_INVALID_DEVICE_STATE</p>
+ </td>
+ <td>
+ <p>The device is not in a valid state to perform this request.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000185<br />STATUS_IO_DEVICE_ERROR</p>
+ </td>
+ <td>
+ <p>The I/O device reported an I/O error.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000186<br />STATUS_DEVICE_PROTOCOL_ERROR</p>
+ </td>
+ <td>
+ <p>A protocol error was detected between the driver and the device.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000187<br />STATUS_BACKUP_CONTROLLER</p>
+ </td>
+ <td>
+ <p>This operation is only allowed for the primary domain controller of the domain.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000188<br />STATUS_LOG_FILE_FULL</p>
+ </td>
+ <td>
+ <p>The log file space is insufficient to support this operation.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000189<br />STATUS_TOO_LATE</p>
+ </td>
+ <td>
+ <p>A write operation was attempted to a volume after it was dismounted.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000018A<br />STATUS_NO_TRUST_LSA_SECRET</p>
+ </td>
+ <td>
+ <p>The workstation does not have a trust secret for the primary domain in the local LSA database.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000018B<br />STATUS_NO_TRUST_SAM_ACCOUNT</p>
+ </td>
+ <td>
+ <p>The SAM database on the Windows Server does not have a computer account for this workstation trust relationship.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000018C<br />STATUS_TRUSTED_DOMAIN_FAILURE</p>
+ </td>
+ <td>
+ <p>The logon request failed because the trust relationship between the primary domain and the trusted domain failed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000018D<br />STATUS_TRUSTED_RELATIONSHIP_FAILURE</p>
+ </td>
+ <td>
+ <p>The logon request failed because the trust relationship between this workstation and the primary domain failed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000018E<br />STATUS_EVENTLOG_FILE_CORRUPT</p>
+ </td>
+ <td>
+ <p>The Eventlog log file is corrupt.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000018F<br />STATUS_EVENTLOG_CANT_START</p>
+ </td>
+ <td>
+ <p>No Eventlog log file could be opened. The Eventlog service did not start.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000190<br />STATUS_TRUST_FAILURE</p>
+ </td>
+ <td>
+ <p>The network logon failed. This may be because the validation authority cannot be reached.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000191<br />STATUS_MUTANT_LIMIT_EXCEEDED</p>
+ </td>
+ <td>
+ <p>An attempt was made to acquire a mutant such that its maximum count would have been exceeded.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000192<br />STATUS_NETLOGON_NOT_STARTED</p>
+ </td>
+ <td>
+ <p>An attempt was made to logon, but the NetLogon service was not started.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000193<br />STATUS_ACCOUNT_EXPIRED</p>
+ </td>
+ <td>
+ <p>The user account has expired.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000194<br />STATUS_POSSIBLE_DEADLOCK</p>
+ </td>
+ <td>
+ <p>{EXCEPTION} Possible deadlock condition.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000195<br />STATUS_NETWORK_CREDENTIAL_CONFLICT</p>
+ </td>
+ <td>
+ <p>Multiple connections to a server or shared resource by the same user, using more than one user name, are not allowed. Disconnect all previous connections to the server or shared resource and try again.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000196<br />STATUS_REMOTE_SESSION_LIMIT</p>
+ </td>
+ <td>
+ <p>An attempt was made to establish a session to a network server, but there are already too many sessions established to that server.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000197<br />STATUS_EVENTLOG_FILE_CHANGED</p>
+ </td>
+ <td>
+ <p>The log file has changed between reads.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000198<br />STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT</p>
+ </td>
+ <td>
+ <p>The account used is an interdomain trust account. Use your global user account or local user account to access this server.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000199<br />STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT</p>
+ </td>
+ <td>
+ <p>The account used is a computer account. Use your global user account or local user account to access this server.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000019A<br />STATUS_NOLOGON_SERVER_TRUST_ACCOUNT</p>
+ </td>
+ <td>
+ <p>The account used is a server trust account. Use your global user account or local user account to access this server.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000019B<br />STATUS_DOMAIN_TRUST_INCONSISTENT</p>
+ </td>
+ <td>
+ <p>The name or SID of the specified domain is inconsistent with the trust information for that domain.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000019C<br />STATUS_FS_DRIVER_REQUIRED</p>
+ </td>
+ <td>
+ <p>A volume has been accessed for which a file system driver is required that has not yet been loaded.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000019D<br />STATUS_IMAGE_ALREADY_LOADED_AS_DLL</p>
+ </td>
+ <td>
+ <p>Indicates that the specified image is already loaded as a DLL.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000019E<br />STATUS_INCOMPATIBLE_WITH_GLOBAL_SHORT_NAME_REGISTRY_SETTING</p>
+ </td>
+ <td>
+ <p>Short name settings may not be changed on this volume due to the global registry setting.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000019F<br />STATUS_SHORT_NAMES_NOT_ENABLED_ON_VOLUME</p>
+ </td>
+ <td>
+ <p>Short names are not enabled on this volume.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00001A0<br />STATUS_SECURITY_STREAM_IS_INCONSISTENT</p>
+ </td>
+ <td>
+ <p>The security stream for the given volume is in an inconsistent state. Please run CHKDSK on the volume.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00001A1<br />STATUS_INVALID_LOCK_RANGE</p>
+ </td>
+ <td>
+ <p>A requested file lock operation cannot be processed due to an invalid byte range.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00001A2<br />STATUS_INVALID_ACE_CONDITION</p>
+ </td>
+ <td>
+ <p>The specified access control entry (ACE) contains an invalid condition.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00001A3<br />STATUS_IMAGE_SUBSYSTEM_NOT_PRESENT</p>
+ </td>
+ <td>
+ <p>The subsystem needed to support the image type is not present.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00001A4<br />STATUS_NOTIFICATION_GUID_ALREADY_DEFINED</p>
+ </td>
+ <td>
+ <p>The specified file already has a notification GUID associated with it.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000201<br />STATUS_NETWORK_OPEN_RESTRICTION</p>
+ </td>
+ <td>
+ <p>A remote open failed because the network open restrictions were not satisfied.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000202<br />STATUS_NO_USER_SESSION_KEY</p>
+ </td>
+ <td>
+ <p>There is no user session key for the specified logon session.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000203<br />STATUS_USER_SESSION_DELETED</p>
+ </td>
+ <td>
+ <p>The remote user session has been deleted.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000204<br />STATUS_RESOURCE_LANG_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>Indicates the specified resource language ID cannot be found in the image file.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000205<br />STATUS_INSUFF_SERVER_RESOURCES</p>
+ </td>
+ <td>
+ <p>Insufficient server resources exist to complete the request.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000206<br />STATUS_INVALID_BUFFER_SIZE</p>
+ </td>
+ <td>
+ <p>The size of the buffer is invalid for the specified operation.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000207<br />STATUS_INVALID_ADDRESS_COMPONENT</p>
+ </td>
+ <td>
+ <p>The transport rejected the specified network address as invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000208<br />STATUS_INVALID_ADDRESS_WILDCARD</p>
+ </td>
+ <td>
+ <p>The transport rejected the specified network address due to invalid use of a wildcard.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000209<br />STATUS_TOO_MANY_ADDRESSES</p>
+ </td>
+ <td>
+ <p>The transport address could not be opened because all the available addresses are in use.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000020A<br />STATUS_ADDRESS_ALREADY_EXISTS</p>
+ </td>
+ <td>
+ <p>The transport address could not be opened because it already exists.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000020B<br />STATUS_ADDRESS_CLOSED</p>
+ </td>
+ <td>
+ <p>The transport address is now closed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000020C<br />STATUS_CONNECTION_DISCONNECTED</p>
+ </td>
+ <td>
+ <p>The transport connection is now disconnected.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000020D<br />STATUS_CONNECTION_RESET</p>
+ </td>
+ <td>
+ <p>The transport connection has been reset.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000020E<br />STATUS_TOO_MANY_NODES</p>
+ </td>
+ <td>
+ <p>The transport cannot dynamically acquire any more nodes.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000020F<br />STATUS_TRANSACTION_ABORTED</p>
+ </td>
+ <td>
+ <p>The transport aborted a pending transaction.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000210<br />STATUS_TRANSACTION_TIMED_OUT</p>
+ </td>
+ <td>
+ <p>The transport timed out a request that is waiting for a response.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000211<br />STATUS_TRANSACTION_NO_RELEASE</p>
+ </td>
+ <td>
+ <p>The transport did not receive a release for a pending response.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000212<br />STATUS_TRANSACTION_NO_MATCH</p>
+ </td>
+ <td>
+ <p>The transport did not find a transaction that matches the specific token.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000213<br />STATUS_TRANSACTION_RESPONDED</p>
+ </td>
+ <td>
+ <p>The transport had previously responded to a transaction request.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000214<br />STATUS_TRANSACTION_INVALID_ID</p>
+ </td>
+ <td>
+ <p>The transport does not recognize the specified transaction request ID.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000215<br />STATUS_TRANSACTION_INVALID_TYPE</p>
+ </td>
+ <td>
+ <p>The transport does not recognize the specified transaction request type.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000216<br />STATUS_NOT_SERVER_SESSION</p>
+ </td>
+ <td>
+ <p>The transport can only process the specified request on the server side of a session.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000217<br />STATUS_NOT_CLIENT_SESSION</p>
+ </td>
+ <td>
+ <p>The transport can only process the specified request on the client side of a session.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000218<br />STATUS_CANNOT_LOAD_REGISTRY_FILE</p>
+ </td>
+ <td>
+ <p>{Registry File Failure} The registry cannot load the hive (file): %hs or its log or alternate. It is corrupt, absent, or not writable.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000219<br />STATUS_DEBUG_ATTACH_FAILED</p>
+ </td>
+ <td>
+ <p>{Unexpected Failure in DebugActiveProcess} An unexpected failure occurred while processing a DebugActiveProcess API request. You may choose OK to terminate the process, or Cancel to ignore the error.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000021A<br />STATUS_SYSTEM_PROCESS_TERMINATED</p>
+ </td>
+ <td>
+ <p>{Fatal System Error} The %hs system process terminated unexpectedly with a status of 0x%08x (0x%08x 0x%08x). The system has been shut down.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000021B<br />STATUS_DATA_NOT_ACCEPTED</p>
+ </td>
+ <td>
+ <p>{Data Not Accepted} The TDI client could not handle the data received during an indication.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000021C<br />STATUS_NO_BROWSER_SERVERS_FOUND</p>
+ </td>
+ <td>
+ <p>{Unable to Retrieve Browser Server List} The list of servers for this workgroup is not currently available.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000021D<br />STATUS_VDM_HARD_ERROR</p>
+ </td>
+ <td>
+ <p>NTVDM encountered a hard error.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000021E<br />STATUS_DRIVER_CANCEL_TIMEOUT</p>
+ </td>
+ <td>
+ <p>{Cancel Timeout} The driver %hs failed to complete a canceled I/O request in the allotted time.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000021F<br />STATUS_REPLY_MESSAGE_MISMATCH</p>
+ </td>
+ <td>
+ <p>{Reply Message Mismatch} An attempt was made to reply to an LPC message, but the thread specified by the client ID in the message was not waiting on that message.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000220<br />STATUS_MAPPED_ALIGNMENT</p>
+ </td>
+ <td>
+ <p>{Mapped View Alignment Incorrect} An attempt was made to map a view of a file, but either the specified base address or the offset into the file were not aligned on the proper allocation granularity.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000221<br />STATUS_IMAGE_CHECKSUM_MISMATCH</p>
+ </td>
+ <td>
+ <p>{Bad Image Checksum} The image %hs is possibly corrupt. The header checksum does not match the computed checksum.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000222<br />STATUS_LOST_WRITEBEHIND_DATA</p>
+ </td>
+ <td>
+ <p>{Delayed Write Failed} Windows was unable to save all the data for the file %hs. The data has been lost. This error may be caused by a failure of your computer hardware or network connection. Try to save this file elsewhere.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000223<br />STATUS_CLIENT_SERVER_PARAMETERS_INVALID</p>
+ </td>
+ <td>
+ <p>The parameters passed to the server in the client/server shared memory window were invalid. Too much data may have been put in the shared memory window.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000224<br />STATUS_PASSWORD_MUST_CHANGE</p>
+ </td>
+ <td>
+ <p>The user password must be changed before logging on the first time.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000225<br />STATUS_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>The object was not found.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000226<br />STATUS_NOT_TINY_STREAM</p>
+ </td>
+ <td>
+ <p>The stream is not a tiny stream.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000227<br />STATUS_RECOVERY_FAILURE</p>
+ </td>
+ <td>
+ <p>A transaction recovery failed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000228<br />STATUS_STACK_OVERFLOW_READ</p>
+ </td>
+ <td>
+ <p>The request must be handled by the stack overflow code.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000229<br />STATUS_FAIL_CHECK</p>
+ </td>
+ <td>
+ <p>A consistency check failed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000022A<br />STATUS_DUPLICATE_OBJECTID</p>
+ </td>
+ <td>
+ <p>The attempt to insert the ID in the index failed because the ID is already in the index.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000022B<br />STATUS_OBJECTID_EXISTS</p>
+ </td>
+ <td>
+ <p>The attempt to set the object ID failed because the object already has an ID.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000022C<br />STATUS_CONVERT_TO_LARGE</p>
+ </td>
+ <td>
+ <p>Internal OFS status codes indicating how an allocation operation is handled. Either it is retried after the containing oNode is moved or the extent stream is converted to a large stream.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000022D<br />STATUS_RETRY</p>
+ </td>
+ <td>
+ <p>The request needs to be retried.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000022E<br />STATUS_FOUND_OUT_OF_SCOPE</p>
+ </td>
+ <td>
+ <p>The attempt to find the object found an object on the volume that matches by ID; however, it is out of the scope of the handle that is used for the operation.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000022F<br />STATUS_ALLOCATE_BUCKET</p>
+ </td>
+ <td>
+ <p>The bucket array must be grown. Retry the transaction after doing so.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000230<br />STATUS_PROPSET_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>The specified property set does not exist on the object.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000231<br />STATUS_MARSHALL_OVERFLOW</p>
+ </td>
+ <td>
+ <p>The user/kernel marshaling buffer has overflowed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000232<br />STATUS_INVALID_VARIANT</p>
+ </td>
+ <td>
+ <p>The supplied variant structure contains invalid data.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000233<br />STATUS_DOMAIN_CONTROLLER_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>A domain controller for this domain was not found.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000234<br />STATUS_ACCOUNT_LOCKED_OUT</p>
+ </td>
+ <td>
+ <p>The user account has been automatically locked because too many invalid logon attempts or password change attempts have been requested.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000235<br />STATUS_HANDLE_NOT_CLOSABLE</p>
+ </td>
+ <td>
+ <p>NtClose was called on a handle that was protected from close via NtSetInformationObject.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000236<br />STATUS_CONNECTION_REFUSED</p>
+ </td>
+ <td>
+ <p>The transport-connection attempt was refused by the remote system.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000237<br />STATUS_GRACEFUL_DISCONNECT</p>
+ </td>
+ <td>
+ <p>The transport connection was gracefully closed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000238<br />STATUS_ADDRESS_ALREADY_ASSOCIATED</p>
+ </td>
+ <td>
+ <p>The transport endpoint already has an address associated with it.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000239<br />STATUS_ADDRESS_NOT_ASSOCIATED</p>
+ </td>
+ <td>
+ <p>An address has not yet been associated with the transport endpoint.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000023A<br />STATUS_CONNECTION_INVALID</p>
+ </td>
+ <td>
+ <p>An operation was attempted on a nonexistent transport connection.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000023B<br />STATUS_CONNECTION_ACTIVE</p>
+ </td>
+ <td>
+ <p>An invalid operation was attempted on an active transport connection.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000023C<br />STATUS_NETWORK_UNREACHABLE</p>
+ </td>
+ <td>
+ <p>The remote network is not reachable by the transport.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000023D<br />STATUS_HOST_UNREACHABLE</p>
+ </td>
+ <td>
+ <p>The remote system is not reachable by the transport.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000023E<br />STATUS_PROTOCOL_UNREACHABLE</p>
+ </td>
+ <td>
+ <p>The remote system does not support the transport protocol.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000023F<br />STATUS_PORT_UNREACHABLE</p>
+ </td>
+ <td>
+ <p>No service is operating at the destination port of the transport on the remote system.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000240<br />STATUS_REQUEST_ABORTED</p>
+ </td>
+ <td>
+ <p>The request was aborted.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000241<br />STATUS_CONNECTION_ABORTED</p>
+ </td>
+ <td>
+ <p>The transport connection was aborted by the local system.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000242<br />STATUS_BAD_COMPRESSION_BUFFER</p>
+ </td>
+ <td>
+ <p>The specified buffer contains ill-formed data.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000243<br />STATUS_USER_MAPPED_FILE</p>
+ </td>
+ <td>
+ <p>The requested operation cannot be performed on a file with a user mapped section open.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000244<br />STATUS_AUDIT_FAILED</p>
+ </td>
+ <td>
+ <p>{Audit Failed} An attempt to generate a security audit failed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000245<br />STATUS_TIMER_RESOLUTION_NOT_SET</p>
+ </td>
+ <td>
+ <p>The timer resolution was not previously set by the current process.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000246<br />STATUS_CONNECTION_COUNT_LIMIT</p>
+ </td>
+ <td>
+ <p>A connection to the server could not be made because the limit on the number of concurrent connections for this account has been reached.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000247<br />STATUS_LOGIN_TIME_RESTRICTION</p>
+ </td>
+ <td>
+ <p>Attempting to log on during an unauthorized time of day for this account.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000248<br />STATUS_LOGIN_WKSTA_RESTRICTION</p>
+ </td>
+ <td>
+ <p>The account is not authorized to log on from this station.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000249<br />STATUS_IMAGE_MP_UP_MISMATCH</p>
+ </td>
+ <td>
+ <p>{UP/MP Image Mismatch} The image %hs has been modified for use on a uniprocessor system, but you are running it on a multiprocessor machine. Reinstall the image file.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000250<br />STATUS_INSUFFICIENT_LOGON_INFO</p>
+ </td>
+ <td>
+ <p>There is insufficient account information to log you on.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000251<br />STATUS_BAD_DLL_ENTRYPOINT</p>
+ </td>
+ <td>
+ <p>{Invalid DLL Entrypoint} The dynamic link library %hs is not written correctly. The stack pointer has been left in an inconsistent state. The entry point should be declared as WINAPI or STDCALL. Select YES to fail the DLL load. Select NO to continue execution. Selecting NO may cause the application to operate incorrectly.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000252<br />STATUS_BAD_SERVICE_ENTRYPOINT</p>
+ </td>
+ <td>
+ <p>{Invalid Service Callback Entrypoint} The %hs service is not written correctly. The stack pointer has been left in an inconsistent state. The callback entry point should be declared as WINAPI or STDCALL. Selecting OK will cause the service to continue operation. However, the service process may operate incorrectly.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000253<br />STATUS_LPC_REPLY_LOST</p>
+ </td>
+ <td>
+ <p>The server received the messages but did not send a reply.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000254<br />STATUS_IP_ADDRESS_CONFLICT1</p>
+ </td>
+ <td>
+ <p>There is an IP address conflict with another system on the network.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000255<br />STATUS_IP_ADDRESS_CONFLICT2</p>
+ </td>
+ <td>
+ <p>There is an IP address conflict with another system on the network.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000256<br />STATUS_REGISTRY_QUOTA_LIMIT</p>
+ </td>
+ <td>
+ <p>{Low On Registry Space} The system has reached the maximum size that is allowed for the system part of the registry. Additional storage requests will be ignored.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000257<br />STATUS_PATH_NOT_COVERED</p>
+ </td>
+ <td>
+ <p>The contacted server does not support the indicated part of the DFS namespace.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000258<br />STATUS_NO_CALLBACK_ACTIVE</p>
+ </td>
+ <td>
+ <p>A callback return system service cannot be executed when no callback is active.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000259<br />STATUS_LICENSE_QUOTA_EXCEEDED</p>
+ </td>
+ <td>
+ <p>The service being accessed is licensed for a particular number of connections. No more connections can be made to the service at this time because the service has already accepted the maximum number of connections.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000025A<br />STATUS_PWD_TOO_SHORT</p>
+ </td>
+ <td>
+ <p>The password provided is too short to meet the policy of your user account. Choose a longer password.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000025B<br />STATUS_PWD_TOO_RECENT</p>
+ </td>
+ <td>
+ <p>The policy of your user account does not allow you to change passwords too frequently. This is done to prevent users from changing back to a familiar, but potentially discovered, password. If you feel your password has been compromised, contact your administrator immediately to have a new one assigned.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000025C<br />STATUS_PWD_HISTORY_CONFLICT</p>
+ </td>
+ <td>
+ <p>You have attempted to change your password to one that you have used in the past. The policy of your user account does not allow this. Select a password that you have not previously used.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000025E<br />STATUS_PLUGPLAY_NO_DEVICE</p>
+ </td>
+ <td>
+ <p>You have attempted to load a legacy device driver while its device instance had been disabled.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000025F<br />STATUS_UNSUPPORTED_COMPRESSION</p>
+ </td>
+ <td>
+ <p>The specified compression format is unsupported.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000260<br />STATUS_INVALID_HW_PROFILE</p>
+ </td>
+ <td>
+ <p>The specified hardware profile configuration is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000261<br />STATUS_INVALID_PLUGPLAY_DEVICE_PATH</p>
+ </td>
+ <td>
+ <p>The specified Plug and Play registry device path is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000262<br />STATUS_DRIVER_ORDINAL_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>{Driver Entry Point Not Found} The %hs device driver could not locate the ordinal %ld in driver %hs.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000263<br />STATUS_DRIVER_ENTRYPOINT_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>{Driver Entry Point Not Found} The %hs device driver could not locate the entry point %hs in driver %hs.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000264<br />STATUS_RESOURCE_NOT_OWNED</p>
+ </td>
+ <td>
+ <p>{Application Error} The application attempted to release a resource it did not own. Click OK to terminate the application.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000265<br />STATUS_TOO_MANY_LINKS</p>
+ </td>
+ <td>
+ <p>An attempt was made to create more links on a file than the file system supports.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000266<br />STATUS_QUOTA_LIST_INCONSISTENT</p>
+ </td>
+ <td>
+ <p>The specified quota list is internally inconsistent with its descriptor.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000267<br />STATUS_FILE_IS_OFFLINE</p>
+ </td>
+ <td>
+ <p>The specified file has been relocated to offline storage.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000268<br />STATUS_EVALUATION_EXPIRATION</p>
+ </td>
+ <td>
+ <p>{Windows Evaluation Notification} The evaluation period for this installation of Windows has expired. This system will shutdown in 1 hour. To restore access to this installation of Windows, upgrade this installation by using a licensed distribution of this product.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000269<br />STATUS_ILLEGAL_DLL_RELOCATION</p>
+ </td>
+ <td>
+ <p>{Illegal System DLL Relocation} The system DLL %hs was relocated in memory. The application will not run properly. The relocation occurred because the DLL %hs occupied an address range that is reserved for Windows system DLLs. The vendor supplying the DLL should be contacted for a new DLL.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000026A<br />STATUS_LICENSE_VIOLATION</p>
+ </td>
+ <td>
+ <p>{License Violation} The system has detected tampering with your registered product type. This is a violation of your software license. Tampering with the product type is not permitted.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000026B<br />STATUS_DLL_INIT_FAILED_LOGOFF</p>
+ </td>
+ <td>
+ <p>{DLL Initialization Failed} The application failed to initialize because the window station is shutting down.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000026C<br />STATUS_DRIVER_UNABLE_TO_LOAD</p>
+ </td>
+ <td>
+ <p>{Unable to Load Device Driver} %hs device driver could not be loaded. Error Status was 0x%x.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000026D<br />STATUS_DFS_UNAVAILABLE</p>
+ </td>
+ <td>
+ <p>DFS is unavailable on the contacted server.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000026E<br />STATUS_VOLUME_DISMOUNTED</p>
+ </td>
+ <td>
+ <p>An operation was attempted to a volume after it was dismounted.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000026F<br />STATUS_WX86_INTERNAL_ERROR</p>
+ </td>
+ <td>
+ <p>An internal error occurred in the Win32 x86 emulation subsystem.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000270<br />STATUS_WX86_FLOAT_STACK_CHECK</p>
+ </td>
+ <td>
+ <p>Win32 x86 emulation subsystem floating-point stack check.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000271<br />STATUS_VALIDATE_CONTINUE</p>
+ </td>
+ <td>
+ <p>The validation process needs to continue on to the next step.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000272<br />STATUS_NO_MATCH</p>
+ </td>
+ <td>
+ <p>There was no match for the specified key in the index.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000273<br />STATUS_NO_MORE_MATCHES</p>
+ </td>
+ <td>
+ <p>There are no more matches for the current index enumeration.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000275<br />STATUS_NOT_A_REPARSE_POINT</p>
+ </td>
+ <td>
+ <p>The NTFS file or directory is not a reparse point.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000276<br />STATUS_IO_REPARSE_TAG_INVALID</p>
+ </td>
+ <td>
+ <p>The Windows I/O reparse tag passed for the NTFS reparse point is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000277<br />STATUS_IO_REPARSE_TAG_MISMATCH</p>
+ </td>
+ <td>
+ <p>The Windows I/O reparse tag does not match the one that is in the NTFS reparse point.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000278<br />STATUS_IO_REPARSE_DATA_INVALID</p>
+ </td>
+ <td>
+ <p>The user data passed for the NTFS reparse point is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000279<br />STATUS_IO_REPARSE_TAG_NOT_HANDLED</p>
+ </td>
+ <td>
+ <p>The layered file system driver for this I/O tag did not handle it when needed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000280<br />STATUS_REPARSE_POINT_NOT_RESOLVED</p>
+ </td>
+ <td>
+ <p>The NTFS symbolic link could not be resolved even though the initial file name is valid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000281<br />STATUS_DIRECTORY_IS_A_REPARSE_POINT</p>
+ </td>
+ <td>
+ <p>The NTFS directory is a reparse point.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000282<br />STATUS_RANGE_LIST_CONFLICT</p>
+ </td>
+ <td>
+ <p>The range could not be added to the range list because of a conflict.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000283<br />STATUS_SOURCE_ELEMENT_EMPTY</p>
+ </td>
+ <td>
+ <p>The specified medium changer source element contains no media.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000284<br />STATUS_DESTINATION_ELEMENT_FULL</p>
+ </td>
+ <td>
+ <p>The specified medium changer destination element already contains media.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000285<br />STATUS_ILLEGAL_ELEMENT_ADDRESS</p>
+ </td>
+ <td>
+ <p>The specified medium changer element does not exist.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000286<br />STATUS_MAGAZINE_NOT_PRESENT</p>
+ </td>
+ <td>
+ <p>The specified element is contained in a magazine that is no longer present.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000287<br />STATUS_REINITIALIZATION_NEEDED</p>
+ </td>
+ <td>
+ <p>The device requires re-initialization due to hardware errors.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000028A<br />STATUS_ENCRYPTION_FAILED</p>
+ </td>
+ <td>
+ <p>The file encryption attempt failed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000028B<br />STATUS_DECRYPTION_FAILED</p>
+ </td>
+ <td>
+ <p>The file decryption attempt failed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000028C<br />STATUS_RANGE_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>The specified range could not be found in the range list.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000028D<br />STATUS_NO_RECOVERY_POLICY</p>
+ </td>
+ <td>
+ <p>There is no encryption recovery policy configured for this system.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000028E<br />STATUS_NO_EFS</p>
+ </td>
+ <td>
+ <p>The required encryption driver is not loaded for this system.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000028F<br />STATUS_WRONG_EFS</p>
+ </td>
+ <td>
+ <p>The file was encrypted with a different encryption driver than is currently loaded.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000290<br />STATUS_NO_USER_KEYS</p>
+ </td>
+ <td>
+ <p>There are no EFS keys defined for the user.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000291<br />STATUS_FILE_NOT_ENCRYPTED</p>
+ </td>
+ <td>
+ <p>The specified file is not encrypted.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000292<br />STATUS_NOT_EXPORT_FORMAT</p>
+ </td>
+ <td>
+ <p>The specified file is not in the defined EFS export format.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000293<br />STATUS_FILE_ENCRYPTED</p>
+ </td>
+ <td>
+ <p>The specified file is encrypted and the user does not have the ability to decrypt it.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000295<br />STATUS_WMI_GUID_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>The GUID passed was not recognized as valid by a WMI data provider.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000296<br />STATUS_WMI_INSTANCE_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>The instance name passed was not recognized as valid by a WMI data provider.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000297<br />STATUS_WMI_ITEMID_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>The data item ID passed was not recognized as valid by a WMI data provider.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000298<br />STATUS_WMI_TRY_AGAIN</p>
+ </td>
+ <td>
+ <p>The WMI request could not be completed and should be retried.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000299<br />STATUS_SHARED_POLICY</p>
+ </td>
+ <td>
+ <p>The policy object is shared and can only be modified at the root.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000029A<br />STATUS_POLICY_OBJECT_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>The policy object does not exist when it should.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000029B<br />STATUS_POLICY_ONLY_IN_DS</p>
+ </td>
+ <td>
+ <p>The requested policy information only lives in the Ds.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000029C<br />STATUS_VOLUME_NOT_UPGRADED</p>
+ </td>
+ <td>
+ <p>The volume must be upgraded to enable this feature.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000029D<br />STATUS_REMOTE_STORAGE_NOT_ACTIVE</p>
+ </td>
+ <td>
+ <p>The remote storage service is not operational at this time.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000029E<br />STATUS_REMOTE_STORAGE_MEDIA_ERROR</p>
+ </td>
+ <td>
+ <p>The remote storage service encountered a media error.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000029F<br />STATUS_NO_TRACKING_SERVICE</p>
+ </td>
+ <td>
+ <p>The tracking (workstation) service is not running.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002A0<br />STATUS_SERVER_SID_MISMATCH</p>
+ </td>
+ <td>
+ <p>The server process is running under a SID that is different from the SID that is required by client.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002A1<br />STATUS_DS_NO_ATTRIBUTE_OR_VALUE</p>
+ </td>
+ <td>
+ <p>The specified directory service attribute or value does not exist.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002A2<br />STATUS_DS_INVALID_ATTRIBUTE_SYNTAX</p>
+ </td>
+ <td>
+ <p>The attribute syntax specified to the directory service is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002A3<br />STATUS_DS_ATTRIBUTE_TYPE_UNDEFINED</p>
+ </td>
+ <td>
+ <p>The attribute type specified to the directory service is not defined.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002A4<br />STATUS_DS_ATTRIBUTE_OR_VALUE_EXISTS</p>
+ </td>
+ <td>
+ <p>The specified directory service attribute or value already exists.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002A5<br />STATUS_DS_BUSY</p>
+ </td>
+ <td>
+ <p>The directory service is busy.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002A6<br />STATUS_DS_UNAVAILABLE</p>
+ </td>
+ <td>
+ <p>The directory service is unavailable.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002A7<br />STATUS_DS_NO_RIDS_ALLOCATED</p>
+ </td>
+ <td>
+ <p>The directory service was unable to allocate a relative identifier.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002A8<br />STATUS_DS_NO_MORE_RIDS</p>
+ </td>
+ <td>
+ <p>The directory service has exhausted the pool of relative identifiers.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002A9<br />STATUS_DS_INCORRECT_ROLE_OWNER</p>
+ </td>
+ <td>
+ <p>The requested operation could not be performed because the directory service is not the master for that type of operation.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002AA<br />STATUS_DS_RIDMGR_INIT_ERROR</p>
+ </td>
+ <td>
+ <p>The directory service was unable to initialize the subsystem that allocates relative identifiers.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002AB<br />STATUS_DS_OBJ_CLASS_VIOLATION</p>
+ </td>
+ <td>
+ <p>The requested operation did not satisfy one or more constraints that are associated with the class of the object.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002AC<br />STATUS_DS_CANT_ON_NON_LEAF</p>
+ </td>
+ <td>
+ <p>The directory service can perform the requested operation only on a leaf object.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002AD<br />STATUS_DS_CANT_ON_RDN</p>
+ </td>
+ <td>
+ <p>The directory service cannot perform the requested operation on the Relatively Defined Name (RDN) attribute of an object.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002AE<br />STATUS_DS_CANT_MOD_OBJ_CLASS</p>
+ </td>
+ <td>
+ <p>The directory service detected an attempt to modify the object class of an object.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002AF<br />STATUS_DS_CROSS_DOM_MOVE_FAILED</p>
+ </td>
+ <td>
+ <p>An error occurred while performing a cross domain move operation.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002B0<br />STATUS_DS_GC_NOT_AVAILABLE</p>
+ </td>
+ <td>
+ <p>Unable to contact the global catalog server.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002B1<br />STATUS_DIRECTORY_SERVICE_REQUIRED</p>
+ </td>
+ <td>
+ <p>The requested operation requires a directory service, and none was available.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002B2<br />STATUS_REPARSE_ATTRIBUTE_CONFLICT</p>
+ </td>
+ <td>
+ <p>The reparse attribute cannot be set because it is incompatible with an existing attribute.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002B3<br />STATUS_CANT_ENABLE_DENY_ONLY</p>
+ </td>
+ <td>
+ <p>A group marked "use for deny only" cannot be enabled.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002B4<br />STATUS_FLOAT_MULTIPLE_FAULTS</p>
+ </td>
+ <td>
+ <p>{EXCEPTION} Multiple floating-point faults.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002B5<br />STATUS_FLOAT_MULTIPLE_TRAPS</p>
+ </td>
+ <td>
+ <p>{EXCEPTION} Multiple floating-point traps.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002B6<br />STATUS_DEVICE_REMOVED</p>
+ </td>
+ <td>
+ <p>The device has been removed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002B7<br />STATUS_JOURNAL_DELETE_IN_PROGRESS</p>
+ </td>
+ <td>
+ <p>The volume change journal is being deleted.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002B8<br />STATUS_JOURNAL_NOT_ACTIVE</p>
+ </td>
+ <td>
+ <p>The volume change journal is not active.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002B9<br />STATUS_NOINTERFACE</p>
+ </td>
+ <td>
+ <p>The requested interface is not supported.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002C1<br />STATUS_DS_ADMIN_LIMIT_EXCEEDED</p>
+ </td>
+ <td>
+ <p>A directory service resource limit has been exceeded.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002C2<br />STATUS_DRIVER_FAILED_SLEEP</p>
+ </td>
+ <td>
+ <p>{System Standby Failed} The driver %hs does not support standby mode. Updating this driver may allow the system to go to standby mode.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002C3<br />STATUS_MUTUAL_AUTHENTICATION_FAILED</p>
+ </td>
+ <td>
+ <p>Mutual Authentication failed. The server password is out of date at the domain controller.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002C4<br />STATUS_CORRUPT_SYSTEM_FILE</p>
+ </td>
+ <td>
+ <p>The system file %1 has become corrupt and has been replaced.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002C5<br />STATUS_DATATYPE_MISALIGNMENT_ERROR</p>
+ </td>
+ <td>
+ <p>{EXCEPTION} Alignment Error A data type misalignment error was detected in a load or store instruction.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002C6<br />STATUS_WMI_READ_ONLY</p>
+ </td>
+ <td>
+ <p>The WMI data item or data block is read-only.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002C7<br />STATUS_WMI_SET_FAILURE</p>
+ </td>
+ <td>
+ <p>The WMI data item or data block could not be changed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002C8<br />STATUS_COMMITMENT_MINIMUM</p>
+ </td>
+ <td>
+ <p>{Virtual Memory Minimum Too Low} Your system is low on virtual memory. Windows is increasing the size of your virtual memory paging file. During this process, memory requests for some applications may be denied. For more information, see Help.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002C9<br />STATUS_REG_NAT_CONSUMPTION</p>
+ </td>
+ <td>
+ <p>{EXCEPTION} Register NaT consumption faults. A NaT value is consumed on a non-speculative instruction.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002CA<br />STATUS_TRANSPORT_FULL</p>
+ </td>
+ <td>
+ <p>The transport element of the medium changer contains media, which is causing the operation to fail.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002CB<br />STATUS_DS_SAM_INIT_FAILURE</p>
+ </td>
+ <td>
+ <p>Security Accounts Manager initialization failed because of the following error: %hs Error Status: 0x%x. Click OK to shut down this system and restart in Directory Services Restore Mode. Check the event log for more detailed information.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002CC<br />STATUS_ONLY_IF_CONNECTED</p>
+ </td>
+ <td>
+ <p>This operation is supported only when you are connected to the server.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002CD<br />STATUS_DS_SENSITIVE_GROUP_VIOLATION</p>
+ </td>
+ <td>
+ <p>Only an administrator can modify the membership list of an administrative group.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002CE<br />STATUS_PNP_RESTART_ENUMERATION</p>
+ </td>
+ <td>
+ <p>A device was removed so enumeration must be restarted.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002CF<br />STATUS_JOURNAL_ENTRY_DELETED</p>
+ </td>
+ <td>
+ <p>The journal entry has been deleted from the journal.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002D0<br />STATUS_DS_CANT_MOD_PRIMARYGROUPID</p>
+ </td>
+ <td>
+ <p>Cannot change the primary group ID of a domain controller account.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002D1<br />STATUS_SYSTEM_IMAGE_BAD_SIGNATURE</p>
+ </td>
+ <td>
+ <p>{Fatal System Error} The system image %s is not properly signed. The file has been replaced with the signed file. The system has been shut down.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002D2<br />STATUS_PNP_REBOOT_REQUIRED</p>
+ </td>
+ <td>
+ <p>The device will not start without a reboot.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002D3<br />STATUS_POWER_STATE_INVALID</p>
+ </td>
+ <td>
+ <p>The power state of the current device cannot support this request.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002D4<br />STATUS_DS_INVALID_GROUP_TYPE</p>
+ </td>
+ <td>
+ <p>The specified group type is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002D5<br />STATUS_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN</p>
+ </td>
+ <td>
+ <p>In a mixed domain, no nesting of a global group if the group is security enabled.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002D6<br />STATUS_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN</p>
+ </td>
+ <td>
+ <p>In a mixed domain, cannot nest local groups with other local groups, if the group is security enabled.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002D7<br />STATUS_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER</p>
+ </td>
+ <td>
+ <p>A global group cannot have a local group as a member.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002D8<br />STATUS_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER</p>
+ </td>
+ <td>
+ <p>A global group cannot have a universal group as a member.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002D9<br />STATUS_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER</p>
+ </td>
+ <td>
+ <p>A universal group cannot have a local group as a member.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002DA<br />STATUS_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER</p>
+ </td>
+ <td>
+ <p>A global group cannot have a cross-domain member.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002DB<br />STATUS_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER</p>
+ </td>
+ <td>
+ <p>A local group cannot have another cross-domain local group as a member.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002DC<br />STATUS_DS_HAVE_PRIMARY_MEMBERS</p>
+ </td>
+ <td>
+ <p>Cannot change to a security-disabled group because primary members are in this group.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002DD<br />STATUS_WMI_NOT_SUPPORTED</p>
+ </td>
+ <td>
+ <p>The WMI operation is not supported by the data block or method.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002DE<br />STATUS_INSUFFICIENT_POWER</p>
+ </td>
+ <td>
+ <p>There is not enough power to complete the requested operation.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002DF<br />STATUS_SAM_NEED_BOOTKEY_PASSWORD</p>
+ </td>
+ <td>
+ <p>The Security Accounts Manager needs to get the boot password.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002E0<br />STATUS_SAM_NEED_BOOTKEY_FLOPPY</p>
+ </td>
+ <td>
+ <p>The Security Accounts Manager needs to get the boot key from the floppy disk.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002E1<br />STATUS_DS_CANT_START</p>
+ </td>
+ <td>
+ <p>The directory service cannot start.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002E2<br />STATUS_DS_INIT_FAILURE</p>
+ </td>
+ <td>
+ <p>The directory service could not start because of the following error: %hs Error Status: 0x%x. Click OK to shut down this system and restart in Directory Services Restore Mode. Check the event log for more detailed information.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002E3<br />STATUS_SAM_INIT_FAILURE</p>
+ </td>
+ <td>
+ <p>The Security Accounts Manager initialization failed because of the following error: %hs Error Status: 0x%x. Click OK to shut down this system and restart in Safe Mode. Check the event log for more detailed information.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002E4<br />STATUS_DS_GC_REQUIRED</p>
+ </td>
+ <td>
+ <p>The requested operation can be performed only on a global catalog server.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002E5<br />STATUS_DS_LOCAL_MEMBER_OF_LOCAL_ONLY</p>
+ </td>
+ <td>
+ <p>A local group can only be a member of other local groups in the same domain.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002E6<br />STATUS_DS_NO_FPO_IN_UNIVERSAL_GROUPS</p>
+ </td>
+ <td>
+ <p>Foreign security principals cannot be members of universal groups.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002E7<br />STATUS_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED</p>
+ </td>
+ <td>
+ <p>Your computer could not be joined to the domain. You have exceeded the maximum number of computer accounts you are allowed to create in this domain. Contact your system administrator to have this limit reset or increased.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002E9<br />STATUS_CURRENT_DOMAIN_NOT_ALLOWED</p>
+ </td>
+ <td>
+ <p>This operation cannot be performed on the current domain.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002EA<br />STATUS_CANNOT_MAKE</p>
+ </td>
+ <td>
+ <p>The directory or file cannot be created.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002EB<br />STATUS_SYSTEM_SHUTDOWN</p>
+ </td>
+ <td>
+ <p>The system is in the process of shutting down.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002EC<br />STATUS_DS_INIT_FAILURE_CONSOLE</p>
+ </td>
+ <td>
+ <p>Directory Services could not start because of the following error: %hs Error Status: 0x%x. Click OK to shut down the system. You can use the recovery console to diagnose the system further.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002ED<br />STATUS_DS_SAM_INIT_FAILURE_CONSOLE</p>
+ </td>
+ <td>
+ <p>Security Accounts Manager initialization failed because of the following error: %hs Error Status: 0x%x. Click OK to shut down the system. You can use the recovery console to diagnose the system further.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002EE<br />STATUS_UNFINISHED_CONTEXT_DELETED</p>
+ </td>
+ <td>
+ <p>A security context was deleted before the context was completed. This is considered a logon failure.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002EF<br />STATUS_NO_TGT_REPLY</p>
+ </td>
+ <td>
+ <p>The client is trying to negotiate a context and the server requires user-to-user but did not send a TGT reply.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002F0<br />STATUS_OBJECTID_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>An object ID was not found in the file.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002F1<br />STATUS_NO_IP_ADDRESSES</p>
+ </td>
+ <td>
+ <p>Unable to accomplish the requested task because the local machine does not have any IP addresses.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002F2<br />STATUS_WRONG_CREDENTIAL_HANDLE</p>
+ </td>
+ <td>
+ <p>The supplied credential handle does not match the credential that is associated with the security context.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002F3<br />STATUS_CRYPTO_SYSTEM_INVALID</p>
+ </td>
+ <td>
+ <p>The crypto system or checksum function is invalid because a required function is unavailable.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002F4<br />STATUS_MAX_REFERRALS_EXCEEDED</p>
+ </td>
+ <td>
+ <p>The number of maximum ticket referrals has been exceeded.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002F5<br />STATUS_MUST_BE_KDC</p>
+ </td>
+ <td>
+ <p>The local machine must be a Kerberos KDC (domain controller) and it is not.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002F6<br />STATUS_STRONG_CRYPTO_NOT_SUPPORTED</p>
+ </td>
+ <td>
+ <p>The other end of the security negotiation requires strong crypto but it is not supported on the local machine.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002F7<br />STATUS_TOO_MANY_PRINCIPALS</p>
+ </td>
+ <td>
+ <p>The KDC reply contained more than one principal name.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002F8<br />STATUS_NO_PA_DATA</p>
+ </td>
+ <td>
+ <p>Expected to find PA data for a hint of what etype to use, but it was not found.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002F9<br />STATUS_PKINIT_NAME_MISMATCH</p>
+ </td>
+ <td>
+ <p>The client certificate does not contain a valid UPN, or does not match the client name in the logon request. Contact your administrator.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002FA<br />STATUS_SMARTCARD_LOGON_REQUIRED</p>
+ </td>
+ <td>
+ <p>Smart card logon is required and was not used.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002FB<br />STATUS_KDC_INVALID_REQUEST</p>
+ </td>
+ <td>
+ <p>An invalid request was sent to the KDC.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002FC<br />STATUS_KDC_UNABLE_TO_REFER</p>
+ </td>
+ <td>
+ <p>The KDC was unable to generate a referral for the service requested.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002FD<br />STATUS_KDC_UNKNOWN_ETYPE</p>
+ </td>
+ <td>
+ <p>The encryption type requested is not supported by the KDC.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002FE<br />STATUS_SHUTDOWN_IN_PROGRESS</p>
+ </td>
+ <td>
+ <p>A system shutdown is in progress.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00002FF<br />STATUS_SERVER_SHUTDOWN_IN_PROGRESS</p>
+ </td>
+ <td>
+ <p>The server machine is shutting down.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000300<br />STATUS_NOT_SUPPORTED_ON_SBS</p>
+ </td>
+ <td>
+ <p>This operation is not supported on a computer running Windows Server 2003 for Small Business Server.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000301<br />STATUS_WMI_GUID_DISCONNECTED</p>
+ </td>
+ <td>
+ <p>The WMI GUID is no longer available.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000302<br />STATUS_WMI_ALREADY_DISABLED</p>
+ </td>
+ <td>
+ <p>Collection or events for the WMI GUID is already disabled.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000303<br />STATUS_WMI_ALREADY_ENABLED</p>
+ </td>
+ <td>
+ <p>Collection or events for the WMI GUID is already enabled.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000304<br />STATUS_MFT_TOO_FRAGMENTED</p>
+ </td>
+ <td>
+ <p>The master file table on the volume is too fragmented to complete this operation.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000305<br />STATUS_COPY_PROTECTION_FAILURE</p>
+ </td>
+ <td>
+ <p>Copy protection failure.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000306<br />STATUS_CSS_AUTHENTICATION_FAILURE</p>
+ </td>
+ <td>
+ <p>Copy protection error—DVD CSS Authentication failed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000307<br />STATUS_CSS_KEY_NOT_PRESENT</p>
+ </td>
+ <td>
+ <p>Copy protection error—The specified sector does not contain a valid key.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000308<br />STATUS_CSS_KEY_NOT_ESTABLISHED</p>
+ </td>
+ <td>
+ <p>Copy protection error—DVD session key not established.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000309<br />STATUS_CSS_SCRAMBLED_SECTOR</p>
+ </td>
+ <td>
+ <p>Copy protection error—The read failed because the sector is encrypted.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000030A<br />STATUS_CSS_REGION_MISMATCH</p>
+ </td>
+ <td>
+ <p>Copy protection error—The region of the specified DVD does not correspond to the region setting of the drive.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000030B<br />STATUS_CSS_RESETS_EXHAUSTED</p>
+ </td>
+ <td>
+ <p>Copy protection error—The region setting of the drive may be permanent.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000320<br />STATUS_PKINIT_FAILURE</p>
+ </td>
+ <td>
+ <p>The Kerberos protocol encountered an error while validating the KDC certificate during smart card logon. There is more information in the system event log.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000321<br />STATUS_SMARTCARD_SUBSYSTEM_FAILURE</p>
+ </td>
+ <td>
+ <p>The Kerberos protocol encountered an error while attempting to use the smart card subsystem.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000322<br />STATUS_NO_KERB_KEY</p>
+ </td>
+ <td>
+ <p>The target server does not have acceptable Kerberos credentials.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000350<br />STATUS_HOST_DOWN</p>
+ </td>
+ <td>
+ <p>The transport determined that the remote system is down.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000351<br />STATUS_UNSUPPORTED_PREAUTH</p>
+ </td>
+ <td>
+ <p>An unsupported pre-authentication mechanism was presented to the Kerberos package.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000352<br />STATUS_EFS_ALG_BLOB_TOO_BIG</p>
+ </td>
+ <td>
+ <p>The encryption algorithm that is used on the source file needs a bigger key buffer than the one that is used on the destination file.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000353<br />STATUS_PORT_NOT_SET</p>
+ </td>
+ <td>
+ <p>An attempt to remove a processes DebugPort was made, but a port was not already associated with the process.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000354<br />STATUS_DEBUGGER_INACTIVE</p>
+ </td>
+ <td>
+ <p>An attempt to do an operation on a debug port failed because the port is in the process of being deleted.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000355<br />STATUS_DS_VERSION_CHECK_FAILURE</p>
+ </td>
+ <td>
+ <p>This version of Windows is not compatible with the behavior version of the directory forest, domain, or domain controller.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000356<br />STATUS_AUDITING_DISABLED</p>
+ </td>
+ <td>
+ <p>The specified event is currently not being audited.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000357<br />STATUS_PRENT4_MACHINE_ACCOUNT</p>
+ </td>
+ <td>
+ <p>The machine account was created prior to Windows NT 4.0. The account needs to be recreated.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000358<br />STATUS_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER</p>
+ </td>
+ <td>
+ <p>An account group cannot have a universal group as a member.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000359<br />STATUS_INVALID_IMAGE_WIN_32</p>
+ </td>
+ <td>
+ <p>The specified image file did not have the correct format; it appears to be a 32-bit Windows image.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000035A<br />STATUS_INVALID_IMAGE_WIN_64</p>
+ </td>
+ <td>
+ <p>The specified image file did not have the correct format; it appears to be a 64-bit Windows image.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000035B<br />STATUS_BAD_BINDINGS</p>
+ </td>
+ <td>
+ <p>The client's supplied SSPI channel bindings were incorrect.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000035C<br />STATUS_NETWORK_SESSION_EXPIRED</p>
+ </td>
+ <td>
+ <p>The client session has expired; so the client must re-authenticate to continue accessing the remote resources.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000035D<br />STATUS_APPHELP_BLOCK</p>
+ </td>
+ <td>
+ <p>The AppHelp dialog box canceled; thus preventing the application from starting.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000035E<br />STATUS_ALL_SIDS_FILTERED</p>
+ </td>
+ <td>
+ <p>The SID filtering operation removed all SIDs.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000035F<br />STATUS_NOT_SAFE_MODE_DRIVER</p>
+ </td>
+ <td>
+ <p>The driver was not loaded because the system is starting in safe mode.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000361<br />STATUS_ACCESS_DISABLED_BY_POLICY_DEFAULT</p>
+ </td>
+ <td>
+ <p>Access to %1 has been restricted by your Administrator by the default software restriction policy level.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000362<br />STATUS_ACCESS_DISABLED_BY_POLICY_PATH</p>
+ </td>
+ <td>
+ <p>Access to %1 has been restricted by your Administrator by location with policy rule %2 placed on path %3.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000363<br />STATUS_ACCESS_DISABLED_BY_POLICY_PUBLISHER</p>
+ </td>
+ <td>
+ <p>Access to %1 has been restricted by your Administrator by software publisher policy.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000364<br />STATUS_ACCESS_DISABLED_BY_POLICY_OTHER</p>
+ </td>
+ <td>
+ <p>Access to %1 has been restricted by your Administrator by policy rule %2.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000365<br />STATUS_FAILED_DRIVER_ENTRY</p>
+ </td>
+ <td>
+ <p>The driver was not loaded because it failed its initialization call.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000366<br />STATUS_DEVICE_ENUMERATION_ERROR</p>
+ </td>
+ <td>
+ <p>The device encountered an error while applying power or reading the device configuration. This may be caused by a failure of your hardware or by a poor connection.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000368<br />STATUS_MOUNT_POINT_NOT_RESOLVED</p>
+ </td>
+ <td>
+ <p>The create operation failed because the name contained at least one mount point that resolves to a volume to which the specified device object is not attached.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000369<br />STATUS_INVALID_DEVICE_OBJECT_PARAMETER</p>
+ </td>
+ <td>
+ <p>The device object parameter is either not a valid device object or is not attached to the volume that is specified by the file name.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000036A<br />STATUS_MCA_OCCURED</p>
+ </td>
+ <td>
+ <p>A machine check error has occurred. Check the system event log for additional information.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000036B<br />STATUS_DRIVER_BLOCKED_CRITICAL</p>
+ </td>
+ <td>
+ <p>Driver %2 has been blocked from loading.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000036C<br />STATUS_DRIVER_BLOCKED</p>
+ </td>
+ <td>
+ <p>Driver %2 has been blocked from loading.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000036D<br />STATUS_DRIVER_DATABASE_ERROR</p>
+ </td>
+ <td>
+ <p>There was error [%2] processing the driver database.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000036E<br />STATUS_SYSTEM_HIVE_TOO_LARGE</p>
+ </td>
+ <td>
+ <p>System hive size has exceeded its limit.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000036F<br />STATUS_INVALID_IMPORT_OF_NON_DLL</p>
+ </td>
+ <td>
+ <p>A dynamic link library (DLL) referenced a module that was neither a DLL nor the process's executable image.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000371<br />STATUS_NO_SECRETS</p>
+ </td>
+ <td>
+ <p>The local account store does not contain secret material for the specified account.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000372<br />STATUS_ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY</p>
+ </td>
+ <td>
+ <p>Access to %1 has been restricted by your Administrator by policy rule %2.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000373<br />STATUS_FAILED_STACK_SWITCH</p>
+ </td>
+ <td>
+ <p>The system was not able to allocate enough memory to perform a stack switch.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000374<br />STATUS_HEAP_CORRUPTION</p>
+ </td>
+ <td>
+ <p>A heap has been corrupted.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000380<br />STATUS_SMARTCARD_WRONG_PIN</p>
+ </td>
+ <td>
+ <p>An incorrect PIN was presented to the smart card.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000381<br />STATUS_SMARTCARD_CARD_BLOCKED</p>
+ </td>
+ <td>
+ <p>The smart card is blocked.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000382<br />STATUS_SMARTCARD_CARD_NOT_AUTHENTICATED</p>
+ </td>
+ <td>
+ <p>No PIN was presented to the smart card.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000383<br />STATUS_SMARTCARD_NO_CARD</p>
+ </td>
+ <td>
+ <p>No smart card is available.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000384<br />STATUS_SMARTCARD_NO_KEY_CONTAINER</p>
+ </td>
+ <td>
+ <p>The requested key container does not exist on the smart card.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000385<br />STATUS_SMARTCARD_NO_CERTIFICATE</p>
+ </td>
+ <td>
+ <p>The requested certificate does not exist on the smart card.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000386<br />STATUS_SMARTCARD_NO_KEYSET</p>
+ </td>
+ <td>
+ <p>The requested keyset does not exist.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000387<br />STATUS_SMARTCARD_IO_ERROR</p>
+ </td>
+ <td>
+ <p>A communication error with the smart card has been detected.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000388<br />STATUS_DOWNGRADE_DETECTED</p>
+ </td>
+ <td>
+ <p>The system detected a possible attempt to compromise security. Ensure that you can contact the server that authenticated you.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000389<br />STATUS_SMARTCARD_CERT_REVOKED</p>
+ </td>
+ <td>
+ <p>The smart card certificate used for authentication has been revoked. Contact your system administrator. There may be additional information in the event log.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000038A<br />STATUS_ISSUING_CA_UNTRUSTED</p>
+ </td>
+ <td>
+ <p>An untrusted certificate authority was detected while processing the smart card certificate that is used for authentication. Contact your system administrator.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000038B<br />STATUS_REVOCATION_OFFLINE_C</p>
+ </td>
+ <td>
+ <p>The revocation status of the smart card certificate that is used for authentication could not be determined. Contact your system administrator.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000038C<br />STATUS_PKINIT_CLIENT_FAILURE</p>
+ </td>
+ <td>
+ <p>The smart card certificate used for authentication was not trusted. Contact your system administrator.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000038D<br />STATUS_SMARTCARD_CERT_EXPIRED</p>
+ </td>
+ <td>
+ <p>The smart card certificate used for authentication has expired. Contact your system administrator.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000038E<br />STATUS_DRIVER_FAILED_PRIOR_UNLOAD</p>
+ </td>
+ <td>
+ <p>The driver could not be loaded because a previous version of the driver is still in memory.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000038F<br />STATUS_SMARTCARD_SILENT_CONTEXT</p>
+ </td>
+ <td>
+ <p>The smart card provider could not perform the action because the context was acquired as silent.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000401<br />STATUS_PER_USER_TRUST_QUOTA_EXCEEDED</p>
+ </td>
+ <td>
+ <p>The delegated trust creation quota of the current user has been exceeded.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000402<br />STATUS_ALL_USER_TRUST_QUOTA_EXCEEDED</p>
+ </td>
+ <td>
+ <p>The total delegated trust creation quota has been exceeded.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000403<br />STATUS_USER_DELETE_TRUST_QUOTA_EXCEEDED</p>
+ </td>
+ <td>
+ <p>The delegated trust deletion quota of the current user has been exceeded.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000404<br />STATUS_DS_NAME_NOT_UNIQUE</p>
+ </td>
+ <td>
+ <p>The requested name already exists as a unique identifier.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000405<br />STATUS_DS_DUPLICATE_ID_FOUND</p>
+ </td>
+ <td>
+ <p>The requested object has a non-unique identifier and cannot be retrieved.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000406<br />STATUS_DS_GROUP_CONVERSION_ERROR</p>
+ </td>
+ <td>
+ <p>The group cannot be converted due to attribute restrictions on the requested group type.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000407<br />STATUS_VOLSNAP_PREPARE_HIBERNATE</p>
+ </td>
+ <td>
+ <p>{Volume Shadow Copy Service} Wait while the Volume Shadow Copy Service prepares volume %hs for hibernation.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000408<br />STATUS_USER2USER_REQUIRED</p>
+ </td>
+ <td>
+ <p>Kerberos sub-protocol User2User is required.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000409<br />STATUS_STACK_BUFFER_OVERRUN</p>
+ </td>
+ <td>
+ <p>The system detected an overrun of a stack-based buffer in this application. This overrun could potentially allow a malicious user to gain control of this application.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000040A<br />STATUS_NO_S4U_PROT_SUPPORT</p>
+ </td>
+ <td>
+ <p>The Kerberos subsystem encountered an error. A service for user protocol request was made against a domain controller which does not support service for user.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000040B<br />STATUS_CROSSREALM_DELEGATION_FAILURE</p>
+ </td>
+ <td>
+ <p>An attempt was made by this server to make a Kerberos constrained delegation request for a target that is outside the server realm. This action is not supported and the resulting error indicates a misconfiguration on the allowed-to-delegate-to list for this server. Contact your administrator.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000040C<br />STATUS_REVOCATION_OFFLINE_KDC</p>
+ </td>
+ <td>
+ <p>The revocation status of the domain controller certificate used for smart card authentication could not be determined. There is additional information in the system event log. Contact your system administrator.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000040D<br />STATUS_ISSUING_CA_UNTRUSTED_KDC</p>
+ </td>
+ <td>
+ <p>An untrusted certificate authority was detected while processing the domain controller certificate used for authentication. There is additional information in the system event log. Contact your system administrator.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000040E<br />STATUS_KDC_CERT_EXPIRED</p>
+ </td>
+ <td>
+ <p>The domain controller certificate used for smart card logon has expired. Contact your system administrator with the contents of your system event log.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000040F<br />STATUS_KDC_CERT_REVOKED</p>
+ </td>
+ <td>
+ <p>The domain controller certificate used for smart card logon has been revoked. Contact your system administrator with the contents of your system event log.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000410<br />STATUS_PARAMETER_QUOTA_EXCEEDED</p>
+ </td>
+ <td>
+ <p>Data present in one of the parameters is more than the function can operate on.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000411<br />STATUS_HIBERNATION_FAILURE</p>
+ </td>
+ <td>
+ <p>The system has failed to hibernate (The error code is %hs). Hibernation will be disabled until the system is restarted.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000412<br />STATUS_DELAY_LOAD_FAILED</p>
+ </td>
+ <td>
+ <p>An attempt to delay-load a .dll or get a function address in a delay-loaded .dll failed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000413<br />STATUS_AUTHENTICATION_FIREWALL_FAILED</p>
+ </td>
+ <td>
+ <p>Logon Failure: The machine you are logging onto is protected by an authentication firewall. The specified account is not allowed to authenticate to the machine.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000414<br />STATUS_VDM_DISALLOWED</p>
+ </td>
+ <td>
+ <p>%hs is a 16-bit application. You do not have permissions to execute 16-bit applications. Check your permissions with your system administrator.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000415<br />STATUS_HUNG_DISPLAY_DRIVER_THREAD</p>
+ </td>
+ <td>
+ <p>{Display Driver Stopped Responding} The %hs display driver has stopped working normally. Save your work and reboot the system to restore full display functionality. The next time you reboot the machine a dialog will be displayed giving you a chance to report this failure to Microsoft.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000416<br />STATUS_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE</p>
+ </td>
+ <td>
+ <p>The Desktop heap encountered an error while allocating session memory. There is more information in the system event log.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000417<br />STATUS_INVALID_CRUNTIME_PARAMETER</p>
+ </td>
+ <td>
+ <p>An invalid parameter was passed to a C runtime function.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000418<br />STATUS_NTLM_BLOCKED</p>
+ </td>
+ <td>
+ <p>The authentication failed because NTLM was blocked.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000419<br />STATUS_DS_SRC_SID_EXISTS_IN_FOREST</p>
+ </td>
+ <td>
+ <p>The source object's SID already exists in destination forest.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000041A<br />STATUS_DS_DOMAIN_NAME_EXISTS_IN_FOREST</p>
+ </td>
+ <td>
+ <p>The domain name of the trusted domain already exists in the forest.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000041B<br />STATUS_DS_FLAT_NAME_EXISTS_IN_FOREST</p>
+ </td>
+ <td>
+ <p>The flat name of the trusted domain already exists in the forest.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000041C<br />STATUS_INVALID_USER_PRINCIPAL_NAME</p>
+ </td>
+ <td>
+ <p>The User Principal Name (UPN) is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000420<br />STATUS_ASSERTION_FAILURE</p>
+ </td>
+ <td>
+ <p>There has been an assertion failure.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000421<br />STATUS_VERIFIER_STOP</p>
+ </td>
+ <td>
+ <p>Application verifier has found an error in the current process.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000423<br />STATUS_CALLBACK_POP_STACK</p>
+ </td>
+ <td>
+ <p>A user mode unwind is in progress.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000424<br />STATUS_INCOMPATIBLE_DRIVER_BLOCKED</p>
+ </td>
+ <td>
+ <p>%2 has been blocked from loading due to incompatibility with this system. Contact your software vendor for a compatible version of the driver.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000425<br />STATUS_HIVE_UNLOADED</p>
+ </td>
+ <td>
+ <p>Illegal operation attempted on a registry key which has already been unloaded.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000426<br />STATUS_COMPRESSION_DISABLED</p>
+ </td>
+ <td>
+ <p>Compression is disabled for this volume.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000427<br />STATUS_FILE_SYSTEM_LIMITATION</p>
+ </td>
+ <td>
+ <p>The requested operation could not be completed due to a file system limitation.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000428<br />STATUS_INVALID_IMAGE_HASH</p>
+ </td>
+ <td>
+ <p>The hash for image %hs cannot be found in the system catalogs. The image is likely corrupt or the victim of tampering.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000429<br />STATUS_NOT_CAPABLE</p>
+ </td>
+ <td>
+ <p>The implementation is not capable of performing the request.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000042A<br />STATUS_REQUEST_OUT_OF_SEQUENCE</p>
+ </td>
+ <td>
+ <p>The requested operation is out of order with respect to other operations.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000042B<br />STATUS_IMPLEMENTATION_LIMIT</p>
+ </td>
+ <td>
+ <p>An operation attempted to exceed an implementation-defined limit.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000042C<br />STATUS_ELEVATION_REQUIRED</p>
+ </td>
+ <td>
+ <p>The requested operation requires elevation.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000042D<br />STATUS_NO_SECURITY_CONTEXT</p>
+ </td>
+ <td>
+ <p>The required security context does not exist.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000042E<br />STATUS_PKU2U_CERT_FAILURE</p>
+ </td>
+ <td>
+ <p>The PKU2U protocol encountered an error while attempting to utilize the associated certificates.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000432<br />STATUS_BEYOND_VDL</p>
+ </td>
+ <td>
+ <p>The operation was attempted beyond the valid data length of the file.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000433<br />STATUS_ENCOUNTERED_WRITE_IN_PROGRESS</p>
+ </td>
+ <td>
+ <p>The attempted write operation encountered a write already in progress for some portion of the range.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000434<br />STATUS_PTE_CHANGED</p>
+ </td>
+ <td>
+ <p>The page fault mappings changed in the middle of processing a fault so the operation must be retried.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000435<br />STATUS_PURGE_FAILED</p>
+ </td>
+ <td>
+ <p>The attempt to purge this file from memory failed to purge some or all the data from memory.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000440<br />STATUS_CRED_REQUIRES_CONFIRMATION</p>
+ </td>
+ <td>
+ <p>The requested credential requires confirmation.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000441<br />STATUS_CS_ENCRYPTION_INVALID_SERVER_RESPONSE</p>
+ </td>
+ <td>
+ <p>The remote server sent an invalid response for a file being opened with Client Side Encryption.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000442<br />STATUS_CS_ENCRYPTION_UNSUPPORTED_SERVER</p>
+ </td>
+ <td>
+ <p>Client Side Encryption is not supported by the remote server even though it claims to support it.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000443<br />STATUS_CS_ENCRYPTION_EXISTING_ENCRYPTED_FILE</p>
+ </td>
+ <td>
+ <p>File is encrypted and should be opened in Client Side Encryption mode.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000444<br />STATUS_CS_ENCRYPTION_NEW_ENCRYPTED_FILE</p>
+ </td>
+ <td>
+ <p>A new encrypted file is being created and a $EFS needs to be provided.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000445<br />STATUS_CS_ENCRYPTION_FILE_NOT_CSE</p>
+ </td>
+ <td>
+ <p>The SMB client requested a CSE FSCTL on a non-CSE file.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000446<br />STATUS_INVALID_LABEL</p>
+ </td>
+ <td>
+ <p>Indicates a particular Security ID may not be assigned as the label of an object.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000450<br />STATUS_DRIVER_PROCESS_TERMINATED</p>
+ </td>
+ <td>
+ <p>The process hosting the driver for this device has terminated.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000451<br />STATUS_AMBIGUOUS_SYSTEM_DEVICE</p>
+ </td>
+ <td>
+ <p>The requested system device cannot be identified due to multiple indistinguishable devices potentially matching the identification criteria.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000452<br />STATUS_SYSTEM_DEVICE_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>The requested system device cannot be found.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000453<br />STATUS_RESTART_BOOT_APPLICATION</p>
+ </td>
+ <td>
+ <p>This boot application must be restarted.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000454<br />STATUS_INSUFFICIENT_NVRAM_RESOURCES</p>
+ </td>
+ <td>
+ <p>Insufficient NVRAM resources exist to complete the API. A reboot might be required.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000460<br />STATUS_NO_RANGES_PROCESSED</p>
+ </td>
+ <td>
+ <p>No ranges for the specified operation were able to be processed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000463<br />STATUS_DEVICE_FEATURE_NOT_SUPPORTED</p>
+ </td>
+ <td>
+ <p>The storage device does not support Offload Write.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000464<br />STATUS_DEVICE_UNREACHABLE</p>
+ </td>
+ <td>
+ <p>Data cannot be moved because the source device cannot communicate with the destination device.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000465<br />STATUS_INVALID_TOKEN</p>
+ </td>
+ <td>
+ <p>The token representing the data is invalid or expired.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000500<br />STATUS_INVALID_TASK_NAME</p>
+ </td>
+ <td>
+ <p>The specified task name is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000501<br />STATUS_INVALID_TASK_INDEX</p>
+ </td>
+ <td>
+ <p>The specified task index is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000502<br />STATUS_THREAD_ALREADY_IN_TASK</p>
+ </td>
+ <td>
+ <p>The specified thread is already joining a task.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000503<br />STATUS_CALLBACK_BYPASS</p>
+ </td>
+ <td>
+ <p>A callback has requested to bypass native code.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000602<br />STATUS_FAIL_FAST_EXCEPTION</p>
+ </td>
+ <td>
+ <p>A fail fast exception occurred. Exception handlers will not be invoked and the process will be terminated immediately.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000603<br />STATUS_IMAGE_CERT_REVOKED</p>
+ </td>
+ <td>
+ <p>Windows cannot verify the digital signature for this file. The signing certificate for this file has been revoked.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000700<br />STATUS_PORT_CLOSED</p>
+ </td>
+ <td>
+ <p>The ALPC port is closed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000701<br />STATUS_MESSAGE_LOST</p>
+ </td>
+ <td>
+ <p>The ALPC message requested is no longer available.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000702<br />STATUS_INVALID_MESSAGE</p>
+ </td>
+ <td>
+ <p>The ALPC message supplied is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000703<br />STATUS_REQUEST_CANCELED</p>
+ </td>
+ <td>
+ <p>The ALPC message has been canceled.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000704<br />STATUS_RECURSIVE_DISPATCH</p>
+ </td>
+ <td>
+ <p>Invalid recursive dispatch attempt.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000705<br />STATUS_LPC_RECEIVE_BUFFER_EXPECTED</p>
+ </td>
+ <td>
+ <p>No receive buffer has been supplied in a synchronous request.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000706<br />STATUS_LPC_INVALID_CONNECTION_USAGE</p>
+ </td>
+ <td>
+ <p>The connection port is used in an invalid context.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000707<br />STATUS_LPC_REQUESTS_NOT_ALLOWED</p>
+ </td>
+ <td>
+ <p>The ALPC port does not accept new request messages.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000708<br />STATUS_RESOURCE_IN_USE</p>
+ </td>
+ <td>
+ <p>The resource requested is already in use.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000709<br />STATUS_HARDWARE_MEMORY_ERROR</p>
+ </td>
+ <td>
+ <p>The hardware has reported an uncorrectable memory error.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000070A<br />STATUS_THREADPOOL_HANDLE_EXCEPTION</p>
+ </td>
+ <td>
+ <p>Status 0x%08x was returned, waiting on handle 0x%x for wait 0x%p, in waiter 0x%p.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000070B<br />STATUS_THREADPOOL_SET_EVENT_ON_COMPLETION_FAILED</p>
+ </td>
+ <td>
+ <p>After a callback to 0x%p(0x%p), a completion call to Set event(0x%p) failed with status 0x%08x.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000070C<br />STATUS_THREADPOOL_RELEASE_SEMAPHORE_ON_COMPLETION_FAILED</p>
+ </td>
+ <td>
+ <p>After a callback to 0x%p(0x%p), a completion call to ReleaseSemaphore(0x%p, %d) failed with status 0x%08x.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000070D<br />STATUS_THREADPOOL_RELEASE_MUTEX_ON_COMPLETION_FAILED</p>
+ </td>
+ <td>
+ <p>After a callback to 0x%p(0x%p), a completion call to ReleaseMutex(%p) failed with status 0x%08x.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000070E<br />STATUS_THREADPOOL_FREE_LIBRARY_ON_COMPLETION_FAILED</p>
+ </td>
+ <td>
+ <p>After a callback to 0x%p(0x%p), a completion call to FreeLibrary(%p) failed with status 0x%08x.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000070F<br />STATUS_THREADPOOL_RELEASED_DURING_OPERATION</p>
+ </td>
+ <td>
+ <p>The thread pool 0x%p was released while a thread was posting a callback to 0x%p(0x%p) to it.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000710<br />STATUS_CALLBACK_RETURNED_WHILE_IMPERSONATING</p>
+ </td>
+ <td>
+ <p>A thread pool worker thread is impersonating a client, after a callback to 0x%p(0x%p). This is unexpected, indicating that the callback is missing a call to revert the impersonation.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000711<br />STATUS_APC_RETURNED_WHILE_IMPERSONATING</p>
+ </td>
+ <td>
+ <p>A thread pool worker thread is impersonating a client, after executing an APC. This is unexpected, indicating that the APC is missing a call to revert the impersonation.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000712<br />STATUS_PROCESS_IS_PROTECTED</p>
+ </td>
+ <td>
+ <p>Either the target process, or the target thread's containing process, is a protected process.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000713<br />STATUS_MCA_EXCEPTION</p>
+ </td>
+ <td>
+ <p>A thread is getting dispatched with MCA EXCEPTION because of MCA.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000714<br />STATUS_CERTIFICATE_MAPPING_NOT_UNIQUE</p>
+ </td>
+ <td>
+ <p>The client certificate account mapping is not unique.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000715<br />STATUS_SYMLINK_CLASS_DISABLED</p>
+ </td>
+ <td>
+ <p>The symbolic link cannot be followed because its type is disabled.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000716<br />STATUS_INVALID_IDN_NORMALIZATION</p>
+ </td>
+ <td>
+ <p>Indicates that the specified string is not valid for IDN normalization.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000717<br />STATUS_NO_UNICODE_TRANSLATION</p>
+ </td>
+ <td>
+ <p>No mapping for the Unicode character exists in the target multi-byte code page.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000718<br />STATUS_ALREADY_REGISTERED</p>
+ </td>
+ <td>
+ <p>The provided callback is already registered.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000719<br />STATUS_CONTEXT_MISMATCH</p>
+ </td>
+ <td>
+ <p>The provided context did not match the target.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000071A<br />STATUS_PORT_ALREADY_HAS_COMPLETION_LIST</p>
+ </td>
+ <td>
+ <p>The specified port already has a completion list.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000071B<br />STATUS_CALLBACK_RETURNED_THREAD_PRIORITY</p>
+ </td>
+ <td>
+ <p>A threadpool worker thread entered a callback at thread base priority 0x%x and exited at priority 0x%x.</p>
+ <p>This is unexpected, indicating that the callback missed restoring the priority.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000071C<br />STATUS_INVALID_THREAD</p>
+ </td>
+ <td>
+ <p>An invalid thread, handle %p, is specified for this operation. Possibly, a threadpool worker thread was specified.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000071D<br />STATUS_CALLBACK_RETURNED_TRANSACTION</p>
+ </td>
+ <td>
+ <p>A threadpool worker thread entered a callback, which left transaction state.</p>
+ <p>This is unexpected, indicating that the callback missed clearing the transaction.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000071E<br />STATUS_CALLBACK_RETURNED_LDR_LOCK</p>
+ </td>
+ <td>
+ <p>A threadpool worker thread entered a callback, which left the loader lock held.</p>
+ <p>This is unexpected, indicating that the callback missed releasing the lock.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000071F<br />STATUS_CALLBACK_RETURNED_LANG</p>
+ </td>
+ <td>
+ <p>A threadpool worker thread entered a callback, which left with preferred languages set.</p>
+ <p>This is unexpected, indicating that the callback missed clearing them.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000720<br />STATUS_CALLBACK_RETURNED_PRI_BACK</p>
+ </td>
+ <td>
+ <p>A threadpool worker thread entered a callback, which left with background priorities set.</p>
+ <p>This is unexpected, indicating that the callback missed restoring the original priorities.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000800<br />STATUS_DISK_REPAIR_DISABLED</p>
+ </td>
+ <td>
+ <p>The attempted operation required self healing to be enabled.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000801<br />STATUS_DS_DOMAIN_RENAME_IN_PROGRESS</p>
+ </td>
+ <td>
+ <p>The directory service cannot perform the requested operation because a domain rename operation is in progress.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000802<br />STATUS_DISK_QUOTA_EXCEEDED</p>
+ </td>
+ <td>
+ <p>An operation failed because the storage quota was exceeded.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000804<br />STATUS_CONTENT_BLOCKED</p>
+ </td>
+ <td>
+ <p>An operation failed because the content was blocked.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000805<br />STATUS_BAD_CLUSTERS</p>
+ </td>
+ <td>
+ <p>The operation could not be completed due to bad clusters on disk.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000806<br />STATUS_VOLUME_DIRTY</p>
+ </td>
+ <td>
+ <p>The operation could not be completed because the volume is dirty. Please run the Chkdsk utility and try again. </p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000901<br />STATUS_FILE_CHECKED_OUT</p>
+ </td>
+ <td>
+ <p>This file is checked out or locked for editing by another user.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000902<br />STATUS_CHECKOUT_REQUIRED</p>
+ </td>
+ <td>
+ <p>The file must be checked out before saving changes.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000903<br />STATUS_BAD_FILE_TYPE</p>
+ </td>
+ <td>
+ <p>The file type being saved or retrieved has been blocked.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000904<br />STATUS_FILE_TOO_LARGE</p>
+ </td>
+ <td>
+ <p>The file size exceeds the limit allowed and cannot be saved.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000905<br />STATUS_FORMS_AUTH_REQUIRED</p>
+ </td>
+ <td>
+ <p>Access Denied. Before opening files in this location, you must first browse to the e.g. site and select the option to log on automatically.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000906<br />STATUS_VIRUS_INFECTED</p>
+ </td>
+ <td>
+ <p>The operation did not complete successfully because the file contains a virus.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000907<br />STATUS_VIRUS_DELETED</p>
+ </td>
+ <td>
+ <p>This file contains a virus and cannot be opened. Due to the nature of this virus, the file has been removed from this location.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000908<br />STATUS_BAD_MCFG_TABLE</p>
+ </td>
+ <td>
+ <p>The resources required for this device conflict with the MCFG table.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0000909<br />STATUS_CANNOT_BREAK_OPLOCK</p>
+ </td>
+ <td>
+ <p>The operation did not complete successfully because it would cause an oplock to be broken. The caller has requested that existing oplocks not be broken.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0009898<br />STATUS_WOW_ASSERTION</p>
+ </td>
+ <td>
+ <p>WOW Assertion Error.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000A000<br />STATUS_INVALID_SIGNATURE</p>
+ </td>
+ <td>
+ <p>The cryptographic signature is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000A001<br />STATUS_HMAC_NOT_SUPPORTED</p>
+ </td>
+ <td>
+ <p>The cryptographic provider does not support HMAC.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000A010<br />STATUS_IPSEC_QUEUE_OVERFLOW</p>
+ </td>
+ <td>
+ <p>The IPsec queue overflowed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000A011<br />STATUS_ND_QUEUE_OVERFLOW</p>
+ </td>
+ <td>
+ <p>The neighbor discovery queue overflowed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000A012<br />STATUS_HOPLIMIT_EXCEEDED</p>
+ </td>
+ <td>
+ <p>An Internet Control Message Protocol (ICMP) hop limit exceeded error was received.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000A013<br />STATUS_PROTOCOL_NOT_SUPPORTED</p>
+ </td>
+ <td>
+ <p>The protocol is not installed on the local machine.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000A080<br />STATUS_LOST_WRITEBEHIND_DATA_NETWORK_DISCONNECTED</p>
+ </td>
+ <td>
+ <p>{Delayed Write Failed} Windows was unable to save all the data for the file %hs; the data has been lost. This error may be caused by network connectivity issues. Try to save this file elsewhere.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000A081<br />STATUS_LOST_WRITEBEHIND_DATA_NETWORK_SERVER_ERROR</p>
+ </td>
+ <td>
+ <p>{Delayed Write Failed} Windows was unable to save all the data for the file %hs; the data has been lost. This error was returned by the server on which the file exists. Try to save this file elsewhere.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000A082<br />STATUS_LOST_WRITEBEHIND_DATA_LOCAL_DISK_ERROR</p>
+ </td>
+ <td>
+ <p>{Delayed Write Failed} Windows was unable to save all the data for the file %hs; the data has been lost. This error may be caused if the device has been removed or the media is write-protected.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000A083<br />STATUS_XML_PARSE_ERROR</p>
+ </td>
+ <td>
+ <p>Windows was unable to parse the requested XML data.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000A084<br />STATUS_XMLDSIG_ERROR</p>
+ </td>
+ <td>
+ <p>An error was encountered while processing an XML digital signature.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000A085<br />STATUS_WRONG_COMPARTMENT</p>
+ </td>
+ <td>
+ <p>This indicates that the caller made the connection request in the wrong routing compartment.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000A086<br />STATUS_AUTHIP_FAILURE</p>
+ </td>
+ <td>
+ <p>This indicates that there was an AuthIP failure when attempting to connect to the remote host.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000A087<br />STATUS_DS_OID_MAPPED_GROUP_CANT_HAVE_MEMBERS</p>
+ </td>
+ <td>
+ <p>OID mapped groups cannot have members.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000A088<br />STATUS_DS_OID_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>The specified OID cannot be found.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000A100<br />STATUS_HASH_NOT_SUPPORTED</p>
+ </td>
+ <td>
+ <p>Hash generation for the specified version and hash type is not enabled on server.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000A101<br />STATUS_HASH_NOT_PRESENT</p>
+ </td>
+ <td>
+ <p>The hash requests is not present or not up to date with the current file contents.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000A2A1<br />STATUS_OFFLOAD_READ_FLT_NOT_SUPPORTED</p>
+ </td>
+ <td>
+ <p>A file system filter on the server has not opted in for Offload Read support.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000A2A2<br />STATUS_OFFLOAD_WRITE_FLT_NOT_SUPPORTED</p>
+ </td>
+ <td>
+ <p>A file system filter on the server has not opted in for Offload Write support.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000A2A3<br />STATUS_OFFLOAD_READ_FILE_NOT_SUPPORTED</p>
+ </td>
+ <td>
+ <p>Offload read operations cannot be performed on:</p>
+ <ul>
+ <li class="unordered">
+ <p class="BulletedList">Compressed files</p>
+ </li>
+ <li class="unordered">
+ <p class="BulletedList">Sparse files</p>
+ </li>
+ <li class="unordered">
+ <p class="BulletedList">Encrypted files</p>
+ </li>
+ <li class="unordered">
+ <p class="BulletedList">File system metadata files</p>
+ </li>
+ </ul>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC000A2A4<br />STATUS_OFFLOAD_WRITE_FILE_NOT_SUPPORTED</p>
+ </td>
+ <td>
+ <p>Offload write operations cannot be performed on:</p>
+ <ul>
+ <li class="unordered">
+ <p class="BulletedList">Compressed files</p>
+ </li>
+ <li class="unordered">
+ <p class="BulletedList">Sparse files</p>
+ </li>
+ <li class="unordered">
+ <p class="BulletedList">Encrypted files</p>
+ </li>
+ <li class="unordered">
+ <p class="BulletedList">File system metadata files</p>
+ </li>
+ </ul>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0010001<br />DBG_NO_STATE_CHANGE</p>
+ </td>
+ <td>
+ <p>The debugger did not perform a state change.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0010002<br />DBG_APP_NOT_IDLE</p>
+ </td>
+ <td>
+ <p>The debugger found that the application is not idle.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0020001<br />RPC_NT_INVALID_STRING_BINDING</p>
+ </td>
+ <td>
+ <p>The string binding is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0020002<br />RPC_NT_WRONG_KIND_OF_BINDING</p>
+ </td>
+ <td>
+ <p>The binding handle is not the correct type.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0020003<br />RPC_NT_INVALID_BINDING</p>
+ </td>
+ <td>
+ <p>The binding handle is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0020004<br />RPC_NT_PROTSEQ_NOT_SUPPORTED</p>
+ </td>
+ <td>
+ <p>The RPC protocol sequence is not supported.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0020005<br />RPC_NT_INVALID_RPC_PROTSEQ</p>
+ </td>
+ <td>
+ <p>The RPC protocol sequence is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0020006<br />RPC_NT_INVALID_STRING_UUID</p>
+ </td>
+ <td>
+ <p>The string UUID is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0020007<br />RPC_NT_INVALID_ENDPOINT_FORMAT</p>
+ </td>
+ <td>
+ <p>The endpoint format is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0020008<br />RPC_NT_INVALID_NET_ADDR</p>
+ </td>
+ <td>
+ <p>The network address is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0020009<br />RPC_NT_NO_ENDPOINT_FOUND</p>
+ </td>
+ <td>
+ <p>No endpoint was found.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC002000A<br />RPC_NT_INVALID_TIMEOUT</p>
+ </td>
+ <td>
+ <p>The time-out value is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC002000B<br />RPC_NT_OBJECT_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>The object UUID was not found.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC002000C<br />RPC_NT_ALREADY_REGISTERED</p>
+ </td>
+ <td>
+ <p>The object UUID has already been registered.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC002000D<br />RPC_NT_TYPE_ALREADY_REGISTERED</p>
+ </td>
+ <td>
+ <p>The type UUID has already been registered.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC002000E<br />RPC_NT_ALREADY_LISTENING</p>
+ </td>
+ <td>
+ <p>The RPC server is already listening.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC002000F<br />RPC_NT_NO_PROTSEQS_REGISTERED</p>
+ </td>
+ <td>
+ <p>No protocol sequences have been registered.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0020010<br />RPC_NT_NOT_LISTENING</p>
+ </td>
+ <td>
+ <p>The RPC server is not listening.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0020011<br />RPC_NT_UNKNOWN_MGR_TYPE</p>
+ </td>
+ <td>
+ <p>The manager type is unknown.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0020012<br />RPC_NT_UNKNOWN_IF</p>
+ </td>
+ <td>
+ <p>The interface is unknown.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0020013<br />RPC_NT_NO_BINDINGS</p>
+ </td>
+ <td>
+ <p>There are no bindings.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0020014<br />RPC_NT_NO_PROTSEQS</p>
+ </td>
+ <td>
+ <p>There are no protocol sequences.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0020015<br />RPC_NT_CANT_CREATE_ENDPOINT</p>
+ </td>
+ <td>
+ <p>The endpoint cannot be created.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0020016<br />RPC_NT_OUT_OF_RESOURCES</p>
+ </td>
+ <td>
+ <p>Insufficient resources are available to complete this operation.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0020017<br />RPC_NT_SERVER_UNAVAILABLE</p>
+ </td>
+ <td>
+ <p>The RPC server is unavailable.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0020018<br />RPC_NT_SERVER_TOO_BUSY</p>
+ </td>
+ <td>
+ <p>The RPC server is too busy to complete this operation.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0020019<br />RPC_NT_INVALID_NETWORK_OPTIONS</p>
+ </td>
+ <td>
+ <p>The network options are invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC002001A<br />RPC_NT_NO_CALL_ACTIVE</p>
+ </td>
+ <td>
+ <p>No RPCs are active on this thread.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC002001B<br />RPC_NT_CALL_FAILED</p>
+ </td>
+ <td>
+ <p>The RPC failed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC002001C<br />RPC_NT_CALL_FAILED_DNE</p>
+ </td>
+ <td>
+ <p>The RPC failed and did not execute.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC002001D<br />RPC_NT_PROTOCOL_ERROR</p>
+ </td>
+ <td>
+ <p>An RPC protocol error occurred.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC002001F<br />RPC_NT_UNSUPPORTED_TRANS_SYN</p>
+ </td>
+ <td>
+ <p>The RPC server does not support the transfer syntax.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0020021<br />RPC_NT_UNSUPPORTED_TYPE</p>
+ </td>
+ <td>
+ <p>The type UUID is not supported.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0020022<br />RPC_NT_INVALID_TAG</p>
+ </td>
+ <td>
+ <p>The tag is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0020023<br />RPC_NT_INVALID_BOUND</p>
+ </td>
+ <td>
+ <p>The array bounds are invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0020024<br />RPC_NT_NO_ENTRY_NAME</p>
+ </td>
+ <td>
+ <p>The binding does not contain an entry name.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0020025<br />RPC_NT_INVALID_NAME_SYNTAX</p>
+ </td>
+ <td>
+ <p>The name syntax is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0020026<br />RPC_NT_UNSUPPORTED_NAME_SYNTAX</p>
+ </td>
+ <td>
+ <p>The name syntax is not supported.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0020028<br />RPC_NT_UUID_NO_ADDRESS</p>
+ </td>
+ <td>
+ <p>No network address is available to construct a UUID.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0020029<br />RPC_NT_DUPLICATE_ENDPOINT</p>
+ </td>
+ <td>
+ <p>The endpoint is a duplicate.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC002002A<br />RPC_NT_UNKNOWN_AUTHN_TYPE</p>
+ </td>
+ <td>
+ <p>The authentication type is unknown.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC002002B<br />RPC_NT_MAX_CALLS_TOO_SMALL</p>
+ </td>
+ <td>
+ <p>The maximum number of calls is too small.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC002002C<br />RPC_NT_STRING_TOO_LONG</p>
+ </td>
+ <td>
+ <p>The string is too long.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC002002D<br />RPC_NT_PROTSEQ_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>The RPC protocol sequence was not found.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC002002E<br />RPC_NT_PROCNUM_OUT_OF_RANGE</p>
+ </td>
+ <td>
+ <p>The procedure number is out of range.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC002002F<br />RPC_NT_BINDING_HAS_NO_AUTH</p>
+ </td>
+ <td>
+ <p>The binding does not contain any authentication information.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0020030<br />RPC_NT_UNKNOWN_AUTHN_SERVICE</p>
+ </td>
+ <td>
+ <p>The authentication service is unknown.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0020031<br />RPC_NT_UNKNOWN_AUTHN_LEVEL</p>
+ </td>
+ <td>
+ <p>The authentication level is unknown.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0020032<br />RPC_NT_INVALID_AUTH_IDENTITY</p>
+ </td>
+ <td>
+ <p>The security context is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0020033<br />RPC_NT_UNKNOWN_AUTHZ_SERVICE</p>
+ </td>
+ <td>
+ <p>The authorization service is unknown.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0020034<br />EPT_NT_INVALID_ENTRY</p>
+ </td>
+ <td>
+ <p>The entry is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0020035<br />EPT_NT_CANT_PERFORM_OP</p>
+ </td>
+ <td>
+ <p>The operation cannot be performed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0020036<br />EPT_NT_NOT_REGISTERED</p>
+ </td>
+ <td>
+ <p>No more endpoints are available from the endpoint mapper.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0020037<br />RPC_NT_NOTHING_TO_EXPORT</p>
+ </td>
+ <td>
+ <p>No interfaces have been exported.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0020038<br />RPC_NT_INCOMPLETE_NAME</p>
+ </td>
+ <td>
+ <p>The entry name is incomplete.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0020039<br />RPC_NT_INVALID_VERS_OPTION</p>
+ </td>
+ <td>
+ <p>The version option is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC002003A<br />RPC_NT_NO_MORE_MEMBERS</p>
+ </td>
+ <td>
+ <p>There are no more members.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC002003B<br />RPC_NT_NOT_ALL_OBJS_UNEXPORTED</p>
+ </td>
+ <td>
+ <p>There is nothing to unexport.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC002003C<br />RPC_NT_INTERFACE_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>The interface was not found.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC002003D<br />RPC_NT_ENTRY_ALREADY_EXISTS</p>
+ </td>
+ <td>
+ <p>The entry already exists.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC002003E<br />RPC_NT_ENTRY_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>The entry was not found.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC002003F<br />RPC_NT_NAME_SERVICE_UNAVAILABLE</p>
+ </td>
+ <td>
+ <p>The name service is unavailable.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0020040<br />RPC_NT_INVALID_NAF_ID</p>
+ </td>
+ <td>
+ <p>The network address family is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0020041<br />RPC_NT_CANNOT_SUPPORT</p>
+ </td>
+ <td>
+ <p>The requested operation is not supported.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0020042<br />RPC_NT_NO_CONTEXT_AVAILABLE</p>
+ </td>
+ <td>
+ <p>No security context is available to allow impersonation.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0020043<br />RPC_NT_INTERNAL_ERROR</p>
+ </td>
+ <td>
+ <p>An internal error occurred in the RPC.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0020044<br />RPC_NT_ZERO_DIVIDE</p>
+ </td>
+ <td>
+ <p>The RPC server attempted to divide an integer by zero.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0020045<br />RPC_NT_ADDRESS_ERROR</p>
+ </td>
+ <td>
+ <p>An addressing error occurred in the RPC server.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0020046<br />RPC_NT_FP_DIV_ZERO</p>
+ </td>
+ <td>
+ <p>A floating point operation at the RPC server caused a divide by zero.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0020047<br />RPC_NT_FP_UNDERFLOW</p>
+ </td>
+ <td>
+ <p>A floating point underflow occurred at the RPC server.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0020048<br />RPC_NT_FP_OVERFLOW</p>
+ </td>
+ <td>
+ <p>A floating point overflow occurred at the RPC server.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0020049<br />RPC_NT_CALL_IN_PROGRESS</p>
+ </td>
+ <td>
+ <p>An RPC is already in progress for this thread.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC002004A<br />RPC_NT_NO_MORE_BINDINGS</p>
+ </td>
+ <td>
+ <p>There are no more bindings.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC002004B<br />RPC_NT_GROUP_MEMBER_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>The group member was not found.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC002004C<br />EPT_NT_CANT_CREATE</p>
+ </td>
+ <td>
+ <p>The endpoint mapper database entry could not be created.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC002004D<br />RPC_NT_INVALID_OBJECT</p>
+ </td>
+ <td>
+ <p>The object UUID is the nil UUID.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC002004F<br />RPC_NT_NO_INTERFACES</p>
+ </td>
+ <td>
+ <p>No interfaces have been registered.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0020050<br />RPC_NT_CALL_CANCELLED</p>
+ </td>
+ <td>
+ <p>The RPC was canceled.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0020051<br />RPC_NT_BINDING_INCOMPLETE</p>
+ </td>
+ <td>
+ <p>The binding handle does not contain all the required information.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0020052<br />RPC_NT_COMM_FAILURE</p>
+ </td>
+ <td>
+ <p>A communications failure occurred during an RPC.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0020053<br />RPC_NT_UNSUPPORTED_AUTHN_LEVEL</p>
+ </td>
+ <td>
+ <p>The requested authentication level is not supported.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0020054<br />RPC_NT_NO_PRINC_NAME</p>
+ </td>
+ <td>
+ <p>No principal name was registered.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0020055<br />RPC_NT_NOT_RPC_ERROR</p>
+ </td>
+ <td>
+ <p>The error specified is not a valid Windows RPC error code.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0020057<br />RPC_NT_SEC_PKG_ERROR</p>
+ </td>
+ <td>
+ <p>A security package-specific error occurred.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0020058<br />RPC_NT_NOT_CANCELLED</p>
+ </td>
+ <td>
+ <p>The thread was not canceled.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0020062<br />RPC_NT_INVALID_ASYNC_HANDLE</p>
+ </td>
+ <td>
+ <p>Invalid asynchronous RPC handle.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0020063<br />RPC_NT_INVALID_ASYNC_CALL</p>
+ </td>
+ <td>
+ <p>Invalid asynchronous RPC call handle for this operation.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0020064<br />RPC_NT_PROXY_ACCESS_DENIED</p>
+ </td>
+ <td>
+ <p>Access to the HTTP proxy is denied.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0030001<br />RPC_NT_NO_MORE_ENTRIES</p>
+ </td>
+ <td>
+ <p>The list of RPC servers available for auto-handle binding has been exhausted.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0030002<br />RPC_NT_SS_CHAR_TRANS_OPEN_FAIL</p>
+ </td>
+ <td>
+ <p>The file designated by DCERPCCHARTRANS cannot be opened.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0030003<br />RPC_NT_SS_CHAR_TRANS_SHORT_FILE</p>
+ </td>
+ <td>
+ <p>The file containing the character translation table has fewer than 512 bytes.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0030004<br />RPC_NT_SS_IN_NULL_CONTEXT</p>
+ </td>
+ <td>
+ <p>A null context handle is passed as an [in] parameter.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0030005<br />RPC_NT_SS_CONTEXT_MISMATCH</p>
+ </td>
+ <td>
+ <p>The context handle does not match any known context handles.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0030006<br />RPC_NT_SS_CONTEXT_DAMAGED</p>
+ </td>
+ <td>
+ <p>The context handle changed during a call.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0030007<br />RPC_NT_SS_HANDLES_MISMATCH</p>
+ </td>
+ <td>
+ <p>The binding handles passed to an RPC do not match.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0030008<br />RPC_NT_SS_CANNOT_GET_CALL_HANDLE</p>
+ </td>
+ <td>
+ <p>The stub is unable to get the call handle.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0030009<br />RPC_NT_NULL_REF_POINTER</p>
+ </td>
+ <td>
+ <p>A null reference pointer was passed to the stub.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC003000A<br />RPC_NT_ENUM_VALUE_OUT_OF_RANGE</p>
+ </td>
+ <td>
+ <p>The enumeration value is out of range.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC003000B<br />RPC_NT_BYTE_COUNT_TOO_SMALL</p>
+ </td>
+ <td>
+ <p>The byte count is too small.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC003000C<br />RPC_NT_BAD_STUB_DATA</p>
+ </td>
+ <td>
+ <p>The stub received bad data.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0030059<br />RPC_NT_INVALID_ES_ACTION</p>
+ </td>
+ <td>
+ <p>Invalid operation on the encoding/decoding handle.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC003005A<br />RPC_NT_WRONG_ES_VERSION</p>
+ </td>
+ <td>
+ <p>Incompatible version of the serializing package.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC003005B<br />RPC_NT_WRONG_STUB_VERSION</p>
+ </td>
+ <td>
+ <p>Incompatible version of the RPC stub.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC003005C<br />RPC_NT_INVALID_PIPE_OBJECT</p>
+ </td>
+ <td>
+ <p>The RPC pipe object is invalid or corrupt.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC003005D<br />RPC_NT_INVALID_PIPE_OPERATION</p>
+ </td>
+ <td>
+ <p>An invalid operation was attempted on an RPC pipe object.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC003005E<br />RPC_NT_WRONG_PIPE_VERSION</p>
+ </td>
+ <td>
+ <p>Unsupported RPC pipe version.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC003005F<br />RPC_NT_PIPE_CLOSED</p>
+ </td>
+ <td>
+ <p>The RPC pipe object has already been closed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0030060<br />RPC_NT_PIPE_DISCIPLINE_ERROR</p>
+ </td>
+ <td>
+ <p>The RPC call completed before all pipes were processed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0030061<br />RPC_NT_PIPE_EMPTY</p>
+ </td>
+ <td>
+ <p>No more data is available from the RPC pipe.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0040035<br />STATUS_PNP_BAD_MPS_TABLE</p>
+ </td>
+ <td>
+ <p>A device is missing in the system BIOS MPS table. This device will not be used. Contact your system vendor for a system BIOS update.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0040036<br />STATUS_PNP_TRANSLATION_FAILED</p>
+ </td>
+ <td>
+ <p>A translator failed to translate resources.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0040037<br />STATUS_PNP_IRQ_TRANSLATION_FAILED</p>
+ </td>
+ <td>
+ <p>An IRQ translator failed to translate resources.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0040038<br />STATUS_PNP_INVALID_ID</p>
+ </td>
+ <td>
+ <p>Driver %2 returned an invalid ID for a child device (%3).</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0040039<br />STATUS_IO_REISSUE_AS_CACHED</p>
+ </td>
+ <td>
+ <p>Reissue the given operation as a cached I/O operation</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00A0001<br />STATUS_CTX_WINSTATION_NAME_INVALID</p>
+ </td>
+ <td>
+ <p>Session name %1 is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00A0002<br />STATUS_CTX_INVALID_PD</p>
+ </td>
+ <td>
+ <p>The protocol driver %1 is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00A0003<br />STATUS_CTX_PD_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>The protocol driver %1 was not found in the system path.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00A0006<br />STATUS_CTX_CLOSE_PENDING</p>
+ </td>
+ <td>
+ <p>A close operation is pending on the terminal connection.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00A0007<br />STATUS_CTX_NO_OUTBUF</p>
+ </td>
+ <td>
+ <p>No free output buffers are available.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00A0008<br />STATUS_CTX_MODEM_INF_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>The MODEM.INF file was not found.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00A0009<br />STATUS_CTX_INVALID_MODEMNAME</p>
+ </td>
+ <td>
+ <p>The modem (%1) was not found in the MODEM.INF file.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00A000A<br />STATUS_CTX_RESPONSE_ERROR</p>
+ </td>
+ <td>
+ <p>The modem did not accept the command sent to it. Verify that the configured modem name matches the attached modem.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00A000B<br />STATUS_CTX_MODEM_RESPONSE_TIMEOUT</p>
+ </td>
+ <td>
+ <p>The modem did not respond to the command sent to it. Verify that the modem cable is properly attached and the modem is turned on.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00A000C<br />STATUS_CTX_MODEM_RESPONSE_NO_CARRIER</p>
+ </td>
+ <td>
+ <p>Carrier detection has failed or the carrier has been dropped due to disconnection.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00A000D<br />STATUS_CTX_MODEM_RESPONSE_NO_DIALTONE</p>
+ </td>
+ <td>
+ <p>A dial tone was not detected within the required time. Verify that the phone cable is properly attached and functional.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00A000E<br />STATUS_CTX_MODEM_RESPONSE_BUSY</p>
+ </td>
+ <td>
+ <p>A busy signal was detected at a remote site on callback.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00A000F<br />STATUS_CTX_MODEM_RESPONSE_VOICE</p>
+ </td>
+ <td>
+ <p>A voice was detected at a remote site on callback.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00A0010<br />STATUS_CTX_TD_ERROR</p>
+ </td>
+ <td>
+ <p>Transport driver error.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00A0012<br />STATUS_CTX_LICENSE_CLIENT_INVALID</p>
+ </td>
+ <td>
+ <p>The client you are using is not licensed to use this system. Your logon request is denied.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00A0013<br />STATUS_CTX_LICENSE_NOT_AVAILABLE</p>
+ </td>
+ <td>
+ <p>The system has reached its licensed logon limit. Try again later.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00A0014<br />STATUS_CTX_LICENSE_EXPIRED</p>
+ </td>
+ <td>
+ <p>The system license has expired. Your logon request is denied.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00A0015<br />STATUS_CTX_WINSTATION_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>The specified session cannot be found.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00A0016<br />STATUS_CTX_WINSTATION_NAME_COLLISION</p>
+ </td>
+ <td>
+ <p>The specified session name is already in use.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00A0017<br />STATUS_CTX_WINSTATION_BUSY</p>
+ </td>
+ <td>
+ <p>The requested operation cannot be completed because the terminal connection is currently processing a connect, disconnect, reset, or delete operation.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00A0018<br />STATUS_CTX_BAD_VIDEO_MODE</p>
+ </td>
+ <td>
+ <p>An attempt has been made to connect to a session whose video mode is not supported by the current client.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00A0022<br />STATUS_CTX_GRAPHICS_INVALID</p>
+ </td>
+ <td>
+ <p>The application attempted to enable DOS graphics mode. DOS graphics mode is not supported.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00A0024<br />STATUS_CTX_NOT_CONSOLE</p>
+ </td>
+ <td>
+ <p>The requested operation can be performed only on the system console. This is most often the result of a driver or system DLL requiring direct console access.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00A0026<br />STATUS_CTX_CLIENT_QUERY_TIMEOUT</p>
+ </td>
+ <td>
+ <p>The client failed to respond to the server connect message.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00A0027<br />STATUS_CTX_CONSOLE_DISCONNECT</p>
+ </td>
+ <td>
+ <p>Disconnecting the console session is not supported.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00A0028<br />STATUS_CTX_CONSOLE_CONNECT</p>
+ </td>
+ <td>
+ <p>Reconnecting a disconnected session to the console is not supported.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00A002A<br />STATUS_CTX_SHADOW_DENIED</p>
+ </td>
+ <td>
+ <p>The request to control another session remotely was denied.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00A002B<br />STATUS_CTX_WINSTATION_ACCESS_DENIED</p>
+ </td>
+ <td>
+ <p>A process has requested access to a session, but has not been granted those access rights.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00A002E<br />STATUS_CTX_INVALID_WD</p>
+ </td>
+ <td>
+ <p>The terminal connection driver %1 is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00A002F<br />STATUS_CTX_WD_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>The terminal connection driver %1 was not found in the system path.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00A0030<br />STATUS_CTX_SHADOW_INVALID</p>
+ </td>
+ <td>
+ <p>The requested session cannot be controlled remotely. You cannot control your own session, a session that is trying to control your session, a session that has no user logged on, or other sessions from the console.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00A0031<br />STATUS_CTX_SHADOW_DISABLED</p>
+ </td>
+ <td>
+ <p>The requested session is not configured to allow remote control.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00A0032<br />STATUS_RDP_PROTOCOL_ERROR</p>
+ </td>
+ <td>
+ <p>The RDP protocol component %2 detected an error in the protocol stream and has disconnected the client.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00A0033<br />STATUS_CTX_CLIENT_LICENSE_NOT_SET</p>
+ </td>
+ <td>
+ <p>Your request to connect to this <a href="https://msdn.microsoft.com/en-us/library/43f5bde9-36cf-4d5a-af80-8c687cce8b60#terminal_server">terminal server</a> has been rejected. Your terminal server client license number has not been entered for this copy of the terminal client. Contact your system administrator for help in entering a valid, unique license number for this terminal server client. Click OK to continue.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00A0034<br />STATUS_CTX_CLIENT_LICENSE_IN_USE</p>
+ </td>
+ <td>
+ <p>Your request to connect to this terminal server has been rejected. Your terminal server client license number is currently being used by another user. Contact your system administrator to obtain a new copy of the terminal server client with a valid, unique license number. Click OK to continue.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00A0035<br />STATUS_CTX_SHADOW_ENDED_BY_MODE_CHANGE</p>
+ </td>
+ <td>
+ <p>The remote control of the console was terminated because the display mode was changed. Changing the display mode in a remote control session is not supported.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00A0036<br />STATUS_CTX_SHADOW_NOT_RUNNING</p>
+ </td>
+ <td>
+ <p>Remote control could not be terminated because the specified session is not currently being remotely controlled.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00A0037<br />STATUS_CTX_LOGON_DISABLED</p>
+ </td>
+ <td>
+ <p>Your interactive logon privilege has been disabled. Contact your system administrator.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00A0038<br />STATUS_CTX_SECURITY_LAYER_ERROR</p>
+ </td>
+ <td>
+ <p>The terminal server security layer detected an error in the protocol stream and has disconnected the client.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00A0039<br />STATUS_TS_INCOMPATIBLE_SESSIONS</p>
+ </td>
+ <td>
+ <p>The target session is incompatible with the current session.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00B0001<br />STATUS_MUI_FILE_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>The resource loader failed to find an MUI file.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00B0002<br />STATUS_MUI_INVALID_FILE</p>
+ </td>
+ <td>
+ <p>The resource loader failed to load an MUI file because the file failed to pass validation.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00B0003<br />STATUS_MUI_INVALID_RC_CONFIG</p>
+ </td>
+ <td>
+ <p>The RC manifest is corrupted with garbage data, is an unsupported version, or is missing a required item.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00B0004<br />STATUS_MUI_INVALID_LOCALE_NAME</p>
+ </td>
+ <td>
+ <p>The RC manifest has an invalid culture name.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00B0005<br />STATUS_MUI_INVALID_ULTIMATEFALLBACK_NAME</p>
+ </td>
+ <td>
+ <p>The RC manifest has and invalid ultimate fallback name.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00B0006<br />STATUS_MUI_FILE_NOT_LOADED</p>
+ </td>
+ <td>
+ <p>The resource loader cache does not have a loaded MUI entry.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC00B0007<br />STATUS_RESOURCE_ENUM_USER_STOP</p>
+ </td>
+ <td>
+ <p>The user stopped resource enumeration.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0130001<br />STATUS_CLUSTER_INVALID_NODE</p>
+ </td>
+ <td>
+ <p>The cluster node is not valid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0130002<br />STATUS_CLUSTER_NODE_EXISTS</p>
+ </td>
+ <td>
+ <p>The cluster node already exists.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0130003<br />STATUS_CLUSTER_JOIN_IN_PROGRESS</p>
+ </td>
+ <td>
+ <p>A node is in the process of joining the cluster.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0130004<br />STATUS_CLUSTER_NODE_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>The cluster node was not found.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0130005<br />STATUS_CLUSTER_LOCAL_NODE_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>The cluster local node information was not found.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0130006<br />STATUS_CLUSTER_NETWORK_EXISTS</p>
+ </td>
+ <td>
+ <p>The cluster network already exists.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0130007<br />STATUS_CLUSTER_NETWORK_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>The cluster network was not found.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0130008<br />STATUS_CLUSTER_NETINTERFACE_EXISTS</p>
+ </td>
+ <td>
+ <p>The cluster network interface already exists.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0130009<br />STATUS_CLUSTER_NETINTERFACE_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>The cluster network interface was not found.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC013000A<br />STATUS_CLUSTER_INVALID_REQUEST</p>
+ </td>
+ <td>
+ <p>The cluster request is not valid for this object.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC013000B<br />STATUS_CLUSTER_INVALID_NETWORK_PROVIDER</p>
+ </td>
+ <td>
+ <p>The cluster network provider is not valid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC013000C<br />STATUS_CLUSTER_NODE_DOWN</p>
+ </td>
+ <td>
+ <p>The cluster node is down.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC013000D<br />STATUS_CLUSTER_NODE_UNREACHABLE</p>
+ </td>
+ <td>
+ <p>The cluster node is not reachable.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC013000E<br />STATUS_CLUSTER_NODE_NOT_MEMBER</p>
+ </td>
+ <td>
+ <p>The cluster node is not a member of the cluster.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC013000F<br />STATUS_CLUSTER_JOIN_NOT_IN_PROGRESS</p>
+ </td>
+ <td>
+ <p>A cluster join operation is not in progress.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0130010<br />STATUS_CLUSTER_INVALID_NETWORK</p>
+ </td>
+ <td>
+ <p>The cluster network is not valid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0130011<br />STATUS_CLUSTER_NO_NET_ADAPTERS</p>
+ </td>
+ <td>
+ <p>No network adapters are available.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0130012<br />STATUS_CLUSTER_NODE_UP</p>
+ </td>
+ <td>
+ <p>The cluster node is up.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0130013<br />STATUS_CLUSTER_NODE_PAUSED</p>
+ </td>
+ <td>
+ <p>The cluster node is paused.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0130014<br />STATUS_CLUSTER_NODE_NOT_PAUSED</p>
+ </td>
+ <td>
+ <p>The cluster node is not paused.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0130015<br />STATUS_CLUSTER_NO_SECURITY_CONTEXT</p>
+ </td>
+ <td>
+ <p>No cluster security context is available.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0130016<br />STATUS_CLUSTER_NETWORK_NOT_INTERNAL</p>
+ </td>
+ <td>
+ <p>The cluster network is not configured for internal cluster communication.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0130017<br />STATUS_CLUSTER_POISONED</p>
+ </td>
+ <td>
+ <p>The cluster node has been poisoned.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0140001<br />STATUS_ACPI_INVALID_OPCODE</p>
+ </td>
+ <td>
+ <p>An attempt was made to run an invalid AML opcode.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0140002<br />STATUS_ACPI_STACK_OVERFLOW</p>
+ </td>
+ <td>
+ <p>The AML interpreter stack has overflowed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0140003<br />STATUS_ACPI_ASSERT_FAILED</p>
+ </td>
+ <td>
+ <p>An inconsistent state has occurred.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0140004<br />STATUS_ACPI_INVALID_INDEX</p>
+ </td>
+ <td>
+ <p>An attempt was made to access an array outside its bounds.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0140005<br />STATUS_ACPI_INVALID_ARGUMENT</p>
+ </td>
+ <td>
+ <p>A required argument was not specified.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0140006<br />STATUS_ACPI_FATAL</p>
+ </td>
+ <td>
+ <p>A fatal error has occurred.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0140007<br />STATUS_ACPI_INVALID_SUPERNAME</p>
+ </td>
+ <td>
+ <p>An invalid SuperName was specified.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0140008<br />STATUS_ACPI_INVALID_ARGTYPE</p>
+ </td>
+ <td>
+ <p>An argument with an incorrect type was specified.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0140009<br />STATUS_ACPI_INVALID_OBJTYPE</p>
+ </td>
+ <td>
+ <p>An object with an incorrect type was specified.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC014000A<br />STATUS_ACPI_INVALID_TARGETTYPE</p>
+ </td>
+ <td>
+ <p>A target with an incorrect type was specified.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC014000B<br />STATUS_ACPI_INCORRECT_ARGUMENT_COUNT</p>
+ </td>
+ <td>
+ <p>An incorrect number of arguments was specified.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC014000C<br />STATUS_ACPI_ADDRESS_NOT_MAPPED</p>
+ </td>
+ <td>
+ <p>An address failed to translate.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC014000D<br />STATUS_ACPI_INVALID_EVENTTYPE</p>
+ </td>
+ <td>
+ <p>An incorrect event type was specified.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC014000E<br />STATUS_ACPI_HANDLER_COLLISION</p>
+ </td>
+ <td>
+ <p>A handler for the target already exists.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC014000F<br />STATUS_ACPI_INVALID_DATA</p>
+ </td>
+ <td>
+ <p>Invalid data for the target was specified.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0140010<br />STATUS_ACPI_INVALID_REGION</p>
+ </td>
+ <td>
+ <p>An invalid region for the target was specified.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0140011<br />STATUS_ACPI_INVALID_ACCESS_SIZE</p>
+ </td>
+ <td>
+ <p>An attempt was made to access a field outside the defined range.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0140012<br />STATUS_ACPI_ACQUIRE_GLOBAL_LOCK</p>
+ </td>
+ <td>
+ <p>The global system lock could not be acquired.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0140013<br />STATUS_ACPI_ALREADY_INITIALIZED</p>
+ </td>
+ <td>
+ <p>An attempt was made to reinitialize the ACPI subsystem.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0140014<br />STATUS_ACPI_NOT_INITIALIZED</p>
+ </td>
+ <td>
+ <p>The ACPI subsystem has not been initialized.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0140015<br />STATUS_ACPI_INVALID_MUTEX_LEVEL</p>
+ </td>
+ <td>
+ <p>An incorrect mutex was specified.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0140016<br />STATUS_ACPI_MUTEX_NOT_OWNED</p>
+ </td>
+ <td>
+ <p>The mutex is not currently owned.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0140017<br />STATUS_ACPI_MUTEX_NOT_OWNER</p>
+ </td>
+ <td>
+ <p>An attempt was made to access the mutex by a process that was not the owner.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0140018<br />STATUS_ACPI_RS_ACCESS</p>
+ </td>
+ <td>
+ <p>An error occurred during an access to region space.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0140019<br />STATUS_ACPI_INVALID_TABLE</p>
+ </td>
+ <td>
+ <p>An attempt was made to use an incorrect table.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0140020<br />STATUS_ACPI_REG_HANDLER_FAILED</p>
+ </td>
+ <td>
+ <p>The registration of an ACPI event failed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0140021<br />STATUS_ACPI_POWER_REQUEST_FAILED</p>
+ </td>
+ <td>
+ <p>An ACPI power object failed to transition state.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0150001<br />STATUS_SXS_SECTION_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>The requested section is not present in the activation context.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0150002<br />STATUS_SXS_CANT_GEN_ACTCTX</p>
+ </td>
+ <td>
+ <p>
+ Windows was unble to process the application binding information. Refer to the system event log for further information.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0150003<br />STATUS_SXS_INVALID_ACTCTXDATA_FORMAT</p>
+ </td>
+ <td>
+ <p>The application binding data format is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0150004<br />STATUS_SXS_ASSEMBLY_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>The referenced assembly is not installed on the system.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0150005<br />STATUS_SXS_MANIFEST_FORMAT_ERROR</p>
+ </td>
+ <td>
+ <p>The manifest file does not begin with the required tag and format information.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0150006<br />STATUS_SXS_MANIFEST_PARSE_ERROR</p>
+ </td>
+ <td>
+ <p>The manifest file contains one or more syntax errors.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0150007<br />STATUS_SXS_ACTIVATION_CONTEXT_DISABLED</p>
+ </td>
+ <td>
+ <p>The application attempted to activate a disabled activation context.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0150008<br />STATUS_SXS_KEY_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>The requested lookup key was not found in any active activation context.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0150009<br />STATUS_SXS_VERSION_CONFLICT</p>
+ </td>
+ <td>
+ <p>A component version required by the application conflicts with another component version that is already active.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC015000A<br />STATUS_SXS_WRONG_SECTION_TYPE</p>
+ </td>
+ <td>
+ <p>The type requested activation context section does not match the query API used.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC015000B<br />STATUS_SXS_THREAD_QUERIES_DISABLED</p>
+ </td>
+ <td>
+ <p>Lack of system resources has required isolated activation to be disabled for the current thread of execution.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC015000C<br />STATUS_SXS_ASSEMBLY_MISSING</p>
+ </td>
+ <td>
+ <p>The referenced assembly could not be found.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC015000E<br />STATUS_SXS_PROCESS_DEFAULT_ALREADY_SET</p>
+ </td>
+ <td>
+ <p>An attempt to set the process default activation context failed because the process default activation context was already set.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC015000F<br />STATUS_SXS_EARLY_DEACTIVATION</p>
+ </td>
+ <td>
+ <p>The activation context being deactivated is not the most recently activated one.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0150010<br />STATUS_SXS_INVALID_DEACTIVATION</p>
+ </td>
+ <td>
+ <p>The activation context being deactivated is not active for the current thread of execution.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0150011<br />STATUS_SXS_MULTIPLE_DEACTIVATION</p>
+ </td>
+ <td>
+ <p>The activation context being deactivated has already been deactivated.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0150012<br />STATUS_SXS_SYSTEM_DEFAULT_ACTIVATION_CONTEXT_EMPTY</p>
+ </td>
+ <td>
+ <p>The activation context of the system default assembly could not be generated.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0150013<br />STATUS_SXS_PROCESS_TERMINATION_REQUESTED</p>
+ </td>
+ <td>
+ <p>A component used by the isolation facility has requested that the process be terminated.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0150014<br />STATUS_SXS_CORRUPT_ACTIVATION_STACK</p>
+ </td>
+ <td>
+ <p>The activation context activation stack for the running thread of execution is corrupt.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0150015<br />STATUS_SXS_CORRUPTION</p>
+ </td>
+ <td>
+ <p>The application isolation metadata for this process or thread has become corrupt.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0150016<br />STATUS_SXS_INVALID_IDENTITY_ATTRIBUTE_VALUE</p>
+ </td>
+ <td>
+ <p>The value of an attribute in an identity is not within the legal range.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0150017<br />STATUS_SXS_INVALID_IDENTITY_ATTRIBUTE_NAME</p>
+ </td>
+ <td>
+ <p>The name of an attribute in an identity is not within the legal range.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0150018<br />STATUS_SXS_IDENTITY_DUPLICATE_ATTRIBUTE</p>
+ </td>
+ <td>
+ <p>An identity contains two definitions for the same attribute.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0150019<br />STATUS_SXS_IDENTITY_PARSE_ERROR</p>
+ </td>
+ <td>
+ <p>The identity string is malformed. This may be due to a trailing comma, more than two unnamed attributes, a missing attribute name, or a missing attribute value.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC015001A<br />STATUS_SXS_COMPONENT_STORE_CORRUPT</p>
+ </td>
+ <td>
+ <p>The component store has become corrupted.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC015001B<br />STATUS_SXS_FILE_HASH_MISMATCH</p>
+ </td>
+ <td>
+ <p>A component's file does not match the verification information present in the component manifest.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC015001C<br />STATUS_SXS_MANIFEST_IDENTITY_SAME_BUT_CONTENTS_DIFFERENT</p>
+ </td>
+ <td>
+ <p>The identities of the manifests are identical, but their contents are different.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC015001D<br />STATUS_SXS_IDENTITIES_DIFFERENT</p>
+ </td>
+ <td>
+ <p>The component identities are different.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC015001E<br />STATUS_SXS_ASSEMBLY_IS_NOT_A_DEPLOYMENT</p>
+ </td>
+ <td>
+ <p>The assembly is not a deployment.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC015001F<br />STATUS_SXS_FILE_NOT_PART_OF_ASSEMBLY</p>
+ </td>
+ <td>
+ <p>The file is not a part of the assembly.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0150020<br />STATUS_ADVANCED_INSTALLER_FAILED</p>
+ </td>
+ <td>
+ <p>An advanced installer failed during setup or servicing.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0150021<br />STATUS_XML_ENCODING_MISMATCH</p>
+ </td>
+ <td>
+ <p>The character encoding in the XML declaration did not match the encoding used in the document.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0150022<br />STATUS_SXS_MANIFEST_TOO_BIG</p>
+ </td>
+ <td>
+ <p>The size of the manifest exceeds the maximum allowed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0150023<br />STATUS_SXS_SETTING_NOT_REGISTERED</p>
+ </td>
+ <td>
+ <p>The setting is not registered.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0150024<br />STATUS_SXS_TRANSACTION_CLOSURE_INCOMPLETE</p>
+ </td>
+ <td>
+ <p>One or more required transaction members are not present.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0150025<br />STATUS_SMI_PRIMITIVE_INSTALLER_FAILED</p>
+ </td>
+ <td>
+ <p>The SMI primitive installer failed during setup or servicing.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0150026<br />STATUS_GENERIC_COMMAND_FAILED</p>
+ </td>
+ <td>
+ <p>A generic command executable returned a result that indicates failure.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0150027<br />STATUS_SXS_FILE_HASH_MISSING</p>
+ </td>
+ <td>
+ <p>A component is missing file verification information in its manifest.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0190001<br />STATUS_TRANSACTIONAL_CONFLICT</p>
+ </td>
+ <td>
+ <p>The function attempted to use a name that is reserved for use by another transaction.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0190002<br />STATUS_INVALID_TRANSACTION</p>
+ </td>
+ <td>
+ <p>The transaction handle associated with this operation is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0190003<br />STATUS_TRANSACTION_NOT_ACTIVE</p>
+ </td>
+ <td>
+ <p>The requested operation was made in the context of a transaction that is no longer active.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0190004<br />STATUS_TM_INITIALIZATION_FAILED</p>
+ </td>
+ <td>
+ <p>The transaction manager was unable to be successfully initialized. Transacted operations are not supported.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0190005<br />STATUS_RM_NOT_ACTIVE</p>
+ </td>
+ <td>
+ <p>Transaction support within the specified file system resource manager was not started or was shut down due to an error.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0190006<br />STATUS_RM_METADATA_CORRUPT</p>
+ </td>
+ <td>
+ <p>The metadata of the resource manager has been corrupted. The resource manager will not function.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0190007<br />STATUS_TRANSACTION_NOT_JOINED</p>
+ </td>
+ <td>
+ <p>The resource manager attempted to prepare a transaction that it has not successfully joined.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0190008<br />STATUS_DIRECTORY_NOT_RM</p>
+ </td>
+ <td>
+ <p>The specified directory does not contain a file system resource manager.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC019000A<br />STATUS_TRANSACTIONS_UNSUPPORTED_REMOTE</p>
+ </td>
+ <td>
+ <p>The remote server or share does not support transacted file operations.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC019000B<br />STATUS_LOG_RESIZE_INVALID_SIZE</p>
+ </td>
+ <td>
+ <p>The requested log size for the file system resource manager is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC019000C<br />STATUS_REMOTE_FILE_VERSION_MISMATCH</p>
+ </td>
+ <td>
+ <p>The remote server sent mismatching version number or Fid for a file opened with transactions.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC019000F<br />STATUS_CRM_PROTOCOL_ALREADY_EXISTS</p>
+ </td>
+ <td>
+ <p>The resource manager tried to register a protocol that already exists.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0190010<br />STATUS_TRANSACTION_PROPAGATION_FAILED</p>
+ </td>
+ <td>
+ <p>The attempt to propagate the transaction failed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0190011<br />STATUS_CRM_PROTOCOL_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>The requested propagation protocol was not registered as a CRM.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0190012<br />STATUS_TRANSACTION_SUPERIOR_EXISTS</p>
+ </td>
+ <td>
+ <p>The transaction object already has a superior enlistment, and the caller attempted an operation that would have created a new superior. Only a single superior enlistment is allowed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0190013<br />STATUS_TRANSACTION_REQUEST_NOT_VALID</p>
+ </td>
+ <td>
+ <p>The requested operation is not valid on the transaction object in its current state.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0190014<br />STATUS_TRANSACTION_NOT_REQUESTED</p>
+ </td>
+ <td>
+ <p>The caller has called a response API, but the response is not expected because the transaction manager did not issue the corresponding request to the caller.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0190015<br />STATUS_TRANSACTION_ALREADY_ABORTED</p>
+ </td>
+ <td>
+ <p>It is too late to perform the requested operation, because the transaction has already been aborted.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0190016<br />STATUS_TRANSACTION_ALREADY_COMMITTED</p>
+ </td>
+ <td>
+ <p>It is too late to perform the requested operation, because the transaction has already been committed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0190017<br />STATUS_TRANSACTION_INVALID_MARSHALL_BUFFER</p>
+ </td>
+ <td>
+ <p>The buffer passed in to NtPushTransaction or NtPullTransaction is not in a valid format.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0190018<br />STATUS_CURRENT_TRANSACTION_NOT_VALID</p>
+ </td>
+ <td>
+ <p>The current transaction context associated with the thread is not a valid handle to a transaction object.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0190019<br />STATUS_LOG_GROWTH_FAILED</p>
+ </td>
+ <td>
+ <p>An attempt to create space in the transactional resource manager's log failed. The failure status has been recorded in the event log.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0190021<br />STATUS_OBJECT_NO_LONGER_EXISTS</p>
+ </td>
+ <td>
+ <p>The object (file, stream, or link) that corresponds to the handle has been deleted by a transaction savepoint rollback.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0190022<br />STATUS_STREAM_MINIVERSION_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>The specified file miniversion was not found for this transacted file open.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0190023<br />STATUS_STREAM_MINIVERSION_NOT_VALID</p>
+ </td>
+ <td>
+ <p>The specified file miniversion was found but has been invalidated. The most likely cause is a transaction savepoint rollback.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0190024<br />STATUS_MINIVERSION_INACCESSIBLE_FROM_SPECIFIED_TRANSACTION</p>
+ </td>
+ <td>
+ <p>A miniversion may be opened only in the context of the transaction that created it.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0190025<br />STATUS_CANT_OPEN_MINIVERSION_WITH_MODIFY_INTENT</p>
+ </td>
+ <td>
+ <p>It is not possible to open a miniversion with modify access.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0190026<br />STATUS_CANT_CREATE_MORE_STREAM_MINIVERSIONS</p>
+ </td>
+ <td>
+ <p>It is not possible to create any more miniversions for this stream.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0190028<br />STATUS_HANDLE_NO_LONGER_VALID</p>
+ </td>
+ <td>
+ <p>The handle has been invalidated by a transaction. The most likely cause is the presence of memory mapping on a file or an open handle when the transaction ended or rolled back to savepoint.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0190030<br />STATUS_LOG_CORRUPTION_DETECTED</p>
+ </td>
+ <td>
+ <p>The log data is corrupt.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0190032<br />STATUS_RM_DISCONNECTED</p>
+ </td>
+ <td>
+ <p>The transaction outcome is unavailable because the resource manager responsible for it is disconnected.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0190033<br />STATUS_ENLISTMENT_NOT_SUPERIOR</p>
+ </td>
+ <td>
+ <p>The request was rejected because the enlistment in question is not a superior enlistment.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0190036<br />STATUS_FILE_IDENTITY_NOT_PERSISTENT</p>
+ </td>
+ <td>
+ <p>The file cannot be opened in a transaction because its identity depends on the outcome of an unresolved transaction.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0190037<br />STATUS_CANT_BREAK_TRANSACTIONAL_DEPENDENCY</p>
+ </td>
+ <td>
+ <p>The operation cannot be performed because another transaction is depending on this property not changing.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0190038<br />STATUS_CANT_CROSS_RM_BOUNDARY</p>
+ </td>
+ <td>
+ <p>The operation would involve a single file with two transactional resource managers and is, therefore, not allowed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0190039<br />STATUS_TXF_DIR_NOT_EMPTY</p>
+ </td>
+ <td>
+ <p>The $Txf directory must be empty for this operation to succeed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC019003A<br />STATUS_INDOUBT_TRANSACTIONS_EXIST</p>
+ </td>
+ <td>
+ <p>The operation would leave a transactional resource manager in an inconsistent state and is therefore not allowed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC019003B<br />STATUS_TM_VOLATILE</p>
+ </td>
+ <td>
+ <p>The operation could not be completed because the transaction manager does not have a log.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC019003C<br />STATUS_ROLLBACK_TIMER_EXPIRED</p>
+ </td>
+ <td>
+ <p>A rollback could not be scheduled because a previously scheduled rollback has already executed or been queued for execution.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC019003D<br />STATUS_TXF_ATTRIBUTE_CORRUPT</p>
+ </td>
+ <td>
+ <p>The transactional metadata attribute on the file or directory %hs is corrupt and unreadable.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC019003E<br />STATUS_EFS_NOT_ALLOWED_IN_TRANSACTION</p>
+ </td>
+ <td>
+ <p>The encryption operation could not be completed because a transaction is active.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC019003F<br />STATUS_TRANSACTIONAL_OPEN_NOT_ALLOWED</p>
+ </td>
+ <td>
+ <p>This object is not allowed to be opened in a transaction.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0190040<br />STATUS_TRANSACTED_MAPPING_UNSUPPORTED_REMOTE</p>
+ </td>
+ <td>
+ <p>Memory mapping (creating a mapped section) a remote file under a transaction is not supported.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0190043<br />STATUS_TRANSACTION_REQUIRED_PROMOTION</p>
+ </td>
+ <td>
+ <p>Promotion was required to allow the resource manager to enlist, but the transaction was set to disallow it.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0190044<br />STATUS_CANNOT_EXECUTE_FILE_IN_TRANSACTION</p>
+ </td>
+ <td>
+ <p>This file is open for modification in an unresolved transaction and may be opened for execute only by a transacted reader.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0190045<br />STATUS_TRANSACTIONS_NOT_FROZEN</p>
+ </td>
+ <td>
+ <p>The request to thaw frozen transactions was ignored because transactions were not previously frozen.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0190046<br />STATUS_TRANSACTION_FREEZE_IN_PROGRESS</p>
+ </td>
+ <td>
+ <p>Transactions cannot be frozen because a freeze is already in progress.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0190047<br />STATUS_NOT_SNAPSHOT_VOLUME</p>
+ </td>
+ <td>
+ <p>The target volume is not a snapshot volume. This operation is valid only on a volume mounted as a snapshot.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0190048<br />STATUS_NO_SAVEPOINT_WITH_OPEN_FILES</p>
+ </td>
+ <td>
+ <p>The savepoint operation failed because files are open on the transaction, which is not permitted.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0190049<br />STATUS_SPARSE_NOT_ALLOWED_IN_TRANSACTION</p>
+ </td>
+ <td>
+ <p>The sparse operation could not be completed because a transaction is active on the file.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC019004A<br />STATUS_TM_IDENTITY_MISMATCH</p>
+ </td>
+ <td>
+ <p>The call to create a transaction manager object failed because the Tm Identity that is stored in the log file does not match the Tm Identity that was passed in as an argument.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC019004B<br />STATUS_FLOATED_SECTION</p>
+ </td>
+ <td>
+ <p>I/O was attempted on a section object that has been floated as a result of a transaction ending. There is no valid data.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC019004C<br />STATUS_CANNOT_ACCEPT_TRANSACTED_WORK</p>
+ </td>
+ <td>
+ <p>The transactional resource manager cannot currently accept transacted work due to a transient condition, such as low resources.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC019004D<br />STATUS_CANNOT_ABORT_TRANSACTIONS</p>
+ </td>
+ <td>
+ <p>The transactional resource manager had too many transactions outstanding that could not be aborted. The transactional resource manager has been shut down.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC019004E<br />STATUS_TRANSACTION_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>The specified transaction was unable to be opened because it was not found.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC019004F<br />STATUS_RESOURCEMANAGER_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>The specified resource manager was unable to be opened because it was not found.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0190050<br />STATUS_ENLISTMENT_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>The specified enlistment was unable to be opened because it was not found.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0190051<br />STATUS_TRANSACTIONMANAGER_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>The specified transaction manager was unable to be opened because it was not found.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0190052<br />STATUS_TRANSACTIONMANAGER_NOT_ONLINE</p>
+ </td>
+ <td>
+ <p>The specified resource manager was unable to create an enlistment because its associated transaction manager is not online.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0190053<br />STATUS_TRANSACTIONMANAGER_RECOVERY_NAME_COLLISION</p>
+ </td>
+ <td>
+ <p>The specified transaction manager was unable to create the objects contained in its log file in the Ob namespace. Therefore, the transaction manager was unable to recover.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0190054<br />STATUS_TRANSACTION_NOT_ROOT</p>
+ </td>
+ <td>
+ <p>The call to create a superior enlistment on this transaction object could not be completed because the transaction object specified for the enlistment is a subordinate branch of the transaction. Only the root of the transaction can be enlisted as a superior.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0190055<br />STATUS_TRANSACTION_OBJECT_EXPIRED</p>
+ </td>
+ <td>
+ <p>Because the associated transaction manager or resource manager has been closed, the handle is no longer valid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0190056<br />STATUS_COMPRESSION_NOT_ALLOWED_IN_TRANSACTION</p>
+ </td>
+ <td>
+ <p>The compression operation could not be completed because a transaction is active on the file.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0190057<br />STATUS_TRANSACTION_RESPONSE_NOT_ENLISTED</p>
+ </td>
+ <td>
+ <p>The specified operation could not be performed on this superior enlistment because the enlistment was not created with the corresponding completion response in the NotificationMask.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0190058<br />STATUS_TRANSACTION_RECORD_TOO_LONG</p>
+ </td>
+ <td>
+ <p>The specified operation could not be performed because the record to be logged was too long. This can occur because either there are too many enlistments on this transaction or the combined RecoveryInformation being logged on behalf of those enlistments is too long.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0190059<br />STATUS_NO_LINK_TRACKING_IN_TRANSACTION</p>
+ </td>
+ <td>
+ <p>The link-tracking operation could not be completed because a transaction is active.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC019005A<br />STATUS_OPERATION_NOT_SUPPORTED_IN_TRANSACTION</p>
+ </td>
+ <td>
+ <p>This operation cannot be performed in a transaction.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC019005B<br />STATUS_TRANSACTION_INTEGRITY_VIOLATED</p>
+ </td>
+ <td>
+ <p>The kernel transaction manager had to abort or forget the transaction because it blocked forward progress.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0190060<br />STATUS_EXPIRED_HANDLE</p>
+ </td>
+ <td>
+ <p>The handle is no longer properly associated with its transaction. It may have been opened in a transactional resource manager that was subsequently forced to restart. Please close the handle and open a new one.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0190061<br />STATUS_TRANSACTION_NOT_ENLISTED</p>
+ </td>
+ <td>
+ <p>The specified operation could not be performed because the resource manager is not enlisted in the transaction.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01A0001<br />STATUS_LOG_SECTOR_INVALID</p>
+ </td>
+ <td>
+ <p>The log service found an invalid log sector.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01A0002<br />STATUS_LOG_SECTOR_PARITY_INVALID</p>
+ </td>
+ <td>
+ <p>The log service encountered a log sector with invalid block parity.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01A0003<br />STATUS_LOG_SECTOR_REMAPPED</p>
+ </td>
+ <td>
+ <p>The log service encountered a remapped log sector.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01A0004<br />STATUS_LOG_BLOCK_INCOMPLETE</p>
+ </td>
+ <td>
+ <p>The log service encountered a partial or incomplete log block.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01A0005<br />STATUS_LOG_INVALID_RANGE</p>
+ </td>
+ <td>
+ <p>The log service encountered an attempt to access data outside the active log range.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01A0006<br />STATUS_LOG_BLOCKS_EXHAUSTED</p>
+ </td>
+ <td>
+ <p>The log service user-log marshaling buffers are exhausted.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01A0007<br />STATUS_LOG_READ_CONTEXT_INVALID</p>
+ </td>
+ <td>
+ <p>The log service encountered an attempt to read from a marshaling area with an invalid read context.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01A0008<br />STATUS_LOG_RESTART_INVALID</p>
+ </td>
+ <td>
+ <p>The log service encountered an invalid log restart area.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01A0009<br />STATUS_LOG_BLOCK_VERSION</p>
+ </td>
+ <td>
+ <p>The log service encountered an invalid log block version.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01A000A<br />STATUS_LOG_BLOCK_INVALID</p>
+ </td>
+ <td>
+ <p>The log service encountered an invalid log block.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01A000B<br />STATUS_LOG_READ_MODE_INVALID</p>
+ </td>
+ <td>
+ <p>The log service encountered an attempt to read the log with an invalid read mode.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01A000D<br />STATUS_LOG_METADATA_CORRUPT</p>
+ </td>
+ <td>
+ <p>The log service encountered a corrupted metadata file.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01A000E<br />STATUS_LOG_METADATA_INVALID</p>
+ </td>
+ <td>
+ <p>The log service encountered a metadata file that could not be created by the log file system.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01A000F<br />STATUS_LOG_METADATA_INCONSISTENT</p>
+ </td>
+ <td>
+ <p>The log service encountered a metadata file with inconsistent data.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01A0010<br />STATUS_LOG_RESERVATION_INVALID</p>
+ </td>
+ <td>
+ <p>The log service encountered an attempt to erroneously allocate or dispose reservation space.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01A0011<br />STATUS_LOG_CANT_DELETE</p>
+ </td>
+ <td>
+ <p>The log service cannot delete the log file or the file system container.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01A0012<br />STATUS_LOG_CONTAINER_LIMIT_EXCEEDED</p>
+ </td>
+ <td>
+ <p>The log service has reached the maximum allowable containers allocated to a log file.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01A0013<br />STATUS_LOG_START_OF_LOG</p>
+ </td>
+ <td>
+ <p>The log service has attempted to read or write backward past the start of the log.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01A0014<br />STATUS_LOG_POLICY_ALREADY_INSTALLED</p>
+ </td>
+ <td>
+ <p>The log policy could not be installed because a policy of the same type is already present.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01A0015<br />STATUS_LOG_POLICY_NOT_INSTALLED</p>
+ </td>
+ <td>
+ <p>The log policy in question was not installed at the time of the request.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01A0016<br />STATUS_LOG_POLICY_INVALID</p>
+ </td>
+ <td>
+ <p>The installed set of policies on the log is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01A0017<br />STATUS_LOG_POLICY_CONFLICT</p>
+ </td>
+ <td>
+ <p>A policy on the log in question prevented the operation from completing.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01A0018<br />STATUS_LOG_PINNED_ARCHIVE_TAIL</p>
+ </td>
+ <td>
+ <p>The log space cannot be reclaimed because the log is pinned by the archive tail.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01A0019<br />STATUS_LOG_RECORD_NONEXISTENT</p>
+ </td>
+ <td>
+ <p>The log record is not a record in the log file.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01A001A<br />STATUS_LOG_RECORDS_RESERVED_INVALID</p>
+ </td>
+ <td>
+ <p>The number of reserved log records or the adjustment of the number of reserved log records is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01A001B<br />STATUS_LOG_SPACE_RESERVED_INVALID</p>
+ </td>
+ <td>
+ <p>The reserved log space or the adjustment of the log space is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01A001C<br />STATUS_LOG_TAIL_INVALID</p>
+ </td>
+ <td>
+ <p>A new or existing archive tail or the base of the active log is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01A001D<br />STATUS_LOG_FULL</p>
+ </td>
+ <td>
+ <p>The log space is exhausted.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01A001E<br />STATUS_LOG_MULTIPLEXED</p>
+ </td>
+ <td>
+ <p>The log is multiplexed; no direct writes to the physical log are allowed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01A001F<br />STATUS_LOG_DEDICATED</p>
+ </td>
+ <td>
+ <p>The operation failed because the log is dedicated.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01A0020<br />STATUS_LOG_ARCHIVE_NOT_IN_PROGRESS</p>
+ </td>
+ <td>
+ <p>The operation requires an archive context.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01A0021<br />STATUS_LOG_ARCHIVE_IN_PROGRESS</p>
+ </td>
+ <td>
+ <p>Log archival is in progress.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01A0022<br />STATUS_LOG_EPHEMERAL</p>
+ </td>
+ <td>
+ <p>The operation requires a nonephemeral log, but the log is ephemeral.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01A0023<br />STATUS_LOG_NOT_ENOUGH_CONTAINERS</p>
+ </td>
+ <td>
+ <p>The log must have at least two containers before it can be read from or written to.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01A0024<br />STATUS_LOG_CLIENT_ALREADY_REGISTERED</p>
+ </td>
+ <td>
+ <p>A log client has already registered on the stream.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01A0025<br />STATUS_LOG_CLIENT_NOT_REGISTERED</p>
+ </td>
+ <td>
+ <p>A log client has not been registered on the stream.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01A0026<br />STATUS_LOG_FULL_HANDLER_IN_PROGRESS</p>
+ </td>
+ <td>
+ <p>A request has already been made to handle the log full condition.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01A0027<br />STATUS_LOG_CONTAINER_READ_FAILED</p>
+ </td>
+ <td>
+ <p>The log service encountered an error when attempting to read from a log container.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01A0028<br />STATUS_LOG_CONTAINER_WRITE_FAILED</p>
+ </td>
+ <td>
+ <p>The log service encountered an error when attempting to write to a log container.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01A0029<br />STATUS_LOG_CONTAINER_OPEN_FAILED</p>
+ </td>
+ <td>
+ <p>The log service encountered an error when attempting to open a log container.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01A002A<br />STATUS_LOG_CONTAINER_STATE_INVALID</p>
+ </td>
+ <td>
+ <p>The log service encountered an invalid container state when attempting a requested action.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01A002B<br />STATUS_LOG_STATE_INVALID</p>
+ </td>
+ <td>
+ <p>The log service is not in the correct state to perform a requested action.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01A002C<br />STATUS_LOG_PINNED</p>
+ </td>
+ <td>
+ <p>The log space cannot be reclaimed because the log is pinned.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01A002D<br />STATUS_LOG_METADATA_FLUSH_FAILED</p>
+ </td>
+ <td>
+ <p>The log metadata flush failed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01A002E<br />STATUS_LOG_INCONSISTENT_SECURITY</p>
+ </td>
+ <td>
+ <p>Security on the log and its containers is inconsistent.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01A002F<br />STATUS_LOG_APPENDED_FLUSH_FAILED</p>
+ </td>
+ <td>
+ <p>Records were appended to the log or reservation changes were made, but the log could not be flushed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01A0030<br />STATUS_LOG_PINNED_RESERVATION</p>
+ </td>
+ <td>
+ <p>The log is pinned due to reservation consuming most of the log space. Free some reserved records to make space available.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01B00EA<br />STATUS_VIDEO_HUNG_DISPLAY_DRIVER_THREAD</p>
+ </td>
+ <td>
+ <p>{Display Driver Stopped Responding} The %hs display driver has stopped working normally. Save your work and reboot the system to restore full display functionality. The next time you reboot the computer, a dialog box will allow you to upload data about this failure to Microsoft.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01C0001<br />STATUS_FLT_NO_HANDLER_DEFINED</p>
+ </td>
+ <td>
+ <p>A handler was not defined by the filter for this operation.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01C0002<br />STATUS_FLT_CONTEXT_ALREADY_DEFINED</p>
+ </td>
+ <td>
+ <p>A context is already defined for this object.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01C0003<br />STATUS_FLT_INVALID_ASYNCHRONOUS_REQUEST</p>
+ </td>
+ <td>
+ <p>Asynchronous requests are not valid for this operation.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01C0004<br />STATUS_FLT_DISALLOW_FAST_IO</p>
+ </td>
+ <td>
+ <p>This is an internal error code used by the filter manager to determine if a fast I/O operation should be forced down the input/output request packet (IRP) path. Minifilters should never return this value.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01C0005<br />STATUS_FLT_INVALID_NAME_REQUEST</p>
+ </td>
+ <td>
+ <p>An invalid name request was made. The name requested cannot be retrieved at this time.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01C0006<br />STATUS_FLT_NOT_SAFE_TO_POST_OPERATION</p>
+ </td>
+ <td>
+ <p>Posting this operation to a worker thread for further processing is not safe at this time because it could lead to a system deadlock.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01C0007<br />STATUS_FLT_NOT_INITIALIZED</p>
+ </td>
+ <td>
+ <p>The Filter Manager was not initialized when a filter tried to register. Make sure that the Filter Manager is loaded as a driver.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01C0008<br />STATUS_FLT_FILTER_NOT_READY</p>
+ </td>
+ <td>
+ <p>The filter is not ready for attachment to volumes because it has not finished initializing (FltStartFiltering has not been called).</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01C0009<br />STATUS_FLT_POST_OPERATION_CLEANUP</p>
+ </td>
+ <td>
+ <p>The filter must clean up any operation-specific context at this time because it is being removed from the system before the operation is completed by the lower drivers.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01C000A<br />STATUS_FLT_INTERNAL_ERROR</p>
+ </td>
+ <td>
+ <p>The Filter Manager had an internal error from which it cannot recover; therefore, the operation has failed. This is usually the result of a filter returning an invalid value from a pre-operation callback.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01C000B<br />STATUS_FLT_DELETING_OBJECT</p>
+ </td>
+ <td>
+ <p>The object specified for this action is in the process of being deleted; therefore, the action requested cannot be completed at this time.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01C000C<br />STATUS_FLT_MUST_BE_NONPAGED_POOL</p>
+ </td>
+ <td>
+ <p>A nonpaged pool must be used for this type of context.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01C000D<br />STATUS_FLT_DUPLICATE_ENTRY</p>
+ </td>
+ <td>
+ <p>A duplicate handler definition has been provided for an operation.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01C000E<br />STATUS_FLT_CBDQ_DISABLED</p>
+ </td>
+ <td>
+ <p>The callback data queue has been disabled.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01C000F<br />STATUS_FLT_DO_NOT_ATTACH</p>
+ </td>
+ <td>
+ <p>Do not attach the filter to the volume at this time.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01C0010<br />STATUS_FLT_DO_NOT_DETACH</p>
+ </td>
+ <td>
+ <p>Do not detach the filter from the volume at this time.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01C0011<br />STATUS_FLT_INSTANCE_ALTITUDE_COLLISION</p>
+ </td>
+ <td>
+ <p>An instance already exists at this altitude on the volume specified.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01C0012<br />STATUS_FLT_INSTANCE_NAME_COLLISION</p>
+ </td>
+ <td>
+ <p>An instance already exists with this name on the volume specified.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01C0013<br />STATUS_FLT_FILTER_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>The system could not find the filter specified.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01C0014<br />STATUS_FLT_VOLUME_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>The system could not find the volume specified.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01C0015<br />STATUS_FLT_INSTANCE_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>The system could not find the instance specified.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01C0016<br />STATUS_FLT_CONTEXT_ALLOCATION_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>No registered context allocation definition was found for the given request.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01C0017<br />STATUS_FLT_INVALID_CONTEXT_REGISTRATION</p>
+ </td>
+ <td>
+ <p>An invalid parameter was specified during context registration.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01C0018<br />STATUS_FLT_NAME_CACHE_MISS</p>
+ </td>
+ <td>
+ <p>The name requested was not found in the Filter Manager name cache and could not be retrieved from the file system.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01C0019<br />STATUS_FLT_NO_DEVICE_OBJECT</p>
+ </td>
+ <td>
+ <p>The requested device object does not exist for the given volume.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01C001A<br />STATUS_FLT_VOLUME_ALREADY_MOUNTED</p>
+ </td>
+ <td>
+ <p>The specified volume is already mounted.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01C001B<br />STATUS_FLT_ALREADY_ENLISTED</p>
+ </td>
+ <td>
+ <p>The specified transaction context is already enlisted in a transaction.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01C001C<br />STATUS_FLT_CONTEXT_ALREADY_LINKED</p>
+ </td>
+ <td>
+ <p>The specified context is already attached to another object.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01C0020<br />STATUS_FLT_NO_WAITER_FOR_REPLY</p>
+ </td>
+ <td>
+ <p>No waiter is present for the filter's reply to this message.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01D0001<br />STATUS_MONITOR_NO_DESCRIPTOR</p>
+ </td>
+ <td>
+ <p>A monitor descriptor could not be obtained.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01D0002<br />STATUS_MONITOR_UNKNOWN_DESCRIPTOR_FORMAT</p>
+ </td>
+ <td>
+ <p>This release does not support the format of the obtained monitor descriptor.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01D0003<br />STATUS_MONITOR_INVALID_DESCRIPTOR_CHECKSUM</p>
+ </td>
+ <td>
+ <p>The checksum of the obtained monitor descriptor is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01D0004<br />STATUS_MONITOR_INVALID_STANDARD_TIMING_BLOCK</p>
+ </td>
+ <td>
+ <p>The monitor descriptor contains an invalid standard timing block.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01D0005<br />STATUS_MONITOR_WMI_DATABLOCK_REGISTRATION_FAILED</p>
+ </td>
+ <td>
+ <p>WMI data-block registration failed for one of the MSMonitorClass WMI subclasses.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01D0006<br />STATUS_MONITOR_INVALID_SERIAL_NUMBER_MONDSC_BLOCK</p>
+ </td>
+ <td>
+ <p>The provided monitor descriptor block is either corrupted or does not contain the monitor's detailed serial number.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01D0007<br />STATUS_MONITOR_INVALID_USER_FRIENDLY_MONDSC_BLOCK</p>
+ </td>
+ <td>
+ <p>The provided monitor descriptor block is either corrupted or does not contain the monitor's user-friendly name.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01D0008<br />STATUS_MONITOR_NO_MORE_DESCRIPTOR_DATA</p>
+ </td>
+ <td>
+ <p>There is no monitor descriptor data at the specified (offset or size) region.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01D0009<br />STATUS_MONITOR_INVALID_DETAILED_TIMING_BLOCK</p>
+ </td>
+ <td>
+ <p>The monitor descriptor contains an invalid detailed timing block.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01D000A<br />STATUS_MONITOR_INVALID_MANUFACTURE_DATE</p>
+ </td>
+ <td>
+ <p>Monitor descriptor contains invalid manufacture date.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0000<br />STATUS_GRAPHICS_NOT_EXCLUSIVE_MODE_OWNER</p>
+ </td>
+ <td>
+ <p>Exclusive mode ownership is needed to create an unmanaged primary allocation.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0001<br />STATUS_GRAPHICS_INSUFFICIENT_DMA_BUFFER</p>
+ </td>
+ <td>
+ <p>The driver needs more DMA buffer space to complete the requested operation.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0002<br />STATUS_GRAPHICS_INVALID_DISPLAY_ADAPTER</p>
+ </td>
+ <td>
+ <p>The specified display adapter handle is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0003<br />STATUS_GRAPHICS_ADAPTER_WAS_RESET</p>
+ </td>
+ <td>
+ <p>The specified display adapter and all of its state have been reset.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0004<br />STATUS_GRAPHICS_INVALID_DRIVER_MODEL</p>
+ </td>
+ <td>
+ <p>The driver stack does not match the expected driver model.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0005<br />STATUS_GRAPHICS_PRESENT_MODE_CHANGED</p>
+ </td>
+ <td>
+ <p>Present happened but ended up into the changed desktop mode.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0006<br />STATUS_GRAPHICS_PRESENT_OCCLUDED</p>
+ </td>
+ <td>
+ <p>Nothing to present due to desktop occlusion.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0007<br />STATUS_GRAPHICS_PRESENT_DENIED</p>
+ </td>
+ <td>
+ <p>Not able to present due to denial of desktop access.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0008<br />STATUS_GRAPHICS_CANNOTCOLORCONVERT</p>
+ </td>
+ <td>
+ <p>Not able to present with color conversion.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E000B<br />STATUS_GRAPHICS_PRESENT_REDIRECTION_DISABLED</p>
+ </td>
+ <td>
+ <p>Present redirection is disabled (desktop windowing management subsystem is off).</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E000C<br />STATUS_GRAPHICS_PRESENT_UNOCCLUDED</p>
+ </td>
+ <td>
+ <p>Previous exclusive VidPn source owner has released its ownership</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0100<br />STATUS_GRAPHICS_NO_VIDEO_MEMORY</p>
+ </td>
+ <td>
+ <p>Not enough video memory is available to complete the operation.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0101<br />STATUS_GRAPHICS_CANT_LOCK_MEMORY</p>
+ </td>
+ <td>
+ <p>Could not probe and lock the underlying memory of an allocation.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0102<br />STATUS_GRAPHICS_ALLOCATION_BUSY</p>
+ </td>
+ <td>
+ <p>The allocation is currently busy.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0103<br />STATUS_GRAPHICS_TOO_MANY_REFERENCES</p>
+ </td>
+ <td>
+ <p>An object being referenced has already reached the maximum reference count and cannot be referenced further.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0104<br />STATUS_GRAPHICS_TRY_AGAIN_LATER</p>
+ </td>
+ <td>
+ <p>A problem could not be solved due to an existing condition. Try again later.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0105<br />STATUS_GRAPHICS_TRY_AGAIN_NOW</p>
+ </td>
+ <td>
+ <p>A problem could not be solved due to an existing condition. Try again now.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0106<br />STATUS_GRAPHICS_ALLOCATION_INVALID</p>
+ </td>
+ <td>
+ <p>The allocation is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0107<br />STATUS_GRAPHICS_UNSWIZZLING_APERTURE_UNAVAILABLE</p>
+ </td>
+ <td>
+ <p>No more unswizzling apertures are currently available.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0108<br />STATUS_GRAPHICS_UNSWIZZLING_APERTURE_UNSUPPORTED</p>
+ </td>
+ <td>
+ <p>The current allocation cannot be unswizzled by an aperture.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0109<br />STATUS_GRAPHICS_CANT_EVICT_PINNED_ALLOCATION</p>
+ </td>
+ <td>
+ <p>The request failed because a pinned allocation cannot be evicted.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0110<br />STATUS_GRAPHICS_INVALID_ALLOCATION_USAGE</p>
+ </td>
+ <td>
+ <p>The allocation cannot be used from its current segment location for the specified operation.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0111<br />STATUS_GRAPHICS_CANT_RENDER_LOCKED_ALLOCATION</p>
+ </td>
+ <td>
+ <p>A locked allocation cannot be used in the current command buffer.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0112<br />STATUS_GRAPHICS_ALLOCATION_CLOSED</p>
+ </td>
+ <td>
+ <p>The allocation being referenced has been closed permanently.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0113<br />STATUS_GRAPHICS_INVALID_ALLOCATION_INSTANCE</p>
+ </td>
+ <td>
+ <p>An invalid allocation instance is being referenced.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0114<br />STATUS_GRAPHICS_INVALID_ALLOCATION_HANDLE</p>
+ </td>
+ <td>
+ <p>An invalid allocation handle is being referenced.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0115<br />STATUS_GRAPHICS_WRONG_ALLOCATION_DEVICE</p>
+ </td>
+ <td>
+ <p>The allocation being referenced does not belong to the current device.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0116<br />STATUS_GRAPHICS_ALLOCATION_CONTENT_LOST</p>
+ </td>
+ <td>
+ <p>The specified allocation lost its content.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0200<br />STATUS_GRAPHICS_GPU_EXCEPTION_ON_DEVICE</p>
+ </td>
+ <td>
+ <p>A GPU exception was detected on the given device. The device cannot be scheduled.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0300<br />STATUS_GRAPHICS_INVALID_VIDPN_TOPOLOGY</p>
+ </td>
+ <td>
+ <p>The specified VidPN topology is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0301<br />STATUS_GRAPHICS_VIDPN_TOPOLOGY_NOT_SUPPORTED</p>
+ </td>
+ <td>
+ <p>The specified VidPN topology is valid but is not supported by this model of the display adapter.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0302<br />STATUS_GRAPHICS_VIDPN_TOPOLOGY_CURRENTLY_NOT_SUPPORTED</p>
+ </td>
+ <td>
+ <p>The specified VidPN topology is valid but is not currently supported by the display adapter due to allocation of its resources.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0303<br />STATUS_GRAPHICS_INVALID_VIDPN</p>
+ </td>
+ <td>
+ <p>The specified VidPN handle is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0304<br />STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE</p>
+ </td>
+ <td>
+ <p>The specified video present source is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0305<br />STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET</p>
+ </td>
+ <td>
+ <p>The specified video present target is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0306<br />STATUS_GRAPHICS_VIDPN_MODALITY_NOT_SUPPORTED</p>
+ </td>
+ <td>
+ <p>The specified VidPN modality is not supported (for example, at least two of the pinned modes are not co-functional).</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0308<br />STATUS_GRAPHICS_INVALID_VIDPN_SOURCEMODESET</p>
+ </td>
+ <td>
+ <p>The specified VidPN source mode set is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0309<br />STATUS_GRAPHICS_INVALID_VIDPN_TARGETMODESET</p>
+ </td>
+ <td>
+ <p>The specified VidPN target mode set is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E030A<br />STATUS_GRAPHICS_INVALID_FREQUENCY</p>
+ </td>
+ <td>
+ <p>The specified video signal frequency is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E030B<br />STATUS_GRAPHICS_INVALID_ACTIVE_REGION</p>
+ </td>
+ <td>
+ <p>The specified video signal active region is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E030C<br />STATUS_GRAPHICS_INVALID_TOTAL_REGION</p>
+ </td>
+ <td>
+ <p>The specified video signal total region is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0310<br />STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE_MODE</p>
+ </td>
+ <td>
+ <p>The specified video present source mode is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0311<br />STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET_MODE</p>
+ </td>
+ <td>
+ <p>The specified video present target mode is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0312<br />STATUS_GRAPHICS_PINNED_MODE_MUST_REMAIN_IN_SET</p>
+ </td>
+ <td>
+ <p>The pinned mode must remain in the set on the VidPN's co-functional modality enumeration.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0313<br />STATUS_GRAPHICS_PATH_ALREADY_IN_TOPOLOGY</p>
+ </td>
+ <td>
+ <p>The specified video present path is already in the VidPN's topology.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0314<br />STATUS_GRAPHICS_MODE_ALREADY_IN_MODESET</p>
+ </td>
+ <td>
+ <p>The specified mode is already in the mode set.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0315<br />STATUS_GRAPHICS_INVALID_VIDEOPRESENTSOURCESET</p>
+ </td>
+ <td>
+ <p>The specified video present source set is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0316<br />STATUS_GRAPHICS_INVALID_VIDEOPRESENTTARGETSET</p>
+ </td>
+ <td>
+ <p>The specified video present target set is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0317<br />STATUS_GRAPHICS_SOURCE_ALREADY_IN_SET</p>
+ </td>
+ <td>
+ <p>The specified video present source is already in the video present source set.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0318<br />STATUS_GRAPHICS_TARGET_ALREADY_IN_SET</p>
+ </td>
+ <td>
+ <p>The specified video present target is already in the video present target set.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0319<br />STATUS_GRAPHICS_INVALID_VIDPN_PRESENT_PATH</p>
+ </td>
+ <td>
+ <p>The specified VidPN present path is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E031A<br />STATUS_GRAPHICS_NO_RECOMMENDED_VIDPN_TOPOLOGY</p>
+ </td>
+ <td>
+ <p>The miniport has no recommendation for augmenting the specified VidPN's topology.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E031B<br />STATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGESET</p>
+ </td>
+ <td>
+ <p>The specified monitor frequency range set is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E031C<br />STATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE</p>
+ </td>
+ <td>
+ <p>The specified monitor frequency range is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E031D<br />STATUS_GRAPHICS_FREQUENCYRANGE_NOT_IN_SET</p>
+ </td>
+ <td>
+ <p>The specified frequency range is not in the specified monitor frequency range set.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E031F<br />STATUS_GRAPHICS_FREQUENCYRANGE_ALREADY_IN_SET</p>
+ </td>
+ <td>
+ <p>The specified frequency range is already in the specified monitor frequency range set.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0320<br />STATUS_GRAPHICS_STALE_MODESET</p>
+ </td>
+ <td>
+ <p>The specified mode set is stale. Reacquire the new mode set.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0321<br />STATUS_GRAPHICS_INVALID_MONITOR_SOURCEMODESET</p>
+ </td>
+ <td>
+ <p>The specified monitor source mode set is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0322<br />STATUS_GRAPHICS_INVALID_MONITOR_SOURCE_MODE</p>
+ </td>
+ <td>
+ <p>The specified monitor source mode is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0323<br />STATUS_GRAPHICS_NO_RECOMMENDED_FUNCTIONAL_VIDPN</p>
+ </td>
+ <td>
+ <p>The miniport does not have a recommendation regarding the request to provide a functional VidPN given the current display adapter configuration.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0324<br />STATUS_GRAPHICS_MODE_ID_MUST_BE_UNIQUE</p>
+ </td>
+ <td>
+ <p>The ID of the specified mode is being used by another mode in the set.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0325<br />STATUS_GRAPHICS_EMPTY_ADAPTER_MONITOR_MODE_SUPPORT_INTERSECTION</p>
+ </td>
+ <td>
+ <p>The system failed to determine a mode that is supported by both the display adapter and the monitor connected to it.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0326<br />STATUS_GRAPHICS_VIDEO_PRESENT_TARGETS_LESS_THAN_SOURCES</p>
+ </td>
+ <td>
+ <p>The number of video present targets must be greater than or equal to the number of video present sources.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0327<br />STATUS_GRAPHICS_PATH_NOT_IN_TOPOLOGY</p>
+ </td>
+ <td>
+ <p>The specified present path is not in the VidPN's topology.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0328<br />STATUS_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_SOURCE</p>
+ </td>
+ <td>
+ <p>The display adapter must have at least one video present source.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0329<br />STATUS_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_TARGET</p>
+ </td>
+ <td>
+ <p>The display adapter must have at least one video present target.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E032A<br />STATUS_GRAPHICS_INVALID_MONITORDESCRIPTORSET</p>
+ </td>
+ <td>
+ <p>The specified monitor descriptor set is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E032B<br />STATUS_GRAPHICS_INVALID_MONITORDESCRIPTOR</p>
+ </td>
+ <td>
+ <p>The specified monitor descriptor is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E032C<br />STATUS_GRAPHICS_MONITORDESCRIPTOR_NOT_IN_SET</p>
+ </td>
+ <td>
+ <p>The specified descriptor is not in the specified monitor descriptor set.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E032D<br />STATUS_GRAPHICS_MONITORDESCRIPTOR_ALREADY_IN_SET</p>
+ </td>
+ <td>
+ <p>The specified descriptor is already in the specified monitor descriptor set.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E032E<br />STATUS_GRAPHICS_MONITORDESCRIPTOR_ID_MUST_BE_UNIQUE</p>
+ </td>
+ <td>
+ <p>The ID of the specified monitor descriptor is being used by another descriptor in the set.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E032F<br />STATUS_GRAPHICS_INVALID_VIDPN_TARGET_SUBSET_TYPE</p>
+ </td>
+ <td>
+ <p>The specified video present target subset type is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0330<br />STATUS_GRAPHICS_RESOURCES_NOT_RELATED</p>
+ </td>
+ <td>
+ <p>Two or more of the specified resources are not related to each other, as defined by the interface semantics.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0331<br />STATUS_GRAPHICS_SOURCE_ID_MUST_BE_UNIQUE</p>
+ </td>
+ <td>
+ <p>The ID of the specified video present source is being used by another source in the set.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0332<br />STATUS_GRAPHICS_TARGET_ID_MUST_BE_UNIQUE</p>
+ </td>
+ <td>
+ <p>The ID of the specified video present target is being used by another target in the set.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0333<br />STATUS_GRAPHICS_NO_AVAILABLE_VIDPN_TARGET</p>
+ </td>
+ <td>
+ <p>The specified VidPN source cannot be used because there is no available VidPN target to connect it to.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0334<br />STATUS_GRAPHICS_MONITOR_COULD_NOT_BE_ASSOCIATED_WITH_ADAPTER</p>
+ </td>
+ <td>
+ <p>The newly arrived monitor could not be associated with a display adapter.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0335<br />STATUS_GRAPHICS_NO_VIDPNMGR</p>
+ </td>
+ <td>
+ <p>The particular display adapter does not have an associated VidPN manager.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0336<br />STATUS_GRAPHICS_NO_ACTIVE_VIDPN</p>
+ </td>
+ <td>
+ <p>The VidPN manager of the particular display adapter does not have an active VidPN.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0337<br />STATUS_GRAPHICS_STALE_VIDPN_TOPOLOGY</p>
+ </td>
+ <td>
+ <p>The specified VidPN topology is stale; obtain the new topology.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0338<br />STATUS_GRAPHICS_MONITOR_NOT_CONNECTED</p>
+ </td>
+ <td>
+ <p>No monitor is connected on the specified video present target.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0339<br />STATUS_GRAPHICS_SOURCE_NOT_IN_TOPOLOGY</p>
+ </td>
+ <td>
+ <p>The specified source is not part of the specified VidPN's topology.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E033A<br />STATUS_GRAPHICS_INVALID_PRIMARYSURFACE_SIZE</p>
+ </td>
+ <td>
+ <p>The specified primary surface size is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E033B<br />STATUS_GRAPHICS_INVALID_VISIBLEREGION_SIZE</p>
+ </td>
+ <td>
+ <p>The specified visible region size is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E033C<br />STATUS_GRAPHICS_INVALID_STRIDE</p>
+ </td>
+ <td>
+ <p>The specified stride is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E033D<br />STATUS_GRAPHICS_INVALID_PIXELFORMAT</p>
+ </td>
+ <td>
+ <p>The specified pixel format is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E033E<br />STATUS_GRAPHICS_INVALID_COLORBASIS</p>
+ </td>
+ <td>
+ <p>The specified color basis is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E033F<br />STATUS_GRAPHICS_INVALID_PIXELVALUEACCESSMODE</p>
+ </td>
+ <td>
+ <p>The specified pixel value access mode is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0340<br />STATUS_GRAPHICS_TARGET_NOT_IN_TOPOLOGY</p>
+ </td>
+ <td>
+ <p>The specified target is not part of the specified VidPN's topology.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0341<br />STATUS_GRAPHICS_NO_DISPLAY_MODE_MANAGEMENT_SUPPORT</p>
+ </td>
+ <td>
+ <p>Failed to acquire the display mode management interface.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0342<br />STATUS_GRAPHICS_VIDPN_SOURCE_IN_USE</p>
+ </td>
+ <td>
+ <p>The specified VidPN source is already owned by a DMM client and cannot be used until that client releases it.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0343<br />STATUS_GRAPHICS_CANT_ACCESS_ACTIVE_VIDPN</p>
+ </td>
+ <td>
+ <p>The specified VidPN is active and cannot be accessed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0344<br />STATUS_GRAPHICS_INVALID_PATH_IMPORTANCE_ORDINAL</p>
+ </td>
+ <td>
+ <p>The specified VidPN's present path importance ordinal is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0345<br />STATUS_GRAPHICS_INVALID_PATH_CONTENT_GEOMETRY_TRANSFORMATION</p>
+ </td>
+ <td>
+ <p>The specified VidPN's present path content geometry transformation is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0346<br />STATUS_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_SUPPORTED</p>
+ </td>
+ <td>
+ <p>The specified content geometry transformation is not supported on the respective VidPN present path.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0347<br />STATUS_GRAPHICS_INVALID_GAMMA_RAMP</p>
+ </td>
+ <td>
+ <p>The specified gamma ramp is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0348<br />STATUS_GRAPHICS_GAMMA_RAMP_NOT_SUPPORTED</p>
+ </td>
+ <td>
+ <p>The specified gamma ramp is not supported on the respective VidPN present path.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0349<br />STATUS_GRAPHICS_MULTISAMPLING_NOT_SUPPORTED</p>
+ </td>
+ <td>
+ <p>Multisampling is not supported on the respective VidPN present path.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E034A<br />STATUS_GRAPHICS_MODE_NOT_IN_MODESET</p>
+ </td>
+ <td>
+ <p>The specified mode is not in the specified mode set.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E034D<br />STATUS_GRAPHICS_INVALID_VIDPN_TOPOLOGY_RECOMMENDATION_REASON</p>
+ </td>
+ <td>
+ <p>The specified VidPN topology recommendation reason is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E034E<br />STATUS_GRAPHICS_INVALID_PATH_CONTENT_TYPE</p>
+ </td>
+ <td>
+ <p>The specified VidPN present path content type is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E034F<br />STATUS_GRAPHICS_INVALID_COPYPROTECTION_TYPE</p>
+ </td>
+ <td>
+ <p>The specified VidPN present path copy protection type is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0350<br />STATUS_GRAPHICS_UNASSIGNED_MODESET_ALREADY_EXISTS</p>
+ </td>
+ <td>
+ <p>Only one unassigned mode set can exist at any one time for a particular VidPN source or target.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0352<br />STATUS_GRAPHICS_INVALID_SCANLINE_ORDERING</p>
+ </td>
+ <td>
+ <p>The specified scan line ordering type is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0353<br />STATUS_GRAPHICS_TOPOLOGY_CHANGES_NOT_ALLOWED</p>
+ </td>
+ <td>
+ <p>The topology changes are not allowed for the specified VidPN.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0354<br />STATUS_GRAPHICS_NO_AVAILABLE_IMPORTANCE_ORDINALS</p>
+ </td>
+ <td>
+ <p>All available importance ordinals are being used in the specified topology.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0355<br />STATUS_GRAPHICS_INCOMPATIBLE_PRIVATE_FORMAT</p>
+ </td>
+ <td>
+ <p>The specified primary surface has a different private-format attribute than the current primary surface.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0356<br />STATUS_GRAPHICS_INVALID_MODE_PRUNING_ALGORITHM</p>
+ </td>
+ <td>
+ <p>The specified mode-pruning algorithm is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0357<br />STATUS_GRAPHICS_INVALID_MONITOR_CAPABILITY_ORIGIN</p>
+ </td>
+ <td>
+ <p>The specified monitor-capability origin is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0358<br />STATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE_CONSTRAINT</p>
+ </td>
+ <td>
+ <p>The specified monitor-frequency range constraint is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0359<br />STATUS_GRAPHICS_MAX_NUM_PATHS_REACHED</p>
+ </td>
+ <td>
+ <p>The maximum supported number of present paths has been reached.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E035A<br />STATUS_GRAPHICS_CANCEL_VIDPN_TOPOLOGY_AUGMENTATION</p>
+ </td>
+ <td>
+ <p>The miniport requested that augmentation be canceled for the specified source of the specified VidPN's topology.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E035B<br />STATUS_GRAPHICS_INVALID_CLIENT_TYPE</p>
+ </td>
+ <td>
+ <p>The specified client type was not recognized.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E035C<br />STATUS_GRAPHICS_CLIENTVIDPN_NOT_SET</p>
+ </td>
+ <td>
+ <p>The client VidPN is not set on this adapter (for example, no user mode-initiated mode changes have taken place on this adapter).</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0400<br />STATUS_GRAPHICS_SPECIFIED_CHILD_ALREADY_CONNECTED</p>
+ </td>
+ <td>
+ <p>The specified display adapter child device already has an external device connected to it.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0401<br />STATUS_GRAPHICS_CHILD_DESCRIPTOR_NOT_SUPPORTED</p>
+ </td>
+ <td>
+ <p>The display adapter child device does not support reporting a descriptor.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0430<br />STATUS_GRAPHICS_NOT_A_LINKED_ADAPTER</p>
+ </td>
+ <td>
+ <p>The display adapter is not linked to any other adapters.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0431<br />STATUS_GRAPHICS_LEADLINK_NOT_ENUMERATED</p>
+ </td>
+ <td>
+ <p>The lead adapter in a linked configuration was not enumerated yet.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0432<br />STATUS_GRAPHICS_CHAINLINKS_NOT_ENUMERATED</p>
+ </td>
+ <td>
+ <p>Some chain adapters in a linked configuration have not yet been enumerated.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0433<br />STATUS_GRAPHICS_ADAPTER_CHAIN_NOT_READY</p>
+ </td>
+ <td>
+ <p>The chain of linked adapters is not ready to start because of an unknown failure.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0434<br />STATUS_GRAPHICS_CHAINLINKS_NOT_STARTED</p>
+ </td>
+ <td>
+ <p>An attempt was made to start a lead link display adapter when the chain links had not yet started.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0435<br />STATUS_GRAPHICS_CHAINLINKS_NOT_POWERED_ON</p>
+ </td>
+ <td>
+ <p>An attempt was made to turn on a lead link display adapter when the chain links were turned off.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0436<br />STATUS_GRAPHICS_INCONSISTENT_DEVICE_LINK_STATE</p>
+ </td>
+ <td>
+ <p>The adapter link was found in an inconsistent state. Not all adapters are in an expected PNP/power state.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0438<br />STATUS_GRAPHICS_NOT_POST_DEVICE_DRIVER</p>
+ </td>
+ <td>
+ <p>The driver trying to start is not the same as the driver for the posted display adapter.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E043B<br />STATUS_GRAPHICS_ADAPTER_ACCESS_NOT_EXCLUDED</p>
+ </td>
+ <td>
+ <p>An operation is being attempted that requires the display adapter to be in a quiescent state.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0500<br />STATUS_GRAPHICS_OPM_NOT_SUPPORTED</p>
+ </td>
+ <td>
+ <p>The driver does not support OPM.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0501<br />STATUS_GRAPHICS_COPP_NOT_SUPPORTED</p>
+ </td>
+ <td>
+ <p>The driver does not support COPP.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0502<br />STATUS_GRAPHICS_UAB_NOT_SUPPORTED</p>
+ </td>
+ <td>
+ <p>The driver does not support UAB.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0503<br />STATUS_GRAPHICS_OPM_INVALID_ENCRYPTED_PARAMETERS</p>
+ </td>
+ <td>
+ <p>The specified encrypted parameters are invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0504<br />STATUS_GRAPHICS_OPM_PARAMETER_ARRAY_TOO_SMALL</p>
+ </td>
+ <td>
+ <p>An array passed to a function cannot hold all of the data that the function wants to put in it.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0505<br />STATUS_GRAPHICS_OPM_NO_PROTECTED_OUTPUTS_EXIST</p>
+ </td>
+ <td>
+ <p>The GDI display device passed to this function does not have any active protected outputs.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0506<br />STATUS_GRAPHICS_PVP_NO_DISPLAY_DEVICE_CORRESPONDS_TO_NAME</p>
+ </td>
+ <td>
+ <p>The PVP cannot find an actual GDI display device that corresponds to the passed-in GDI display device name.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0507<br />STATUS_GRAPHICS_PVP_DISPLAY_DEVICE_NOT_ATTACHED_TO_DESKTOP</p>
+ </td>
+ <td>
+ <p>This function failed because the GDI display device passed to it was not attached to the Windows desktop.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0508<br />STATUS_GRAPHICS_PVP_MIRRORING_DEVICES_NOT_SUPPORTED</p>
+ </td>
+ <td>
+ <p>The PVP does not support mirroring display devices because they do not have any protected outputs.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E050A<br />STATUS_GRAPHICS_OPM_INVALID_POINTER</p>
+ </td>
+ <td>
+ <p>The function failed because an invalid pointer parameter was passed to it. A pointer parameter is invalid if it is null, is not correctly aligned, or it points to an invalid address or a kernel mode address.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E050B<br />STATUS_GRAPHICS_OPM_INTERNAL_ERROR</p>
+ </td>
+ <td>
+ <p>An internal error caused an operation to fail.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E050C<br />STATUS_GRAPHICS_OPM_INVALID_HANDLE</p>
+ </td>
+ <td>
+ <p>The function failed because the caller passed in an invalid OPM user-mode handle.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E050D<br />STATUS_GRAPHICS_PVP_NO_MONITORS_CORRESPOND_TO_DISPLAY_DEVICE</p>
+ </td>
+ <td>
+ <p>This function failed because the GDI device passed to it did not have any monitors associated with it.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E050E<br />STATUS_GRAPHICS_PVP_INVALID_CERTIFICATE_LENGTH</p>
+ </td>
+ <td>
+ <p>A certificate could not be returned because the certificate buffer passed to the function was too small.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E050F<br />STATUS_GRAPHICS_OPM_SPANNING_MODE_ENABLED</p>
+ </td>
+ <td>
+ <p>DxgkDdiOpmCreateProtectedOutput() could not create a protected output because the video present yarget is in spanning mode.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0510<br />STATUS_GRAPHICS_OPM_THEATER_MODE_ENABLED</p>
+ </td>
+ <td>
+ <p>DxgkDdiOpmCreateProtectedOutput() could not create a protected output because the video present target is in theater mode.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0511<br />STATUS_GRAPHICS_PVP_HFS_FAILED</p>
+ </td>
+ <td>
+ <p>The function call failed because the display adapter's hardware functionality scan (HFS) failed to validate the graphics hardware.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0512<br />STATUS_GRAPHICS_OPM_INVALID_SRM</p>
+ </td>
+ <td>
+ <p>The HDCP SRM passed to this function did not comply with section 5 of the HDCP 1.1 specification.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0513<br />STATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_HDCP</p>
+ </td>
+ <td>
+ <p>The protected output cannot enable the HDCP system because it does not support it.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0514<br />STATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_ACP</p>
+ </td>
+ <td>
+ <p>The protected output cannot enable analog copy protection because it does not support it.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0515<br />STATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_CGMSA</p>
+ </td>
+ <td>
+ <p>The protected output cannot enable the CGMS-A protection technology because it does not support it.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0516<br />STATUS_GRAPHICS_OPM_HDCP_SRM_NEVER_SET</p>
+ </td>
+ <td>
+ <p>DxgkDdiOPMGetInformation() cannot return the version of the SRM being used because the application never successfully passed an SRM to the protected output.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0517<br />STATUS_GRAPHICS_OPM_RESOLUTION_TOO_HIGH</p>
+ </td>
+ <td>
+ <p>DxgkDdiOPMConfigureProtectedOutput() cannot enable the specified output protection technology because the output's screen resolution is too high.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0518<br />STATUS_GRAPHICS_OPM_ALL_HDCP_HARDWARE_ALREADY_IN_USE</p>
+ </td>
+ <td>
+ <p>DxgkDdiOPMConfigureProtectedOutput() cannot enable HDCP because other physical outputs are using the display adapter's HDCP hardware.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E051A<br />STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_NO_LONGER_EXISTS</p>
+ </td>
+ <td>
+ <p>The operating system asynchronously destroyed this OPM-protected output because the operating system state changed. This error typically occurs because the monitor PDO associated with this protected output was removed or stopped, the protected output's session became a nonconsole session, or the protected output's desktop became inactive.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E051B<br />STATUS_GRAPHICS_OPM_SESSION_TYPE_CHANGE_IN_PROGRESS</p>
+ </td>
+ <td>
+ <p>OPM functions cannot be called when a session is changing its type. Three types of sessions currently exist: console, disconnected, and remote (RDP or ICA).</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E051C<br />STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_DOES_NOT_HAVE_COPP_SEMANTICS</p>
+ </td>
+ <td>
+ <p>The DxgkDdiOPMGetCOPPCompatibleInformation, DxgkDdiOPMGetInformation, or DxgkDdiOPMConfigureProtectedOutput function failed. This error is returned only if a protected output has OPM semantics. </p>
+ <p>DxgkDdiOPMGetCOPPCompatibleInformation always returns this error if a protected output has OPM semantics.</p>
+ <p>DxgkDdiOPMGetInformation returns this error code if the caller requested COPP-specific information.</p>
+ <p>DxgkDdiOPMConfigureProtectedOutput returns this error when the caller tries to use a COPP-specific command.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E051D<br />STATUS_GRAPHICS_OPM_INVALID_INFORMATION_REQUEST</p>
+ </td>
+ <td>
+ <p>The DxgkDdiOPMGetInformation and DxgkDdiOPMGetCOPPCompatibleInformation functions return this error code if the passed-in sequence number is not the expected sequence number or the passed-in OMAC value is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E051E<br />STATUS_GRAPHICS_OPM_DRIVER_INTERNAL_ERROR</p>
+ </td>
+ <td>
+ <p>The function failed because an unexpected error occurred inside a display driver.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E051F<br />STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_DOES_NOT_HAVE_OPM_SEMANTICS</p>
+ </td>
+ <td>
+ <p>The DxgkDdiOPMGetCOPPCompatibleInformation, DxgkDdiOPMGetInformation, or DxgkDdiOPMConfigureProtectedOutput function failed. This error is returned only if a protected output has COPP semantics. </p>
+ <p>DxgkDdiOPMGetCOPPCompatibleInformation returns this error code if the caller requested OPM-specific information.</p>
+ <p>DxgkDdiOPMGetInformation always returns this error if a protected output has COPP semantics.</p>
+ <p>DxgkDdiOPMConfigureProtectedOutput returns this error when the caller tries to use an OPM-specific command.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0520<br />STATUS_GRAPHICS_OPM_SIGNALING_NOT_SUPPORTED</p>
+ </td>
+ <td>
+ <p>The DxgkDdiOPMGetCOPPCompatibleInformation and DxgkDdiOPMConfigureProtectedOutput functions return this error if the display driver does not support the DXGKMDT_OPM_GET_ACP_AND_CGMSA_SIGNALING and DXGKMDT_OPM_SET_ACP_AND_CGMSA_SIGNALING GUIDs.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0521<br />STATUS_GRAPHICS_OPM_INVALID_CONFIGURATION_REQUEST</p>
+ </td>
+ <td>
+ <p>The DxgkDdiOPMConfigureProtectedOutput function returns this error code if the passed-in sequence number is not the expected sequence number or the passed-in OMAC value is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0580<br />STATUS_GRAPHICS_I2C_NOT_SUPPORTED</p>
+ </td>
+ <td>
+ <p>The monitor connected to the specified video output does not have an I2C bus.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0581<br />STATUS_GRAPHICS_I2C_DEVICE_DOES_NOT_EXIST</p>
+ </td>
+ <td>
+ <p>No device on the I2C bus has the specified address.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0582<br />STATUS_GRAPHICS_I2C_ERROR_TRANSMITTING_DATA</p>
+ </td>
+ <td>
+ <p>An error occurred while transmitting data to the device on the I2C bus.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0583<br />STATUS_GRAPHICS_I2C_ERROR_RECEIVING_DATA</p>
+ </td>
+ <td>
+ <p>An error occurred while receiving data from the device on the I2C bus.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0584<br />STATUS_GRAPHICS_DDCCI_VCP_NOT_SUPPORTED</p>
+ </td>
+ <td>
+ <p>The monitor does not support the specified VCP code.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0585<br />STATUS_GRAPHICS_DDCCI_INVALID_DATA</p>
+ </td>
+ <td>
+ <p>The data received from the monitor is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0586<br />STATUS_GRAPHICS_DDCCI_MONITOR_RETURNED_INVALID_TIMING_STATUS_BYTE</p>
+ </td>
+ <td>
+ <p>A function call failed because a monitor returned an invalid timing status byte when the operating system used the DDC/CI get timing report and timing message command to get a timing report from a monitor.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0587<br />STATUS_GRAPHICS_DDCCI_INVALID_CAPABILITIES_STRING</p>
+ </td>
+ <td>
+ <p>A monitor returned a DDC/CI capabilities string that did not comply with the ACCESS.bus 3.0, DDC/CI 1.1, or MCCS 2 Revision 1 specification.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0588<br />STATUS_GRAPHICS_MCA_INTERNAL_ERROR</p>
+ </td>
+ <td>
+ <p>An internal error caused an operation to fail.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E0589<br />STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_COMMAND</p>
+ </td>
+ <td>
+ <p>An operation failed because a DDC/CI message had an invalid value in its command field.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E058A<br />STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_LENGTH</p>
+ </td>
+ <td>
+ <p>This error occurred because a DDC/CI message had an invalid value in its length field.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E058B<br />STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_CHECKSUM</p>
+ </td>
+ <td>
+ <p>This error occurred because the value in a DDC/CI message's checksum field did not match the message's computed checksum value. This error implies that the data was corrupted while it was being transmitted from a monitor to a computer.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E058C<br />STATUS_GRAPHICS_INVALID_PHYSICAL_MONITOR_HANDLE</p>
+ </td>
+ <td>
+ <p>This function failed because an invalid monitor handle was passed to it.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E058D<br />STATUS_GRAPHICS_MONITOR_NO_LONGER_EXISTS</p>
+ </td>
+ <td>
+ <p>The operating system asynchronously destroyed the monitor that corresponds to this handle because the operating system's state changed. This error typically occurs because the monitor PDO associated with this handle was removed or stopped, or a display mode change occurred. A display mode change occurs when Windows sends a WM_DISPLAYCHANGE message to applications.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E05E0<br />STATUS_GRAPHICS_ONLY_CONSOLE_SESSION_SUPPORTED</p>
+ </td>
+ <td>
+ <p>This function can be used only if a program is running in the local console session. It cannot be used if a program is running on a remote desktop session or on a terminal server session.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E05E1<br />STATUS_GRAPHICS_NO_DISPLAY_DEVICE_CORRESPONDS_TO_NAME</p>
+ </td>
+ <td>
+ <p>This function cannot find an actual GDI display device that corresponds to the specified GDI display device name.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E05E2<br />STATUS_GRAPHICS_DISPLAY_DEVICE_NOT_ATTACHED_TO_DESKTOP</p>
+ </td>
+ <td>
+ <p>The function failed because the specified GDI display device was not attached to the Windows desktop.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E05E3<br />STATUS_GRAPHICS_MIRRORING_DEVICES_NOT_SUPPORTED</p>
+ </td>
+ <td>
+ <p>This function does not support GDI mirroring display devices because GDI mirroring display devices do not have any physical monitors associated with them.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E05E4<br />STATUS_GRAPHICS_INVALID_POINTER</p>
+ </td>
+ <td>
+ <p>The function failed because an invalid pointer parameter was passed to it. A pointer parameter is invalid if it is null, is not correctly aligned, or points to an invalid address or to a kernel mode address.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E05E5<br />STATUS_GRAPHICS_NO_MONITORS_CORRESPOND_TO_DISPLAY_DEVICE</p>
+ </td>
+ <td>
+ <p>This function failed because the GDI device passed to it did not have a monitor associated with it.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E05E6<br />STATUS_GRAPHICS_PARAMETER_ARRAY_TOO_SMALL</p>
+ </td>
+ <td>
+ <p>An array passed to the function cannot hold all of the data that the function must copy into the array.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E05E7<br />STATUS_GRAPHICS_INTERNAL_ERROR</p>
+ </td>
+ <td>
+ <p>An internal error caused an operation to fail.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC01E05E8<br />STATUS_GRAPHICS_SESSION_TYPE_CHANGE_IN_PROGRESS</p>
+ </td>
+ <td>
+ <p>The function failed because the current session is changing its type. This function cannot be called when the current session is changing its type. Three types of sessions currently exist: console, disconnected, and remote (RDP or ICA).</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0210000<br />STATUS_FVE_LOCKED_VOLUME</p>
+ </td>
+ <td>
+ <p>The volume must be unlocked before it can be used.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0210001<br />STATUS_FVE_NOT_ENCRYPTED</p>
+ </td>
+ <td>
+ <p>The volume is fully decrypted and no key is available.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0210002<br />STATUS_FVE_BAD_INFORMATION</p>
+ </td>
+ <td>
+ <p>The control block for the encrypted volume is not valid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0210003<br />STATUS_FVE_TOO_SMALL</p>
+ </td>
+ <td>
+ <p>Not enough free space remains on the volume to allow encryption.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0210004<br />STATUS_FVE_FAILED_WRONG_FS</p>
+ </td>
+ <td>
+ <p>The partition cannot be encrypted because the file system is not supported.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0210005<br />STATUS_FVE_FAILED_BAD_FS</p>
+ </td>
+ <td>
+ <p>The file system is inconsistent. Run the Check Disk utility.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0210006<br />STATUS_FVE_FS_NOT_EXTENDED</p>
+ </td>
+ <td>
+ <p>The file system does not extend to the end of the volume.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0210007<br />STATUS_FVE_FS_MOUNTED</p>
+ </td>
+ <td>
+ <p>This operation cannot be performed while a file system is mounted on the volume.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0210008<br />STATUS_FVE_NO_LICENSE</p>
+ </td>
+ <td>
+ <p>BitLocker Drive Encryption is not included with this version of Windows.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0210009<br />STATUS_FVE_ACTION_NOT_ALLOWED</p>
+ </td>
+ <td>
+ <p>The requested action was denied by the FVE control engine.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC021000A<br />STATUS_FVE_BAD_DATA</p>
+ </td>
+ <td>
+ <p>The data supplied is malformed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC021000B<br />STATUS_FVE_VOLUME_NOT_BOUND</p>
+ </td>
+ <td>
+ <p>The volume is not bound to the system.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC021000C<br />STATUS_FVE_NOT_DATA_VOLUME</p>
+ </td>
+ <td>
+ <p>The volume specified is not a data volume.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC021000D<br />STATUS_FVE_CONV_READ_ERROR</p>
+ </td>
+ <td>
+ <p>A read operation failed while converting the volume.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC021000E<br />STATUS_FVE_CONV_WRITE_ERROR</p>
+ </td>
+ <td>
+ <p>A write operation failed while converting the volume.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC021000F<br />STATUS_FVE_OVERLAPPED_UPDATE</p>
+ </td>
+ <td>
+ <p>The control block for the encrypted volume was updated by another thread. Try again.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0210010<br />STATUS_FVE_FAILED_SECTOR_SIZE</p>
+ </td>
+ <td>
+ <p>The volume encryption algorithm cannot be used on this sector size.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0210011<br />STATUS_FVE_FAILED_AUTHENTICATION</p>
+ </td>
+ <td>
+ <p>BitLocker recovery authentication failed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0210012<br />STATUS_FVE_NOT_OS_VOLUME</p>
+ </td>
+ <td>
+ <p>The volume specified is not the boot operating system volume.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0210013<br />STATUS_FVE_KEYFILE_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>The BitLocker startup key or recovery password could not be read from external media.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0210014<br />STATUS_FVE_KEYFILE_INVALID</p>
+ </td>
+ <td>
+ <p>The BitLocker startup key or recovery password file is corrupt or invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0210015<br />STATUS_FVE_KEYFILE_NO_VMK</p>
+ </td>
+ <td>
+ <p>The BitLocker encryption key could not be obtained from the startup key or the recovery password.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0210016<br />STATUS_FVE_TPM_DISABLED</p>
+ </td>
+ <td>
+ <p>The TPM is disabled.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0210017<br />STATUS_FVE_TPM_SRK_AUTH_NOT_ZERO</p>
+ </td>
+ <td>
+ <p>The authorization data for the SRK of the TPM is not zero.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0210018<br />STATUS_FVE_TPM_INVALID_PCR</p>
+ </td>
+ <td>
+ <p>The system boot information changed or the TPM locked out access to BitLocker encryption keys until the computer is restarted.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0210019<br />STATUS_FVE_TPM_NO_VMK</p>
+ </td>
+ <td>
+ <p>The BitLocker encryption key could not be obtained from the TPM.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC021001A<br />STATUS_FVE_PIN_INVALID</p>
+ </td>
+ <td>
+ <p>The BitLocker encryption key could not be obtained from the TPM and PIN.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC021001B<br />STATUS_FVE_AUTH_INVALID_APPLICATION</p>
+ </td>
+ <td>
+ <p>A boot application hash does not match the hash computed when BitLocker was turned on.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC021001C<br />STATUS_FVE_AUTH_INVALID_CONFIG</p>
+ </td>
+ <td>
+ <p>The Boot Configuration Data (BCD) settings are not supported or have changed because BitLocker was enabled.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC021001D<br />STATUS_FVE_DEBUGGER_ENABLED</p>
+ </td>
+ <td>
+ <p>Boot debugging is enabled. Run Windows Boot Configuration Data Store Editor (bcdedit.exe) to turn it off.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC021001E<br />STATUS_FVE_DRY_RUN_FAILED</p>
+ </td>
+ <td>
+ <p>The BitLocker encryption key could not be obtained.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC021001F<br />STATUS_FVE_BAD_METADATA_POINTER</p>
+ </td>
+ <td>
+ <p>The metadata disk region pointer is incorrect.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0210020<br />STATUS_FVE_OLD_METADATA_COPY</p>
+ </td>
+ <td>
+ <p>The backup copy of the metadata is out of date.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0210021<br />STATUS_FVE_REBOOT_REQUIRED</p>
+ </td>
+ <td>
+ <p>No action was taken because a system restart is required.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0210022<br />STATUS_FVE_RAW_ACCESS</p>
+ </td>
+ <td>
+ <p>No action was taken because BitLocker Drive Encryption is in RAW access mode.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0210023<br />STATUS_FVE_RAW_BLOCKED</p>
+ </td>
+ <td>
+ <p>BitLocker Drive Encryption cannot enter RAW access mode for this volume.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0210026<br />STATUS_FVE_NO_FEATURE_LICENSE</p>
+ </td>
+ <td>
+ <p>This feature of BitLocker Drive Encryption is not included with this version of Windows.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0210027<br />STATUS_FVE_POLICY_USER_DISABLE_RDV_NOT_ALLOWED</p>
+ </td>
+ <td>
+ <p>Group policy does not permit turning off BitLocker Drive Encryption on roaming data volumes.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0210028<br />STATUS_FVE_CONV_RECOVERY_FAILED</p>
+ </td>
+ <td>
+ <p>Bitlocker Drive Encryption failed to recover from aborted conversion. This could be due to either all conversion logs being corrupted or the media being write-protected.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0210029<br />STATUS_FVE_VIRTUALIZED_SPACE_TOO_BIG</p>
+ </td>
+ <td>
+ <p>The requested virtualization size is too big.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0210030<br />STATUS_FVE_VOLUME_TOO_SMALL</p>
+ </td>
+ <td>
+ <p>The drive is too small to be protected using BitLocker Drive Encryption.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0220001<br />STATUS_FWP_CALLOUT_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>The callout does not exist.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0220002<br />STATUS_FWP_CONDITION_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>The filter condition does not exist.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0220003<br />STATUS_FWP_FILTER_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>The filter does not exist.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0220004<br />STATUS_FWP_LAYER_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>The layer does not exist.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0220005<br />STATUS_FWP_PROVIDER_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>The provider does not exist.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0220006<br />STATUS_FWP_PROVIDER_CONTEXT_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>The provider context does not exist.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0220007<br />STATUS_FWP_SUBLAYER_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>The sublayer does not exist.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0220008<br />STATUS_FWP_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>The object does not exist.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0220009<br />STATUS_FWP_ALREADY_EXISTS</p>
+ </td>
+ <td>
+ <p>An object with that GUID or LUID already exists.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC022000A<br />STATUS_FWP_IN_USE</p>
+ </td>
+ <td>
+ <p>The object is referenced by other objects and cannot be deleted.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC022000B<br />STATUS_FWP_DYNAMIC_SESSION_IN_PROGRESS</p>
+ </td>
+ <td>
+ <p>The call is not allowed from within a dynamic session.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC022000C<br />STATUS_FWP_WRONG_SESSION</p>
+ </td>
+ <td>
+ <p>The call was made from the wrong session and cannot be completed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC022000D<br />STATUS_FWP_NO_TXN_IN_PROGRESS</p>
+ </td>
+ <td>
+ <p>The call must be made from within an explicit transaction.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC022000E<br />STATUS_FWP_TXN_IN_PROGRESS</p>
+ </td>
+ <td>
+ <p>The call is not allowed from within an explicit transaction.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC022000F<br />STATUS_FWP_TXN_ABORTED</p>
+ </td>
+ <td>
+ <p>The explicit transaction has been forcibly canceled.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0220010<br />STATUS_FWP_SESSION_ABORTED</p>
+ </td>
+ <td>
+ <p>The session has been canceled.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0220011<br />STATUS_FWP_INCOMPATIBLE_TXN</p>
+ </td>
+ <td>
+ <p>The call is not allowed from within a read-only transaction.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0220012<br />STATUS_FWP_TIMEOUT</p>
+ </td>
+ <td>
+ <p>The call timed out while waiting to acquire the transaction lock.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0220013<br />STATUS_FWP_NET_EVENTS_DISABLED</p>
+ </td>
+ <td>
+ <p>The collection of network diagnostic events is disabled.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0220014<br />STATUS_FWP_INCOMPATIBLE_LAYER</p>
+ </td>
+ <td>
+ <p>The operation is not supported by the specified layer.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0220015<br />STATUS_FWP_KM_CLIENTS_ONLY</p>
+ </td>
+ <td>
+ <p>The call is allowed for kernel-mode callers only.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0220016<br />STATUS_FWP_LIFETIME_MISMATCH</p>
+ </td>
+ <td>
+ <p>The call tried to associate two objects with incompatible lifetimes.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0220017<br />STATUS_FWP_BUILTIN_OBJECT</p>
+ </td>
+ <td>
+ <p>The object is built-in and cannot be deleted.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0220018<br />STATUS_FWP_TOO_MANY_BOOTTIME_FILTERS</p>
+ </td>
+ <td>
+ <p>The maximum number of boot-time filters has been reached.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0220018<br />STATUS_FWP_TOO_MANY_CALLOUTS</p>
+ </td>
+ <td>
+ <p>The maximum number of callouts has been reached.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0220019<br />STATUS_FWP_NOTIFICATION_DROPPED</p>
+ </td>
+ <td>
+ <p>A notification could not be delivered because a message queue has reached maximum capacity.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC022001A<br />STATUS_FWP_TRAFFIC_MISMATCH</p>
+ </td>
+ <td>
+ <p>The traffic parameters do not match those for the security association context.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC022001B<br />STATUS_FWP_INCOMPATIBLE_SA_STATE</p>
+ </td>
+ <td>
+ <p>The call is not allowed for the current security association state.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC022001C<br />STATUS_FWP_NULL_POINTER</p>
+ </td>
+ <td>
+ <p>A required pointer is null.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC022001D<br />STATUS_FWP_INVALID_ENUMERATOR</p>
+ </td>
+ <td>
+ <p>An enumerator is not valid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC022001E<br />STATUS_FWP_INVALID_FLAGS</p>
+ </td>
+ <td>
+ <p>The flags field contains an invalid value.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC022001F<br />STATUS_FWP_INVALID_NET_MASK</p>
+ </td>
+ <td>
+ <p>A network mask is not valid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0220020<br />STATUS_FWP_INVALID_RANGE</p>
+ </td>
+ <td>
+ <p>An FWP_RANGE is not valid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0220021<br />STATUS_FWP_INVALID_INTERVAL</p>
+ </td>
+ <td>
+ <p>The time interval is not valid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0220022<br />STATUS_FWP_ZERO_LENGTH_ARRAY</p>
+ </td>
+ <td>
+ <p>An array that must contain at least one element has a zero length.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0220023<br />STATUS_FWP_NULL_DISPLAY_NAME</p>
+ </td>
+ <td>
+ <p>The displayData.name field cannot be null.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0220024<br />STATUS_FWP_INVALID_ACTION_TYPE</p>
+ </td>
+ <td>
+ <p>The action type is not one of the allowed action types for a filter.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0220025<br />STATUS_FWP_INVALID_WEIGHT</p>
+ </td>
+ <td>
+ <p>The filter weight is not valid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0220026<br />STATUS_FWP_MATCH_TYPE_MISMATCH</p>
+ </td>
+ <td>
+ <p>A filter condition contains a match type that is not compatible with the operands.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0220027<br />STATUS_FWP_TYPE_MISMATCH</p>
+ </td>
+ <td>
+ <p>An FWP_VALUE or FWPM_CONDITION_VALUE is of the wrong type.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0220028<br />STATUS_FWP_OUT_OF_BOUNDS</p>
+ </td>
+ <td>
+ <p>An integer value is outside the allowed range.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0220029<br />STATUS_FWP_RESERVED</p>
+ </td>
+ <td>
+ <p>A reserved field is nonzero.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC022002A<br />STATUS_FWP_DUPLICATE_CONDITION</p>
+ </td>
+ <td>
+ <p>A filter cannot contain multiple conditions operating on a single field.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC022002B<br />STATUS_FWP_DUPLICATE_KEYMOD</p>
+ </td>
+ <td>
+ <p>A policy cannot contain the same keying module more than once.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC022002C<br />STATUS_FWP_ACTION_INCOMPATIBLE_WITH_LAYER</p>
+ </td>
+ <td>
+ <p>The action type is not compatible with the layer.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC022002D<br />STATUS_FWP_ACTION_INCOMPATIBLE_WITH_SUBLAYER</p>
+ </td>
+ <td>
+ <p>The action type is not compatible with the sublayer.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC022002E<br />STATUS_FWP_CONTEXT_INCOMPATIBLE_WITH_LAYER</p>
+ </td>
+ <td>
+ <p>The raw context or the provider context is not compatible with the layer.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC022002F<br />STATUS_FWP_CONTEXT_INCOMPATIBLE_WITH_CALLOUT</p>
+ </td>
+ <td>
+ <p>The raw context or the provider context is not compatible with the callout.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0220030<br />STATUS_FWP_INCOMPATIBLE_AUTH_METHOD</p>
+ </td>
+ <td>
+ <p>The authentication method is not compatible with the policy type.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0220031<br />STATUS_FWP_INCOMPATIBLE_DH_GROUP</p>
+ </td>
+ <td>
+ <p>The Diffie-Hellman group is not compatible with the policy type.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0220032<br />STATUS_FWP_EM_NOT_SUPPORTED</p>
+ </td>
+ <td>
+ <p>An IKE policy cannot contain an Extended Mode policy.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0220033<br />STATUS_FWP_NEVER_MATCH</p>
+ </td>
+ <td>
+ <p>The enumeration template or subscription will never match any objects.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0220034<br />STATUS_FWP_PROVIDER_CONTEXT_MISMATCH</p>
+ </td>
+ <td>
+ <p>The provider context is of the wrong type.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0220035<br />STATUS_FWP_INVALID_PARAMETER</p>
+ </td>
+ <td>
+ <p>The parameter is incorrect.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0220036<br />STATUS_FWP_TOO_MANY_SUBLAYERS</p>
+ </td>
+ <td>
+ <p>The maximum number of sublayers has been reached.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0220037<br />STATUS_FWP_CALLOUT_NOTIFICATION_FAILED</p>
+ </td>
+ <td>
+ <p>The notification function for a callout returned an error.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0220038<br />STATUS_FWP_INCOMPATIBLE_AUTH_CONFIG</p>
+ </td>
+ <td>
+ <p>The IPsec authentication configuration is not compatible with the authentication type.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0220039<br />STATUS_FWP_INCOMPATIBLE_CIPHER_CONFIG</p>
+ </td>
+ <td>
+ <p>The IPsec cipher configuration is not compatible with the cipher type.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC022003C<br />STATUS_FWP_DUPLICATE_AUTH_METHOD</p>
+ </td>
+ <td>
+ <p>A policy cannot contain the same auth method more than once.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0220100<br />STATUS_FWP_TCPIP_NOT_READY</p>
+ </td>
+ <td>
+ <p>The TCP/IP stack is not ready.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0220101<br />STATUS_FWP_INJECT_HANDLE_CLOSING</p>
+ </td>
+ <td>
+ <p>The injection handle is being closed by another thread.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0220102<br />STATUS_FWP_INJECT_HANDLE_STALE</p>
+ </td>
+ <td>
+ <p>The injection handle is stale.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0220103<br />STATUS_FWP_CANNOT_PEND</p>
+ </td>
+ <td>
+ <p>The classify cannot be pended.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0230002<br />STATUS_NDIS_CLOSING</p>
+ </td>
+ <td>
+ <p>The binding to the network interface is being closed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0230004<br />STATUS_NDIS_BAD_VERSION</p>
+ </td>
+ <td>
+ <p>An invalid version was specified.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0230005<br />STATUS_NDIS_BAD_CHARACTERISTICS</p>
+ </td>
+ <td>
+ <p>An invalid characteristics table was used.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0230006<br />STATUS_NDIS_ADAPTER_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>Failed to find the network interface or the network interface is not ready.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0230007<br />STATUS_NDIS_OPEN_FAILED</p>
+ </td>
+ <td>
+ <p>Failed to open the network interface.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0230008<br />STATUS_NDIS_DEVICE_FAILED</p>
+ </td>
+ <td>
+ <p>The network interface has encountered an internal unrecoverable failure.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0230009<br />STATUS_NDIS_MULTICAST_FULL</p>
+ </td>
+ <td>
+ <p>The multicast list on the network interface is full.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC023000A<br />STATUS_NDIS_MULTICAST_EXISTS</p>
+ </td>
+ <td>
+ <p>An attempt was made to add a duplicate multicast address to the list.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC023000B<br />STATUS_NDIS_MULTICAST_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>At attempt was made to remove a multicast address that was never added.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC023000C<br />STATUS_NDIS_REQUEST_ABORTED</p>
+ </td>
+ <td>
+ <p>The network interface aborted the request.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC023000D<br />STATUS_NDIS_RESET_IN_PROGRESS</p>
+ </td>
+ <td>
+ <p>The network interface cannot process the request because it is being reset.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC023000F<br />STATUS_NDIS_INVALID_PACKET</p>
+ </td>
+ <td>
+ <p>An attempt was made to send an invalid packet on a network interface.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0230010<br />STATUS_NDIS_INVALID_DEVICE_REQUEST</p>
+ </td>
+ <td>
+ <p>The specified request is not a valid operation for the target device.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0230011<br />STATUS_NDIS_ADAPTER_NOT_READY</p>
+ </td>
+ <td>
+ <p>The network interface is not ready to complete this operation.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0230014<br />STATUS_NDIS_INVALID_LENGTH</p>
+ </td>
+ <td>
+ <p>The length of the buffer submitted for this operation is not valid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0230015<br />STATUS_NDIS_INVALID_DATA</p>
+ </td>
+ <td>
+ <p>The data used for this operation is not valid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0230016<br />STATUS_NDIS_BUFFER_TOO_SHORT</p>
+ </td>
+ <td>
+ <p>The length of the submitted buffer for this operation is too small.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0230017<br />STATUS_NDIS_INVALID_OID</p>
+ </td>
+ <td>
+ <p>The network interface does not support this object identifier.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0230018<br />STATUS_NDIS_ADAPTER_REMOVED</p>
+ </td>
+ <td>
+ <p>The network interface has been removed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0230019<br />STATUS_NDIS_UNSUPPORTED_MEDIA</p>
+ </td>
+ <td>
+ <p>The network interface does not support this media type.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC023001A<br />STATUS_NDIS_GROUP_ADDRESS_IN_USE</p>
+ </td>
+ <td>
+ <p>An attempt was made to remove a token ring group address that is in use by other components.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC023001B<br />STATUS_NDIS_FILE_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>An attempt was made to map a file that cannot be found.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC023001C<br />STATUS_NDIS_ERROR_READING_FILE</p>
+ </td>
+ <td>
+ <p>An error occurred while NDIS tried to map the file.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC023001D<br />STATUS_NDIS_ALREADY_MAPPED</p>
+ </td>
+ <td>
+ <p>An attempt was made to map a file that is already mapped.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC023001E<br />STATUS_NDIS_RESOURCE_CONFLICT</p>
+ </td>
+ <td>
+ <p>An attempt to allocate a hardware resource failed because the resource is used by another component.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC023001F<br />STATUS_NDIS_MEDIA_DISCONNECTED</p>
+ </td>
+ <td>
+ <p>The I/O operation failed because the network media is disconnected or the wireless access point is out of range.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0230022<br />STATUS_NDIS_INVALID_ADDRESS</p>
+ </td>
+ <td>
+ <p>The network address used in the request is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC023002A<br />STATUS_NDIS_PAUSED</p>
+ </td>
+ <td>
+ <p>The offload operation on the network interface has been paused.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC023002B<br />STATUS_NDIS_INTERFACE_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>The network interface was not found.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC023002C<br />STATUS_NDIS_UNSUPPORTED_REVISION</p>
+ </td>
+ <td>
+ <p>The revision number specified in the structure is not supported.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC023002D<br />STATUS_NDIS_INVALID_PORT</p>
+ </td>
+ <td>
+ <p>The specified port does not exist on this network interface.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC023002E<br />STATUS_NDIS_INVALID_PORT_STATE</p>
+ </td>
+ <td>
+ <p>The current state of the specified port on this network interface does not support the requested operation.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC023002F<br />STATUS_NDIS_LOW_POWER_STATE</p>
+ </td>
+ <td>
+ <p>The miniport adapter is in a lower power state.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC02300BB<br />STATUS_NDIS_NOT_SUPPORTED</p>
+ </td>
+ <td>
+ <p>The network interface does not support this request.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC023100F<br />STATUS_NDIS_OFFLOAD_POLICY</p>
+ </td>
+ <td>
+ <p>The TCP connection is not offloadable because of a local policy setting.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0231012<br />STATUS_NDIS_OFFLOAD_CONNECTION_REJECTED</p>
+ </td>
+ <td>
+ <p>The TCP connection is not offloadable by the Chimney offload target.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0231013<br />STATUS_NDIS_OFFLOAD_PATH_REJECTED</p>
+ </td>
+ <td>
+ <p>The IP Path object is not in an offloadable state.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0232000<br />STATUS_NDIS_DOT11_AUTO_CONFIG_ENABLED</p>
+ </td>
+ <td>
+ <p>The wireless LAN interface is in auto-configuration mode and does not support the requested parameter change operation.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0232001<br />STATUS_NDIS_DOT11_MEDIA_IN_USE</p>
+ </td>
+ <td>
+ <p>The wireless LAN interface is busy and cannot perform the requested operation.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0232002<br />STATUS_NDIS_DOT11_POWER_STATE_INVALID</p>
+ </td>
+ <td>
+ <p>The wireless LAN interface is power down and does not support the requested operation.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0232003<br />STATUS_NDIS_PM_WOL_PATTERN_LIST_FULL</p>
+ </td>
+ <td>
+ <p>The list of wake on LAN patterns is full.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0232004<br />STATUS_NDIS_PM_PROTOCOL_OFFLOAD_LIST_FULL</p>
+ </td>
+ <td>
+ <p>The list of low power protocol offloads is full.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0360001<br />STATUS_IPSEC_BAD_SPI</p>
+ </td>
+ <td>
+ <p>The SPI in the packet does not match a valid IPsec SA.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0360002<br />STATUS_IPSEC_SA_LIFETIME_EXPIRED</p>
+ </td>
+ <td>
+ <p>The packet was received on an IPsec SA whose lifetime has expired.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0360003<br />STATUS_IPSEC_WRONG_SA</p>
+ </td>
+ <td>
+ <p>The packet was received on an IPsec SA that does not match the packet characteristics.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0360004<br />STATUS_IPSEC_REPLAY_CHECK_FAILED</p>
+ </td>
+ <td>
+ <p>The packet sequence number replay check failed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0360005<br />STATUS_IPSEC_INVALID_PACKET</p>
+ </td>
+ <td>
+ <p>The IPsec header and/or trailer in the packet is invalid.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0360006<br />STATUS_IPSEC_INTEGRITY_CHECK_FAILED</p>
+ </td>
+ <td>
+ <p>The IPsec integrity check failed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0360007<br />STATUS_IPSEC_CLEAR_TEXT_DROP</p>
+ </td>
+ <td>
+ <p>IPsec dropped a clear text packet.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0360008<br />STATUS_IPSEC_AUTH_FIREWALL_DROP</p>
+ </td>
+ <td>
+ <p>IPsec dropped an incoming ESP packet in authenticated firewall mode. This drop is benign.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0360009<br />STATUS_IPSEC_THROTTLE_DROP</p>
+ </td>
+ <td>
+ <p>IPsec dropped a packet due to DOS throttle.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0368000<br />STATUS_IPSEC_DOSP_BLOCK</p>
+ </td>
+ <td>
+ <p>IPsec Dos Protection matched an explicit block rule.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0368001<br />STATUS_IPSEC_DOSP_RECEIVED_MULTICAST</p>
+ </td>
+ <td>
+ <p>IPsec Dos Protection received an IPsec specific multicast packet which is not allowed.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0368002<br />STATUS_IPSEC_DOSP_INVALID_PACKET</p>
+ </td>
+ <td>
+ <p>IPsec Dos Protection received an incorrectly formatted packet.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0368003<br />STATUS_IPSEC_DOSP_STATE_LOOKUP_FAILED</p>
+ </td>
+ <td>
+ <p>IPsec Dos Protection failed to lookup state.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0368004<br />STATUS_IPSEC_DOSP_MAX_ENTRIES</p>
+ </td>
+ <td>
+ <p>IPsec Dos Protection failed to create state because there are already maximum number of entries allowed by policy.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0368005<br />STATUS_IPSEC_DOSP_KEYMOD_NOT_ALLOWED</p>
+ </td>
+ <td>
+ <p>IPsec Dos Protection received an IPsec negotiation packet for a keying module which is not allowed by policy.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC0368006<br />STATUS_IPSEC_DOSP_MAX_PER_IP_RATELIMIT_QUEUES</p>
+ </td>
+ <td>
+ <p>IPsec Dos Protection failed to create per internal IP ratelimit queue because there is already maximum number of queues allowed by policy.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC038005B<br />STATUS_VOLMGR_MIRROR_NOT_SUPPORTED</p>
+ </td>
+ <td>
+ <p>The system does not support mirrored volumes.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC038005C<br />STATUS_VOLMGR_RAID5_NOT_SUPPORTED</p>
+ </td>
+ <td>
+ <p>The system does not support RAID-5 volumes.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC03A0014<br />STATUS_VIRTDISK_PROVIDER_NOT_FOUND</p>
+ </td>
+ <td>
+ <p>A virtual disk support provider for the specified file was not found.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC03A0015<br />STATUS_VIRTDISK_NOT_VIRTUAL_DISK</p>
+ </td>
+ <td>
+ <p>The specified disk is not a virtual disk.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC03A0016<br />STATUS_VHD_PARENT_VHD_ACCESS_DENIED</p>
+ </td>
+ <td>
+ <p>The chain of virtual hard disks is inaccessible. The process has not been granted access rights to the parent virtual hard disk for the differencing disk.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC03A0017<br />STATUS_VHD_CHILD_PARENT_SIZE_MISMATCH</p>
+ </td>
+ <td>
+ <p>The chain of virtual hard disks is corrupted. There is a mismatch in the virtual sizes of the parent virtual hard disk and differencing disk.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC03A0018<br />STATUS_VHD_DIFFERENCING_CHAIN_CYCLE_DETECTED</p>
+ </td>
+ <td>
+ <p>The chain of virtual hard disks is corrupted. A differencing disk is indicated in its own parent chain.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>0xC03A0019<br />STATUS_VHD_DIFFERENCING_CHAIN_ERROR_IN_PARENT</p>
+ </td>
+ <td>
+ <p>The chain of virtual hard disks is inaccessible. There was an error opening a virtual hard disk further up the chain.</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+ </div>
+ <span> </span>
+ </div>
+</div></div>
+
+
+
+
+
+
+
+<div class="libraryMemberFilter">
+ <div class="filterContainer">
+ <span>Show:</span>
+ <label>
+ <input type="checkbox" class="libraryFilterInherited" checked="checked" value="Inherit" />Inherited
+ </label>
+ <label>
+ <input type="checkbox" class="libraryFilterProtected" checked="checked" value="Protected" />Protected
+ </label>
+ </div>
+</div>
+
+<input type="hidden" id="libraryMemberFilterEmptyWarning" value="There are no members available with your current filter settings." />
+
+
+
+</div>
+
+
+ </div>
+ <div class="clear"></div>
+
+
+
+<input name="__RequestVerificationToken" type="hidden" value="wGkz0ACBeuAsZdP3iMh04vMoBmlhc2Sv6VqrWB_gjkEMkf3Vqztlinc6uiRNsq1MqCNPOYaEufHnzmmurJqWmbAuSg01" />
+<input id="ratingSubmitUrl" type="hidden" value="https://msdn.microsoft.com/en-us/library/feedback/add/cc704588.aspx" />
+<input id="isTopicRated" type="hidden" value="false" />
+
+
+
+
+
+
+
+ <link type="text/css" rel="stylesheet" />
+
+ <div id="ux-footer" class="" style="" dir="ltr">
+
+ <div id="footerSock" class="librarySock both">
+ <div id="footerSockInner">
+ <a name="feedback"></a>
+
+<div class="rating">
+ <div id="ratingSection1">
+ <div class="title">
+ Was this page helpful?
+ </div>
+ <div class="description">
+ Your feedback about this content is important.<br />Let us know what you think.
+ </div>
+ <div class="buttons">
+ <button class="button" id="ratingYes">Yes</button>
+ <button class="button" id="ratingNo">No</button>
+ </div>
+ <input id="ratingValue" type="hidden" value="" />
+ </div>
+ <div id="ratingSection2">
+ <div class="title">
+ Additional feedback?
+ </div>
+ <textarea id="ratingText" rows="6" cols="" maxlength="1500"></textarea>
+ <div class="counter right">
+ <span id="feedbackTextCounter">1500</span> characters remaining
+ </div>
+ <div class="buttons left">
+ <button class="button" id="ratingSubmit">Submit</button>
+ <button class="button" id="ratingSkipThis">Skip this</button>
+ </div>
+ </div>
+ <div id="ratingSection3">
+ <div class="title">
+ Thank you!
+ </div>
+ <div class="description">
+ We appreciate your feedback.
+ </div>
+ </div>
+
+
+ <div id="contentFeedbackQAContainer" style="display: none;"></div>
+</div>
+
+ <div class="userVoice">
+ <div class="title">
+ Have a suggestion to improve MSDN Library?
+ </div>
+ <div class="description">
+ Visit our UserVoice Page to submit and vote on ideas!
+ </div>
+ <div class="buttons">
+ <a class="button" id="userVoiceButton" href="http://feedback.msdn.com/forums/257782-msdn-feature-suggestions/category/83975" target="_blank">Make a suggestion</a>
+ </div>
+</div>
+ <div class="clear"></div>
+ </div>
+ </div>
+
+ <footer class="top">
+ <div data-fragmentName="LeftLinks" id="Fragment_LeftLinks" xmlns="http://www.w3.org/1999/xhtml">
+
+ <div class="linkList">
+ <div class="linkListTitle">Dev centers</div>
+ <ul class="links">
+ <li>
+ <a href="https://dev.windows.com" id="LeftLinks_2148_1" class="windowsBlue" xmlns="http://www.w3.org/1999/xhtml">Windows</a>
+ </li>
+ <li>
+ <a href="http://dev.office.com" id="LeftLinks_2148_3" class="office" xmlns="http://www.w3.org/1999/xhtml">Office</a>
+ </li>
+ <li>
+ <a href="https://msdn.microsoft.com/vstudio" id="LeftLinks_2148_4" class="visualStudio" xmlns="http://www.w3.org/1999/xhtml">Visual Studio</a>
+ </li>
+ <li>
+ <a href="http://developer.nokia.com/" title="Nokia" id="LeftLinks_2148_15" class="nokia" xmlns="http://www.w3.org/1999/xhtml">Nokia</a>
+ </li>
+ <li>
+ <a href="http://azure.microsoft.com/en-us/documentation/" target="_blank" id="LeftLinks_2148_12" xmlns="http://www.w3.org/1999/xhtml">Microsoft Azure</a>
+ </li>
+ <li>
+ <a href="https://msdn.microsoft.com/aa937802" id="LeftLinks_2148_5" xmlns="http://www.w3.org/1999/xhtml">More...</a>
+ </li>
+ </ul>
+ </div>
+</div>
+ <div id="rightLinks">
+ <div data-fragmentName="CenterLinks1" id="Fragment_CenterLinks1" xmlns="http://www.w3.org/1999/xhtml">
+
+ <div class="linkList">
+ <div class="linkListTitle">Learning resources</div>
+ <ul class="links">
+ <li>
+ <a href="http://www.microsoftvirtualacademy.com/" id="CenterLinks1_2151_4" xmlns="http://www.w3.org/1999/xhtml">Microsoft Virtual Academy</a>
+ </li>
+ <li>
+ <a href="http://channel9.msdn.com/" id="CenterLinks1_2151_5" xmlns="http://www.w3.org/1999/xhtml">Channel 9</a>
+ </li>
+ <li>
+ <a href="http://www.interoperabilitybridges.com/" id="CenterLinks1_2151_6" xmlns="http://www.w3.org/1999/xhtml">Interoperability Bridges</a>
+ </li>
+ <li>
+ <a href="https://msdn.microsoft.com/magazine/" id="CenterLinks1_2151_7" xmlns="http://www.w3.org/1999/xhtml">MSDN Magazine</a>
+ </li>
+ </ul>
+ </div>
+</div>
+ <div data-fragmentName="CenterLinks2" id="Fragment_CenterLinks2" xmlns="http://www.w3.org/1999/xhtml">
+
+ <div class="linkList">
+ <div class="linkListTitle">Community</div>
+ <ul class="links">
+ <li>
+ <a href="https://social.msdn.microsoft.com/forums/en-us/home" id="CenterLinks2_2151_8" xmlns="http://www.w3.org/1999/xhtml">Forums</a>
+ </li>
+ <li>
+ <a href="http://blogs.msdn.com/b/developer-tools/" id="CenterLinks2_2151_9" xmlns="http://www.w3.org/1999/xhtml">Blogs</a>
+ </li>
+ <li>
+ <a href="http://www.codeplex.com" id="CenterLinks2_2151_10" xmlns="http://www.w3.org/1999/xhtml">Codeplex</a>
+ </li>
+ </ul>
+ </div>
+</div>
+ <div data-fragmentName="CenterLinks3" id="Fragment_CenterLinks3" xmlns="http://www.w3.org/1999/xhtml">
+
+ <div class="linkList">
+ <div class="linkListTitle">Support</div>
+ <ul class="links">
+ <li>
+ <a href="https://msdn.microsoft.com/hh361695" id="CenterLinks3_2151_11" xmlns="http://www.w3.org/1999/xhtml">Self support</a>
+ </li>
+ </ul>
+ </div>
+</div>
+ <div data-fragmentName="CenterLinks4" id="Fragment_CenterLinks4" xmlns="http://www.w3.org/1999/xhtml">
+
+ <div class="linkList">
+ <div class="linkListTitle">Programs</div>
+ <ul class="links">
+ <li>
+ <a href="https://www.microsoft.com/bizspark/" id="CenterLinks4_2151_13" xmlns="http://www.w3.org/1999/xhtml">BizSpark (for startups)</a>
+ </li>
+ <li>
+ <a href="https://www.dreamspark.com/" id="CenterLinks4_2151_14" xmlns="http://www.w3.org/1999/xhtml">DreamSpark</a>
+ </li>
+ <li>
+ <a href="http://www.imaginecup.com" id="CenterLinks4_2151_17" xmlns="http://www.w3.org/1999/xhtml">Imagine Cup</a>
+ </li>
+ </ul>
+ </div>
+</div>
+ </div>
+ </footer>
+
+ <footer class="bottom">
+ <span class="localeContainer">
+
+ <form class="selectLocale" id="selectLocaleForm" action="https://msdn.microsoft.com/en-us/selectlocale-dmc">
+ <input type="hidden" name="fromPage" value="https%3a%2f%2fmsdn.microsoft.com%2fen-us%2flibrary%2fcc704588.aspx" />
+ <a href="#" onclick="$('#selectLocaleForm').submit();return false;" title="Change your language">United States (English)</a>
+ </form>
+
+
+ </span>
+
+ <div data-fragmentName="BottomLinks" id="Fragment_BottomLinks" xmlns="http://www.w3.org/1999/xhtml">
+
+ <div class="linkList">
+ <ul class="links horizontal">
+ <li>
+ <a href="https://msdn.microsoft.com/newsletter.aspx" id="BottomLinks_2148_7" xmlns="http://www.w3.org/1999/xhtml">Newsletter</a>
+ </li>
+ <li>
+ <a href="https://msdn.microsoft.com/dn529288" id="BottomLinks_2148_8" xmlns="http://www.w3.org/1999/xhtml">Privacy &amp; cookies</a>
+ </li>
+ <li>
+ <a href="https://msdn.microsoft.com/cc300389" id="BottomLinks_2148_9" xmlns="http://www.w3.org/1999/xhtml">Terms of use</a>
+ </li>
+ <li>
+ <a href="https://www.microsoft.com/en-us/legal/intellectualproperty/Trademarks/EN-US.aspx" id="BottomLinks_2148_10" xmlns="http://www.w3.org/1999/xhtml">Trademarks</a>
+ </li>
+ </ul>
+ </div>
+</div>
+ <span class="logoLegal">
+ <span class="logo"></span>
+ <span class="copyright">© 2015 Microsoft</span>
+ </span>
+ </footer>
+ </div>
+
+
+
+ <div class="footerPrintView">
+ <div class="footerCopyrightPrintView">© 2015 Microsoft</div>
+ </div>
+
+
+
+
+
+ <input id="tocPaddingPerLevel" type="hidden" value="17" />
+
+
+
+ <input id="MtpsDevice" type="hidden" value="Robot" />
+
+
+<![CDATA[ Third party scripts and code linked to or referenced from this website are licensed to you by the parties that own such code, not by Microsoft. See ASP.NET Ajax CDN Terms of Use – http://www.asp.net/ajaxlibrary/CDN.ashx. ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+<noscript><div><img alt="DCSIMG" id="Img1" width="1" height="1" src="https://m.webtrends.com/dcsmgru7m99k7mqmgrhudo0k8_8c6m/njs.gif?dcsuri=/nojavascript&amp;WT.js=No" /></div></noscript>
+
+
+
+
+
+
+
+
+
+<noscript>
+ <a href="http://www.omniture.com" title="Web Analytics">
+ <img src="//msstonojsmsdn.112.2o7.net/b/ss/msstonojsmsdn/1/H.20.2--NS/0" height="1" width="1" border="0" alt="" />
+ </a>
+</noscript>
+
+
+
+
+
+<div id="globalRequestVerification">
+ <input name="__RequestVerificationToken" type="hidden" value="nyJz1znhZGUF0XsIYht__FJ2k5KGP3POkpBgNnjn6QU7q-li0D7cf7QZIttQ_V0CaWLpPYXbX2IvB6szPDIUyGqkvVY1" />
+</div>
+
+
+ </div>
+
+
+
+
+
+ <script type="text/javascript" class="mtps-injected">
+/*<![CDATA[*/
+(function(window,document){"use strict";function preload(scripts){for(var result=[],script,e,i=0;i<scripts.length;i++)script=scripts[i],script.hasOwnProperty("url")&&(e=document.createElement("script"),e.src=script.url,script.throwaway=e),result.push(script);return result}function inject(scripts,index){var script,elem;if(index>=scripts.length){delete mtps.injectScripts;return}script=scripts[index];elem=document.createElement("script");elem.className="mtps-injected";elem.async=!1;var isLoaded=!1,timeoutId=0,injectNextFnName="",injectNext=elem.onerror=function(){isLoaded||(isLoaded=!0,inject(scripts,index+1),window.clearTimeout(timeoutId),elem.onload=elem.onerror=elem.onreadystatechange=null,injectNextFnName&&delete mtps[injectNextFnName],elem.removeEventListener&&elem.removeEventListener("load",injectNext,!1))};elem.addEventListener?elem.addEventListener("load",injectNext,!1):elem.readyState==="uninitialized"?elem.onreadystatechange=function(){(this.readyState==="loaded"||this.readyState==="complete")&&injectNext()}:elem.onload=injectNext;script.hasOwnProperty("url")?(timeoutId=window.setTimeout(injectNext,12e4),elem.src=script.url):(injectNextFnName="_injectNextScript_"+index,mtps[injectNextFnName]=injectNext,timeoutId=window.setTimeout(injectNext,2e3),elem.text="try {\n"+script.txt+"\n} finally { MTPS."+injectNextFnName+" && MTPS."+injectNextFnName+"(); }");parent.appendChild(elem)}var mtps=window.MTPS||(window.MTPS={}),parent=document.getElementsByTagName("head")[0];mtps.injectScripts=function(scripts){inject(preload(scripts),0)}})(window,document);
+MTPS.injectScripts([
+ { txt: "/**/\r\n(window.MTPS || (window.MTPS = {})).cdnDomains || (window.MTPS.cdnDomains = { \r\n\t\"image\": \"https://i-msdn.sec.s-msft.com\", \r\n\t\"js\": \"https://i2-msdn.sec.s-msft.com\", \r\n\t\"css\": \"https://i-msdn.sec.s-msft.com\", \r\n\t\"xap\": \"https://i-vso.sec.s-msft.com\"\r\n});\r\n/**/" },
+ { url: "https://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.2.min.js" },
+ { txt: "//\n var literalNormalizedUrl = \u0027/en-us/library/cc704588(l=en-us,v=prot.20).aspx\u0027;\n var wt_nvr_ru = \u0027WT_NVR_RU\u0027;\n var wt_fpcdom = \u0027.microsoft.com\u0027;\n var wt_domlist = \u0027msdn.microsoft.com\u0027;\n var wt_pathlist = \u0027\u0027;\n var wt_paramlist = \u0027DCSext.mtps_devcenter\u0027;\n var wt_siteid = \u0027MSDN\u0027;\n var gDomain = \u0027m.webtrends.com\u0027;\n var gDcsId = \u0027dcsmgru7m99k7mqmgrhudo0k8_8c6m\u0027;\n var gFpc = \u0027WT_FPC\u0027;\n\n\n\n if (document.cookie.indexOf(gFpc + \"=\") == -1) {\n var wtidJs = document.createElement(\"script\");\n wtidJs.src = \"//\" + gDomain + \"/\" + gDcsId + \"/wtid.js\";\n document.getElementsByTagName(\"head\")[0].appendChild(wtidJs);\n }\n\n\n\n var detectedLocale = \u0027en-us\u0027;\n var wtsp = \u0027msdnlib_doj\u0027;\n var gTrackEvents = \u00270\u0027;\n/**/" },
+ { txt: "/**/\n var omni_guid = \"297dc630-8066-40e0-ab61-b4ff48aa007c\";\n/**/" },
+ { txt: "//\n\n window.appInsightsId = \u002760854590-027a-4ae4-98be-2741a40f355f\u0027;\n //" },
+ { url: "https://i2-msdn.sec.s-msft.com/Combined.js?resources=0:Utilities,1:Layout,2:Header,1:Rating,2:Footer,0:Topic,3:webtrendsscript,4:omni_rsid_MSDN,5:WEDCS,0:AppInsightsPerf,6:Toc,1:SearchBox;/Areas/Epx/Content/Scripts:0,/Areas/Epx/Themes/Base/Content:1,/Areas/Centers/Themes/StandardDevCenter/Content:2,/Areas/Global/Content/Webtrends/resources:3,/Areas/Global/Content/Omniture/resources/MSDN:4,/Areas/Library/Themes/Base/Content:5,/Areas/Library/Content:6\u0026amp;hashKey=FB961264348D584F46A0D35B285D2793\u0026amp;v=B824EC950EFE6A8B72B4760A16A865F4" },
+ { url: "https://i1.services.social.microsoft.com/search/Widgets/SearchBox.jss?boxid=HeaderSearchTextBox\u0026btnid=HeaderSearchButton\u0026brand=Msdn\u0026loc=en-us\u0026focusOnInit=false\u0026emptyWatermark=true\u0026searchButtonTooltip=Search MSDN" },
+ { url: "https://i2-msdn.sec.s-msft.com/Combined.js?resources=0:PrintExportButton,1:NavigationResize,1:LibraryMemberFilter,2:Toc_Fixed,2:CodeSnippet,2:TopicNotInScope,2:CollapsibleArea,2:VersionSelector,2:SurveyBroker;/Areas/Library/Themes/Base/Content:0,/Areas/Library/Content:1,/Areas/Epx/Content/Scripts:2\u0026amp;hashKey=3248804C2DE1E642F8B20C4F83DBEA3B\u0026amp;v=B824EC950EFE6A8B72B4760A16A865F4" },
+ { txt: "$(document).ready(function() {\n try {\n var token = $(\"#globalRequestVerification input[name=\u0027__RequestVerificationToken\u0027]\").clone();\n $(\"#siteFeedbackForm\").append(token);\n } catch(err) {\n \n }\n });" }
+]);
+
+/*]]>*/
+</script></body>
+</html> \ No newline at end of file