Commit 1269a21

mo khan <mo@mokhan.ca>
2010-04-24 23:13:58
trying to hookup rhino queues.
1 parent dd4aa5d
product/client/presentation.windows/bootstrappers/Bootstrapper.cs
@@ -50,7 +50,8 @@ namespace presentation.windows.bootstrappers
             builder.Register<SelectedFamilyMemberPresenter>().SingletonScoped();
             builder.Register<AddFamilyMemberPresenter>();
             builder.Register<AccountPresenter>();
-            builder.Register<SaveCommand>();
+            builder.Register<AccountPresenter.AddNewAccountCommand>();
+            builder.Register<AddFamilyMemberPresenter.SaveCommand>();
             builder.Register<CancelCommand>();
 
             // commanding
product/client/presentation.windows/presenters/AddFamilyMemberPresenter.cs
@@ -1,5 +1,7 @@
 using System;
 using Gorilla.Commons.Utility;
+using presentation.windows.common;
+using presentation.windows.common.messages;
 
 namespace presentation.windows.presenters
 {
@@ -25,5 +27,26 @@ namespace presentation.windows.presenters
         public IObservableCommand Save { get; set; }
         public IObservableCommand Cancel { get; set; }
         public Action close { get; set; }
+
+        public class SaveCommand : UICommand<AddFamilyMemberPresenter>
+        {
+            ServiceBus bus;
+
+            public SaveCommand(ServiceBus bus)
+            {
+                this.bus = bus;
+            }
+
+            protected override void run(AddFamilyMemberPresenter presenter)
+            {
+                bus.publish<FamilyMemberToAdd>(x =>
+                {
+                    x.first_name = presenter.first_name;
+                    x.last_name = presenter.last_name;
+                    x.date_of_birth = presenter.date_of_birth;
+                });
+                presenter.close();
+            }
+        }
     }
 }
\ No newline at end of file
product/client/presentation.windows/presenters/SaveCommand.cs
@@ -1,27 +1,6 @@
 using presentation.windows.common;
 using presentation.windows.common.messages;
-using presentation.windows.service.infrastructure;
 
 namespace presentation.windows.presenters
 {
-    public class SaveCommand : UICommand<AddFamilyMemberPresenter>
-    {
-        ServiceBus bus;
-
-        public SaveCommand(ServiceBus bus)
-        {
-            this.bus = bus;
-        }
-
-        protected override void run(AddFamilyMemberPresenter presenter)
-        {
-            bus.publish<FamilyMemberToAdd>(x =>
-            {
-                x.first_name = presenter.first_name;
-                x.last_name = presenter.last_name;
-                x.date_of_birth = presenter.date_of_birth;
-            });
-            presenter.close();
-        }
-    }
 }
\ No newline at end of file
product/client/presentation.windows/Program.cs
@@ -13,7 +13,7 @@ namespace presentation.windows
         [STAThread]
         static public void Main()
         {
-            Process.Start("presentation.windows.server.exe");
+            Process.Start(@"D:\development\mokhan\git\mo.money\product\presentation.windows.server\bin\Debug\presentation.windows.server.exe");
             AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);
             Dispatcher.CurrentDispatcher.UnhandledException += (o, e) =>
             {
product/presentation.windows.common/MsmqBus.cs
@@ -0,0 +1,41 @@
+using System;
+using System.Messaging;
+
+namespace presentation.windows.common
+{
+    public class MsmqBus : ServiceBus
+    {
+        MessageQueue queue;
+
+        public MsmqBus(MessageQueue queue)
+        {
+            this.queue = queue;
+            queue.ReceiveCompleted += (sender, args) =>
+            {
+                var message = queue.EndReceive(args.AsyncResult);
+                process(message);
+                queue.BeginReceive();
+            };
+            queue.BeginReceive();
+        }
+
+        public void publish<T>() where T : new()
+        {
+            publish(new T());
+        }
+
+        public void publish<T>(T item) where T : new()
+        {
+            queue.Send(item);
+        }
+
+        public void publish<T>(Action<T> configure) where T : new()
+        {
+            var item = new T();
+            configure(item);
+            publish(item);
+        }
+
+        void process(Message message) {}
+    }
+}
\ No newline at end of file
product/presentation.windows.common/presentation.windows.common.csproj
@@ -35,6 +35,10 @@
       <SpecificVersion>False</SpecificVersion>
       <HintPath>..\..\build\lib\app\automapper\AutoMapper.dll</HintPath>
     </Reference>
+    <Reference Include="Db4objects.Db4o, Version=7.5.57.11498, Culture=neutral, PublicKeyToken=6199cd4f203aa8eb, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\..\build\lib\app\db40\Db4objects.Db4o.dll</HintPath>
+    </Reference>
     <Reference Include="FluentNHibernate, Version=1.0.0.0, Culture=neutral, PublicKeyToken=8aa435e3cb308880, processorArchitecture=MSIL">
       <SpecificVersion>False</SpecificVersion>
       <HintPath>..\..\build\lib\app\nhibernate\FluentNHibernate.dll</HintPath>
@@ -43,6 +47,7 @@
     <Reference Include="System.Core">
       <RequiredTargetFramework>3.5</RequiredTargetFramework>
     </Reference>
+    <Reference Include="System.Messaging" />
     <Reference Include="System.Xml.Linq">
       <RequiredTargetFramework>3.5</RequiredTargetFramework>
     </Reference>
@@ -59,6 +64,7 @@
     <Compile Include="messages\FamilyMemberToAdd.cs" />
     <Compile Include="messages\FindAllFamily.cs" />
     <Compile Include="messages\NewAccountCreated.cs" />
+    <Compile Include="MsmqBus.cs" />
     <Compile Include="NeedStartup.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
     <Compile Include="ServiceBus.cs" />
product/presentation.windows.common/ServiceBus.cs
@@ -4,8 +4,8 @@ namespace presentation.windows.common
 {
     public interface ServiceBus
     {
-        void publish<T>();
-        void publish<T>(T item);
-        void publish<T>(Action<T> configure);
+        void publish<T>() where T : new();
+        void publish<T>(T item) where T : new();
+        void publish<T>(Action<T> configure) where T : new();
     }
 }
\ No newline at end of file
product/presentation.windows.server/Bootstrapper.cs
@@ -33,6 +33,7 @@ namespace presentation.windows.server
 
             //needs startups
             builder.Register<ConfigureMappings>().As<NeedStartup>();
+            builder.Register<StartServiceBus>().As<NeedStartup>();
 
             // infrastructure
             builder.Register<Log4NetLogFactory>().As<LogFactory>().SingletonScoped();
product/presentation.windows.server/presentation.windows.server.csproj
@@ -21,6 +21,7 @@
     <DefineConstants>DEBUG;TRACE</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
+    <PlatformTarget>x86</PlatformTarget>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
     <DebugType>pdbonly</DebugType>
@@ -39,6 +40,10 @@
       <SpecificVersion>False</SpecificVersion>
       <HintPath>..\..\build\lib\app\automapper\AutoMapper.dll</HintPath>
     </Reference>
+    <Reference Include="Esent.Interop, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b93b4ad6c4b80595, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\..\thirdparty\rhino.queues\Esent.Interop.dll</HintPath>
+    </Reference>
     <Reference Include="FluentNHibernate, Version=1.0.0.0, Culture=neutral, PublicKeyToken=8aa435e3cb308880, processorArchitecture=MSIL">
       <SpecificVersion>False</SpecificVersion>
       <HintPath>..\..\build\lib\app\nhibernate\FluentNHibernate.dll</HintPath>
@@ -55,10 +60,19 @@
       <SpecificVersion>False</SpecificVersion>
       <HintPath>..\..\build\lib\app\nhibernate\NHibernate.Linq.dll</HintPath>
     </Reference>
+    <Reference Include="Rhino.Queues, Version=1.2.0.0, Culture=neutral, PublicKeyToken=0b3305902db7183f, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\..\thirdparty\rhino.queues\Rhino.Queues.dll</HintPath>
+    </Reference>
     <Reference Include="System" />
     <Reference Include="System.Core">
       <RequiredTargetFramework>3.5</RequiredTargetFramework>
     </Reference>
+    <Reference Include="System.Data.SQLite, Version=1.0.60.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=x86">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\..\build\lib\app\sqlite\System.Data.SQLite.dll</HintPath>
+    </Reference>
+    <Reference Include="System.Transactions" />
     <Reference Include="System.Xml.Linq">
       <RequiredTargetFramework>3.5</RequiredTargetFramework>
     </Reference>
@@ -98,6 +112,7 @@
     <Compile Include="orm\PersonRepository.cs" />
     <Compile Include="Program.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="StartServiceBus.cs" />
   </ItemGroup>
   <ItemGroup>
     <ProjectReference Include="..\client\database\database.csproj">
product/presentation.windows.server/StartServiceBus.cs
@@ -0,0 +1,77 @@
+using System;
+using System.Collections.Specialized;
+using System.IO;
+using System.Net;
+using System.Runtime.Serialization.Formatters.Binary;
+using System.Text;
+using System.Transactions;
+using Gorilla.Commons.Infrastructure.Logging;
+using presentation.windows.common;
+using Rhino.Queues;
+
+namespace presentation.windows.server
+{
+    public class StartServiceBus : NeedStartup
+    {
+        bool running = true;
+
+        public void run()
+        {
+            var manager = new QueueManager(new IPEndPoint(IPAddress.Loopback, 2200), "receiver.esent");
+            manager.CreateQueues("server");
+            var queue = manager.GetQueue("server");
+
+            while (running)
+            {
+                using (var transaction = new TransactionScope())
+                {
+                    var message = queue.Receive();
+                    this.log().debug(message.Headers["Source"]);
+                    this.log().debug(Encoding.Unicode.GetString(message.Data));
+                    Console.Out.WriteLine(message.Headers["Source"]);
+                    Console.Out.WriteLine(Encoding.Unicode.GetString(message.Data));
+                    transaction.Complete();
+                }
+            }
+        }
+    }
+
+    public class RhinoBus : ServiceBus
+    {
+        BinaryFormatter formatter = new BinaryFormatter();
+
+        public void publish<T>() where T : new()
+        {
+            publish(new T());
+        }
+
+        public void publish<T>(T item) where T : new()
+        {
+			using (var sender = new QueueManager(new IPEndPoint(IPAddress.Loopback, 4546), "sender.esent"))
+			{
+				using (var tx = new TransactionScope())
+				{
+                    var buffer = new byte[int.MaxValue];
+                    using (var stream = new MemoryStream(buffer))
+                    {
+                        formatter.Serialize(stream, item);
+                        sender.Send(new Uri("rhino.queues://localhost:4545/uno"), new MessagePayload
+                                           {
+                                               Headers = new NameValueCollection(),
+                                               Data = buffer
+                                           });
+                    }
+					tx.Complete();
+				}
+				sender.WaitForAllMessagesToBeSent();
+			}
+        }
+
+        public void publish<T>(Action<T> configure) where T : new()
+        {
+            var item = new T();
+            configure(item);
+            publish(item);
+        }
+    }
+}
\ No newline at end of file
thirdparty/rhino.queues/acknowledgements.txt
@@ -0,0 +1,2 @@
+Rhino Queues is making use of the builtin Esent database and the ManagedEsent project (http://codeplex.com/ManagedEsent)
+and of the Wintellect Power Threading (http://www.wintellect.com/PowerThreading.aspx) library
\ No newline at end of file
thirdparty/rhino.queues/Esent.Interop.dll
Binary file
thirdparty/rhino.queues/Esent.Interop.xml
@@ -0,0 +1,9521 @@
+<?xml version="1.0"?>
+<doc>
+    <assembly>
+        <name>Esent.Interop</name>
+    </assembly>
+    <members>
+        <member name="T:Microsoft.Isam.Esent.Interop.JET_param">
+            <summary>
+            ESENT system parameters.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_param.SystemPath">
+            <summary>
+            This parameter indicates the relative or absolute file system path of the
+            folder that will contain the checkpoint file for the instance. The path
+            must be terminated with a backslash character, which indicates that the
+            target path is a folder. 
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_param.TempPath">
+            <summary>
+            This parameter indicates the relative or absolute file system path of
+            the folder or file that will contain the temporary database for the instance.
+            If the path is to a folder that will contain the temporary database then it
+            must be terminated with a backslash character.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_param.LogFilePath">
+            <summary>
+            This parameter indicates the relative or absolute file system path of the
+            folder that will contain the transaction logs for the instance. The path must
+            be terminated with a backslash character, which indicates that the target path
+            is a folder.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_param.BaseName">
+            <summary>
+            This parameter sets the three letter prefix used for many of the files used by
+            the database engine. For example, the checkpoint file is called EDB.CHK by
+            default because EDB is the default base name.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_param.EventSource">
+            <summary>
+            This parameter supplies an application specific string that will be added to
+            any event log messages that are emitted by the database engine. This allows
+            easy correlation of event log messages with the source application. By default
+            the host application executable name will be used.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_param.MaxSessions">
+            <summary>
+            This parameter reserves the requested number of session resources for use by an
+            instance. A session resource directly corresponds to a JET_SESID data type.
+            This setting will affect how many sessions can be used at the same time.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_param.MaxOpenTables">
+            <summary>
+            This parameter reserves the requested number of B+ Tree resources for use by
+            an instance. This setting will affect how many tables can be used at the same time.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_param.MaxCursors">
+            <summary>
+            This parameter reserves the requested number of cursor resources for use by an
+            instance. A cursor resource directly corresponds to a JET_TABLEID data type.
+            This setting will affect how many cursors can be used at the same time. A cursor
+            resource cannot be shared by different sessions so this parameter must be set to
+            a large enough value so that each session can use as many cursors as are required.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_param.MaxVerPages">
+            <summary>
+            This parameter reserves the requested number of version store pages for use by an instance.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_param.MaxTemporaryTables">
+            <summary>
+            This parameter reserves the requested number of temporary table resources for use
+            by an instance. This setting will affect how many temporary tables can be used at
+            the same time. If this system parameter is set to zero then no temporary database
+            will be created and any activity that requires use of the temporary database will
+            fail. This setting can be useful to avoid the I/O required to create the temporary
+            database if it is known that it will not be used.
+            </summary>
+            <remarks>
+            The use of a temporary table also requires a cursor resource.
+            </remarks>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_param.LogFileSize">
+            <summary>
+            This parameter will configure the size of the transaction log files. Each
+            transaction log file is a fixed size. The size is equal to the setting of
+            this system parameter in units of 1024 bytes.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_param.LogBuffers">
+            <summary>
+            This parameter will configure the amount of memory used to cache log records
+            before they are written to the transaction log file. The unit for this
+            parameter is the sector size of the volume that holds the transaction log files.
+            The sector size is almost always 512 bytes, so it is safe to assume that size
+            for the unit. This parameter has an impact on performance. When the database
+            engine is under heavy update load, this buffer can become full very rapidly.
+            A larger cache size for the transaction log file is critical for good update
+            performance under such a high load condition. The default is known to be too small
+            for this case.
+            Do not set this parameter to a number of buffers that is larger (in bytes) than
+            half the size of a transaction log file.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_param.CircularLog">
+            <summary>
+            This parameter configures how transaction log files are managed by the database
+            engine. When circular logging is off, all transaction log files that are generated
+            are retained on disk until they are no longer needed because a full backup of the
+            database has been performed. When circular logging is on, only transaction log files
+            that are younger than the current checkpoint are retained on disk. The benefit of
+            this mode is that backups are not required to retire old transaction log files. 
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_param.PageTempDBMin">
+            <summary>
+            This parameter controls the initial size of the temporary database. The size is in
+            database pages. A size of zero indicates that the default size of an ordinary
+            database should be used. It is often desirable for small applications to configure
+            the temporary database to be as small as possible. Setting this parameter to
+            SystemParameters.PageTempDBSmallest will achieve the smallest temporary database possible.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_param.CacheSizeMax">
+            <summary>
+            This parameter configures the maximum size of the database page cache. The size
+            is in database pages. If this parameter is left to its default value, then the
+            maximum size of the cache will be set to the size of physical memory when JetInit
+            is called.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_param.CheckpointDepthMax">
+            <summary>
+            This parameter controls how aggressively database pages are flushed from the
+            database page cache to minimize the amount of time it will take to recover from a
+            crash. The parameter is a threshold in bytes for about how many transaction log
+            files will need to be replayed after a crash. If circular logging is enabled using
+            JET_param.CircularLog then this parameter will also control the approximate amount
+            of transaction log files that will be retained on disk.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_param.Recovery">
+            <summary>
+            This parameter is the master switch that controls crash recovery for an instance.
+            If this parameter is set to "On" then ARIES style recovery will be used to bring all
+            databases in the instance to a consistent state in the event of a process or machine
+            crash. If this parameter is set to "Off" then all databases in the instance will be
+            managed without the benefit of crash recovery. That is to say, that if the instance
+            is not shut down cleanly using JetTerm prior to the process exiting or machine shutdown
+            then the contents of all databases in that instance will be corrupted.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_param.CacheSize">
+            <summary>
+            This parameter can be used to control the size of the database page cache at run time.
+            Ordinarily, the cache will automatically tune its size as a function of database and
+            machine activity levels. If the application sets this parameter to zero, then the cache
+            will tune its own size in this manner. However, if the application sets this parameter
+            to a non-zero value then the cache will adjust itself to that target size.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_param.EnableIndexChecking">
+            <summary>
+            When this parameter is true, every database is checked at JetAttachDatabase time for
+            indexes over Unicode key columns that were built using an older version of the NLS
+            library in the operating system. This must be done because the database engine persists
+            the sort keys generated by LCMapStringW and the value of these sort keys change from release to release.
+            If a primary index is detected to be in this state then JetAttachDatabase will always fail with
+            JET_err.PrimaryIndexCorrupted.
+            If any secondary indexes are detected to be in this state then there are two possible outcomes.
+            If AttachDatabaseGrbit.DeleteCorruptIndexes was passed to JetAttachDatabase then these indexes
+            will be deleted and JET_wrnCorruptIndexDeleted will be returned from JetAttachDatabase. These
+            indexes will need to be recreated by your application. If AttachDatabaseGrbit.DeleteCorruptIndexes
+            was not passed to JetAttachDatabase then the call will fail with JET_errSecondaryIndexCorrupted.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_param.EventSourceKey">
+            <summary>
+            This parameter can be used to control which event log the database engine uses for its event log
+            messages. By default, all event log messages will go to the Application event log. If the registry
+            key name for another event log is configured then the event log messages will go there instead.
+            </summary>        
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_param.NoInformationEvent">
+            <summary>
+            When this parameter is true, informational event log messages that would ordinarily be generated by
+            the database engine will be suppressed.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_param.CacheSizeMin">
+            <summary>
+            This parameter configures the minimum size of the database page cache. The size is in database pages.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_param.DatabasePageSize">
+            <summary>
+            This parameter configures the page size for the database. The page
+            size is the smallest unit of space allocation possible for a database
+            file. The database page size is also very important because it sets
+            the upper limit on the size of an individual record in the database. 
+            </summary>
+            <remarks>
+            Only one database page size is supported per process at this time.
+            This means that if you are in a single process that contains different
+            applications that use the database engine then they must all agree on
+            a database page size.
+            </remarks>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_param.ErrorToString">
+            <summary>
+            This parameter can be used to convert a JET_ERR into a string.
+            This should only be used with JetGetSystemParameter.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_param.CreatePathIfNotExist">
+            <summary>
+            When this parameter is set to true then any folder that is missing in a file system path in use by
+            the database engine will be silently created. Otherwise, the operation that uses the missing file system
+            path will fail with JET_err.InvalidPath.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_param.MaxInstances">
+            <summary>
+            This parameter controls the maximum number of instances that can be created in a single process.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.JET_err">
+            <summary>
+            ESENT error codes.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.Success">
+            <summary>
+            Successful operation.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.RfsFailure">
+            <summary>
+            Resource Failure Simulator failure
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.RfsNotArmed">
+            <summary>
+            Resource Failure Simulator not initialized
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.FileClose">
+            <summary>
+            Could not close file
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.OutOfThreads">
+            <summary>
+            Could not start thread
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.TooManyIO">
+            <summary>
+            System busy due to too many IOs
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.TaskDropped">
+            <summary>
+            A requested async task could not be executed
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.InternalError">
+            <summary>
+            Fatal internal error
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.DatabaseBufferDependenciesCorrupted">
+            <summary>
+            Buffer dependencies improperly set. Recovery failure
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.PreviousVersion">
+            <summary>
+            Version already existed. Recovery failure
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.PageBoundary">
+            <summary>
+            Reached Page Boundary
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.KeyBoundary">
+            <summary>
+            Reached Key Boundary
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.BadPageLink">
+            <summary>
+            Database corrupted
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.BadBookmark">
+            <summary>
+            Bookmark has no corresponding address in database
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.NTSystemCallFailed">
+            <summary>
+            A call to the operating system failed
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.BadParentPageLink">
+            <summary>
+            Database corrupted
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.SPAvailExtCacheOutOfSync">
+            <summary>
+            AvailExt cache doesn't match btree
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.SPAvailExtCorrupted">
+            <summary>
+            AvailExt space tree is corrupt
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.SPAvailExtCacheOutOfMemory">
+            <summary>
+            Out of memory allocating an AvailExt cache node
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.SPOwnExtCorrupted">
+            <summary>
+            OwnExt space tree is corrupt
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.DbTimeCorrupted">
+            <summary>
+            Dbtime on current page is greater than global database dbtime
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.KeyTruncated">
+            <summary>
+            key truncated on index that disallows key truncation
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.KeyTooBig">
+            <summary>
+            Key is too large
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.InvalidLoggedOperation">
+            <summary>
+            Logged operation cannot be redone
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.LogFileCorrupt">
+            <summary>
+            Log file is corrupt
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.NoBackupDirectory">
+            <summary>
+            No backup directory given
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.BackupDirectoryNotEmpty">
+            <summary>
+            The backup directory is not emtpy
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.BackupInProgress">
+            <summary>
+            Backup is active already
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.RestoreInProgress">
+            <summary>
+            Restore in progress
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.MissingPreviousLogFile">
+            <summary>
+            Missing the log file for check point
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.LogWriteFail">
+            <summary>
+            Failure writing to log file
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.LogDisabledDueToRecoveryFailure">
+            <summary>
+            Try to log something after recovery faild
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.CannotLogDuringRecoveryRedo">
+            <summary>
+            Try to log something during recovery redo
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.LogGenerationMismatch">
+            <summary>
+            Name of logfile does not match internal generation number
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.BadLogVersion">
+            <summary>
+            Version of log file is not compatible with Jet version
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.InvalidLogSequence">
+            <summary>
+            Timestamp in next log does not match expected
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.LoggingDisabled">
+            <summary>
+            Log is not active
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.LogBufferTooSmall">
+            <summary>
+            Log buffer is too small for recovery
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.LogSequenceEnd">
+            <summary>
+            Maximum log file number exceeded
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.NoBackup">
+            <summary>
+            No backup in progress
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.InvalidBackupSequence">
+            <summary>
+            Backup call out of sequence
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.BackupNotAllowedYet">
+            <summary>
+            Cannot do backup now
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.DeleteBackupFileFail">
+            <summary>
+            Could not delete backup file
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.MakeBackupDirectoryFail">
+            <summary>
+            Could not make backup temp directory
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.InvalidBackup">
+            <summary>
+            Cannot perform incremental backup when circular logging enabled
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.RecoveredWithErrors">
+            <summary>
+            Restored with errors
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.MissingLogFile">
+            <summary>
+            Current log file missing
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.LogDiskFull">
+            <summary>
+            Log disk full
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.BadLogSignature">
+            <summary>
+            Bad signature for a log file
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.BadDbSignature">
+            <summary>
+            Bad signature for a db file
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.BadCheckpointSignature">
+            <summary>
+            Bad signature for a checkpoint file
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.CheckpointCorrupt">
+            <summary>
+            Checkpoint file not found or corrupt
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.MissingPatchPage">
+            <summary>
+            Patch file page not found during recovery
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.BadPatchPage">
+            <summary>
+            Patch file page is not valid
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.RedoAbruptEnded">
+            <summary>
+            Redo abruptly ended due to sudden failure in reading logs from log file
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.BadSLVSignature">
+            <summary>
+            Signature in SLV file does not agree with database
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.PatchFileMissing">
+            <summary>
+            Hard restore detected that patch file is missing from backup set
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.DatabaseLogSetMismatch">
+            <summary>
+            Database does not belong with the current set of log files
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.DatabaseStreamingFileMismatch">
+            <summary>
+            Database and streaming file do not match each other
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.LogFileSizeMismatch">
+            <summary>
+            actual log file size does not match JET_paramLogFileSize
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.CheckpointFileNotFound">
+            <summary>
+            Could not locate checkpoint file
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.RequiredLogFilesMissing">
+            <summary>
+            The required log files for recovery is missing.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.SoftRecoveryOnBackupDatabase">
+            <summary>
+            Soft recovery is intended on a backup database. Restore should be used instead
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.LogFileSizeMismatchDatabasesConsistent">
+            <summary>
+            databases have been recovered, but the log file size used during recovery does not match JET_paramLogFileSize
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.LogSectorSizeMismatch">
+            <summary>
+            the log file sector size does not match the current volume's sector size
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.LogSectorSizeMismatchDatabasesConsistent">
+            <summary>
+            databases have been recovered, but the log file sector size (used during recovery) does not match the current volume's sector size
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.LogSequenceEndDatabasesConsistent">
+            <summary>
+            databases have been recovered, but all possible log generations in the current sequence are used; delete all log files and the checkpoint file and backup the databases before continuing
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.StreamingDataNotLogged">
+            <summary>
+            Illegal attempt to replay a streaming file operation where the data wasn't logged. Probably caused by an attempt to roll-forward with circular logging enabled
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.DatabaseDirtyShutdown">
+            <summary>
+            Database was not shutdown cleanly. Recovery must first be run to properly complete database operations for the previous shutdown.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.ConsistentTimeMismatch">
+            <summary>
+            Database last consistent time unmatched
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.DatabasePatchFileMismatch">
+            <summary>
+            Patch file is not generated from this backup
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.EndingRestoreLogTooLow">
+            <summary>
+            The starting log number too low for the restore
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.StartingRestoreLogTooHigh">
+            <summary>
+            The starting log number too high for the restore
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.GivenLogFileHasBadSignature">
+            <summary>
+            Restore log file has bad signature
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.GivenLogFileIsNotContiguous">
+            <summary>
+            Restore log file is not contiguous
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.MissingRestoreLogFiles">
+            <summary>
+            Some restore log files are missing
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.MissingFullBackup">
+            <summary>
+            The database miss a previous full backup befor incremental backup
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.BadBackupDatabaseSize">
+            <summary>
+            The backup database size is not in 4k
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.DatabaseAlreadyUpgraded">
+            <summary>
+            Attempted to upgrade a database that is already current
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.DatabaseIncompleteUpgrade">
+            <summary>
+            Attempted to use a database which was only partially converted to the current format -- must restore from backup
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.MissingCurrentLogFiles">
+            <summary>
+            Some current log files are missing for continous restore
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.DbTimeTooOld">
+            <summary>
+            dbtime on page smaller than dbtimeBefore in record
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.DbTimeTooNew">
+            <summary>
+            dbtime on page in advance of the dbtimeBefore in record
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.MissingFileToBackup">
+            <summary>
+            Some log or patch files are missing during backup
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.LogTornWriteDuringHardRestore">
+            <summary>
+            torn-write was detected in a backup set during hard restore
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.LogTornWriteDuringHardRecovery">
+            <summary>
+            torn-write was detected during hard recovery (log was not part of a backup set)
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.LogCorruptDuringHardRestore">
+            <summary>
+            corruption was detected in a backup set during hard restore
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.LogCorruptDuringHardRecovery">
+            <summary>
+            corruption was detected during hard recovery (log was not part of a backup set)
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.MustDisableLoggingForDbUpgrade">
+            <summary>
+            Cannot have logging enabled while attempting to upgrade db
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.BadRestoreTargetInstance">
+            <summary>
+            TargetInstance specified for restore is not found or log files don't match
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.RecoveredWithoutUndo">
+            <summary>
+            Soft recovery successfully replayed all operations, but the Undo phase of recovery was skipped
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.DatabasesNotFromSameSnapshot">
+            <summary>
+            Databases to be restored are not from the same shadow copy backup
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.SoftRecoveryOnSnapshot">
+            <summary>
+            Soft recovery on a database from a shadow copy backup set
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.SectorSizeNotSupported">
+            <summary>
+            The physical sector size reported by the disk subsystem, is unsupported by ESE for a specific file type.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.UnicodeTranslationBufferTooSmall">
+            <summary>
+            Unicode translation buffer too small
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.UnicodeTranslationFail">
+            <summary>
+            Unicode normalization failed
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.UnicodeNormalizationNotSupported">
+            <summary>
+            OS does not provide support for Unicode normalisation (and no normalisation callback was specified)
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.ExistingLogFileHasBadSignature">
+            <summary>
+            Existing log file has bad signature
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.ExistingLogFileIsNotContiguous">
+            <summary>
+            Existing log file is not contiguous
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.LogReadVerifyFailure">
+            <summary>
+            Checksum error in log file during backup
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.SLVReadVerifyFailure">
+            <summary>
+            Checksum error in SLV file during backup
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.CheckpointDepthTooDeep">
+            <summary>
+            too many outstanding generations between checkpoint and current generation
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.RestoreOfNonBackupDatabase">
+            <summary>
+            hard recovery attempted on a database that wasn't a backup database
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.LogFileNotCopied">
+            <summary>
+            log truncation attempted but not all required logs were copied
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.InvalidGrbit">
+            <summary>
+            Invalid parameter
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.TermInProgress">
+            <summary>
+            Termination in progress
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.FeatureNotAvailable">
+            <summary>
+            Api not supported
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.InvalidName">
+            <summary>
+            Invalid name
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.InvalidParameter">
+            <summary>
+            Invalid Api parameter
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.DatabaseFileReadOnly">
+            <summary>
+            Tried to attach a read-only database file for read/write operations
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.InvalidDatabaseId">
+            <summary>
+            Invalid database id
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.OutOfMemory">
+            <summary>
+            Out of Memory
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.OutOfDatabaseSpace">
+            <summary>
+            Maximum database size reached
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.OutOfCursors">
+            <summary>
+            Out of table cursors
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.OutOfBuffers">
+            <summary>
+            Out of database page buffers
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.TooManyIndexes">
+            <summary>
+            Too many indexes
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.TooManyKeys">
+            <summary>
+            Too many columns in an index
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.RecordDeleted">
+            <summary>
+            Record has been deleted
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.ReadVerifyFailure">
+            <summary>
+            Checksum error on a database page
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.PageNotInitialized">
+            <summary>
+            Blank database page
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.OutOfFileHandles">
+            <summary>
+            Out of file handles
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.DiskIO">
+            <summary>
+            Disk IO error
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.InvalidPath">
+            <summary>
+            Invalid file path
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.InvalidSystemPath">
+            <summary>
+            Invalid system path
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.InvalidLogDirectory">
+            <summary>
+            Invalid log directory
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.RecordTooBig">
+            <summary>
+            Record larger than maximum size
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.TooManyOpenDatabases">
+            <summary>
+            Too many open databases
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.InvalidDatabase">
+            <summary>
+            Not a database file
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.NotInitialized">
+            <summary>
+            Database engine not initialized
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.AlreadyInitialized">
+            <summary>
+            Database engine already initialized
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.InitInProgress">
+            <summary>
+            Database engine is being initialized
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.FileAccessDenied">
+            <summary>
+            Cannot access file, the file is locked or in use
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.BufferTooSmall">
+            <summary>
+            Buffer is too small
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.TooManyColumns">
+            <summary>
+            Too many columns defined
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.ContainerNotEmpty">
+            <summary>
+            Container is not empty
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.InvalidFilename">
+            <summary>
+            Filename is invalid
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.InvalidBookmark">
+            <summary>
+            Invalid bookmark
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.ColumnInUse">
+            <summary>
+            Column used in an index
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.InvalidBufferSize">
+            <summary>
+            Data buffer doesn't match column size
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.ColumnNotUpdatable">
+            <summary>
+            Cannot set column value
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.IndexInUse">
+            <summary>
+            Index is in use
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.LinkNotSupported">
+            <summary>
+            Link support unavailable
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.NullKeyDisallowed">
+            <summary>
+            Null keys are disallowed on index
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.NotInTransaction">
+            <summary>
+            Operation must be within a transaction
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.TooManyActiveUsers">
+            <summary>
+            Too many active database users
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.InvalidCountry">
+            <summary>
+            Invalid or unknown country code
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.InvalidLanguageId">
+            <summary>
+            Invalid or unknown language id
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.InvalidCodePage">
+            <summary>
+            Invalid or unknown code page
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.InvalidLCMapStringFlags">
+            <summary>
+            Invalid flags for LCMapString()
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.VersionStoreEntryTooBig">
+            <summary>
+            Attempted to create a version store entry (RCE) larger than a version bucket
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.VersionStoreOutOfMemoryAndCleanupTimedOut">
+            <summary>
+            Version store out of memory (and cleanup attempt failed to complete)
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.VersionStoreOutOfMemory">
+            <summary>
+            Version store out of memory (cleanup already attempted)
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.CannotIndex">
+            <summary>
+            Cannot index escrow column or SLV column
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.RecordNotDeleted">
+            <summary>
+            Record has not been deleted
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.TooManyMempoolEntries">
+            <summary>
+            Too many mempool entries requested
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.OutOfObjectIDs">
+            <summary>
+            Out of btree ObjectIDs (perform offline defrag to reclaim freed/unused ObjectIds)
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.OutOfLongValueIDs">
+            <summary>
+            Long-value ID counter has reached maximum value. (perform offline defrag to reclaim free/unused LongValueIDs)
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.OutOfAutoincrementValues">
+            <summary>
+            Auto-increment counter has reached maximum value (offline defrag WILL NOT be able to reclaim free/unused Auto-increment values).
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.OutOfDbtimeValues">
+            <summary>
+            Dbtime counter has reached maximum value (perform offline defrag to reclaim free/unused Dbtime values)
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.OutOfSequentialIndexValues">
+            <summary>
+            Sequential index counter has reached maximum value (perform offline defrag to reclaim free/unused SequentialIndex values)
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.RunningInOneInstanceMode">
+            <summary>
+            Multi-instance call with single-instance mode enabled
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.RunningInMultiInstanceMode">
+            <summary>
+            Single-instance call with multi-instance mode enabled
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.SystemParamsAlreadySet">
+            <summary>
+            Global system parameters have already been set
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.SystemPathInUse">
+            <summary>
+            System path already used by another database instance
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.LogFilePathInUse">
+            <summary>
+            Logfile path already used by another database instance
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.TempPathInUse">
+            <summary>
+            Temp path already used by another database instance
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.InstanceNameInUse">
+            <summary>
+            Instance Name already in use
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.InstanceUnavailable">
+            <summary>
+            This instance cannot be used because it encountered a fatal error
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.DatabaseUnavailable">
+            <summary>
+            This database cannot be used because it encountered a fatal error
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.InstanceUnavailableDueToFatalLogDiskFull">
+            <summary>
+            This instance cannot be used because it encountered a log-disk-full error performing an operation (likely transaction rollback) that could not tolerate failure
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.OutOfSessions">
+            <summary>
+            Out of sessions
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.WriteConflict">
+            <summary>
+            Write lock failed due to outstanding write lock
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.TransTooDeep">
+            <summary>
+            Transactions nested too deeply
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.InvalidSesid">
+            <summary>
+            Invalid session handle
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.WriteConflictPrimaryIndex">
+            <summary>
+            Update attempted on uncommitted primary index
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.InTransaction">
+            <summary>
+            Operation not allowed within a transaction
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.RollbackRequired">
+            <summary>
+            Must rollback current transaction -- cannot commit or begin a new one
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.TransReadOnly">
+            <summary>
+            Read-only transaction tried to modify the database
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.SessionWriteConflict">
+            <summary>
+            Attempt to replace the same record by two diffrerent cursors in the same session
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.RecordTooBigForBackwardCompatibility">
+            <summary>
+            record would be too big if represented in a database format from a previous version of Jet
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.CannotMaterializeForwardOnlySort">
+            <summary>
+            The temp table could not be created due to parameters that conflict with JET_bitTTForwardOnly
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.SesidTableIdMismatch">
+            <summary>
+            This session handle can't be used with this table id
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.InvalidInstance">
+            <summary>
+            Invalid instance handle
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.DatabaseDuplicate">
+            <summary>
+            Database already exists
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.DatabaseInUse">
+            <summary>
+            Database in use
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.DatabaseNotFound">
+            <summary>
+            No such database
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.DatabaseInvalidName">
+            <summary>
+            Invalid database name
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.DatabaseInvalidPages">
+            <summary>
+            Invalid number of pages
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.DatabaseCorrupted">
+            <summary>
+            Non database file or corrupted db
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.DatabaseLocked">
+            <summary>
+            Database exclusively locked
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.CannotDisableVersioning">
+            <summary>
+            Cannot disable versioning for this database
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.InvalidDatabaseVersion">
+            <summary>
+            Database engine is incompatible with database
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.Database200Format">
+            <summary>
+            The database is in an older (200) format
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.Database400Format">
+            <summary>
+            The database is in an older (400) format
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.Database500Format">
+            <summary>
+            The database is in an older (500) format
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.PageSizeMismatch">
+            <summary>
+            The database page size does not match the engine
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.TooManyInstances">
+            <summary>
+            Cannot start any more database instances
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.DatabaseSharingViolation">
+            <summary>
+            A different database instance is using this database
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.AttachedDatabaseMismatch">
+            <summary>
+            An outstanding database attachment has been detected at the start or end of recovery, but database is missing or does not match attachment info
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.DatabaseInvalidPath">
+            <summary>
+            Specified path to database file is illegal
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.DatabaseIdInUse">
+            <summary>
+            A database is being assigned an id already in use
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.ForceDetachNotAllowed">
+            <summary>
+            Force Detach allowed only after normal detach errored out
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.CatalogCorrupted">
+            <summary>
+            Corruption detected in catalog
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.PartiallyAttachedDB">
+            <summary>
+            Database is partially attached. Cannot complete attach operation
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.DatabaseSignInUse">
+            <summary>
+            Database with same signature in use
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.DatabaseCorruptedNoRepair">
+            <summary>
+            Corrupted db but repair not allowed
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.InvalidCreateDbVersion">
+            <summary>
+            recovery tried to replay a database creation, but the database was originally created with an incompatible (likely older) version of the database engine
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.TableLocked">
+            <summary>
+            Table is exclusively locked
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.TableDuplicate">
+            <summary>
+            Table already exists
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.TableInUse">
+            <summary>
+            Table is in use, cannot lock
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.ObjectNotFound">
+            <summary>
+            No such table or object
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.DensityInvalid">
+            <summary>
+            Bad file/index density
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.TableNotEmpty">
+            <summary>
+            Table is not empty
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.InvalidTableId">
+            <summary>
+            Invalid table id
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.TooManyOpenTables">
+            <summary>
+            Cannot open any more tables (cleanup already attempted)
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.IllegalOperation">
+            <summary>
+            Oper. not supported on table
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.TooManyOpenTablesAndCleanupTimedOut">
+            <summary>
+            Cannot open any more tables (cleanup attempt failed to complete)
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.ObjectDuplicate">
+            <summary>
+            Table or object name in use
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.InvalidObject">
+            <summary>
+            Object is invalid for operation
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.CannotDeleteTempTable">
+            <summary>
+            Use CloseTable instead of DeleteTable to delete temp table
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.CannotDeleteSystemTable">
+            <summary>
+            Illegal attempt to delete a system table
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.CannotDeleteTemplateTable">
+            <summary>
+            Illegal attempt to delete a template table
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.ExclusiveTableLockRequired">
+            <summary>
+            Must have exclusive lock on table.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.FixedDDL">
+            <summary>
+            DDL operations prohibited on this table
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.FixedInheritedDDL">
+            <summary>
+            On a derived table, DDL operations are prohibited on inherited portion of DDL
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.CannotNestDDL">
+            <summary>
+            Nesting of hierarchical DDL is not currently supported.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.DDLNotInheritable">
+            <summary>
+            Tried to inherit DDL from a table not marked as a template table.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.InvalidSettings">
+            <summary>
+            System parameters were set improperly
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.ClientRequestToStopJetService">
+            <summary>
+            Client has requested stop service
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.CannotAddFixedVarColumnToDerivedTable">
+            <summary>
+            Template table was created with NoFixedVarColumnsInDerivedTables
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.IndexCantBuild">
+            <summary>
+            Index build failed
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.IndexHasPrimary">
+            <summary>
+            Primary index already defined
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.IndexDuplicate">
+            <summary>
+            Index is already defined
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.IndexNotFound">
+            <summary>
+            No such index
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.IndexMustStay">
+            <summary>
+            Cannot delete clustered index
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.IndexInvalidDef">
+            <summary>
+            Illegal index definition
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.InvalidCreateIndex">
+            <summary>
+            Invalid create index description
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.TooManyOpenIndexes">
+            <summary>
+            Out of index description blocks
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.MultiValuedIndexViolation">
+            <summary>
+            Non-unique inter-record index keys generated for a multivalued index
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.IndexBuildCorrupted">
+            <summary>
+            Failed to build a secondary index that properly reflects primary index
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.PrimaryIndexCorrupted">
+            <summary>
+            Primary index is corrupt. The database must be defragmented
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.SecondaryIndexCorrupted">
+            <summary>
+            Secondary index is corrupt. The database must be defragmented
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.InvalidIndexId">
+            <summary>
+            Illegal index id
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.IndexTuplesSecondaryIndexOnly">
+            <summary>
+            tuple index can only be on a secondary index
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.IndexTuplesTooManyColumns">
+            <summary>
+            tuple index may only have eleven columns in the index
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.IndexTuplesNonUniqueOnly">
+            <summary>
+            tuple index must be a non-unique index
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.IndexTuplesTextBinaryColumnsOnly">
+            <summary>
+            tuple index must be on a text/binary column
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.IndexTuplesVarSegMacNotAllowed">
+            <summary>
+            tuple index does not allow setting cbVarSegMac
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.IndexTuplesInvalidLimits">
+            <summary>
+            invalid min/max tuple length or max characters to index specified
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.IndexTuplesCannotRetrieveFromIndex">
+            <summary>
+            cannot call RetrieveColumn() with RetrieveFromIndex on a tuple index
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.IndexTuplesKeyTooSmall">
+            <summary>
+            specified key does not meet minimum tuple length
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.ColumnLong">
+            <summary>
+            Column value is long
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.ColumnNoChunk">
+            <summary>
+            No such chunk in long value
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.ColumnDoesNotFit">
+            <summary>
+            Field will not fit in record
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.NullInvalid">
+            <summary>
+            Null not valid
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.ColumnIndexed">
+            <summary>
+            Column indexed, cannot delete
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.ColumnTooBig">
+            <summary>
+            Field length is greater than maximum
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.ColumnNotFound">
+            <summary>
+            No such column
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.ColumnDuplicate">
+            <summary>
+            Field is already defined
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.MultiValuedColumnMustBeTagged">
+            <summary>
+            Attempted to create a multi-valued column, but column was not Tagged
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.ColumnRedundant">
+            <summary>
+            Second autoincrement or version column
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.InvalidColumnType">
+            <summary>
+            Invalid column data type
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.TaggedNotNULL">
+            <summary>
+            No non-NULL tagged columns
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.NoCurrentIndex">
+            <summary>
+            Invalid w/o a current index
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.KeyIsMade">
+            <summary>
+            The key is completely made
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.BadColumnId">
+            <summary>
+            Column Id Incorrect
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.BadItagSequence">
+            <summary>
+            Bad itagSequence for tagged column
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.ColumnInRelationship">
+            <summary>
+            Cannot delete, column participates in relationship
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.CannotBeTagged">
+            <summary>
+            AutoIncrement and Version cannot be tagged
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.DefaultValueTooBig">
+            <summary>
+            Default value exceeds maximum size
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.MultiValuedDuplicate">
+            <summary>
+            Duplicate detected on a unique multi-valued column
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.LVCorrupted">
+            <summary>
+            Corruption encountered in long-value tree
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.MultiValuedDuplicateAfterTruncation">
+            <summary>
+            Duplicate detected on a unique multi-valued column after data was normalized, and normalizing truncated the data before comparison
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.DerivedColumnCorruption">
+            <summary>
+            Invalid column in derived table
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.InvalidPlaceholderColumn">
+            <summary>
+            Tried to convert column to a primary index placeholder, but column doesn't meet necessary criteria
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.RecordNotFound">
+            <summary>
+            The key was not found
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.RecordNoCopy">
+            <summary>
+            No working buffer
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.NoCurrentRecord">
+            <summary>
+            Currency not on a record
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.RecordPrimaryChanged">
+            <summary>
+            Primary key may not change
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.KeyDuplicate">
+            <summary>
+            Illegal duplicate key
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.AlreadyPrepared">
+            <summary>
+            Attempted to update record when record update was already in progress
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.KeyNotMade">
+            <summary>
+            No call to JetMakeKey
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.UpdateNotPrepared">
+            <summary>
+            No call to JetPrepareUpdate
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.DataHasChanged">
+            <summary>
+            Data has changed, operation aborted
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.LanguageNotSupported">
+            <summary>
+            Windows installation does not support language
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.TooManySorts">
+            <summary>
+            Too many sort processes
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.InvalidOnSort">
+            <summary>
+            Invalid operation on Sort
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.TempFileOpenError">
+            <summary>
+            Temp file could not be opened
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.TooManyAttachedDatabases">
+            <summary>
+            Too many open databases
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.DiskFull">
+            <summary>
+            No space left on disk
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.PermissionDenied">
+            <summary>
+            Permission denied
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.FileNotFound">
+            <summary>
+            File not found
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.FileInvalidType">
+            <summary>
+            Invalid file type
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.AfterInitialization">
+            <summary>
+            Cannot Restore after init.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.LogCorrupted">
+            <summary>
+            Logs could not be interpreted
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.InvalidOperation">
+            <summary>
+            Invalid operation
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.AccessDenied">
+            <summary>
+            Access denied
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.TooManySplits">
+            <summary>
+            Infinite split
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.SessionSharingViolation">
+            <summary>
+            Multiple threads are using the same session
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.EntryPointNotFound">
+            <summary>
+            An entry point in a DLL we require could not be found
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.SessionContextAlreadySet">
+            <summary>
+            Specified session already has a session context set
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.SessionContextNotSetByThisThread">
+            <summary>
+            Tried to reset session context, but current thread did not orignally set the session context
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.SessionInUse">
+            <summary>
+            Tried to terminate session in use
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.RecordFormatConversionFailed">
+            <summary>
+            Internal error during dynamic record format conversion
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.OneDatabasePerSession">
+            <summary>
+            Just one open user database per session is allowed (JET_paramOneDatabasePerSession)
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.RollbackError">
+            <summary>
+            error during rollback
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.CallbackFailed">
+            <summary>
+            A callback failed
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.CallbackNotResolved">
+            <summary>
+            A callback function could not be found
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.OSSnapshotInvalidSequence">
+            <summary>
+            OS Shadow copy Api used in an invalid sequence
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.OSSnapshotTimeOut">
+            <summary>
+            OS Shadow copy ended with time-out
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.OSSnapshotNotAllowed">
+            <summary>
+            OS Shadow copy not allowed (backup or recovery in progress)
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.OSSnapshotInvalidSnapId">
+            <summary>
+            invalid JET_OSSNAPID
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.LSCallbackNotSpecified">
+            <summary>
+            Attempted to use Local Storage without a callback function being specified
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.LSAlreadySet">
+            <summary>
+            Attempted to set Local Storage for an object which already had it set
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.LSNotSet">
+            <summary>
+            Attempted to retrieve Local Storage from an object which didn't have it set
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.FileIOSparse">
+            <summary>
+            an I/O was issued to a location that was sparse
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.FileIOBeyondEOF">
+            <summary>
+            a read was issued to a location beyond EOF (writes will expand the file)
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.FileIOAbort">
+            <summary>
+            instructs the JET_ABORTRETRYFAILCALLBACK caller to abort the specified I/O
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.FileIORetry">
+            <summary>
+            instructs the JET_ABORTRETRYFAILCALLBACK caller to retry the specified I/O
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.FileIOFail">
+            <summary>
+            instructs the JET_ABORTRETRYFAILCALLBACK caller to fail the specified I/O
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_err.FileCompressed">
+            <summary>
+            read/write access is not supported on compressed files
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.Api">
+            <summary>
+            Helper methods for the ESENT API. These aren't interop versions
+            of the API, but encapsulate very common uses of the functions.
+            </summary>
+            <summary>
+            Helper methods for the ESENT API. These aren't interop versions
+            of the API, but encapsulate very common uses of the functions.
+            </summary>
+            <summary>
+            Helper methods for the ESENT API. These methods deal with database
+            meta-data.
+            </summary>
+            <summary>
+            Internal-only methods of the Api.
+            </summary>
+            <summary>
+            Helper methods for the ESENT API. These do data conversion for
+            JetMakeKey.
+            </summary>
+            <summary>
+            Helper methods for the ESENT API. These do data conversion for
+            setting columns.
+            </summary>
+            <summary>
+            Managed versions of the ESENT Api. This class contains static methods corresponding
+            with the unmanaged ESENT Api. These methods throw exceptions when errors are returned.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.MoveBeforeFirst(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID)">
+            <summary>
+            Position the cursor before the first record in the table. A 
+            subsequent move next will position the cursor on the first
+            record.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The table to position.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.MoveAfterLast(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID)">
+            <summary>
+            Position the cursor after the last record in the table. A 
+            subsequent move previous will position the cursor on the
+            last record.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The table to position.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.TryMoveFirst(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID)">
+            <summary>
+            Try to move to the first record in the table. If the table is empty this
+            returns false, if a different error is encountered an exception is thrown.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to position.</param>
+            <returns>True if the move was successful.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.TryMoveLast(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID)">
+            <summary>
+            Try to move to the last record in the table. If the table is empty this
+            returns false, if a different error is encountered an exception is thrown.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to position.</param>
+            <returns>True if the move was successful.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.TryMoveNext(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID)">
+            <summary>
+            Try to move to the next record in the table. If there is not a next record
+            this returns false, if a different error is encountered an exception is thrown.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to position.</param>
+            <returns>True if the move was successful.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.TryMovePrevious(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID)">
+            <summary>
+            Try to move to the previous record in the table. If there is not a previous record
+            this returns false, if a different error is encountered an exception is thrown.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to position.</param>
+            <returns>True if the move was successful.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.TrySeek(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.SeekGrbit)">
+            <summary>
+            Efficiently positions a cursor to an index entry that matches the search
+            criteria specified by the search key in that cursor and the specified
+            inequality. A search key must have been previously constructed using JetMakeKey.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to position.</param>
+            <param name="grbit">Seek option.</param>
+            <returns>True if a record matching the criteria was found.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.TrySetIndexRange(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.SetIndexRangeGrbit)">
+            <summary>
+            Temporarily limits the set of index entries that the cursor can walk using
+            JetMove to those starting from the current index entry and ending at the index
+            entry that matches the search criteria specified by the search key in that cursor
+            and the specified bound criteria. A search key must have been previously constructed
+            using JetMakeKey. Returns true if the index range is non-empty, false otherwise.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to position.</param>
+            <param name="grbit">Seek option.</param>
+            <returns>True if the seek was successful.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.ResetIndexRange(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID)">
+            <summary>
+            Removes an index range created with <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetSetIndexRange(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.SetIndexRangeGrbit)"/> or
+            <see cref="M:Microsoft.Isam.Esent.Interop.Api.TrySetIndexRange(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.SetIndexRangeGrbit)"/>. If no index range is present this
+            method does nothing.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to remove the index range on.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.IntersectIndexes(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID[])">
+            <summary>
+            Intersect a group of index ranges and return the bookmarks of the records which are found
+            in all the index ranges. 
+            Also see <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetIntersectIndexes(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_INDEXRANGE[],System.Int32,Microsoft.Isam.Esent.Interop.JET_RECORDLIST@,Microsoft.Isam.Esent.Interop.IntersectIndexesGrbit)"/>.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableids">
+            The tableids to use. Each tableid must be from a different index on the same table and
+            have an active index range. Use <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetSetIndexRange(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.SetIndexRangeGrbit)"/>
+            to create an index range.
+            </param>
+            <returns>
+            The bookmarks of the records which are found in all the index ranges. The bookmarks 
+            are returned in primary key order.
+            </returns>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.Api.memoryCache">
+            <summary>
+            Cached retrieve buffers.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.GetBookmark(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID)">
+            <summary>
+            Retrieves the bookmark for the record that is associated with the index entry
+            at the current position of a cursor. This bookmark can then be used to
+            reposition that cursor back to the same record using JetGotoBookmark. 
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to retrieve the bookmark from.</param>
+            <returns>The bookmark of the record.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.RetrieveKey(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.RetrieveKeyGrbit)">
+            <summary>
+            Retrieves the key for the index entry at the current position of a cursor.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to retrieve the key from.</param>
+            <param name="grbit">Retrieve key options.</param>
+            <returns>The retrieved key.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.RetrieveColumnSize(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID)">
+            <summary>
+            Retrieves the size of a single column value from the current record.
+            The record is that record associated with the index entry at the
+            current position of the cursor. Alternatively, this function can
+            retrieve a column from a record being created in the cursor copy
+            buffer. This function can also retrieve column data from an index
+            entry that references the current record.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to retrieve the column from.</param>
+            <param name="columnid">The columnid to retrieve.</param>
+            <returns>The size of the column. 0 if the column is null.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.RetrieveColumnSize(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID,System.Int32,Microsoft.Isam.Esent.Interop.RetrieveColumnGrbit)">
+            <summary>
+            Retrieves the size of a single column value from the current record.
+            The record is that record associated with the index entry at the
+            current position of the cursor. Alternatively, this function can
+            retrieve a column from a record being created in the cursor copy
+            buffer. This function can also retrieve column data from an index
+            entry that references the current record.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to retrieve the column from.</param>
+            <param name="columnid">The columnid to retrieve.</param>
+            <param name="itagSequence">
+            The sequence number of value in a multi-valued column.
+            The array of values is one-based. The first value is
+            sequence 1, not 0. If the record column has only one value then
+            1 should be passed as the itagSequence.
+            </param>
+            <param name="grbit">Retrieve column options.</param>
+            <returns>The size of the column. 0 if the column is null.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.RetrieveColumn(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID,Microsoft.Isam.Esent.Interop.RetrieveColumnGrbit,Microsoft.Isam.Esent.Interop.JET_RETINFO)">
+            <summary>
+            Retrieves a single column value from the current record. The record is that
+            record associated with the index entry at the current position of the cursor.
+            Alternatively, this function can retrieve a column from a record being created
+            in the cursor copy buffer. This function can also retrieve column data from an
+            index entry that references the current record. In addition to retrieving the
+            actual column value, JetRetrieveColumn can also be used to retrieve the size
+            of a column, before retrieving the column data itself so that application
+            buffers can be sized appropriately.  
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to retrieve the column from.</param>
+            <param name="columnid">The columnid to retrieve.</param>
+            <param name="grbit">Retrieve column options.</param>
+            <param name="retinfo">
+            If pretinfo is give as NULL then the function behaves as though an itagSequence
+            of 1 and an ibLongValue of 0 (zero) were given. This causes column retrieval to
+            retrieve the first value of a multi-valued column, and to retrieve long data at
+            offset 0 (zero).
+            </param>
+            <returns>The data retrieved from the column. Null if the column is null.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.RetrieveColumn(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID)">
+            <summary>
+            Retrieves a single column value from the current record. The record is that
+            record associated with the index entry at the current position of the cursor.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to retrieve the column from.</param>
+            <param name="columnid">The columnid to retrieve.</param>
+            <returns>The data retrieved from the column. Null if the column is null.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.RetrieveColumnAsString(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID)">
+            <summary>
+            Retrieves a single column value from the current record. The record is that
+            record associated with the index entry at the current position of the cursor.
+            The Unicode encoding is used.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to retrieve the column from.</param>
+            <param name="columnid">The columnid to retrieve.</param>
+            <returns>The data retrieved from the column as a string. Null if the column is null.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.RetrieveColumnAsString(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID,System.Text.Encoding)">
+            <summary>
+            Retrieves a string column value from the current record. The record is that
+            record associated with the index entry at the current position of the cursor.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to retrieve the column from.</param>
+            <param name="columnid">The columnid to retrieve.</param>
+            <param name="encoding">The string encoding to use when converting data.</param>
+            <returns>The data retrieved from the column as a string. Null if the column is null.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.RetrieveColumnAsString(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID,System.Text.Encoding,Microsoft.Isam.Esent.Interop.RetrieveColumnGrbit)">
+            <summary>
+            Retrieves a string column value from the current record. The record is that
+            record associated with the index entry at the current position of the cursor.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to retrieve the column from.</param>
+            <param name="columnid">The columnid to retrieve.</param>
+            <param name="encoding">The string encoding to use when converting data.</param>
+            <param name="grbit">Retrieval options.</param>
+            <returns>The data retrieved from the column as a string. Null if the column is null.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.RetrieveColumnAsInt16(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID)">
+            <summary>
+            Retrieves a single column value from the current record. The record is that
+            record associated with the index entry at the current position of the cursor.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to retrieve the column from.</param>
+            <param name="columnid">The columnid to retrieve.</param>
+            <returns>The data retrieved from the column as a short. Null if the column is null.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.RetrieveColumnAsInt16(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID,Microsoft.Isam.Esent.Interop.RetrieveColumnGrbit)">
+            <summary>
+            Retrieves an int16 column value from the current record. The record is that
+            record associated with the index entry at the current position of the cursor.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to retrieve the column from.</param>
+            <param name="columnid">The columnid to retrieve.</param>
+            <param name="grbit">Retrieval options.</param>
+            <returns>The data retrieved from the column as a short. Null if the column is null.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.RetrieveColumnAsInt32(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID)">
+            <summary>
+            Retrieves a single column value from the current record. The record is that
+            record associated with the index entry at the current position of the cursor.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to retrieve the column from.</param>
+            <param name="columnid">The columnid to retrieve.</param>
+            <returns>The data retrieved from the column as an int. Null if the column is null.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.RetrieveColumnAsInt32(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID,Microsoft.Isam.Esent.Interop.RetrieveColumnGrbit)">
+            <summary>
+            Retrieves an int32 column value from the current record. The record is that
+            record associated with the index entry at the current position of the cursor.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to retrieve the column from.</param>
+            <param name="columnid">The columnid to retrieve.</param>
+            <param name="grbit">Retrieval options.</param>
+            <returns>The data retrieved from the column as an int. Null if the column is null.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.RetrieveColumnAsInt64(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID)">
+            <summary>
+            Retrieves a single column value from the current record. The record is that
+            record associated with the index entry at the current position of the cursor.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to retrieve the column from.</param>
+            <param name="columnid">The columnid to retrieve.</param>
+            <returns>The data retrieved from the column as a long. Null if the column is null.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.RetrieveColumnAsInt64(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID,Microsoft.Isam.Esent.Interop.RetrieveColumnGrbit)">
+            <summary>
+            Retrieves a single column value from the current record. The record is that
+            record associated with the index entry at the current position of the cursor.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to retrieve the column from.</param>
+            <param name="columnid">The columnid to retrieve.</param>
+            <param name="grbit">Retrieval options.</param>
+            <returns>The data retrieved from the column as a long. Null if the column is null.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.RetrieveColumnAsFloat(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID)">
+            <summary>
+            Retrieves a float column value from the current record. The record is that
+            record associated with the index entry at the current position of the cursor.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to retrieve the column from.</param>
+            <param name="columnid">The columnid to retrieve.</param>
+            <returns>The data retrieved from the column as a float. Null if the column is null.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.RetrieveColumnAsFloat(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID,Microsoft.Isam.Esent.Interop.RetrieveColumnGrbit)">
+            <summary>
+            Retrieves a float column value from the current record. The record is that
+            record associated with the index entry at the current position of the cursor.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to retrieve the column from.</param>
+            <param name="columnid">The columnid to retrieve.</param>
+            <param name="grbit">Retrieval options.</param>
+            <returns>The data retrieved from the column as a float. Null if the column is null.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.RetrieveColumnAsDouble(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID)">
+            <summary>
+            Retrieves a double column value from the current record. The record is that
+            record associated with the index entry at the current position of the cursor.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to retrieve the column from.</param>
+            <param name="columnid">The columnid to retrieve.</param>
+            <returns>The data retrieved from the column as a double. Null if the column is null.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.RetrieveColumnAsDouble(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID,Microsoft.Isam.Esent.Interop.RetrieveColumnGrbit)">
+            <summary>
+            Retrieves a double column value from the current record. The record is that
+            record associated with the index entry at the current position of the cursor.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to retrieve the column from.</param>
+            <param name="columnid">The columnid to retrieve.</param>
+            <param name="grbit">Retrieval options.</param>
+            <returns>The data retrieved from the column as a double. Null if the column is null.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.RetrieveColumnAsBoolean(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID)">
+            <summary>
+            Retrieves a boolean column value from the current record. The record is that
+            record associated with the index entry at the current position of the cursor.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to retrieve the column from.</param>
+            <param name="columnid">The columnid to retrieve.</param>
+            <returns>The data retrieved from the column as a boolean. Null if the column is null.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.RetrieveColumnAsBoolean(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID,Microsoft.Isam.Esent.Interop.RetrieveColumnGrbit)">
+            <summary>
+            Retrieves a boolean column value from the current record. The record is that
+            record associated with the index entry at the current position of the cursor.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to retrieve the column from.</param>
+            <param name="columnid">The columnid to retrieve.</param>
+            <param name="grbit">Retrieval options.</param>
+            <returns>The data retrieved from the column as a boolean. Null if the column is null.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.RetrieveColumnAsByte(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID)">
+            <summary>
+            Retrieves a byte column value from the current record. The record is that
+            record associated with the index entry at the current position of the cursor.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to retrieve the column from.</param>
+            <param name="columnid">The columnid to retrieve.</param>
+            <returns>The data retrieved from the column as a byte. Null if the column is null.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.RetrieveColumnAsByte(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID,Microsoft.Isam.Esent.Interop.RetrieveColumnGrbit)">
+            <summary>
+            Retrieves a byte column value from the current record. The record is that
+            record associated with the index entry at the current position of the cursor.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to retrieve the column from.</param>
+            <param name="columnid">The columnid to retrieve.</param>
+            <param name="grbit">Retrieval options.</param>
+            <returns>The data retrieved from the column as a byte. Null if the column is null.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.RetrieveColumnAsGuid(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID)">
+            <summary>
+            Retrieves a guid column value from the current record. The record is that
+            record associated with the index entry at the current position of the cursor.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to retrieve the column from.</param>
+            <param name="columnid">The columnid to retrieve.</param>
+            <returns>The data retrieved from the column as a guid. Null if the column is null.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.RetrieveColumnAsGuid(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID,Microsoft.Isam.Esent.Interop.RetrieveColumnGrbit)">
+            <summary>
+            Retrieves a guid column value from the current record. The record is that
+            record associated with the index entry at the current position of the cursor.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to retrieve the column from.</param>
+            <param name="columnid">The columnid to retrieve.</param>
+            <param name="grbit">Retrieval options.</param>
+            <returns>The data retrieved from the column as a guid. Null if the column is null.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.RetrieveColumnAsDateTime(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID)">
+            <summary>
+            Retrieves a datetime column value from the current record. The record is that
+            record associated with the index entry at the current position of the cursor.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to retrieve the column from.</param>
+            <param name="columnid">The columnid to retrieve.</param>
+            <returns>The data retrieved from the column as a datetime. Null if the column is null.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.RetrieveColumnAsDateTime(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID,Microsoft.Isam.Esent.Interop.RetrieveColumnGrbit)">
+            <summary>
+            Retrieves a datetime column value from the current record. The record is that
+            record associated with the index entry at the current position of the cursor.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to retrieve the column from.</param>
+            <param name="columnid">The columnid to retrieve.</param>
+            <param name="grbit">Retrieval options.</param>
+            <returns>The data retrieved from the column as a datetime. Null if the column is null.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.RetrieveColumnAsUInt16(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID)">
+            <summary>
+            Retrieves a uint16 column value from the current record. The record is that
+            record associated with the index entry at the current position of the cursor.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to retrieve the column from.</param>
+            <param name="columnid">The columnid to retrieve.</param>
+            <returns>The data retrieved from the column as an UInt16. Null if the column is null.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.RetrieveColumnAsUInt16(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID,Microsoft.Isam.Esent.Interop.RetrieveColumnGrbit)">
+            <summary>
+            Retrieves a uint16 column value from the current record. The record is that
+            record associated with the index entry at the current position of the cursor.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to retrieve the column from.</param>
+            <param name="columnid">The columnid to retrieve.</param>
+            <param name="grbit">Retrieval options.</param>
+            <returns>The data retrieved from the column as an UInt16. Null if the column is null.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.RetrieveColumnAsUInt32(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID)">
+            <summary>
+            Retrieves a uint32 column value from the current record. The record is that
+            record associated with the index entry at the current position of the cursor.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to retrieve the column from.</param>
+            <param name="columnid">The columnid to retrieve.</param>
+            <returns>The data retrieved from the column as an UInt32. Null if the column is null.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.RetrieveColumnAsUInt32(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID,Microsoft.Isam.Esent.Interop.RetrieveColumnGrbit)">
+            <summary>
+            Retrieves a uint32 column value from the current record. The record is that
+            record associated with the index entry at the current position of the cursor.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to retrieve the column from.</param>
+            <param name="columnid">The columnid to retrieve.</param>
+            <param name="grbit">Retrieval options.</param>
+            <returns>The data retrieved from the column as an UInt32. Null if the column is null.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.RetrieveColumnAsUInt64(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID)">
+            <summary>
+            Retrieves a uint64 column value from the current record. The record is that
+            record associated with the index entry at the current position of the cursor.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to retrieve the column from.</param>
+            <param name="columnid">The columnid to retrieve.</param>
+            <returns>The data retrieved from the column as an UInt64. Null if the column is null.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.RetrieveColumnAsUInt64(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID,Microsoft.Isam.Esent.Interop.RetrieveColumnGrbit)">
+            <summary>
+            Retrieves a uint64 column value from the current record. The record is that
+            record associated with the index entry at the current position of the cursor.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to retrieve the column from.</param>
+            <param name="columnid">The columnid to retrieve.</param>
+            <param name="grbit">Retrieval options.</param>
+            <returns>The data retrieved from the column as an UInt64. Null if the column is null.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.CreateReturnValue``1(``0,System.Int32,Microsoft.Isam.Esent.Interop.JET_wrn,System.Int32)">
+            <summary>
+            Create the nullable return value.
+            </summary>
+            <typeparam name="T">The (struct) type to return.</typeparam>
+            <param name="data">The data retrieved from the column.</param>
+            <param name="dataSize">The size of the data.</param>
+            <param name="wrn">The warning code from esent.</param>
+            <param name="actualDataSize">The actual size of the data retireved fomr esent.</param>
+            <returns>A nullable struct of type T.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.CheckDataSize(System.Int32,System.Int32)">
+            <summary>
+            Make sure the retrieved data size is at least as long as the expected size.
+            An exception is thrown if the data isn't long enough.
+            </summary>
+            <param name="expectedDataSize">The expected data size.</param>
+            <param name="actualDataSize">The size of the retrieved data.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.GetColumnDictionary(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID)">
+            <summary>
+            Creates a dictionary which maps column names to their column IDs.
+            </summary>
+            <param name="sesid">The sesid to use.</param>
+            <param name="tableid">The table to retrieve the information for.</param>
+            <returns>A dictionary mapping column names to column IDs.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.GetTableColumns(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID)">
+            <summary>
+            Iterates over all the columns in the table, returning information about each one.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The table to retrieve column information for.</param>
+            <returns>An iterator over ColumnInfo for each column in the table.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.GetTableColumns(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_DBID,System.String)">
+            <summary>
+            Iterates over all the columns in the table, returning information about each one.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="dbid">The database containing the table.</param>
+            <param name="tablename">The name of the table.</param>
+            <returns>An iterator over ColumnInfo for each column in the table.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.GetTableIndexes(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID)">
+            <summary>
+            Iterates over all the indexes in the table, returning information about each one.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The table to retrieve index information for.</param>
+            <returns>An iterator over an IndexInfo for each index in the table.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.GetTableIndexes(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_DBID,System.String)">
+            <summary>
+            Iterates over all the indexs in the table, returning information about each one.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="dbid">The database containing the table.</param>
+            <param name="tablename">The name of the table.</param>
+            <returns>An iterator over an IndexInfo for each index in the table.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.GetTableNames(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_DBID)">
+            <summary>
+            Returns the names of the tables in the database.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="dbid">The database containing the table.</param>
+            <returns>An iterator over the names of the tables in the database.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.EnumerateIndexInfos(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_INDEXLIST)">
+            <summary>
+            Iterates over the information in the JET_INDEXLIST, returning information about each index.
+            The table in the indexlist is closed when finished.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="indexlist">The indexlist to iterate over.</param>
+            <returns>An iterator over IndexInfo for each index described in the JET_INDEXLIST.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.GetIndexInfoFromIndexlist(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_INDEXLIST)">
+            <summary>
+            Create an IndexInfo object from the data in the current JET_INDEXLIST entry.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="indexlist">The indexlist to take the data from.</param>
+            <returns>An IndexInfo object containing the information from that record.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.GetIndexSegmentsFromIndexlist(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_INDEXLIST)">
+            <summary>
+            Create an array of IndexSegment objects from the data in the current JET_INDEXLIST entry.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="indexlist">The indexlist to take the data from.</param>
+            <returns>An array of IndexSegment objects containing the information for the current index.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.EnumerateColumnInfos(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_COLUMNLIST)">
+            <summary>
+            Iterates over the information in the JET_COLUMNLIST, returning information about each column.
+            The table in the columnlist is closed when finished.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="columnlist">The columnlist to iterate over.</param>
+            <returns>An iterator over ColumnInfo for each column described in the JET_COLUMNLIST.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.GetColumnInfoFromColumnlist(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_COLUMNLIST)">
+            <summary>
+            Create a ColumnInfo object from the data in the current JET_COLUMNLIST
+            entry.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="columnlist">The columnlist to take the data from.</param>
+            <returns>A ColumnInfo object containing the information from that record.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetSetColumn(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID,System.Byte[],System.Int32,System.Int32,Microsoft.Isam.Esent.Interop.SetColumnGrbit,Microsoft.Isam.Esent.Interop.JET_SETINFO)">
+            <summary>
+            The JetSetColumn function modifies a single column value in a modified record to be inserted or to
+            update the current record. It can overwrite an existing value, add a new value to a sequence of
+            values in a multi-valued column, remove a value from a sequence of values in a multi-valued column,
+            or update all or part of a long value (a column of type <see cref="F:Microsoft.Isam.Esent.Interop.JET_coltyp.LongText"/>
+            or <see cref="F:Microsoft.Isam.Esent.Interop.JET_coltyp.LongBinary"/>). 
+            </summary>
+            <remarks>
+            This is an internal-only version of the API that takes a data buffer and an offset into the buffer.
+            </remarks>
+            <param name="sesid">The session which is performing the update.</param>
+            <param name="tableid">The cursor to update. An update should be prepared.</param>
+            <param name="columnid">The columnid to set.</param>
+            <param name="data">The data to set.</param>
+            <param name="dataSize">The size of data to set.</param>
+            <param name="dataOffset">The offset in the data buffer to set data from.</param>
+            <param name="grbit">SetColumn options.</param>
+            <param name="setinfo">Used to specify itag or long-value offset.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetRetrieveColumn(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID,System.Byte[],System.Int32,System.Int32,System.Int32@,Microsoft.Isam.Esent.Interop.RetrieveColumnGrbit,Microsoft.Isam.Esent.Interop.JET_RETINFO)">
+            <summary>
+            Retrieves a single column value from the current record. The record is that
+            record associated with the index entry at the current position of the cursor.
+            Alternatively, this function can retrieve a column from a record being created
+            in the cursor copy buffer. This function can also retrieve column data from an
+            index entry that references the current record. In addition to retrieving the
+            actual column value, JetRetrieveColumn can also be used to retrieve the size
+            of a column, before retrieving the column data itself so that application
+            buffers can be sized appropriately.  
+            </summary>
+            <remarks>
+            This is an internal method that takes a buffer offset as well as size.
+            </remarks>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to retrieve the column from.</param>
+            <param name="columnid">The columnid to retrieve.</param>
+            <param name="data">The data buffer to be retrieved into.</param>
+            <param name="dataSize">The size of the data buffer.</param>
+            <param name="dataOffset">Offset into the data buffer to read data into.</param>
+            <param name="actualDataSize">Returns the actual size of the data buffer.</param>
+            <param name="grbit">Retrieve column options.</param>
+            <param name="retinfo">
+            If pretinfo is give as NULL then the function behaves as though an itagSequence
+            of 1 and an ibLongValue of 0 (zero) were given. This causes column retrieval to
+            retrieve the first value of a multi-valued column, and to retrieve long data at
+            offset 0 (zero).
+            </param>
+            <returns>An ESENT warning code.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetRetrieveColumn(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID,System.IntPtr,System.Int32,System.Int32@,Microsoft.Isam.Esent.Interop.RetrieveColumnGrbit,Microsoft.Isam.Esent.Interop.JET_RETINFO)">
+            <summary>
+            Retrieves a single column value from the current record. The record is that
+            record associated with the index entry at the current position of the cursor.
+            Alternatively, this function can retrieve a column from a record being created
+            in the cursor copy buffer. This function can also retrieve column data from an
+            index entry that references the current record. In addition to retrieving the
+            actual column value, JetRetrieveColumn can also be used to retrieve the size
+            of a column, before retrieving the column data itself so that application
+            buffers can be sized appropriately.  
+            </summary>
+            <remarks>
+            This is an internal-use version that takes an IntPtr.
+            </remarks>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to retrieve the column from.</param>
+            <param name="columnid">The columnid to retrieve.</param>
+            <param name="data">The data buffer to be retrieved into.</param>
+            <param name="dataSize">The size of the data buffer.</param>
+            <param name="actualDataSize">Returns the actual size of the data buffer.</param>
+            <param name="grbit">Retrieve column options.</param>
+            <param name="retinfo">
+            If pretinfo is give as NULL then the function behaves as though an itagSequence
+            of 1 and an ibLongValue of 0 (zero) were given. This causes column retrieval to
+            retrieve the first value of a multi-valued column, and to retrieve long data at
+            offset 0 (zero).
+            </param>
+            <returns>An ESENT warning code.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetMakeKey(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,System.IntPtr,System.Int32,Microsoft.Isam.Esent.Interop.MakeKeyGrbit)">
+            <summary>
+            Constructs search keys that may then be used by JetSeek and JetSetIndexRange.
+            </summary>
+            <remarks>
+            This is an internal (unsafe) version that takes an IntPtr.
+            </remarks>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to create the key on.</param>
+            <param name="data">Column data for the current key column of the current index.</param>
+            <param name="dataSize">Size of the data.</param>
+            <param name="grbit">Key options.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetSetColumn(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID,System.IntPtr,System.Int32,Microsoft.Isam.Esent.Interop.SetColumnGrbit,Microsoft.Isam.Esent.Interop.JET_SETINFO)">
+            <summary>
+            The JetSetColumn function modifies a single column value in a modified record to be inserted or to
+            update the current record. It can overwrite an existing value, add a new value to a sequence of
+            values in a multi-valued column, remove a value from a sequence of values in a multi-valued column,
+            or update all or part of a long value, a column of type JET_coltyp.LongText or JET_coltyp.LongBinary. 
+            </summary>
+            <remarks>
+            This method takes an IntPtr and is intended for internal use only.
+            </remarks>
+            <param name="sesid">The session which is performing the update.</param>
+            <param name="tableid">The cursor to update. An update should be prepared.</param>
+            <param name="columnid">The columnid to set.</param>
+            <param name="data">The data to set.</param>
+            <param name="dataSize">The size of data to set.</param>
+            <param name="grbit">SetColumn options.</param>
+            <param name="setinfo">Used to specify itag or long-value offset.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.MakeKey(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,System.Byte[],Microsoft.Isam.Esent.Interop.MakeKeyGrbit)">
+            <summary>
+            Constructs a search key that may then be used by <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetSeek(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.SeekGrbit)"/>
+            and <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetSetIndexRange(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.SetIndexRangeGrbit)"/>.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to create the key on.</param>
+            <param name="data">Column data for the current key column of the current index.</param>
+            <param name="grbit">Key options.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.MakeKey(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,System.String,System.Text.Encoding,Microsoft.Isam.Esent.Interop.MakeKeyGrbit)">
+            <summary>
+            Constructs a search key that may then be used by <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetSeek(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.SeekGrbit)"/>
+            and <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetSetIndexRange(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.SetIndexRangeGrbit)"/>.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to create the key on.</param>
+            <param name="data">Column data for the current key column of the current index.</param>
+            <param name="encoding">The encoding used to convert the string.</param>
+            <param name="grbit">Key options.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.MakeKey(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,System.Boolean,Microsoft.Isam.Esent.Interop.MakeKeyGrbit)">
+            <summary>
+            Constructs a search key that may then be used by <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetSeek(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.SeekGrbit)"/>
+            and <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetSetIndexRange(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.SetIndexRangeGrbit)"/>.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to create the key on.</param>
+            <param name="data">Column data for the current key column of the current index.</param>
+            <param name="grbit">Key options.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.MakeKey(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,System.Byte,Microsoft.Isam.Esent.Interop.MakeKeyGrbit)">
+            <summary>
+            Constructs a search key that may then be used by <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetSeek(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.SeekGrbit)"/>
+            and <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetSetIndexRange(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.SetIndexRangeGrbit)"/>.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to create the key on.</param>
+            <param name="data">Column data for the current key column of the current index.</param>
+            <param name="grbit">Key options.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.MakeKey(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,System.Int16,Microsoft.Isam.Esent.Interop.MakeKeyGrbit)">
+            <summary>
+            Constructs a search key that may then be used by <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetSeek(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.SeekGrbit)"/>
+            and <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetSetIndexRange(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.SetIndexRangeGrbit)"/>.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to create the key on.</param>
+            <param name="data">Column data for the current key column of the current index.</param>
+            <param name="grbit">Key options.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.MakeKey(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,System.Int32,Microsoft.Isam.Esent.Interop.MakeKeyGrbit)">
+            <summary>
+            Constructs a search key that may then be used by <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetSeek(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.SeekGrbit)"/>
+            and <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetSetIndexRange(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.SetIndexRangeGrbit)"/>.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to create the key on.</param>
+            <param name="data">Column data for the current key column of the current index.</param>
+            <param name="grbit">Key options.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.MakeKey(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,System.Int64,Microsoft.Isam.Esent.Interop.MakeKeyGrbit)">
+            <summary>
+            Constructs a search key that may then be used by <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetSeek(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.SeekGrbit)"/>
+            and <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetSetIndexRange(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.SetIndexRangeGrbit)"/>.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to create the key on.</param>
+            <param name="data">Column data for the current key column of the current index.</param>
+            <param name="grbit">Key options.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.MakeKey(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,System.Guid,Microsoft.Isam.Esent.Interop.MakeKeyGrbit)">
+            <summary>
+            Constructs a search key that may then be used by <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetSeek(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.SeekGrbit)"/>
+            and <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetSetIndexRange(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.SetIndexRangeGrbit)"/>.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to create the key on.</param>
+            <param name="data">Column data for the current key column of the current index.</param>
+            <param name="grbit">Key options.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.MakeKey(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,System.DateTime,Microsoft.Isam.Esent.Interop.MakeKeyGrbit)">
+            <summary>
+            Constructs a search key that may then be used by <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetSeek(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.SeekGrbit)"/>
+            and <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetSetIndexRange(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.SetIndexRangeGrbit)"/>.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to create the key on.</param>
+            <param name="data">Column data for the current key column of the current index.</param>
+            <param name="grbit">Key options.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.MakeKey(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,System.Single,Microsoft.Isam.Esent.Interop.MakeKeyGrbit)">
+            <summary>
+            Constructs a search key that may then be used by <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetSeek(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.SeekGrbit)"/>
+            and <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetSetIndexRange(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.SetIndexRangeGrbit)"/>.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to create the key on.</param>
+            <param name="data">Column data for the current key column of the current index.</param>
+            <param name="grbit">Key options.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.MakeKey(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,System.Double,Microsoft.Isam.Esent.Interop.MakeKeyGrbit)">
+            <summary>
+            Constructs a search key that may then be used by <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetSeek(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.SeekGrbit)"/>
+            and <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetSetIndexRange(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.SetIndexRangeGrbit)"/>.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to create the key on.</param>
+            <param name="data">Column data for the current key column of the current index.</param>
+            <param name="grbit">Key options.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.MakeKey(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,System.UInt16,Microsoft.Isam.Esent.Interop.MakeKeyGrbit)">
+            <summary>
+            Constructs a search key that may then be used by <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetSeek(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.SeekGrbit)"/>
+            and <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetSetIndexRange(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.SetIndexRangeGrbit)"/>.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to create the key on.</param>
+            <param name="data">Column data for the current key column of the current index.</param>
+            <param name="grbit">Key options.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.MakeKey(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,System.UInt32,Microsoft.Isam.Esent.Interop.MakeKeyGrbit)">
+            <summary>
+            Constructs a search key that may then be used by <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetSeek(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.SeekGrbit)"/>
+            and <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetSetIndexRange(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.SetIndexRangeGrbit)"/>.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to create the key on.</param>
+            <param name="data">Column data for the current key column of the current index.</param>
+            <param name="grbit">Key options.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.MakeKey(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,System.UInt64,Microsoft.Isam.Esent.Interop.MakeKeyGrbit)">
+            <summary>
+            Constructs a search key that may then be used by <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetSeek(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.SeekGrbit)"/>
+            and <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetSetIndexRange(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.SetIndexRangeGrbit)"/>.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to create the key on.</param>
+            <param name="data">Column data for the current key column of the current index.</param>
+            <param name="grbit">Key options.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.SetColumn(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID,System.String,System.Text.Encoding)">
+            <summary>
+            Modifies a single column value in a modified record to be inserted or to
+            update the current record.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to update. An update should be prepared.</param>
+            <param name="columnid">The columnid to set.</param>
+            <param name="data">The data to set.</param>
+            <param name="encoding">The encoding used to convert the string.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.SetColumn(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID,System.String,System.Text.Encoding,Microsoft.Isam.Esent.Interop.SetColumnGrbit)">
+            <summary>
+            Modifies a single column value in a modified record to be inserted or to
+            update the current record.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to update. An update should be prepared.</param>
+            <param name="columnid">The columnid to set.</param>
+            <param name="data">The data to set.</param>
+            <param name="encoding">The encoding used to convert the string.</param>
+            <param name="grbit">SetColumn options.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.SetColumn(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID,System.Byte[])">
+            <summary>
+            Modifies a single column value in a modified record to be inserted or to
+            update the current record.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to update. An update should be prepared.</param>
+            <param name="columnid">The columnid to set.</param>
+            <param name="data">The data to set.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.SetColumn(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID,System.Boolean)">
+            <summary>
+            Modifies a single column value in a modified record to be inserted or to
+            update the current record.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to update. An update should be prepared.</param>
+            <param name="columnid">The columnid to set.</param>
+            <param name="data">The data to set.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.SetColumn(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID,System.Byte)">
+            <summary>
+            Modifies a single column value in a modified record to be inserted or to
+            update the current record.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to update. An update should be prepared.</param>
+            <param name="columnid">The columnid to set.</param>
+            <param name="data">The data to set.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.SetColumn(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID,System.Int16)">
+            <summary>
+            Modifies a single column value in a modified record to be inserted or to
+            update the current record.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to update. An update should be prepared.</param>
+            <param name="columnid">The columnid to set.</param>
+            <param name="data">The data to set.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.SetColumn(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID,System.Int32)">
+            <summary>
+            Modifies a single column value in a modified record to be inserted or to
+            update the current record.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to update. An update should be prepared.</param>
+            <param name="columnid">The columnid to set.</param>
+            <param name="data">The data to set.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.SetColumn(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID,System.Int64)">
+            <summary>
+            Modifies a single column value in a modified record to be inserted or to
+            update the current record.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to update. An update should be prepared.</param>
+            <param name="columnid">The columnid to set.</param>
+            <param name="data">The data to set.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.SetColumn(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID,System.Guid)">
+            <summary>
+            Modifies a single column value in a modified record to be inserted or to
+            update the current record.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to update. An update should be prepared.</param>
+            <param name="columnid">The columnid to set.</param>
+            <param name="data">The data to set.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.SetColumn(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID,System.DateTime)">
+            <summary>
+            Modifies a single column value in a modified record to be inserted or to
+            update the current record.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to update. An update should be prepared.</param>
+            <param name="columnid">The columnid to set.</param>
+            <param name="data">The data to set.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.SetColumn(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID,System.Single)">
+            <summary>
+            Modifies a single column value in a modified record to be inserted or to
+            update the current record.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to update. An update should be prepared.</param>
+            <param name="columnid">The columnid to set.</param>
+            <param name="data">The data to set.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.SetColumn(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID,System.Double)">
+            <summary>
+            Modifies a single column value in a modified record to be inserted or to
+            update the current record.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to update. An update should be prepared.</param>
+            <param name="columnid">The columnid to set.</param>
+            <param name="data">The data to set.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.EscrowUpdate(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID,System.Int32)">
+            <summary>
+            Perform atomic addition on one column. The column must be of type
+            <see cref="F:Microsoft.Isam.Esent.Interop.JET_coltyp.Long"/>. This function allows multiple sessions to update the
+            same record concurrently without conflicts.
+            </summary>
+            <remarks>
+            This method wraps <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetEscrowUpdate(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID,System.Byte[],System.Int32,System.Byte[],System.Int32,System.Int32@,Microsoft.Isam.Esent.Interop.EscrowUpdateGrbit)"/>.
+            </remarks>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to update.</param>
+            <param name="columnid">The column to update. This must be an escrow-updatable column.</param>
+            <param name="delta">The delta to apply to the column.</param>
+            <returns>The current value of the column as stored in the database (versioning is ignored).</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.SetColumn(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID,System.UInt16)">
+            <summary>
+            Modifies a single column value in a modified record to be inserted or to
+            update the current record.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to update. An update should be prepared.</param>
+            <param name="columnid">The columnid to set.</param>
+            <param name="data">The data to set.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.SetColumn(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID,System.UInt32)">
+            <summary>
+            Modifies a single column value in a modified record to be inserted or to
+            update the current record.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to update. An update should be prepared.</param>
+            <param name="columnid">The columnid to set.</param>
+            <param name="data">The data to set.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.SetColumn(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID,System.UInt64)">
+            <summary>
+            Modifies a single column value in a modified record to be inserted or to
+            update the current record.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to update. An update should be prepared.</param>
+            <param name="columnid">The columnid to set.</param>
+            <param name="data">The data to set.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.SetColumns(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.ColumnValue[])">
+            <summary>
+            Sets columns.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to update. An update should be prepared.</param>
+            <param name="values">The values to set.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.CheckEncodingIsValid(System.Text.Encoding)">
+            <summary>
+            Verifies that the given encoding is valid for setting/retrieving data. Only
+            the ASCII and Unicode encodings are allowed. An <see cref="T:System.ArgumentOutOfRangeException"/>
+            is thrown if the encoding isn't valid.
+            </summary>
+            <param name="encoding">The encoding to check.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.#cctor">
+            <summary>
+            Initializes static members of the Api class.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetCreateInstance(Microsoft.Isam.Esent.Interop.JET_INSTANCE@,System.String)">
+            <summary>
+            Allocates a new instance of the database engine.
+            </summary>
+            <param name="instance">Returns the new instance.</param>
+            <param name="name">The name of the instance. Names must be unique.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetCreateInstance2(Microsoft.Isam.Esent.Interop.JET_INSTANCE@,System.String,System.String,Microsoft.Isam.Esent.Interop.CreateInstanceGrbit)">
+            <summary>
+            Allocate a new instance of the database engine for use in a single
+            process, with a display name specified.
+            </summary>
+            <param name="instance">Returns the newly create instance.</param>
+            <param name="name">
+            Specifies a unique string identifier for the instance to be created.
+            This string must be unique within a given process hosting the
+            database engine.
+            </param>
+            <param name="displayName">
+            A display name for the instance to be created. This will be used
+            in eventlog entries.
+            </param>
+            <param name="grbit">Creation options.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetInit(Microsoft.Isam.Esent.Interop.JET_INSTANCE@)">
+            <summary>
+            Initialize the ESENT database engine.
+            </summary>
+            <param name="instance">
+            The instance to initialize. If an instance hasn't been
+            allocated then a new one is created and the engine
+            will operate in single-instance mode.
+            </param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetInit2(Microsoft.Isam.Esent.Interop.JET_INSTANCE@,Microsoft.Isam.Esent.Interop.InitGrbit)">
+            <summary>
+            Initialize the ESENT database engine.
+            </summary>
+            <param name="instance">
+            The instance to initialize. If an instance hasn't been
+            allocated then a new one is created and the engine
+            will operate in single-instance mode.
+            </param>
+            <param name="grbit">
+            Initialization options.
+            </param>
+            <returns>
+            A warning code.
+            </returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetTerm(Microsoft.Isam.Esent.Interop.JET_INSTANCE)">
+            <summary>
+            Terminate an instance that was created with <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetInit(Microsoft.Isam.Esent.Interop.JET_INSTANCE@)"/> or
+            <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetCreateInstance(Microsoft.Isam.Esent.Interop.JET_INSTANCE@,System.String)"/>.
+            </summary>
+            <param name="instance">The instance to terminate.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetTerm2(Microsoft.Isam.Esent.Interop.JET_INSTANCE,Microsoft.Isam.Esent.Interop.TermGrbit)">
+            <summary>
+            Terminate an instance that was created with <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetInit(Microsoft.Isam.Esent.Interop.JET_INSTANCE@)"/> or
+            <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetCreateInstance(Microsoft.Isam.Esent.Interop.JET_INSTANCE@,System.String)"/>.
+            </summary>
+            <param name="instance">The instance to terminate.</param>
+            <param name="grbit">Termination options.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetSetSystemParameter(Microsoft.Isam.Esent.Interop.JET_INSTANCE,Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_param,System.Int32,System.String)">
+            <summary>
+            Sets database configuration options.
+            </summary>
+            <param name="instance">
+            The instance to set the option on or <see cref="P:Microsoft.Isam.Esent.Interop.JET_INSTANCE.Nil"/>
+            to set the option on all instances.
+            </param>
+            <param name="sesid">The session to use.</param>
+            <param name="paramid">The parameter to set.</param>
+            <param name="paramValue">The value of the parameter to set, if the parameter is an integer type.</param>
+            <param name="paramString">The value of the parameter to set, if the parameter is a string type.</param>
+            <returns>An ESENT warning code.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetGetSystemParameter(Microsoft.Isam.Esent.Interop.JET_INSTANCE,Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_param,System.Int32@,System.String@,System.Int32)">
+            <summary>
+            Gets database configuration options.
+            </summary>
+            <param name="instance">The instance to retrieve the options from.</param>
+            <param name="sesid">The session to use.</param>
+            <param name="paramid">The parameter to get.</param>
+            <param name="paramValue">Returns the value of the parameter, if the value is an integer.</param>
+            <param name="paramString">Returns the value of the parameter, if the value is a string.</param>
+            <param name="maxParam">The maximum size of the parameter string.</param>
+            <returns>An ESENT warning code.</returns>
+            <remarks>
+            <see cref="F:Microsoft.Isam.Esent.Interop.JET_param.ErrorToString"/> passes in the error number in the paramValue, which is why it is
+            a ref parameter and not an out parameter.
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetGetVersion(Microsoft.Isam.Esent.Interop.JET_SESID,System.UInt32@)">
+            <summary>
+            Retrieves the version of the database engine.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="version">Returns the version number of the database engine.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetCreateDatabase(Microsoft.Isam.Esent.Interop.JET_SESID,System.String,System.String,Microsoft.Isam.Esent.Interop.JET_DBID@,Microsoft.Isam.Esent.Interop.CreateDatabaseGrbit)">
+            <summary>
+            Creates and attaches a database file.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="database">The path to the database file to create.</param>
+            <param name="connect">The parameter is not used.</param>
+            <param name="dbid">Returns the dbid of the new database.</param>
+            <param name="grbit">Database creation options.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetAttachDatabase(Microsoft.Isam.Esent.Interop.JET_SESID,System.String,Microsoft.Isam.Esent.Interop.AttachDatabaseGrbit)">
+            <summary>
+            Attaches a database file for use with a database instance. In order to use the
+            database, it will need to be subsequently opened with <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetOpenDatabase(Microsoft.Isam.Esent.Interop.JET_SESID,System.String,System.String,Microsoft.Isam.Esent.Interop.JET_DBID@,Microsoft.Isam.Esent.Interop.OpenDatabaseGrbit)"/>.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="database">The database to attach.</param>
+            <param name="grbit">Attach options.</param>
+            <returns>An ESENT warning code.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetOpenDatabase(Microsoft.Isam.Esent.Interop.JET_SESID,System.String,System.String,Microsoft.Isam.Esent.Interop.JET_DBID@,Microsoft.Isam.Esent.Interop.OpenDatabaseGrbit)">
+            <summary>
+            Opens a database previously attached with <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetAttachDatabase(Microsoft.Isam.Esent.Interop.JET_SESID,System.String,Microsoft.Isam.Esent.Interop.AttachDatabaseGrbit)"/>,
+            for use with a database session. This function can be called multiple times
+            for the same database.
+            </summary>
+            <param name="sesid">The session that is opening the database.</param>
+            <param name="database">The database to open.</param>
+            <param name="connect">Reserved for future use.</param>
+            <param name="dbid">Returns the dbid of the attached database.</param>
+            <param name="grbit">Open database options.</param>
+            <returns>An ESENT warning code.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetCloseDatabase(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_DBID,Microsoft.Isam.Esent.Interop.CloseDatabaseGrbit)">
+            <summary>
+            Closes a database file that was previously opened with <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetOpenDatabase(Microsoft.Isam.Esent.Interop.JET_SESID,System.String,System.String,Microsoft.Isam.Esent.Interop.JET_DBID@,Microsoft.Isam.Esent.Interop.OpenDatabaseGrbit)"/> or
+            created with <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetCreateDatabase(Microsoft.Isam.Esent.Interop.JET_SESID,System.String,System.String,Microsoft.Isam.Esent.Interop.JET_DBID@,Microsoft.Isam.Esent.Interop.CreateDatabaseGrbit)"/>.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="dbid">The database to close.</param>
+            <param name="grbit">Close options.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetDetachDatabase(Microsoft.Isam.Esent.Interop.JET_SESID,System.String)">
+            <summary>
+            Releases a database file that was previously attached to a database session.
+            </summary>
+            <param name="sesid">The database session to use.</param>
+            <param name="database">The database to detach.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetBeginSession(Microsoft.Isam.Esent.Interop.JET_INSTANCE,Microsoft.Isam.Esent.Interop.JET_SESID@,System.String,System.String)">
+            <summary>
+            Initialize a new ESENT session.
+            </summary>
+            <param name="instance">The initialized instance to create the session in.</param>
+            <param name="sesid">Returns the created session.</param>
+            <param name="username">The parameter is not used.</param>
+            <param name="password">The parameter is not used.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetSetSessionContext(Microsoft.Isam.Esent.Interop.JET_SESID,System.IntPtr)">
+            <summary>
+            Associates a session with the current thread using the given context
+            handle. This association overrides the default engine requirement
+            that a transaction for a given session must occur entirely on the
+            same thread. Use <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetResetSessionContext(Microsoft.Isam.Esent.Interop.JET_SESID)"/> to remove the
+            association.
+            </summary>
+            <param name="sesid">The session to set the context on.</param>
+            <param name="context">The context to set.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetResetSessionContext(Microsoft.Isam.Esent.Interop.JET_SESID)">
+            <summary>
+            Disassociates a session from the current thread. This should be
+            used in conjunction with <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetSetSessionContext(Microsoft.Isam.Esent.Interop.JET_SESID,System.IntPtr)"/>.
+            </summary>
+            <param name="sesid">The session to use.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetEndSession(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.EndSessionGrbit)">
+            <summary>
+            Ends a session.
+            </summary>
+            <param name="sesid">The session to end.</param>
+            <param name="grbit">The parameter is not used.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetDupSession(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_SESID@)">
+            <summary>
+            Initialize a new ESE session in the same instance as the given sesid.
+            </summary>
+            <param name="sesid">The session to duplicate.</param>
+            <param name="newSesid">Returns the new session.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetOpenTable(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_DBID,System.String,System.Byte[],System.Int32,Microsoft.Isam.Esent.Interop.OpenTableGrbit,Microsoft.Isam.Esent.Interop.JET_TABLEID@)">
+            <summary>
+            Opens a cursor on a previously created table.
+            </summary>
+            <param name="sesid">The database session to use.</param>
+            <param name="dbid">The database to open the table in.</param>
+            <param name="tablename">The name of the table to open.</param>
+            <param name="parameters">The parameter is not used.</param>
+            <param name="parametersSize">The parameter is not used.</param>
+            <param name="grbit">Table open options.</param>
+            <param name="tableid">Returns the opened table.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetCloseTable(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID)">
+            <summary>
+            Close an open table.
+            </summary>
+            <param name="sesid">The session which opened the table.</param>
+            <param name="tableid">The table to close.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetDupCursor(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_TABLEID@,Microsoft.Isam.Esent.Interop.DupCursorGrbit)">
+            <summary>
+            Duplicates an open cursor and returns a handle to the duplicated cursor.
+            If the cursor that was duplicated was a read-only cursor then the
+            duplicated cursor is also a read-only cursor.
+            Any state related to constructing a search key or updating a record is
+            not copied into the duplicated cursor. In addition, the location of the
+            original cursor is not duplicated into the duplicated cursor. The
+            duplicated cursor is always opened on the clustered index and its
+            location is always on the first row of the table.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to duplicate.</param>
+            <param name="newTableid">The duplicated cursor.</param>
+            <param name="grbit">Reserved for future use.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetBeginTransaction(Microsoft.Isam.Esent.Interop.JET_SESID)">
+            <summary>
+            Causes a session to enter a transaction or create a new save point in an existing
+            transaction.
+            </summary>
+            <param name="sesid">The session to begin the transaction for.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetCommitTransaction(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.CommitTransactionGrbit)">
+            <summary>
+            Commits the changes made to the state of the database during the current save point
+            and migrates them to the previous save point. If the outermost save point is committed
+            then the changes made during that save point will be committed to the state of the
+            database and the session will exit the transaction.
+            </summary>
+            <param name="sesid">The session to commit the transaction for.</param>
+            <param name="grbit">Commit options.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetRollback(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.RollbackTransactionGrbit)">
+            <summary>
+            Undoes the changes made to the state of the database
+            and returns to the last save point. JetRollback will also close any cursors
+            opened during the save point. If the outermost save point is undone, the
+            session will exit the transaction.
+            </summary>
+            <param name="sesid">The session to rollback the transaction for.</param>
+            <param name="grbit">Rollback options.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetCreateTable(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_DBID,System.String,System.Int32,System.Int32,Microsoft.Isam.Esent.Interop.JET_TABLEID@)">
+            <summary>
+            Create an empty table. The newly created table is opened exclusively.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="dbid">The database to create the table in.</param>
+            <param name="table">The name of the table to create.</param>
+            <param name="pages">Initial number of pages in the table.</param>
+            <param name="density">
+            The default density of the table. This is used when doing sequential inserts.
+            </param>
+            <param name="tableid">Returns the tableid of the new table.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetAddColumn(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,System.String,Microsoft.Isam.Esent.Interop.JET_COLUMNDEF,System.Byte[],System.Int32,Microsoft.Isam.Esent.Interop.JET_COLUMNID@)">
+            <summary>
+            Add a new column to an existing table.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The table to add the column to.</param>
+            <param name="column">The name of the column.</param>
+            <param name="columndef">The definition of the column.</param>
+            <param name="defaultValue">The default value of the column.</param>
+            <param name="defaultValueSize">The size of the default value.</param>
+            <param name="columnid">Returns the columnid of the new column.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetDeleteColumn(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,System.String)">
+            <summary>
+            Deletes a column from a database table.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">A cursor on the table to delete the column from.</param>
+            <param name="column">The name of the column to be deleted.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetDeleteIndex(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,System.String)">
+            <summary>
+            Deletes an index from a database table.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">A cursor on the table to delete the index from.</param>
+            <param name="index">The name of the index to be deleted.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetDeleteTable(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_DBID,System.String)">
+            <summary>
+            Deletes a table from a database.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="dbid">The database to delete the table from.</param>
+            <param name="table">The name of the table to delete.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetCreateIndex(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,System.String,Microsoft.Isam.Esent.Interop.CreateIndexGrbit,System.String,System.Int32,System.Int32)">
+            <summary>
+            Creates an index over data in an ESE database. An index can be used to locate
+            specific data quickly.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The table to create the index on.</param>
+            <param name="indexName">
+            Pointer to a null-terminated string that specifies the name of the index to create. 
+            </param>
+            <param name="grbit">Index creation options.</param>
+            <param name="keyDescription">
+            Pointer to a double null-terminated string of null-delimited tokens.
+            </param>
+            <param name="keyDescriptionLength">
+            The length, in characters, of szKey including the two terminating nulls.
+            </param>
+            <param name="density">Initial B+ tree density.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetCreateIndex2(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_INDEXCREATE[],System.Int32)">
+            <summary>
+            Creates indexes over data in an ESE database.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The table to create the index on.</param>
+            <param name="indexcreates">Array of objects describing the indexes to be created.</param>
+            <param name="numIndexCreates">Number of index description objects.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetOpenTempTable(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_COLUMNDEF[],System.Int32,Microsoft.Isam.Esent.Interop.TempTableGrbit,Microsoft.Isam.Esent.Interop.JET_TABLEID@,Microsoft.Isam.Esent.Interop.JET_COLUMNID[])">
+            <summary>
+            Creates a temporary table with a single index. A temporary table
+            stores and retrieves records just like an ordinary table created
+            using JetCreateTableColumnIndex. However, temporary tables are
+            much faster than ordinary tables due to their volatile nature.
+            They can also be used to very quickly sort and perform duplicate
+            removal on record sets when accessed in a purely sequential manner.
+            Also see
+            <seealso cref="M:Microsoft.Isam.Esent.Interop.Api.JetOpenTempTable2(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_COLUMNDEF[],System.Int32,System.Int32,Microsoft.Isam.Esent.Interop.TempTableGrbit,Microsoft.Isam.Esent.Interop.JET_TABLEID@,Microsoft.Isam.Esent.Interop.JET_COLUMNID[])"/>,
+            <seealso cref="M:Microsoft.Isam.Esent.Interop.Api.JetOpenTempTable3(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_COLUMNDEF[],System.Int32,Microsoft.Isam.Esent.Interop.JET_UNICODEINDEX,Microsoft.Isam.Esent.Interop.TempTableGrbit,Microsoft.Isam.Esent.Interop.JET_TABLEID@,Microsoft.Isam.Esent.Interop.JET_COLUMNID[])"/>.
+            <seealso cref="M:Microsoft.Isam.Esent.Interop.Vista.VistaApi.JetOpenTemporaryTable(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.Vista.JET_OPENTEMPORARYTABLE)"/>.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="columns">
+            Column definitions for the columns created in the temporary table.
+            </param>
+            <param name="numColumns">Number of column definitions.</param>
+            <param name="grbit">Table creation options.</param>
+            <param name="tableid">
+            Returns the tableid of the temporary table. Closing this tableid
+            with <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetCloseTable(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID)"/> frees the resources associated
+            with the temporary table.
+            </param>
+            <param name="columnids">
+            The output buffer that receives the array of column IDs generated
+            during the creation of the temporary table. The column IDs in this
+            array will exactly correspond to the input array of column definitions.
+            As a result, the size of this buffer must correspond to the size of
+            the input array.
+            </param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetOpenTempTable2(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_COLUMNDEF[],System.Int32,System.Int32,Microsoft.Isam.Esent.Interop.TempTableGrbit,Microsoft.Isam.Esent.Interop.JET_TABLEID@,Microsoft.Isam.Esent.Interop.JET_COLUMNID[])">
+            <summary>
+            Creates a temporary table with a single index. A temporary table
+            stores and retrieves records just like an ordinary table created
+            using JetCreateTableColumnIndex. However, temporary tables are
+            much faster than ordinary tables due to their volatile nature.
+            They can also be used to very quickly sort and perform duplicate
+            removal on record sets when accessed in a purely sequential manner.
+            Also see
+            <seealso cref="M:Microsoft.Isam.Esent.Interop.Api.JetOpenTempTable(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_COLUMNDEF[],System.Int32,Microsoft.Isam.Esent.Interop.TempTableGrbit,Microsoft.Isam.Esent.Interop.JET_TABLEID@,Microsoft.Isam.Esent.Interop.JET_COLUMNID[])"/>,
+            <seealso cref="M:Microsoft.Isam.Esent.Interop.Api.JetOpenTempTable3(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_COLUMNDEF[],System.Int32,Microsoft.Isam.Esent.Interop.JET_UNICODEINDEX,Microsoft.Isam.Esent.Interop.TempTableGrbit,Microsoft.Isam.Esent.Interop.JET_TABLEID@,Microsoft.Isam.Esent.Interop.JET_COLUMNID[])"/>.
+            <seealso cref="M:Microsoft.Isam.Esent.Interop.Vista.VistaApi.JetOpenTemporaryTable(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.Vista.JET_OPENTEMPORARYTABLE)"/>.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="columns">
+            Column definitions for the columns created in the temporary table.
+            </param>
+            <param name="numColumns">Number of column definitions.</param>
+            <param name="lcid">
+            The locale ID to use to compare any Unicode key column data in the temporary table.
+            Any locale may be used as long as the appropriate language pack has been installed
+            on the machine. 
+            </param>
+            <param name="grbit">Table creation options.</param>
+            <param name="tableid">
+            Returns the tableid of the temporary table. Closing this tableid
+            with <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetCloseTable(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID)"/> frees the resources associated
+            with the temporary table.
+            </param>
+            <param name="columnids">
+            The output buffer that receives the array of column IDs generated
+            during the creation of the temporary table. The column IDs in this
+            array will exactly correspond to the input array of column definitions.
+            As a result, the size of this buffer must correspond to the size of
+            the input array.
+            </param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetOpenTempTable3(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_COLUMNDEF[],System.Int32,Microsoft.Isam.Esent.Interop.JET_UNICODEINDEX,Microsoft.Isam.Esent.Interop.TempTableGrbit,Microsoft.Isam.Esent.Interop.JET_TABLEID@,Microsoft.Isam.Esent.Interop.JET_COLUMNID[])">
+            <summary>
+            Creates a temporary table with a single index. A temporary table
+            stores and retrieves records just like an ordinary table created
+            using JetCreateTableColumnIndex. However, temporary tables are
+            much faster than ordinary tables due to their volatile nature.
+            They can also be used to very quickly sort and perform duplicate
+            removal on record sets when accessed in a purely sequential manner.
+            Also see
+            <seealso cref="M:Microsoft.Isam.Esent.Interop.Api.JetOpenTempTable(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_COLUMNDEF[],System.Int32,Microsoft.Isam.Esent.Interop.TempTableGrbit,Microsoft.Isam.Esent.Interop.JET_TABLEID@,Microsoft.Isam.Esent.Interop.JET_COLUMNID[])"/>,
+            <seealso cref="M:Microsoft.Isam.Esent.Interop.Api.JetOpenTempTable2(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_COLUMNDEF[],System.Int32,System.Int32,Microsoft.Isam.Esent.Interop.TempTableGrbit,Microsoft.Isam.Esent.Interop.JET_TABLEID@,Microsoft.Isam.Esent.Interop.JET_COLUMNID[])"/>,
+            <seealso cref="M:Microsoft.Isam.Esent.Interop.Vista.VistaApi.JetOpenTemporaryTable(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.Vista.JET_OPENTEMPORARYTABLE)"/>.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="columns">
+            Column definitions for the columns created in the temporary table.
+            </param>
+            <param name="numColumns">Number of column definitions.</param>
+            <param name="unicodeindex">
+            The Locale ID and normalization flags that will be used to compare
+            any Unicode key column data in the temporary table. When this 
+            is not present then the default options are used. 
+            </param>
+            <param name="grbit">Table creation options.</param>
+            <param name="tableid">
+            Returns the tableid of the temporary table. Closing this tableid
+            with <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetCloseTable(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID)"/> frees the resources associated
+            with the temporary table.
+            </param>
+            <param name="columnids">
+            The output buffer that receives the array of column IDs generated
+            during the creation of the temporary table. The column IDs in this
+            array will exactly correspond to the input array of column definitions.
+            As a result, the size of this buffer must correspond to the size of
+            the input array.
+            </param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetGetTableColumnInfo(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,System.String,Microsoft.Isam.Esent.Interop.JET_COLUMNDEF@)">
+            <summary>
+            Retrieves information about a table column.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The table containing the column.</param>
+            <param name="columnName">The name of the column.</param>
+            <param name="columndef">Filled in with information about the column.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetGetTableColumnInfo(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID,Microsoft.Isam.Esent.Interop.JET_COLUMNDEF@)">
+            <summary>
+            Retrieves information about a table column.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The table containing the column.</param>
+            <param name="columnid">The columnid of the column.</param>
+            <param name="columndef">Filled in with information about the column.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetGetTableColumnInfo(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,System.String,Microsoft.Isam.Esent.Interop.JET_COLUMNLIST@)">
+            <summary>
+            Retrieves information about all columns in the table.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The table containing the column.</param>
+            <param name="columnName">The parameter is ignored.</param>
+            <param name="columnlist">Filled in with information about the columns in the table.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetGetColumnInfo(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_DBID,System.String,System.String,Microsoft.Isam.Esent.Interop.JET_COLUMNDEF@)">
+            <summary>
+            Retrieves information about a table column.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="dbid">The database that contains the table.</param>
+            <param name="tablename">The name of the table containing the column.</param>
+            <param name="columnName">The name of the column.</param>
+            <param name="columndef">Filled in with information about the column.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetGetColumnInfo(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_DBID,System.String,System.String,Microsoft.Isam.Esent.Interop.JET_COLUMNLIST@)">
+            <summary>
+            Retrieves information about all columns in a table.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="dbid">The database that contains the table.</param>
+            <param name="tablename">The name of the table containing the column.</param>
+            <param name="columnName">This parameter is ignored.</param>
+            <param name="columnlist">Filled in with information about the columns in the table.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetGetObjectInfo(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_DBID,Microsoft.Isam.Esent.Interop.JET_OBJECTLIST@)">
+            <summary>
+            Retrieves information about database objects.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="dbid">The database to use.</param>
+            <param name="objectlist">Filled in with information about the objects in the database.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetGetCurrentIndex(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,System.String@,System.Int32)">
+            <summary>
+            Ddetermines the name of the current
+            index of a given cursor. This name is also used to later re-select
+            that index as the current index using <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetSetCurrentIndex(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,System.String)"/>.
+            It can also be used to discover the properties of that index using
+            <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetGetTableIndexInfo(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,System.String,Microsoft.Isam.Esent.Interop.JET_INDEXLIST@)"/>.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to get the index name for.</param>
+            <param name="indexName">Returns the name of the index.</param>
+            <param name="maxNameLength">
+            The maximum length of the index name. Index names are no more than 
+            <see cref="F:Microsoft.Isam.Esent.Interop.SystemParameters.NameMost"/> characters.
+            </param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetGetIndexInfo(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_DBID,System.String,System.String,Microsoft.Isam.Esent.Interop.JET_INDEXLIST@)">
+            <summary>
+            Retrieves information about indexes on a table.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="dbid">The database to use.</param>
+            <param name="tablename">The name of the table to retrieve index information about.</param>
+            <param name="ignored">This parameter is ignored.</param>
+            <param name="indexlist">Filled in with information about indexes on the table.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetGetTableIndexInfo(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,System.String,Microsoft.Isam.Esent.Interop.JET_INDEXLIST@)">
+            <summary>
+            Retrieves information about indexes on a table.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The table to retrieve index information about.</param>
+            <param name="ignored">This parameter is ignored.</param>
+            <param name="indexlist">Filled in with information about indexes on the table.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetGotoBookmark(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,System.Byte[],System.Int32)">
+            <summary>
+            Positions a cursor to an index entry for the record that is associated with
+            the specified bookmark. The bookmark can be used with any index defined over
+            a table. The bookmark for a record can be retrieved using <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetGetBookmark(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,System.Byte[],System.Int32,System.Int32@)"/>. 
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to position.</param>
+            <param name="bookmark">The bookmark used to position the cursor.</param>
+            <param name="bookmarkSize">The size of the bookmark.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetMove(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,System.Int32,Microsoft.Isam.Esent.Interop.MoveGrbit)">
+            <summary>
+            Navigate through an index. The cursor can be positioned at the start or
+            end of the index and moved backwards and forwards by a specified number
+            of index entries. Also see
+            <seealso cref="M:Microsoft.Isam.Esent.Interop.Api.TryMoveFirst(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID)"/>, <seealso cref="M:Microsoft.Isam.Esent.Interop.Api.TryMoveLast(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID)"/>,
+            <seealso cref="M:Microsoft.Isam.Esent.Interop.Api.TryMoveNext(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID)"/>, <seealso cref="M:Microsoft.Isam.Esent.Interop.Api.TryMovePrevious(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID)"/>.
+            </summary>
+            <param name="sesid">The session to use for the call.</param>
+            <param name="tableid">The cursor to position.</param>
+            <param name="numRows">An offset which indicates how far to move the cursor.</param>
+            <param name="grbit">Move options.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetMove(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_Move,Microsoft.Isam.Esent.Interop.MoveGrbit)">
+            <summary>
+            Navigate through an index. The cursor can be positioned at the start or
+            end of the index and moved backwards and forwards by a specified number
+            of index entries. Also see
+            <seealso cref="M:Microsoft.Isam.Esent.Interop.Api.TryMoveFirst(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID)"/>, <seealso cref="M:Microsoft.Isam.Esent.Interop.Api.TryMoveLast(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID)"/>,
+            <seealso cref="M:Microsoft.Isam.Esent.Interop.Api.TryMoveNext(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID)"/>, <seealso cref="M:Microsoft.Isam.Esent.Interop.Api.TryMovePrevious(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID)"/>.
+            </summary>
+            <param name="sesid">The session to use for the call.</param>
+            <param name="tableid">The cursor to position.</param>
+            <param name="numRows">An offset which indicates how far to move the cursor.</param>
+            <param name="grbit">Move options.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetMakeKey(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,System.Byte[],System.Int32,Microsoft.Isam.Esent.Interop.MakeKeyGrbit)">
+            <summary>
+            Constructs search keys that may then be used by <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetSeek(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.SeekGrbit)"/> and <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetSetIndexRange(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.SetIndexRangeGrbit)"/>.
+            </summary>
+            <remarks>
+            The MakeKey functions provide datatype-specific make key functionality.
+            </remarks>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to create the key on.</param>
+            <param name="data">Column data for the current key column of the current index.</param>
+            <param name="dataSize">Size of the data.</param>
+            <param name="grbit">Key options.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetSeek(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.SeekGrbit)">
+            <summary>
+            Efficiently positions a cursor to an index entry that matches the search
+            criteria specified by the search key in that cursor and the specified
+            inequality. A search key must have been previously constructed using 
+            <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetMakeKey(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,System.Byte[],System.Int32,Microsoft.Isam.Esent.Interop.MakeKeyGrbit)"/>.
+            Also see <seealso cref="M:Microsoft.Isam.Esent.Interop.Api.TrySeek(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.SeekGrbit)"/>.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to position.</param>
+            <param name="grbit">Seek options.</param>
+            <returns>An ESENT warning.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetSetIndexRange(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.SetIndexRangeGrbit)">
+            <summary>
+            Temporarily limits the set of index entries that the cursor can walk using
+            <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetMove(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,System.Int32,Microsoft.Isam.Esent.Interop.MoveGrbit)"/> to those starting
+            from the current index entry and ending at the index entry that matches the
+            search criteria specified by the search key in that cursor and the specified
+            bound criteria. A search key must have been previously constructed using
+            <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetMakeKey(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,System.Byte[],System.Int32,Microsoft.Isam.Esent.Interop.MakeKeyGrbit)"/>.
+            Also see <seealso cref="M:Microsoft.Isam.Esent.Interop.Api.TrySetIndexRange(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.SetIndexRangeGrbit)"/>.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to set the index range on.</param>
+            <param name="grbit">Index range options.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetIntersectIndexes(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_INDEXRANGE[],System.Int32,Microsoft.Isam.Esent.Interop.JET_RECORDLIST@,Microsoft.Isam.Esent.Interop.IntersectIndexesGrbit)">
+            <summary>
+            Computes the intersection between multiple sets of index entries from different secondary
+            indices over the same table. This operation is useful for finding the set of records in a
+            table that match two or more criteria that can be expressed using index ranges. Also see
+            <seealso cref="M:Microsoft.Isam.Esent.Interop.Api.IntersectIndexes(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID[])"/>.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="ranges">
+            An the index ranges to intersect. The tableids in the ranges
+            must have index ranges set on them. Use <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetSetIndexRange(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.SetIndexRangeGrbit)"/>
+            to create an index range.
+            </param>
+            <param name="numRanges">
+            The number of index ranges.
+            </param>
+            <param name="recordlist">
+            Returns information about the temporary table containing the intersection results.
+            </param>
+            <param name="grbit">Intersection options.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetSetCurrentIndex(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,System.String)">
+            <summary>
+            Set the current index of a cursor.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to set the index on.</param>
+            <param name="index">
+            The name of the index to be selected. If this is null or empty the primary
+            index will be selected.
+            </param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetIndexRecordCount(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,System.Int32@,System.Int32)">
+            <summary>
+            Counts the number of entries in the current index from the current position forward.
+            The current position is included in the count. The count can be greater than the
+            total number of records in the table if the current index is over a multi-valued
+            column and instances of the column have multiple-values. If the table is empty,
+            then 0 will be returned for the count. 
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to count the records in.</param>
+            <param name="numRecords">Returns the number of records.</param>
+            <param name="maxRecordsToCount">
+            The maximum number of records to count. A value of 0 indicates that the count
+            is unlimited.
+            </param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetSetTableSequential(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.SetTableSequentialGrbit)">
+            <summary>
+            Notifies the database engine that the application is scanning the entire
+            index that the cursor is positioned on. Consequently, the methods that
+            are used to access the index data will be tuned to make this scenario as
+            fast as possible. 
+            Also see <seealso cref="M:Microsoft.Isam.Esent.Interop.Api.JetResetTableSequential(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.ResetTableSequentialGrbit)"/>.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor that will be accessing the data.</param>
+            <param name="grbit">Reserved for future use.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetResetTableSequential(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.ResetTableSequentialGrbit)">
+            <summary>
+            Notifies the database engine that the application is no longer scanning the
+            entire index the cursor is positioned on. This call reverses a notification
+            sent by <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetSetTableSequential(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.SetTableSequentialGrbit)"/>.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor that was accessing the data.</param>
+            <param name="grbit">Reserved for future use.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetGetRecordPosition(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_RECPOS@)">
+            <summary>
+            Returns the fractional position of the current record in the current index
+            in the form of a <see cref="T:Microsoft.Isam.Esent.Interop.JET_RECPOS"/> structure.
+            Also see <seealso cref="M:Microsoft.Isam.Esent.Interop.Api.JetGotoPosition(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_RECPOS)"/>.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor positioned on the record.</param>
+            <param name="recpos">Returns the approximate fractional position of the record.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetGotoPosition(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_RECPOS)">
+            <summary>
+            Moves a cursor to a new location that is a fraction of the way through
+            the current index. 
+            Also see <seealso cref="M:Microsoft.Isam.Esent.Interop.Api.JetGetRecordPosition(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_RECPOS@)"/>.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to position.</param>
+            <param name="recpos">The approximate position to move to.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetGetBookmark(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,System.Byte[],System.Int32,System.Int32@)">
+            <summary>
+            Retrieves the bookmark for the record that is associated with the index entry
+            at the current position of a cursor. This bookmark can then be used to
+            reposition that cursor back to the same record using <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetGotoBookmark(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,System.Byte[],System.Int32)"/>. 
+            The bookmark will be no longer than <see cref="P:Microsoft.Isam.Esent.Interop.SystemParameters.BookmarkMost"/>
+            bytes.
+            Also see <seealso cref="M:Microsoft.Isam.Esent.Interop.Api.GetBookmark(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID)"/>.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to retrieve the bookmark from.</param>
+            <param name="bookmark">Buffer to contain the bookmark.</param>
+            <param name="bookmarkSize">Size of the bookmark buffer.</param>
+            <param name="actualBookmarkSize">Returns the actual size of the bookmark.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetRetrieveKey(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,System.Byte[],System.Int32,System.Int32@,Microsoft.Isam.Esent.Interop.RetrieveKeyGrbit)">
+            <summary>
+            Retrieves the key for the index entry at the current position of a cursor.
+            Also see <seealso cref="M:Microsoft.Isam.Esent.Interop.Api.RetrieveKey(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.RetrieveKeyGrbit)"/>.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to retrieve the key from.</param>
+            <param name="data">The buffer to retrieve the key into.</param>
+            <param name="dataSize">The size of the buffer.</param>
+            <param name="actualDataSize">Returns the actual size of the data.</param>
+            <param name="grbit">Retrieve key options.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetRetrieveColumn(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID,System.Byte[],System.Int32,System.Int32@,Microsoft.Isam.Esent.Interop.RetrieveColumnGrbit,Microsoft.Isam.Esent.Interop.JET_RETINFO)">
+            <summary>
+            Retrieves a single column value from the current record. The record is that
+            record associated with the index entry at the current position of the cursor.
+            Alternatively, this function can retrieve a column from a record being created
+            in the cursor copy buffer. This function can also retrieve column data from an
+            index entry that references the current record. In addition to retrieving the
+            actual column value, JetRetrieveColumn can also be used to retrieve the size
+            of a column, before retrieving the column data itself so that application
+            buffers can be sized appropriately.  
+            </summary>
+            <remarks>
+            The RetrieveColumnAs functions provide datatype-specific retrieval functions.
+            </remarks>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to retrieve the column from.</param>
+            <param name="columnid">The columnid to retrieve.</param>
+            <param name="data">The data buffer to be retrieved into.</param>
+            <param name="dataSize">The size of the data buffer.</param>
+            <param name="actualDataSize">Returns the actual size of the data buffer.</param>
+            <param name="grbit">Retrieve column options.</param>
+            <param name="retinfo">
+            If pretinfo is give as NULL then the function behaves as though an itagSequence
+            of 1 and an ibLongValue of 0 (zero) were given. This causes column retrieval to
+            retrieve the first value of a multi-valued column, and to retrieve long data at
+            offset 0 (zero).
+            </param>
+            <returns>An ESENT warning code.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetRetrieveColumns(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_RETRIEVECOLUMN[],System.Int32)">
+            <summary>
+            Retrieves multiple column values from the current record in a
+            single operation. An array of JET_RETRIEVECOLUMN structures is
+            used to describe the set of column values to be retrieved, and
+            to describe output buffers for each column value to be retrieved.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to retrieve the data from.</param>
+            <param name="columns">
+            An array of one or more <see cref="T:Microsoft.Isam.Esent.Interop.JET_RETRIEVECOLUMN"/> objects
+            describing the data to be retrieved.
+            </param>
+            <param name="numColumns">
+            The number of entries in the columns array.
+            </param>
+            <returns>
+            If any column retrieved is truncated due to an insufficient
+            length buffer, then the API will return
+            <see cref="F:Microsoft.Isam.Esent.Interop.JET_wrn.BufferTruncated"/>. However other errors
+            JET_wrnColumnNull are returned only in the error field of
+            the <see cref="T:Microsoft.Isam.Esent.Interop.JET_RETRIEVECOLUMN"/> object.
+            </returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetEnumerateColumns(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,System.Int32,Microsoft.Isam.Esent.Interop.JET_ENUMCOLUMNID[],System.Int32@,Microsoft.Isam.Esent.Interop.JET_ENUMCOLUMN[]@,Microsoft.Isam.Esent.Interop.JET_PFNREALLOC,System.IntPtr,System.Int32,Microsoft.Isam.Esent.Interop.EnumerateColumnsGrbit)">
+            <summary>
+            Efficiently retrieves a set of columns and their values from the
+            current record of a cursor or the copy buffer of that cursor. The
+            columns and values retrieved can be restricted by a list of
+            column IDs, itagSequence numbers, and other characteristics. This
+            column retrieval API is unique in that it returns information in
+            dynamically allocated memory that is obtained using a
+            user-provided realloc compatible callback. This new flexibility
+            permits the efficient retrieval of column data with specific
+            characteristics (such as size and multiplicity) that are unknown
+            to the caller. This eliminates the need for the use of the discovery
+            modes of JetRetrieveColumn to determine those
+            characteristics in order to setup a final call to
+            JetRetrieveColumn that will successfully retrieve
+            the desired data.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to retrieve data from.</param>
+            <param name="numColumnids">The numbers of JET_ENUMCOLUMNIDS.</param>
+            <param name="columnids">
+            An optional array of column IDs, each with an optional array of itagSequence
+            numbers to enumerate.
+            </param>
+            <param name="numColumnValues">
+            Returns the number of column values retrieved.
+            </param>
+            <param name="columnValues">
+            Returns the enumerated column values.
+            </param>
+            <param name="allocator">
+            Callback used to allocate memory.
+            </param>
+            <param name="allocatorContext">
+            Context for the allocation callback.
+            </param>
+            <param name="maxDataSize">
+            Sets a cap on the amount of data to return from a long text or long
+            binary column. This parameter can be used to prevent the enumeration
+            of an extremely large column value.
+            </param>
+            <param name="grbit">Retrieve options.</param>
+            <returns>A warning or success.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetDelete(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID)">
+            <summary>
+            Deletes the current record in a database table.
+            </summary>
+            <param name="sesid">The session that opened the cursor.</param>
+            <param name="tableid">The cursor on a database table. The current row will be deleted.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetPrepareUpdate(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_prep)">
+            <summary>
+            Prepare a cursor for update.
+            </summary>
+            <param name="sesid">The session which is starting the update.</param>
+            <param name="tableid">The cursor to start the update for.</param>
+            <param name="prep">The type of update to prepare.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetUpdate(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,System.Byte[],System.Int32,System.Int32@)">
+            <summary>
+            The JetUpdate function performs an update operation including inserting a new row into
+            a table or updating an existing row. Deleting a table row is performed by calling
+            <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetDelete(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID)"/>.
+            </summary>
+            <param name="sesid">The session which started the update.</param>
+            <param name="tableid">The cursor to update. An update should be prepared.</param>
+            <param name="bookmark">Returns the bookmark of the updated record. This can be null.</param>
+            <param name="bookmarkSize">The size of the bookmark buffer.</param>
+            <param name="actualBookmarkSize">Returns the actual size of the bookmark.</param>
+            <remarks>
+            JetUpdate is the final step in performing an insert or an update. The update is begun by
+            calling <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetPrepareUpdate(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_prep)"/> and then by calling
+            <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetSetColumn(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID,System.Byte[],System.Int32,Microsoft.Isam.Esent.Interop.SetColumnGrbit,Microsoft.Isam.Esent.Interop.JET_SETINFO)"/>
+            one or more times to set the record state. Finally, <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetUpdate(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,System.Byte[],System.Int32,System.Int32@)"/>
+            is called to complete the update operation. Indexes are updated only by JetUpdate or and not during JetSetColumn.
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetUpdate(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID)">
+            <summary>
+            The JetUpdate function performs an update operation including inserting a new row into
+            a table or updating an existing row. Deleting a table row is performed by calling
+            <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetDelete(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID)"/>.
+            </summary>
+            <param name="sesid">The session which started the update.</param>
+            <param name="tableid">The cursor to update. An update should be prepared.</param>
+            <remarks>
+            JetUpdate is the final step in performing an insert or an update. The update is begun by
+            calling <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetPrepareUpdate(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_prep)"/> and then by calling
+            <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetSetColumn(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID,System.Byte[],System.Int32,Microsoft.Isam.Esent.Interop.SetColumnGrbit,Microsoft.Isam.Esent.Interop.JET_SETINFO)"/>
+            one or more times to set the record state. Finally, <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetUpdate(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,System.Byte[],System.Int32,System.Int32@)"/>
+            is called to complete the update operation. Indexes are updated only by JetUpdate or and not during JetSetColumn.
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetSetColumn(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID,System.Byte[],System.Int32,Microsoft.Isam.Esent.Interop.SetColumnGrbit,Microsoft.Isam.Esent.Interop.JET_SETINFO)">
+            <summary>
+            The JetSetColumn function modifies a single column value in a modified record to be inserted or to
+            update the current record. It can overwrite an existing value, add a new value to a sequence of
+            values in a multi-valued column, remove a value from a sequence of values in a multi-valued column,
+            or update all or part of a long value (a column of type <see cref="F:Microsoft.Isam.Esent.Interop.JET_coltyp.LongText"/>
+            or <see cref="F:Microsoft.Isam.Esent.Interop.JET_coltyp.LongBinary"/>). 
+            </summary>
+            <remarks>
+            The SetColumn methods provide datatype-specific overrides which may be more efficient.
+            </remarks>
+            <param name="sesid">The session which is performing the update.</param>
+            <param name="tableid">The cursor to update. An update should be prepared.</param>
+            <param name="columnid">The columnid to set.</param>
+            <param name="data">The data to set.</param>
+            <param name="dataSize">The size of data to set.</param>
+            <param name="grbit">SetColumn options.</param>
+            <param name="setinfo">Used to specify itag or long-value offset.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetSetColumns(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_SETCOLUMN[],System.Int32)">
+            <summary>
+            Allows an application to set multiple column values in a single
+            operation. An array of <see cref="T:Microsoft.Isam.Esent.Interop.JET_SETCOLUMN"/> structures is
+            used to describe the set of column values to be set, and to describe
+            input buffers for each column value to be set.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to set the columns on.</param>
+            <param name="setcolumns">
+            An array of <see cref="T:Microsoft.Isam.Esent.Interop.JET_SETCOLUMN"/> structures describing the
+            data to set.
+            </param>
+            <param name="numColumns">
+            Number of entries in the setcolumns parameter.
+            </param>
+            <returns>
+            A warning. If the last column set has a warning, then
+            this warning will be returned from JetSetColumns itself.
+            </returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetGetLock(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.GetLockGrbit)">
+            <summary>
+            Explicitly reserve the ability to update a row, write lock, or to explicitly prevent a row from
+            being updated by any other session, read lock. Normally, row write locks are acquired implicitly as a
+            result of updating rows. Read locks are usually not required because of record versioning. However,
+            in some cases a transaction may desire to explicitly lock a row to enforce serialization, or to ensure
+            that a subsequent operation will succeed. 
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to use. A lock will be acquired on the current record.</param>
+            <param name="grbit">Lock options, use this to specify which type of lock to obtain.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetEscrowUpdate(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID,System.Byte[],System.Int32,System.Byte[],System.Int32,System.Int32@,Microsoft.Isam.Esent.Interop.EscrowUpdateGrbit)">
+            <summary>
+            Performs an atomic addition operation on one column. This function allows
+            multiple sessions to update the same record concurrently without conflicts.
+            Also see <seealso cref="M:Microsoft.Isam.Esent.Interop.Api.EscrowUpdate(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID,System.Int32)"/>.
+            </summary>
+            <param name="sesid">
+            The session to use. The session must be in a transaction.
+            </param>
+            <param name="tableid">The cursor to update.</param>
+            <param name="columnid">
+            The column to update. This must be an escrow updatable column.
+            </param>
+            <param name="delta">The buffer containing the addend.</param>
+            <param name="deltaSize">The size of the addend.</param>
+            <param name="previousValue">
+            An output buffer that will recieve the current value of the column. This buffer
+            can be null.
+            </param>
+            <param name="previousValueLength">The size of the previousValue buffer.</param>
+            <param name="actualPreviousValueLength">Returns the actual size of the previousValue.</param>
+            <param name="grbit">Escrow update options.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.JetIdle(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.IdleGrbit)">
+            <summary>
+            Performs idle cleanup tasks or checks the version store status in ESE.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="grbit">A combination of JetIdleGrbit flags.</param>
+            <returns>An error code if the operation fails.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Api.Check(System.Int32)">
+            <summary>
+            Throw an exception if the parameter is an ESE error,
+            returns a <see cref="T:Microsoft.Isam.Esent.Interop.JET_wrn"/> otherwise.
+            </summary>
+            <param name="err">The error code to check.</param>
+            <returns>An ESENT warning code (possibly success).</returns>
+        </member>
+        <member name="E:Microsoft.Isam.Esent.Interop.Api.HandleError">
+            <summary>
+            Gets or sets the ErrorHandler for all errors. This can
+            be used for logging or to throw an exception.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.Api.Impl">
+            <summary>
+            Gets or sets the IJetApi this is called for all functions.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.Api.ConversionFunc`1">
+            <summary>
+            Conversion function delegate.
+            </summary>
+            <typeparam name="TResult">The return type.</typeparam>
+            <param name="data">The data to convert.</param>
+            <returns>An object of type TRresult.</returns>
+            <remarks>
+            We create this delegate here, instead of using the built-in
+            Func/Converter generics to avoid taking a dependency on 
+            a higher version (3.5) of the CLR.
+            </remarks>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.Api.ErrorHandler">
+            <summary>
+            Delegate for error handling code.
+            </summary>
+            <param name="error">The error that has been encountered.</param>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.ObjectInfoFlags">
+            <summary>
+            Flags for ESENT objects (tables).
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.ObjectInfoFlags.System">
+            <summary>
+            Object is for internal use only.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.ObjectInfoFlags.TableFixedDDL">
+            <summary>
+            Table's DDL is fixed.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.ObjectInfoFlags.TableTemplate">
+            <summary>
+            Table's DDL is inheritable (implied FixedDDL).
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.ObjectInfoFlags.TableDerived">
+            <summary>
+            Table's DDL is inherited from a template table.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.ObjectInfoFlags.TableNoFixedVarColumnsInDerivedTables">
+            <summary>
+            Used in conjunction with JET_bitObjectTableTemplate.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.EnumerableColumnInfo">
+            <summary>
+            Iterates over all the columns in the table, returning information about each one.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.EnumerableColumnInfo.#ctor(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID)">
+            <summary>
+            Initializes a new instance of the EnumerableColumnInfo class.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The table to retrieve column information for.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.EnumerableColumnInfo.GetEnumerator">
+            <summary>
+            Returns an enumerator that iterates through the ColumnInfo objects describing
+            the columns in the table.
+            </summary>
+            <returns>
+            An enumerator that iterates through the ColumnInfo objects describing
+            the columns in the table.
+            </returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.EnumerableColumnInfo.System#Collections#IEnumerable#GetEnumerator">
+            <summary>
+            Returns an enumerator that iterates through the ColumnInfo objects describing
+            the columns in the table.
+            </summary>
+            <returns>
+            An enumerator that iterates through the ColumnInfo objects describing
+            the columns in the table.
+            </returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.EnumerableColumnInfo.GetColumnInfoFromColumnlist(Microsoft.Isam.Esent.Interop.JET_COLUMNLIST)">
+            <summary>
+            Create a ColumnInfo object from the data in the current JET_COLUMNLIST
+            entry.
+            </summary>
+            <param name="columnlist">The columnlist to take the data from.</param>
+            <returns>A ColumnInfo object containing the information from that record.</returns>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.NATIVE_RETRIEVECOLUMN">
+            <summary>
+            The native version of the <see cref="T:Microsoft.Isam.Esent.Interop.JET_RETRIEVECOLUMN"/> structure.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.JET_RETRIEVECOLUMN">
+            <summary>
+            Contains input and output parameters for <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetRetrieveColumns(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_RETRIEVECOLUMN[],System.Int32)"/>.
+            Fields in the structure describe what column value to retrieve, how to
+            retrieve it, and where to save results.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.CreateInstanceGrbit">
+            <summary>
+            Options for JetCreateInstance2.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.CreateInstanceGrbit.None">
+            <summary>
+            Default options.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.InitGrbit">
+            <summary>
+            Options for JetInit2.
+            </summary>
+            <seealso cref="F:Microsoft.Isam.Esent.Interop.Windows7.Windows7Grbits.ReplayIgnoreLostLogs"/>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.InitGrbit.None">
+            <summary>
+            Default options.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.CreateDatabaseGrbit">
+            <summary>
+            Options for JetCreateDatabase.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.CreateDatabaseGrbit.None">
+            <summary>
+            Default options.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.CreateDatabaseGrbit.OverwriteExisting">
+            <summary>
+            By default, if JetCreateDatabase is called and the database already exists,
+            the Api call will fail and the original database will not be overwritten.
+            OverwriteExisting changes this behavior, and the old database
+            will be overwritten with a new one.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.CreateDatabaseGrbit.RecoveryOff">
+            <summary>
+            Turns off logging. Setting this bit loses the ability to replay log files
+            and recover the database to a consistent usable state after a crash.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.AttachDatabaseGrbit">
+            <summary>
+            Options for JetAttachDatabase.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.AttachDatabaseGrbit.None">
+            <summary>
+            Default options.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.AttachDatabaseGrbit.ReadOnly">
+            <summary>
+             Prevents modifications to the database.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.AttachDatabaseGrbit.DeleteCorruptIndexes">
+            <summary>
+            If JET_paramEnableIndexChecking has been set, all indexes over Unicode
+            data will be deleted.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.OpenDatabaseGrbit">
+            <summary>
+            Options for JetOpenDatabase.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.OpenDatabaseGrbit.None">
+            <summary>
+            Default options.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.OpenDatabaseGrbit.ReadOnly">
+            <summary>
+            Prevents modifications to the database.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.OpenDatabaseGrbit.Exclusive">
+            <summary>
+            Allows only a single session to attach a database.
+            Normally, several sessions can open a database.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.CloseDatabaseGrbit">
+            <summary>
+            Options for JetCloseDatabase.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.CloseDatabaseGrbit.None">
+            <summary>
+            Default options.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.TermGrbit">
+            <summary>
+            Options for JetTerm2.
+            </summary>
+            <seealso cref="F:Microsoft.Isam.Esent.Interop.Windows7.Windows7Grbits.Dirty"/>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.TermGrbit.None">
+            <summary>
+            Default options.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.TermGrbit.Complete">
+            <summary>
+            Requests that the instance be shut down cleanly. Any optional
+            cleanup work that would ordinarily be done in the background at
+            run time is completed immediately.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.TermGrbit.Abrupt">
+            <summary>
+            Requests that the instance be shut down as quickly as possible.
+            Any optional work that would ordinarily be done in the
+            background at run time is abandoned. 
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.CommitTransactionGrbit">
+            <summary>
+            Options for JetCommitTransaction.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.CommitTransactionGrbit.None">
+            <summary>
+            Default options.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.CommitTransactionGrbit.LazyFlush">
+            <summary>
+            The transaction is committed normally but this Api does not wait for
+            the transaction to be flushed to the transaction log file before returning
+            to the caller. This drastically reduces the duration of a commit operation
+            at the cost of durability. Any transaction that is not flushed to the log
+            before a crash will be automatically aborted during crash recovery during
+            the next call to JetInit. If WaitLastLevel0Commit or WaitAllLevel0Commit
+            are specified, this option is ignored.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.CommitTransactionGrbit.WaitLastLevel0Commit">
+            <summary>
+             If the session has previously committed any transactions and they have not yet
+             been flushed to the transaction log file, they should be flushed immediately.
+             This Api will wait until the transactions have been flushed before returning
+             to the caller. This is useful if the application has previously committed several
+             transactions using JET_bitCommitLazyFlush and now wants to flush all of them to disk.
+            </summary>
+            <remarks>
+            This option may be used even if the session is not currently in a transaction.
+            This option cannot be used in combination with any other option.
+            </remarks>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.RollbackTransactionGrbit">
+            <summary>
+            Options for JetRollbackTransaction.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.RollbackTransactionGrbit.None">
+            <summary>
+            Default options.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.RollbackTransactionGrbit.RollbackAll">
+            <summary>
+            This option requests that all changes made to the state of the
+            database during all save points be undone. As a result, the
+            session will exit the transaction.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.EndSessionGrbit">
+            <summary>
+            Options for JetEndSession.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.EndSessionGrbit.None">
+            <summary>
+            Default options.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.OpenTableGrbit">
+            <summary>
+            Options for JetOpenTable.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.OpenTableGrbit.None">
+            <summary>
+            Default options.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.OpenTableGrbit.DenyRead">
+            <summary>
+            This table cannot be opened for read access by another session.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.OpenTableGrbit.DenyWrite">
+            <summary>
+            This table cannot be opened for write access by another session.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.OpenTableGrbit.NoCache">
+            <summary>
+            Do not cache pages for this table.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.OpenTableGrbit.PermitDDL">
+            <summary>
+            Allow DDL modifications to a table flagged as FixedDDL. This option
+            must be used with DenyRead.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.OpenTableGrbit.Preread">
+            <summary>
+            Provides a hint that the table is probably not in the buffer cache, and
+            that pre-reading may be beneficial to performance.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.OpenTableGrbit.ReadOnly">
+            <summary>
+            Request read-only access to the table.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.OpenTableGrbit.Sequential">
+            <summary>
+            Assume a sequential access pattern and prefetch database pages.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.OpenTableGrbit.Updatable">
+            <summary>
+            Request write access to the table.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.DupCursorGrbit">
+            <summary>
+            Options for JetDupCursor.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.DupCursorGrbit.None">
+            <summary>
+            Default options.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.SetColumnGrbit">
+            <summary>
+            Options for JetSetColumn.
+            </summary>
+            <seealso cref="F:Microsoft.Isam.Esent.Interop.Windows7.Windows7Grbits.Compressed"/>
+            <seealso cref="F:Microsoft.Isam.Esent.Interop.Windows7.Windows7Grbits.Uncompressed"/>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.SetColumnGrbit.None">
+            <summary>
+            Default options.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.SetColumnGrbit.AppendLV">
+            <summary>
+            This option is used to append data to a column of type JET_coltypLongText
+            or JET_coltypLongBinary. The same behavior can be achieved by determining
+            the size of the existing long value and specifying ibLongValue in psetinfo.
+            However, its simpler to use this grbit since knowing the size of the existing
+            column value is not necessary.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.SetColumnGrbit.OverwriteLV">
+            <summary>
+            This option is used replace the existing long value with the newly provided
+            data. When this option is used, it is as though the existing long value has
+            been set to 0 (zero) length prior to setting the new data.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.SetColumnGrbit.RevertToDefaultValue">
+            <summary>
+            This option is only applicable for tagged, sparse or multi-valued columns.
+            It causes the column to return the default column value on subsequent retrieve
+            column operations. All existing column values are removed.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.SetColumnGrbit.SeparateLV">
+            <summary>
+            This option is used to force a long value, columns of type JET_coltyp.LongText
+            or JET_coltyp.LongBinary, to be stored separately from the remainder of record
+            data. This occurs normally when the size of the long value prevents it from being 
+            stored with remaining record data. However, this option can be used to force the
+            long value to be stored separately. Note that long values four bytes in size
+            of smaller cannot be forced to be separate. In such cases, the option is ignored.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.SetColumnGrbit.SizeLV">
+            <summary>
+            This option is used to interpret the input buffer as a integer number of bytes
+            to set as the length of the long value described by the given columnid and if
+            provided, the sequence number in psetinfo->itagSequence. If the size given is
+            larger than the existing column value, the column will be extended with 0s.
+            If the size is smaller than the existing column value then the value will be
+            truncated.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.SetColumnGrbit.UniqueMultiValues">
+            <summary>
+            This option is used to enforce that all values in a multi-valued column are
+            distinct. This option compares the source column data, without any
+            transformations, to other existing column values and an error is returned
+            if a duplicate is found. If this option is given, then AppendLV, OverwriteLV
+            and SizeLV cannot also be given.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.SetColumnGrbit.UniqueNormalizedMultiValues">
+            <summary>
+            This option is used to enforce that all values in a multi-valued column are
+            distinct. This option compares the key normalized transformation of column
+            data, to other similarly transformed existing column values and an error is
+            returned if a duplicate is found. If this option is given, then AppendLV, 
+            OverwriteLV and SizeLV cannot also be given.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.SetColumnGrbit.ZeroLength">
+            <summary>
+            This option is used to set a value to zero length. Normally, a column value
+            is set to NULL by passing a cbMax of 0 (zero). However, for some types, like
+            JET_coltyp.Text, a column value can be 0 (zero) length instead of NULL, and
+            this option is used to differentiate between NULL and 0 (zero) length.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.SetColumnGrbit.IntrinsicLV">
+            <summary>
+            Try to store long-value columns in the record, even if they exceed the default
+            separation size.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.RetrieveColumnGrbit">
+            <summary>
+            Options for JetRetrieveColumn.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.RetrieveColumnGrbit.None">
+            <summary>
+            Default options.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.RetrieveColumnGrbit.RetrieveCopy">
+            <summary>
+             This flag causes retrieve column to retrieve the modified value instead of
+             the original value. If the value has not been modified, then the original
+             value is retrieved. In this way, a value that has not yet been inserted or
+             updated may be retrieved during the operation of inserting or updating a record.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.RetrieveColumnGrbit.RetrieveFromIndex">
+            <summary>
+            This option is used to retrieve column values from the index, if possible,
+            without accessing the record. In this way, unnecessary loading of records
+            can be avoided when needed data is available from index entries themselves.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.RetrieveColumnGrbit.RetrieveFromPrimaryBookmark">
+            <summary>
+            This option is used to retrieve column values from the index bookmark,
+            and may differ from the index value when a column appears both in the
+            primary index and the current index. This option should not be specified
+            if the current index is the clustered, or primary, index. This bit cannot
+            be set if RetrieveFromIndex is also set. 
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.RetrieveColumnGrbit.RetrieveTag">
+            <summary>
+            This option is used to retrieve the sequence number of a multi-valued
+            column value in JET_RETINFO.itagSequence. Retrieving the sequence number
+            can be a costly operation and should only be done if necessary. 
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.RetrieveColumnGrbit.RetrieveNull">
+            <summary>
+            This option is used to retrieve multi-valued column NULL values. If
+            this option is not specified, multi-valued column NULL values will
+            automatically be skipped. 
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.RetrieveColumnGrbit.RetrieveIgnoreDefault">
+            <summary>
+            This option affects only multi-valued columns and causes a NULL
+            value to be returned when the requested sequence number is 1 and
+            there are no set values for the column in the record. 
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.EnumerateColumnsGrbit">
+            <summary>
+            Options for JetEnumerateColumns.
+            </summary>
+            <seealso cref="F:Microsoft.Isam.Esent.Interop.Server2003.Server2003Grbits.EnumerateIgnoreUserDefinedDefault"/>
+            <seealso cref="F:Microsoft.Isam.Esent.Interop.Windows7.Windows7Grbits.EnumerateInRecordOnly"/>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.EnumerateColumnsGrbit.None">
+            <summary>
+            Default options.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.EnumerateColumnsGrbit.EnumerateCompressOutput">
+            <summary>
+            When enumerating column values, all columns for which we are retrieving
+            all values and that have only one non-NULL column value may be returned
+            in a compressed format. The status for such columns will be set to
+            <see cref="F:Microsoft.Isam.Esent.Interop.JET_wrn.ColumnSingleValue"/> and the size of the column value
+            and the memory containing the column value will be returned directly in
+            the <see cref="T:Microsoft.Isam.Esent.Interop.JET_ENUMCOLUMN"/> structure. It is not guaranteed that
+            all eligible columns are compressed in this manner. See
+            <see cref="T:Microsoft.Isam.Esent.Interop.JET_ENUMCOLUMN"/> for more information.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.EnumerateColumnsGrbit.EnumerateCopy">
+            <summary>
+            This option indicates that the modified column values of the record
+            should be enumerated rather than the original column values. If a
+            column value has not been modified, the original column value is
+            enumerated. In this way, a column value that has not yet been inserted
+            or updated may be enumerated when inserting or updating a record.
+            </summary>
+            <remarks>
+            This option is identical to <see cref="F:Microsoft.Isam.Esent.Interop.RetrieveColumnGrbit.RetrieveCopy"/>.
+            </remarks>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.EnumerateColumnsGrbit.EnumerateIgnoreDefault">
+            <summary>
+            If a given column is not present in the record then no column value
+            will be returned. Ordinarily, the default value for the column,
+            if any, would be returned in this case. It is guaranteed that if the
+            column is set to a value different than the default value then that
+            different value will be returned (that is, if a column with a
+            default value is explicitly set to NULL then a NULL will be returned
+            as the value for that column). Even if this option is requested, it
+            is still possible to see a column value that happens to be equal to
+            the default value. No effort is made to remove column values that
+            match their default values.
+            It is important to remember that this option affects the output of
+            <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetEnumerateColumns(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,System.Int32,Microsoft.Isam.Esent.Interop.JET_ENUMCOLUMNID[],System.Int32@,Microsoft.Isam.Esent.Interop.JET_ENUMCOLUMN[]@,Microsoft.Isam.Esent.Interop.JET_PFNREALLOC,System.IntPtr,System.Int32,Microsoft.Isam.Esent.Interop.EnumerateColumnsGrbit)"/> when used with 
+            <see cref="F:Microsoft.Isam.Esent.Interop.EnumerateColumnsGrbit.EnumeratePresenceOnly"/> or
+            <see cref="F:Microsoft.Isam.Esent.Interop.EnumerateColumnsGrbit.EnumerateTaggedOnly"/>.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.EnumerateColumnsGrbit.EnumeratePresenceOnly">
+            <summary>
+            If a non-NULL value exists for the requested column or column value
+            then the associated data is not returned. Instead, the associated
+            status for that column or column value will be set to
+            <see cref="F:Microsoft.Isam.Esent.Interop.JET_wrn.ColumnPresent"/>. If the column or column value
+            is NULL then <see cref="F:Microsoft.Isam.Esent.Interop.JET_wrn.ColumnNull"/> will be returned as usual.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.EnumerateColumnsGrbit.EnumerateTaggedOnly">
+            <summary>
+            When enumerating all column values in the record (for example,that is
+            when numColumnids is zero), only tagged column values will be returned.
+            This option is not allowed when enumerating a specific array of column IDs.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.MoveGrbit">
+            <summary>
+            Options for JetMove.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.MoveGrbit.None">
+            <summary>
+            Default options.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.MoveGrbit.MoveKeyNE">
+            <summary>
+            Moves the cursor forward or backward by the number of index entries
+            required to skip the requested number of index key values encountered
+            in the index. This has the effect of collapsing index entries with
+            duplicate key values into a single index entry.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.MakeKeyGrbit">
+            <summary>
+            Options for JetMakeKey.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.MakeKeyGrbit.None">
+            <summary>
+            Default options.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.MakeKeyGrbit.NewKey">
+            <summary>
+            A new search key should be constructed. Any previously existing search
+            key is discarded.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.MakeKeyGrbit.NormalizedKey">
+            <summary>
+            When this option is specified, all other options are ignored, any
+            previously existing search key is discarded, and the contents of the
+            input buffer are loaded as the new search key.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.MakeKeyGrbit.KeyDataZeroLength">
+            <summary>
+            If the size of the input buffer is zero and the current key column
+            is a variable length column, this option indicates that the input
+            buffer contains a zero length value. Otherwise, an input buffer size
+            of zero would indicate a NULL value.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.MakeKeyGrbit.StrLimit">
+            <summary>
+            This option indicates that the search key should be constructed
+            such that any key columns that come after the current key column
+            should be considered to be wildcards.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.MakeKeyGrbit.SubStrLimit">
+            <summary>
+            This option indicates that the search key should be constructed
+            such that the current key column is considered to be a prefix
+            wildcard and that any key columns that come after the current
+            key column should be considered to be wildcards.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.MakeKeyGrbit.FullColumnStartLimit">
+            <summary>
+            The search key should be constructed such that any key columns
+            that come after the current key column should be considered to
+            be wildcards.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.MakeKeyGrbit.FullColumnEndLimit">
+            <summary>
+            The search key should be constructed in such a way that any key
+            columns that come after the current key column are considered to
+            be wildcards.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.MakeKeyGrbit.PartialColumnStartLimit">
+            <summary>
+            The search key should be constructed such that the current key
+            column is considered to be a prefix wildcard and that any key
+            columns that come after the current key column should be considered
+            to be wildcards. 
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.MakeKeyGrbit.PartialColumnEndLimit">
+            <summary>
+            The search key should be constructed such that the current key
+            column is considered to be a prefix wildcard and that any key
+            columns that come after the current key column should be considered
+            to be wildcards.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.RetrieveKeyGrbit">
+            <summary>
+            Options for JetRetrieveKey.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.RetrieveKeyGrbit.None">
+            <summary>
+            Default options.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.RetrieveKeyGrbit.RetrieveCopy">
+            <summary>
+            Retrieve the currently constructed key.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.SeekGrbit">
+            <summary>
+            Options for JetSeek.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.SeekGrbit.SeekEQ">
+            <summary>
+            The cursor will be positioned at the index entry closest to the
+            start of the index that exactly matches the search key.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.SeekGrbit.SeekLT">
+            <summary>
+            The cursor will be positioned at the index entry closest to the
+            end of the index that is less than an index entry that would
+            exactly match the search criteria.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.SeekGrbit.SeekLE">
+            <summary>
+            The cursor will be positioned at the index entry closest to the
+            end of the index that is less than or equal to an index entry
+            that would exactly match the search criteria.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.SeekGrbit.SeekGE">
+            <summary>
+            The cursor will be positioned at the index entry closest to the
+            start of the index that is greater than or equal to an index
+            entry that would exactly match the search criteria.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.SeekGrbit.SeekGT">
+            <summary>
+            The cursor will be positioned at the index entry closest to the
+            start of the index that is greater than an index entry that
+            would exactly match the search criteria.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.SeekGrbit.SetIndexRange">
+            <summary>
+            An index range will automatically be setup for all keys that
+            exactly match the search key. 
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.SetIndexRangeGrbit">
+            <summary>
+            Options for JetSetIndexRange.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.SetIndexRangeGrbit.None">
+            <summary>
+            Default options.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.SetIndexRangeGrbit.RangeInclusive">
+            <summary>
+            This option indicates that the limit of the index range is inclusive.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.SetIndexRangeGrbit.RangeUpperLimit">
+            <summary>
+            The search key in the cursor represents the search criteria for the
+            index entry closest to the end of the index that will match the index
+            range. 
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.SetIndexRangeGrbit.RangeInstantDuration">
+            <summary>
+            The index range should be removed as soon as it has been established.
+            This is useful for testing for the existence of index entries that
+            match the search criteria.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.SetIndexRangeGrbit.RangeRemove">
+            <summary>
+            Cancel and existing index range.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.IndexRangeGrbit">
+            <summary>
+            Options for the JET_INDEXRANGE object.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.IndexRangeGrbit.RecordInIndex">
+            <summary>
+            Records in the cursors indexrange should be included in the output.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.IntersectIndexesGrbit">
+            <summary>
+            Options for JetIntersectIndexes.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.IntersectIndexesGrbit.None">
+            <summary>
+            Default options.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.SetTableSequentialGrbit">
+            <summary>
+            Options for JetSetTableSequential.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.SetTableSequentialGrbit.None">
+            <summary>
+            Default options.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.ResetTableSequentialGrbit">
+            <summary>
+            Options for JetResetTableSequential.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.ResetTableSequentialGrbit.None">
+            <summary>
+            Default options.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.GetLockGrbit">
+            <summary>
+            Options for JetGetLock.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.GetLockGrbit.Read">
+            <summary>
+            Acquire a read lock on the current record. Read locks are incompatible with
+            write locks already held by other sessions but are compatible with read locks
+            held by other sessions.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.GetLockGrbit.Write">
+            <summary>
+             Acquire a write lock on the current record. Write locks are not compatible
+             with write or read locks held by other sessions but are compatible with
+             read locks held by the same session.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.EscrowUpdateGrbit">
+            <summary>
+            Options for JetEscrowUpdate.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.EscrowUpdateGrbit.None">
+            <summary>
+            Default options.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.EscrowUpdateGrbit.NoRollback">
+            <summary>
+            Even if the session performing the escrow update has its transaction rollback
+            this update will not be undone. As the log records may not be flushed to disk,
+            recent escrow updates done with this flag may be lost if there is a crash.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.ColumndefGrbit">
+            <summary>
+            Options for the JET_COLUMNDEF structure.
+            </summary>
+            <seealso cref="F:Microsoft.Isam.Esent.Interop.Windows7.Windows7Grbits.ColumnCompressed"/>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.ColumndefGrbit.None">
+            <summary>
+            Default options.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.ColumndefGrbit.ColumnFixed">
+            <summary>
+            The column will be fixed. It will always use the same amount of space in a row,
+            regardless of how much data is being stored in the column. ColumnFixed
+            cannot be used with ColumnTagged. This bit cannot be used with long values
+            (that is JET_coltyp.LongText and JET_coltyp.LongBinary).
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.ColumndefGrbit.ColumnTagged">
+            <summary>
+             The column will be tagged. Tagged columns do not take up any space in the database
+             if they do not contain data. This bit cannot be used with ColumnFixed.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.ColumndefGrbit.ColumnNotNULL">
+            <summary>
+            The column must never be set to a NULL value. On Windows XP this can only be applied to
+            fixed columns (bit, byte, integer, etc).
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.ColumndefGrbit.ColumnVersion">
+            <summary>
+            The column is a version column that specifies the version of the row. The value of
+            this column starts at zero and will be automatically incremented for each update on
+            the row. This option can only be applied to JET_coltyp.Long columns. This option cannot
+            be used with ColumnAutoincrement, ColumnEscrowUpdate, or ColumnTagged.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.ColumndefGrbit.ColumnAutoincrement">
+            <summary>
+            The column will automatically be incremented. The number is an increasing number, and
+            is guaranteed to be unique within a table. The numbers, however, might not be continuous.
+            For example, if five rows are inserted into a table, the "autoincrement" column could
+            contain the values { 1, 2, 6, 7, 8 }. This bit can only be used on columns of type
+            JET_coltyp.Long or JET_coltyp.Currency.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.ColumndefGrbit.ColumnMultiValued">
+            <summary>
+            The column can be multi-valued.
+            A multi-valued column can have zero, one, or more values
+            associated with it. The various values in a multi-valued column are identified by a number
+            called the itagSequence member, which belongs to various structures, including:
+            JET_RETINFO, JET_SETINFO, JET_SETCOLUMN, JET_RETRIEVECOLUMN, and JET_ENUMCOLUMNVALUE.
+            Multi-valued columns must be tagged columns; that is, they cannot be fixed-length or
+            variable-length columns.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.ColumndefGrbit.ColumnEscrowUpdate">
+            <summary>
+             Specifies that a column is an escrow update column. An escrow update column can be
+             updated concurrently by different sessions with JetEscrowUpdate and will maintain
+             transactional consistency. An escrow update column must also meet the following conditions:
+             An escrow update column can be created only when the table is empty. 
+             An escrow update column must be of type JET_coltypLong. 
+             An escrow update column must have a default value.
+             JET_bitColumnEscrowUpdate cannot be used in conjunction with ColumnTagged,
+             ColumnVersion, or ColumnAutoincrement. 
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.ColumndefGrbit.ColumnUnversioned">
+            <summary>
+            The column will be created in an without version information. This means that other
+            transactions that attempt to add a column with the same name will fail. This bit
+            is only useful with JetAddColumn. It cannot be used within a transaction.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.ColumndefGrbit.ColumnUserDefinedDefault">
+            <summary>
+            The default value for a column will be provided by a callback function. A column that
+            has a user-defined default must be a tagged column. Specifying JET_bitColumnUserDefinedDefault
+            means that pvDefault must point to a JET_USERDEFINEDDEFAULT structure, and cbDefault must be
+            set to sizeof( JET_USERDEFINEDDEFAULT ).
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.ColumndefGrbit.TTKey">
+            <summary>
+            The column will be a key column for the temporary table. The order
+            of the column definitions with this option specified in the input
+            array will determine the precedence of each key column for the
+            temporary table. The first column definition in the array that
+            has this option set will be the most significant key column and
+            so on. If more key columns are requested than can be supported
+            by the database engine then this option is ignored for the
+            unsupportable key columns.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.ColumndefGrbit.TTDescending">
+            <summary>
+            The sort order of the key column for the temporary table should
+            be descending rather than ascending. If this option is specified
+             without <see cref="F:Microsoft.Isam.Esent.Interop.ColumndefGrbit.TTKey"/> then this option is ignored.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.CreateIndexGrbit">
+            <summary>
+            Options for JetCreateIndex.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.CreateIndexGrbit.None">
+            <summary>
+            Default options.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.CreateIndexGrbit.IndexUnique">
+            <summary>
+            Duplicate index entries (keys) are disallowed. This is enforced when JetUpdate is called,
+            not when JetSetColumn is called.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.CreateIndexGrbit.IndexPrimary">
+            <summary>
+            The index is a primary (clustered) index. Every table must have exactly one primary index.
+            If no primary index is explicitly defined over a table, then the database engine will
+            create its own primary index.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.CreateIndexGrbit.IndexDisallowNull">
+            <summary>
+            None of the columns over which the index is created may contain a NULL value.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.CreateIndexGrbit.IndexIgnoreNull">
+            <summary>
+            Do not add an index entry for a row if all of the columns being indexed are NULL.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.CreateIndexGrbit.IndexIgnoreAnyNull">
+            <summary>
+            Do not add an index entry for a row if any of the columns being indexed are NULL.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.CreateIndexGrbit.IndexIgnoreFirstNull">
+            <summary>
+            Do not add an index entry for a row if the first column being indexed is NULL.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.CreateIndexGrbit.IndexLazyFlush">
+            <summary>
+            Specifies that the index operations will be logged lazily. JET_bitIndexLazyFlush does not
+            affect the laziness of data updates. If the indexing operations is interrupted by process
+            termination, Soft Recovery will still be able to able to get the database to a consistent
+            state, but the index may not be present.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.CreateIndexGrbit.IndexEmpty">
+            <summary>
+            Do not attempt to build the index, because all entries would evaluate to NULL. grbit MUST
+            also specify JET_bitIgnoreAnyNull when JET_bitIndexEmpty is passed. This is a performance
+            enhancement. For example if a new column is added to a table, then an index is created over
+            this newly added column, all of the records in the table would be scanned even though they
+            would never get added to the index anyway. Specifying JET_bitIndexEmpty skips the scanning
+            of the table, which could potentially take a long time.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.CreateIndexGrbit.IndexUnversioned">
+            <summary>
+            Causes index creation to be visible to other transactions. Normally a session in a
+            transaction will not be able to see an index creation operation in another session. This
+            flag can be useful if another transaction is likely to create the same index, so that the
+            second index-create will simply fail instead of potentially causing many unnecessary database
+            operations. The second transaction may not be able to use the index immediately. The index
+            creation operation needs to complete before it is usable. The session must not currently be in
+            a transaction to create an index without version information.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.CreateIndexGrbit.IndexSortNullsHigh">
+            <summary>
+            Specifying this flag causes NULL values to be sorted after data for all columns in the index.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.IndexKeyGrbit">
+            <summary>
+            Key definition grbits. Used when retrieving information about an index.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.IndexKeyGrbit.Ascending">
+            <summary>
+            Key segment is ascending.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.IndexKeyGrbit.Descending">
+            <summary>
+            Key segment is descending.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.ConditionalColumnGrbit">
+            <summary>
+            Options for the JET_CONDITIONALCOLUMN structure.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.ConditionalColumnGrbit.ColumnMustBeNull">
+            <summary>
+            The column must be null for an index entry to appear in the index.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.ConditionalColumnGrbit.ColumnMustBeNonNull">
+            <summary>
+            The column must be non-null for an index entry to appear in the index.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.TempTableGrbit">
+            <summary>
+            Options for temporary table creation.
+            </summary>
+            <seealso cref="F:Microsoft.Isam.Esent.Interop.Server2003.Server2003Grbits.ForwardOnly"/>
+            <seealso cref="F:Microsoft.Isam.Esent.Interop.Windows7.Windows7Grbits.IntrinsicLVsOnly"/>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.TempTableGrbit.None">
+            <summary>
+            Default options.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.TempTableGrbit.Indexed">
+            <summary>
+            This option requests that the temporary table be flexible enough to 
+            permit the use of JetSeek to lookup records by index key. If this 
+            functionality it not required then it is best to not request it. If this 
+            functionality is not requested then the temporary table manager may be 
+            able to choose a strategy for managing the temporary table that will 
+            result in improved performance. 
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.TempTableGrbit.Unique">
+            <summary>
+            This option requests that records with duplicate index keys be removed 
+            from the final set of records in the temporary table. 
+            Prior to Windows Server 2003, the database engine always assumed this 
+            option to be in effect due to the fact that all clustered indexes must 
+            also be a primary key and thus must be unique. As of Windows Server 
+            2003, it is now possible to create a temporary table that does NOT 
+            remove duplicates when the <see cref="F:Microsoft.Isam.Esent.Interop.Server2003.Server2003Grbits.ForwardOnly"/>
+            option is also specified. 
+            It is not possible to know which duplicate will win and which duplicates 
+            will be discarded in general. However, when the 
+            <see cref="F:Microsoft.Isam.Esent.Interop.TempTableGrbit.ErrorOnDuplicateInsertion"/> option is requested then the first 
+            record with a given index key to be inserted into the temporary table 
+            will always win. 
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.TempTableGrbit.Updatable">
+            <summary>
+            This option requests that the temporary table be flexible enough to 
+            allow records that have previously been inserted to be subsequently 
+            changed. If this functionality it not required then it is best to not 
+            request it. If this functionality is not requested then the temporary 
+            table manager may be able to choose a strategy for managing the 
+            temporary table that will result in improved performance. 
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.TempTableGrbit.Scrollable">
+            <summary>
+            This option requests that the temporary table be flexible enough to 
+            allow records to be scanned in arbitrary order and direction using 
+            <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetMove(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,System.Int32,Microsoft.Isam.Esent.Interop.MoveGrbit)"/>.
+            If this functionality it not required then it is best to not 
+            request it. If this functionality is not requested then the temporary 
+            table manager may be able to choose a strategy for managing the 
+            temporary table that will result in improved performance. 
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.TempTableGrbit.SortNullsHigh">
+            <summary>
+            This option requests that NULL key column values sort closer
+            to the end of the index than non-NULL key column values.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.TempTableGrbit.ForceMaterialization">
+            <summary>
+            This option forces the temporary table manager to abandon
+            any attempt to choose a clever strategy for managing the
+            temporary table that will result in enhanced performance.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.TempTableGrbit.ErrorOnDuplicateInsertion">
+            <summary>
+            This option requests that any attempt to insert a record with the same 
+            index key as a previously inserted record will immediately fail with 
+            <see cref="F:Microsoft.Isam.Esent.Interop.JET_err.KeyDuplicate"/>. If this option is not requested then a duplicate 
+            may be detected immediately and fail or may be silently removed later 
+            depending on the strategy chosen by the database engine to implement the 
+            temporary table based on the requested functionality. If this 
+            functionality it not required then it is best to not request it. If this 
+            functionality is not requested then the temporary table manager may be 
+            able to choose a strategy for managing the temporary table that will 
+            result in improved performance. 
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.IdleGrbit">
+            <summary>
+            Options for JetIdle() API
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.IdleGrbit.None">
+            <summary>
+            Default options.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.IdleGrbit.FlushBuffers">
+            <summary>Triggers cleanup of the version store.</summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.IdleGrbit.Compact">
+            <summary>Reserverd for future use. If this flag is specified, the API will return JET_errInvalidgrbit.</summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.IdleGrbit.GetStatus">
+            <summary>Returns <see cref="F:Microsoft.Isam.Esent.Interop.JET_wrn.IdleFull"/> if version store is more than half full.</summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.NATIVE_OBJECTLIST">
+            <summary>
+            The native version of the JET_OBJECTLIST structure.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.JET_OBJECTLIST">
+            <summary>
+            Information about a temporary table containing information
+            about all tables for a given database.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.JET_OBJECTLIST.SetFromNativeObjectlist(Microsoft.Isam.Esent.Interop.NATIVE_OBJECTLIST)">
+            <summary>
+            Sets the fields of the object from a native JET_OBJECTLIST struct.
+            </summary>
+            <param name="value">
+            The native objectlist to set the values from.
+            </param>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_OBJECTLIST.tableid">
+            <summary>
+            Gets tableid of the temporary table. This should be closed
+            when the table is no longer needed.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_OBJECTLIST.cRecord">
+            <summary>
+            Gets the number of records in the temporary table.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_OBJECTLIST.columnidobjectname">
+            <summary>
+            Gets the columnid of the column in the temporary table which
+            stores the name of the table.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_OBJECTLIST.columnidobjtyp">
+            <summary>
+            Gets the columnid of the column in the temporary table which
+            stores the type of the table.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_OBJECTLIST.columnidgrbit">
+            <summary>
+            Gets the columnid of the column in the temporary table which
+            stores the grbits used when the table was created.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_OBJECTLIST.columnidflags">
+            <summary>
+            Gets the columnid of the column in the temporary table which
+            stores the table flags (e.g. the system table flag).
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_OBJECTLIST.columnidcRecord">
+            <summary>
+            Gets the columnid of the column in the temporary table which
+            stores the number of records in the table.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_OBJECTLIST.columnidcPage">
+            <summary>
+            Gets the columnid of the column in the temporary table which
+            stores the number of pages used by the table.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.JET_ColInfo">
+            <summary>
+            Info levels for retrieving column info.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_ColInfo.Default">
+            <summary>
+            Default option. Retrieves a JET_COLUMNDEF.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_ColInfo.List">
+            <summary>
+            Retrieves a JET_COLUMNLIST structure, containing all the columns
+            in the table.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_ColInfo.ByColid">
+            <summary>
+            Retrieves a JET_COLUMNDEF, the szColumnName argument is interpreted
+            as a pointer to a columnid.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.ColumnValue">
+            <summary>
+            Base class for objects that represent a column value to be set.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.ColumnValue.#ctor">
+            <summary>
+            Initializes a new instance of the ColumnValue class.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.ColumnValue.Columnid">
+            <summary>
+            Gets or sets the columnid to be set.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.ColumnValue.SetGrbit">
+            <summary>
+            Gets or sets column retrieval options.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.ColumnValue.ItagSequence">
+            <summary>
+            Gets or sets the column itag sequence.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.ColumnValue.Error">
+            <summary>
+            Gets the error generated by setting this column.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.ColumnValueOfStruct`1">
+            <summary>
+            Set a column of a struct type (e.g. Int32/Guid).
+            </summary>
+            <typeparam name="T">Type to set.</typeparam>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.ColumnValueOfStruct`1.ToString">
+            <summary>
+            Gets a string representation of this object.
+            </summary>
+            <returns>A string representation of this object.</returns>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.ColumnValueOfStruct`1.Value">
+            <summary>
+            Gets or sets the value to retrieve.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.BoolColumnValue">
+            <summary>
+            A <see cref="T:System.Boolean"/> column value.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.ByteColumnValue">
+            <summary>
+            A <see cref="T:System.Byte"/> column value.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.Int16ColumnValue">
+            <summary>
+            An <see cref="T:System.Int16"/> column value.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.UInt16ColumnValue">
+            <summary>
+            A <see cref="T:System.UInt16"/> column value.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.Int32ColumnValue">
+            <summary>
+            An <see cref="T:System.Int32"/> column value.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.UInt32ColumnValue">
+            <summary>
+            A <see cref="T:System.UInt32"/> column value.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.Int64ColumnValue">
+            <summary>
+            An <see cref="T:System.Int64"/> column value.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.UInt64ColumnValue">
+            <summary>
+            A <see cref="T:System.UInt64"/> column value.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.FloatColumnValue">
+            <summary>
+            A <see cref="T:System.Single"/> column value.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.DoubleColumnValue">
+            <summary>
+            A <see cref="T:System.Double"/> column value.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.DateTimeColumnValue">
+            <summary>
+            A <see cref="T:System.Guid"/> column value.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.GuidColumnValue">
+            <summary>
+            A <see cref="T:System.Guid"/> column value.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.StringColumnValue">
+            <summary>
+            A Unicode string column value.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.StringColumnValue.ToString">
+            <summary>
+            Gets a string representation of this object.
+            </summary>
+            <returns>A string representation of this object.</returns>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.StringColumnValue.Value">
+            <summary>
+            Gets or sets the value of the column. Use <see cref="M:Microsoft.Isam.Esent.Interop.Api.SetColumns(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.ColumnValue[])"/> to update a
+            record with the column value.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.BytesColumnValue">
+            <summary>
+            A byte array column value.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.BytesColumnValue.Value">
+            <summary>
+            Gets or sets the value of the column. Use <see cref="M:Microsoft.Isam.Esent.Interop.Api.SetColumns(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.ColumnValue[])"/> to update a
+            record with the column value.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.JET_wrn">
+            <summary>
+            ESENT warning codes.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_wrn.Success">
+            <summary>
+            Successful operation.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_wrn.RemainingVersions">
+            <summary>
+            The version store is still active
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_wrn.UniqueKey">
+            <summary>
+            seek on non-unique index yielded a unique key
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_wrn.SeparateLongValue">
+            <summary>
+            Column is a separated long-value
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_wrn.SkipThisRecord">
+            <summary>
+            INTERNAL ERROR
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_wrn.TargetInstanceRunning">
+            <summary>
+            TargetInstance specified for restore is running
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_wrn.DatabaseRepaired">
+            <summary>
+            Database corruption has been repaired
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_wrn.ColumnNull">
+            <summary>
+            Column is NULL-valued
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_wrn.BufferTruncated">
+            <summary>
+            Buffer too small for data
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_wrn.DatabaseAttached">
+            <summary>
+            Database is already attached
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_wrn.SortOverflow">
+            <summary>
+            Sort does not fit in memory
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_wrn.SeekNotEqual">
+            <summary>
+            Exact match not found during seek
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_wrn.NoErrorInfo">
+            <summary>
+            No extended error information
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_wrn.NoIdleActivity">
+            <summary>
+            No idle activity occured
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_wrn.NoWriteLock">
+            <summary>
+            No write lock at transaction level 0
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_wrn.ColumnSetNull">
+            <summary>
+            Column set to NULL-value
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_wrn.TableEmpty">
+            <summary>
+            Opened an empty table
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_wrn.TableInUseBySystem">
+            <summary>
+            System cleanup has a cursor open on the table
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_wrn.CorruptIndexDeleted">
+            <summary>
+            Out of date index removed
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_wrn.ColumnMaxTruncated">
+            <summary>
+            Max length too big, truncated
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_wrn.CopyLongValue">
+            <summary>
+            Single instance column bursted
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_wrn.ColumnSkipped">
+            <summary>
+            Column value(s) not returned because the corresponding column id or itagSequence requested for enumeration was null
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_wrn.ColumnNotLocal">
+            <summary>
+            Column value(s) not returned because they could not be reconstructed from the data at hand
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_wrn.ColumnMoreTags">
+            <summary>
+            Column values exist that were not requested for enumeration
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_wrn.ColumnTruncated">
+            <summary>
+            Column value truncated at the requested size limit during enumeration
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_wrn.ColumnPresent">
+            <summary>
+            Column values exist but were not returned by request
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_wrn.ColumnSingleValue">
+            <summary>
+            Column value returned in JET_COLUMNENUM as a result of JET_bitEnumerateCompressOutput
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_wrn.ColumnDefault">
+            <summary>
+            Column value(s) not returned because they were set to their default value(s) and JET_bitEnumerateIgnoreDefault was specified
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_wrn.KeyChanged">
+            <summary>
+            Moved to new key
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_wrn.FileOpenReadOnly">
+            <summary>
+            Database file is read only
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_wrn.IdleFull">
+            <summary>
+            Idle registry full
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_wrn.DefragAlreadyRunning">
+            <summary>
+            Online defrag already running on specified database
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_wrn.DefragNotRunning">
+            <summary>
+            Online defrag not running on specified database
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_wrn.CallbackNotRegistered">
+            <summary>
+            Unregistered a non-existant callback function
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.Server2003.Server2003Grbits">
+            <summary>
+            Grbits that have been added to the Windows Server 2003 version of ESENT.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.Server2003.Server2003Grbits.ForwardOnly">
+            <summary>
+            This option requests that the temporary table only be created if the
+            temporary table manager can use the implementation optimized for
+            intermediate query results. If any characteristic of the temporary
+            table would prevent the use of this optimization then the operation
+            will fail with JET_errCannotMaterializeForwardOnlySort. A side effect
+            of this option is to allow the temporary table to contain records
+            with duplicate index keys. See <see cref="F:Microsoft.Isam.Esent.Interop.TempTableGrbit.Unique"/>
+            for more information.
+            </summary>        
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.Server2003.Server2003Grbits.EnumerateIgnoreUserDefinedDefault">
+            <summary>
+            If a given column is not present in the record and it has a user
+            defined default value then no column value will be returned.
+            This option will prevent the callback that computes the user defined
+            default value for the column from being called when enumerating
+            the values for that column.
+            </summary>
+            <remarks>
+            This option is only available for Windows Server 2003 SP1 and later
+            operating systems.
+            </remarks>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.ColumnInfo">
+            <summary>
+            Information about one esent column. This is not an interop
+            class, but is used by the meta-data helper methods.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.ColumnInfo.Name">
+            <summary>
+            Gets the name of the column.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.ColumnInfo.Columnid">
+            <summary>
+            Gets the ID of the column.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.ColumnInfo.Coltyp">
+            <summary>
+            Gets the type of the column.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.ColumnInfo.Cp">
+            <summary>
+            Gets the code page of the column.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.ColumnInfo.MaxLength">
+            <summary>
+            Gets the maximum length of the column.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.ColumnInfo.DefaultValue">
+            <summary>
+            Gets the default value of the column.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.ColumnInfo.Grbit">
+            <summary>
+            Gets the column options.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.NATIVE_OBJECTINFO">
+            <summary>
+            The native version of the JET_OBJECTINFO structure.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.JET_OBJECTINFO">
+            <summary>
+            The JET_OBJECTINFO structure holds information about an object.
+            Tables are the only object types that are currently supported.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.JET_OBJECTINFO.SetFromNativeObjectinfo(Microsoft.Isam.Esent.Interop.NATIVE_OBJECTINFO)">
+            <summary>
+            Sets the fields of the object from a native JET_OBJECTINFO struct.
+            </summary>
+            <param name="value">
+            The native objectlist to set the values from.
+            </param>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.MemoryCache">
+            <summary>
+            Cache allocated chunks of memory that are needed for very short periods
+            of time. The memory is not zeroed on allocation.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.MemoryCache.DefaultBufferSize">
+            <summary>
+            Default size for newly allocated buffers.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.MemoryCache.MaxBufferSize">
+            <summary>
+            Maximum buffer size to cache.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.MemoryCache.cachedBuffer">
+            <summary>
+            Currently cached buffer.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.MemoryCache.Allocate">
+            <summary>
+            Allocates a chunk of memory. If memory is cached it is returned. If no memory
+            is cached then it is allocated. Check the size of the returned buffer to determine
+            how much memory was allocated.
+            </summary>
+            <returns>A new memory buffer.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.MemoryCache.Free(System.Byte[])">
+            <summary>
+            Frees an unused buffer. This may be added to the cache.
+            </summary>
+            <param name="data">The memory to free.</param>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.Vista.JET_THREADSTATS">
+            <summary>
+            Contains cumulative statistics on the work performed by the database
+            engine on the current thread. This information is returned via
+            <see cref="M:Microsoft.Isam.Esent.Interop.Vista.VistaApi.JetGetThreadStats(Microsoft.Isam.Esent.Interop.Vista.JET_THREADSTATS@)"/>.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Vista.JET_THREADSTATS.op_Addition(Microsoft.Isam.Esent.Interop.Vista.JET_THREADSTATS,Microsoft.Isam.Esent.Interop.Vista.JET_THREADSTATS)">
+            <summary>
+            Add the stats in two JET_THREADSTATS structures.
+            </summary>
+            <param name="t1">The first JET_THREADSTATS.</param>
+            <param name="t2">The second JET_THREADSTATS.</param>
+            <returns>A JET_THREADSTATS containing the result of adding the stats in t1 and t2.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Vista.JET_THREADSTATS.op_Subtraction(Microsoft.Isam.Esent.Interop.Vista.JET_THREADSTATS,Microsoft.Isam.Esent.Interop.Vista.JET_THREADSTATS)">
+            <summary>
+            Calculate the differeence in stats between two JET_THREADSTATS structures.
+            </summary>
+            <param name="t1">The first JET_THREADSTATS.</param>
+            <param name="t2">The second JET_THREADSTATS.</param>
+            <returns>A JET_THREADSTATS containing the difference in stats between t1 and t2.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Vista.JET_THREADSTATS.ToString">
+            <summary>
+            Gets a string representation of this object.
+            </summary>
+            <returns>A string representation of this object.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Vista.JET_THREADSTATS.SetFromNativeThreadstats(Microsoft.Isam.Esent.Interop.Vista.NATIVE_THREADSTATS)">
+            <summary>
+            Sets the fields of the object from a NATIVE_THREADSTATS struct.
+            </summary>
+            <param name="value">
+            The native threadstats to set the values from.
+            </param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Vista.JET_THREADSTATS.GetPluralS(System.Int32)">
+            <summary>
+            Get the plural suffix ('s') for the given number.
+            </summary>
+            <param name="n">The number.</param>
+            <returns>'s' if n is greater than 1.</returns>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.Vista.JET_THREADSTATS.cPageReferenced">
+            <summary>
+            Gets the total number of database pages visited by the database
+            engine on the current thread.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.Vista.JET_THREADSTATS.cPageRead">
+            <summary>
+            Gets the total number of database pages fetched from disk by the
+            database engine on the current thread.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.Vista.JET_THREADSTATS.cPagePreread">
+            <summary>
+            Gets the total number of database pages prefetched from disk by
+            the database engine on the current thread.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.Vista.JET_THREADSTATS.cPageDirtied">
+            <summary>
+            Gets the total number of database pages, with no unwritten changes,
+            that have been modified by the database engine on the current thread.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.Vista.JET_THREADSTATS.cPageRedirtied">
+            <summary>
+            Gets the total number of database pages, with unwritten changes, that
+            have been modified by the database engine on the current thread.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.Vista.JET_THREADSTATS.cLogRecord">
+            <summary>
+            Gets the total number of transaction log records that have been
+            generated by the database engine on the current thread.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.Vista.JET_THREADSTATS.cbLogRecord">
+            <summary>
+            Gets the total size in bytes of transaction log records that
+            have been generated by the database engine on the current thread.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.Vista.NATIVE_THREADSTATS">
+            <summary>
+            The native version of the JET_THREADSTATS structure.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.Windows7.Windows7Param">
+            <summary>
+            System parameters that have been added to the Windows 7 version of ESENT.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.Windows7.Windows7Param.WaypointLatency">
+            <summary>
+            This parameter sets the number of logs that esent will defer database
+            flushes for. This can be used to increase database recoverability if
+            failures cause logfiles to be lost.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.Windows7.Windows7Param.LVChunkSizeMost">
+            <summary>
+            This parameter is used to retrieve the chunk size of long-value
+            (blob) data. Setting and retrieving data in multiples of this 
+            size increases efficiency.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.Transaction">
+            <summary>
+            A class that encapsulates a transaction on a JET_SESID.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.EsentResource">
+            <summary>
+            This is the base class for all esent resource objects.
+            Subclasses of this class can allocate and release unmanaged
+            resources.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.EsentResource.Finalize">
+            <summary>
+            Finalizes an instance of the EsentResource class.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.EsentResource.Dispose">
+            <summary>
+            Dispose of this object, releasing the underlying
+            Esent resource.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.EsentResource.CheckObjectIsNotDisposed">
+            <summary>
+            Throw an exception if this object has been disposed.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.EsentResource.ResourceWasAllocated">
+            <summary>
+            Called by a subclass when a resource is allocated.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.EsentResource.ResourceWasReleased">
+            <summary>
+            Called by a subclass when a resource is freed.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.EsentResource.ReleaseResource">
+            <summary>
+            Implemented by the subclass to release a resource.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.EsentResource.HasResource">
+            <summary>
+            Gets a value indicating whether the underlying resource
+            is currently allocated.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.Transaction.sesid">
+            <summary>
+            The underlying JET_SESID.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Transaction.#ctor(Microsoft.Isam.Esent.Interop.JET_SESID)">
+            <summary>
+            Initializes a new instance of the Transaction class. This automatically
+            begins a transaction. The transaction will be rolled back if
+            not explicitly committed.
+            </summary>
+            <param name="sesid">The session to start the transaction for.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Transaction.Begin">
+            <summary>
+            Begin a transaction. This object should not currently be
+            in a transaction.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Transaction.Commit(Microsoft.Isam.Esent.Interop.CommitTransactionGrbit)">
+            <summary>
+            Commit a transaction. This object should be in a transaction.
+            </summary>
+            <param name="grbit">JetCommitTransaction options.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Transaction.Rollback">
+            <summary>
+            Rollback a transaction. This object should be in a transaction.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Transaction.ReleaseResource">
+            <summary>
+            Called when the transaction is being disposed while active.
+            This should rollback the transaction.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.Transaction.IsInTransaction">
+            <summary>
+            Gets a value indicating whether this object is currently in a
+            transaction.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.NATIVE_RETINFO">
+            <summary>
+            The native version of the JET_RETINFO structure.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.JET_RETINFO">
+            <summary>
+            Contains optional input and output parameters for JetRetrieveColumn.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.JET_RETINFO.GetNativeRetinfo">
+            <summary>
+            Get a NATIVE_RETINFO structure representing the object.
+            </summary>
+            <returns>A NATIVE_RETINFO whose members match the class.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.JET_RETINFO.SetFromNativeRetinfo(Microsoft.Isam.Esent.Interop.NATIVE_RETINFO)">
+            <summary>
+            Sets the fields of the object from a NATIVE_RETINFO structure.
+            </summary>
+            <param name="value">The NATIVE_RETINFO which will be used to set the fields.</param>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_RETINFO.ibLongValue">
+            <summary>
+            Gets or sets the offset to the first byte to be retrieved from a column of
+            type <see cref="F:Microsoft.Isam.Esent.Interop.JET_coltyp.LongBinary"/>, or <see cref="F:Microsoft.Isam.Esent.Interop.JET_coltyp.LongText"/>.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_RETINFO.itagSequence">
+            <summary>
+            Gets or sets the sequence number of value in a multi-valued column.
+            The array of values is one-based. The first value is
+            sequence 1, not 0. If the record column has only one value then
+            1 should be passed as the itagSequence.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_RETINFO.columnidNextTagged">
+            <summary>
+            Gets the columnid of the retrieved tagged, multi-valued or
+            sparse, column when all tagged columns are retrieved by passing
+            0 as the columnid to JetRetrieveColumn.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.NATIVE_RECPOS">
+            <summary>
+            The native version of the JET_RETINFO structure.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.JET_RECPOS">
+            <summary>
+            Represents a fractional position within an index. This is used by JetGotoPosition
+            and JetGetRecordPosition.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.JET_RECPOS.GetNativeRecpos">
+            <summary>
+            Get a NATIVE_RECPOS structure representing the object.
+            </summary>
+            <returns>A NATIVE_RECPOS whose members match the class.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.JET_RECPOS.SetFromNativeRecpos(Microsoft.Isam.Esent.Interop.NATIVE_RECPOS)">
+            <summary>
+            Sets the fields of the object from a NATIVE_RECPOS structure.
+            </summary>
+            <param name="value">The NATIVE_RECPOS which will be used to set the fields.</param>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_RECPOS.centriesLT">
+            <summary>
+            Gets or sets the approximate number of index entries less than the key.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_RECPOS.centriesTotal">
+            <summary>
+            Gets or sets the approximate number of entries in the index.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.JET_CP">
+            <summary>
+            Codepage for an ESENT column.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_CP.None">
+            <summary>
+            Code page for non-text columns.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_CP.Unicode">
+            <summary>
+            Unicode encoding.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_CP.ASCII">
+            <summary>
+            ASCII encoding.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.JET_IdxInfo">
+            <summary>
+            Info levels for retrieving information about indexes.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_IdxInfo.InfoList">
+            <summary>
+            Retrieve a <see cref="T:Microsoft.Isam.Esent.Interop.JET_INDEXLIST"/> containing a list of the indexes.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.EsentException">
+            <summary>
+            Base class for ESENT exceptions.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.EsentException.#ctor">
+            <summary>
+            Initializes a new instance of the EsentException class.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.EsentException.#ctor(System.String)">
+            <summary>
+            Initializes a new instance of the EsentException class with a specified error message.
+            </summary>
+            <param name="message">The message that describes the error.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.EsentException.#ctor(System.String,System.Exception)">
+            <summary>
+            Initializes a new instance of the EsentException class with a specified error message and
+            a reference to the inner exception that is the cause of this exception.
+            </summary>
+            <param name="message">The message that describes the error.</param>
+            <param name="innerException">
+            The exception that is the cause of the current exception, or a null reference
+            (Nothing in Visual Basic) if no inner exception is specified.
+            </param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.EsentException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
+            <summary>
+            Initializes a new instance of the EsentException class. This constructor
+            is used to deserialize a serialized exception.
+            </summary>
+            <param name="info">The data needed to deserialize the object.</param>
+            <param name="context">The deserialization context.</param>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.TableEnumerator`1">
+            <summary>
+            Table enumerator object. This can enumerate over a table, returning objects for
+            each record.
+            </summary>
+            <typeparam name="TReturn">The type of object returned by the enumerator.</typeparam>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.TableEnumerator`1.converter">
+            <summary>
+            Function that produces the enumerated object.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.TableEnumerator`1.sesid">
+            <summary>
+            The session used for the enumeration.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.TableEnumerator`1.tableid">
+            <summary>
+            The table being iterated over. This will be closed when the Enumerator is closed.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.TableEnumerator`1.#ctor(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.TableEnumerator{`0}.ObjectConversionDelegate)">
+            <summary>
+            Initializes a new instance of the TableEnumerator class.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">
+            The table to iterate over. This tableid will be closed when the iterator is disposed.
+            </param>
+            <param name="converter">The conversion function.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.TableEnumerator`1.Dispose">
+            <summary>
+            Free the JET_TABLEID when enumeration is finished.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.TableEnumerator`1.Reset">
+            <summary>
+            Sets the enumerator to its initial position, which is before the
+            first element in the collection.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.TableEnumerator`1.MoveNext">
+            <summary>
+            Advances the enumerator to the next element of the collection.
+            </summary>
+            <returns>
+            True if the enumerator was successfully advanced to the next
+            element; false if the enumerator has passed the end of the collection.
+            </returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.TableEnumerator`1.Dispose(System.Boolean)">
+            <summary>
+            Called when the object is being disposed or finalized.
+            </summary>
+            <param name="disposing">True if the function was called from Dispose.</param>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.TableEnumerator`1.Current">
+            <summary>
+            Gets the current element in the collection.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.TableEnumerator`1.System#Collections#IEnumerator#Current">
+            <summary>
+            Gets the current element in the collection.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.TableEnumerator`1.ObjectConversionDelegate">
+            <summary>
+            Conversion function. This takes a tableid, which will be positioned on a record and
+            should return the desired object.
+            </summary>
+            <param name="tableid">A tableid positioned on the record.</param>
+            <returns>A new object.</returns>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.Vista.VistaApi">
+            <summary>
+            ESENT APIs that were first supported in Windows Vista.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Vista.VistaApi.JetOpenTemporaryTable(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.Vista.JET_OPENTEMPORARYTABLE)">
+            <summary>
+            Creates a temporary table with a single index. A temporary table
+            stores and retrieves records just like an ordinary table created
+            using JetCreateTableColumnIndex. However, temporary tables are
+            much faster than ordinary tables due to their volatile nature.
+            They can also be used to very quickly sort and perform duplicate
+            removal on record sets when accessed in a purely sequential manner.
+            Also see
+            <seealso cref="M:Microsoft.Isam.Esent.Interop.Api.JetOpenTempTable(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_COLUMNDEF[],System.Int32,Microsoft.Isam.Esent.Interop.TempTableGrbit,Microsoft.Isam.Esent.Interop.JET_TABLEID@,Microsoft.Isam.Esent.Interop.JET_COLUMNID[])"/>,
+            <seealso cref="M:Microsoft.Isam.Esent.Interop.Api.JetOpenTempTable2(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_COLUMNDEF[],System.Int32,System.Int32,Microsoft.Isam.Esent.Interop.TempTableGrbit,Microsoft.Isam.Esent.Interop.JET_TABLEID@,Microsoft.Isam.Esent.Interop.JET_COLUMNID[])"/>,
+            <seealso cref="M:Microsoft.Isam.Esent.Interop.Api.JetOpenTempTable3(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_COLUMNDEF[],System.Int32,Microsoft.Isam.Esent.Interop.JET_UNICODEINDEX,Microsoft.Isam.Esent.Interop.TempTableGrbit,Microsoft.Isam.Esent.Interop.JET_TABLEID@,Microsoft.Isam.Esent.Interop.JET_COLUMNID[])"/>.
+            </summary>
+            <remarks>
+            Introduced in Windows Vista. Use <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetOpenTempTable3(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_COLUMNDEF[],System.Int32,Microsoft.Isam.Esent.Interop.JET_UNICODEINDEX,Microsoft.Isam.Esent.Interop.TempTableGrbit,Microsoft.Isam.Esent.Interop.JET_TABLEID@,Microsoft.Isam.Esent.Interop.JET_COLUMNID[])"/>
+            for earlier versions of Esent.
+            </remarks>
+            <param name="sesid">The session to use.</param>
+            <param name="temporarytable">
+            Description of the temporary table to create on input. After a
+            successful call, the structure contains the handle to the temporary
+            table and column identifications. Use <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetCloseTable(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID)"/>
+            to free the temporary table when finished.
+            </param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Vista.VistaApi.JetGetThreadStats(Microsoft.Isam.Esent.Interop.Vista.JET_THREADSTATS@)">
+            <summary>
+            Retrieves performance information from the database engine for the
+            current thread. Multiple calls can be used to collect statistics
+            that reflect the activity of the database engine on this thread
+            between those calls. 
+            </summary>
+            <param name="threadstats">Returns the thread statistics data.</param>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.Vista.NATIVE_OPENTEMPORARYTABLE">
+            <summary>
+            The native version of the JET_OPENTEMPORARYTABLE structure.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.Vista.JET_OPENTEMPORARYTABLE">
+            <summary>
+            A collection of parameters for the JetOpenTemporaryTable method.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Vista.JET_OPENTEMPORARYTABLE.GetNativeOpenTemporaryTable">
+            <summary>
+            Returns the unmanaged opentemporarytable that represents this managed class.
+            </summary>
+            <returns>
+            A native (interop) version of the JET_OPENTEMPORARYTABLE.
+            </returns>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.Vista.JET_OPENTEMPORARYTABLE.prgcolumndef">
+            <summary>
+            Gets or sets the column definitions for the columns created in
+            the temporary table.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.Vista.JET_OPENTEMPORARYTABLE.ccolumn">
+            <summary>
+            Gets or sets the number of columns in <see cref="P:Microsoft.Isam.Esent.Interop.Vista.JET_OPENTEMPORARYTABLE.prgcolumndef"/>.
+            </summary>
+            <seealso cref="P:Microsoft.Isam.Esent.Interop.Vista.JET_OPENTEMPORARYTABLE.prgcolumnid"/>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.Vista.JET_OPENTEMPORARYTABLE.pidxunicode">
+            <summary>
+            Gets or sets the locale ID and normalization flags to use to compare any Unicode
+            key column data in the temporary table. When this parameter is
+            null, then the default LCID will be used to compare any Unicode key
+            columns in the temporary table. The default LCID is the U.S. English
+            locale. When this parameter is null, then the default normalization
+            flags will be used to compare any Unicode key column data in the temp
+            table. The default normalization flags are: NORM_IGNORECASE,
+            NORM_IGNOREKANATYPE, and NORM_IGNOREWIDTH.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.Vista.JET_OPENTEMPORARYTABLE.grbit">
+            <summary>
+            Gets or sets options for the temp table.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.Vista.JET_OPENTEMPORARYTABLE.prgcolumnid">
+            <summary>
+            Gets or sets the output buffer that receives the array of column
+            IDs generated during the creation of the temporary table. The
+            column IDs in this array will exactly correspond to the input array
+            of column definitions. As a result, the size of this buffer must
+            correspond to the size of <see cref="P:Microsoft.Isam.Esent.Interop.Vista.JET_OPENTEMPORARYTABLE.prgcolumndef"/>.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.Vista.JET_OPENTEMPORARYTABLE.cbKeyMost">
+            <summary>
+            Gets or sets the maximum size for a key representing a given row. The maximum
+            key size may be set to control how keys are truncated. Key
+            truncation is important because it can affect when rows are
+            considered to be distinct. If this parameter is set to 0 or
+            255 then the maximum key size and its semantics will remain
+            identical to the maximum key size supported by Windows Server 2003
+            and previous releases. This parameter may also be set to a larger
+            value as a function of the database page size for the instance
+            <see cref="F:Microsoft.Isam.Esent.Interop.JET_param.DatabasePageSize"/>. See
+            <see cref="F:Microsoft.Isam.Esent.Interop.Vista.VistaParam.KeyMost"/> for more information.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.Vista.JET_OPENTEMPORARYTABLE.cbVarSegMac">
+            <summary>
+            Gets or sets maximum amount of data that will be used from any
+            variable lengthcolumn to construct a key for a given row. This
+            parameter may be used to control the amount of key space consumed
+            by any given key column. This limit is in bytes. If this parameter
+            is zero or is the same as the <see cref="P:Microsoft.Isam.Esent.Interop.Vista.JET_OPENTEMPORARYTABLE.cbKeyMost"/> property
+            then no limit is in effect.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.Vista.JET_OPENTEMPORARYTABLE.tableid">
+            <summary>
+            Gets the table handle for the temporary table created as a result
+            of a successful call to JetOpenTemporaryTable.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.Implementation.JetApi">
+            <summary>
+            Calls to the ESENT interop layer. These calls take the managed types (e.g. JET_SESID) and
+            return errors.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Implementation.IJetApi.JetCreateInstance2(Microsoft.Isam.Esent.Interop.JET_INSTANCE@,System.String,System.String,Microsoft.Isam.Esent.Interop.CreateInstanceGrbit)">
+            <summary>
+            Allocate a new instance of the database engine for use in a single
+            process, with a display name specified.
+            </summary>
+            <param name="instance">Returns the newly create instance.</param>
+            <param name="name">
+            Specifies a unique string identifier for the instance to be created.
+            This string must be unique within a given process hosting the
+            database engine.
+            </param>
+            <param name="displayName">
+            A display name for the instance to be created. This will be used
+            in eventlog entries.
+            </param>
+            <param name="grbit">Creation options.</param>
+            <returns>An error if the call fails.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Implementation.IJetApi.JetInit2(Microsoft.Isam.Esent.Interop.JET_INSTANCE@,Microsoft.Isam.Esent.Interop.InitGrbit)">
+            <summary>
+            Initialize the ESENT database engine.
+            </summary>
+            <param name="instance">
+            The instance to initialize. If an instance hasn't been
+            allocated then a new one is created and the engine
+            will operate in single-instance mode.
+            </param>
+            <param name="grbit">
+            Initialization options.
+            </param>
+            <returns>An error or warning.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Implementation.IJetApi.JetGetVersion(Microsoft.Isam.Esent.Interop.JET_SESID,System.UInt32@)">
+            <summary>
+            Retrieves the version of the database engine.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="version">Returns the version number of the database engine.</param>
+            <returns>An error code if the call fails.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Implementation.IJetApi.JetSetSessionContext(Microsoft.Isam.Esent.Interop.JET_SESID,System.IntPtr)">
+            <summary>
+            Associates a session with the current thread using the given context
+            handle. This association overrides the default engine requirement
+            that a transaction for a given session must occur entirely on the
+            same thread. 
+            </summary>
+            <param name="sesid">The session to set the context on.</param>
+            <param name="context">The context to set.</param>
+            <returns>An error if the call fails.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Implementation.IJetApi.JetResetSessionContext(Microsoft.Isam.Esent.Interop.JET_SESID)">
+            <summary>
+            Disassociates a session from the current thread. This should be
+            used in conjunction with JetSetSessionContext.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <returns>An error if the call fails.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Implementation.IJetApi.JetGetThreadStats(Microsoft.Isam.Esent.Interop.Vista.JET_THREADSTATS@)">
+            <summary>
+            Retrieves performance information from the database engine for the
+            current thread. Multiple calls can be used to collect statistics
+            that reflect the activity of the database engine on this thread
+            between those calls. 
+            </summary>
+            <param name="threadstats">
+            Returns the thread statistics..
+            </param>
+            <returns>An error code if the operation fails.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Implementation.IJetApi.JetCreateIndex2(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_INDEXCREATE[],System.Int32)">
+            <summary>
+            Creates indexes over data in an ESE database.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The table to create the index on.</param>
+            <param name="indexcreates">Array of objects describing the indexes to be created.</param>
+            <param name="numIndexCreates">Number of index description objects.</param>
+            <returns>An error code.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Implementation.IJetApi.JetOpenTempTable(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_COLUMNDEF[],System.Int32,Microsoft.Isam.Esent.Interop.TempTableGrbit,Microsoft.Isam.Esent.Interop.JET_TABLEID@,Microsoft.Isam.Esent.Interop.JET_COLUMNID[])">
+            <summary>
+            Creates a temporary table with a single index. A temporary table
+            stores and retrieves records just like an ordinary table created
+            using JetCreateTableColumnIndex. However, temporary tables are
+            much faster than ordinary tables due to their volatile nature.
+            They can also be used to very quickly sort and perform duplicate
+            removal on record sets when accessed in a purely sequential manner.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="columns">
+            Column definitions for the columns created in the temporary table.
+            </param>
+            <param name="numColumns">Number of column definitions.</param>
+            <param name="grbit">Table creation options.</param>
+            <param name="tableid">
+            Returns the tableid of the temporary table. Closing this tableid
+            frees the resources associated with the temporary table.
+            </param>
+            <param name="columnids">
+            The output buffer that receives the array of column IDs generated
+            during the creation of the temporary table. The column IDs in this
+            array will exactly correspond to the input array of column definitions.
+            As a result, the size of this buffer must correspond to the size of the input array.
+            </param>
+            <returns>An error code.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Implementation.IJetApi.JetOpenTempTable2(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_COLUMNDEF[],System.Int32,System.Int32,Microsoft.Isam.Esent.Interop.TempTableGrbit,Microsoft.Isam.Esent.Interop.JET_TABLEID@,Microsoft.Isam.Esent.Interop.JET_COLUMNID[])">
+            <summary>
+            Creates a temporary table with a single index. A temporary table
+            stores and retrieves records just like an ordinary table created
+            using JetCreateTableColumnIndex. However, temporary tables are
+            much faster than ordinary tables due to their volatile nature.
+            They can also be used to very quickly sort and perform duplicate
+            removal on record sets when accessed in a purely sequential manner.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="columns">
+            Column definitions for the columns created in the temporary table.
+            </param>
+            <param name="numColumns">Number of column definitions.</param>
+            <param name="lcid">
+            The locale ID to use to compare any Unicode key column data in the temporary table.
+            Any locale may be used as long as the appropriate language pack has been installed
+            on the machine. 
+            </param>
+            <param name="grbit">Table creation options.</param>
+            <param name="tableid">
+            Returns the tableid of the temporary table. Closing this tableid
+            frees the resources associated with the temporary table.
+            </param>
+            <param name="columnids">
+            The output buffer that receives the array of column IDs generated
+            during the creation of the temporary table. The column IDs in this
+            array will exactly correspond to the input array of column definitions.
+            As a result, the size of this buffer must correspond to the size of the input array.
+            </param>
+            <returns>An error code.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Implementation.IJetApi.JetOpenTempTable3(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_COLUMNDEF[],System.Int32,Microsoft.Isam.Esent.Interop.JET_UNICODEINDEX,Microsoft.Isam.Esent.Interop.TempTableGrbit,Microsoft.Isam.Esent.Interop.JET_TABLEID@,Microsoft.Isam.Esent.Interop.JET_COLUMNID[])">
+            <summary>
+            Creates a temporary table with a single index. A temporary table
+            stores and retrieves records just like an ordinary table created
+            using JetCreateTableColumnIndex. However, temporary tables are
+            much faster than ordinary tables due to their volatile nature.
+            They can also be used to very quickly sort and perform duplicate
+            removal on record sets when accessed in a purely sequential manner.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="columns">
+            Column definitions for the columns created in the temporary table.
+            </param>
+            <param name="numColumns">Number of column definitions.</param>
+            <param name="unicodeindex">
+            The Locale ID and normalization flags that will be used to compare
+            any Unicode key column data in the temporary table. When this 
+            is not present then the default options are used. 
+            </param>
+            <param name="grbit">Table creation options.</param>
+            <param name="tableid">
+            Returns the tableid of the temporary table. Closing this tableid
+            frees the resources associated with the temporary table.
+            </param>
+            <param name="columnids">
+            The output buffer that receives the array of column IDs generated
+            during the creation of the temporary table. The column IDs in this
+            array will exactly correspond to the input array of column definitions.
+            As a result, the size of this buffer must correspond to the size of the input array.
+            </param>
+            <returns>An error code.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Implementation.IJetApi.JetOpenTemporaryTable(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.Vista.JET_OPENTEMPORARYTABLE)">
+            <summary>
+            Creates a temporary table with a single index. A temporary table
+            stores and retrieves records just like an ordinary table created
+            using JetCreateTableColumnIndex. However, temporary tables are
+            much faster than ordinary tables due to their volatile nature.
+            They can also be used to very quickly sort and perform duplicate
+            removal on record sets when accessed in a purely sequential manner.
+            </summary>
+            <remarks>
+            Introduced in Windows Vista;
+            </remarks>
+            <param name="sesid">The session to use.</param>
+            <param name="temporarytable">
+            Description of the temporary table to create on input. After a
+            successful call, the structure contains the handle to the temporary
+            table and column identifications.
+            </param>
+            <returns>An error code.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Implementation.IJetApi.JetGetCurrentIndex(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,System.String@,System.Int32)">
+            <summary>
+            JetGetCurrentIndex function determines the name of the current
+            index of a given cursor. This name is also used to later re-select
+            that index as the current index using JetSetCurrentIndex. It can
+            also be used to discover the properties of that index using
+            JetGetTableIndexInfo.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to get the index name for.</param>
+            <param name="indexName">Returns the name of the index.</param>
+            <param name="maxNameLength">
+            The maximum length of the index name. Index names are no more than 
+            Api.MaxNameLength characters.
+            </param>
+            <returns>An error if the call fails.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Implementation.IJetApi.JetIntersectIndexes(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_INDEXRANGE[],System.Int32,Microsoft.Isam.Esent.Interop.JET_RECORDLIST@,Microsoft.Isam.Esent.Interop.IntersectIndexesGrbit)">
+            <summary>
+            Computes the intersection between multiple sets of index entries from different secondary
+            indices over the same table. This operation is useful for finding the set of records in a
+            table that match two or more criteria that can be expressed using index ranges. 
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="ranges">
+            An the index ranges to intersect. The tableids in the ranges
+             must have index ranges set on them.
+            </param>
+            <param name="numRanges">
+            The number of index ranges.
+            </param>
+            <param name="recordlist">
+            Returns information about the temporary table containing the intersection results.
+            </param>
+            <param name="grbit">Intersection options.</param>
+            <returns>An error if the call fails.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Implementation.IJetApi.JetEnumerateColumns(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,System.Int32,Microsoft.Isam.Esent.Interop.JET_ENUMCOLUMNID[],System.Int32@,Microsoft.Isam.Esent.Interop.JET_ENUMCOLUMN[]@,Microsoft.Isam.Esent.Interop.JET_PFNREALLOC,System.IntPtr,System.Int32,Microsoft.Isam.Esent.Interop.EnumerateColumnsGrbit)">
+            <summary>
+            Efficiently retrieves a set of columns and their values from the
+            current record of a cursor or the copy buffer of that cursor. The
+            columns and values retrieved can be restricted by a list of
+            column IDs, itagSequence numbers, and other characteristics. This
+            column retrieval API is unique in that it returns information in
+            dynamically allocated memory that is obtained using a
+            user-provided realloc compatible callback. This new flexibility
+            permits the efficient retrieval of column data with specific
+            characteristics (such as size and multiplicity) that are unknown
+            to the caller. This eliminates the need for the use of the discovery
+            modes of JetRetrieveColumn to determine those
+            characteristics in order to setup a final call to
+            JetRetrieveColumn that will successfully retrieve
+            the desired data.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to retrieve data from.</param>
+            <param name="numColumnids">The numbers of JET_ENUMCOLUMNIDS.</param>
+            <param name="columnids">
+            An optional array of column IDs, each with an optional array of itagSequence
+            numbers to enumerate.
+            </param>
+            <param name="numColumnValues">
+            Returns the number of column values retrieved.
+            </param>
+            <param name="columnValues">
+            Returns the enumerated column values.
+            </param>
+            <param name="allocator">
+            Callback used to allocate memory.
+            </param>
+            <param name="allocatorContext">
+            Context for the allocation callback.
+            </param>
+            <param name="maxDataSize">
+            Sets a cap on the amount of data to return from a long text or long
+            binary column. This parameter can be used to prevent the enumeration
+            of an extremely large column value.
+            </param>
+            <param name="grbit">Retrieve options.</param>
+            <returns>A warning, error or success.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Implementation.IJetApi.JetSetColumns(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.NATIVE_SETCOLUMN*,System.Int32)">
+            <summary>
+            Allows an application to set multiple column values in a single
+            operation. An array of <see cref="T:Microsoft.Isam.Esent.Interop.NATIVE_SETCOLUMN"/> structures is
+            used to describe the set of column values to be set, and to describe
+            input buffers for each column value to be set.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to set the columns on.</param>
+            <param name="setcolumns">
+            An array of <see cref="T:Microsoft.Isam.Esent.Interop.NATIVE_SETCOLUMN"/> structures describing the
+            data to set.
+            </param>
+            <param name="numColumns">
+            Number of entries in the setcolumns parameter.
+            </param>
+            <returns>An error code or warning.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Implementation.IJetApi.JetEscrowUpdate(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID,System.Byte[],System.Int32,System.Byte[],System.Int32,System.Int32@,Microsoft.Isam.Esent.Interop.EscrowUpdateGrbit)">
+            <summary>
+            Performs an atomic addition operation on one column. This function allows
+            multiple sessions to update the same record concurrently without conflicts.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to update.</param>
+            <param name="columnid">
+            The column to update. This must be an escrow updatable column.
+            </param>
+            <param name="delta">The buffer containing the addend.</param>
+            <param name="deltaSize">The size of the addend.</param>
+            <param name="previousValue">
+            An output buffer that will recieve the current value of the column. This buffer
+            can be null.
+            </param>
+            <param name="previousValueLength">The size of the previousValue buffer.</param>
+            <param name="actualPreviousValueLength">Returns the actual size of the previousValue.</param>
+            <param name="grbit">Escrow update options.</param>
+            <returns>An error code if the operation fails.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Implementation.IJetApi.JetIdle(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.IdleGrbit)">
+            <summary>
+            Performs idle cleanup tasks or checks the version store status in ESE.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="grbit">A combination of JetIdleGrbit flags.</param>
+            <returns>An error code if the operation fails.</returns>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.Implementation.JetApi.traceSwitch">
+            <summary>
+            API call tracing.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.Implementation.JetApi.versionOverride">
+            <summary>
+            The version of esent. If this is zero then it is looked up
+            with <see cref="M:Microsoft.Isam.Esent.Interop.Implementation.JetApi.JetGetVersion(Microsoft.Isam.Esent.Interop.JET_SESID,System.UInt32@)"/>.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Implementation.JetApi.#ctor(System.UInt32)">
+            <summary>
+            Initializes a new instance of the JetApi class. This allows the version
+            to be set.
+            </summary>
+            <param name="version">
+            The version of Esent. This is used to override the results of
+            <see cref="M:Microsoft.Isam.Esent.Interop.Implementation.JetApi.JetGetVersion(Microsoft.Isam.Esent.Interop.JET_SESID,System.UInt32@)"/>.
+            </param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Implementation.JetApi.#ctor">
+            <summary>
+            Initializes a new instance of the JetApi class.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Implementation.JetApi.JetCreateInstance2(Microsoft.Isam.Esent.Interop.JET_INSTANCE@,System.String,System.String,Microsoft.Isam.Esent.Interop.CreateInstanceGrbit)">
+            <summary>
+            Allocate a new instance of the database engine for use in a single
+            process, with a display name specified.
+            </summary>
+            <param name="instance">Returns the newly create instance.</param>
+            <param name="name">
+            Specifies a unique string identifier for the instance to be created.
+            This string must be unique within a given process hosting the
+            database engine.
+            </param>
+            <param name="displayName">
+            A display name for the instance to be created. This will be used
+            in eventlog entries.
+            </param>
+            <param name="grbit">Creation options.</param>
+            <returns>An error if the call fails.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Implementation.JetApi.JetInit2(Microsoft.Isam.Esent.Interop.JET_INSTANCE@,Microsoft.Isam.Esent.Interop.InitGrbit)">
+            <summary>
+            Initialize the ESENT database engine.
+            </summary>
+            <param name="instance">
+            The instance to initialize. If an instance hasn't been
+            allocated then a new one is created and the engine
+            will operate in single-instance mode.
+            </param>
+            <param name="grbit">
+            Initialization options.
+            </param>
+            <returns>An error or a warning.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Implementation.JetApi.JetGetVersion(Microsoft.Isam.Esent.Interop.JET_SESID,System.UInt32@)">
+            <summary>
+            Retrieves the version of the database engine.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="version">Returns the version number of the database engine.</param>
+            <returns>An error code if the call fails.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Implementation.JetApi.JetSetSessionContext(Microsoft.Isam.Esent.Interop.JET_SESID,System.IntPtr)">
+            <summary>
+            Associates a session with the current thread using the given context
+            handle. This association overrides the default engine requirement
+            that a transaction for a given session must occur entirely on the
+            same thread. 
+            </summary>
+            <param name="sesid">The session to set the context on.</param>
+            <param name="context">The context to set.</param>
+            <returns>An error if the call fails.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Implementation.JetApi.JetResetSessionContext(Microsoft.Isam.Esent.Interop.JET_SESID)">
+            <summary>
+            Disassociates a session from the current thread. This should be
+            used in conjunction with JetSetSessionContext.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <returns>An error if the call fails.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Implementation.JetApi.JetGetThreadStats(Microsoft.Isam.Esent.Interop.Vista.JET_THREADSTATS@)">
+            <summary>
+            Retrieves performance information from the database engine for the
+            current thread. Multiple calls can be used to collect statistics
+            that reflect the activity of the database engine on this thread
+            between those calls. 
+            </summary>
+            <param name="threadstats">
+            Returns the thread statistics..
+            </param>
+            <returns>An error code if the operation fails.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Implementation.JetApi.JetCreateIndex2(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_INDEXCREATE[],System.Int32)">
+            <summary>
+            Creates indexes over data in an ESE database.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The table to create the index on.</param>
+            <param name="indexcreates">Array of objects describing the indexes to be created.</param>
+            <param name="numIndexCreates">Number of index description objects.</param>
+            <returns>An error code.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Implementation.JetApi.JetOpenTempTable(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_COLUMNDEF[],System.Int32,Microsoft.Isam.Esent.Interop.TempTableGrbit,Microsoft.Isam.Esent.Interop.JET_TABLEID@,Microsoft.Isam.Esent.Interop.JET_COLUMNID[])">
+            <summary>
+            Creates a temporary table with a single index. A temporary table
+            stores and retrieves records just like an ordinary table created
+            using JetCreateTableColumnIndex. However, temporary tables are
+            much faster than ordinary tables due to their volatile nature.
+            They can also be used to very quickly sort and perform duplicate
+            removal on record sets when accessed in a purely sequential manner.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="columns">
+            Column definitions for the columns created in the temporary table.
+            </param>
+            <param name="numColumns">Number of column definitions.</param>
+            <param name="grbit">Table creation options.</param>
+            <param name="tableid">
+            Returns the tableid of the temporary table. Closing this tableid
+            frees the resources associated with the temporary table.
+            </param>
+            <param name="columnids">
+            The output buffer that receives the array of column IDs generated
+            during the creation of the temporary table. The column IDs in this
+            array will exactly correspond to the input array of column definitions.
+            As a result, the size of this buffer must correspond to the size of the input array.
+            </param>
+            <returns>An error code.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Implementation.JetApi.JetOpenTempTable2(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_COLUMNDEF[],System.Int32,System.Int32,Microsoft.Isam.Esent.Interop.TempTableGrbit,Microsoft.Isam.Esent.Interop.JET_TABLEID@,Microsoft.Isam.Esent.Interop.JET_COLUMNID[])">
+            <summary>
+            Creates a temporary table with a single index. A temporary table
+            stores and retrieves records just like an ordinary table created
+            using JetCreateTableColumnIndex. However, temporary tables are
+            much faster than ordinary tables due to their volatile nature.
+            They can also be used to very quickly sort and perform duplicate
+            removal on record sets when accessed in a purely sequential manner.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="columns">
+            Column definitions for the columns created in the temporary table.
+            </param>
+            <param name="numColumns">Number of column definitions.</param>
+            <param name="lcid">
+            The locale ID to use to compare any Unicode key column data in the temporary table.
+            Any locale may be used as long as the appropriate language pack has been installed
+            on the machine. 
+            </param>
+            <param name="grbit">Table creation options.</param>
+            <param name="tableid">
+            Returns the tableid of the temporary table. Closing this tableid
+            frees the resources associated with the temporary table.
+            </param>
+            <param name="columnids">
+            The output buffer that receives the array of column IDs generated
+            during the creation of the temporary table. The column IDs in this
+            array will exactly correspond to the input array of column definitions.
+            As a result, the size of this buffer must correspond to the size of the input array.
+            </param>
+            <returns>An error code.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Implementation.JetApi.JetOpenTempTable3(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_COLUMNDEF[],System.Int32,Microsoft.Isam.Esent.Interop.JET_UNICODEINDEX,Microsoft.Isam.Esent.Interop.TempTableGrbit,Microsoft.Isam.Esent.Interop.JET_TABLEID@,Microsoft.Isam.Esent.Interop.JET_COLUMNID[])">
+            <summary>
+            Creates a temporary table with a single index. A temporary table
+            stores and retrieves records just like an ordinary table created
+            using JetCreateTableColumnIndex. However, temporary tables are
+            much faster than ordinary tables due to their volatile nature.
+            They can also be used to very quickly sort and perform duplicate
+            removal on record sets when accessed in a purely sequential manner.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="columns">
+            Column definitions for the columns created in the temporary table.
+            </param>
+            <param name="numColumns">Number of column definitions.</param>
+            <param name="unicodeindex">
+            The Locale ID and normalization flags that will be used to compare
+            any Unicode key column data in the temporary table. When this 
+            is not present then the default options are used. 
+            </param>
+            <param name="grbit">Table creation options.</param>
+            <param name="tableid">
+            Returns the tableid of the temporary table. Closing this tableid
+            frees the resources associated with the temporary table.
+            </param>
+            <param name="columnids">
+            The output buffer that receives the array of column IDs generated
+            during the creation of the temporary table. The column IDs in this
+            array will exactly correspond to the input array of column definitions.
+            As a result, the size of this buffer must correspond to the size of the input array.
+            </param>
+            <returns>An error code.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Implementation.JetApi.JetOpenTemporaryTable(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.Vista.JET_OPENTEMPORARYTABLE)">
+            <summary>
+            Creates a temporary table with a single index. A temporary table
+            stores and retrieves records just like an ordinary table created
+            using JetCreateTableColumnIndex. However, temporary tables are
+            much faster than ordinary tables due to their volatile nature.
+            They can also be used to very quickly sort and perform duplicate
+            removal on record sets when accessed in a purely sequential manner.
+            </summary>
+            <remarks>
+            Introduced in Windows Vista;
+            </remarks>
+            <param name="sesid">The session to use.</param>
+            <param name="temporarytable">
+            Description of the temporary table to create on input. After a
+            successful call, the structure contains the handle to the temporary
+            table and column identifications.
+            </param>
+            <returns>An error code.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Implementation.JetApi.JetGetCurrentIndex(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,System.String@,System.Int32)">
+            <summary>
+            JetGetCurrentIndex function determines the name of the current
+            index of a given cursor. This name is also used to later re-select
+            that index as the current index using JetSetCurrentIndex. It can
+            also be used to discover the properties of that index using
+            JetGetTableIndexInfo.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to get the index name for.</param>
+            <param name="indexName">Returns the name of the index.</param>
+            <param name="maxNameLength">
+            The maximum length of the index name. Index names are no more than 
+            Api.MaxNameLength characters.
+            </param>
+            <returns>An error if the call fails.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Implementation.JetApi.JetIntersectIndexes(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_INDEXRANGE[],System.Int32,Microsoft.Isam.Esent.Interop.JET_RECORDLIST@,Microsoft.Isam.Esent.Interop.IntersectIndexesGrbit)">
+            <summary>
+            Computes the intersection between multiple sets of index entries from different secondary
+            indices over the same table. This operation is useful for finding the set of records in a
+            table that match two or more criteria that can be expressed using index ranges. 
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="ranges">
+            An the index ranges to intersect. The tableids in the ranges
+             must have index ranges set on them.
+            </param>
+            <param name="numRanges">
+            The number of index ranges.
+            </param>
+            <param name="recordlist">
+            Returns information about the temporary table containing the intersection results.
+            </param>
+            <param name="grbit">Intersection options.</param>
+            <returns>An error if the call fails.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Implementation.JetApi.JetEnumerateColumns(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,System.Int32,Microsoft.Isam.Esent.Interop.JET_ENUMCOLUMNID[],System.Int32@,Microsoft.Isam.Esent.Interop.JET_ENUMCOLUMN[]@,Microsoft.Isam.Esent.Interop.JET_PFNREALLOC,System.IntPtr,System.Int32,Microsoft.Isam.Esent.Interop.EnumerateColumnsGrbit)">
+            <summary>
+            Efficiently retrieves a set of columns and their values from the
+            current record of a cursor or the copy buffer of that cursor. The
+            columns and values retrieved can be restricted by a list of
+            column IDs, itagSequence numbers, and other characteristics. This
+            column retrieval API is unique in that it returns information in
+            dynamically allocated memory that is obtained using a
+            user-provided realloc compatible callback. This new flexibility
+            permits the efficient retrieval of column data with specific
+            characteristics (such as size and multiplicity) that are unknown
+            to the caller. This eliminates the need for the use of the discovery
+            modes of JetRetrieveColumn to determine those
+            characteristics in order to setup a final call to
+            JetRetrieveColumn that will successfully retrieve
+            the desired data.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to retrieve data from.</param>
+            <param name="numColumnids">The numbers of JET_ENUMCOLUMNIDS.</param>
+            <param name="columnids">
+            An optional array of column IDs, each with an optional array of itagSequence
+            numbers to enumerate.
+            </param>
+            <param name="numColumnValues">
+            Returns the number of column values retrieved.
+            </param>
+            <param name="columnValues">
+            Returns the enumerated column values.
+            </param>
+            <param name="allocator">
+            Callback used to allocate memory.
+            </param>
+            <param name="allocatorContext">
+            Context for the allocation callback.
+            </param>
+            <param name="maxDataSize">
+            Sets a cap on the amount of data to return from a long text or long
+            binary column. This parameter can be used to prevent the enumeration
+            of an extremely large column value.
+            </param>
+            <param name="grbit">Retrieve options.</param>
+            <returns>A warning, error or success.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Implementation.JetApi.JetSetColumns(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.NATIVE_SETCOLUMN*,System.Int32)">
+            <summary>
+            Allows an application to set multiple column values in a single
+            operation. An array of <see cref="T:Microsoft.Isam.Esent.Interop.NATIVE_SETCOLUMN"/> structures is
+            used to describe the set of column values to be set, and to describe
+            input buffers for each column value to be set.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to set the columns on.</param>
+            <param name="setcolumns">
+            An array of <see cref="T:Microsoft.Isam.Esent.Interop.NATIVE_SETCOLUMN"/> structures describing the
+            data to set.
+            </param>
+            <param name="numColumns">
+            Number of entries in the setcolumns parameter.
+            </param>
+            <returns>An error code or warning.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Implementation.JetApi.JetEscrowUpdate(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID,System.Byte[],System.Int32,System.Byte[],System.Int32,System.Int32@,Microsoft.Isam.Esent.Interop.EscrowUpdateGrbit)">
+            <summary>
+            Performs an atomic addition operation on one column. This function allows
+            multiple sessions to update the same record concurrently without conflicts.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to update.</param>
+            <param name="columnid">
+            The column to update. This must be an escrow updatable column.
+            </param>
+            <param name="delta">The buffer containing the addend.</param>
+            <param name="deltaSize">The size of the addend.</param>
+            <param name="previousValue">
+            An output buffer that will recieve the current value of the column. This buffer
+            can be null.
+            </param>
+            <param name="previousValueLength">The size of the previousValue buffer.</param>
+            <param name="actualPreviousValueLength">Returns the actual size of the previousValue.</param>
+            <param name="grbit">Escrow update options.</param>
+            <returns>An error code if the operation fails.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Implementation.JetApi.JetIdle(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.IdleGrbit)">
+            <summary>
+            Performs idle cleanup tasks or checks the version store status in ESE.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="grbit">A combination of JetIdleGrbit flags.</param>
+            <returns>An error code if the operation fails.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Implementation.JetApi.ConvertEnumColumnids(Microsoft.Isam.Esent.Interop.JET_ENUMCOLUMNID[],System.Int32,Microsoft.Isam.Esent.Interop.NATIVE_ENUMCOLUMNID*)">
+            <summary>
+            Convert managed JET_ENUMCOLUMNID objects to NATIVE_ENUMCOLUMNID
+            structures.
+            </summary>
+            <param name="columnids">The columnids to convert.</param>
+            <param name="numColumnids">The number of columnids to convert.</param>
+            <param name="nativecolumnids">The array to store the converted columnids.</param>
+            <returns>The total number of tag entries in the converted structures.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Implementation.JetApi.ConvertEnumColumnidTags(Microsoft.Isam.Esent.Interop.JET_ENUMCOLUMNID[],System.Int32,Microsoft.Isam.Esent.Interop.NATIVE_ENUMCOLUMNID*,System.UInt32*)">
+            <summary>
+            Convert managed rgtagSequence to unmanaged rgtagSequence.
+            </summary>
+            <param name="columnids">The columnids to convert.</param>
+            <param name="numColumnids">The number of columnids to covert.</param>
+            <param name="nativecolumnids">The unmanaged columnids to add the tags to.</param>
+            <param name="tags">
+            Memory to use for converted rgtagSequence. This should be large enough to
+            hold all columnids.
+            </param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Implementation.JetApi.ConvertEnumerateColumnsResult(Microsoft.Isam.Esent.Interop.JET_PFNREALLOC,System.IntPtr,System.UInt32,Microsoft.Isam.Esent.Interop.NATIVE_ENUMCOLUMN*,System.Int32@,Microsoft.Isam.Esent.Interop.JET_ENUMCOLUMN[]@)">
+            <summary>
+            Convert the native (unmanaged) results of JetEnumerateColumns to
+            managed objects. This uses the allocator callback to free some
+            memory as the data is converted.
+            </summary>
+            <param name="allocator">The allocator callback used.</param>
+            <param name="allocatorContext">The allocator callback context.</param>
+            <param name="cEnumColumn">Number of NATIVE_ENUMCOLUMN structures returned.</param>
+            <param name="nativeenumcolumns">NATIVE_ENUMCOLUMN structures.</param>
+            <param name="numColumnValues">Returns the number of converted JET_ENUMCOLUMN objects.</param>
+            <param name="columnValues">Returns the convertd column values.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Implementation.JetApi.GetNativecolumndefs(Microsoft.Isam.Esent.Interop.JET_COLUMNDEF[],System.Int32)">
+            <summary>
+            Make an array of native columndefs from JET_COLUMNDEFs.
+            </summary>
+            <param name="columns">Columndefs to convert.</param>
+            <param name="numColumns">Number of columndefs to convert.</param>
+            <returns>An array of native columndefs.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Implementation.JetApi.SetColumnids(Microsoft.Isam.Esent.Interop.JET_COLUMNDEF[],Microsoft.Isam.Esent.Interop.JET_COLUMNID[],System.UInt32[],System.Int32)">
+            <summary>
+            Set managed columnids from unmanaged columnids. This also sets the columnids
+            in the columndefs.
+            </summary>
+            <param name="columns">The column definitions.</param>
+            <param name="columnids">The columnids to set.</param>
+            <param name="nativecolumnids">The native columnids.</param>
+            <param name="numColumns">The number of columnids to set.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Implementation.JetApi.CreateIndexes(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_INDEXCREATE[],System.Int32)">
+            <summary>
+            Creates indexes over data in an ESE database.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The table to create the index on.</param>
+            <param name="indexcreates">Array of objects describing the indexes to be created.</param>
+            <param name="numIndexCreates">Number of index description objects.</param>
+            <returns>An error code.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Implementation.JetApi.CreateIndexes2(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_INDEXCREATE[],System.Int32)">
+            <summary>
+            Creates indexes over data in an ESE database.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The table to create the index on.</param>
+            <param name="indexcreates">Array of objects describing the indexes to be created.</param>
+            <param name="numIndexCreates">Number of index description objects.</param>
+            <returns>An error code.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Implementation.JetApi.DetermineCapabilities">
+            <summary>
+            Calculates the capabilities of the current Esent version.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Implementation.JetApi.GetVersionFromEsent">
+            <summary>
+            Create an instance and get the current version of Esent.
+            </summary>
+            <returns>The current version of Esent.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Implementation.JetApi.CheckSupportsVistaFeatures">
+            <summary>
+            Check that ESENT supports Vista features. Throws an exception if Vista features
+            aren't supported.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Implementation.JetApi.CheckDataSize``1(System.Collections.Generic.ICollection{``0},System.Int32,System.String)">
+            <summary>
+            Make sure the data and dataSize arguments match.
+            </summary>
+            <param name="data">The data buffer.</param>
+            <param name="dataSize">The size of the data.</param>
+            <param name="argumentName">The name of the size argument.</param>
+            <typeparam name="T">The type of the data.</typeparam>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Implementation.JetApi.CheckNotNull(System.Object,System.String)">
+            <summary>
+            Make sure the given object isn't null. If it is
+            then throw an ArgumentNullException.
+            </summary>
+            <param name="o">The object to check.</param>
+            <param name="paramName">The name of the parameter.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Implementation.JetApi.CheckNotNegative(System.Int32,System.String)">
+            <summary>
+            Make sure the given integer isn't negative. If it is
+            then throw an ArgumentOutOfRangeException.
+            </summary>
+            <param name="i">The integer to check.</param>
+            <param name="paramName">The name of the parameter.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Implementation.JetApi.ThrowUnsupportedApiException(System.String)">
+            <summary>
+            Used when an unsupported API method is called. This 
+            logs an error and throws an InvalidOperationException.
+            </summary>
+            <param name="method">The name of the method.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Implementation.JetApi.TraceFunctionCall(System.String)">
+            <summary>
+            Trace a call to an ESENT function.
+            </summary>
+            <param name="function">The name of the function being called.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Implementation.JetApi.Err(System.Int32)">
+            <summary>
+            Can be used to trap ESENT errors.
+            </summary>
+            <param name="err">The error being returned.</param>
+            <returns>The error.</returns>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.NATIVE_COLUMNDEF">
+            <summary>
+            The native version of the JET_COLUMNDEF structure.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.JET_COLUMNDEF">
+            <summary>
+            Describes a column in a table of an ESENT database.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.JET_COLUMNDEF.GetNativeColumndef">
+            <summary>
+            Returns the unmanaged columndef that represents this managed class.
+            </summary>
+            <returns>A native (interop) version of the JET_COLUMNDEF.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.JET_COLUMNDEF.SetFromNativeColumndef(Microsoft.Isam.Esent.Interop.NATIVE_COLUMNDEF)">
+            <summary>
+            Sets the fields of the object from a native JET_COLUMNDEF struct.
+            </summary>
+            <param name="value">
+            The native columndef to set the values from.
+            </param>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_COLUMNDEF.coltyp">
+            <summary>
+            Gets or sets type of the column.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_COLUMNDEF.cp">
+            <summary>
+            Gets or sets code page of the column. This is only meaningful for columns of type
+            JET_coltyp.Text and JET_coltyp.LongText.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_COLUMNDEF.cbMax">
+            <summary>
+            Gets or sets the maximum length of the column. This is only meaningful for columns of
+            type JET_coltyp.Text, JET_coltyp.LongText, JET_coltyp.Binary and
+            JET_coltyp.LongBinary.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_COLUMNDEF.grbit">
+            <summary>
+            Gets or sets the column options.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_COLUMNDEF.columnid">
+            <summary>
+            Gets the columnid of the column.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.EsentVersion">
+            <summary>
+            Gives information about the version of esent being used.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.EsentVersion.SupportsServer2003Features">
+            <summary>
+            Gets a value indicating whether the current version of esent
+            supports features available in the Windows Server 2003 version of
+            esent.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.EsentVersion.SupportsVistaFeatures">
+            <summary>
+            Gets a value indicating whether the current version of esent
+            supports features available in the Windows Vista version of
+            esent.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.EsentVersion.SupportsWindows7Features">
+            <summary>
+            Gets a value indicating whether the current version of esent
+            supports features available in the Windows 7 version of
+            esent.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.EsentVersion.SupportsUnicodePaths">
+            <summary>
+            Gets a value indicating whether the current version of esent
+            can use non-ASCII paths to access databases.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.EsentVersion.SupportsLargeKeys">
+            <summary>
+            Gets a value indicating whether large (&gt; 255 byte) keys are supported.
+            The key size for an index can be specified in the <see cref="T:Microsoft.Isam.Esent.Interop.JET_INDEXCREATE"/>
+            object.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.EsentVersion.Capabilities">
+            <summary>
+            Gets a description of the current Esent capabilities.
+            </summary>
+            <remarks>
+            We allow this to be set separately so that capabilities can
+            be downgraded for testing.
+            </remarks>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.NATIVE_RECORDLIST">
+            <summary>
+            The native version of the JET_RECORDLIST structure.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.JET_RECORDLIST">
+            <summary>
+            Information about a temporary table containing information
+            about all indexes for a given table.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.JET_RECORDLIST.SetFromNativeRecordlist(Microsoft.Isam.Esent.Interop.NATIVE_RECORDLIST)">
+            <summary>
+            Sets the fields of the object from a native JET_RECORDLIST struct.
+            </summary>
+            <param name="value">
+            The native recordlist to set the values from.
+            </param>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_RECORDLIST.tableid">
+            <summary>
+            Gets tableid of the temporary table. This should be closed
+            when the table is no longer needed.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_RECORDLIST.cRecords">
+            <summary>
+            Gets the number of records in the temporary table.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_RECORDLIST.columnidBookmark">
+            <summary>
+            Gets the columnid of the column in the temporary table which
+            stores the bookmark of the record.
+            The column is of type JET_coltyp.Text.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.Implementation.GCHandleCollection">
+            <summary>
+            A collection of GCHandles for pinned objects. The handles
+            are freed when this object is disposed.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.Implementation.GCHandleCollection.handles">
+            <summary>
+            The handles of the objects being pinned.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Implementation.GCHandleCollection.Dispose">
+            <summary>
+            Disposes of the object.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Implementation.GCHandleCollection.Add(System.Object)">
+            <summary>
+            Add an object to the handle collection. This automatically
+            pins the object.
+            </summary>
+            <param name="value">The object to pin.</param>
+            <returns>
+            The address of the pinned object. This is valid until the
+            GCHandleCollection is disposed.
+            </returns>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.EsentInvalidColumnException">
+            <summary>
+            Exception thrown when a column conversion fails.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.EsentInvalidColumnException.#ctor">
+            <summary>
+            Initializes a new instance of the EsentInvalidColumnException class.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.EsentInvalidColumnException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
+            <summary>
+            Initializes a new instance of the EsentInvalidColumnException class. This constructor
+            is used to deserialize a serialized exception.
+            </summary>
+            <param name="info">The data needed to deserialize the object.</param>
+            <param name="context">The deserialization context.</param>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.EsentInvalidColumnException.Message">
+            <summary>
+            Gets a text message describing the exception.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.SystemParameters">
+            <summary>
+            This class provides static properties to set and get
+            global ESENT system parameters.
+            </summary>
+            <summary>
+            Constants for the ESENT API. These don't have to be looked up via
+            system parameters.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.SystemParameters.BaseNameLength">
+            <summary>
+            The length of the prefix used to name files used by the database
+            engine.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.SystemParameters.NameMost">
+            <summary>
+            Maximum size of a table/column/index name.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.SystemParameters.ColumnMost">
+            <summary>
+            Maximum size for columns which are not JET_coltyp.LongBinary
+            or JET_coltyp.LongText.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.SystemParameters.ColumnsMost">
+            <summary>
+            Maximum number of columns allowed in a table.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.SystemParameters.ColumnsFixedMost">
+            <summary>
+            Maximum number of fixed columns allowed in a table.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.SystemParameters.ColumnsVarMost">
+            <summary>
+            Maximum number of variable-length columns allowed
+            in a table.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.SystemParameters.ColumnsTaggedMost">
+            <summary>
+            Maximum number of tagged columns allowed in a table.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.SystemParameters.PageTempDBSmallest">
+            <summary>
+            The number of pages that gives the smallest possible
+            temporary database.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.SystemParameters.SetIntegerParameter(Microsoft.Isam.Esent.Interop.JET_param,System.Int32)">
+            <summary>
+            Set a system parameter which is an integer.
+            </summary>
+            <param name="param">The parameter to set.</param>
+            <param name="value">The value to set.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.SystemParameters.GetIntegerParameter(Microsoft.Isam.Esent.Interop.JET_param)">
+            <summary>
+            Get a system parameter which is an integer.
+            </summary>
+            <param name="param">The parameter to get.</param>
+            <returns>The value of the parameter.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.SystemParameters.SetBoolParameter(Microsoft.Isam.Esent.Interop.JET_param,System.Boolean)">
+            <summary>
+            Set a system parameter which is a boolean.
+            </summary>
+            <param name="param">The parameter to set.</param>
+            <param name="value">The value to set.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.SystemParameters.GetBoolParameter(Microsoft.Isam.Esent.Interop.JET_param)">
+            <summary>
+            Get a system parameter which is a boolean.
+            </summary>
+            <param name="param">The parameter to get.</param>
+            <returns>The value of the parameter.</returns>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.SystemParameters.CacheSizeMax">
+            <summary>
+            Gets or sets the maximum size of the database page cache. The size
+            is in database pages. If this parameter is left to its default value, then the
+            maximum size of the cache will be set to the size of physical memory when JetInit
+            is called.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.SystemParameters.CacheSize">
+            <summary>
+            Gets or sets the size of the database cache in pages. By default the
+            database cache will automatically tune its size, setting this property
+            to a non-zero value will cause the cache to adjust itself to the target
+            size.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.SystemParameters.DatabasePageSize">
+            <summary>
+            Gets or sets the size of the database pages, in bytes.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.SystemParameters.CacheSizeMin">
+            <summary>
+            Gets or sets the minimum size of the database page cache, in database pages.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.SystemParameters.MaxInstances">
+            <summary>
+            Gets or sets the maximum number of instances that can be created.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.SystemParameters.KeyMost">
+            <summary>
+            Gets the maximum key size. This depends on the Esent version and database
+            page size.
+            <para>
+            Supported on Windows Vista and up. Ignored on Windows XP and
+            Windows Server 2003.
+            </para>
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.SystemParameters.ColumnsKeyMost">
+            <summary>
+            Gets the maximum number of components in a sort or index key.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.SystemParameters.BookmarkMost">
+            <summary>
+            Gets the maximum size of a bookmark. <seealso cref="M:Microsoft.Isam.Esent.Interop.Api.JetGetBookmark(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,System.Byte[],System.Int32,System.Int32@)"/>.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.SystemParameters.LVChunkSizeMost">
+            <summary>
+            Gets the lv chunks size. This depends on the database page size.
+            <para>
+            Supported on Windows 7 and up. Ignored on Windows XP,
+            Windows Server 2003, Windows Vista and Windows Server 2008.
+            </para>
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.SystemParameters.Configuration">
+            <summary>
+            Gets or sets a value specifying the default values for the
+            entire set of system parameters. When this parameter is set to
+            a specific configuration, all system parameter values are reset
+            to their default values for that configuration. If the
+            configuration is set for a specific instance then global system
+            parameters will not be reset to their default values.
+            Small Configuration (0): The database engine is optimized for memory use. 
+            Legacy Configuration (1): The database engine has its traditional defaults.
+            <para>
+            Supported on Windows Vista and up. Ignored on Windows XP and
+            Windows Server 2003.
+            </para>
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.SystemParameters.EnableAdvanced">
+            <summary>
+            Gets or sets a value indicating whether the database engine accepts
+            or rejects changes to a subset of the system parameters. This
+            parameter is used in conjunction with <see cref="P:Microsoft.Isam.Esent.Interop.SystemParameters.Configuration"/> to
+            prevent some system parameters from being set away from the selected
+            configuration's defaults.
+            <para>
+            Supported on Windows Vista and up. Ignored on Windows XP and
+            Windows Server 2003.
+            </para>
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.EsentErrorException">
+            <summary>
+            Base class for ESENT error exceptions.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.EsentErrorException.#ctor(Microsoft.Isam.Esent.Interop.JET_err)">
+            <summary>
+            Initializes a new instance of the EsentErrorException class.
+            </summary>
+            <param name="err">The error code of the exception.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.EsentErrorException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
+            <summary>
+            Initializes a new instance of the EsentErrorException class. This constructor
+            is used to deserialize a serialized exception.
+            </summary>
+            <param name="info">The data needed to deserialize the object.</param>
+            <param name="context">The deserialization context.</param>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.EsentErrorException.Message">
+            <summary>
+            Gets a text message describing the error.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.EsentErrorException.ErrorDescription">
+            <summary>
+            Gets a text description of the error.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.EsentErrorException.Error">
+            <summary>
+            Gets the underlying Esent error for this exception.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.IndexInfo">
+            <summary>
+            Information about one esent index. This is not an interop
+            class, but is used by the meta-data helper methods.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.IndexInfo.Name">
+            <summary>
+            Gets the name of the index.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.IndexInfo.CultureInfo">
+            <summary>
+            Gets the CultureInfo the index is sorted by.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.IndexInfo.CompareOptions">
+            <summary>
+            Gets the CompareOptions for the index.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.IndexInfo.IndexSegments">
+            <summary>
+            Gets the segments of the index.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.IndexInfo.Grbit">
+            <summary>
+            Gets the index options.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.NATIVE_CONDITIONALCOLUMN">
+            <summary>
+            The native version of the JET_CONDITIONALCOLUMN structure.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.JET_CONDITIONALCOLUMN">
+            <summary>
+            Defines how conditional indexing is performed for a given index. A
+            conditional index contains an index entry for only those rows that
+            match the specified condition. However, the conditional column is not
+            part of the index's key, it only controls the presence of the index entry.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.JET_CONDITIONALCOLUMN.GetNativeConditionalColumn">
+            <summary>
+            Gets the NATIVE_CONDITIONALCOLUMN version of this object.
+            </summary>
+            <returns>A NATIVE_CONDITIONALCOLUMN for this object.</returns>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_CONDITIONALCOLUMN.szColumnName">
+            <summary>
+            Gets or sets the name of the conditional column.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_CONDITIONALCOLUMN.grbit">
+            <summary>
+            Gets or sets the options for the conditional index.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.NATIVE_ENUMCOLUMN">
+            <summary>
+            Native (unmanaged) version of the JET_ENUMCOLUMN structure.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.NATIVE_ENUMCOLUMN.columnid">
+            <summary>
+            The columnid that was enumerated.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.NATIVE_ENUMCOLUMN.err">
+            <summary>
+            The column status code from the enumeration of the column.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.NATIVE_ENUMCOLUMN.cbData">
+            <summary>
+            The size of the value that was enumerated for the column.
+            This member is only used if <see cref="F:Microsoft.Isam.Esent.Interop.NATIVE_ENUMCOLUMN.err"/> is equal to
+            <see cref="F:Microsoft.Isam.Esent.Interop.JET_wrn.ColumnSingleValue"/>.
+            </summary>
+            <remarks>
+            The unmanaged JET_ENUMCOLUMN structure is a union so this
+            is aliased with cEnumColumnValue.
+            </remarks>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.NATIVE_ENUMCOLUMN.pvData">
+            <summary>
+            The the value that was enumerated for the column.
+            This member is only used if <see cref="F:Microsoft.Isam.Esent.Interop.NATIVE_ENUMCOLUMN.err"/> is equal to
+            <see cref="F:Microsoft.Isam.Esent.Interop.JET_wrn.ColumnSingleValue"/>.
+            </summary>
+            <remarks>
+            The unmanaged JET_ENUMCOLUMN structure is a union so this
+            is aliased with rgEnumColumnValue.
+            </remarks>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.NATIVE_ENUMCOLUMN.cEnumColumnValue">
+            <summary>
+            Gets or sets the number of entries in rgEnumColumnValue.
+            This member is only used if <see cref="F:Microsoft.Isam.Esent.Interop.NATIVE_ENUMCOLUMN.err"/> is not
+            <see cref="F:Microsoft.Isam.Esent.Interop.JET_wrn.ColumnSingleValue"/>.
+            </summary>
+            <remarks>
+            The unmanaged JET_ENUMCOLUMN structure is a union so this
+            property uses cbData as its backing storage.
+            </remarks>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.NATIVE_ENUMCOLUMN.rgEnumColumnValue">
+            <summary>
+            Gets or sets an array of column values.
+            This member is only used if <see cref="F:Microsoft.Isam.Esent.Interop.NATIVE_ENUMCOLUMN.err"/> is not
+            <see cref="F:Microsoft.Isam.Esent.Interop.JET_wrn.ColumnSingleValue"/>.
+            </summary>
+            <remarks>
+            The unmanaged JET_ENUMCOLUMN structure is a union so this
+            property uses pvData as its backing storage.
+            </remarks>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.JET_ENUMCOLUMN">
+            <summary>
+            Enumerates the column values of a record using the JetEnumerateColumns
+            function. JetEnumerateColumns returns an array of JET_ENUMCOLUMNVALUE
+            structures. The array is returned in memory that was allocated using
+            the callback that was supplied to that function.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.JET_ENUMCOLUMN.SetFromNativeEnumColumn(Microsoft.Isam.Esent.Interop.NATIVE_ENUMCOLUMN)">
+            <summary>
+            Sets the fields of the object from a native JET_ENUMCOLUMN struct.
+            </summary>
+            <param name="value">
+            The native enumcolumn to set the values from.
+            </param>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_ENUMCOLUMN.columnid">
+            <summary>
+            Gets the columnid ID that was enumerated.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_ENUMCOLUMN.err">
+            <summary>
+            Gets the column status code that results from the enumeration.
+            </summary>
+            <seealso cref="F:Microsoft.Isam.Esent.Interop.JET_wrn.ColumnSingleValue"/>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_ENUMCOLUMN.cEnumColumnValue">
+            <summary>
+            Gets the number of column values enumerated for the column.
+            This member is only used if <see cref="P:Microsoft.Isam.Esent.Interop.JET_ENUMCOLUMN.err"/> is not
+            <see cref="F:Microsoft.Isam.Esent.Interop.JET_wrn.ColumnSingleValue"/>.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_ENUMCOLUMN.rgEnumColumnValue">
+            <summary>
+            Gets the enumerated column values for the column.
+            This member is only used if <see cref="P:Microsoft.Isam.Esent.Interop.JET_ENUMCOLUMN.err"/> is not
+            <see cref="F:Microsoft.Isam.Esent.Interop.JET_wrn.ColumnSingleValue"/>.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_ENUMCOLUMN.cbData">
+            <summary>
+            Gets the size of the value that was enumerated for the column.
+            This member is only used if <see cref="P:Microsoft.Isam.Esent.Interop.JET_ENUMCOLUMN.err"/> is equal to
+            <see cref="F:Microsoft.Isam.Esent.Interop.JET_wrn.ColumnSingleValue"/>.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_ENUMCOLUMN.pvData">
+            <summary>
+            Gets the the value that was enumerated for the column.
+            This member is only used if <see cref="P:Microsoft.Isam.Esent.Interop.JET_ENUMCOLUMN.err"/> is equal to
+            <see cref="F:Microsoft.Isam.Esent.Interop.JET_wrn.ColumnSingleValue"/>.
+            This points to memory allocated with the 
+            <see cref="T:Microsoft.Isam.Esent.Interop.JET_PFNREALLOC"/> allocator callback passed to
+            <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetEnumerateColumns(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,System.Int32,Microsoft.Isam.Esent.Interop.JET_ENUMCOLUMNID[],System.Int32@,Microsoft.Isam.Esent.Interop.JET_ENUMCOLUMN[]@,Microsoft.Isam.Esent.Interop.JET_PFNREALLOC,System.IntPtr,System.Int32,Microsoft.Isam.Esent.Interop.EnumerateColumnsGrbit)"/>. Remember to
+            release the memory when finished.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.JET_INSTANCE">
+            <summary>
+            A JET_INSTANCE contains a handle to the instance of the database to use for calls to the JET Api.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_INSTANCE.Value">
+            <summary>
+            The native value.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.JET_INSTANCE.op_Equality(Microsoft.Isam.Esent.Interop.JET_INSTANCE,Microsoft.Isam.Esent.Interop.JET_INSTANCE)">
+            <summary>
+            Determines whether two specified instances of JET_INSTANCE
+            are equal.
+            </summary>
+            <param name="lhs">The first instance to compare.</param>
+            <param name="rhs">The second instance to compare.</param>
+            <returns>True if the two instances are equal.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.JET_INSTANCE.op_Inequality(Microsoft.Isam.Esent.Interop.JET_INSTANCE,Microsoft.Isam.Esent.Interop.JET_INSTANCE)">
+            <summary>
+            Determines whether two specified instances of JET_INSTANCE
+            are not equal.
+            </summary>
+            <param name="lhs">The first instance to compare.</param>
+            <param name="rhs">The second instance to compare.</param>
+            <returns>True if the two instances are not equal.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.JET_INSTANCE.ToString">
+            <summary>
+            Generate a string representation of the structure.
+            </summary>
+            <returns>The structure as a string.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.JET_INSTANCE.Equals(System.Object)">
+            <summary>
+            Returns a value indicating whether this instance is equal
+            to another instance.
+            </summary>
+            <param name="obj">An object to compare with this instance.</param>
+            <returns>True if the two instances are equal.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.JET_INSTANCE.GetHashCode">
+            <summary>
+            Returns the hash code for this instance.
+            </summary>
+            <returns>The hash code for this instance.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.JET_INSTANCE.Equals(Microsoft.Isam.Esent.Interop.JET_INSTANCE)">
+            <summary>
+            Returns a value indicating whether this instance is equal
+            to another instance.
+            </summary>
+            <param name="other">An instance to compare with this instance.</param>
+            <returns>True if the two instances are equal.</returns>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_INSTANCE.Nil">
+            <summary>
+            Gets a null JET_INSTANCE.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.JET_SESID">
+            <summary>
+            A JET_SESID contains a handle to the session to use for calls to the JET Api.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_SESID.Value">
+            <summary>
+            The native value.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.JET_SESID.op_Equality(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_SESID)">
+            <summary>
+            Determines whether two specified instances of JET_SESID
+            are equal.
+            </summary>
+            <param name="lhs">The first instance to compare.</param>
+            <param name="rhs">The second instance to compare.</param>
+            <returns>True if the two instances are equal.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.JET_SESID.op_Inequality(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_SESID)">
+            <summary>
+            Determines whether two specified instances of JET_SESID
+            are not equal.
+            </summary>
+            <param name="lhs">The first instance to compare.</param>
+            <param name="rhs">The second instance to compare.</param>
+            <returns>True if the two instances are not equal.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.JET_SESID.ToString">
+            <summary>
+            Generate a string representation of the structure.
+            </summary>
+            <returns>The structure as a string.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.JET_SESID.Equals(System.Object)">
+            <summary>
+            Returns a value indicating whether this instance is equal
+            to another instance.
+            </summary>
+            <param name="obj">An object to compare with this instance.</param>
+            <returns>True if the two instances are equal.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.JET_SESID.GetHashCode">
+            <summary>
+            Returns the hash code for this instance.
+            </summary>
+            <returns>The hash code for this instance.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.JET_SESID.Equals(Microsoft.Isam.Esent.Interop.JET_SESID)">
+            <summary>
+            Returns a value indicating whether this instance is equal
+            to another instance.
+            </summary>
+            <param name="other">An instance to compare with this instance.</param>
+            <returns>True if the two instances are equal.</returns>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_SESID.Nil">
+            <summary>
+            Gets a null JET_SESID.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.JET_TABLEID">
+            <summary>
+            A JET_TABLEID contains a handle to the database cursor to use for a call to the JET Api.
+            A cursor can only be used with the session that was used to open that cursor.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_TABLEID.Value">
+            <summary>
+            The native value.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.JET_TABLEID.op_Equality(Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_TABLEID)">
+            <summary>
+            Determines whether two specified instances of JET_TABLEID
+            are equal.
+            </summary>
+            <param name="lhs">The first instance to compare.</param>
+            <param name="rhs">The second instance to compare.</param>
+            <returns>True if the two instances are equal.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.JET_TABLEID.op_Inequality(Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_TABLEID)">
+            <summary>
+            Determines whether two specified instances of JET_TABLEID
+            are not equal.
+            </summary>
+            <param name="lhs">The first instance to compare.</param>
+            <param name="rhs">The second instance to compare.</param>
+            <returns>True if the two instances are not equal.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.JET_TABLEID.ToString">
+            <summary>
+            Generate a string representation of the structure.
+            </summary>
+            <returns>The structure as a string.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.JET_TABLEID.Equals(System.Object)">
+            <summary>
+            Returns a value indicating whether this instance is equal
+            to another instance.
+            </summary>
+            <param name="obj">An object to compare with this instance.</param>
+            <returns>True if the two instances are equal.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.JET_TABLEID.GetHashCode">
+            <summary>
+            Returns the hash code for this instance.
+            </summary>
+            <returns>The hash code for this instance.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.JET_TABLEID.Equals(Microsoft.Isam.Esent.Interop.JET_TABLEID)">
+            <summary>
+            Returns a value indicating whether this instance is equal
+            to another instance.
+            </summary>
+            <param name="other">An instance to compare with this instance.</param>
+            <returns>True if the two instances are equal.</returns>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_TABLEID.Nil">
+            <summary>
+            Gets a null JET_TABLEID.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.JET_DBID">
+            <summary>
+            A JET_DBID contains the handle to the database. A database handle is used to manage the
+            schema of a database. It can also be used to manage the tables inside of that database.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_DBID.Value">
+            <summary>
+            The native value.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.JET_DBID.op_Equality(Microsoft.Isam.Esent.Interop.JET_DBID,Microsoft.Isam.Esent.Interop.JET_DBID)">
+            <summary>
+            Determines whether two specified instances of JET_DBID
+            are equal.
+            </summary>
+            <param name="lhs">The first instance to compare.</param>
+            <param name="rhs">The second instance to compare.</param>
+            <returns>True if the two instances are equal.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.JET_DBID.op_Inequality(Microsoft.Isam.Esent.Interop.JET_DBID,Microsoft.Isam.Esent.Interop.JET_DBID)">
+            <summary>
+            Determines whether two specified instances of JET_DBID
+            are not equal.
+            </summary>
+            <param name="lhs">The first instance to compare.</param>
+            <param name="rhs">The second instance to compare.</param>
+            <returns>True if the two instances are not equal.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.JET_DBID.ToString">
+            <summary>
+            Generate a string representation of the structure.
+            </summary>
+            <returns>The structure as a string.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.JET_DBID.Equals(System.Object)">
+            <summary>
+            Returns a value indicating whether this instance is equal
+            to another instance.
+            </summary>
+            <param name="obj">An object to compare with this instance.</param>
+            <returns>True if the two instances are equal.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.JET_DBID.GetHashCode">
+            <summary>
+            Returns the hash code for this instance.
+            </summary>
+            <returns>The hash code for this instance.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.JET_DBID.Equals(Microsoft.Isam.Esent.Interop.JET_DBID)">
+            <summary>
+            Returns a value indicating whether this instance is equal
+            to another instance.
+            </summary>
+            <param name="other">An instance to compare with this instance.</param>
+            <returns>True if the two instances are equal.</returns>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_DBID.Nil">
+            <summary>
+            Gets a null JET_DBID.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.JET_COLUMNID">
+            <summary>
+            A JET_COLUMNID identifies a column within a table.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_COLUMNID.Value">
+            <summary>
+            The native value.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.JET_COLUMNID.op_Equality(Microsoft.Isam.Esent.Interop.JET_COLUMNID,Microsoft.Isam.Esent.Interop.JET_COLUMNID)">
+            <summary>
+            Determines whether two specified instances of JET_COLUMNID
+            are equal.
+            </summary>
+            <param name="lhs">The first instance to compare.</param>
+            <param name="rhs">The second instance to compare.</param>
+            <returns>True if the two instances are equal.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.JET_COLUMNID.op_Inequality(Microsoft.Isam.Esent.Interop.JET_COLUMNID,Microsoft.Isam.Esent.Interop.JET_COLUMNID)">
+            <summary>
+            Determines whether two specified instances of JET_COLUMNID
+            are not equal.
+            </summary>
+            <param name="lhs">The first instance to compare.</param>
+            <param name="rhs">The second instance to compare.</param>
+            <returns>True if the two instances are not equal.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.JET_COLUMNID.ToString">
+            <summary>
+            Generate a string representation of the structure.
+            </summary>
+            <returns>The structure as a string.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.JET_COLUMNID.Equals(System.Object)">
+            <summary>
+            Returns a value indicating whether this instance is equal
+            to another instance.
+            </summary>
+            <param name="obj">An object to compare with this instance.</param>
+            <returns>True if the two instances are equal.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.JET_COLUMNID.GetHashCode">
+            <summary>
+            Returns the hash code for this instance.
+            </summary>
+            <returns>The hash code for this instance.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.JET_COLUMNID.Equals(Microsoft.Isam.Esent.Interop.JET_COLUMNID)">
+            <summary>
+            Returns a value indicating whether this instance is equal
+            to another instance.
+            </summary>
+            <param name="other">An instance to compare with this instance.</param>
+            <returns>True if the two instances are equal.</returns>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_COLUMNID.Nil">
+            <summary>
+            Gets a null JET_COLUMNID.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.JET_ObjInfo">
+            <summary>
+            Info levels for retrieving object info.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_ObjInfo.ListNoStats">
+            <summary>
+            Retrieve a JET_OBJINFOLIST containing information
+            about all object in the table.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.JET_PFNREALLOC">
+            <summary>
+            Callback used by JetEnumerateColumns to allocate memory for its output buffers.
+            </summary>
+            <param name="context">Context given to JetEnumerateColumns.</param>
+            <param name="memory">
+            If non-zero, a pointer to a memory block previously allocated by this callback.
+            </param>
+            <param name="requestedSize">
+            The new size of the memory block (in bytes). If this is 0 and a memory block is
+            specified, that memory block will be freed.
+            </param>
+            <returns>
+            A pointer to newly allocated memory. If memory could not be allocated then
+            <see cref="F:System.IntPtr.Zero"/> should be returned.
+            </returns>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.Table">
+            <summary>
+            A class that encapsulates a JET_TABLEID in a disposable object.
+            This opens an existing table. To create a table use the 
+            JetCreateTable method.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.Table.sesid">
+            <summary>
+            The session used to open the table.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.Table.tableid">
+            <summary>
+            The underlying JET_TABLEID.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.Table.name">
+            <summary>
+            The name of the table.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Table.#ctor(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_DBID,System.String,Microsoft.Isam.Esent.Interop.OpenTableGrbit)">
+            <summary>
+            Initializes a new instance of the Table class. The table is
+            opened from the given database.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="dbid">The database to open the table in.</param>
+            <param name="name">The name of the table.</param>
+            <param name="grbit">JetOpenTable options.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Table.op_Implicit(Microsoft.Isam.Esent.Interop.Table)~Microsoft.Isam.Esent.Interop.JET_TABLEID">
+            <summary>
+            Implicit conversion operator from a Table to a JET_TABLEID. This
+            allows a Table to be used with APIs which expect a JET_TABLEID.
+            </summary>
+            <param name="table">The table to convert.</param>
+            <returns>The JET_TABLEID of the table.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Table.Close">
+            <summary>
+            Close the table.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Table.ReleaseResource">
+            <summary>
+            Free the underlying JET_TABLEID.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.Table.Name">
+            <summary>
+            Gets the name of this table.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.Table.JetTableid">
+            <summary>
+            Gets the JET_TABLEID that this table contains.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.NATIVE_INDEXCREATE">
+            <summary>
+            The native version of the JET_INDEXCREATE structure.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.NATIVE_INDEXCREATE2">
+            <summary>
+            The native version of the JET_INDEXCREATE structure. This version includes the cbKeyMost
+            member, which is only valid on Windows Vista and above.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.JET_INDEXCREATE">
+            <summary>
+            Contains the information needed to create an index over data in an ESE database.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_INDEXCREATE.Unicode">
+            <summary>
+            Option used to indicate that the pidxUnicode member of a NATIVE_INDEXCREATE
+            structure points to a NATIVE_UNICODEINDEX.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.JET_INDEXCREATE.CheckMembersAreValid">
+            <summary>
+            Check this object to make sure its parameters are valid.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.JET_INDEXCREATE.GetNativeIndexcreate">
+            <summary>
+            Gets the native (interop) version of this object.
+            </summary>
+            <returns>The native (interop) version of this object.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.JET_INDEXCREATE.GetNativeIndexcreate2">
+            <summary>
+            Gets the native (interop) version of this object.
+            </summary>
+            <returns>The native (interop) version of this object.</returns>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_INDEXCREATE.szIndexName">
+            <summary>
+            Gets or sets the name of the index to create. 
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_INDEXCREATE.szKey">
+            <summary>
+            Gets or sets the description of the index key. This is a double 
+            null-terminated string of null-delimited tokens. Each token is
+            of the form [direction-specifier][column-name], where
+            direction-specification is either "+" or "-". for example, a
+            szKey of "+abc\0-def\0+ghi\0" will index over the three columns
+            "abc" (in ascending order), "def" (in descending order), and "ghi"
+            (in ascending order).
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_INDEXCREATE.cbKey">
+            <summary>
+            Gets or sets the length, in characters, of szKey including the two terminating nulls.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_INDEXCREATE.grbit">
+            <summary>
+            Gets or sets index creation options.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_INDEXCREATE.ulDensity">
+            <summary>
+            Gets or sets the density of the index.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_INDEXCREATE.pidxUnicode">
+            <summary>
+            Gets or sets the optional unicode comparison options.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_INDEXCREATE.cbVarSegMac">
+            <summary>
+            Gets or sets the maximum length, in bytes, of each column to store in the index.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_INDEXCREATE.rgconditionalcolumn">
+            <summary>
+            Gets or sets the optional conditional columns.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_INDEXCREATE.cConditionalColumn">
+            <summary>
+            Gets or sets the number of conditional columns.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_INDEXCREATE.err">
+            <summary>
+            Gets or sets the error code from creating this index.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_INDEXCREATE.cbKeyMost">
+            <summary>
+            Gets or sets the maximum allowable size, in bytes, for keys in the index.
+            The minimum supported maximum key size is JET_cbKeyMostMin (255) which
+            is the legacy maximum key size. The maximum key size is dependent on
+            the database page size <see cref="F:Microsoft.Isam.Esent.Interop.JET_param.DatabasePageSize"/>. The
+            maximum key size can be retrieved with <see cref="P:Microsoft.Isam.Esent.Interop.SystemParameters.KeyMost"/>.
+            <para>
+            This parameter is ignored on Windows XP and Windows Server 2003.
+            </para>
+            <para>
+            Unlike the unmanaged API, <see cref="F:Microsoft.Isam.Esent.Interop.Vista.VistaGrbits.IndexKeyMost"/>
+            (JET_bitIndexKeyMost) is not needed, it will be added automatically.
+            </para>
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.EsentStopwatch">
+            <summary>
+            Provides a set of methods and properties that you can use to measure
+            ESENT work statistics for a thread. If the current version of ESENT
+            doesn't support <see cref="M:Microsoft.Isam.Esent.Interop.Vista.VistaApi.JetGetThreadStats(Microsoft.Isam.Esent.Interop.Vista.JET_THREADSTATS@)"/> then all 
+            ESENT statistics will be 0.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.EsentStopwatch.stopwatch">
+            <summary>
+            Used to measure how long statistics are collected for.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.EsentStopwatch.statsAtStart">
+            <summary>
+            The stats at the start of our collection.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.EsentStopwatch.StartNew">
+            <summary>
+            Initializes a new EsentStopwatch instance and starts
+            measuring elapsed time. 
+            </summary>
+            <returns>A new, running EsentStopwatch.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.EsentStopwatch.Start">
+            <summary>
+            Starts measuring ESENT work.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.EsentStopwatch.Stop">
+            <summary>
+            Stops measuring ESENT work.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.EsentStopwatch.Reset">
+            <summary>
+            Stops time interval measurement and resets the thread statistics.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.EsentStopwatch.IsRunning">
+            <summary>
+            Gets a value indicating whether the EsentStopwatch timer is running. 
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.EsentStopwatch.ThreadStats">
+            <summary>
+            Gets the total ESENT work stats measured by the current instance.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.EsentStopwatch.Elapsed">
+            <summary>
+            Gets the total elapsed time measured by the current instance.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.NATIVE_ENUMCOLUMNID">
+            <summary>
+            The native (unmanaged) version of the
+            <see cref="T:Microsoft.Isam.Esent.Interop.JET_ENUMCOLUMNID"/> class.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.JET_ENUMCOLUMNID">
+            <summary>
+            Enumerates a specific set of columns and, optionally, a specific set
+            of multiple values for those columns when the JetEnumerateColumns
+            function is used. JetEnumerateColumns optionally takes an array of
+            JET_ENUMCOLUMNID structures.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.JET_ENUMCOLUMNID.CheckDataSize">
+            <summary>
+            Check to see if ctagSequence is negative or greater than the length
+            of rgtagSequence.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.JET_ENUMCOLUMNID.GetNativeEnumColumnid">
+            <summary>
+            Gets the native (interop) version of this object.
+            </summary>
+            <returns>A NATIVE_ENUMCOLUMNID representing this object.</returns>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_ENUMCOLUMNID.columnid">
+            <summary>
+            Gets or sets the columnid ID to enumerate.
+            </summary>
+            <remarks>
+            If the column ID is 0 (zero) then the enumeration of this column is
+            skipped and a corresponding slot in the output array of JET_ENUMCOLUMN
+            structures will be generated with a column state of JET_wrnColumnSkipped.
+            </remarks>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_ENUMCOLUMNID.ctagSequence">
+            <summary>
+            Gets or sets the count of column values (by one-based index) to
+            enumerate for the specified column ID. If ctagSequence is 0 (zero) then
+            rgtagSequence is ignored and all column values for the specified column
+            ID will be enumerated.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_ENUMCOLUMNID.rgtagSequence">
+            <summary>
+            Gets or sets the array of one-based indices into the array of column values for a
+            given column. A single element is an itagSequence which is defined in
+            JET_RETRIEVECOLUMN. An itagSequence of 0 (zero) means "skip". An
+            itagSequence of 1 means return the first column value of the column,
+            2 means the second, and so on.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.Conversions">
+            <summary>
+            Provide methods to convert data and flags between 
+            Win32 and the .NET Framework.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.Conversions.compareOptionsToLcmapFlags">
+            <summary>
+            Maps a CompareOption enumeration to the corresponding LCMapString flag.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.Conversions.lcmapFlagsToCompareOptions">
+            <summary>
+            Maps an LCMapString flag to the corresponding CompareOption enumeration.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Conversions.#cctor">
+            <summary>
+            Initializes static members of the Conversions class. This sets up the
+            conversion mapping dictionaries.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Conversions.CompareOptionsFromLCMapFlags(System.UInt32)">
+            <summary>
+            Given flags for LCMapFlags, turn them into compare options. Unknown options 
+            are ignored.
+            </summary>
+            <param name="lcmapFlags">LCMapString flags.</param>
+            <returns>CompareOptions describing the (known) flags.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Conversions.LCMapFlagsFromCompareOptions(System.Globalization.CompareOptions)">
+            <summary>
+            Give CompareOptions, turn them into flags from LCMapString. Unknown options are ignored.
+            </summary>
+            <param name="compareOptions">The options to convert.</param>
+            <returns>The LCMapString flags that match the compare options. Unsupported options are ignored.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Conversions.InvertDictionary``2(System.Collections.Generic.IDictionary{``0,``1})">
+            <summary>
+            Given a Key=>Value dictionary create an inverted dictionary that maps Value=>Key.
+            </summary>
+            <typeparam name="TValue">The new value type (the key of the current dictionary).</typeparam>
+            <typeparam name="TKey">The new key type (the value if the current dictionary).</typeparam>
+            <param name="dict">The dictionary to invert.</param>
+            <returns>An inverted dictionary.</returns>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.Conversions.NativeMethods">
+            <summary>
+            This class contains the unmanaged constants used in the conversion.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.Conversions.NativeMethods.NORM_IGNORECASE">
+            <summary>
+            Ignore case.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.Conversions.NativeMethods.NORM_IGNORENONSPACE">
+            <summary>
+            Ignore nonspacing chars.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.Conversions.NativeMethods.NORM_IGNORESYMBOLS">
+            <summary>
+            Ignore symbols.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.Conversions.NativeMethods.NORM_IGNOREKANATYPE">
+            <summary>
+            Inore kanatype.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.Conversions.NativeMethods.NORM_IGNOREWIDTH">
+            <summary>
+            Ignore width.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.Conversions.NativeMethods.SORT_STRINGSORT">
+            <summary>
+            Treat punctuation the same as symbols.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.Conversions.NativeMethods.LCMAP_SORTKEY">
+            <summary>
+            Produce a normalized wide-character sort key.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.Vista.VistaColtyp">
+            <summary>
+            Column types that have been added to the Vista version of ESENT.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.Vista.VistaColtyp.UnsignedLong">
+            <summary>
+            Unsigned 32-bit number.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.Vista.VistaColtyp.LongLong">
+            <summary>
+            Signed 64-bit number.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.Vista.VistaColtyp.GUID">
+            <summary>
+            16-byte GUID.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.Vista.VistaColtyp.UnsignedShort">
+            <summary>
+            Unsigned 16-bit number.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.NativeMethods">
+            <summary>
+            Native interop for functions in esent.dll.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.NativeMethods.EsentCharSet">
+            <summary>
+            The CharSet for the methods in the DLL.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.NativeMethods.EsentDll">
+            <summary>
+            The name of the DLL that the methods should be loaded from.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.NativeMethods.#cctor">
+            <summary>
+            Initializes static members of the NativeMethods class.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.NativeMethods.Encoding">
+            <summary>
+            Gets encoding to be used when converting data to/from byte arrays.
+            This should match the CharSet above.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.NATIVE_SETINFO">
+            <summary>
+            The native version of the JET_SETINFO structure.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.JET_SETINFO">
+            <summary>
+            Settings for JetSetColumn.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.JET_SETINFO.GetNativeSetinfo">
+            <summary>
+            Gets the NATIVE_SETINFO structure that represents the object.
+            </summary>
+            <returns>A NATIVE_SETINFO structure whose fields match the class.</returns>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_SETINFO.ibLongValue">
+            <summary>
+            Gets or sets offset to the first byte to be set in a column of type JET_coltypLongBinary or JET_coltypLongText.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_SETINFO.itagSequence">
+            <summary>
+            Gets or sets the sequence number of value in a multi-valued column to be set. The array of values is one-based.
+            The first value is sequence 1, not 0 (zero). If the record column has only one value then 1 should be passed
+            as the itagSequence if that value is being replaced. A value of 0 (zero) means to add a new column value instance
+            to the end of the sequence of column values.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.JET_Move">
+            <summary>
+            Offsets for JetMove.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_Move.First">
+            <summary>
+            Move the cursor to the first index entry.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_Move.Previous">
+            <summary>
+            Move to the previous index entry.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_Move.Next">
+            <summary>
+            Move to the next index entry.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_Move.Last">
+            <summary>
+            Move to the last index entry.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.NATIVE_COLUMNLIST">
+            <summary>
+            The native version of the JET_COLUMNLIST structure.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.JET_COLUMNLIST">
+            <summary>
+            Information about a temporary table containing information
+            about all columns for a given table.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.JET_COLUMNLIST.SetFromNativeColumnlist(Microsoft.Isam.Esent.Interop.NATIVE_COLUMNLIST)">
+            <summary>
+            Sets the fields of the object from a native JET_COLUMNLIST struct.
+            </summary>
+            <param name="value">
+            The native columnlist to set the values from.
+            </param>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_COLUMNLIST.tableid">
+            <summary>
+            Gets tableid of the temporary table. This should be closed
+            when the table is no longer needed.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_COLUMNLIST.cRecord">
+            <summary>
+            Gets the number of records in the temporary table.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_COLUMNLIST.columnidcolumnname">
+            <summary>
+            Gets the columnid of the column in the temporary table which
+            stores the name of the column.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_COLUMNLIST.columnidcolumnid">
+            <summary>
+            Gets the columnid of the column in the temporary table which
+            stores the id of the column.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_COLUMNLIST.columnidcoltyp">
+            <summary>
+            Gets the columnid of the column in the temporary table which
+            stores the type of the column.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_COLUMNLIST.columnidCp">
+            <summary>
+            Gets the columnid of the column in the temporary table which
+            stores the code page of the column.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_COLUMNLIST.columnidcbMax">
+            <summary>
+            Gets the columnid of the column in the temporary table which
+            stores the maximum length of the column.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_COLUMNLIST.columnidgrbit">
+            <summary>
+            Gets the columnid of the column in the temporary table which
+            stores the grbit of the column.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_COLUMNLIST.columnidDefault">
+            <summary>
+            Gets the columnid of the column in the temporary table which
+            stores the default value of the column.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.Vista.VistaGrbits">
+            <summary>
+            Grbits that have been added to the Vista version of ESENT.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.Vista.VistaGrbits.IndexCrossProduct">
+            <summary>
+            Specifying this flag for an index that has more than one key column
+            that is a multi-valued column will result in an index entry being
+            created for each result of a cross product of all the values in
+            those key columns. Otherwise, the index would only have one entry
+            for each multi-value in the most significant key column that is a
+            multi-valued column and each of those index entries would use the
+            first multi-value from any other key columns that are multi-valued columns.
+            <para>
+            For example, if you specified this flag for an index over column
+            A that has the values "red" and "blue" and over column B that has
+            the values "1" and "2" then the following index entries would be
+            created: "red", "1"; "red", "2"; "blue", "1"; "blue", "2". Otherwise,
+            the following index entries would be created: "red", "1"; "blue", "1".
+            </para>
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.Vista.VistaGrbits.IndexDisallowTruncation">
+            <summary>
+            Specifying this flag will cause any update to the index that would
+            result in a truncated key to fail with <see cref="F:Microsoft.Isam.Esent.Interop.JET_err.KeyTruncated"/>.
+            Otherwise, keys will be silently truncated.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.Vista.VistaGrbits.IndexNestedTable">
+            <summary>
+            Index over multiple multi-valued columns but only with values of same itagSequence.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.Vista.VistaGrbits.IndexKeyMost">
+            <summary>
+            Specifying this flag will cause the index to use the maximum key size
+            specified in the cbKeyMost field in the structure. Otherwise, the
+            index will use JET_cbKeyMost (255) as its maximum key size.
+            </summary>
+            <remarks>
+            Set internally when the NATIVE_INDEXCREATE structure is generated.
+            </remarks>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.Vista.VistaGrbits.IndexUnicode">
+            <summary>
+            LCID field of JET_INDEXCREATE actually points to a JET_UNICODEINDEX
+            struct to allow user-defined LCMapString() flags.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.InstanceParameters">
+            <summary>
+            This class provides properties to set and get system parameters
+            on an ESENT instance.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.InstanceParameters.instance">
+            <summary>
+            The instance to set parameters on.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.InstanceParameters.sesid">
+            <summary>
+            The session to set parameters with.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.InstanceParameters.#ctor(Microsoft.Isam.Esent.Interop.JET_INSTANCE)">
+            <summary>
+            Initializes a new instance of the InstanceParameters class.
+            </summary>
+            <param name="instance">The instance to set parameters on.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.InstanceParameters.AddTrailingDirectorySeparator(System.String)">
+            <summary>
+            Add a trailing directory separator character to the string.
+            </summary>
+            <param name="dir">The directory.</param>
+            <returns>The directory with a separator character added (if necesary).</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.InstanceParameters.SetStringParameter(Microsoft.Isam.Esent.Interop.JET_param,System.String)">
+            <summary>
+            Set a system parameter which is a string.
+            </summary>
+            <param name="param">The parameter to set.</param>
+            <param name="value">The value to set.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.InstanceParameters.GetStringParameter(Microsoft.Isam.Esent.Interop.JET_param)">
+            <summary>
+            Get a system parameter which is a string.
+            </summary>
+            <param name="param">The parameter to get.</param>
+            <returns>The value of the parameter.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.InstanceParameters.SetIntegerParameter(Microsoft.Isam.Esent.Interop.JET_param,System.Int32)">
+            <summary>
+            Set a system parameter which is an integer.
+            </summary>
+            <param name="param">The parameter to set.</param>
+            <param name="value">The value to set.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.InstanceParameters.GetIntegerParameter(Microsoft.Isam.Esent.Interop.JET_param)">
+            <summary>
+            Get a system parameter which is an integer.
+            </summary>
+            <param name="param">The parameter to get.</param>
+            <returns>The value of the parameter.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.InstanceParameters.SetBoolParameter(Microsoft.Isam.Esent.Interop.JET_param,System.Boolean)">
+            <summary>
+            Set a system parameter which is a boolean.
+            </summary>
+            <param name="param">The parameter to set.</param>
+            <param name="value">The value to set.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.InstanceParameters.GetBoolParameter(Microsoft.Isam.Esent.Interop.JET_param)">
+            <summary>
+            Get a system parameter which is a boolean.
+            </summary>
+            <param name="param">The parameter to get.</param>
+            <returns>The value of the parameter.</returns>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.InstanceParameters.SystemDirectory">
+            <summary>
+            Gets or sets the relative or absolute file system path of the
+            folder that will contain the checkpoint file for the instance.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.InstanceParameters.TempDirectory">
+            <summary>
+            Gets or sets the relative or absolute file system path of
+            the folder that will contain the temporary database for the instance.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.InstanceParameters.LogFileDirectory">
+            <summary>
+            Gets or sets the relative or absolute file system path of the
+            folder that will contain the transaction logs for the instance.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.InstanceParameters.BaseName">
+            <summary>
+            Gets or sets the three letter prefix used for many of the files used by
+            the database engine. For example, the checkpoint file is called EDB.CHK by
+            default because EDB is the default base name.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.InstanceParameters.EventSource">
+            <summary>
+            Gets or sets an application specific string that will be added to
+            any event log messages that are emitted by the database engine. This allows
+            easy correlation of event log messages with the source application. By default
+            the host application executable name will be used.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.InstanceParameters.MaxSessions">
+            <summary>
+            Gets or sets the number of sessions resources reserved for this instance.
+            A session resource directly corresponds to a JET_SESID.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.InstanceParameters.MaxOpenTables">
+            <summary>
+            Gets or sets the number of B+ Tree resources reserved for this instance.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.InstanceParameters.MaxCursors">
+            <summary>
+            Gets or sets the number of cursor resources reserved for this instance.
+            A cursor resource directly corresponds to a JET_TABLEID.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.InstanceParameters.MaxVerPages">
+            <summary>
+            Gets or sets the maximum number of version store pages reserved
+            for this instance.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.InstanceParameters.MaxTemporaryTables">
+            <summary>
+            Gets or sets the number of temporary table resources for use
+            by an instance. This setting will affect how many temporary tables can be used at
+            the same time. If this system parameter is set to zero then no temporary database
+            will be created and any activity that requires use of the temporary database will
+            fail. This setting can be useful to avoid the I/O required to create the temporary
+            database if it is known that it will not be used.
+            </summary>
+            <remarks>
+            The use of a temporary table also requires a cursor resource.
+            </remarks>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.InstanceParameters.LogFileSize">
+            <summary>
+            Gets or sets the size of the transaction log files. This parameter
+            should be set in units of 1024 bytes (e.g. a setting of 2048 will
+            give 2MB logfiles).
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.InstanceParameters.LogBuffers">
+            <summary>
+            Gets or sets the amount of memory used to cache log records
+            before they are written to the transaction log file. The unit for this
+            parameter is the sector size of the volume that holds the transaction log files.
+            The sector size is almost always 512 bytes, so it is safe to assume that size
+            for the unit. This parameter has an impact on performance. When the database
+            engine is under heavy update load, this buffer can become full very rapidly.
+            A larger cache size for the transaction log file is critical for good update
+            performance under such a high load condition. The default is known to be too small
+            for this case.
+            Do not set this parameter to a number of buffers that is larger (in bytes) than
+            half the size of a transaction log file.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.InstanceParameters.CircularLog">
+            <summary>
+            Gets or sets a value indicating whether circular logging is on.
+            When circular logging is off, all transaction log files that are generated
+            are retained on disk until they are no longer needed because a full backup of the
+            database has been performed. When circular logging is on, only transaction log files
+            that are younger than the current checkpoint are retained on disk. The benefit of
+            this mode is that backups are not required to retire old transaction log files. 
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.InstanceParameters.PageTempDBMin">
+            <summary>
+            Gets or sets the initial size of the temporary database. The size is in
+            database pages. A size of zero indicates that the default size of an ordinary
+            database should be used. It is often desirable for small applications to configure
+            the temporary database to be as small as possible. Setting this parameter to
+            <see cref="F:Microsoft.Isam.Esent.Interop.SystemParameters.PageTempDBSmallest"/> will achieve the smallest
+            temporary database possible.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.InstanceParameters.CheckpointDepthMax">
+            <summary>
+            Gets or sets the threshold in bytes for about how many transaction log
+            files will need to be replayed after a crash. If circular logging is enabled using
+            CircularLog then this parameter will also control the approximate amount
+            of transaction log files that will be retained on disk.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.InstanceParameters.Recovery">
+            <summary>
+            Gets or sets a value indicating whether crash recovery is on.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.InstanceParameters.EnableIndexChecking">
+            <summary>
+            Gets or sets a value indicating whether JetAttachDatabase will check for
+            indexes that were build using an older version of the NLS library in the
+            operating system.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.InstanceParameters.EventSourceKey">
+            <summary>
+            Gets or sets the name of the event log the database engine uses for its event log
+            messages. By default, all event log messages will go to the Application event log. If the registry
+            key name for another event log is configured then the event log messages will go there instead.
+            </summary>  
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.InstanceParameters.NoInformationEvent">
+            <summary>
+            Gets or sets a value indicating whether informational event 
+            log messages that would ordinarily be generated by the
+            database engine will be suppressed.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.InstanceParameters.CreatePathIfNotExist">
+            <summary>
+            Gets or sets a value indicating whether ESENT will silently create folders
+            that are missing in its filesystem paths.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.InstanceParameters.CachedClosedTables">
+            <summary>
+            Gets or sets a value giving the number of B+ Tree resources cached by
+            the instance after the tables they represent have been closed by
+            the application. Large values for this parameter will cause the
+            database engine to use more memory but will increase the speed
+            with which a large number of tables can be opened randomly by
+            the application. This is useful for applications that have a
+            schema with a very large number of tables.
+            <para>
+            Supported on Windows Vista and up. Ignored on Windows XP and
+            Windows Server 2003.
+            </para>
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.InstanceParameters.WaypointLatency">
+            <summary>
+            Gets or sets a the number of logs that esent will defer database
+            flushes for. This can be used to increase database recoverability if
+            failures cause logfiles to be lost.
+            <para>
+            Supported on Windows 7 and up. Ignored on Windows XP,
+            Windows Server 2003, Windows Vista and Windows Server 2008.
+            </para>
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.JET_objtyp">
+            <summary>
+            Type of an ESENT object.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_objtyp.Nil">
+            <summary>
+            Invalid object type.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_objtyp.Table">
+            <summary>
+            Object is a table.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.Vista.VistaParam">
+            <summary>
+            System parameters that have been added to the Vista version of ESENT.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.Vista.VistaParam.CachedClosedTables">
+            <summary>
+            This parameter controls the number of B+ Tree resources cached by
+            the instance after the tables they represent have been closed by
+            the application. Large values for this parameter will cause the
+            database engine to use more memory but will increase the speed
+            with which a large number of tables can be opened randomly by
+            the application. This is useful for applications that have a
+            schema with a very large number of tables.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.Vista.VistaParam.Configuration">
+            <summary>
+            This parameter exposes multiple sets of default values for the
+            entire set of system parameters. When this parameter is set to
+            a specific configuration, all system parameter values are reset
+            to their default values for that configuration. If the
+            configuration is set for a specific instance then global system
+            parameters will not be reset to their default values.
+            Small Configuration (0): The database engine is optimized for memory use. 
+            Legacy Configuration (1): The database engine has its traditional defaults.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.Vista.VistaParam.EnableAdvanced">
+            <summary>
+            This parameter is used to control when the database engine accepts
+            or rejects changes to a subset of the system parameters. This
+            parameter is used in conjunction with <see cref="F:Microsoft.Isam.Esent.Interop.Vista.VistaParam.Configuration"/> to
+            prevent some system parameters from being set away from the selected
+            configuration's defaults.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.Vista.VistaParam.KeyMost">
+            <summary>
+            This read-only parameter indicates the maximum allowable index key
+            length that can be selected for the current database page size
+            (as configured by <see cref="F:Microsoft.Isam.Esent.Interop.JET_param.DatabasePageSize"/>).
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.Windows7.Windows7Grbits">
+            <summary>
+            Grbits that have been added to the Windows 7 version of ESENT.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.Windows7.Windows7Grbits.ColumnCompressed">
+            <summary>
+            Compress data in the column, if possible.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.Windows7.Windows7Grbits.Compressed">
+            <summary>
+            Try to compress the data when storing it.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.Windows7.Windows7Grbits.Uncompressed">
+            <summary>
+            Don't compress the data when storing it.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.Windows7.Windows7Grbits.ReplayIgnoreLostLogs">
+            <summary>
+            Recover without error even if uncommitted logs have been lost. Set 
+            the recovery waypoint with Windows7Param.WaypointLatency to enable
+            this type of recovery.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.Windows7.Windows7Grbits.Dirty">
+            <summary>
+            Terminate without flushing the database cache.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.Windows7.Windows7Grbits.IntrinsicLVsOnly">
+            <summary>
+            Permit only intrinsic LV's (so materialisation is not required simply
+            because a TT has an LV column).
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.Windows7.Windows7Grbits.EnumerateInRecordOnly">
+            <summary>
+            When enumerating column values only retrieve data that is present in
+            the record. This means that BLOB columns will not always be retrieved.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.Instance">
+            <summary>
+            A class that encapsulates a <see cref="T:Microsoft.Isam.Esent.Interop.JET_INSTANCE"/> in a disposable object. The
+            instance must be closed last and closing the instance releases all other
+            resources for the instance.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.Instance.parameters">
+            <summary>
+            Parameters for the instance.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Instance.#ctor(System.String)">
+            <summary>
+            Initializes a new instance of the Instance class. The underlying
+            JET_INSTANCE is allocated, but not initialized.
+            </summary>
+            <param name="name">
+            The name of the instance. This string must be unique within a
+            given process hosting the database engine.
+            </param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Instance.#ctor(System.String,System.String)">
+            <summary>
+            Initializes a new instance of the Instance class. The underlying
+            JET_INSTANCE is allocated, but not initialized.
+            </summary>
+            <param name="name">
+            The name of the instance. This string must be unique within a
+            given process hosting the database engine.
+            </param>
+            <param name="displayName">
+            A display name for the instance. This will be used in eventlog
+            entries.
+            </param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Instance.op_Implicit(Microsoft.Isam.Esent.Interop.Instance)~Microsoft.Isam.Esent.Interop.JET_INSTANCE">
+            <summary>
+            Provide implicit conversion of an Instance object to a JET_INSTANCE
+            structure. This is done so that an Instance can be used anywhere a
+            JET_INSTANCE is required.
+            </summary>
+            <param name="instance">The instance to convert.</param>
+            <returns>The JET_INSTANCE wrapped by the instance.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Instance.Init">
+            <summary>
+            Initialize the JET_INSTANCE.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Instance.Init(Microsoft.Isam.Esent.Interop.InitGrbit)">
+            <summary>
+            Initialize the JET_INSTANCE.
+            </summary>
+            <param name="grbit">
+            Initialization options.
+            </param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Instance.Term">
+            <summary>
+            Terminate the JET_INSTANCE.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Instance.ReleaseHandle">
+            <summary>
+            Release the handle for this instance.
+            </summary>
+            <returns>True if the handle could be released.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Instance.CreateInstanceFromHandle">
+            <summary>
+            Create a JET_INSTANCE from the internal handle value.
+            </summary>
+            <returns>A JET_INSTANCE containing the internal handle.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Instance.CheckObjectIsNotDisposed">
+            <summary>
+            Check to see if this instance is invalid or closed.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.Instance.JetInstance">
+            <summary>
+            Gets the JET_INSTANCE that this instance contains.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.Instance.Parameters">
+            <summary>
+            Gets the InstanceParameters for this instance. 
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.IndexSegment">
+            <summary>
+            Describes one segment of an index.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.IndexSegment.#ctor(System.String,Microsoft.Isam.Esent.Interop.JET_coltyp,System.Boolean,System.Boolean)">
+            <summary>
+            Initializes a new instance of the IndexSegment class.
+            </summary>
+            <param name="name">The name of the indexed column.</param>
+            <param name="coltyp">The type of the column.</param>
+            <param name="isAscending">True if the column is ascending.</param>
+            <param name="isASCII">True if the column is over an ASCII column.</param>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.IndexSegment.ColumnName">
+            <summary>
+            Gets name of the column being indexed.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.IndexSegment.Coltyp">
+            <summary>
+            Gets the type of the column being indexed.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.IndexSegment.IsAscending">
+            <summary>
+            Gets a value indicating whether the index segment is ascending.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.IndexSegment.IsASCII">
+            <summary>
+            Gets a value indicating whether the index segment is over an ASCII text
+            column. This value is only meaningful for text column segments.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.NATIVE_ENUMCOLUMNVALUE">
+            <summary>
+            Native (unmanaged) version of the JET_ENUMCOLUMNVALUE class.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.JET_ENUMCOLUMNVALUE">
+            <summary>
+            Enumerates the column values of a record using the JetEnumerateColumns
+            function. <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetEnumerateColumns(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,System.Int32,Microsoft.Isam.Esent.Interop.JET_ENUMCOLUMNID[],System.Int32@,Microsoft.Isam.Esent.Interop.JET_ENUMCOLUMN[]@,Microsoft.Isam.Esent.Interop.JET_PFNREALLOC,System.IntPtr,System.Int32,Microsoft.Isam.Esent.Interop.EnumerateColumnsGrbit)"/> returns an array of JET_ENUMCOLUMNVALUE
+            structures. The array is returned in memory that was allocated using
+            the callback that was supplied to that function.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.JET_ENUMCOLUMNVALUE.SetFromNativeEnumColumnValue(Microsoft.Isam.Esent.Interop.NATIVE_ENUMCOLUMNVALUE)">
+            <summary>
+            Sets the fields of the object from a native JET_ENUMCOLUMN struct.
+            </summary>
+            <param name="value">
+            The native enumcolumn to set the values from.
+            </param>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_ENUMCOLUMNVALUE.itagSequence">
+            <summary>
+            Gets the column value (by one-based index) that was enumerated.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_ENUMCOLUMNVALUE.err">
+            <summary>
+            Gets the column status code resulting from the enumeration of the
+            column value.
+            </summary>
+            <seealso cref="F:Microsoft.Isam.Esent.Interop.JET_wrn.ColumnNull"/>
+            <seealso cref="F:Microsoft.Isam.Esent.Interop.JET_wrn.ColumnSkipped"/>
+            <seealso cref="F:Microsoft.Isam.Esent.Interop.JET_wrn.ColumnTruncated"/>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_ENUMCOLUMNVALUE.cbData">
+            <summary>
+            Gets the size of the column value for the column.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_ENUMCOLUMNVALUE.pvData">
+            <summary>
+            Gets the value that was enumerated for the column.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.ColumnStream">
+            <summary>
+            This class provides a streaming interface to a long-value column
+            (i.e. a column of type <see cref="F:Microsoft.Isam.Esent.Interop.JET_coltyp.LongBinary"/> or
+            <see cref="F:Microsoft.Isam.Esent.Interop.JET_coltyp.LongText"/>).
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.ColumnStream.MaxLongValueSize">
+            <summary>
+            The size of the biggest long-value column ESENT supports.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.ColumnStream.sesid">
+            <summary>
+            Session to use.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.ColumnStream.tableid">
+            <summary>
+            Cursor to use.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.ColumnStream.columnid">
+            <summary>
+            Columnid to use.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.ColumnStream.ibLongValue">
+            <summary>
+            Current LV offset.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.ColumnStream.#ctor(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_COLUMNID)">
+            <summary>
+            Initializes a new instance of the ColumnStream class.
+            </summary>
+            <param name="sesid">The session to use.</param>
+            <param name="tableid">The cursor to use.</param>
+            <param name="columnid">The columnid of the column to set/retrieve data from.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.ColumnStream.Flush">
+            <summary>
+            Flush the stream.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.ColumnStream.Write(System.Byte[],System.Int32,System.Int32)">
+            <summary>
+            Writes a sequence of bytes to the current stream and advances the current
+            position within this stream by the number of bytes written.
+            </summary>
+            <param name="buffer">The buffer to write from.</param>
+            <param name="offset">The offset in the buffer to write.</param>
+            <param name="count">The number of bytes to write.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.ColumnStream.Read(System.Byte[],System.Int32,System.Int32)">
+            <summary>
+            Reads a sequence of bytes from the current stream and advances the 
+            position within the stream by the number of bytes read.
+            </summary>
+            <param name="buffer">The buffer to read into.</param>
+            <param name="offset">The offset in the buffer to read into.</param>
+            <param name="count">The number of bytes to read.</param>
+            <returns>The number of bytes read into the buffer.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.ColumnStream.SetLength(System.Int64)">
+            <summary>
+            Sets the length of the stream.
+            </summary>
+            <param name="value">The desired length, in bytes.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.ColumnStream.Seek(System.Int64,System.IO.SeekOrigin)">
+            <summary>
+            Sets the position in the current stream.
+            </summary>
+            <param name="offset">Byte offset relative to the origin parameter.</param>
+            <param name="origin">A SeekOrigin indicating the reference point for the new position.</param>
+            <returns>The new position in the current stream.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.ColumnStream.CheckBufferArguments(System.Byte[],System.Int32,System.Int32)">
+            <summary>
+            Check the buffer arguments given to Read/Write .
+            </summary>
+            <param name="buffer">The buffer.</param>
+            <param name="offset">The offset in the buffer to read/write to.</param>
+            <param name="count">The number of bytes to read/write.</param>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.ColumnStream.Itag">
+            <summary>
+            Gets or sets the itag of the column.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.ColumnStream.CanRead">
+            <summary>
+            Gets a value indicating whether the stream supports reading.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.ColumnStream.CanWrite">
+            <summary>
+            Gets a value indicating whether the stream supports writing.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.ColumnStream.CanSeek">
+            <summary>
+            Gets a value indicating whether the stream supports seeking.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.ColumnStream.Position">
+            <summary>
+            Gets or sets the current position in the stream.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.ColumnStream.Length">
+            <summary>
+            Gets the current length of the stream.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.ColumnStream.RetrieveGrbit">
+            <summary>
+            Gets the options that should be used with JetRetrieveColumn.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.NATIVE_UNICODEINDEX">
+            <summary>
+            The native version of the JET_UNICODEINDEX structure.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.JET_UNICODEINDEX">
+            <summary>
+            Customizes how Unicode data gets normalized when an index is created over a Unicode column.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.JET_UNICODEINDEX.GetNativeUnicodeIndex">
+            <summary>
+            Gets the native version of this object.
+            </summary>
+            <returns>The native version of this object.</returns>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_UNICODEINDEX.lcid">
+            <summary>
+            Gets or sets the LCID to be used when normalizing unicode. data.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_UNICODEINDEX.dwMapFlags">
+            <summary>
+            Gets or sets the flags to be used with LCMapString when normalizing unicode data.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.NATIVE_SETCOLUMN">
+            <summary>
+            The native version of the <see cref="T:Microsoft.Isam.Esent.Interop.JET_SETCOLUMN"/> structure.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.JET_SETCOLUMN">
+            <summary>
+            Contains input and output parameters for <see cref="M:Microsoft.Isam.Esent.Interop.Api.JetSetColumns(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_SETCOLUMN[],System.Int32)"/>.
+            Fields in the structure describe what column value to set, how to set it,
+            and where to get the column set data.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.JET_SETCOLUMN.CheckDataSize">
+            <summary>
+            Check to see if cbData is negative or greater than cbData.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.JET_SETCOLUMN.GetNativeSetcolumn">
+            <summary>
+            Gets the NATIVE_SETCOLUMN structure that represents the object.
+            </summary>
+            <returns>A NATIVE_SETCOLUMN structure whose fields match the class.</returns>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_SETCOLUMN.columnid">
+            <summary>
+            Gets or sets the column identifier for a column to set.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_SETCOLUMN.pvData">
+            <summary>
+            Gets or sets a pointer to the data to set.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_SETCOLUMN.cbData">
+            <summary>
+            Gets or sets the size of the data to set.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_SETCOLUMN.grbit">
+            <summary>
+            Gets or sets options for the set column operation.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_SETCOLUMN.ibLongValue">
+            <summary>
+            Gets or sets offset to the first byte to be set in a column of type
+            <see cref="F:Microsoft.Isam.Esent.Interop.JET_coltyp.LongBinary"/> or <see cref="F:Microsoft.Isam.Esent.Interop.JET_coltyp.LongText"/>.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_SETCOLUMN.itagSequence">
+            <summary>
+            Gets or sets the sequence number of value in a multi-valued column to be set. The array of values is one-based.
+            The first value is sequence 1, not 0 (zero). If the record column has only one value then 1 should be passed
+            as the itagSequence if that value is being replaced. A value of 0 (zero) means to add a new column value instance
+            to the end of the sequence of column values.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_SETCOLUMN.err">
+            <summary>
+            Gets the error code or warning returned from the set column operation.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.JET_coltyp">
+            <summary>
+            ESENT column types.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_coltyp.Nil">
+            <summary>
+            Null column type. Invalid for column creation.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_coltyp.Bit">
+            <summary>
+            True, False or NULL.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_coltyp.UnsignedByte">
+            <summary>
+            1-byte integer, unsigned.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_coltyp.Short">
+            <summary>
+            2-byte integer, signed.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_coltyp.Long">
+            <summary>
+            4-byte integer, signed.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_coltyp.Currency">
+            <summary>
+            8-byte integer, signed.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_coltyp.IEEESingle">
+            <summary>
+            4-byte IEEE single-precisions.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_coltyp.IEEEDouble">
+            <summary>
+            8-byte IEEE double-precision.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_coltyp.DateTime">
+            <summary>
+            Integral date, fractional time.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_coltyp.Binary">
+            <summary>
+            Binary data, up to 255 bytes.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_coltyp.Text">
+            <summary>
+            Text data, up to 255 bytes.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_coltyp.LongBinary">
+            <summary>
+            Binary data, up to 2GB.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_coltyp.LongText">
+            <summary>
+            Text data, up to 2GB.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.Session">
+            <summary>
+            A class that encapsulates a JET_SESID in a disposable object.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.Session.sesid">
+            <summary>
+            The underlying JET_SESID.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Session.#ctor(Microsoft.Isam.Esent.Interop.JET_INSTANCE)">
+            <summary>
+            Initializes a new instance of the Session class. A new
+            JET_SESSION is allocated from the given instance.
+            </summary>
+            <param name="instance">The instance to start the session in.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Session.op_Implicit(Microsoft.Isam.Esent.Interop.Session)~Microsoft.Isam.Esent.Interop.JET_SESID">
+            <summary>
+            Implicit conversion operator from a Session to a JET_SESID. This
+            allows a Session to be used with APIs which expect a JET_SESID.
+            </summary>
+            <param name="session">The session to convert.</param>
+            <returns>The JET_SESID of the session.</returns>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Session.End">
+            <summary>
+            Terminate the session.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Session.ReleaseResource">
+            <summary>
+            Free the underlying JET_SESID
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.Session.JetSesid">
+            <summary>
+            Gets the JET_SESID that this session contains.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.Update">
+            <summary>
+            A class that encapsulates an update on a JET_TABLEID.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.Update.sesid">
+            <summary>
+            The underlying JET_SESID.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.Update.tableid">
+            <summary>
+            The underlying JET_TABLEID.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Update.#ctor(Microsoft.Isam.Esent.Interop.JET_SESID,Microsoft.Isam.Esent.Interop.JET_TABLEID,Microsoft.Isam.Esent.Interop.JET_prep)">
+            <summary>
+            Initializes a new instance of the Update class. This automatically
+            begins an update. The update will be cancelled if
+            not explicitly saved.
+            </summary>
+            <param name="sesid">The session to start the transaction for.</param>
+            <param name="tableid">The tableid to prepare the update for.</param>
+            <param name="prep">The type of update.</param>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Update.Save(System.Byte[],System.Int32,System.Int32@)">
+            <summary>
+            Update the tableid.
+            </summary>
+            <param name="bookmark">Returns the bookmark of the updated record. This can be null.</param>
+            <param name="bookmarkSize">The size of the bookmark buffer.</param>
+            <param name="actualBookmarkSize">Returns the actual size of the bookmark.</param>
+            <remarks>
+            Save is the final step in performing an insert or an update. The update is begun by
+            calling creating an Update object and then by calling JetSetColumn or JetSetColumns one or more times
+            to set the record state. Finally, Update is called to complete the update operation.
+            Indexes are updated only by Update or and not during JetSetColumn or JetSetColumns
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Update.Save">
+            <summary>
+            Update the tableid.
+            </summary>
+            <remarks>
+            Save is the final step in performing an insert or an update. The update is begun by
+            calling creating an Update object and then by calling JetSetColumn or JetSetColumns one or more times
+            to set the record state. Finally, Update is called to complete the update operation.
+            Indexes are updated only by Update or and not during JetSetColumn or JetSetColumns
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Update.Cancel">
+            <summary>
+            Cancel the update.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.Update.ReleaseResource">
+            <summary>
+            Called when the transaction is being disposed while active.
+            This should rollback the transaction.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.NATIVE_INDEXLIST">
+            <summary>
+            The native version of the JET_INDEXLIST structure.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.JET_INDEXLIST">
+            <summary>
+            Information about a temporary table containing information
+            about all indexes for a given table.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.JET_INDEXLIST.SetFromNativeIndexlist(Microsoft.Isam.Esent.Interop.NATIVE_INDEXLIST)">
+            <summary>
+            Sets the fields of the object from a native JET_INDEXLIST struct.
+            </summary>
+            <param name="value">
+            The native indexlist to set the values from.
+            </param>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_INDEXLIST.tableid">
+            <summary>
+            Gets tableid of the temporary table. This should be closed
+            when the table is no longer needed.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_INDEXLIST.cRecord">
+            <summary>
+            Gets the number of records in the temporary table.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_INDEXLIST.columnidindexname">
+            <summary>
+            Gets the columnid of the column in the temporary table which
+            stores the name of the index.
+            The column is of type JET_coltyp.Text.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_INDEXLIST.columnidgrbitIndex">
+            <summary>
+            Gets the columnid of the column in the temporary table which
+            stores the the grbits used on the index. See <see cref="T:Microsoft.Isam.Esent.Interop.CreateIndexGrbit"/>.
+            The column is of type JET_coltyp.Long.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_INDEXLIST.columnidcColumn">
+            <summary>
+            Gets the columnid of the column in the temporary table which
+            stores the number of columns in the index key.
+            The column is of type JET_coltyp.Long.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_INDEXLIST.columnidiColumn">
+            <summary>
+            Gets the columnid of the column in the temporary table which
+            stores the index of of this column in the index key.
+            The column is of type JET_coltyp.Long.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_INDEXLIST.columnidcolumnid">
+            <summary>
+            Gets the columnid of the column in the temporary table which
+            stores the columnid of the column being indexed.
+            The column is of type JET_coltyp.Long.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_INDEXLIST.columnidcoltyp">
+            <summary>
+            Gets the columnid of the column in the temporary table which
+            stores the column type of the column being indexed.
+            The column is of type JET_coltyp.Long.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_INDEXLIST.columnidLangid">
+            <summary>
+            Gets the columnid of the column in the temporary table which
+            stores the language id (LCID) of the index.
+            The column is of type JET_coltyp.Short.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_INDEXLIST.columnidCp">
+            <summary>
+            Gets the columnid of the column in the temporary table which
+            stores the code page of the indexed column.
+            The column is of type JET_coltyp.Short.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_INDEXLIST.columnidgrbitColumn">
+            <summary>
+            Gets the columnid of the column in the temporary table which
+            stores the grbit that apply to the indexed column. See <see cref="T:Microsoft.Isam.Esent.Interop.IndexKeyGrbit"/>.
+            The column is of type JET_coltyp.Long.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_INDEXLIST.columnidcolumnname">
+            <summary>
+            Gets the columnid of the column in the temporary table which
+            stores the grbit that apply to the indexed column. See <see cref="T:Microsoft.Isam.Esent.Interop.IndexKeyGrbit"/>.
+            The column is of type JET_coltyp.Text.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_INDEXLIST.columnidLCMapFlags">
+            <summary>
+            Gets the columnid of the column in the temporary table which
+            stores the unicode normalization flags for the index.
+            The column is of type JET_coltyp.Long.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.JET_prep">
+            <summary>
+            Update types for JetPrepareUpdate.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_prep.Insert">
+            <summary>
+             This flag causes the cursor to prepare for an insert of a new record.
+             All the data is initialized to the default state for the record.
+             If the table has an auto-increment column, then a new value is
+             assigned to this record regardless of whether the update ultimately
+             succeeds, fails or is cancelled.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_prep.Replace">
+            <summary>
+             This flag causes the cursor to prepare for a replace of the current
+             record. If the table has a version column, then the version column
+             is set to the next value in its sequence. If this update does not
+             complete, then the version value in the record will be unaffected.
+             An update lock is taken on the record to prevent other sessions
+             from updating this record before this session completes.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_prep.Cancel">
+            <summary>
+             This flag causes JetPrepareUpdate to cancel the update for this cursor.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_prep.ReplaceNoLock">
+            <summary>
+             This flag is similar to JET_prepReplace, but no lock is taken to prevent
+             other sessions from updating this record. Instead, this session may receive
+             JET_errWriteConflict when it calls JetUpdate to complete the update.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_prep.InsertCopy">
+            <summary>
+             This flag causes the cursor to prepare for an insert of a copy of the
+             existing record. There must be a current record if this option is used.
+             The initial state of the new record is copied from the current record.
+             Long values that are stored off-record are virtually copied.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Isam.Esent.Interop.JET_prep.InsertCopyDeleteOriginal">
+            <summary>
+             This flag causes the cursor to prepare for an insert of the same record,
+             and a delete or the original record. It is used in cases in which the
+             primary key has changed.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.NATIVE_INDEXRANGE">
+            <summary>
+            The native version of the JET_INDEXRANGE structure.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.JET_INDEXRANGE">
+            <summary>
+            Identifies an index range when it is used with the JetIntersectIndexes function.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.JET_INDEXRANGE.#ctor">
+            <summary>
+            Initializes a new instance of the JET_INDEXRANGE class.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Isam.Esent.Interop.JET_INDEXRANGE.GetNativeIndexRange">
+            <summary>
+            Get a NATIVE_INDEXRANGE structure representing the object.
+            </summary>
+            <returns>A NATIVE_INDEXRANGE whose members match the class.</returns>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_INDEXRANGE.tableid">
+            <summary>
+            Gets or sets the cursor containing the index range. The cursor should have an
+            index range set with JetSetIndexRange.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.JET_INDEXRANGE.grbit">
+            <summary>
+            Gets or sets the indexrange option.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Isam.Esent.Interop.Implementation.JetCapabilities">
+            <summary>
+            Describes the functionality exposed by an object which implements IJetApi.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.Implementation.JetCapabilities.SupportsServer2003Features">
+            <summary>
+            Gets or sets a value indicating whether Windows Server 2003 features
+            (in the Interop.Server2003 namespace) are supported.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.Implementation.JetCapabilities.SupportsVistaFeatures">
+            <summary>
+            Gets or sets a value indicating whether Vista features (in the
+            Interop.Vista namespace) are supported.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.Implementation.JetCapabilities.SupportsWindows7Features">
+            <summary>
+            Gets or sets a value indicating whether Win7 features (in the
+            Interop.Windows7 namespace) are supported.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.Implementation.JetCapabilities.SupportsUnicodePaths">
+            <summary>
+            Gets or sets a value indicating whether unicode file paths are supported.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.Implementation.JetCapabilities.SupportsLargeKeys">
+            <summary>
+            Gets or sets a value indicating whether large (&gt; 255 byte) keys are supported.
+            The key size for an index can be specified in the <see cref="T:Microsoft.Isam.Esent.Interop.JET_INDEXCREATE"/>
+            object.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Isam.Esent.Interop.Implementation.JetCapabilities.ColumnsKeyMost">
+            <summary>
+            Gets or sets the maximum number of components in a sort or index key.
+            </summary>
+        </member>
+    </members>
+</doc>
thirdparty/rhino.queues/license.txt
@@ -0,0 +1,25 @@
+Copyright (c) 2005 - 2009 Ayende Rahien (ayende@ayende.com)
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright notice,
+    this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright notice,
+    this list of conditions and the following disclaimer in the documentation
+    and/or other materials provided with the distribution.
+    * Neither the name of Ayende Rahien nor the names of its
+    contributors may be used to endorse or promote products derived from this
+    software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
\ No newline at end of file
thirdparty/rhino.queues/log4net.dll
Binary file
thirdparty/rhino.queues/Rhino.Queues.dll
Binary file
thirdparty/rhino.queues/Wintellect.Threading.dll
Binary file
thirdparty/rhino.queues/Wintellect.Threading.xml
@@ -0,0 +1,3330 @@
+<?xml version="1.0"?>
+<doc>
+    <assembly>
+        <name>Wintellect.Threading</name>
+    </assembly>
+    <members>
+        <member name="T:Wintellect.CommandArgumentParser.CmdArgParser">
+            <summary>
+            A class that parses a command-line string into its individual arguments.
+            </summary>
+        </member>
+        <member name="M:Wintellect.CommandArgumentParser.CmdArgParser.Usage(System.Type)">
+            <summary>
+            Returns a string indicating the valid command-line arguments.
+            </summary>
+            <param name="optionType">The type adorned with custom 
+            attributes that indicate the valid command-line arguments.</param>
+            <returns>A string indicating the valid command-line arguments.</returns>
+        </member>
+        <member name="M:Wintellect.CommandArgumentParser.CmdArgParser.Parse(Wintellect.CommandArgumentParser.ICmdArgs,System.String[])">
+            <summary>
+            Parses a set of command-line arguments populating the fields/properties of an ICmdArgs class object.
+            </summary>
+            <param name="cmdArgObj">Identifies the object whose fields/properties 
+            should be set based on the command-line arguments.</param>
+            <param name="args">Identifies the command-line arguments.</param>
+        </member>
+        <member name="M:Wintellect.CommandArgumentParser.CmdArgParser.BreakStringIntoLinesOfSpecifiedWidth(System.String,System.Int32)">
+            <summary>
+            Breaks a string into lines where no line is more than the specified width.
+            </summary>
+            <param name="message">The string to break into lines.</param>
+            <param name="width">The maximum number of characters per line.</param>
+            <returns></returns>
+        </member>
+        <member name="T:Wintellect.CommandArgumentParser.ICmdArgs">
+            <summary>
+            A type containing fields/properties to be populated from 
+            command-line arguments must implements this interface.
+            </summary>
+        </member>
+        <member name="M:Wintellect.CommandArgumentParser.ICmdArgs.Usage(System.String)">
+            <summary>
+            This method is called when a command-line argument fails to parse correctly.
+            </summary>
+            <param name="errorInfo">Indicates the command--line argument that failed to parse.</param>
+        </member>
+        <member name="M:Wintellect.CommandArgumentParser.ICmdArgs.Validate">
+            <summary>
+            This method is called after all the command-line arguments have been parsed.
+            </summary>
+        </member>
+        <member name="M:Wintellect.CommandArgumentParser.ICmdArgs.ProcessStandAloneArgument(System.String)">
+            <summary>
+            This method is called as stand-alone arguments are parsed.
+            </summary>
+            <param name="arg">Indicates the value of the stand-alone argument.</param>
+        </member>
+        <member name="T:Wintellect.Threading.ResourceLocks.OptexResourceLock">
+            <summary>
+            A fast mutual-exclusive lock
+            </summary>
+        </member>
+        <member name="T:Wintellect.Threading.ResourceLocks.ResourceLock">
+            <summary>A base class allowing the easy implementation of reader/writer locks.</summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.ResourceLock.PerformDeadlockDetection(System.Boolean)">
+            <summary>
+            Turns deadlock detection or or off
+            </summary>
+            <param name="enable">true to turn on deadlock detection; false to turn it off.</param>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.ResourceLock.#ctor(Wintellect.Threading.ResourceLocks.ResourceLockOptions)">
+            <summary>Initializes a new instance of a reader/writer lock indicating whether the lock is really a mutual-exclusive lock 
+            and whether the lock requires that any thread that enters it must be the same thread to exit it.</summary>
+            <param name="resourceLockOptions">true if this lock really only allows one thread at a time into it; otherwise false.</param>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.ResourceLock.Dispose">
+            <summary>Releases all resources used by the reader/writer lock.</summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.ResourceLock.Dispose(System.Boolean)">
+            <summary>Releases all resources used by the reader/writer lock.</summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.ResourceLock.CurrentReaderCount">
+            <summary>Returns the number of reader threads currently owning the lock.</summary>
+            <returns>The number of reader threads in the lock.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.ResourceLock.CurrentWriterCount">
+            <summary>Returns the number of writer threads currently owning the lock.</summary>
+            <returns>The number of writer threads in the lock.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.ResourceLock.CurrentlyFree">
+            <summary>Returns true if no thread currentl own the lock.</summary>
+            <returns>true if no thread currentl own the lock.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.ResourceLock.WaitToWrite">
+            <summary>Allows the calling thread to acquire the lock for writing.</summary>
+            <returns>A object that can be used to release the writer lock.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.ResourceLock.OnWaitToWrite">
+            <summary>Derived class overrides <c>OnWaitToWrite</c> to provide specific writer locking semantics.</summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.ResourceLock.DoneWriting">
+            <summary>Allows the calling thread to release the writer lock.</summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.ResourceLock.OnDoneWriting">
+            <summary>Derived class overrides <c>OnDoneWriting</c> to provide specific writer unlocking semantics.</summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.ResourceLock.WaitToRead">
+            <summary>Allows the calling thread to acquire the lock for reading.</summary>
+            <returns>A object that can be used to release the reader lock.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.ResourceLock.OnWaitToRead">
+            <summary>Derived class overrides <c>OnWaitToRead</c> to provide specific reader locking semantics.</summary>
+            <remarks>You do not need to override this method if the specific lock provides mutual-exclusive locking semantics.</remarks>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.ResourceLock.DoneReading">
+            <summary>Allows the calling thread to release the reader lock.</summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.ResourceLock.OnDoneReading">
+            <summary>Derived class overrides <c>OnDoneReading</c> to provide specific reader unlocking semantics.</summary>
+            <remarks>You do not need to override this method if the specific lock provides mutual-exclusive locking semantics.</remarks>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.ResourceLock.StressPause">
+            <summary>If<c>Stress</c> is defined during compilation, calls to this method cause the calling thread to sleep.</summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.ResourceLock.StallThread">
+            <summary>Allows calling thread to yield CPU time to another thread.</summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.ResourceLock.IfThen(System.Int32@,System.Int32,System.Int32)">
+            <summary>Compares two values for equality and, if they are equal, replaces one of the values.</summary>
+            <return>Returns true if the value in <paramref name="val"/> was equal the the value of <paramref name="if"/>.</return>
+            <param name="value">The destination, whose value is compared with <paramref name="if"/> and possibly replaced with <paramref name="then"/>.</param>
+            <param name="if">The value that is compared to the value at <paramref name="value"/>.</param>
+            <param name="then">The value that might get placed into <paramref name="value"/>.</param>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.ResourceLock.IfThen(System.Int32@,System.Int32,System.Int32,System.Int32@)">
+            <summary>Compares two values for equality and, if they are equal, replaces one of the values.</summary>
+            <remarks>The previous value in <paramref name="value"/> is returned in <paramref name="previousValue"/>.</remarks>
+            <return>Returns true if the value in <paramref name="value"/> was equal the the value of <paramref name="if"/>.</return>
+            <param name="value">The destination, whose value is compared with <paramref name="if"/> and possibly replaced with <paramref name="then"/>.</param>
+            <param name="if">The value that is compared to the value at <paramref name="value"/>.</param>
+            <param name="then">The value that might get placed into <paramref name="value"/>.</param>
+            <param name="previousValue">The previous value that was in <paramref name="value"/> prior to calling this method.</param>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.ResourceLock.ToString(System.String)">
+            <summary>Returns the object's string representation.</summary>
+            <return>A <c>String</c> containing the object's string representation.</return>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.ResourceLock.ToString(System.IFormatProvider)">
+            <summary>Returns the object's string representation.</summary>
+            <return>A <c>String</c> containing the object's string representation.</return>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.ResourceLock.ToString(System.String,System.IFormatProvider)">
+            <summary>Returns the object's string representation.</summary>
+            <param name="format">If <c>null</c> or <c>"extra"</c> is allowed.</param>
+            <param name="formatProvider">Not used.</param>
+            <return>A <c>String</c> containing the object's string representation.</return>
+        </member>
+        <member name="P:Wintellect.Threading.ResourceLocks.ResourceLock.IsDeadlockDetectionOn">
+            <summary>
+            Indicates if deadlock detection is currently on or off.
+            </summary>
+        </member>
+        <member name="P:Wintellect.Threading.ResourceLocks.ResourceLock.IsMutualExclusive">
+            <summary>Indicates whether the read/writer lock treats all requests as mutual-exclusive.</summary>
+            <returns>True if the reader/writer lock class allows just one thread at a time.</returns>
+        </member>
+        <member name="P:Wintellect.Threading.ResourceLocks.ResourceLock.SupportsRecursion">
+            <summary>Indicates whether the read/writer lock supports recursion.</summary>
+            <returns>True if the reader/writer lock supports recursion.</returns>
+        </member>
+        <member name="P:Wintellect.Threading.ResourceLocks.ResourceLock.AcquiringThreadMustRelease">
+            <summary>Indicates whether the thread that acquires the lock must also release the lock.</summary>
+            <returns>True if the thread that requires the lock must also release it.</returns>
+        </member>
+        <member name="P:Wintellect.Threading.ResourceLocks.ResourceLock.ImmuneFromDeadlockDetection">
+            <summary>Indicates whether deadlock detection applies to this lock or not.</summary>
+            <returns>True if deadlock detection doesn't apply to this lock.</returns>
+        </member>
+        <member name="P:Wintellect.Threading.ResourceLocks.ResourceLock.Name">
+            <summary>
+            The name associated with this lock for debugging purposes.
+            </summary>
+        </member>
+        <member name="T:Wintellect.Threading.ResourceLocks.ConditionVariable">
+            <summary>
+            Adds condition variable support to a ResourceLock class.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.ConditionVariable.Dispose">
+            <summary>
+            Releases all resources used by the ConditionVariable.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.ConditionVariable.Dispose(System.Boolean)">
+            <summary>
+            Releases all resources associated with the ConditionVariable
+            </summary>
+            <param name="disposing"></param>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.ConditionVariable.#ctor">
+            <summary>
+            Constructs a ConditionVariable object.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.ConditionVariable.CVWait(Wintellect.Threading.ResourceLocks.ResourceLock)">
+            <summary>
+            Causes the calling thread to enter a condition variable wait using the specified ResourceLock.
+            </summary>
+            <param name="resourceLock">A reference to the ResourceLock object that will be 
+            temporarily released while waiting for the condition to change.</param>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.ConditionVariable.CVWait(Wintellect.Threading.ResourceLocks.ResourceLock,System.Boolean)">
+            <summary>
+            Causes the calling thread to enter a condition variable wait using the specified ResourceLock.
+            </summary>
+            <param name="resourceLock">A reference to the ResourceLock object that will be 
+            temporarily released while waiting for the condition to change.</param>
+            <param name="reacquireForWriting">true if the ResourceLock should be reacquired for writing when the condition changes; 
+            false if the lock should be reacquired for reading when the condition changes.</param>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.ConditionVariable.CVPulseOne">
+            <summary>
+            Wakes a single thread that is currently inside a call to CVWait.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.ConditionVariable.CVPulseAll">
+            <summary>
+            Wakes all threads that are currently inside a call to CVWait.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.OptexResourceLock.#ctor">
+            <summary>
+            Constructs an OptexResourceLock.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.OptexResourceLock.Dispose(System.Boolean)">
+            <summary>
+            Allows the object to clean itself up.
+            </summary>
+            <param name="disposing">true if the object is being disposed; false if being finalized.</param>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.OptexResourceLock.OnWaitToWrite">
+            <summary>
+            Implements the ResourceLock's WaitToWrite behavior.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.OptexResourceLock.OnDoneWriting">
+            <summary>
+            Implements the ResourceLock's DoneWriting behavior.
+            </summary>
+        </member>
+        <member name="T:Wintellect.Threading.ResourceLocks.RecursiveOptex">
+            <summary>
+            Implements a recursive mutual-exclusive lock
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.RecursiveOptex.#ctor(System.Int32)">
+            <summary>
+            Constructs a RecursiveOptex with the specified user-mode spin count
+            </summary>
+            <param name="spinCount">The number of times the lock should spin in user-mode
+            when there is contention on the lock before waiting in the kernel.</param>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.RecursiveOptex.Dispose">
+            <summary>
+            Allows the object to clean itself up.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.RecursiveOptex.Enter">
+            <summary>
+            Causes the calling thread to enter the lock.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.RecursiveOptex.Exit">
+            <summary>
+            Causes the calling thread to release the lock.
+            </summary>
+        </member>
+        <member name="T:Wintellect.Threading.ResourceLocks.Diagnostics.ThreadSafeCheckerResourceLockObserver">
+            <summary>
+            This class performs various sanity checks on a ResourceLock-derived type 
+            making sure that the lock is performing correctly 
+            </summary>
+        </member>
+        <member name="T:Wintellect.Threading.ResourceLocks.Diagnostics.ResourceLockObserver">
+            <summary>
+            An abstract class that all ResourceLockObserver classes derive from.
+            </summary>
+        </member>
+        <member name="T:Wintellect.Threading.ResourceLocks.Diagnostics.ResourceLockDelegator">
+            <summary>
+            An abstract class that delegates a lot of ResourceLock behavior to an inner ResourceLock.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.Diagnostics.ResourceLockDelegator.#ctor(Wintellect.Threading.ResourceLocks.ResourceLock)">
+            <summary>
+            Constructs a ResourceLockDelegator over the spefied ResourceLock.
+            </summary>
+            <param name="resLock">The innter ResourceLock.</param>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.Diagnostics.ResourceLockDelegator.#ctor(Wintellect.Threading.ResourceLocks.ResourceLock,Wintellect.Threading.ResourceLocks.ResourceLockOptions)">
+            <summary>
+            Constructs a ResourceLockDelegator over the spefied ResourceLock.
+            </summary>
+            <param name="resLock">The innter ResourceLock.</param>
+            <param name="resourceLockOptions">Indicates the flags to use with this specified lock.</param>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.Diagnostics.ResourceLockDelegator.Equals(System.Object)">
+            <summary>
+            Determines whether the specified Object is equal to the current Object.
+            </summary>
+            <param name="obj">The Object to compare with the current Object.</param>
+            <returns>true if the specified Object is equal to the current Object; otherwise, false.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.Diagnostics.ResourceLockDelegator.GetHashCode">
+            <summary>
+            Serves as a hash function for a particular type.
+            </summary>
+            <returns>A hash code for the current Object.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.Diagnostics.ResourceLockDelegator.Dispose(System.Boolean)">
+            <summary>
+            Allows the object to clean itself up.
+            </summary>
+            <param name="disposing">true if Dispose is being called; false if the object is being finalized.</param>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.Diagnostics.ResourceLockDelegator.OnWaitToWrite">
+            <summary>
+            Implements the ResourceLock's WaitToWrite behavior.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.Diagnostics.ResourceLockDelegator.OnDoneWriting">
+            <summary>
+            Implements the ResourceLock's DoneWriting behavior.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.Diagnostics.ResourceLockDelegator.OnWaitToRead">
+            <summary>
+            Implements the ResourceLock's WaitToRead behavior.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.Diagnostics.ResourceLockDelegator.OnDoneReading">
+            <summary>
+            Implements the ResourceLock's DoneReading behavior.
+            </summary>
+        </member>
+        <member name="P:Wintellect.Threading.ResourceLocks.Diagnostics.ResourceLockDelegator.InnerLock">
+            <summary>
+            Returns a reference to the inner ResourceLock object.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.Diagnostics.ResourceLockObserver.#ctor(Wintellect.Threading.ResourceLocks.ResourceLock)">
+            <summary>
+            Constructs a ResourceLockObserver.
+            </summary>
+            <param name="resLock"></param>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.Diagnostics.ThreadSafeCheckerResourceLockObserver.#ctor(Wintellect.Threading.ResourceLocks.ResourceLock)">
+            <summary>
+            Constructs a ThreadSafeCheckerResourceLockObserver wrapping the desired ResourceLock.
+            </summary>
+            <param name="resLock"></param>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.Diagnostics.ThreadSafeCheckerResourceLockObserver.Dispose(System.Boolean)">
+            <summary>
+            Performs any desired cleanup for this object.
+            </summary>
+            <param name="disposing">true if Dispose is being called; false if the object is being finalized.</param>
+        </member>
+        <member name="T:Wintellect.Threading.ResourceLocks.OneManySpinResourceLock">
+            <summary>
+            A reader/writer lock that always spins in user-mode.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.OneManySpinResourceLock.#ctor">
+            <summary>
+            Constucts a OneManySpinResourceLock object.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.OneManySpinResourceLock.OnWaitToWrite">
+            <summary>
+            Implements the ResourceLock's WaitToWrite behavior.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.OneManySpinResourceLock.OnDoneWriting">
+            <summary>
+            Implements the ResourceLock's DoneWriting behavior.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.OneManySpinResourceLock.OnWaitToRead">
+            <summary>
+            Implements the ResourceLock's WaitToRead behavior.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.OneManySpinResourceLock.OnDoneReading">
+            <summary>
+            Implements the ResourceLock's DoneReading behavior.
+            </summary>
+        </member>
+        <member name="T:Wintellect.Threading.Progress">
+            <summary>
+            A thread-safe class for managing the progress of an operation.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.Progress.#ctor">
+            <summary>
+            Constructs a Progress object with a low and high value of zero.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.Progress.#ctor(System.Int64)">
+            <summary>
+            Constructs a Progress object with a low value of zero.
+            </summary>
+            <param name="high">The value indicating the completion of the operation.</param>
+        </member>
+        <member name="M:Wintellect.Threading.Progress.#ctor(System.Int64,System.Int64)">
+            <summary>
+            Constructs a Progress object with the specified low and high values.
+            </summary>
+            <param name="low">The value indicating the start of the operation.</param>
+            <param name="high">The value indicating the completion of the operation.</param>
+        </member>
+        <member name="M:Wintellect.Threading.Progress.Reset(System.Int64,System.Int64,System.Int64)">
+            <summary>
+            Sets all the values assocaited with maintaining progress of an operation.
+            </summary>
+            <param name="low">The value indicating the start of the operation.</param>
+            <param name="high">The value indicating the completion of the operation.</param>
+            <param name="current">The value indicating the current completion state of the operation.</param>
+        </member>
+        <member name="M:Wintellect.Threading.Progress.Dispose">
+            <summary>
+            Call this to indicate that Progress tracking for this operation is complete.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.Progress.SetTimer(System.Int32,System.Int64)">
+            <summary>
+            Allows Progress to automatically update periodically.
+            </summary>
+            <param name="millisecondsBetweenUpdates">Indicates how long to wait before each update to Progress.</param>
+            <param name="timerUpdateAmount">How much to add to the current status.</param>
+        </member>
+        <member name="M:Wintellect.Threading.Progress.StopTimer">
+            <summary>
+            Stops the timer from continuing to update progress status.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.Progress.SetLow(System.Int64)">
+            <summary>
+            Sets the value indicating the start of the operation.
+            </summary>
+            <param name="value">The value indicating the start of the operation.</param>
+        </member>
+        <member name="M:Wintellect.Threading.Progress.AddToLow(System.Int64)">
+            <summary>
+            Adds the specified value to the value that indicates the start of the operation.
+            </summary>
+            <param name="addend">How much to add.</param>
+        </member>
+        <member name="M:Wintellect.Threading.Progress.SetHigh(System.Int64)">
+            <summary>
+            Sets the value indicating the end of the operation.
+            </summary>
+            <param name="value">The value indicating the end of the operation.</param>
+        </member>
+        <member name="M:Wintellect.Threading.Progress.AddToHigh(System.Int64)">
+            <summary>
+            Adds the specified value to the value that indicates the end of the operation.
+            </summary>
+            <param name="addend">How much to add.</param>
+        </member>
+        <member name="M:Wintellect.Threading.Progress.SetCurrent(System.Int64)">
+            <summary>
+            Sets the value indicating the current state of the operation.
+            </summary>
+            <param name="value">The value indicating the current state of the operation.</param>
+        </member>
+        <member name="M:Wintellect.Threading.Progress.AddToCurrent(System.Int64)">
+            <summary>
+            Adds the specified value to the value that indicates the current state of the operation.
+            </summary>
+            <param name="addend">How much to add.</param>
+        </member>
+        <member name="P:Wintellect.Threading.Progress.Low">
+            <summary>
+            Returns the value indicating the start of the operation.
+            </summary>
+        </member>
+        <member name="P:Wintellect.Threading.Progress.High">
+            <summary>
+            Returns the value indicating the end of the operation.
+            </summary>
+        </member>
+        <member name="P:Wintellect.Threading.Progress.Current">
+            <summary>
+            Returns the value indicating the current state of the operation.
+            </summary>
+        </member>
+        <member name="E:Wintellect.Threading.Progress.ProgressUpdated">
+            <summary>
+            An event which is raised whenever the operation's low, current, or high value changes.
+            This event is raised using the SynchronizationContext that was in place on 
+            the thread that constructed this Progress object.
+            </summary>
+        </member>
+        <member name="T:Wintellect.Threading.ProgressUpdateEventArgs">
+            <summary>
+            Indicates the current progress of an operation.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ProgressUpdateEventArgs.ToString">
+            <summary>
+            Returns a string representing the state of this object.
+            </summary>
+            <returns>The string representing the state of the object.</returns>
+        </member>
+        <member name="P:Wintellect.Threading.ProgressUpdateEventArgs.Low">
+            <summary>
+            Returns the value representing the start of the operation.
+            </summary>
+        </member>
+        <member name="P:Wintellect.Threading.ProgressUpdateEventArgs.High">
+            <summary>
+            Returns the value representing the end of the operation.
+            </summary>
+        </member>
+        <member name="P:Wintellect.Threading.ProgressUpdateEventArgs.Current">
+            <summary>
+            Returns a value representing the current state of the operation.
+            </summary>
+        </member>
+        <member name="P:Wintellect.Threading.ProgressUpdateEventArgs.Percentage">
+            <summary>
+            Returns a percentage of how much of the operation has completed thus far.
+            </summary>
+        </member>
+        <member name="T:Wintellect.Threading.ResourceLocks.ExclusiveSpinResourceLock">
+            <summary>
+            An exclusive lock that always spins in user-mode.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.ExclusiveSpinResourceLock.#ctor">
+            <summary>
+            Constructs an ExclusiveSpinResourceLock.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.ExclusiveSpinResourceLock.OnWaitToWrite">
+            <summary>
+            Implements the ResourceLock's WaitToWrite behavior.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.ExclusiveSpinResourceLock.OnDoneWriting">
+            <summary>
+            Implements the ResourceLock's DoneWriting behavior.
+            </summary>
+        </member>
+        <member name="T:Wintellect.Threading.ResourceLocks.OneResourceLock">
+            <summary>
+            Implements a ResourceLock via a high-speed mutual-exclusive lock.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.OneResourceLock.ToString">
+            <summary>
+            Returns a string representing the state of the object.
+            </summary>
+            <returns>The string representing the state of the object.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.OneResourceLock.#ctor">
+            <summary>
+            Constructs a OneResourceLock object.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.OneResourceLock.Dispose(System.Boolean)">
+            <summary>
+            Allow the object to clean itself up.
+            </summary>
+            <param name="disposing">true if the object is being disposed; false if it is being finalzied.</param>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.OneResourceLock.OnWaitToWrite">
+            <summary>
+            Implements the ResourceLock's WaitToWrite behavior.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.OneResourceLock.OnDoneWriting">
+            <summary>
+            Implements the ResourceLock's DoneWriting behavior.
+            </summary>
+        </member>
+        <member name="T:Wintellect.Threading.ResourceLocks.Diagnostics.StatisticsGatheringResourceLockObserver">
+            <summary>A compositional resource lock providing statics for another lock.</summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.Diagnostics.StatisticsGatheringResourceLockObserver.#ctor(Wintellect.Threading.ResourceLocks.ResourceLock)">
+            <summary>Initializes a new instance of the <c>StatisticsGatheringResourceLock</c> class that wraps another <c>ResouceLock</c>-derived type.</summary>
+            <param name="resLock">The <c>ResourceLock</c>-derived type to wrap.</param>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.Diagnostics.StatisticsGatheringResourceLockObserver.ToString(System.String,System.IFormatProvider)">
+            <summary>Returns the object's string representation.</summary>
+            <param name="format">If <c>null</c> or <c>"extra"</c> is allowed.</param>
+            <param name="formatProvider">Not used.</param>
+            <return>A <c>String</c> containing the object's string representation.</return>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.Diagnostics.StatisticsGatheringResourceLockObserver.OnWaitToRead">
+            <summary>Derived class overrides <c>OnWaitToRead</c> to provide specific reader locking semantics.</summary>
+            <remarks>You do not need to override this method if the specific lock provides mutual-exclusive locking semantics.</remarks>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.Diagnostics.StatisticsGatheringResourceLockObserver.OnDoneReading">
+            <summary>Derived class overrides <c>OnDoneReading</c> to provide specific reader unlocking semantics.</summary>
+            <remarks>You do not need to override this method if the specific lock provides mutual-exclusive locking semantics.</remarks>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.Diagnostics.StatisticsGatheringResourceLockObserver.OnWaitToWrite">
+            <summary>Derived class overrides <c>OnWaitToWrite</c> to provide specific writer locking semantics.</summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.Diagnostics.StatisticsGatheringResourceLockObserver.OnDoneWriting">
+            <summary>Derived class overrides <c>OnDoneWriting</c> to provide specific writer unlocking semantics.</summary>
+        </member>
+        <member name="P:Wintellect.Threading.ResourceLocks.Diagnostics.StatisticsGatheringResourceLockObserver.ReadRequests">
+            <summary>Returns the number of read requests against a lock.</summary>
+            <return>The number of read requests.</return>
+        </member>
+        <member name="P:Wintellect.Threading.ResourceLocks.Diagnostics.StatisticsGatheringResourceLockObserver.WriteRequests">
+            <summary>Returns the number of write requests against a lock.</summary>
+            <return>The number of write requests.</return>
+        </member>
+        <member name="P:Wintellect.Threading.ResourceLocks.Diagnostics.StatisticsGatheringResourceLockObserver.ReadersReading">
+            <summary>Returns the current number of readers reading.</summary>
+            <return>The current number of reads.</return>
+        </member>
+        <member name="P:Wintellect.Threading.ResourceLocks.Diagnostics.StatisticsGatheringResourceLockObserver.WritersWriting">
+            <summary>Returns the current number of writers writing.</summary>
+            <return>The current number of writers.</return>
+        </member>
+        <member name="P:Wintellect.Threading.ResourceLocks.Diagnostics.StatisticsGatheringResourceLockObserver.ReadersDone">
+            <summary>Returns the number of readers done reading.</summary>
+            <return>The number of done readers.</return>
+        </member>
+        <member name="P:Wintellect.Threading.ResourceLocks.Diagnostics.StatisticsGatheringResourceLockObserver.WritersDone">
+            <summary>Returns the number of writers done writing.</summary>
+            <return>The number of done writers.</return>
+        </member>
+        <member name="P:Wintellect.Threading.ResourceLocks.Diagnostics.StatisticsGatheringResourceLockObserver.ReadersWaiting">
+            <summary>Returns the current number of readers waiting.</summary>
+            <return>The number of waiting readers.</return>
+        </member>
+        <member name="P:Wintellect.Threading.ResourceLocks.Diagnostics.StatisticsGatheringResourceLockObserver.WritersWaiting">
+            <summary>Returns the current number of writers waiting.</summary>
+            <return>The number of waiting writers.</return>
+        </member>
+        <member name="P:Wintellect.Threading.ResourceLocks.Diagnostics.StatisticsGatheringResourceLockObserver.ReaderMaxWaitTime">
+            <summary>Returns the maximum time that a reader waited to acquire the lock.</summary>
+            <return>Maximum time a reader waited to acquire the lock.</return>
+        </member>
+        <member name="P:Wintellect.Threading.ResourceLocks.Diagnostics.StatisticsGatheringResourceLockObserver.WriterMaxWaitTime">
+            <summary>Returns the maximum time that a writer waited to acquire the lock.</summary>
+            <return>Maximum time a writer waited to acquire the lock.</return>
+        </member>
+        <member name="P:Wintellect.Threading.ResourceLocks.Diagnostics.StatisticsGatheringResourceLockObserver.ReaderMinHoldTime">
+            <summary>Returns the minimum time that a reader held the lock.</summary>
+            <return>Minimum time a reader held the lock.</return>
+        </member>
+        <member name="P:Wintellect.Threading.ResourceLocks.Diagnostics.StatisticsGatheringResourceLockObserver.ReaderMaxHoldTime">
+            <summary>Returns the maximum time that a reader held the lock.</summary>
+            <return>Maximum time a reader held the lock.</return>
+        </member>
+        <member name="P:Wintellect.Threading.ResourceLocks.Diagnostics.StatisticsGatheringResourceLockObserver.WriterMinHoldTime">
+            <summary>Returns the minimum time that a writer held the lock.</summary>
+            <return>Minimum time a writer held the lock.</return>
+        </member>
+        <member name="P:Wintellect.Threading.ResourceLocks.Diagnostics.StatisticsGatheringResourceLockObserver.WriterMaxHoldTime">
+            <summary>Returns the maximum time that a writer held the lock.</summary>
+            <return>Maximum time a writer held the lock.</return>
+        </member>
+        <member name="T:Wintellect.Threading.ThreadRights">
+            <summary>
+            Flags indicating how you intend to manipulate the thread after you open it.
+            </summary>
+        </member>
+        <member name="F:Wintellect.Threading.ThreadRights.Terminate">
+            <summary>
+            Required to terminate a thread using TerminateThread.
+            </summary>
+        </member>
+        <member name="F:Wintellect.Threading.ThreadRights.SuspendResume">
+            <summary>
+            Required to suspend or resume a thread (see SuspendThread and ResumeThread).
+            </summary>
+        </member>
+        <member name="F:Wintellect.Threading.ThreadRights.GetContext">
+            <summary>
+            Required to read the context of a thread using GetThreadContext.
+            </summary>
+        </member>
+        <member name="F:Wintellect.Threading.ThreadRights.SetContext">
+            <summary>
+            Required to write the context of a thread using SetThreadContext.
+            </summary>
+        </member>
+        <member name="F:Wintellect.Threading.ThreadRights.SetInformation">
+            <summary>
+            Required to set certain information in the thread object.
+            </summary>
+        </member>
+        <member name="F:Wintellect.Threading.ThreadRights.SetLimitedInformation">
+            <summary>
+            Required to set certain information in the thread object. 
+            A handle that has the THREAD_SET_INFORMATION access right is 
+            automatically granted THREAD_SET_LIMITED_INFORMATION.
+            </summary>
+        </member>
+        <member name="F:Wintellect.Threading.ThreadRights.QueryInformation">
+            <summary>
+            Required to read certain information from the thread object, 
+            such as the exit code (see GetExitCodeThread).
+            </summary>
+        </member>
+        <member name="F:Wintellect.Threading.ThreadRights.QueryLimitedInformation">
+            <summary>
+            Required to read certain information from the thread objects (see GetProcessIdOfThread). 
+            A handle that has the THREAD_QUERY_INFORMATION access right is automatically 
+            granted THREAD_QUERY_LIMITED_INFORMATION.
+            </summary>
+        </member>
+        <member name="F:Wintellect.Threading.ThreadRights.SetThreadToken">
+            <summary>
+            Required to set the impersonation token for a thread using SetThreadToken.
+            </summary>
+        </member>
+        <member name="F:Wintellect.Threading.ThreadRights.Impersonate">
+            <summary>
+            Required to use a thread's security information directly without calling
+            it by using a communication mechanism that provides impersonation services.
+            </summary>
+        </member>
+        <member name="F:Wintellect.Threading.ThreadRights.DirectImpersonation">
+            <summary>
+            Required for a server thread that impersonates a client.
+            </summary>
+        </member>
+        <member name="F:Wintellect.Threading.ThreadRights.Delete">
+            <summary>
+            Required to delete the object.
+            </summary>
+        </member>
+        <member name="F:Wintellect.Threading.ThreadRights.ReadPermissions">
+            <summary>
+            Required to read information in the security descriptor for the object, 
+            not including the information in the SACL. To read or write the SACL, 
+            you must request the ACCESS_SYSTEM_SECURITY access right.
+            </summary>
+        </member>
+        <member name="F:Wintellect.Threading.ThreadRights.ChangePermissions">
+            <summary>
+            Required to modify the DACL in the security descriptor for the object.
+            </summary>
+        </member>
+        <member name="F:Wintellect.Threading.ThreadRights.TakeOwnership">
+            <summary>
+            Required to change the owner in the security descriptor for the object.
+            </summary>
+        </member>
+        <member name="F:Wintellect.Threading.ThreadRights.Synchronize">
+            <summary>
+            The right to use the object for synchronization. This enables a 
+            thread to wait until the object is in the signaled state.
+            </summary>
+        </member>
+        <member name="F:Wintellect.Threading.ThreadRights.StandardRightsRequired">
+            <summary>
+            
+            </summary>
+        </member>
+        <member name="F:Wintellect.Threading.ThreadRights.FullControl">
+            <summary>
+            Same as StandardRightsRequired | Synchronize | 0x3FF
+            </summary>
+        </member>
+        <member name="T:Wintellect.Threading.ThreadUtility">
+            <summary>
+            This static class contains a bunch of useful thread methods.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ThreadUtility.NameFinalizerThreadForDebugging(System.String)">
+            <summary>
+            This method sets the name of the Finalizer thread for viewing in the debugger
+            </summary>
+            <param name="name">The string to name the Finalizer thread.</param>
+        </member>
+        <member name="F:Wintellect.Threading.ThreadUtility.IsSingleCpuMachine">
+            <summary>
+            Returns true if the host machine has just one CPU.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ThreadUtility.Block(System.Int32,System.Boolean)">
+            <summary>
+            Blocks the calling thread for the specified time.
+            </summary>
+            <param name="milliseconds">The number of milliseconds that this method should wait before returning.</param>
+            <param name="computeBound">true if this method should spin in a compute bound loop; false if 
+            Windows should not schedule for the specified amount of time.</param>
+        </member>
+        <member name="M:Wintellect.Threading.ThreadUtility.GetProcessThreadFromWin32ThreadId(System.Int32)">
+            <summary>
+            Returns a ProcessThread object for a specified Win32 thread Id.
+            </summary>
+            <param name="threadId">The Win32 thread Id value.</param>
+            <returns>A ProcessThread object matching the specified thread Id.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.ThreadUtility.GetWindowThreadId(System.IntPtr)">
+            <summary>
+            Returns the Win32 thread Id matching the thread that created the specified window handle.
+            </summary>
+            <param name="hwnd">Identifies a window handle.</param>
+            <returns>The thread that created the window.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.ThreadUtility.GetWindowProcessId(System.IntPtr)">
+            <summary>
+            Returns the Win32 process Id containing the thread that created the specified window handle.
+            </summary>
+            <param name="hwnd">Identifies a window handle.</param>
+            <returns>The process owning the thread that created the window.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.ThreadUtility.OpenThread(Wintellect.Threading.ThreadRights,System.Boolean,System.Int32)">
+            <summary>
+            Opens a thread in the system identified via its Win32 thread Id.
+            </summary>
+            <param name="rights">Indicates how you intend to manipulate the thread.</param>
+            <param name="inheritHandle">true if the returned handle should be inherited by child processes.</param>
+            <param name="threadId">The Win32 Id identifying a thread.</param>
+            <returns>A SafeWaitHandle matching the opened thread. This method throws a WaitHandleCannotBeOpenedException if the thread cannot be opened.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.ThreadUtility.GetCurrentProcessorNumber">
+            <summary>
+            Retrieves the number of the processor the current thread was running on during the call to this function.
+            </summary>
+            <returns>The current processor number.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.ThreadUtility.GetCurrentWin32ThreadId">
+            <summary>
+            Retrieves the Win32 Id of the calling thread.
+            </summary>
+            <returns>The Win32 thread Id of the calling thread.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.ThreadUtility.GetCurrentWin32ThreadHandle">
+            <summary>
+            Retrieves a pseudo handle for the calling thread.
+            </summary>
+            <returns>The pseudo handle for the current thread.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.ThreadUtility.GetCurrentWin32ProcessHandle">
+            <summary>
+            Retrieves a pseudo handle for the calling thread's process.
+            </summary>
+            <returns>The pseudo handle for the current process.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.ThreadUtility.SwitchToThread">
+            <summary>
+            Causes the calling thread to yield execution to another thread 
+            that is ready to run on the current processor. The operating 
+            system selects the next thread to be executed.
+            </summary>
+            <returns>true if the operating system switches execution to another thread; 
+            false if there are no other threads ready to execute and the OS doesn't switch 
+            execution to another thread.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.ThreadUtility.SkipSignalOfDeviceOnIOCompletion(Microsoft.Win32.SafeHandles.SafeFileHandle)">
+            <summary>
+            Tells the I/O Manager to not signal the file/device 
+            handle when an I/O operation completes.
+            </summary>
+            <param name="device">Identifies the file or device that should not be signaled.</param>
+        </member>
+        <member name="M:Wintellect.Threading.ThreadUtility.SkipCompletionPortOnSynchronousIOCompletion(Microsoft.Win32.SafeHandles.SafeFileHandle)">
+            <summary>
+            Tells the I/O Manager to not queue a completion entry to the specified 
+            device's I/O completion port if the I/O operation completes synchronously.
+            </summary>
+            <param name="device">Identifies the file or device whose 
+            synchronously-executed operation should not be placed in an 
+            I/O completion port.</param>
+        </member>
+        <member name="M:Wintellect.Threading.ThreadUtility.StallThread">
+            <summary>
+            Causes the calling thread to allow another thread to run.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ThreadUtility.QueryThreadCycleTime(Microsoft.Win32.SafeHandles.SafeWaitHandle)">
+            <summary>
+            Retrieves the cycle time for the specified thread.
+            </summary>
+            <param name="threadHandle">Identifies the thread whose cycle time you'd like to obtain.</param>
+            <returns>The thread's cycle time.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.ThreadUtility.QueryProcessCycleTime(Microsoft.Win32.SafeHandles.SafeWaitHandle)">
+            <summary>
+            Retrieves the sum of the cycle time of all threads of the specified process.
+            </summary>
+            <param name="processHandle">Identifies the process whose threads' cycles times you'd like to obtain.</param>
+            <returns>The process' cycle time.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.ThreadUtility.QueryIdleProcessorCycleTimes">
+            <summary>
+            Retrieves the cycle time for the idle thread of each processor in the system.
+            </summary>
+            <returns>The number of CPU clock cycles used by each idle thread.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.ThreadUtility.CancelSynchronousIO(Microsoft.Win32.SafeHandles.SafeWaitHandle)">
+            <summary>
+            Marks pending synchronous I/O operations that are issued by the specified thread as canceled.
+            </summary>
+            <param name="thread">Identifies the thread whose synchronous I/O you want to cancel.</param>
+            <returns>true if an operation is cancelled; false if the thread was not waiting for I/O</returns>
+        </member>
+        <member name="M:Wintellect.Threading.ThreadUtility.BeginBackgroundProcessingMode">
+            <summary>
+            The system lowers the resource scheduling priorities of the thread 
+            so that it can perform background work without significantly 
+            affecting activity in the foreground.
+            </summary>
+            <returns>An IDisposable object that can be used to end 
+            background processing mode for the thread.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.ThreadUtility.EndBackgroundProcessingMode">
+            <summary>
+            The system restores the resource scheduling priorities of the thread 
+            as they were before the thread entered background processing mode.
+            </summary>
+        </member>
+        <member name="T:Wintellect.Threading.ResourceLocks.OneManyResourceLock">
+            <summary>
+            Implements a ResourceLock by way of a high-speed reader/writer lock.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.OneManyResourceLock.ToString">
+            <summary>
+            Returns a string representing the state of the object.
+            </summary>
+            <returns>The string representing the state of the object.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.OneManyResourceLock.#ctor">
+            <summary>
+            Constructs a OneManyResourceLock object.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.OneManyResourceLock.Dispose(System.Boolean)">
+            <summary>
+            Allow the object to clean itself up.
+            </summary>
+            <param name="disposing">true if the object is being disposed; false if it is being finalzied.</param>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.OneManyResourceLock.OnWaitToWrite">
+            <summary>
+            Implements the ResourceLock's WaitToWrite behavior.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.OneManyResourceLock.OnDoneWriting">
+            <summary>
+            Implements the ResourceLock's DoneWriting behavior.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.OneManyResourceLock.OnWaitToRead">
+            <summary>
+            Implements the ResourceLock's WaitToRead behavior.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.OneManyResourceLock.OnDoneReading">
+            <summary>
+            Implements the ResourceLock's DoneReading behavior.
+            </summary>
+        </member>
+        <member name="T:Wintellect.Threading.ResourceLocks.Diagnostics.RecursionResourceLockModifier">
+            <summary>
+            A ResourceLock modifier that adds recursion support to the inner lock.
+            </summary>
+        </member>
+        <member name="T:Wintellect.Threading.ResourceLocks.Diagnostics.ResourceLockModifier">
+            <summary>
+            An abstract class that all ResourceLockModifier classes derive from.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.Diagnostics.ResourceLockModifier.#ctor(Wintellect.Threading.ResourceLocks.ResourceLock,Wintellect.Threading.ResourceLocks.ResourceLockOptions)">
+            <summary>
+            Constructs a ResourceLockModifier object.
+            </summary>
+            <param name="resLock">Identifies the inner ResourceLock object.</param>
+            <param name="resourceLockOptions">Identifies the flags associted with the innter ResourceLock object.</param>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.Diagnostics.RecursionResourceLockModifier.#ctor(Wintellect.Threading.ResourceLocks.ResourceLock,System.Int32)">
+            <summary>
+            Constructs a RecursionResourceLockModifier object.
+            </summary>
+            <param name="resLock">A reference to a ResourceLock object that will not support recursion.</param>
+            <param name="maxReaders">The maximum number of concurrent reader threads that this 
+            RecursionResourceLockModifier object should support.</param>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.Diagnostics.RecursionResourceLockModifier.OnWaitToWrite">
+            <summary>
+            Implements the ResourceLock's WaitToWrite behavior.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.Diagnostics.RecursionResourceLockModifier.OnDoneWriting">
+            <summary>
+            Implements the ResourceLock's DoneWriting behavior.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.Diagnostics.RecursionResourceLockModifier.OnWaitToRead">
+            <summary>
+            Implements the ResourceLock's WaitToRead behavior.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.Diagnostics.RecursionResourceLockModifier.OnDoneReading">
+            <summary>
+            Implements the ResourceLock's DoneReading behavior.
+            </summary>
+        </member>
+        <member name="T:Wintellect.ExceptionArgs">
+            <summary>
+            A base class that a custom exception would derive from in order to add its own exception arguments.
+            </summary>
+        </member>
+        <member name="P:Wintellect.ExceptionArgs.Message">
+            <summary>
+            The string message associated with this exception.
+            </summary>
+        </member>
+        <member name="T:Wintellect.Threading.ResourceLocks.MonitorResourceLock">
+            <summary>
+            A ResourceLock implemented using System.Threading.Monitor
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.MonitorResourceLock.#ctor">
+            <summary>
+            Constructs an instance on the MonitorResourceLock.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.MonitorResourceLock.#ctor(System.Object)">
+            <summary>
+            Constructs an instance of the MonitorResourceLock using the specified object as the lock itself.
+            </summary>
+            <param name="obj"></param>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.MonitorResourceLock.OnWaitToWrite">
+            <summary>
+            Implements the ResourceLock's WaitToWrite behavior.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.MonitorResourceLock.OnDoneWriting">
+            <summary>
+            Implements the ResourceLock's DoneWriting behavior.
+            </summary>
+        </member>
+        <member name="T:Wintellect.Threading.ResourceLocks.Win32SlimResourceLock">
+            <summary>
+            Implements a ResourceLock by way of the Windows SlimResourceLock. 
+            This class is only available when running on Windows Vista or later.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.Win32SlimResourceLock.#ctor">
+            <summary>
+            Constructs a Win32SlimResourceLock.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.Win32SlimResourceLock.OnWaitToWrite">
+            <summary>
+            Implements the ResourceLock's WaitToWrite behavior.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.Win32SlimResourceLock.OnWaitToRead">
+            <summary>
+            Implements the ResourceLock's WaitToRead behavior.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.Win32SlimResourceLock.OnDoneWriting">
+            <summary>
+            Implements the ResourceLock's DoneWriting behavior.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.Win32SlimResourceLock.OnDoneReading">
+            <summary>
+            Implements the ResourceLock's DoneReading behavior.
+            </summary>
+        </member>
+        <member name="T:Wintellect.Threading.ResourceLocks.SemaphoreResourceLock">
+            <summary>
+            Implements a ResourceLock by way of a Windows Semaphore.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.SemaphoreResourceLock.#ctor">
+            <summary>
+            Constructs a SemaphoreResourceLock.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.SemaphoreResourceLock.OnWaitToWrite">
+            <summary>
+            Implements the ResourceLock's WaitToWrite behavior.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.SemaphoreResourceLock.OnDoneWriting">
+            <summary>
+            Implements the ResourceLock's DoneWriting behavior.
+            </summary>
+        </member>
+        <member name="T:Wintellect.Threading.SingletonRaceLoser">
+            <summary>
+            Indicates whether singleton should be created using a double-check 
+            locking technique or via an interlocked-compare-exchange technique.
+            </summary>
+        </member>
+        <member name="F:Wintellect.Threading.SingletonRaceLoser.Block">
+            <summary>
+            If there is a race to create the singleton, the race is 
+            resolved by blocking all but one thread.
+            </summary>
+        </member>
+        <member name="F:Wintellect.Threading.SingletonRaceLoser.GC">
+            <summary>
+            If there is a race to create the singleton, the race is resolved
+            by having all threads create the singleton but, when done, only one 
+            thread will win and the losing threads will have their singleton GC'd
+            </summary>
+        </member>
+        <member name="T:Wintellect.Threading.Singleton`1">
+            <summary>
+            This class ensures that only one singleton object is used if mutliple 
+            threads race to create one simultaneously.
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="T:Wintellect.CommandArgumentParser.CmdArgRequiredValue">
+            <summary>
+            Indicates whether the command-line argument is required, not-required, or is optional.
+            </summary>
+        </member>
+        <member name="F:Wintellect.CommandArgumentParser.CmdArgRequiredValue.Yes">
+            <summary>
+            Indicates that the argument is required.
+            </summary>
+        </member>
+        <member name="F:Wintellect.CommandArgumentParser.CmdArgRequiredValue.No">
+            <summary>
+            Indicates that the argument is not required.
+            </summary>
+        </member>
+        <member name="F:Wintellect.CommandArgumentParser.CmdArgRequiredValue.Optional">
+            <summary>
+            Indicages that the argument is optional.
+            </summary>
+        </member>
+        <member name="T:Wintellect.CommandArgumentParser.CmdArgAttribute">
+            <summary>
+            An attribute that can be applied to a field or property indicating 
+            that the member maps to a command line argument.
+            </summary>
+        </member>
+        <member name="M:Wintellect.CommandArgumentParser.CmdArgAttribute.#ctor">
+            <summary>
+            The attribute has no mandatory arguments.
+            </summary>
+        </member>
+        <member name="P:Wintellect.CommandArgumentParser.CmdArgAttribute.ArgName">
+            <summary>
+            Identifies the argument name that maps to the associated field or property.
+            If not specified, the argument name is identical to the field or property name.
+            </summary>
+        </member>
+        <member name="P:Wintellect.CommandArgumentParser.CmdArgAttribute.RequiredArg">
+            <summary>
+            Indicates whether this argument must be specified.
+            </summary>
+        </member>
+        <member name="P:Wintellect.CommandArgumentParser.CmdArgAttribute.RequiredValue">
+            <summary>
+            Indicates whether the command-line argument's value is required, not-required, or is optional.
+            </summary>
+        </member>
+        <member name="P:Wintellect.CommandArgumentParser.CmdArgAttribute.Description">
+            <summary>
+            Indicates the Usage text for this command-line argument.
+            </summary>
+        </member>
+        <member name="T:Wintellect.Threading.ResourceLocks.MutexResourceLock">
+            <summary>
+            This class implements a ResourceLock by way of a Windows Mutex.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.MutexResourceLock.#ctor">
+            <summary>
+            Constructs a MutexResourceLock.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.MutexResourceLock.#ctor(System.Boolean)">
+            <summary>
+            Constructs a MutexResourceLock.
+            </summary>
+            <param name="initiallyOwned">true if the calling thread should own the mutex; false if the mutex should be unowned.</param>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.MutexResourceLock.OnWaitToWrite">
+            <summary>
+            Implements the ResourceLock's WaitToWrite behavior.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.MutexResourceLock.OnDoneWriting">
+            <summary>
+            Implements the ResourceLock's DoneWriting behavior.
+            </summary>
+        </member>
+        <member name="T:Wintellect.Threading.ResourceLocks.Diagnostics.TimeoutNotifierResourceLockObserver">
+            <summary>
+            A ResourceLock-wrapper class that throws an exception if a thread waits 
+            too long on the inner lock.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.Diagnostics.TimeoutNotifierResourceLockObserver.#ctor(Wintellect.Threading.ResourceLocks.ResourceLock,System.Int64)">
+            <summary>
+            Constructs a TimeoutNotifierResourceLockObserver object.
+            </summary>
+            <param name="resLock">Indicates the inner ResourceLock.</param>
+            <param name="timeout">Indicates how long any thread should wait on the inner lock before throwing an exception. This value is in milliseconds.</param>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.Diagnostics.TimeoutNotifierResourceLockObserver.#ctor(Wintellect.Threading.ResourceLocks.ResourceLock,System.TimeSpan)">
+            <summary>
+            Constructs a TimeoutNotifierResourceLockObserver object.
+            </summary>
+            <param name="resLock">Indicates the inner ResourceLock.</param>
+            <param name="timeout">Indicates how long any thread should wait on the inner lock before throwing an exception.</param>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.Diagnostics.TimeoutNotifierResourceLockObserver.OnTimeout(System.Diagnostics.StackTrace)">
+            <summary>
+            This method is invoked when a thread has waited too long on a ResourceLock. The default behavior, throws a TimeoutException.
+            </summary>
+            <param name="stackTrace">The stack trace at the point where the thread waited on the ResourceLock.</param>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.Diagnostics.TimeoutNotifierResourceLockObserver.OnWaitToRead">
+            <summary>
+            Implements the ResourceLock's WaitToRead behavior.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.Diagnostics.TimeoutNotifierResourceLockObserver.OnDoneReading">
+            <summary>
+            Implements the ResourceLock's DoneReading behavior.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.Diagnostics.TimeoutNotifierResourceLockObserver.OnWaitToWrite">
+            <summary>
+            Implements the ResourceLock's WaitToWrite behavior.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.Diagnostics.TimeoutNotifierResourceLockObserver.OnDoneWriting">
+            <summary>
+            Implements the ResourceLock's DoneWriting behavior.
+            </summary>
+        </member>
+        <member name="T:Wintellect.Threading.ResourceLocks.Diagnostics.ExclusiveOwnerResourceLockModifier">
+            <summary>
+            Modifies a ResourceLock enforcing that whatever thread acquires the lock must also release the lock.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.Diagnostics.ExclusiveOwnerResourceLockModifier.#ctor(Wintellect.Threading.ResourceLocks.ResourceLock)">
+            <summary>
+            Constructs an ExclusiveOwnerResourceLockModifier over the specified ResourceLock.
+            </summary>
+            <param name="resLock"></param>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.Diagnostics.ExclusiveOwnerResourceLockModifier.OnWaitToWrite">
+            <summary>
+            Implements the ResourceLock's WaitToWrite behavior.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.Diagnostics.ExclusiveOwnerResourceLockModifier.OnDoneWriting">
+            <summary>
+            Implements the ResourceLock's DoneWriting behavior.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.Diagnostics.ExclusiveOwnerResourceLockModifier.OnWaitToRead">
+            <summary>
+            Implements the ResourceLock's WaitToRead behavior.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.Diagnostics.ExclusiveOwnerResourceLockModifier.OnDoneReading">
+            <summary>
+            Implements the ResourceLock's DoneReading behavior.
+            </summary>
+        </member>
+        <member name="T:Wintellect.Threading.LogicalProcessor.NumaInformation">
+            <summary>
+            This class returns NUMA information about the host machine.
+            </summary>
+        </member>
+        <member name="F:Wintellect.Threading.LogicalProcessor.NumaInformation.NoPreferredNode">
+            <summary>
+            A constant indicating that there is no preferred node.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.LogicalProcessor.NumaInformation.GetNodeFromProcessor(System.Int32)">
+            <summary>
+            Retrieves the node number for the specified processor.
+            </summary>
+            <param name="processor">The processor number.</param>
+            <returns>The node number.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.LogicalProcessor.NumaInformation.GetProcessorsFromNode(System.Int32)">
+            <summary>
+            Retrieves the processor mask for the specified node.
+            </summary>
+            <param name="node">The node number.</param>
+            <returns>The processor mask for the node. A processor mask is 
+            a bit vector in which each bit represents a processor and 
+            whether it is in the node.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.LogicalProcessor.NumaInformation.GetAvailableMemoryOnNode(System.Int32)">
+            <summary>
+            Retrieves the amount of memory available in the specified node.
+            </summary>
+            <param name="node">The numa node.</param>
+            <returns>The amount of available memory for the node, in bytes.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.LogicalProcessor.NumaInformation.ProximityNode(System.Int32)">
+            <summary>
+            Retrieves the node number for the specified proximity identifier.
+            </summary>
+            <param name="proximityId">The proximity identifier of the node.</param>
+            <returns>The node number.</returns>
+        </member>
+        <member name="P:Wintellect.Threading.LogicalProcessor.NumaInformation.HighestNode">
+            <summary>
+            Retrieves the node that currently has the highest number.
+            </summary>
+        </member>
+        <member name="T:Wintellect.Exception`1">
+            <summary>
+            Represents errors that occur during application execution.
+            </summary>
+            <typeparam name="T">The type of exception and any additional arguments associated with it.</typeparam>
+        </member>
+        <member name="M:Wintellect.Exception`1.#ctor">
+            <summary>
+            Initializes a new instance of the Exception class
+            </summary>
+        </member>
+        <member name="M:Wintellect.Exception`1.#ctor(System.String)">
+            <summary>
+            Initializes a new instance of the Exception class with a specified error message.
+            </summary>
+            <param name="message">The error message that explains the reason for the exception.</param>
+        </member>
+        <member name="M:Wintellect.Exception`1.#ctor(System.String,System.Exception)">
+            <summary>
+            Initializes a new instance of the Exception class with a specified error message 
+            and a reference to the inner exception that is the cause of this exception. 
+            </summary>
+            <param name="message">The error message that explains the reason for the exception.</param>
+            <param name="innerException">The exception that is the cause of the current exception, 
+            or a null reference if no inner exception is specified.</param>
+        </member>
+        <member name="M:Wintellect.Exception`1.#ctor(`0,System.String,System.Exception)">
+            <summary>
+            Initializes a new instance of the Exception class with additional arguments, 
+            a specified error message, and a reference to the inner exception 
+            that is the cause of this exception. 
+            </summary>
+            <param name="args">The exception's additional arguments.</param>
+            <param name="message">The error message that explains the reason for the exception.</param>
+            <param name="innerException">The exception that is the cause of the current exception, 
+            or a null reference if no inner exception is specified.</param>
+        </member>
+        <member name="M:Wintellect.Exception`1.#ctor(`0,System.String)">
+            <summary>
+            Initializes a new instance of the Exception class with additional arguments and 
+            a specified error message. 
+            </summary>
+            <param name="args">The exception's additional arguments.</param>
+            <param name="message">The error message that explains the reason for the exception.</param>
+        </member>
+        <member name="M:Wintellect.Exception`1.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
+            <summary>
+            When overridden in a derived class, sets the SerializationInfo with information about the exception.
+            </summary>
+            <param name="info">The SerializationInfo that holds the serialized object data about the exception being thrown.</param>
+            <param name="context">The StreamingContext that contains contextual information about the source or destination.</param>
+        </member>
+        <member name="M:Wintellect.Exception`1.ToString">
+            <summary>
+            Creates and returns a string representation of the current exception.
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:Wintellect.Exception`1.GetHashCode">
+            <summary>
+            Serves as a hash function for a particular type.
+            </summary>
+            <returns>A hash code for the current Object.</returns>
+        </member>
+        <member name="M:Wintellect.Exception`1.Equals(System.Object)">
+            <summary>
+            Determines whether the specified Object is equal to the current Object.
+            </summary>
+            <param name="obj">The Object to compare with the current Object. </param>
+            <returns>true if the specified Object is equal to the current Object; otherwise, false.</returns>
+        </member>
+        <member name="P:Wintellect.Exception`1.Args">
+            <summary>
+            Returns a reference to this exception's additional arguments.
+            </summary>
+        </member>
+        <member name="P:Wintellect.Exception`1.Message">
+            <summary>
+            Gets a message that describes the current exception.
+            </summary>
+        </member>
+        <member name="T:Wintellect.CommandArgumentParser.CmdArgumentTypeExceptionArgs">
+            <summary>
+            This represents a CmdArgumentType exception.
+            </summary>
+        </member>
+        <member name="T:Wintellect.CommandArgumentParser.InvalidCmdArgumentExceptionArgs">
+            <summary>
+            The exception argument indicating that an invalid command-line argument has been found.
+            </summary>
+        </member>
+        <member name="M:Wintellect.CommandArgumentParser.InvalidCmdArgumentExceptionArgs.#ctor(System.String)">
+            <summary>
+            Constructs an InvalidCmdArgumentExceptionArgs with the specified invalid command argument.
+            </summary>
+            <param name="invalidCmdArg"></param>
+        </member>
+        <member name="M:Wintellect.CommandArgumentParser.InvalidCmdArgumentExceptionArgs.ToString">
+            <summary>
+            Returns a string that contains the invalid argument.
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="P:Wintellect.CommandArgumentParser.InvalidCmdArgumentExceptionArgs.InvalidCmdArg">
+            <summary>
+            Returns the invalid argument.
+            </summary>
+        </member>
+        <member name="T:Wintellect.Threading.ResourceLocks.NullResourceLock">
+            <summary>
+            A ResourceLock that actually performs no locking at all.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.NullResourceLock.#ctor">
+            <summary>
+            Constructs an instance of the NullResourceLock.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.NullResourceLock.OnWaitToWrite">
+            <summary>
+            Implements the ResourceLock's WaitToWrite behavior.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.NullResourceLock.OnDoneWriting">
+            <summary>
+            Implements the ResourceLock's DoneWriting behavior.
+            </summary>
+        </member>
+        <member name="T:Wintellect.Threading.InterlockedEx">
+            <summary>Provides atomic operations for variables that are shared by multiple threads.</summary>
+        </member>
+        <member name="M:Wintellect.Threading.InterlockedEx.Morph``2(System.Int32@,``1,Wintellect.Threading.InterlockedEx.Morpher{``0,``1})">
+            <summary>Atomically modifies an Int32 value using an algorithm identified by <paramref name="morpher"/>.</summary>
+            <typeparam name="TResult">The type of the return value.</typeparam>
+            <typeparam name="TArgument">The type of the argument passed to the <paramref name="morpher"/> callback method.</typeparam>
+            <param name="target">A reference to the Int32 value that is to be modified atomically.</param>
+            <param name="argument">A value of type <typeparamref name="TArgument"/> that will be passed on to the <paramref name="morpher"/> callback method.</param>
+            <param name="morpher">The algorithm that modifies the Int32 returning a new Int32 value and another return value to be returned to the caller.</param>
+            <returns>The desired Int32 value.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.InterlockedEx.IfThen(System.Int32@,System.Int32,System.Int32)">
+            <summary>Compares two values for equality and, if they are equal, replaces one of the values.</summary>
+            <return>Returns true if the value in <paramref name="val"/> was equal the the value of <paramref name="if"/>.</return>
+            <param name="value">The destination, whose value is compared with <paramref name="if"/> and possibly replaced with <paramref name="then"/>.</param>
+            <param name="if">The value that is compared to the value at <paramref name="val"/>.</param>
+            <param name="then">The value that might get placed into <paramref name="val"/>.</param>
+        </member>
+        <member name="M:Wintellect.Threading.InterlockedEx.IfThen(System.UInt32@,System.UInt32,System.UInt32)">
+            <summary>Compares two values for equality and, if they are equal, replaces one of the values.</summary>
+            <return>Returns true if the value in <paramref name="val"/> was equal the the value of <paramref name="if"/>.</return>
+            <param name="value">The destination, whose value is compared with <paramref name="if"/> and possibly replaced with <paramref name="then"/>.</param>
+            <param name="if">The value that is compared to the value at <paramref name="val"/>.</param>
+            <param name="then">The value that might get placed into <paramref name="val"/>.</param>
+        </member>
+        <member name="M:Wintellect.Threading.InterlockedEx.IfThen(System.Int32@,System.Int32,System.Int32,System.Int32@)">
+            <summary>Compares two values for equality and, if they are equal, replaces one of the values.</summary>
+            <remarks>The previous value in <paramref name="value"/> is returned in <paramref name="previousValue"/>.</remarks>
+            <return>Returns true if the value in <paramref name="value"/> was equal the the value of <paramref name="if"/>.</return>
+            <param name="value">The destination, whose value is compared with <paramref name="if"/> and possibly replaced with <paramref name="then"/>.</param>
+            <param name="if">The value that is compared to the value at <paramref name="value"/>.</param>
+            <param name="then">The value that might get placed into <paramref name="value"/>.</param>
+            <param name="previousValue">The previous value that was in <paramref name="value"/> prior to calling this method.</param>
+        </member>
+        <member name="M:Wintellect.Threading.InterlockedEx.IfThen(System.UInt32@,System.UInt32,System.UInt32,System.UInt32@)">
+            <summary>Compares two values for equality and, if they are equal, replaces one of the values.</summary>
+            <remarks>The previous value in <paramref name="value"/> is returned in <paramref name="previousValue"/>.</remarks>
+            <return>Returns true if the value in <paramref name="value"/> was equal the the value of <paramref name="if"/>.</return>
+            <param name="value">The destination, whose value is compared with <paramref name="if"/> and possibly replaced with <paramref name="then"/>.</param>
+            <param name="if">The value that is compared to the value at <paramref name="value"/>.</param>
+            <param name="then">The value that might get placed into <paramref name="value"/>.</param>
+            <param name="previousValue">The previous value that was in <paramref name="value"/> prior to calling this method.</param>
+        </member>
+        <member name="M:Wintellect.Threading.InterlockedEx.IfThen``1(``0@,``0,``0)">
+            <summary>Compares two values for equality and, if they are equal, replaces one of the values.</summary>
+            <return>Returns true if the value in <paramref name="value"/> was equal the the value of <paramref name="if"/>.</return>
+            <typeparam name="T">The type to be used for value, if, and then. This type must be a reference type.</typeparam>
+            <param name="value">The destination, whose value is compared with <paramref name="if"/> and possibly replaced with <paramref name="then"/>.</param>
+            <param name="if">The value that is compared to the value at <paramref name="value"/>.</param>
+            <param name="then">The value that might get placed into <paramref name="value"/>.</param>
+        </member>
+        <member name="M:Wintellect.Threading.InterlockedEx.IfThen``1(``0@,``0,``0,``0@)">
+            <summary>Compares two values for equality and, if they are equal, replaces one of the values.</summary>
+            <remarks>The previous value in <paramref name="value"/> is returned in <paramref name="previousValue"/>.</remarks>
+            <return>Returns true if the value in <paramref name="value"/> was equal the the value of <paramref name="if"/>.</return>
+            <typeparam name="T">The type to be used for value, if, and then. This type must be a reference type.</typeparam>
+            <param name="value">The destination, whose value is compared with <paramref name="if"/> and possibly replaced with <paramref name="then"/>.</param>
+            <param name="if">The value that is compared to the value at <paramref name="value"/>.</param>
+            <param name="then">The value that might get placed into <paramref name="value"/>.</param>
+            <param name="previousValue">The previous value that was in <paramref name="value"/> prior to calling this method.</param>
+        </member>
+        <member name="M:Wintellect.Threading.InterlockedEx.CompareExchange(System.UInt32@,System.UInt32,System.UInt32)">
+            <summary>Compares two 32-bit unsigned integers for equality and, if they are equal, replaces one of the values.</summary>
+            <remarks>If comparand and the value in location are equal, then value is stored in location. Otherwise, no operation is performed. The compare and exchange operations are performed as an atomic operation. The return value of CompareExchange is the original value in location, whether or not the exchange takes place.</remarks>
+            <param name="location">The destination, whose value is compared with comparand and possibly replaced.</param>
+            <param name="value">The value that replaces the destination value if the comparison results in equality.</param>
+            <param name="comparand">The value that is compared to the value at <paramref name="location"/>.</param>
+            <returns>The original value in location.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.InterlockedEx.Exchange(System.UInt32@,System.UInt32)">
+            <summary>Sets a 32-bit unsigned integer to a specified value and returns the original value, as an atomic operation.</summary>
+            <param name="location">The variable to set to the specified value.</param>
+            <param name="value">The value to which the <paramref name="location"/> parameter is set.</param>
+            <returns>The original value of <paramref name="location"/>.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.InterlockedEx.Add(System.UInt32@,System.Int32)">
+            <summary>Adds a 32-bit signed integer to a 32-bit unsigned integer and replaces the first integer with the sum, as an atomic operation.</summary>
+            <param name="location">A variable containing the first value to be added. The sum of the two values is stored in <paramref name="location"/>.</param>
+            <param name="value">The value to be added to the integer at <paramref name="location"/>.</param>
+            <returns>The new value stored at <paramref name="location"/>.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.InterlockedEx.Increment(System.UInt32@)">
+            <summary>Increments a specified variable and stores the result, as an atomic operation.</summary>
+            <param name="location">The variable whose value is to be incremented.</param>
+            <returns>The incremented value.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.InterlockedEx.Decrement(System.UInt32@)">
+            <summary>Decrements a specified variable and stores the result, as an atomic operation.</summary>
+            <param name="location">The variable whose value is to be decremented.</param>
+            <returns>The decremented value.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.InterlockedEx.Max(System.Int32@,System.Int32)">
+            <summary>Increases a value to a new value if the new value is larger.</summary>
+            <return>Returns the previous value of <paramref name="target"/>.</return>
+            <param name="target">A variable containing the value that might be increased to a new maximum.</param>
+            <param name="value">The value that if larger than <paramref name="target"/> will be placed in <paramref name="target"/>.</param>
+        </member>
+        <member name="M:Wintellect.Threading.InterlockedEx.Min(System.Int32@,System.Int32)">
+            <summary>Decreases a value to a new value if the new value is smaller.</summary>
+            <return>Returns the previous value of <paramref name="target"/>.</return>
+            <param name="target">A variable containing the value that might be decreased to a new minimum.</param>
+            <param name="value">The value that if smaller than <paramref name="target"/> will be placed in <paramref name="target"/>.</param>
+        </member>
+        <member name="M:Wintellect.Threading.InterlockedEx.DecrementIfGreaterThan(System.Int32@,System.Int32)">
+            <summary>Decrements a value by 1 if the value is greater than the specified value (usually 0).</summary>
+            <return>Returns the previous value of <paramref name="target"/>.</return>
+            <param name="target">A variable containing the value that might be decremented.</param>
+            <param name="lowValue">The value that target must be greater than in order for the decrement to occur.</param>
+        </member>
+        <member name="M:Wintellect.Threading.InterlockedEx.AddModulo(System.Int32@,System.Int32,System.Int32)">
+            <summary>Decrements a value by 1 if the value is greater than 0.</summary>
+            <param name="target">A variable containing the value that might be decremented.</param>
+            <param name="value">The value to add to target before calculating the modulo specified in <paramref name="modulo"/>.</param>
+            <param name="modulo">The value to use for the modulo operation.</param>
+            <returns>Returns the previous value of <paramref name="target"/>.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.InterlockedEx.And(System.Int32@,System.Int32)">
+            <summary>Bitwise ANDs two 32-bit integers and replaces the first integer with the ANDed value, as an atomic operation.</summary>
+            <return>Returns the previous value of <paramref name="target"/>.</return>
+            <param name="target">A variable containing the first value to be ANDed. The bitwise AND of the two values is stored in <paramref name="target"/>.</param>
+            <param name="with">The value to AND with <paramref name="target"/>.</param>
+        </member>
+        <member name="M:Wintellect.Threading.InterlockedEx.Or(System.Int32@,System.Int32)">
+            <summary>Bitwise ORs two 32-bit integers and replaces the first integer with the ORed value, as an atomic operation.</summary>
+            <return>Returns the previous value of <paramref name="target"/>.</return>
+            <param name="target">A variable containing the first value to be ORed. The bitwise OR of the two values is stored in <paramref name="target"/>.</param>
+            <param name="with">The value to OR with <paramref name="target"/>.</param>
+        </member>
+        <member name="M:Wintellect.Threading.InterlockedEx.Or(System.Int64@,System.Int64)">
+            <summary>Bitwise ORs two 64-bit signed integers and replaces the first integer with the ORed value, as an atomic operation.</summary>
+            <return>Returns the previous value of <paramref name="target"/>.</return>
+            <param name="target">A variable containing the first value to be ORed. The bitwise OR of the two values is stored in <paramref name="target"/>.</param>
+            <param name="with">The value to OR with <paramref name="target"/>.</param>
+        </member>
+        <member name="M:Wintellect.Threading.InterlockedEx.Xor(System.Int32@,System.Int32)">
+            <summary>Bitwise XORs two 32-bit integers and replaces the first integer with the XORed value, as an atomic operation.</summary>
+            <return>Returns the previous value of <paramref name="target"/>.</return>
+            <param name="target">A variable containing the first value to be XORed. The bitwise XOR of the two values is stored in <paramref name="target"/>.</param>
+            <param name="with">The value to XOR with <paramref name="target"/>.</param>
+        </member>
+        <member name="M:Wintellect.Threading.InterlockedEx.BitTestAndSet(System.Int32@,System.Int32)">
+            <summary>Turns a bit on and returns whether or not it was on.</summary>
+            <return>Returns whether the bit was on prior to calling this method.</return>
+            <param name="target">A variable containing the value that is to have a bit turned on.</param>
+            <param name="bitNumber">The bit (0-31) in <paramref name="target"/> that should be turned on.</param>
+        </member>
+        <member name="M:Wintellect.Threading.InterlockedEx.BitTestAndReset(System.Int32@,System.Int32)">
+            <summary>Turns a bit off and returns whether or not it was on.</summary>
+            <return>Returns whether the bit was on prior to calling this method.</return>
+            <param name="target">A variable containing the value that is to have a bit turned off.</param>
+            <param name="bitNumber">The bit (0-31) in <paramref name="target"/> that should be turned off.</param>
+        </member>
+        <member name="M:Wintellect.Threading.InterlockedEx.BitTestAndCompliment(System.Int32@,System.Int32)">
+            <summary>Flips an on bit off or and off bit on.</summary>
+            <return>Returns whether the bit was on prior to calling this method.</return>
+            <param name="target">A variable containing the value that is to have a bit flipped.</param>
+            <param name="bitNumber">The bit (0-31) in <paramref name="target"/> that should be flipped.</param>
+        </member>
+        <member name="M:Wintellect.Threading.InterlockedEx.MaskedAnd(System.Int32@,System.Int32,System.Int32)">
+            <summary>Bitwise ANDs two 32-bit integers with a mask replacing the first integer with the ANDed value, as an atomic operation.</summary>
+            <return>Returns the previous value of <paramref name="target"/>.</return>
+            <param name="target">A variable containing the first value to be ANDed. The bitwise AND of the two values is stored in <paramref name="target"/>.</param>
+            <param name="with">The value to AND with <paramref name="target"/>.</param>
+            <param name="mask">The value to AND with <paramref name="target"/> prior to ANDing with <paramref name="with"/>.</param>
+        </member>
+        <member name="M:Wintellect.Threading.InterlockedEx.MaskedOr(System.Int32@,System.Int32,System.Int32)">
+            <summary>Bitwise ORs two 32-bit integers with a mask replacing the first integer with the ORed value, as an atomic operation.</summary>
+            <return>Returns the previous value of <paramref name="target"/>.</return>
+            <param name="target">A variable containing the first value to be ORed. The bitwise OR of the two values is stored in <paramref name="target"/>.</param>
+            <param name="with">The value to OR with <paramref name="target"/>.</param>
+            <param name="mask">The value to AND with <paramref name="target"/> prior to ORing with <paramref name="with"/>.</param>
+        </member>
+        <member name="M:Wintellect.Threading.InterlockedEx.MaskedXor(System.Int32@,System.Int32,System.Int32)">
+            <summary>Bitwise XORs two 32-bit integers with a mask replacing the first integer with the XORed value, as an atomic operation.</summary>
+            <return>Returns the previous value of <paramref name="target"/>.</return>
+            <param name="target">A variable containing the first value to be XORed. The bitwise XOR of the two values is stored in <paramref name="target"/>.</param>
+            <param name="with">The value to XOR with <paramref name="target"/>.</param>
+            <param name="mask">The value to AND with <paramref name="target"/> prior to XORing with <paramref name="with"/>.</param>
+        </member>
+        <member name="M:Wintellect.Threading.InterlockedEx.MaskedExchange(System.Int32@,System.Int32,System.Int32)">
+            <summary>Sets a variable to a specified value as an atomic operation.</summary>
+            <return>Returns the previous value of <paramref name="target"/>.</return>
+            <param name="target">A variable containing the value to be replaced.</param>
+            <param name="mask">The bits to leave unaffected in <paramref name="target"/> prior to ORing with <paramref name="value"/>.</param>
+            <param name="value">The value to reaplce <paramref name="target"/> with.</param>
+        </member>
+        <member name="M:Wintellect.Threading.InterlockedEx.MaskedAdd(System.Int32@,System.Int32,System.Int32)">
+            <summary>Adds two integers and replaces the first integer with the sum, as an atomic operation.</summary>
+            <return>Returns the previous value of <paramref name="target"/>.</return>
+            <param name="target">A variable containing the value to be replaced.</param>
+            <param name="value">The value to add to <paramref name="target"/>.</param>
+            <param name="mask">The bits in <paramref name="target"/> that should not be affected by adding.</param>
+        </member>
+        <member name="T:Wintellect.Threading.InterlockedEx.Morpher`2">
+            <summary>Identifies a method that morphs the Int32 startValue into a new value, returning it.</summary>
+            <typeparam name="TResult">The return type returned by the Morph method.</typeparam>
+            <typeparam name="TArgument">The argument type passed to the Morph method.</typeparam>
+            <param name="startValue">The initial Int32 value.</param>
+            <param name="argument">The argument passed to the method.</param>
+            <param name="morphResult">The value returned from Morph when the morpher callback method is successful.</param>
+            <returns>The value that the morpher method desires to set the <paramref name="startValue"/> to.</returns>
+        </member>
+        <member name="T:Wintellect.SafePinnedObject">
+            <summary>
+            This class encapsulates pinning a buffer. 
+            </summary>
+        </member>
+        <member name="M:Wintellect.SafePinnedObject.FromObject(System.Object)">
+            <summary>
+            This factory method wraps a SafePinnedObject around the specified object.
+            </summary>
+            <param name="value">The object that you want to pin.</param>
+            <returns>The SafePinnedObject wrapping the desired object.</returns>
+        </member>
+        <member name="M:Wintellect.SafePinnedObject.FromArray(System.Array,System.Int32,System.Int32)">
+            <summary>
+            This factory method wraps a SafePinnedObject around the specified array.
+            </summary>
+            <param name="array">The array that you want to pin.</param>
+            <param name="startOffset">The first element in the array whose address you want to pass to native code.</param>
+            <param name="numberOfElements">The number of elements in the array you wish to pass to native code.</param>
+            <returns>The SafePinnedObject wrapping the desired array elements.</returns>
+        </member>
+        <member name="M:Wintellect.SafePinnedObject.FromType(System.Type)">
+            <summary>
+            This factory method wraps a SafePinnedObject around an instance of the specified type.
+            </summary>
+            <param name="type">The type, an instance of which you want to pass to native code.</param>
+            <returns>The SafePinnedObject wrapping the desired type's instance.</returns>
+        </member>
+        <member name="M:Wintellect.SafePinnedObject.FromPointer(System.IntPtr,System.Int32)">
+            <summary>
+            This factory method wraps a SafePinnedObject around a native block of memory.
+            </summary>
+            <param name="pointer">The starting address of the native block of memory.</param>
+            <param name="numberOfBytes">The number of bytes in the native block of memory.</param>
+            <returns>The SafePinnedObject wrapping the desired native block of memory.</returns>
+        </member>
+        <member name="P:Wintellect.SafePinnedObject.Target">
+            <summary>
+            Returns the object of a pinned buffer or null if not specified 
+            </summary>
+        </member>
+        <member name="P:Wintellect.SafePinnedObject.Size">
+            <summary>
+            Returns the number of bytes in a pinned object or 0 if not specified 
+            </summary>
+        </member>
+        <member name="T:Wintellect.Threading.SyncContextEventRaiser">
+            <summary>
+            This class raises an event using a specific SynchronizationContext object.
+            </summary> 
+        </member>
+        <member name="M:Wintellect.Threading.SyncContextEventRaiser.#ctor">
+            <summary>
+            Constructs a SyncContextEventRaiser using the current thread's SynchronizationContext.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.SyncContextEventRaiser.#ctor(System.Threading.SynchronizationContext)">
+            <summary>
+            Constructs a SyncContextEventRaiser using the specified SynchronizationContext.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.SyncContextEventRaiser.PostEvent``1(Wintellect.Threading.SyncContextEventRaiser.EventRaiser{``0},``0)">
+            <summary>A method that asynchronously raises an event on the application's desired thread.</summary>
+            <typeparam name="T">The <see cref="T:System.EventArgs"/> type identifying the type of object that gets raised with the event"/></typeparam>
+            <param name="callback">The protected virtual method that will raise the event.</param>
+            <param name="e">The <see cref="T:System.EventArgs"/> object that should be passed to the protected virtual method raising the event.</param>
+        </member>
+        <member name="M:Wintellect.Threading.SyncContextEventRaiser.SendEvent``1(Wintellect.Threading.SyncContextEventRaiser.EventRaiser{``0},``0)">
+            <summary>A method that synchronously raises an event on the application's desired thread.</summary>
+            <typeparam name="T">The <see cref="T:System.EventArgs"/> type identifying the type of object that gets raised with the event"/></typeparam>
+            <param name="callback">The protected virtual method that will raise the event.</param>
+            <param name="e">The <see cref="T:System.EventArgs"/> object that should be passed to the protected virtual method raising the event.</param>
+        </member>
+        <member name="T:Wintellect.Threading.SyncContextEventRaiser.EventRaiser`1">
+            <summary>Represents a callback to a protected virtual method that raises an event.</summary>
+            <typeparam name="T">The <see cref="T:System.EventArgs"/> type identifying the type of object that gets raised with the event"/></typeparam>
+            <param name="e">The <see cref="T:System.EventArgs"/> object that should be passed to a protected virtual method that raises the event.</param>
+        </member>
+        <member name="T:Wintellect.Threading.ReaderWriterGate.ReaderWriterGate">
+            <summary>
+            This class implements a reader/writer lock that never blocks any threads.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ReaderWriterGate.ReaderWriterGate.Dispose">
+            <summary>
+            Releases all resources asscoiated with the ReaderWriterGate
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ReaderWriterGate.ReaderWriterGate.#ctor">
+            <summary>
+            Constructs a ReaderWriterGate object.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ReaderWriterGate.ReaderWriterGate.#ctor(System.Boolean)">
+            <summary>
+            Constructs a ReaderWriterGate object
+            </summary>
+            <param name="blockReadersUntilFirstWriteCompletes">Pass true to have readers block until the first writer has created the data that is being protected by the ReaderWriterGate.</param>
+        </member>
+        <member name="T:Wintellect.Threading.ResourceLocks.EventResourceLock">
+            <summary>
+            Implements a ResourceLock by way of a Windows auto-reset Event.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.EventResourceLock.#ctor">
+            <summary>
+            Constructs an EventResourceLock.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.EventResourceLock.OnWaitToWrite">
+            <summary>
+            Implements the ResourceLock's WaitToWrite behavior.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.EventResourceLock.OnDoneWriting">
+            <summary>
+            Implements the ResourceLock's DoneWriting behavior.
+            </summary>
+        </member>
+        <member name="T:Wintellect.Threading.ArbitraryWaitHandle">
+            <summary>
+            Converts variosu handles to waitable handle for synchronization.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ArbitraryWaitHandle.FromHandle(System.IntPtr)">
+            <summary>
+            A factory method that converts a Win32 handle to an ArbitraryWaitHandle.
+            </summary>
+            <param name="handle">Identifies a handle to a synchronizable Win32 object.</param>
+            <returns>An ArbitraryWaitHandle object.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.ArbitraryWaitHandle.op_Implicit(System.IntPtr)~Wintellect.Threading.ArbitraryWaitHandle">
+            <summary>
+            Implicitly casts a Win32 handle to an ArbitraryWaitHandle.
+            </summary>
+            <param name="handle">Identifies a handle to a synchronizable Win32 object.</param>
+            <returns>An ArbitraryWaitHandle object.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.ArbitraryWaitHandle.FromSafeHandle(System.Runtime.InteropServices.SafeHandle)">
+            <summary>
+            Converts a SafeHandle-derived object to an ArbitraryWaitHandle object.
+            </summary>
+            <param name="safeHandle">Identifies a SafeHandle to a synchronizable Win32 object.</param>
+            <returns>An ArbitraryWaitHandle object.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.ArbitraryWaitHandle.op_Implicit(System.Runtime.InteropServices.SafeHandle)~Wintellect.Threading.ArbitraryWaitHandle">
+            <summary>
+            Implicitly casts a SafeHandle-derived object to an ArbitraryWaitHandle.
+            </summary>
+            <param name="safeHandle">Identifies a SafeHandle to a synchronizable Win32 object.</param>
+            <returns>An ArbitraryWaitHandle object.</returns>
+        </member>
+        <member name="T:Wintellect.Threading.ResourceLocks.ReaderWriterResourceLock">
+            <summary>
+            A reader/write lock implemented using the .NET Framework's own System.Threading.ReaderWriterLock
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.ReaderWriterResourceLock.#ctor">
+            <summary>
+            Constructs a ReaderWriterResourceLock object.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.ReaderWriterResourceLock.OnWaitToWrite">
+            <summary>
+            Implements the ResourceLock's WaitToWrite behavior.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.ReaderWriterResourceLock.OnDoneWriting">
+            <summary>
+            Implements the ResourceLock's DoneWriting behavior.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.ReaderWriterResourceLock.OnWaitToRead">
+            <summary>
+            Implements the ResourceLock's WaitToRead behavior.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.ResourceLocks.ReaderWriterResourceLock.OnDoneReading">
+            <summary>
+            Implements the ResourceLock's DoneReading behavior.
+            </summary>
+        </member>
+        <member name="T:Wintellect.Threading.AsyncProgModel.SyncGateMode">
+            <summary>
+            Indicates if the SyncGate should be acquired for exclusive or shared access.
+            </summary>
+        </member>
+        <member name="F:Wintellect.Threading.AsyncProgModel.SyncGateMode.Exclusive">
+            <summary>
+            Indicates that exclusive access is required.
+            </summary>
+        </member>
+        <member name="F:Wintellect.Threading.AsyncProgModel.SyncGateMode.Shared">
+            <summary>
+            Indicates that shared access is required.
+            </summary>
+        </member>
+        <member name="T:Wintellect.Threading.AsyncProgModel.SyncGate">
+            <summary>
+            This class implements a reader/writer lock that never blocks any threads. 
+            This class integrates very well with the AsyncEnumerator class.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.SyncGate.#ctor">
+            <summary>
+            Constructs a SyncGate object.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.SyncGate.#ctor(System.Boolean)">
+            <summary>
+            Constructs a SyncGate object
+            </summary>
+            <param name="blockReadersUntilFirstWriteCompletes">Pass true to have readers block until the first writer has created the data that is being protected by the ReaderWriterGate.</param>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.SyncGate.BeginRegion(Wintellect.Threading.AsyncProgModel.SyncGateMode,System.AsyncCallback)">
+            <summary>
+            Allows the caller to notify the SyncGate that it wants exclusive or shared access to a resource. 
+            </summary>
+            <param name="mode">Indicates if exclusive or shared access is desired.</param>
+            <param name="asyncCallback">The callback method to invoke once access can be granted.</param>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.SyncGate.BeginRegion(Wintellect.Threading.AsyncProgModel.SyncGateMode,System.AsyncCallback,System.Object)">
+            <summary>
+            Allows the caller to notify the SyncGate that it wants exclusive or shared access to a resource. 
+            </summary>
+            <param name="mode">Indicates if exclusive or shared access is desired.</param>
+            <param name="asyncCallback">The callback method to invoke once access can be granted.</param>
+            <param name="asyncState">Additional state to pass to the callback method.</param>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.SyncGate.EndRegion(System.IAsyncResult)">
+            <summary>
+            Call this method after accessing the resource to notify the SyncGate that it can grant access to other code.
+            </summary>
+            <param name="result">The IAsyncResult object given to the callback method when access was granted.</param>
+        </member>
+        <member name="T:Wintellect.Threading.AsyncProgModel.AsyncResult">
+            <summary>
+            Represents the status of an asynchronous operation that has no return type.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncResult.#ctor(System.AsyncCallback,System.Object)">
+            <summary>
+            Constructs an object that identifies an asynchronous operation.
+            </summary>
+            <param name="asyncCallback">The method that should be executed wehen the operation completes.</param>
+            <param name="state">The object that can be obtained via the AsyncState property.</param>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncResult.#ctor(System.AsyncCallback,System.Object,System.Object)">
+            <summary>
+            Constructs an object that identifies an asynchronous operation.
+            </summary>
+            <param name="asyncCallback">The method that should be executed wehen the operation completes.</param>
+            <param name="state">The object that can be obtained via the AsyncState property.</param>
+            <param name="initiatingObject">Identifies the object that is initiating the asynchronous operation. This object is obtainable via the InitiatingObject property.</param>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncResult.SetAsCompleted(System.Exception,System.Boolean)">
+            <summary>
+            Call this method to indicate that the asynchronous operation has completed.
+            </summary>
+            <param name="exception">If non-null, this argument identifies the exception that occuring while processing the asynchronous operation.</param>
+            <param name="completedSynchronously">Indicates whether the operation completed synchronously or asynchronously.</param>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncResult.EndInvoke">
+            <summary>
+            Frees up resources used by the asynchronous operation represented by the IAsyncResult passed.
+            If the asynchronous operation failed, this method throws the exception.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncResult.GetAsyncCallbackHelper">
+            <summary>
+            Returns a single static delegate to a static method that will invoke the desired AsyncCallback
+            </summary>
+            <returns>The single static delegate.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncResult.BeginInvokeOnWorkerThread">
+            <summary>
+            Returns an IAsyncResult for an operations that was queued to the thread pool.
+            </summary>
+            <returns>The IAsyncResult.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncResult.OnCompleteOperation(System.IAsyncResult)">
+            <summary>
+            Invokes the callback method when the asynchronous operations completes.
+            </summary>
+            <param name="result">The IAsyncResult object identifying the asynchronous operation that has completed.</param>
+        </member>
+        <member name="P:Wintellect.Threading.AsyncProgModel.AsyncResult.InitiatingObject">
+            <summary>
+            Gets the object passed to the constructor to initate the asynchronous operation.
+            </summary>
+        </member>
+        <member name="P:Wintellect.Threading.AsyncProgModel.AsyncResult.AsyncState">
+            <summary>
+            Gets a user-defined object that qualifies or contains information about an asynchronous operation.
+            </summary>
+        </member>
+        <member name="P:Wintellect.Threading.AsyncProgModel.AsyncResult.CompletedSynchronously">
+            <summary>
+            Gets an indication of whether the asynchronous operation completed synchronously.
+            </summary>
+        </member>
+        <member name="P:Wintellect.Threading.AsyncProgModel.AsyncResult.AsyncWaitHandle">
+            <summary>
+            Gets a WaitHandle that is used to wait for an asynchronous operation to complete.
+            </summary>
+        </member>
+        <member name="P:Wintellect.Threading.AsyncProgModel.AsyncResult.IsCompleted">
+            <summary>
+            Gets an indication whether the asynchronous operation has completed.
+            </summary>
+        </member>
+        <member name="T:Wintellect.Threading.ResourceLocks.ResourceLockOptions">
+            <summary>
+            Flags representing features of the ResourceLock.
+            </summary>
+        </member>
+        <member name="F:Wintellect.Threading.ResourceLocks.ResourceLockOptions.None">
+            <summary>
+            None.
+            </summary>
+        </member>
+        <member name="F:Wintellect.Threading.ResourceLocks.ResourceLockOptions.AcquiringThreadMustRelease">
+            <summary>
+            If specified, then the thread that acquires the lock must also 
+            release the lock. No other thread can release the lock.
+            </summary>
+        </member>
+        <member name="F:Wintellect.Threading.ResourceLocks.ResourceLockOptions.SupportsRecursion">
+            <summary>
+            If specified, then this lock supports recursion.
+            </summary>
+        </member>
+        <member name="F:Wintellect.Threading.ResourceLocks.ResourceLockOptions.IsMutualExclusive">
+            <summary>
+            Indicates that this lock is really a mutual-exclusive lock allowing only one thread to enter into it at a time.
+            </summary>
+        </member>
+        <member name="F:Wintellect.Threading.ResourceLocks.ResourceLockOptions.ImmuneFromDeadlockDetection">
+            <summary>
+            If specified, then deadlock detection does not apply to this kind of lock.
+            </summary>
+        </member>
+        <member name="T:Wintellect.Threading.ResourceLocks.ResourceLockState">
+            <summary>
+            Indicates the current state of the lock.
+            </summary>
+        </member>
+        <member name="F:Wintellect.Threading.ResourceLocks.ResourceLockState.NotLocked">
+            <summary>
+            The lock is current not locked by any thread.
+            </summary>
+        </member>
+        <member name="F:Wintellect.Threading.ResourceLocks.ResourceLockState.LockedForReading">
+            <summary>
+            The lock is current locked by one or more readers.
+            </summary>
+        </member>
+        <member name="F:Wintellect.Threading.ResourceLocks.ResourceLockState.LockedForWriting">
+            <summary>
+            The lock is currently locked by one writer.
+            </summary>
+        </member>
+        <member name="T:Wintellect.Threading.AsyncProgModel.AsyncEnumerator">
+            <summary>
+            A class that can drive an iterator asynchronously allowing for scalable and responsive applications and components.
+            </summary>
+        </member>
+        <member name="F:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.MaxDiscardGroup">
+            <summary>
+            A discard group can be any number from 0 to MaxDiscardGroup.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.FromAsyncResult(System.IAsyncResult)">
+            <summary>
+            Returns the AsyncEnumerator object used to obtain this IAsyncResult object.
+            </summary>
+            <param name="result">An IAsyncResult object previously returned 
+            by calling BeginExecute.</param>
+            <returns>A reference to the AsyncEnumerator object that was used to call BeginExecute.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.ThrowOnMissingDiscardGroup(System.Boolean)">
+            <summary>
+            Sets a flag indicating whether the AsyncEnumerator should throw an exception
+            if you call a BeginXxx method without calling the End or EndVoid method passing a discard group.
+            This method exists to allow some runtime checks to help ensure that you are writing your code correctly. 
+            </summary>
+            <param name="throw">Pass true to turn checking on; false to turn it off.</param>
+        </member>
+        <member name="F:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.m_asyncResult">
+            <summary>
+            The IAsyncResult object that allows the iteration to execute asynchronously
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.#ctor">
+            <summary>
+            Initializes a new instance of the AsyncEnumerator class.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.#ctor(System.String)">
+            <summary>
+            Initializes a new instance of the AsyncEnumerator class identified with a debug tag.
+            </summary>
+            <param name="debugTag">The desired debug tag name for this AsyncEnumerator object.</param>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.Execute(System.Collections.Generic.IEnumerator{System.Int32})">
+            <summary>
+            Executes an interator and waits for it to complete before returning.
+            </summary>
+            <param name="enumerator">Identifies the iterator method to be driven by the AsyncEnumerator,</param>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.BeginExecute(System.Collections.Generic.IEnumerator{System.Int32},System.AsyncCallback)">
+            <summary>
+            Begins executing an interator and returns after the iterator's first yield return statement executes.
+            </summary>
+            <param name="enumerator">Identifies the iterator method to be driven by the AsyncEnumerator,</param>
+            <param name="callback">An optional asynchronous callback, to be called when the iterator completes.</param>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.BeginExecute(System.Collections.Generic.IEnumerator{System.Int32},System.AsyncCallback,System.Object)">
+            <summary>
+            Begins executing an interator and returns after the iterator's first yield return statement executes.
+            </summary>
+            <param name="enumerator">Identifies the iterator method to be driven by the AsyncEnumerator,</param>
+            <param name="callback">An optional asynchronous callback, to be called when the iterator completes.</param>
+            <param name="state">A user-provided object that distinguishes this particular asynchronous operation from other operations.</param>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.EndExecute(System.IAsyncResult)">
+            <summary>
+            Waits for the pending asynchronous operation to complete.
+            </summary>
+            <param name="result">The reference to the pending asynchronous operation to finish.</param>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.OnConstructAsyncResult(System.AsyncCallback,System.Object)">
+            <summary>
+            Called to construct an AsyncResult object with the specified callback function and state.
+            </summary>
+            <param name="callback">An optional asynchronous callback, to be called when the iterator completes.</param>
+            <param name="state">A user-provided object that distinguishes this particular asynchronous operation from other operations.</param>
+            <returns>The AsyncResult object.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.OnCompleteAsyncResult">
+            <summary>
+            Called when the asynchronous operation completes.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.End">
+            <summary>
+            Pass this to a BegixXxx method's AsyncCallback argument to have the operation
+            complete to advance the enumerator. The operation is implicitly part of discard group 0.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.EnqueueCompletedOpToInbox(System.Object)">
+            <summary>
+            Called internally when an async operation completes
+            </summary>
+            <param name="asyncResultOrDiscardableAsyncResult">The IAsyncResult (for a non-discardable) or the DiscardableAsyncResult (for a discardable) operation.</param>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.TryEnqueueCompletedOpToInbox(Wintellect.Threading.AsyncProgModel.AsyncEnumerator.AsyncResultWrapper)">
+            <summary>
+            Rejects a completed DiscardableAsyncResult if its group has been discarded; if not rejected, 
+            the DiscardableAsyncResult is added to the inbox.
+            </summary>
+            <param name="asyncResultWrapper">The completed AsyncResultWrapper</param>
+            <returns>True if the AsyncResultWrapper was added to the inbox; false if it was rejected.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.DequeueAsyncResult">
+            <summary>
+            Dequeues a completed AsyncResultWrapper's IAsyncResult object from the inbox.
+            </summary>
+            <returns>The completed DiscardableAsyncResult's IAsyncResult object.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.DiscardAsyncResultsBelongingToDiscardedGroups">
+            <summary>
+            Discards previously-completed DiscardableAsyncResult objects from the inbox if their discard group has been discarded
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.IsDebuggingEnabled">
+            <summary>
+            Returns true if the EnableDebugging method has ever been called.
+            </summary>
+            <returns>true if EnableDebugging has ever been called.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.EnableDebugSupport">
+            <summary>
+            Call this method to enable operation debugging support. When enabled, call 
+            stacks are captured and recorded when End methods are invoked. As operations
+            complete, the call stacks are discarded. Calling ToString on an AsyncEnumerator
+            object will shows its tag, the time stamp of the last 'yield return' statement 
+            executed and the collection of its outstanding operations (tags and line/file 
+            where the End method was called for it). 
+            Typically, you'd examine this information in a debugger. Because capturing call 
+            stacks hurts performance, you should only enable debugging support to help you 
+            solve a problem related to operations that do not complete.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.GetInProgressList">
+            <summary>
+            Returns the AsyncEnumerator objects are are in progress of executing an iterator.
+            The list returned is sorted. Element 0 identifes the AsyncEnumerator that has been 
+            waiting the longest for its operations to complete. The last element has been waiting
+            the shortest amount of time. 
+            </summary>
+            <returns>The sorted list of in-progress AsyncEnumerator objects.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.SetOperationTag(System.String)">
+            <summary>
+            Sets the debug tag name of the next operation that you are initiating as 
+            indicated by the netx call to an End method. This method is marked with 
+            the [Conditional("AsyncEnumeratorDebug")] attribute.
+            </summary>
+            <param name="debugOperationTag">The debug tag name for the next operation you are initiating.</param>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.ToString">
+            <summary>
+            Returns debug information about the AsyncEnumerator object. The information includes
+            the Name (passed in the constructor). If EnableDebugging has been called, then the
+            last yield timestamp and source code line/file is also displayed.
+            </summary>
+            <returns>String contianing helpful debugging information.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.DiscardGroup(System.Int32)">
+            <summary>
+            Discards all operations that are part of the specified discard group from the Inbox.
+            </summary>
+            <param name="group">The discard group number (0-MaxDiscardGroup).</param>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.End(System.Int32,Wintellect.Threading.AsyncProgModel.AsyncEnumerator.EndObjectXxx)">
+            <summary>
+            Pass the result of this method to a BegixXxx method's AsyncCallback argument to have a cancelable operation
+            complete to advance the enumerator.
+            </summary>
+            <param name="group">Identifies an operation sequence number used for cancelation. The number passed must be between 0 and MaxDiscardGroup.</param>
+            <param name="callback">The EndXxx method that must be called when this canceled operation eventually completes.</param>
+            <returns>The value that should be passed to a BeginXxx method's AsyncCallback argument.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.EndVoid(System.Int32,Wintellect.Threading.AsyncProgModel.AsyncEnumerator.EndVoidXxx)">
+            <summary>
+            Pass the result of this method to a BegixXxx method's AsyncCallback argument to have a cancelable operation
+            complete to advance the enumerator.
+            </summary>
+            <param name="group">Identifies an operation sequence number used for cancelation. The number passed must be between 0 and 63.</param>
+            <param name="callback">The EndXxx method that must be called when this canceled operation eventually completes.</param>
+            <returns>The value that should be passed to a BeginXxx method's AsyncCallback argument.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.SetCancelTimeout(System.Int32,System.Object)">
+            <summary>
+            Causes a timer to automatically call Cancel.
+            </summary>
+            <param name="milliseconds">How long to wait before Cancel is called.</param>
+            <param name="cancelValue">Identifies the cancelValue to be passed to Cancel.</param>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.Cancel(System.Object)">
+            <summary>
+            Tells the iterator to Cancel all of its remaining operations.
+            </summary>
+            <param name="cancelValue">An arbitrary value that can be examined by the iterator. 
+            This value is returned by IsCanceled.</param>
+            <returns>Returns True if the calling thread is the first thread to call Cancel (and sets the cancelValue).</returns>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.IsCanceled">
+            <summary>
+            An iterator calls this to determine if Cancel has been called (possibly by a timer set by a call to SetCancelTimer).
+            </summary>
+            <returns>Returns True if Cancel has been called.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.IsCanceled(System.Object@)">
+            <summary>
+            An iterator calls this to determine if Cancel has been called (possibly by a timer set by a call to SetCancelTimer).
+            </summary>
+            <param name="cancelValue">Returns the cancelValue passed to Cancel.</param>
+            <returns>Returns True if Cancel has been called.</returns>
+        </member>
+        <member name="P:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.SyncContext">
+            <summary>
+            Gets or sets the SynchronizationContext object that the AsyncEnumerator uses when resuming your iterator.
+            All value of null (the default), means that your iterator will execute via various thread pool threads. 
+            </summary>
+        </member>
+        <member name="P:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.LastYieldReturnTimestamp">
+            <summary>
+            Returns the timestamp at the last 'yield return' statement.
+            </summary>
+        </member>
+        <member name="T:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.EndObjectXxx">
+            <summary>
+            Identifies an EndXxx method that takes an IAsyncResult and returns some result
+            </summary>
+            <param name="result">The IAsyncResult of the completion operation.</param>
+            <returns>The EndXxx method's return value.</returns>
+        </member>
+        <member name="T:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.EndVoidXxx">
+            <summary>
+            Identifies an EndXxx method that takes an IAsyncResult and doesn't return a value
+            </summary>
+            <param name="result">The IAsyncResult of the completion operation.</param>
+        </member>
+        <member name="T:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.DiscardableAsyncResult">
+            <summary>
+            Class that wraps an asynchronous operation and its AsyncCallback method.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.DiscardableAsyncResult.SelfComplete">
+            <summary>
+            Called when an DiscardableAsyncResult is being rejected/dicarded to ensure that its EndXxx method is invoked
+            </summary>
+        </member>
+        <member name="T:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.AsyncResultWrapper">
+            <summary>
+            A ValueType that abstracts an IAsyncResult (used for non-discard group operations) 
+            from a DiscardableAsyncResult (used for discard group operation).
+            This type makes an IAsyncResult look like a DiscardableAsyncResult object without construction of another object
+            </summary>
+        </member>
+        <member name="T:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.WaitAndInboxCounts">
+            <summary>
+            This struct contains a single Int32 member that encapsulates the  
+            number of items the enumerator is waiting for and the number of 
+            completed async operations in the inbox. All members of this type
+            manipulate the counters atomically.
+            </summary>
+        </member>
+        <member name="F:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.WaitAndInboxCounts.c_MaxWait">
+            <summary>
+            Sentinal value used to indicate that a thread determined that 
+            it should call MoveNext again to advance the iterator 
+            </summary>
+        </member>
+        <member name="F:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.WaitAndInboxCounts.m_waitAndInboxCounts">
+            <summary>
+            High 16 bits=number of inbox items to wait for before calling MoveNext
+            Low 16 bits=number of items in inbox 
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.WaitAndInboxCounts.#ctor(System.Int32)">
+            <summary>
+            Constructs a WaitAndInboxCounts instance from an Int32
+            </summary>
+            <param name="waic">The Int32 instance.</param>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.WaitAndInboxCounts.ToInt32">
+            <summary>
+            Converts a WaitAndInboxCounts instance to an Int32
+            </summary>
+            <returns>The WaitAndInboxCounts object as an Int32.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.WaitAndInboxCounts.Initialize">
+            <summary>
+            Initializes the Wait to the sentinal value because we don't want
+            a thread to MoveNext until the iterator has returned a Wait at least once
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.WaitAndInboxCounts.AtomicSetWait(System.UInt16)">
+            <summary>
+            Atomically updates the number of inbox items the enumerator 
+            wants to wait for and returns the new value.
+            </summary>
+            <param name="numberOpsToWaitFor">The number of asynchronous operations that must complete before the enumerator advances.</param>
+            <returns>Returns true if the calling thread met the requirements necessary to call the enumerator's MoveNext method.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.WaitAndInboxCounts.AtomicIncrementInbox">
+            <summary>
+            Atomically updates the number of inbox items the enumerator 
+            wants to wait for and returns the new value. 
+            </summary>
+            <returns>Returns true if the calling thread met the requirements necessary to call the enumerator's MoveNext method.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.WaitAndInboxCounts.AtomicDecrementInbox(System.Int32)">
+            <summary>
+            Atomically subtracts the number of discarded items from the inbox.
+            </summary>
+            <param name="numRemoved">The number of asynchronous operations that were discarded from the inbox.</param>
+        </member>
+        <member name="P:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.WaitAndInboxCounts.Wait">
+            <summary>
+            Gets/Sets the number of items the enumerator is waiting for 
+            </summary>
+        </member>
+        <member name="P:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.WaitAndInboxCounts.Inbox">
+            <summary>
+            Gets/Sets the number of items in the inbox
+            </summary>
+        </member>
+        <member name="T:Wintellect.Threading.AsyncProgModel.NoEndMethodCalled">
+            <summary>
+            This class is used when throwing an Exception to indicate 
+            that an operation is being discarded but no EndXxx method 
+            was specified and so resources are being leaked.
+            </summary>
+        </member>
+        <member name="P:Wintellect.Threading.AsyncProgModel.NoEndMethodCalled.AsyncResult">
+            <summary>
+            Identifies the IAsyncResult object that was being discarded.
+            </summary>
+        </member>
+        <member name="T:Wintellect.Threading.AsyncProgModel.AsyncEnumerator`1">
+            <summary>
+            A class that can drive an iterator asynchronously allowing for 
+            scalable and responsive applications and components.
+            </summary>
+            <typeparam name="TResult">The type of result that the iterator method will return.</typeparam>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator`1.FromAsyncResult(System.IAsyncResult)">
+            <summary>
+            Returns the AsyncEnumerator object used to obtain this IAsyncResult object.
+            </summary>
+            <param name="result">An IAsyncResult object previously returned 
+            by calling BeginExecute.</param>
+            <returns>A reference to the AsyncEnumerator object that was used to call BeginExecute.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator`1.#ctor">
+            <summary>
+            Initializes a new instance of the AsyncEnumerator class.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator`1.#ctor(System.String)">
+            <summary>
+            Initializes a new instance of the AsyncEnumerator class identified with a debug tag.
+            </summary>
+            <param name="debugTag">The desired debug tag name for this AsyncEnumerator object.</param>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator`1.Execute(System.Collections.Generic.IEnumerator{System.Int32})">
+            <summary>
+            Executes an interator and waits for it to complete before returning.
+            </summary>
+            <param name="enumerator">Identifies the iterator method to be driven by the AsyncEnumerator,</param>
+            <returns>The value set in the Result property by the iterator.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator`1.EndExecute(System.IAsyncResult)">
+            <summary>
+            Waits for the pending asynchronous operation to complete.
+            </summary>
+            <param name="result">The reference to the pending asynchronous operation to finish.</param>
+            <returns>The value set in the Result property by the iterator.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator`1.OnConstructAsyncResult(System.AsyncCallback,System.Object)">
+            <summary>
+            Called to construct an AsyncResult object with the specified callback function and state.
+            </summary>
+            <param name="callback">An optional asynchronous callback, to be called when the iterator completes.</param>
+            <param name="state">A user-provided object that distinguishes this particular asynchronous operation from other operations.</param>
+            <returns>The AsyncResult object.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator`1.OnCompleteAsyncResult">
+            <summary>
+            Called when the asynchronous operation completes.
+            </summary>
+        </member>
+        <member name="P:Wintellect.Threading.AsyncProgModel.AsyncEnumerator`1.Result">
+            <summary>
+            An iterator sets this property to return the value back to code that executed the iterator.
+            Code that executed the iterator usually gets this value as the return value from Execute or EndExecute. 
+            </summary>
+        </member>
+        <member name="T:Wintellect.OperationTimer">
+            <summary>
+            This class is useful for timing the duration of an algorithm
+            </summary>
+        </member>
+        <member name="M:Wintellect.OperationTimer.#ctor">
+            <summary>
+            Constructs an OperationTimer with an empty text string
+            </summary>
+        </member>
+        <member name="M:Wintellect.OperationTimer.#ctor(System.String)">
+            <summary>
+            Constructs an OperationTimer with text identifying the operation
+            </summary>
+            <param name="text">Text describing the operation.</param>
+        </member>
+        <member name="M:Wintellect.OperationTimer.Dispose">
+            <summary>
+            Call this when the operation is done to see how long it took and how many GCs occurred.
+            </summary>
+        </member>
+        <member name="T:Wintellect.Threading.AsyncProgModel.AsyncResult`1">
+            <summary>
+            Represents the status of an asynchronous operation that has a return type of type <typeparamref name="TResult"/>.
+            </summary>
+            <typeparam name="TResult">The type of the return value</typeparam>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncResult`1.#ctor(System.AsyncCallback,System.Object)">
+            <summary>
+            Constructs an object that identifies an asynchronous operation.
+            </summary>
+            <param name="asyncCallback">The method that should be executed wehen the operation completes.</param>
+            <param name="state">The object that can be obtained via the AsyncState property.</param>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncResult`1.#ctor(System.AsyncCallback,System.Object,System.Object)">
+            <summary>
+            Constructs an object that identifies an asynchronous operation.
+            </summary>
+            <param name="asyncCallback">The method that should be executed wehen the operation completes.</param>
+            <param name="state">The object that can be obtained via the AsyncState property.</param>
+            <param name="initiatingObject">Identifies the object that is initiating the asynchronous operation. This object is obtainable via the InitiatingObject property.</param>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncResult`1.SetAsCompleted(`0,System.Boolean)">
+            <summary>
+            Call this method to indicate that the asynchronous operation has completed.
+            </summary>
+            <param name="result">Indicates the value calculated by the asynchronous operation.</param>
+            <param name="completedSynchronously">Indicates whether the operation completed synchronously or asynchronously.</param>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncResult`1.EndInvoke">
+            <summary>
+            Frees up resources used by the asynchronous operation represented by the IAsyncResult passed.
+            If the asynchronous operation failed, this method throws the exception. If the operation suceeded,
+            this method returns the value calculated by the asynchronous operation.
+            </summary>
+            <returns>The value calculated by the asynchronous operation.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncResult`1.GetAsyncCallbackHelper">
+            <summary>
+            Returns a single static delegate to a static method that will invoke the desired AsyncCallback
+            </summary>
+            <returns>The single static delegate.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncResult`1.BeginInvokeOnWorkerThread">
+            <summary>
+            Returns an IAsyncResult for an operations that was queued to the thread pool.
+            </summary>
+            <returns>The IAsyncResult.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncResult`1.OnCompleteOperation(System.IAsyncResult)">
+            <summary>
+            Invokes the callback method when the asynchronous operations completes.
+            </summary>
+            <param name="result">The IAsyncResult object identifying the asynchronous operation that has completed.</param>
+            <returns>The value computed by the asynchronous operation.</returns>
+        </member>
+        <member name="T:Wintellect.Threading.AsyncProgModel.AsyncResultReflection`1">
+            <summary>
+            Represents the status of an asynchronous operation that has a return type of type <typeparamref name="TResult"/>.
+            </summary>
+            <typeparam name="TResult">The type of the operations computed value.</typeparam>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncResultReflection`1.#ctor(System.AsyncCallback,System.Object,System.Object,System.Reflection.MethodInfo,System.Object[])">
+            <summary>
+            Constructs an object that identifies an asynchronous operation.
+            </summary>
+            <param name="asyncCallback">The method that should be executed wehen the operation completes.</param>
+            <param name="state">The object that can be obtained via the AsyncState property.</param>
+            <param name="target">The object whose instance method should be called. Pass null to invoke a static method.</param>
+            <param name="methodInfo">Identifies the static or instance method that should be invoked when the asynchronous operation completes.</param>
+            <param name="args">Identifies the arguments that should be passed to the method when the asynchronous operation completes.</param>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncResultReflection`1.OnCompleteOperation(System.IAsyncResult)">
+            <summary>
+            Invokes the target's method passing it the specified arguments when the asynchronous operations completes.
+            </summary>
+            <param name="result">The IAsyncResult object identifying the asynchronous operation that has completed.</param>
+            <returns>The value computed by the asynchronous operation.</returns>
+        </member>
+        <member name="T:Wintellect.Threading.AsyncProgModel.SyncContextAsyncCallback">
+            <summary>
+            This class invokes an AsyncCallback delegate via a specific SynchronizationContext object.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.SyncContextAsyncCallback.Wrap(System.AsyncCallback,System.Boolean)">
+            <summary>
+            Wraps the calling thread's SynchronizationContext object around the specified AsyncCallback.
+            </summary>
+            <param name="callback">The method that should be invoked using 
+            the calling thread's SynchronizationContext.</param>
+            <param name="send">true if the AsyncCallback should be invoked via send; false if post.</param>
+            <returns>The wrapped AsyncCallback delegate.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.SyncContextAsyncCallback.Wrap(System.AsyncCallback)">
+            <summary>
+            Wraps the calling thread's SynchronizationContext object around the specified AsyncCallback.
+            </summary>
+            <param name="callback">The method that should be invoked using 
+            the calling thread's SynchronizationContext.</param>
+            <returns>The wrapped AsyncCallback delegate.</returns>
+        </member>
+        <member name="T:Wintellect.Disposer">
+            <summary>
+            Puts an IDisposable wrapper around a callback method allowing any 
+            method to be used with the C# using statement. 
+            </summary>
+        </member>
+        <member name="M:Wintellect.Disposer.#ctor(Wintellect.Disposer.DisposeMethod)">
+            <summary>
+            Constructs a Dispose object around the specified method.
+            </summary>
+            <param name="disposeMethod">The method that should be called via Dispose.</param>
+        </member>
+        <member name="M:Wintellect.Disposer.Dispose">
+            <summary>
+            Invokes the desired method via this method.
+            </summary>
+        </member>
+        <member name="T:Wintellect.Disposer.DisposeMethod">
+            <summary>
+            A delegate that matches the signature of IDisposable's Dispose method.
+            </summary>
+        </member>
+        <member name="T:Wintellect.IO.DeviceControlCode">
+            <summary>
+            A value type representing a single device control code.
+            </summary>
+        </member>
+        <member name="M:Wintellect.IO.DeviceControlCode.#ctor(Wintellect.IO.DeviceType,System.Int32,Wintellect.IO.DeviceMethod,Wintellect.IO.DeviceAccess)">
+            <summary>
+            Constructs a device control code.
+            </summary>
+            <param name="type">Identifies the type of device.</param>
+            <param name="function">Identifies the device's function.</param>
+            <param name="method">Identifies the bufferring method.</param>
+            <param name="access">Identifies what access to the device is required.</param>
+        </member>
+        <member name="M:Wintellect.IO.DeviceControlCode.ToString">
+            <summary>
+            Returns the device code number as a string.
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:Wintellect.IO.DeviceControlCode.GetHashCode">
+            <summary>
+            Returns the hash code for the device code.
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:Wintellect.IO.DeviceControlCode.Equals(System.Object)">
+            <summary>
+            Determines whether the specified Object is equal to the current DeviceControlCode.
+            </summary>
+            <param name="obj"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Wintellect.IO.DeviceControlCode.op_Equality(Wintellect.IO.DeviceControlCode,Wintellect.IO.DeviceControlCode)">
+            <summary>
+            Determines whether two DeviceControlCode objects have the same value.
+            </summary>
+            <param name="code1">The first DeviceControlCode to compare.</param>
+            <param name="code2">The second DeviceControlCode to compare.</param>
+            <returns>true if code1 and code2 have the same value; otherwise, false</returns>
+        </member>
+        <member name="M:Wintellect.IO.DeviceControlCode.op_Inequality(Wintellect.IO.DeviceControlCode,Wintellect.IO.DeviceControlCode)">
+            <summary>
+            Determines whether two DeviceControlCode objects have different values.
+            </summary>
+            <param name="code1">The first DeviceControlCode to compare.</param>
+            <param name="code2">The second DeviceControlCode to compare.</param>
+            <returns>true if code1 and code2 have different values; otherwise, false</returns>
+        </member>
+        <member name="T:Wintellect.IO.DeviceType">
+            <summary>
+            The various types of devices.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceType.None">
+            <summary>
+            None.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceType.Beep">
+            <summary>
+            The Beep device.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceType.CDRom">
+            <summary>
+            The CDRom device.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceType.CDRomFileSystem">
+            <summary>
+            The CDRom File System device.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceType.Controller">
+            <summary>
+            The Controller device.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceType.DataLink">
+            <summary>
+            The DataLink device.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceType.Dfs">
+            <summary>
+            The DFS device.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceType.Disk">
+            <summary>
+            The disk device.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceType.DiskFileSystem">
+            <summary>
+             The Disk file system device.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceType.FileSystem">
+            <summary>
+             The file system device.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceType.InportPort">
+            <summary>
+            The inport port device.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceType.Keyboard">
+            <summary>
+             The keyboard device.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceType.Mailslot">
+            <summary>
+            The mailslot device.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceType.MidiIn">
+            <summary>
+            THe MIDI in device.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceType.MidiOut">
+            <summary>
+             The MIDI out device.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceType.Mouse">
+            <summary>
+             The mouse device.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceType.MultiUncProvider">
+            <summary>
+            The multi UNC provider device.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceType.NamedPipe">
+            <summary>
+             The named-pipe device.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceType.Network">
+            <summary>
+            The networkd device.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceType.NetworkBrowser">
+            <summary>
+            The network browser device.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceType.NetworkFileSystem">
+            <summary>
+             The network file system device.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceType.Null">
+            <summary>
+            The null device.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceType.ParallelPort">
+            <summary>
+            The parallel port device.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceType.PhysicalNetcard">
+            <summary>
+            The physical net card device.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceType.Printer">
+            <summary>
+            The printer device.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceType.Scanner">
+            <summary>
+            The scanner device.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceType.SerialMousePort">
+            <summary>
+            The serial mouse port device.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceType.SerialPort">
+            <summary>
+            The serial port device.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceType.Screen">
+            <summary>
+            The screen device.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceType.Sound">
+            <summary>
+            The sound device.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceType.Streams">
+            <summary>
+            The streams device.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceType.Tape">
+            <summary>
+            The tape device.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceType.TapeFileSystem">
+            <summary>
+            The tape file system device.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceType.Transport">
+            <summary>
+            The transport device.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceType.Unknown">
+            <summary>
+            The unknown device.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceType.Video">
+            <summary>
+            The video device.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceType.VirtualDisk">
+            <summary>
+            The virtual disk device.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceType.WaveIn">
+            <summary>
+            The wave in device.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceType.WaveOut">
+            <summary>
+            The wave out device.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceType.Port8042">
+            <summary>
+            The port 8042 device.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceType.NetworkRedirector">
+            <summary>
+            The network redirector device.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceType.Battery">
+            <summary>
+            The battery device.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceType.BusExtender">
+            <summary>
+            The bus extender device.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceType.Modem">
+            <summary>
+            The modem device.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceType.Vdm">
+            <summary>
+            The VDM device.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceType.MassStorage">
+            <summary>
+            The mass storage device.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceType.Smb">
+            <summary>
+            The SMB device.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceType.KS">
+            <summary>
+            The KS device.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceType.Changer">
+            <summary>
+            The changer device.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceType.Smartcard">
+            <summary>
+            The smartcard device.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceType.Acpi">
+            <summary>
+            The ACPI device.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceType.Dvd">
+            <summary>
+            The DVD device.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceType.FullscreenVideo">
+            <summary>
+            The full screen video device.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceType.DfsFileSystem">
+            <summary>
+            The DFS file system device.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceType.DfsVolume">
+            <summary>
+            The DFS volume device.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceType.Serenum">
+            <summary>
+            The serenum device.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceType.TermSrv">
+            <summary>
+            The terminal server device.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceType.Ksec">
+            <summary>
+            The KSEC device.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceType.Fips">
+            <summary>
+            The FIPS device.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceType.Infiniband">
+            <summary>
+            The Infiniband device.
+            </summary>
+        </member>
+        <member name="T:Wintellect.IO.DeviceMethod">
+            <summary>
+            Describes how the buffer is used by the device driver.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceMethod.Buffered">
+            <summary>
+            This buffer represents both the input buffer and the output buffer that are specified in calls to DeviceIoControl. 
+            The driver transfers data out of, and then into, this buffer. 
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceMethod.InDirect">
+            <summary>
+            This represents the input buffer that is specified in calls to DeviceIoControl.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceMethod.OutDirect">
+            <summary>
+            This represents the output buffer that is specified in calls to DeviceIoControl.
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceMethod.Neither">
+            <summary>
+            The IRP supplies the user-mode virtual addresses of the input and output buffers 
+            that were specified to DeviceIoControl.
+            </summary>
+        </member>
+        <member name="T:Wintellect.IO.DeviceAccess">
+            <summary>
+            Indicates the type of access that a caller must request when opening the file object 
+            that represents the device. The I/O manager will create IRPs and call the driver with a 
+            particular I/O control code only if the caller has requested the specified access rights
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceAccess.Any">
+            <summary>
+            The I/O manager sends the IRP for any caller that has a handle to the 
+            file object that represents the target device object. 
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceAccess.Special">
+            <summary>
+            The I/O manager sends the IRP for any caller that has a handle to the 
+            file object that represents the target device object. 
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceAccess.Read">
+            <summary>
+            The I/O manager sends the IRP only for a caller with read access rights, 
+            allowing the underlying device driver to transfer data from the device to system memory. 
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceAccess.Write">
+            <summary>
+            The I/O manager sends the IRP only for a caller with write access rights, 
+            allowing the underlying device driver to transfer data from system memory to its device. 
+            </summary>
+        </member>
+        <member name="F:Wintellect.IO.DeviceAccess.ReadWrite">
+            <summary>
+            The I/O manager sends the IRP only for a caller with read and write access rights, 
+            allowing the underlying device driver to transfer data from the device to system memory and
+            allowing the underlying device driver to transfer data from system memory to its device. 
+            </summary>
+        </member>
+        <member name="T:Wintellect.IO.DeviceIO">
+            <summary>This class allows you to perform low-level device I/O operations with a device driver.</summary>
+        </member>
+        <member name="M:Wintellect.IO.DeviceIO.#ctor(System.String,System.IO.FileAccess,System.IO.FileShare,System.Boolean)">
+            <summary>
+            Opens the specified device driver using the desired access and sharing. You can also indicate whether you wish to work with the device synchronously or asynchronously.</summary>
+            <param name="deviceName">A string identifying the device driver.</param>
+            <param name="access">What kind of access you wish to have to the device.</param>
+            <param name="share">Indicates how you are willing to share access ot the device.</param>
+            <param name="useAsync">If true, allows you to perform asynchronous operations to the device.</param>
+        </member>
+        <member name="M:Wintellect.IO.DeviceIO.#ctor(Microsoft.Win32.SafeHandles.SafeFileHandle,System.Boolean)">
+            <summary>Creates a DeviceIO opjects that allows you to communicate with a device driver that has already been opened.</summary>
+            <param name="device">Identifies an already-open handle to a device driver.</param>
+            <param name="openedAsync">Specify true if the device was opened for asynchronous operations.</param>
+        </member>
+        <member name="M:Wintellect.IO.DeviceIO.Dispose">
+            <summary>Releases all resources used by the DeviceIO class.</summary>
+        </member>
+        <member name="M:Wintellect.IO.DeviceIO.Dispose(System.Boolean)">
+            <summary>Releases the unmanaged resources used by the DeviceIO class specifying whether to perform a normal dispose operation.</summary>
+            <param name="disposing">true for a normal dispose operation; false to finalize the handle.</param>
+        </member>
+        <member name="M:Wintellect.IO.DeviceIO.Control(Wintellect.IO.DeviceControlCode)">
+            <summary>Sends a control code to the device driver synchronously.</summary>
+            <param name="deviceControlCode">The control code to send to the driver.</param>
+        </member>
+        <member name="M:Wintellect.IO.DeviceIO.Control(Wintellect.IO.DeviceControlCode,System.Object)">
+            <summary>Sends a control code to the device driver synchronously along with an input buffer.</summary>
+            <param name="deviceControlCode">The control code to send to the driver.</param>
+            <param name="inBuffer">The input buffer to send to the driver.</param>
+        </member>
+        <member name="M:Wintellect.IO.DeviceIO.BeginControl(Wintellect.IO.DeviceControlCode,System.Object,System.AsyncCallback,System.Object)">
+            <summary>Sends a control code to the device driver asynchronously along with an input buffer.</summary>
+            <param name="deviceControlCode">The control code to send to the driver.</param>
+            <param name="inBuffer">The input buffer to send to the driver.</param>
+            <param name="asyncCallback">The method to be called when the asynchronous operation completes.</param>
+            <param name="state">A user-provided object that distinguishes this particular asynchronous operation from other operations.</param>
+            <returns>An IAsyncResult that references the asynchronous operation.</returns>
+        </member>
+        <member name="M:Wintellect.IO.DeviceIO.EndControl(System.IAsyncResult)">
+            <summary>Waits for the pending asynchronous operation to complete.</summary>
+            <param name="result">The reference to the pending asynchronous request to wait for.</param>
+        </member>
+        <member name="M:Wintellect.IO.DeviceIO.GetObject``1(Wintellect.IO.DeviceControlCode)">
+            <summary>
+            Synchronously sends a control code to a device.
+            </summary>
+            <typeparam name="TResult">The type of the result.</typeparam>
+            <param name="deviceControlCode">The control code.</param>
+            <returns>The result of the operation.</returns>
+        </member>
+        <member name="M:Wintellect.IO.DeviceIO.GetObject``1(Wintellect.IO.DeviceControlCode,System.Object)">
+            <summary>
+            Synchronously sends a control code and an input buffer to a device.
+            </summary>
+            <typeparam name="TResult">The type of the result.</typeparam>
+            <param name="deviceControlCode">The control code.</param>
+            <returns>The result of the operation.</returns>
+            <param name="inBuffer">The input data.</param>
+        </member>
+        <member name="M:Wintellect.IO.DeviceIO.BeginGetObject``1(Wintellect.IO.DeviceControlCode,System.Object,System.AsyncCallback,System.Object)">
+            <summary>
+            Asynchronously sends a control code and an input buffer to a device.
+            </summary>
+            <typeparam name="TResult">The type of the result.</typeparam>
+            <param name="deviceControlCode">The control code.</param>
+            <param name="inBuffer">The input data.</param>
+            <param name="asyncCallback">The method that should be called when the operation completes.</param>
+            <param name="state">Data that should be passed to the callback method.</param>
+            <returns>An IAsyncResult identifying the started operation.</returns>
+        </member>
+        <member name="M:Wintellect.IO.DeviceIO.EndGetObject``1(System.IAsyncResult)">
+            <summary>
+            Returns the result of a completed asynchronous operation.
+            </summary>
+            <typeparam name="TResult">The type of the result.</typeparam>
+            <param name="result">The IAsyncResult passed into the callback method.</param>
+            <returns>The result of the operation.</returns>
+        </member>
+        <member name="M:Wintellect.IO.DeviceIO.GetArray``1(Wintellect.IO.DeviceControlCode,System.Object,System.Int32)">
+            <summary>
+            Synchronously sends a control code and an input buffer to a device.
+            </summary>
+            <param name="deviceControlCode">The control code.</param>
+            <returns>The array of elements returned by the device.</returns>
+            <param name="inBuffer">The input data.</param>
+            <typeparam name="TElement">The type of elements that are returned from the device.</typeparam>
+            <param name="maxElements">The maximum number of elements that you expect the device to return.</param>
+        </member>
+        <member name="M:Wintellect.IO.DeviceIO.BeginGetArray``1(Wintellect.IO.DeviceControlCode,System.Object,System.Int32,System.AsyncCallback,System.Object)">
+            <summary>
+            Asynchronously sends a control code and an input buffer to a device.
+            </summary>
+            <param name="deviceControlCode">The control code.</param>
+            <param name="inBuffer">The input data.</param>
+            <typeparam name="TElement">The type of eleemnts that are returned from teh device.</typeparam>
+            <param name="maxElements">The maximum number of elements that you expect the device to return.</param>
+            <param name="asyncCallback">The method that should be called when the operation completes.</param>
+            <param name="state">Data that should be passed to the callback method.</param>
+            <returns>An IAsyncResult identifying the started operation.</returns>
+        </member>
+        <member name="M:Wintellect.IO.DeviceIO.EndGetArray``1(System.IAsyncResult)">
+            <summary>
+            Returns the result of a completed asynchronous operation.
+            </summary>
+            <typeparam name="TElement">The type of elements that are returned from the device.</typeparam>
+            <param name="result">The IAsyncResult passed into the callback method.</param>
+            <returns>The array of elements returned by the device.</returns>
+        </member>
+        <member name="T:Wintellect.Threading.LogicalProcessor.LogicalProcessorInformation">
+            <summary>
+            This class exposes logical processor information about the host machine.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.LogicalProcessor.LogicalProcessorInformation.GetLogicalProcessorInformation">
+            <summary>
+            Retrieves all of the logical processor information about the host machine.
+            </summary>
+            <returns>An array of LogicalProcessorInformation objects.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.LogicalProcessor.LogicalProcessorInformation.ToString">
+            <summary>
+            Returns a string representing the state of the object.
+            </summary>
+            <returns>The string representing the state of the object.</returns>
+        </member>
+        <member name="P:Wintellect.Threading.LogicalProcessor.LogicalProcessorInformation.ProcessorMask">
+            <summary>
+            Returns a bitmask indicating the logical processors associated with this physical processor.
+            </summary>
+        </member>
+        <member name="P:Wintellect.Threading.LogicalProcessor.LogicalProcessorInformation.Relationship">
+            <summary>
+            Returns the 
+            </summary>
+        </member>
+        <member name="P:Wintellect.Threading.LogicalProcessor.LogicalProcessorInformation.ProcessorCore">
+            <summary>
+            This structure contains valid data only if the Relationship member is RelationProcessorCore.
+            If the value of this member is 1, the logical processors identified by the value of the ProcessorMask member share functional units, as in Hyperthreading or SMT. 
+            Otherwise, the identified logical processors do not share functional units. 
+            </summary>
+        </member>
+        <member name="P:Wintellect.Threading.LogicalProcessor.LogicalProcessorInformation.NumaNode">
+            <summary>
+            This structure contains valid data only if the Relationship member is RelationNumaNode.
+            Identifies the NUMA node. The valid values of this parameter are 0 to the highest NUMA node number inclusive. 
+            A non-NUMA multiprocessor system will report that all processors belong to one NUMA node.
+            </summary>
+        </member>
+        <member name="P:Wintellect.Threading.LogicalProcessor.LogicalProcessorInformation.CacheDescriptor">
+            <summary>
+            This property contains valid data only if the Relationship member is RelationCache.
+            There is one record returned for each cache reported. Some or all caches may not be reported. 
+            Therefore, do not assume the absence of any particular caches. Caches are not necessarily shared among logical processors.
+            </summary>
+        </member>
+        <member name="T:Wintellect.Threading.LogicalProcessor.CacheDescriptor">
+            <summary>
+            Describes the processor's cache characteristics.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.LogicalProcessor.CacheDescriptor.ToString">
+            <summary>
+            Returns a string representing the state of the object.
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:Wintellect.Threading.LogicalProcessor.CacheDescriptor.Equals(System.Object)">
+            <summary>
+            Determines whether the specified Object is equal to the current Object. 
+            </summary>
+            <param name="obj">The Object to compare with the current Object.</param>
+            <returns>true if the specified Object is equal to the current Object; otherwise, false.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.LogicalProcessor.CacheDescriptor.GetHashCode">
+            <summary>
+            Serves as a hash function for a particular type.
+            </summary>
+            <returns>A hash code for the current Object.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.LogicalProcessor.CacheDescriptor.Equals(Wintellect.Threading.LogicalProcessor.CacheDescriptor)">
+            <summary>
+            Determines whether the specified CacheDescriptor is equal to the current CacheDescriptor. 
+            </summary>
+            <param name="other">The CacheDescriptor to compare with the current CacheDescriptor.</param>
+            <returns>true if the specified CacheDescriptor is equal to the current CacheDescriptor; otherwise, false.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.LogicalProcessor.CacheDescriptor.op_Equality(Wintellect.Threading.LogicalProcessor.CacheDescriptor,Wintellect.Threading.LogicalProcessor.CacheDescriptor)">
+            <summary>
+            Determines if two CacheDescriptors are equal to each other. 
+            </summary>
+            <param name="cd1">The first CacheDescriptor to compare.</param>
+            <param name="cd2">The second CacheDescriptor to compare.</param>
+            <returns>true if the two CacheDescriptors are equal; otherwise, false.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.LogicalProcessor.CacheDescriptor.op_Inequality(Wintellect.Threading.LogicalProcessor.CacheDescriptor,Wintellect.Threading.LogicalProcessor.CacheDescriptor)">
+            <summary>
+            Determines if two CacheDescriptors are not equal to each other. 
+            </summary>
+            <param name="cd1">The first CacheDescriptor to compare.</param>
+            <param name="cd2">The second CacheDescriptor to compare.</param>
+            <returns>true if the two CacheDescriptors are not equal; otherwise, false.</returns>
+        </member>
+        <member name="P:Wintellect.Threading.LogicalProcessor.CacheDescriptor.Level">
+            <summary>
+            The cache level. This member can currently be one of the following values; other values may be supported in the future.Value Meaning 1=L1, 2=L2, 3=L3 
+            </summary>
+        </member>
+        <member name="P:Wintellect.Threading.LogicalProcessor.CacheDescriptor.Associativity">
+            <summary>
+            The cache associativity. If this member is CACHE_FULLY_ASSOCIATIVE (0xFF), the cache is fully associative.
+            </summary>
+        </member>
+        <member name="P:Wintellect.Threading.LogicalProcessor.CacheDescriptor.LineSize">
+            <summary>The cache line size, in bytes.</summary>
+        </member>
+        <member name="P:Wintellect.Threading.LogicalProcessor.CacheDescriptor.Size">
+            <summary>The cache size, in bytes.</summary>
+        </member>
+        <member name="P:Wintellect.Threading.LogicalProcessor.CacheDescriptor.Type">
+            <summary>The cache type.</summary>
+        </member>
+        <member name="T:Wintellect.Threading.LogicalProcessor.CacheAssociativity">
+            <summary>
+            Indicates the cache associativity.
+            </summary>
+        </member>
+        <member name="F:Wintellect.Threading.LogicalProcessor.CacheAssociativity.None">
+            <summary>
+            The cache is not associative.
+            </summary>
+        </member>
+        <member name="F:Wintellect.Threading.LogicalProcessor.CacheAssociativity.CacheFullyAssociative">
+            <summary>
+            The is fully associative.
+            </summary>
+        </member>
+        <member name="T:Wintellect.Threading.LogicalProcessor.LogicalProcessorRelationship">
+            <summary>
+            Flags indicating what a set of logical processors share with each other.
+            </summary>
+        </member>
+        <member name="F:Wintellect.Threading.LogicalProcessor.LogicalProcessorRelationship.ProcessorCore">
+            <summary>
+            The specified logical processors share a single processor core. The ProcessorCore member contains additional information.
+            </summary>
+        </member>
+        <member name="F:Wintellect.Threading.LogicalProcessor.LogicalProcessorRelationship.NumaNode">
+            <summary>
+            The specified logical processors are part of the same NUMA node. The NumaNode member contains additional information.
+            </summary>
+        </member>
+        <member name="F:Wintellect.Threading.LogicalProcessor.LogicalProcessorRelationship.Cache">
+            <summary>
+            The specified logical processors share a cache. The Cache member contains additional information.
+            </summary>
+        </member>
+        <member name="F:Wintellect.Threading.LogicalProcessor.LogicalProcessorRelationship.ProcessorPackage">
+            <summary>
+            The specified logical processors share a physical package. There is no additional information available.
+            </summary>
+        </member>
+        <member name="T:Wintellect.Threading.LogicalProcessor.CacheLevel">
+            <summary>
+            Indicates the cache level.
+            </summary>
+        </member>
+        <member name="F:Wintellect.Threading.LogicalProcessor.CacheLevel.None">
+            <summary>
+            None.
+            </summary>
+        </member>
+        <member name="F:Wintellect.Threading.LogicalProcessor.CacheLevel.L1">
+            <summary>
+            Level 1 cache.
+            </summary>
+        </member>
+        <member name="F:Wintellect.Threading.LogicalProcessor.CacheLevel.L2">
+            <summary>
+            Level 2 cache.
+            </summary>
+        </member>
+        <member name="F:Wintellect.Threading.LogicalProcessor.CacheLevel.L3">
+            <summary>
+            Level 3 cache.
+            </summary>
+        </member>
+        <member name="T:Wintellect.Threading.LogicalProcessor.ProcessorCacheType">
+            <summary>
+            Indicates the processor cache type.
+            </summary>
+        </member>
+        <member name="F:Wintellect.Threading.LogicalProcessor.ProcessorCacheType.Unified">
+            <summary>The cache is unified.</summary>
+        </member>
+        <member name="F:Wintellect.Threading.LogicalProcessor.ProcessorCacheType.Instruction">
+            <summary>The cache is for processor instructions.</summary>
+        </member>
+        <member name="F:Wintellect.Threading.LogicalProcessor.ProcessorCacheType.Data">
+            <summary>The cache is for data.</summary>
+        </member>
+        <member name="F:Wintellect.Threading.LogicalProcessor.ProcessorCacheType.Trace">
+            <summary>The cache is for traces.</summary>
+        </member>
+        <member name="T:Wintellect.Threading.AsyncProgModel.EventApmOperation`1">
+            <summary>
+            This class represents an asynchronous operation that will be initiated
+            by some method and the operations completes by way of raising an event.
+            </summary>
+            <typeparam name="TEventArgs">The object passed as the event's second argument. 
+            This object is usually of an EventArgs-derived type.</typeparam>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.EventApmOperation`1.EventHandler(System.Object,`0)">
+            <summary>
+            The event handler that completes the APM operation when invoked.
+            </summary>
+            <param name="sender">The source of the event.</param>
+            <param name="e">An object (usually derived from EventArgs) that contains the event data.</param>
+        </member>
+        <member name="T:Wintellect.Threading.AsyncProgModel.EventApmFactory`1">
+            <summary>
+            This class converts a raised event to an IAsyncResult-based APM completion.
+            </summary>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.EventApmFactory`1.PrepareOperation(System.AsyncCallback,System.Object)">
+            <summary>
+            Prepares to initiate an asynchronous operation by setting the desired callback 
+            method and state that will be used to completed the operation when the 
+            event handler method is invoked.
+            </summary>
+            <param name="callback">The method to be called when the event is raised.</param>
+            <param name="state">The state tobtained via IAsyncResult's AsyncState property.</param>
+            <returns>The prepared operation which exposes the event handler method to be registered with the desired event.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.EventApmFactory`1.PrepareOperation(System.AsyncCallback)">
+            <summary>
+            Prepares to initiate an asynchronous operation by setting the desired callback 
+            method that will be used to completed the operation when the 
+            event handler method is invoked.
+            </summary>
+            <param name="callback">The method to be called when the event is raised.</param>
+            <returns>The prepared operation which exposes the event handler method to be registered with the desired event.</returns>
+        </member>
+        <member name="M:Wintellect.Threading.AsyncProgModel.EventApmFactory`1.EndInvoke(System.IAsyncResult)">
+            <summary>
+            Returns the object passed as the second argument to the event handler. 
+            This is usually an object whose type is derived from System.EventArgs.
+            Note that you can use any instance of this type to call EndInvoke; you do not 
+            have to use the same instance that you used to call PrepareOperation.
+            </summary>
+            <param name="result">An IAsyncResult that references the pending operation.</param>
+            <returns>The object passed to the event handler.</returns>
+        </member>
+    </members>
+</doc>