Annotation of truecrypt/boot/windows/bootdiskio.h, revision 1.1

1.1     ! root        1: /*
        !             2:  Copyright (c) 2008 TrueCrypt Foundation. All rights reserved.
        !             3: 
        !             4:  Governed by the TrueCrypt License 2.4 the full text of which is contained
        !             5:  in the file License.txt included in TrueCrypt binary and source code
        !             6:  distribution packages.
        !             7: */
        !             8: 
        !             9: #ifndef TC_HEADER_Boot_BootDiskIo
        !            10: #define TC_HEADER_Boot_BootDiskIo
        !            11: 
        !            12: #include "Bios.h"
        !            13: 
        !            14: #pragma pack(1)
        !            15: 
        !            16: struct PartitionEntryMBR
        !            17: {
        !            18:        byte BootIndicator;
        !            19: 
        !            20:        byte StartHead;
        !            21:        byte StartCylSector;
        !            22:        byte StartCylinder;
        !            23: 
        !            24:        byte Type;
        !            25: 
        !            26:        byte EndHead;
        !            27:        byte EndSector;
        !            28:        byte EndCylinder;
        !            29: 
        !            30:        uint32 StartLBA;
        !            31:        uint32 SectorCountLBA;
        !            32: };
        !            33: 
        !            34: struct MBR
        !            35: {
        !            36:        byte Code[446];
        !            37:        PartitionEntryMBR Partitions[4];
        !            38:        uint16 Signature;
        !            39: };
        !            40: 
        !            41: struct BiosLbaPacket
        !            42: {
        !            43:        byte Size;
        !            44:        byte Reserved;
        !            45:        uint16 SectorCount;
        !            46:        uint32 Buffer;
        !            47:        uint64 Sector;
        !            48: };
        !            49: 
        !            50: #pragma pack()
        !            51: 
        !            52: 
        !            53: struct ChsAddress
        !            54: {
        !            55:        uint16 Cylinder;
        !            56:        byte Head;
        !            57:        byte Sector;
        !            58: };
        !            59: 
        !            60: struct Partition
        !            61: {
        !            62:        byte Number;
        !            63:        byte Drive;
        !            64:        bool Active;
        !            65:        uint64 EndSector;
        !            66:        bool Primary;
        !            67:        uint64 SectorCount;
        !            68:        uint64 StartSector;
        !            69:        ChsAddress StartChsAddress;
        !            70:        byte Type;
        !            71: };
        !            72: 
        !            73: struct DriveGeometry
        !            74: {
        !            75:        uint16 Cylinders;
        !            76:        byte Heads;
        !            77:        byte Sectors;
        !            78: };
        !            79: 
        !            80: 
        !            81: void ChsToLba (const DriveGeometry &geometry, const ChsAddress &chs, uint64 &lba);
        !            82: BiosResult GetActivePartition (byte drive, Partition &partition, size_t &partitionCount, bool silent);
        !            83: BiosResult GetDriveGeometry (byte drive, DriveGeometry &geometry, bool silent = false);
        !            84: BiosResult GetDrivePartitions (byte drive, Partition *partitionArray, size_t partitionArrayCapacity, size_t &partitionCount, bool activeOnly = false, bool silent = false);
        !            85: void LbaToChs (const DriveGeometry &geometry, const uint64 &lba, ChsAddress &chs);
        !            86: void Print (const ChsAddress &chs);
        !            87: void PrintDiskError (BiosResult error, bool write, byte drive, const uint64 *sector, const ChsAddress *chs = nullptr);
        !            88: BiosResult ReadMBR (byte drive, MBR &mbr, bool silent = false);
        !            89: BiosResult ReadSectors (byte *buffer, byte drive, const uint64 &sector, uint16 sectorCount, bool silent = false);
        !            90: BiosResult ReadSectors (byte *buffer, byte drive, const ChsAddress &chs, byte sectorCount, bool silent = false);
        !            91: BiosResult ReadWriteSectors (bool write, uint16 bufferSegment, uint16 bufferOffset, byte drive, const uint64 &sector, uint16 sectorCount, bool silent);
        !            92: BiosResult WriteSectors (byte *buffer, byte drive, const uint64 &sector, uint16 sectorCount, bool silent = false);
        !            93: BiosResult WriteSectors (byte *buffer, byte drive, const ChsAddress &chs, byte sectorCount, bool silent = false);
        !            94: 
        !            95: #endif // TC_HEADER_Boot_BootDiskIo

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.