//-----------------------------------------------------------------------
// 
//     Copyright (c) Microsoft Corporation.
// 
//-----------------------------------------------------------------------
namespace Microsoft.Isam.Esent.Interop.Windows8
{
    using System;
    /// 
    /// Options for .
    /// 
    public enum ErrorInfoGrbit
    {
        /// 
        /// No option.
        /// 
        None = 0,
    }
    /// 
    /// Options for .
    /// 
    /// 
    [Flags]
    public enum ResizeDatabaseGrbit
    {
        /// 
        /// No option.
        /// 
        None = 0,
        /// 
        /// Only grow the database. If the resize call would shrink the database, do nothing.
        /// 
        OnlyGrow = 0x1,
    }
    /// 
    /// Options passed to log flush callback.
    /// 
    /// 
    [Flags]
    public enum DurableCommitCallbackGrbit
    {
        /// 
        /// Default options.
        /// 
        None = 0
    }
    /// 
    /// Options for .
    /// 
    [Flags]
    public enum PrereadIndexRangesGrbit
    {
        /// 
        /// Preread forward.
        /// 
        Forward = 0x1,
        /// 
        /// Preread backwards.
        /// 
        Backwards = 0x2,
        /// 
        /// Preread only first page of any long column.
        /// 
        FirstPageOnly = 0x4,
        /// 
        /// Normalized key/bookmark provided instead of column value.
        /// 
        NormalizedKey = 0x8,
    }
    /// 
    /// Options for .
    /// 
    [Flags]
    public enum StopServiceGrbit
    {
        /// 
        /// Stops all ESE services for the specified instance.
        /// 
        All = 0x00000000,
        /// 
        /// Stops restartable client specificed background maintenance tasks (B+ Tree Defrag).
        /// 
        BackgroundUserTasks = 0x00000002,
        /// 
        /// Quiesces all dirty caches to disk. Asynchronous. Quiescing is cancelled if the 
        /// bit is called subsequently.
        /// 
        QuiesceCaches = 0x00000004,
        /// 
        /// Resumes previously issued StopService operations, i.e. "restarts service".  Can be combined
        /// with above grbits to Resume specific services, or with 0x0 Resumes all previous stopped services.
        /// 
        /// 
        /// Warning: This bit can only be used to resume JET_bitStopServiceBackground and JET_bitStopServiceQuiesceCaches, if you 
        /// did a JET_bitStopServiceAll or JET_bitStopServiceAPI, attempting to use JET_bitStopServiceResume will fail. 
        /// 
        Resume = int.MinValue, // 0x80000000
    }
    /// 
    /// Options passed while setting cursor filters.
    /// 
    /// 
    [Flags]
    public enum CursorFilterGrbit
    {
        /// 
        /// Default options.
        /// 
        None = 0
    }
    /// 
    /// Options for .
    /// 
    [Flags]
    public enum JetIndexColumnGrbit
    {
        /// 
        /// Default options.
        /// 
        None = 0,
        /// 
        /// Zero-length value (non-null).
        /// 
        ZeroLength = 0x1,
    }
    /// 
    /// System parameters that have been introduced in Windows 8.
    /// 
    public static class Windows8Grbits
    {
        /// 
        /// Allows db to remain attached at the end of recovery (for faster
        /// transition to running state).
        /// 
        public const InitGrbit KeepDbAttachedAtEndOfRecovery = (InitGrbit)0x1000;
        /// 
        /// Purge database pages on attach.
        /// 
        public const AttachDatabaseGrbit PurgeCacheOnAttach = (AttachDatabaseGrbit)0x1000;
        /// 
        /// Specifying this flag will change GUID sort order to .Net standard.
        /// 
        public const CreateIndexGrbit IndexDotNetGuid = (CreateIndexGrbit)0x00040000;
        /// 
        /// This option requests that the temporary table sort columns of type
        /// JET_coltypGUID according to .Net Guid sort order.
        ///         
        public const TempTableGrbit TTDotNetGuid = (TempTableGrbit)0x100;
    }
}