Аппаратное обеспечение персонального компьютера


           

Программа CDINFO - часть 4


    nCDUnits = rg.x.bx;

   

    // Сохраняем номер первого такого устройства

    nCDStartUnit = rg.x.cx;

    // Определяем и отображаем вресию MSCDEX

    rg.x.ax = 0x150c;

    int86(0x2f, &rg, &rg);

    printf("MSCDEX version: %d.%d\n", rg.h.bh, rg.h.bl);

    // Отображаем количество найденных устройств чтения

    // CD-ROM и номер первого устройства

    printf("Found %d CD Unit, start unit: %c\n",

      nCDUnits, nCDStartUnit + 'A');

  }

  // Получаем массив номеров устройств чтения CD-ROM

  GetCDLetters(bLetters);

 

  // Отображаем обозначения всех устройств CD-ROM

  printf("CD-ROM letters: ");

  for(i = 0; i < nCDUnits; i++)

  {

    printf("%c ", bLetters[i] + 'A'); 

  }

  printf("\n");

  // Цикл по всем устройствам чтения CD-ROM

  for(i = 0; i < nCDUnits; i++)

  {

    // Определяем и отображаем состояние устройства

    iStatus = GetDeviceStatus(bLetters[i]);

    if(iStatus != 0x0100)

    {

      printf("GetDeviceStatus status: %04.4X\n", iStatus);

      printf("GetDeviceStatus failed\n");

      exit(1);              

    }

    printf("\nStatus of CD Drive %c: %08.8X\n",

      bLetters[i] + 'A', ds.dwParam);

    // Определяем и отображаем объем устройства

    iStatus = GetVolumeSize(bLetters[i]);

    if(iStatus != 0x0100)

    {

      printf("GetVolumeSize status: %04.4X\n", iStatus);

      printf("GetVolumeSize failed\n");

    }

    else

      printf("VolumeSize: %ld blocks\n", vs.dwVolumeSize);

    // Определяем и отображаем информацию о

    // компакт-диске

    iStatus = GetDiskInfo(bLetters[i]);

   

    // Делаем три попытки получения информации

    iRetry = 0;

    while(iStatus != 0x0100)

    {

      printf("GetDiskInfo status: %04.4X\n", iStatus);

   

      // Задержка длительностью 1 с

      delay(1000);

   

      iRetry++;




Содержание  Назад  Вперед