diff --git a/Interfaces/IFloppyImage.cs b/Interfaces/IFloppyImage.cs
index 9f2f91d..fa7a781 100644
--- a/Interfaces/IFloppyImage.cs
+++ b/Interfaces/IFloppyImage.cs
@@ -68,7 +68,8 @@ namespace Aaru.CommonTypes.Interfaces
/// Physical head (0-based).
/// Logical sector ID.
/// Status of request.
- byte[] ReadSector(ushort track, byte head, ushort sector, out FloppySectorStatus status);
+ ErrorNumber ReadSector(ushort track, byte head, ushort sector, out FloppySectorStatus status,
+ out byte[] buffer);
/// Reads a sector's tag.
///
@@ -83,13 +84,14 @@ namespace Aaru.CommonTypes.Interfaces
/// Logical sector ID.
/// Status of request.
/// Sector tag
- byte[] ReadSectorTag(ushort track, byte head, ushort sector, out FloppySectorStatus status, SectorTagType tag);
+ ErrorNumber ReadSectorTag(ushort track, byte head, ushort sector, out FloppySectorStatus status,
+ SectorTagType tag, out byte[] buffer);
/// Reads a whole track. It includes all gaps, address marks, sectors data, etc.
/// The track data.
/// Physical track (position of the heads over the floppy media, 0-based).
/// Physical head (0-based).
- byte[] ReadTrack(ushort track, byte head);
+ ErrorNumber ReadTrack(ushort track, byte head, out byte[] buffer);
/// Reads a sector's data including all tags, address mark, and so, in a format dependent of represented media.
///
@@ -103,7 +105,8 @@ namespace Aaru.CommonTypes.Interfaces
/// Physical head (0-based).
/// Logical sector ID.
/// Status of request.
- byte[] ReadSectorLong(ushort track, byte head, ushort sector, out FloppySectorStatus status);
+ ErrorNumber ReadSectorLong(ushort track, byte head, ushort sector, out FloppySectorStatus status,
+ out byte[] buffer);
/// Verifies a track.
/// True if correct, false if incorrect, null if uncheckable.