Сведения о драйверах хранилища и объектах устройств
Стек запоминающих устройств состоит из дерева объектов устройств, созданных драйверами, которые участвуют в обработке операций ввода-вывода на запоминающие устройства в системе. Корнем этого дерева является объект функционального устройства (FDO) для адаптера хранилища или другого стека драйверов, интегрированного с стеком хранилища. Листья этого дерева являются объектами устройств для использования файловыми системами и приложениями в пользовательском режиме.
Как и любой драйвер PnP, класс хранения или драйвер фильтра хранилища добавляет себя в дерево в своей процедуре AddDevice, создавая объект устройства с помощью IoCreateDevice и присоединяя его к стеку устройств с помощью IoAttachDeviceToDeviceStack, используя указатель на объект устройства, переданный в подпрограмму AddDevice драйвера диспетчером PnP при инициализации. IoAttachDeviceToDeviceStack присоединяет новый объект устройства к текущей верхней части стека устройств.
Для создания объекта устройства и его присоединения к стеку устройств не требуется использовать ленточный миникласс, миникласс средний или драйвер минипорта SCSI. Вместо этого предоставляемый системой класс ленты, класс changer или драйвер порта SCSI обрабатывает эти задачи от имени миникласса или минипорта, вызывая подпрограммы драйвера miniclass/miniport для сбора данных, необходимых для создания объекта устройства.
Драйверы портов хранения создают объекты физических устройств (PDO) типа FILE_DEVICE_MASS_STORAGE. Драйверы класса диска, класса CD-ROM, класса ленты и класса changer создают FDO типов FILE_DEVICE_DISK, FILE_DEVICE_CD_ROM, FILE_DEVICE_TAPE и FILE_DEVICE_CHANGER соответственно.
Сведения о проектировании драйверов PnP см. в руководстве по проектированию драйверов PnP. Сведения о подпрограммах IoXxx, связанных с PnP, см. в разделе Подпрограммы Plug and Play.