text: // Copyright (c) Microsoft Corporation.
  // Licensed under the MIT License.
  
  using System.Runtime.InteropServices;
  
  namespace BuildXL.Native.IO.Windows
  {
      /// <summary>
      /// Request structure indicating expected journal identifier, start USN, etc.
      /// http://msdn.microsoft.com/en-us/library/windows/desktop/hh802706(v=vs.85).aspx
      /// </summary>
      /// <remarks>
      /// We use the V1 rather than V0 structure even before 8.1 / Server 2012 R2 (it is just like
      /// the V0 version but with the version range fields at the end).
      /// </remarks>
      [StructLayout(LayoutKind.Sequential)]
      public struct ReadUsnJournalData
      {
          /// <summary>
          /// Size of this structure (there are no variable length fields).
          /// </summary>
          public static readonly int Size = Marshal.SizeOf<ReadUsnJournalData>();
  
          /// <nodoc />
          public Usn StartUsn;
  
          /// <nodoc />
          public uint ReasonMask;
  
          /// <nodoc />
          public uint ReturnOnlyOnClose;
  
          /// <nodoc />
          public ulong Timeout;
  
          /// <nodoc />
          public ulong BytesToWaitFor;
  
          /// <nodoc />
          public ulong UsnJournalID;
  
          /// <nodoc />
          public ushort MinMajorVersion;
  
          /// <nodoc />
          public ushort MaxMajorVersion;
      }
  }
  