Имена устройств NT

Именованный объект устройства имеет имя в формате \Device\DeviceName. Это называется nt-именем устройства объекта устройства.

Имена устройств для драйверов WDM

Драйверы WDM не называют свои объекты устройств напрямую. Вместо этого система применяет единую схему именования, которая гарантирует, что имена устройств не конфликтуют между драйверами. Схема именования для драйверов WDM выглядит следующим образом.

  • Имя PDO для устройства. Драйвер автобуса запрашивает именованные PDO для перечисляемого устройства. Драйвер автобуса указывает FILE_AUTOGENERATED_DEVICE_NAME характеристику устройства при создании объекта устройства. Дополнительные сведения см. в разделе Указание характеристик устройства. Затем система автоматически создает имя устройства.

  • Доменные имена и объекты DOS фильтров не именуются. Драйверы функций и фильтров не запрашивают имя при создании объекта устройства.

Любой запрос ввода-вывода к именованный объект устройства автоматически переходит к верхнему объекту в стеке этого объекта устройства. Таким образом, требуется только имя PDO. Приложения в пользовательском режиме не ссылаются на объекты устройств WDM по имени; Вместо этого приложения получают доступ к объекту устройства через интерфейс устройства. Дополнительные сведения см. в разделе Классы интерфейса устройства.

Модули записи драйверов не должны называть более одного объекта в стеке устройств. Операционная система проверяет параметры безопасности на основе именованного объекта. Если два разных объекта имеют имена и имеют разные дескрипторы безопасности, запросы ввода-вывода, отправляемые объекту с более слабым дескрипторов безопасности, могут достичь объекта устройства с более строгим дескриптором безопасности.

Имена устройств для драйверов, не относящихся к WDM

Драйвер, отличный от WDM, должен явно указывать имя для всех именованных объектов устройств. Драйвер должен создать по крайней мере один именованный объект устройства в каталоге \Device object для получения запросов ввода-вывода. Драйвер указывает имя устройства в качестве параметра DeviceNameдля IoCreateDeviceSecure при создании объекта устройства.