Поделиться через


Указание характеристик устройства

Каждый объект устройства может иметь одну или несколько характеристик устройства. Характеристики устройства хранятся в виде флагов в элементе Характеристикиструктуры 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.)