NtApiDotNet对文件创建oplock

发布时间:2026/7/22 13:25:47

NtApiDotNet对文件创建oplock 注意不能包含NtApiDotNet.FileOpenOptions.SynchronousIoNonAlert NtApiDotNet.FileAccessRights fileaccessrw NtApiDotNet.FileAccessRights.Synchronize | NtApiDotNet.FileAccessRights.GenericRead | NtApiDotNet.FileAccessRights.GenericWrite; // string iconpathdos C:\dl\fakeicon.bmp; string iconpath NtFileUtils.DosFileNameToNt(iconpathdos); byte[] data System.Linq.Enumerable.Repeat((byte)1, 0xffff).OfTypebyte().ToArray(); File.WriteAllBytes(iconpathdos, data); using (NtFile cscfile NtFile.Create(iconpath, null, fileaccessrw, NtApiDotNet.FileAttributes.Normal, FileShareMode.None, NtApiDotNet.FileOpenOptions.NonDirectoryFile, FileDisposition.OpenIf, null, true).Result) { Console.WriteLine(NtFile First: iconpath cscfile.Handle); var oplock cscfile.RequestOplockLeaseAsync(OplockLevelCache.Read | OplockLevelCache.Handle); bool oplocktriggerd false; Console.WriteLine([] OplockExclusiveAsync. Marshal.GetLastWin32Error()); watchext.Set(); while (!oplocktriggerd) { if (oplock.IsCompleted) { Console.WriteLine([] Oplock triggered.); Console.WriteLine(Press enter to exit.); insert code // hfile.AcknowledgeOplock(OplockAcknowledgeLevel.No2); oplocktriggerd true; } Thread.Sleep(500); } }

相关新闻