2 * COPYRIGHT: GPL - See COPYING in the top level directory
3 * PROJECT: ReactOS Virtual DOS Machine
4 * FILE: subsystems/mvdm/ntvdm/hardware/disk.h
5 * PURPOSE: Generic Disk Controller (Floppy, Hard Disk, ...)
6 * PROGRAMMERS: Hermes Belusca-Maito (hermes.belusca@sfr.fr)
12 /* DEFINES ********************************************************************/
14 // https://msdn.microsoft.com/en-us/library/windows/desktop/aa363972(v=vs.85).aspx
15 // https://msdn.microsoft.com/en-us/library/windows/desktop/aa363976(v=vs.85).aspx
16 // https://msdn.microsoft.com/en-us/library/windows/desktop/aa363969(v=vs.85).aspx
17 // https://msdn.microsoft.com/en-us/library/windows/desktop/aa365231(v=vs.85).aspx
19 typedef struct _DISK_INFO
21 WORD Cylinders
; // DWORD
23 BYTE Sectors
; // QWORD
24 // SectorPerTrack; ??? // DWORD
26 } DISK_INFO
, *PDISK_INFO
;
28 typedef struct _DISK_IMAGE
31 BYTE DiskType
; // Type to return from BIOS & CMOS
33 BYTE LastOperationStatus
;
38 // WCHAR ImageFile[MAX_PATH];
40 } DISK_IMAGE
, *PDISK_IMAGE
;
42 typedef enum _DISK_TYPE
49 /* FUNCTIONS ******************************************************************/
52 IsDiskPresent(IN PDISK_IMAGE DiskImage
);
55 SeekDisk(IN PDISK_IMAGE DiskImage
,
61 ReadDisk(IN PDISK_IMAGE DiskImage
,
68 WriteDisk(IN PDISK_IMAGE DiskImage
,
75 RetrieveDisk(IN DISK_TYPE DiskType
,
79 MountDisk(IN DISK_TYPE DiskType
,
85 UnmountDisk(IN DISK_TYPE DiskType
,
88 BOOLEAN
DiskCtrlInitialize(VOID
);
89 VOID
DiskCtrlCleanup(VOID
);