public void FileModeSynchronousFile() { using (var cleaner = new TestFileCleaner()) { string filePath = cleaner.GetTestPath(); using (var file = FileMethods.CreateFile(filePath, CreationDisposition.CreateNew, DesiredAccess.GenericReadWrite, 0)) { file.IsInvalid.Should().BeFalse(); var mode = FileMethods.GetFileMode(file); mode.Should().HaveFlag(FileAccessModes.SynchronousNotAlertable); } } }
public void BasicCreateMailslot() { const string mailslotName = @"\\.\mailslot\basiccreatemailslottest"; using (var handle = MailslotMethods.CreateMailslot(mailslotName)) { handle.IsInvalid.Should().BeFalse(); using (var fileHandle = FileMethods.CreateFile(mailslotName, CreationDisposition.OpenExisting, 0)) { fileHandle.IsInvalid.Should().BeFalse(); FileMethods.GetFileType(fileHandle).Should().Be(FileType.Unknown); var modeInfo = FileMethods.GetFileMode(fileHandle); // The mailslot was opened synchronously modeInfo.Should().Be(FileAccessModes.SynchronousNotAlertable); } } }
public void CreateMailslotAsync() { const string mailslotName = @"\\.\mailslot\asynccreatemailslottest"; using (var handle = MailslotMethods.CreateMailslot(mailslotName)) { handle.IsInvalid.Should().BeFalse(); using (var fileHandle = FileMethods.CreateFile(mailslotName, CreationDisposition.OpenExisting, 0, ShareModes.ReadWrite, FileAttributes.None, FileFlags.Overlapped)) { fileHandle.IsInvalid.Should().BeFalse(); FileMethods.GetFileType(fileHandle).Should().Be(FileType.Unknown); var modeInfo = FileMethods.GetFileMode(fileHandle); // The mailslot was opened asynchronously (e.g. no synchronous flag) modeInfo.Should().Be((FileAccessModes)0); } } }