drivinfo.c
上传用户:xiaoan1112
上传日期:2013-04-11
资源大小:19621k
文件大小:1k
源码类别:

操作系统开发

开发平台:

Visual C++

  1. /***
  2. * $Workfile:   drivinfo.c  $
  3. * $Revision:   1.8  $
  4. *   $Author:   Dave Sewell  $
  5. *     $Date:   22 Oct 1990 14:58:10  $
  6. ***/
  7. #include <string.h>
  8. #include <stdio.h>
  9. #include <stdlib.h>
  10. #include <ctype.h>
  11. #include "fastlynx.h"
  12. #include "dc.h"
  13. /* BEGIN IPG -  define added to allow translation of "Mb" and "Kb"*/
  14. #include "IPG.h"
  15. /* END IPG -   for MBSTRING and KBSTRING */
  16. void prepare_drive_size(int device_index, char *size_buff)
  17. {
  18.     if (devices[device_index].data_size == 0L ||
  19.         devices[device_index].is_floppy       ||
  20.         (_osmajor >= 3 && devices[device_index].non_removable == FALSE) )
  21.         size_buff[0] = '';
  22.     else if (devices[device_index].data_size < 2000000L)
  23. sprintf(size_buff, KBSTRING,
  24.             (int) (devices[device_index].data_size / 1000L) );
  25.     else
  26. sprintf(size_buff, MBSTRING,
  27.             (int) (devices[device_index].data_size / (1000L * 1000L) ) );
  28. }
  29. int drive_info_handler(word count)
  30. {
  31.     static char handler[] = "drive_info";
  32.     struct drive_info_a far *drive_info_a = (struct drive_info_a far *) buffer;
  33.     int i;
  34.     char size_buff[15];
  35.     count;
  36.     i = packet.drive_info_r.server_drive_num;
  37.     prepare_drive_size(i, size_buff);
  38.     fstrcpy(drive_info_a->size, size_buff);
  39.     fstrcpy(drive_info_a->volume_label, devices[i].volume_label);
  40.     if ( !FxSend(drive_info_a, sizeof(struct drive_info_a)) ) {
  41.         return FALSE;
  42.     }
  43.     return TRUE;
  44. }