Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как программно сделать eject для CD-ROM'a, ZIP'a?

Как программно сделать eject для CD-ROM'a, ZIP'a?

BOOL EjectDrive95(char *path)
{
 HANDLE hDevice;
 DWORD dw;
 BOOL fResult;
 DIOC_REGISTERS reg;

 hDevice = CreateFile("\\\\.\\vwin32", 0, 0, NULL, 0,
FILE_FLAG_DELETE_ON_CLOSE, NULL);
 if (hDevice == INVALID_HANDLE_VALUE)
  return FALSE;
  reg.reg_EAX = 0x440D;
  reg.reg_EBX = toupper(path[0]) - 'A' + 1;
  reg.reg_ECX = 0x0849;
 fResult = DeviceIoControl(hDevice,
     VWIN32_DIOC_DOS_IOCTL,R, sizeof(reg),
     R, sizeof(reg), &dw, 0);
 CloseHandle(hDevice);
 return fResult;
}

BOOL EjectDriveNT(char *path)
{
  HANDLE hDisk;
  DWORD dwRc;
  TCHAR tsz[8];
  SECURITY_ATTRIBUTES sa;

  wsprintf(tsz, TEXT("\\\\.\\%c:"), TEXT('@') + toupper(path[0]) - 'A' + 1);
  sa.nLength = sizeof(sa);
  sa.lpSecurityDescriptor = NULL;
  sa.bInheritHandle = TRUE;
  hDisk =  CreateFile(tsz, GENERIC_READ | GENERIC_WRITE,
    FILE_SHARE_READ | FILE_SHARE_WRITE,&sa,
    OPEN_EXISTING, FILE_FLAG_WRITE_THROUGH, NULL);
  if (hDisk != INVALID_HANDLE_VALUE)
  {
  FlushFileBuffers(hDisk);
    return DeviceIoControl(hDisk, IOCTL_DISK_EJECT_MEDIA, NULL, 0, NULL, 0,&dwRc, NULL);
  }
  return FALSE;
}


К оглавлению

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог