using System; using System.Runtime.InteropServices; namespace FastSeekWpf.NativeInterop; [StructLayout(LayoutKind.Sequential)] internal struct MFT_ENUM_DATA_V0 { public ulong StartFileReferenceNumber; public long LowUsn; public long HighUsn; } [StructLayout(LayoutKind.Sequential)] internal struct USN_JOURNAL_DATA_V0 { public ulong UsnJournalID; public long FirstUsn; public long NextUsn; public long LowestValidUsn; public long MaxUsn; public ulong MaximumSize; public ulong AllocationDelta; } [StructLayout(LayoutKind.Sequential)] internal struct READ_USN_JOURNAL_DATA_V0 { public long StartUsn; public uint ReasonMask; public uint ReturnOnlyOnClose; public ulong Timeout; public ulong BytesToWaitFor; public ulong UsnJournalID; } [StructLayout(LayoutKind.Sequential)] internal struct USN_RECORD_V2 { public uint RecordLength; public ushort MajorVersion; public ushort MinorVersion; public ulong FileReferenceNumber; public ulong ParentFileReferenceNumber; public long Usn; public ulong TimeStamp; public uint Reason; public uint SourceInfo; public uint SecurityId; public uint FileAttributes; public ushort FileNameLength; public ushort FileNameOffset; // FileName follows }