Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Разное > Ваши программы
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 22.09.2014, 17:19
Zorkov Igor Zorkov Igor вне форума
Новичок
 
Регистрация: 28.07.2009
Сообщения: 85
Репутация: 50
По умолчанию Virtual Disk SDK

Virtual Disk SDK - это компонент для создания виртуальных дисков, альтернатива CallbackDisk от этих господ https://www.eldos.com/cbdisk/

Диск может быть смонтирован как CD или как HDD, флоппи пока не поддерживаеться

Обработка событий происходит в юзермоде, поэтому довольно легко можно прикрутить любое шифрование

Код:
function TForm1.OnDiskRead(Sender: TObject; Buffer: Pointer; Length: DWORD; var BytesRead: DWORD; Offset: Int64): BOOL;
begin

  if (Offset + Length <= (Sender as TFileDisk).FileStream.Size) then
  begin
    (Sender as TFileDisk).FileStream.Seek(Offset, TSeekOrigin.soBeginning);
    BytesRead := (Sender as TFileDisk).FileStream.ReadData(Buffer, Length);
  end
  else
    BytesRead := 0;

  Result := True;
end;


function TForm1.OnDiskWrite(Sender: TObject; Buffer: Pointer; Length: DWORD; var BytesWritten: DWORD; Offset: Int64): BOOL;
begin

  if (Offset + Length <= (Sender as TFileDisk).FileStream.Size) then
  begin
    (Sender as TFileDisk).FileStream.Seek(Offset, TSeekOrigin.soBeginning);
    BytesWritten := (Sender as TFileDisk).FileStream.WriteData(Buffer, Length);
  end
  else
    BytesWritten := 0;

  Result := True;

end;

http://www.delphisources.ru/forum/at...d=149744018 5

Delphi XE2, XE3, XE4, XE5 - 32/64 бит, ОС Windows XP, Vista, 7, 8, 8.1 - 32/64 бит

Бесплатен для некомерческого использования, для себя любимого и т.д., то есть без извлечения прибыли

Скачать ССЫЛКА ОБНОВЛЕНА
Изображения
Тип файла: jpg 14-06-2017 14-27-08.jpg (85.6 Кбайт, 27 просмотров)

Последний раз редактировалось Zorkov Igor, 14.06.2017 в 14:37.
Ответить с цитированием
  #2  
Старый 23.09.2014, 06:52
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,052
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Работает, по крайней мере демка.
Вообще, неплохо было бы какую-нить доку доложить.
И манифест поправить, что бы права администратора сразу запрашивались.

ЗЫ. Кстати, диск создается неформатированный. А как за собой почистить файл, если хочется удалить его после работы программы? Точнее отцепить его, бо как он для удаления тоже требует права админа.

ЗЗЫ. Кстати, а можно ли создать диск на основе существующего файла, например, образа iso?
Ответить с цитированием
  #3  
Старый 23.09.2014, 08:45
Zorkov Igor Zorkov Igor вне форума
Новичок
 
Регистрация: 28.07.2009
Сообщения: 85
Репутация: 50
По умолчанию

Цитата:
Сообщение от lmikle
ЗЗЫ. Кстати, а можно ли создать диск на основе существующего файла, например, образа iso?

Указать путь к файлу iso, отметить галку cd rom и диск смонтируеться как привод cd
Ответить с цитированием
  #4  
Старый 23.09.2014, 10:05
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

По чем нынче сертификаты безопасности стОят?
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #5  
Старый 23.09.2014, 12:59
Zorkov Igor Zorkov Igor вне форума
Новичок
 
Регистрация: 28.07.2009
Сообщения: 85
Репутация: 50
По умолчанию

Сейчас не знаю
Ответить с цитированием
  #6  
Старый 23.09.2014, 18:17
Zorkov Igor Zorkov Igor вне форума
Новичок
 
Регистрация: 28.07.2009
Сообщения: 85
Репутация: 50
По умолчанию

Добалено демо RamDisk
Ответить с цитированием
  #7  
Старый 23.09.2014, 18:39
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

А можно исходник драйвера?
Я понимаю что там тривиально все, обработчики в драйверэнтри навешаны, но может быть кому-то было бы интересно посмотреть как выглядят драйвера изнутри.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #8  
Старый 23.09.2014, 18:59
Zorkov Igor Zorkov Igor вне форума
Новичок
 
Регистрация: 28.07.2009
Сообщения: 85
Репутация: 50
По умолчанию

Цитата:
Сообщение от M.A.D.M.A.N.
...интересно посмотреть как выглядят драйвера изнутри.

http://www.acc.umu.se/~bosse/
Ответить с цитированием
  #9  
Старый 23.09.2014, 19:25
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,052
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Цитата:
Сообщение от Zorkov Igor
Указать путь к файлу iso, отметить галку cd rom и диск смонтируеться как привод cd

А что с тем, что файл можно удалить только с правами админа?
Кстати, обратил внимание, что где-то в исходниках видел копирование драйвера в системную папку. А нафига? (может я и не прав, но вроде что-то такое видел).
Ответить с цитированием
  #10  
Старый 23.09.2014, 19:46
Zorkov Igor Zorkov Igor вне форума
Новичок
 
Регистрация: 28.07.2009
Сообщения: 85
Репутация: 50
По умолчанию

Цитата:
Сообщение от lmikle
Кстати, обратил внимание, что где-то в исходниках видел копирование драйвера в системную папку. А нафига? (может я и не прав, но вроде что-то такое видел).

Все правильно драйвер копируеться в папку windows\system32\drivers, там как раз и место для всех драйверов в системе

Цитата:
Сообщение от lmikle
А что с тем, что файл можно удалить только с правами админа?

Это уже зависит от вашей винды, что и как у вас там удаляется, то что для работы программы требуется права администратора это да
Ответить с цитированием
  #11  
Старый 26.03.2015, 13:35
Аватар для volod3000
volod3000 volod3000 вне форума
Новичок
 
Регистрация: 25.12.2008
Сообщения: 71
Репутация: 114
По умолчанию

Что-то не получается запустить примеры, выскакивает окошко
(Windows 7 x64)

Цитата:
Ram Disk
---------------------------
Failed to install Virtual Disk driver - Загрузка драйвера была заблокирована

Делал так:



Драйверы VirtualDisk.dll поместил в System32, а
VirtualDisk.sys в drivers

Файл запускал от имени админа.

После некоторых проб выскакивает окошко:

---------------------------
Ram Disk
---------------------------
Failed to initialize Virtual Disk library - Не найден указанный модуль

Разъясните, что не так
Ответить с цитированием
  #12  
Старый 27.03.2015, 18:22
Zorkov Igor Zorkov Igor вне форума
Новичок
 
Регистрация: 28.07.2009
Сообщения: 85
Репутация: 50
По умолчанию

Ничего не надо ни куда помещать, VirtualDisk.dll и VirtualDisk.sys должны быть в папке с exe

Virtual Disk SDK 1.1
Ответить с цитированием
  #13  
Старый 27.03.2015, 18:31
Аватар для volod3000
volod3000 volod3000 вне форума
Новичок
 
Регистрация: 25.12.2008
Сообщения: 71
Репутация: 114
По умолчанию

Так и делаю и получаю:

Ответить с цитированием
  #14  
Старый 27.03.2015, 18:38
Zorkov Igor Zorkov Igor вне форума
Новичок
 
Регистрация: 28.07.2009
Сообщения: 85
Репутация: 50
По умолчанию

Версия 1.1 ?
Ответить с цитированием
  #15  
Старый 27.03.2015, 18:39
Zorkov Igor Zorkov Igor вне форума
Новичок
 
Регистрация: 28.07.2009
Сообщения: 85
Репутация: 50
По умолчанию

А зачем ISO в RAM диск? дофига оперативки?
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 19:55.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter