Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> IOCTLO_ в Vista 
:(
    Опции темы
artem1987
Дата 20.10.2006, 16:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 203
Регистрация: 18.7.2006
Где: Калининград

Репутация: нет
Всего: нет



как использовать IOCTL_DISK_GET_PARTITION_INFO  в WinVista  чтобы DeviceIOControl не вернул ошибку Access denied
как в CreateFile обратиться с read only access?
--------------------
Don't ask me why, ask me how.
PM MAIL   Вверх
Snowy
Дата 20.10.2006, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 30
Всего: 484



Второй параметр GENERIC_READ    
Пятый OPEN_EXISTING
PM MAIL   Вверх
artem1987
Дата 20.10.2006, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 203
Регистрация: 18.7.2006
Где: Калининград

Репутация: нет
Всего: нет



если отключить UAC то все работает как в ХР
в висте если включен UAC то c GENERIC_READ  CreateFIke получает INVALID_HANDLE_VALUE 
но чтобы работал IOCTL_DISK_GET_DRIVE_GEOMETRY второй параметр можно сделать 0,
а вот для IOCTL_DISK_GET_PARTITION_INFO нужно что-то...
нашел
Цитата

Security Check Process in Windows Vista
When an application attempts to open a handle to the device interface, the I/O manager checks whether the user has been granted the access permissions that are requested in the CreateFile call. If yes, the handle is opened; otherwise, the call fails with error ACCESS_DENIED.
After the handle is opened, the application can send commands directly to the device, typically by using an IOCTL. For example, to send a SCSI pass-through command, an application would use IOCTL_SCSI_PASS_THROUGH or IOCTL_SCSI_PASS_THROUGH_DIRECT.
Each IOCTL has the required access permissions encoded. For example:
•    IOCTL_DISK_GET_PARTITION_INFO requires just Read access.
•    IOCTL_SCSI_PASS_THROUGH and IOCTL_SCSI_PASS_THROUGH_DIRECT require the caller to have opened the handle to the interface (which is provided by storage device driver) for both Read and Write access.


но как сделать не пойму... 
--------------------
Don't ask me why, ask me how.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0744 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.