home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1994 #1 / monster.zip / monster / WIN_UTL2 / SAMDU260.ZIP / DISKDRIV.H < prev    next >
Text File  |  1994-04-01  |  8KB  |  146 lines

  1. /*********************************************************************/
  2. /*                                                                   */
  3. /*    Name:    DISKDRIV.H                                            */
  4. /*                                                                   */
  5. /*    Copyright (c) Stewart A. Berman 1992,3,4 All rights reserved   */
  6. /*                                                                   */
  7. /*********************************************************************/
  8. #ifndef __DISKDRIV_H__
  9. #define __DISKDRIV_H__
  10.  
  11. #include <IO.h>
  12.  
  13. #include "Director.H"
  14.  
  15. #define AUTOMATIC  1
  16. #define ALWAYS     2
  17. #define NEVER      3
  18. #define FAST       4
  19.  
  20. #define IMAGETOFILE  1
  21. #define IMAGETOIMAGE 2
  22. #define FILETOIMAGE  3
  23. #define FILETOFILE   4
  24.  
  25. #ifndef FORMATFAST
  26.  
  27. #define FORMATFAST           0x0010
  28. #define FORMATQUICK          0x0020
  29.  
  30. struct DIRECTORYENTRY
  31.        {
  32.        BYTE  bName[8] ;
  33.        BYTE  bExtension[3] ;
  34.        BYTE  bAttributes ;
  35.              #define ATTR_READONLY  0x01
  36.              #define ATTR_HIDDEN    0x02
  37.              #define ATTR_SYSTEM    0x04
  38.              #define ATTR_VOLUME    0x08
  39.              #define ATTR_DIRECTORY 0x10
  40.              #define ATTR_ARCHIVE   0x20
  41.              #define ATTR_NOTFILE   ( ATTR_VOLUME   | ATTR_DIRECTORY )
  42.              #define ATTR_SPECIAL   ( ATTR_HIDDEN   | ATTR_SYSTEM    )
  43.              #define ATTR_STATUS    ( ATTR_READONLY | ATTR_ARCHIVE   )
  44.        BYTE  bReserved[10] ;
  45.        UINT  nTime ;
  46.        UINT  nDate ;
  47.        UINT  wStartCluster ;
  48.        DWORD dwFileSize ;
  49.        } ;
  50.  
  51. struct DIRECTORYSECTOR
  52.        {   
  53.        struct DIRECTORYENTRY Entry[16] ;
  54.        } ;
  55.  
  56. #pragma pack(2)
  57. typedef struct tagSDU_find_t {
  58.     char driveletter ;
  59.     char filemask[11] ;
  60.     char attributes ;
  61.     WORD entry ;
  62.     WORD cluster ;
  63.     char reserved[4] ;
  64.     char attrib;
  65.     unsigned wr_time;
  66.     unsigned wr_date;
  67.     long size;
  68.     char name[13];
  69.     DIRECTORYENTRY directoryentry ;
  70.     } SDU_find_t ;
  71. #pragma pack()
  72. typedef SDU_find_t*       PSDU_find_t ;
  73. typedef SDU_find_t NEAR* NPSDU_find_t ;
  74. typedef SDU_find_t FAR*  LPSDU_find_t ;
  75.  
  76. #endif
  77. #ifdef __cplusplus
  78. extern "C" {
  79. #endif /* _cplusplus */
  80.  
  81. VOID far * FAR PASCAL DiskDriveCreateDrive  ( char cDrive, UINT nType, UINT nCylinders, lpfnHANDLESTATUS lpfnNewHandleStatus ) ;
  82. VOID far * FAR PASCAL DiskDriveCreateFile   ( LPCSTR lpczFileName, LPCSTR lpczApplicationTitle, LPCSTR lpczVersion, UINT nType, UINT nCylinders, lpfnHANDLESTATUS lpfnNewHandleStatus ) ;
  83. VOID far * FAR PASCAL DiskDriveCreateMemory ( UINT nMemory, UINT nType, UINT nCylinders, lpfnHANDLESTATUS lpfnNewHandleStatus ) ;
  84. VOID far * FAR PASCAL DiskDriveCreateVDrive ( VOID far *pCVDriveNew, UINT nType, UINT nCylinders, lpfnHANDLESTATUS lpfnNewHandleStatus ) ;
  85. VOID       FAR PASCAL DiskDriveDelete ( VOID far *pCDiskDrive ) ;
  86.  
  87. VOID       FAR PASCAL DiskDriveCopy ( VOID far *pCDiskDrive, VOID far *pCDiskDriveSource ) ;
  88. BOOL       FAR PASCAL DiskDriveCompare ( VOID far *pCDiskDrive, VOID far *pCDiskDriveSource ) ;
  89.  
  90. BOOL       FAR PASCAL DiskDriveConvert ( VOID far *pCDiskDrive, VOID far *pCDiskDriveSource ) ;
  91. BOOL       FAR PASCAL DiskDriveCopyFile ( VOID far *pCDiskDrive, LPCSTR lpczFileNameIn, LPCSTR lpczFileNameOut, UINT Flags ) ;
  92. BOOL       FAR PASCAL DiskDriveDeleteFile ( VOID far *pCDiskDrive, LPCSTR lpczFileName ) ;
  93. BOOL       FAR PASCAL DiskDriveSDU_FindFirst ( VOID far *pCDiskImage, LPCSTR lpczFileMask, UINT Flags, LPSDU_find_t lpstFind_T) ;
  94. BOOL       FAR PASCAL DiskDriveSDU_FindNext  ( VOID far *pCDiskImage, LPSDU_find_t lpstFind_T) ;
  95. LPCSTR     FAR PASCAL DiskDriveGetCurrentDirectory ( VOID far *pCDiskDrive, LPSTR lpczOldCurrentDirectory ) ;
  96. BOOL       FAR PASCAL DiskDriveChangeCurrentDirectory ( VOID far *pCDiskDrive, LPCSTR lpczNewCurrentDirectory ) ;
  97.  
  98. UINT       FAR PASCAL DiskDriveForceReset           ( VOID far *pCDiskDrive ) ;
  99. BOOL       FAR PASCAL DiskDriveHasData              ( VOID far *pCDiskDrive ) ;
  100. BOOL       FAR PASCAL DiskDriveIsTruncated          ( VOID far *pCDiskDrive ) ;
  101. char       FAR PASCAL DiskDriveLetter               ( VOID far *pCDiskDrive ) ;
  102. UINT       FAR PASCAL DiskDriveReset                ( VOID far *pCDiskDrive ) ;
  103. UINT       FAR PASCAL DiskDriveRootDirectoryEntries ( VOID far *pCDiskDrive ) ;
  104. UINT       FAR PASCAL DiskDriveSetRead              ( VOID far *pCDiskDrive, UINT nTempType, UINT nCylinders ) ;
  105. VOID       FAR PASCAL DiskDriveSetType              ( VOID far *pCDiskDrive, UINT nNewType ) ;
  106. UINT       FAR PASCAL DiskDriveSetWrite             ( VOID far *pCDiskDrive, UINT nTempType, UINT nCylinders ) ;
  107. UINT       FAR PASCAL DiskDriveSectorsPerCluster    ( VOID far *pCDiskDrive ) ;
  108. UINT       FAR PASCAL DiskDriveSectorsPerFAT        ( VOID far *pCDiskDrive ) ;
  109. UINT       FAR PASCAL DiskDriveType                 ( VOID far *pCDiskDrive ) ;
  110. UINT       FAR PASCAL DiskDriveUsedCylinders        ( VOID far *pCDiskDrive ) ;
  111. UINT       FAR PASCAL DiskDriveUsedHeads            ( VOID far *pCDiskDrive ) ;
  112. UINT       FAR PASCAL DiskDriveUsedSectors          ( VOID far *pCDiskDrive ) ;
  113. UINT       FAR PASCAL DiskDriveUsedSectorSize       ( VOID far *pCDiskDrive ) ;
  114.  
  115. UINT       FAR PASCAL DiskDriveFormat        ( VOID far *pCDiskDrive, LPCSTR lpczVolumeLabel, UINT nFormatOption, LPBYTE lpbyBootSector, lpfnHANDLESTATUS lpfnHandleStatus ) ;
  116. UINT       FAR PASCAL DiskDriveFormatTrack   ( VOID far *pCDiskDrive, UINT nCylinders, UINT nHead, lpfnHANDLESTATUS lpfnNewHandleStatus ) ;
  117. UINT       FAR PASCAL DiskDriveReadSectors   ( VOID far *pCDiskDrive, UINT nCylinders, UINT nHead, UINT nSector, UINT nCount, LPBYTE lpcBuffer, lpfnHANDLESTATUS lpfnNewHandleStatus ) ;
  118. UINT       FAR PASCAL DiskDriveWriteSectors  ( VOID far *pCDiskDrive, UINT nCylinders, UINT nHead, UINT nSector, UINT nCount, LPBYTE lpcBuffer, lpfnHANDLESTATUS lpfnNewHandleStatus ) ;
  119. UINT       FAR PASCAL DiskDriveReadClusters  ( VOID far *pCDiskDrive, UINT nCluster, UINT nCount, LPBYTE lpcBuffer, lpfnHANDLESTATUS lpfnNewHandleStatus ) ;
  120. UINT       FAR PASCAL DiskDriveWriteClusters ( VOID far *pCDiskDrive, UINT nCluster, UINT nCount, LPBYTE lpcBuffer, lpfnHANDLESTATUS lpfnNewHandleStatus ) ;
  121.  
  122. BOOL       FAR PASCAL DiskDriveGetRootDirectory       ( VOID far *PCDiskDrive, LPBYTE lpbyDirectoryBuffer ) ;
  123. BOOL       FAR PASCAL DiskDriveGetFileAllocationTable ( VOID far *PCDiskDrive, UINT nFAT ) ;
  124. BOOL       FAR PASCAL DiskDrivePutRootDirectory       ( VOID far *PCDiskDrive, LPBYTE lpbyDirectoryBuffer ) ;
  125. BOOL       FAR PASCAL DiskDrivePutFileAllocationTable ( VOID far *PCDiskDrive, UINT nFAT ) ;
  126. UINT       FAR PASCAL DiskDriveGetAllocatedSectors    ( VOID far *pCDIskDrive ) ;
  127. LPCSTR     FAR PASCAL DiskDriveGetVolumeDate          ( VOID far *pCDiskDrive, LPSTR  lpczOldVolumeDate  ) ;
  128. LPCSTR     FAR PASCAL DiskDriveGetVolumeLabel         ( VOID far *pCDiskDrive, LPSTR  lpczOldVolumeLabel ) ;
  129. BOOL       FAR PASCAL DiskDriveSetVolumeLabel         ( VOID far *pCDiskDrive, LPCSTR lpczNewVolumeLabel ) ;
  130.  
  131. VOID       FAR PASCAL DiskDriveSetWriteFormatOption ( VOID far *pCDiskDrive, UINT nWriteFormatOptionNew ) ;
  132. VOID       FAR PASCAL DiskDriveSetWriteVerifyOption ( VOID far *pCDiskDrive, BOOL bWriteVerifyOptionNew ) ;
  133.  
  134. VOID       FAR PASCAL DiskDriveTruncate        ( VOID far *pCDiskDrive ) ;
  135. VOID       FAR PASCAL DiskDriveTruncateReverse ( VOID far *pCDiskDrive ) ;
  136.  
  137. BOOL       FAR PASCAL DiskDriveWriteBootSector ( VOID far *pCDiskDrive, LPBYTE lpbyModelBootSector, lpfnHANDLESTATUS lpfnNewHandleStatus ) ;
  138.  
  139. #ifdef __cplusplus
  140.            }
  141. #endif /* __cplusplus */
  142.  
  143. #endif /* __DISKDRIV_H__ */
  144.  
  145.  
  146.