Есть PCI-ная плата собственного производства, на которой есть USB хост контроллер. Необходимо из под винды (ХР) работать с USB-устройствами класса масс сторадж через PCI-плату. Драйвер девайса (платы) создает объект устройства следующим вызовом: Код (Text): ntStatus = IoCreateDevice( DriverObject, sizeof( USBDISK_EXTENSION ), &deviceName, FILE_DEVICE_DISK, //FILE_DEVICE_VIRTUAL_DISK, (FILE_REMOTE_DEVICE | FILE_REMOVABLE_MEDIA | FILE_DEVICE_SECURE_OPEN), FALSE, &deviceObject ); т.е. создается объект устройства типа FILE_DEVICE_DISK с характеристикой FILE_REMOVABLE_MEDIA. Далее регистрируется интерфейс устройства Код (Text): ntStatus = IoRegisterDeviceInterface( diskExtension->UnderlyingPDO, (LPGUID) &MOUNTDEV_MOUNTED_DEVICE_GUID, // For mounting devices NULL, &diskExtension->InterfaceString ); и разрешается Код (Text): ntStatus = IoSetDeviceInterfaceState( &diskExtension->InterfaceString, TRUE ); Суть проблемы в том, что изначально после разрешения интерфейса в Моем компьютере отображается иконка Съемного диска Х:, как и должно быть. Но как только к USB-порту девайса подключается устройство масс сторадж с «правильной» файловой системой на нем (т.е. отформатированное), и ОС начинает читать его, иконка меняется на Локальный диск Х:. Это приводит к пропаданию опции извлечения диска Х: (поскольку он теперь виден как локальный), а она как раз-таки и необходима. Как сделать, чтобы ОС постоянно видела Х: как съемный диск? Заранее благодарен за любые идеи.