none
Открытие дескриптора устройства в Vista+ RRS feed

  • Вопрос

  • Добрый день

    При всем обилии вопросов/ответов по этой теме в Интернете вопросы остаются...

    Выполняемый код (PASCAL):

                                           

    hDevHandle :=CreateFile(PChar(sDevName),
    FILE_READ_ATTRIBUTES,
    0,
    nil,
    OPEN_EXISTING,
    0,
    0);

    Открывается WDM-драйвер, обслуживающий PCI-устройство.

    В Windows 7 - GetLastError == 5 (Access is denied), уровень доступа-Пользователь

    (Windows XP - все нормально)

    Вот здесь написано:

    "You can still open a device handle using FILE_READ_ATTRIBUTES without administrative rights"

    http://msdn.microsoft.com/en-us/library/windows/desktop/aa363216(v=vs.85).aspx

    Собственно, вопросы (устройство: WDM-драйвер; Vista+):

    1) Можно ли получать дескриптор устройства только для чтения для Приложения, не обладающего административными правами, в Vista+?

    2) Если используются IOCTL-функции для общения с драйвером, дескриптор устройства обязательно нужно открывать с DesiredAccess, включающим *WRITE флаги?

    3) Есть ли в MSDN/WDK/WDF примеры работы с драйвером устройства Приложением без Административных прав, используя:

    Windows Service Applications 

    COM Elevation Moniker

    Application Manifest (UAC)

    или что-то другое?

    Спасибо



Ответы

  • Разбираемся, о результатах непременно сообщу

    Собственно, ответ: все проблемы-от неграмотности :)

    В Windows XP не задумывался о проблемах секретности и доступа к объектам-работали под учетной записью Администратор, объекты создавались с Security Descriptor = NULL со всеми вытекающими...

    Проблема получения дескриптора устройства для учетной записи с ограниченными правами открыла для меня огромную главу в Windows - Access Control

    http://msdn.microsoft.com/en-us/library/aa374860(v=vs.85)

    Фактически, моя "проблема" решилась добавлением в INF-файл правильных прав доступа для Пользователя с ограниченными правами (использовал well-known SID Built-in users (BU) и нужные права доступа).

    HKR,,Security,,"D:P(A;;GA;;;SY)(A;;GA;;;BA)(A;;GA;;;BU)



    • Изменено John.Smith.Mr 30 мая 2012 г. 7:48
    • Помечено в качестве ответа Abolmasov Dmitry 1 июня 2012 г. 13:39

Все ответы

  • Уважаемый пользователь!

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


    Для связи [mail]

  • Разбираемся, о результатах непременно сообщу

    Собственно, ответ: все проблемы-от неграмотности :)

    В Windows XP не задумывался о проблемах секретности и доступа к объектам-работали под учетной записью Администратор, объекты создавались с Security Descriptor = NULL со всеми вытекающими...

    Проблема получения дескриптора устройства для учетной записи с ограниченными правами открыла для меня огромную главу в Windows - Access Control

    http://msdn.microsoft.com/en-us/library/aa374860(v=vs.85)

    Фактически, моя "проблема" решилась добавлением в INF-файл правильных прав доступа для Пользователя с ограниченными правами (использовал well-known SID Built-in users (BU) и нужные права доступа).

    HKR,,Security,,"D:P(A;;GA;;;SY)(A;;GA;;;BA)(A;;GA;;;BU)



    • Изменено John.Smith.Mr 30 мая 2012 г. 7:48
    • Помечено в качестве ответа Abolmasov Dmitry 1 июня 2012 г. 13:39