Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В модели драйвера Windows (WDM) каждый объект устройства имеет связанное пространство имен. Имена в пространстве имен устройства — это пути, начинающиеся с имени устройства. Для устройства с именем "Device\DeviceName" его пространство имен включает любое имя следующей формы: "Device\DeviceName\FileName". (Для файловой системы Имя_файла — это фактическое имя файла в файловой системе.)
Драйвер WDM получает открытые запросы ко всем именам в пространстве имен устройства. Драйвер обрабатывает открытый запрос "\DeviceName\" как открытый объект устройства. Если драйвер реализует поддержку открытых запросов в пространстве имен устройства, то он обрабатывает открытый запрос "\Device\\\DeviceName\\\FileName" как открытие "файла" в пространстве имен объекта устройства (где понятие "файл" для устройства определяется драйвером).
Большинство драйверов не реализуют поддержку открытых операций в пространстве имен устройства, но все драйверы должны предоставлять проверки безопасности, чтобы предотвратить несанкционированный доступ к пространству имен устройства. По умолчанию проверки безопасности для запросов на открытие файлов в пространстве имен устройства (например, "\Device\DeviceName\FileName") полностью возлагаются на драйвер — ACL список объекта устройства не проверяется операционной системой.
Если задана FILE_DEVICE_SECURE_OPEN характеристика объекта устройства, система применяет дескриптор безопасности объекта устройства ко всем запросам на открытие файлов в пространстве имен устройства. Драйверы могут задавать FILE_DEVICE_SECURE_OPEN при создании объекта устройства с помощью IoCreateDevice или IoCreateDeviceSecure. Для драйверов WDM FILE_DEVICE_SECURE_OPEN также можно задать в реестре. Его также можно задать в реестре для объектов устройств драйверов, отличных от WDM, созданных IoCreateDeviceSecure. Дополнительные сведения о настройке свойств объекта устройства, таких как характеристики устройства, в реестре см. в разделе "Настройка свойств объекта устройства" в реестре. Дополнительные сведения о характеристиках устройства см. в разделе "Указание характеристик устройства".
Драйверы для устройств, которые не поддерживают пространства имен, должны использовать один из двух методов, чтобы убедиться, что открытые файлы в пространстве имен устройства обрабатываются правильно:
Объекты устройства драйвера имеют набор характеристик устройства FILE_DEVICE_SECURE_OPEN. Затем драйвер может рассматривать любой открытый запрос в пространстве имен устройства как открытый запрос для объекта устройства.
Драйвер может отклонять любые запросы IRP_MJ_CREATE, которые указывают параметр IrpSp-FileObject-FileName>> с ненулевой длиной. В этом случае открытые запросы на устройство подвергаются проверке ACL системы, а все открытые запросы файлов в пространстве имен устройства завершаются ошибкой драйвера. (Драйверы, поддерживающие эксклюзивный доступ, должны использовать этот параметр.)
Драйверы для устройств, поддерживающих пространства имен, также могут использовать два метода для защиты запросов на открытие файлов в пространстве имен устройства:
Объекты устройства драйвера имеют набор характеристик устройства FILE_DEVICE_SECURE_OPEN. Это гарантирует, что параметры безопасности устройства применяются равномерно к пространству имен устройства. (Драйвер отвечает за реализацию поддержки пространства имен в своей функции обратного вызова DRIVER_DISPATCH .)
Драйвер проверяет все списки управления доступом для имени файла в процедуре DispatchCreate. (Даже в этом случае драйвер должен задать характеристику FILE_DEVICE_SECURE_OPEN, если только открытия в пространстве имен устройства могут иметь более слабые параметры безопасности, чем сам объект устройства.)
Характеристика FILE_DEVICE_SECURE_OPEN проверяется на верхнем уровне стека, поэтому после присоединения объекты устройства фильтра должны скопировать элемент Характеристики объекта устройства, расположенного ниже.