Указание характеристик устройства
Каждый объект устройства может иметь одну или несколько характеристик устройства. Характеристики устройства хранятся в виде флагов в элементе Характеристикиструктуры DEVICE_OBJECT объекта устройства.
Большинство драйверов указывают только FILE_DEVICE_SECURE_OPEN характеристику. Это гарантирует, что те же параметры безопасности будут применены к любому открытому запросу в пространстве имен устройства. Дополнительные сведения см. в разделе Управление доступом к пространству имен устройств.
FILE_AUTOGENERATED_DEVICE_NAME используется только для PDO. Характеристики FILE_FLOPPY_DISKETTE, FILE_REMOVABLE_MEDIA и FILE_WRITE_ONCE_MEDIA относятся к устройствам хранения. Описание возможных флагов характеристик устройства см. в описании элемента ХарактеристикиDEVICE_OBJECT.
Некоторые характеристики устройства, такие как FILE_AUTOGENERATED_DEVICE_NAME, применяются только к отдельным объектам устройства. При создании объекта устройства драйверы могут указывать параметры для характеристик устройства для отдельных объектов устройства, вызывая IoCreateDevice или IoCreateDeviceSecure.
Следующие характеристики применяются ко всему стеку устройств:
FILE_DEVICE_SECURE_OPEN
FILE_FLOPPY_DISKETTE
FILE_READ_ONLY_DEVICE
FILE_REMOVABLE_MEDIA
FILE_WRITE_ONCE_MEDIA
Драйверы могут задавать характеристики устройства, которые применяются ко всему стеку устройств, вызывая IoCreateDevice или IoCreateDeviceSecure. Кроме того, характеристики устройства, применимые ко всему стеку устройств, можно задать в реестре либо для устройства, либо для класса настройки устройства. (Дополнительные сведения см. в разделе Настройка свойств объекта устройства в реестре.)
Диспетчер PnP определяет параметр реестра для характеристик устройства следующим образом.
Если для отдельного устройства указано значение, диспетчер PnP использует это значение;
В противном случае, если для класса настройки устройства указано значение, диспетчер PnP использует это значение;
В противном случае диспетчер PnP использует нулевое значение в качестве параметра реестра.
Если характеристика устройства, которая применяется ко всему стеку устройств, задана в реестре или если она задана для любого FDO или фильтра DO в стеке, диспетчер PnP устанавливает ее для каждого объекта устройства в стеке. (Если устройство поддерживает необработанный режим и поэтому не имеет FDO, диспетчер PnP использует PDO.)