Что такое windows portable devices

При подключении флешки, карты памяти, внешнего диска или мобильных устройств к компьютеру с Windows вы можете увидеть устройство «Драйвер тома файловой системы WPD» в диспетчере устройств в разделе «Переносные устройства». В некоторых случаях без ошибок, но накопитель не появляется в проводнике, иногда — с желтым восклицательным знаком и ошибками (как правило — код 10).

В этой инструкции подробно о том, что такое драйвер тома файловой системы WPD и как решить возможные проблемы с переносным устройством и этим драйвером.

Флешка, внешний диск или карта памяти определяется как Драйвер тома файловой системы WPD и не появляется в проводнике

Драйвер тома файловой системы WPD в диспетчере устройств

Запись «Драйвер тома файловой системы WPD» (Windows Portable Device) в разделе «Переносные устройства» диспетчера устройств означает, что к компьютеру подключено какое-либо переносное устройство с возможностью хранения данных, обычно — флешка или карта памяти, для которого не назначена буква диска или имя.

Решить проблему с драйвером тома файловой системы WPD при подключении USB-накопителя или карты памяти можно одним из следующих способов.

Назначение буквы диска для подключенного накопителя

Самый простой метод, часто срабатывающий — простое назначение буквы для накопителя. Необходимые шаги:

  1. Запустите «Управление дисками». Для этого нажмите клавиши Win+R на клавиатуре, введите diskmgmt.msc и нажмите Enter.
  2. В открывшейся утилите «Управление дисками» проверьте, отображается ли подключенное съемное устройство в списке в нижней части. Если оно там есть, нажмите по разделу на этом устройстве правой кнопкой мыши и выберите пункт «Изменить букву диска или путь к диску».
    Назначит букву диска для тома на устройстве WPD

  3. Нажмите «Добавить» и выберите букву диска, примените настройки.
    Назначение буквы для тома в управлении дисками

Если всё прошло успешно, буква будет назначена, а накопитель станет доступен.

Если назначение буквы недоступно, либо раздел не отображается, попробуйте слегка отличающийся подход:

  1. Отключите устройство «Драйвер тома файловой системы WPD» в диспетчере устройств: Правый клик — Отключить.
  2. В проводнике откройте свойства любого диска: правый клик — свойства.
  3. Перейдите на вкладку «Оборудование» и выберите то устройство, с которым возникли проблемы, нажмите «Свойства».
    Открыть свойства устройства WPD

  4. Перейдите на вкладку «Тома» и нажмите «Заполнить».
    Заполнить тома для устройства WPD

  5. После нажатия кнопки «Заполнить» окно свойств накопителя может снова открыться на вкладке «Общие». Вновь перейдите на вкладку «Тома» и нажмите «Заполнить», результат должен быть как на изображении ниже. Нажмите «Ок».
    Информация о томе для устройства WPD заполнена

  6. Включите устройство «Драйвер тома файловой системы WPD» в диспетчере устройств.
  7. В управлении дисками назначьте букву разделу, как это было описано выше.

В случае, если проблема возникла с внешним жестким диском или SSD, перед первым шагом во втором подходе можно попробовать установить «Вне сети» для диска в «Управлении дисками» — нажатие по имени диска правой кнопкой мыши и выбор пункта «Вне сети», а после 6-го шага снова включить «В сети» для диска.

Удаление драйвера тома файловой системы WPD и перезагрузка

Следующий вариант, который может сработать в случае, если устройство сообщает об ошибках:

  1. В диспетчере устройств нажмите правой кнопкой мыши по устройству «Драйвер тома файловой системы WPD», выберите пункт «Удалить» и подтвердите удаление. Само подключенное устройство не отключайте.
  2. Перезагрузите компьютер.

Проверьте, изменилась ли ситуация с работой устройства.

Очистка структуры разделов на накопителе

Если проблема возникла после использования какой-либо сторонней программы для записи образа на накопитель, можно попробовать вручную очистить разделы с накопителя с помощью командной строки (все данные с него будут удалены):

  1. Запустите командную строку от имени администратора.
  2. Введите команды
    diskpart
    list disk
  3. Команда отобразит список подключенных дисков. Если нужный диск отображается (можно определить по размеру), используем следующие команды, заменив N на номер диска:
    select disk N
    clean
    create partition primary
  4. Предыдущими командами был создан раздел, теперь форматируем его и назначаем букву. В команде форматирования вы можете поменять FAT32 на NTFS, а вместо буквы E в примере использовать ту, которая требуется вам:
    format fs=fat32 quick
    assign letter=E
    exit

Если всё прошло успешно, устройство отобразится в проводнике и будет исправно работать.

Дополнительные варианты решения и диагностики

Если предыдущие подходы не помогли, обратите внимание на следующие возможности:

  • Если проблема появилась недавно, с накопителем каких-то особенных действий не выполнялось, а система не переустанавливалась, попробуйте использовать точки восстановления системы на дату, когда проблема не наблюдалась.
  • По возможности проверьте этот же накопитель на другом компьютере — работает ли он там, либо возникает то же самое поведение: это поможет разобраться, проблема в системе или накопителе.
  • Попробуйте использовать способы из инструкции про исправление ошибки Код 10 «Запуск этого устройства невозможен», предварительно создав точку восстановления системы.

Надеюсь, один из подходов сработал в вашей ситуации. Если остаются вопросы, вы можете задать их в комментариях ниже.

Provide feedback

Saved searches

Use saved searches to filter your results more quickly

Sign up

Appearance settings

Overview

The Windows Portable Devices (WPD) feature allows computers to communicate with the attached media and storage devices. With the WPD, you can explore a device, for instance, smartphones, flash USB cards, and many more.

If you want to enable the WPD feature in your Delphi and C++ Builder Windows application, you can utilize the Portable library by WINSOFT to connect WPD Application Programming Interfaces.

This is a commercial library that has a trial version with all features for evaluation only. If you wish to distribute the Portable library as a part of your project, you should get a license.

Intro

The Portable library by WINSOFT can be used for exploring devices, to send and receive content, and also to command devices. The library also supports Media Transport Protocol (MTP) and Mass Storage Class (MSC) devices.

Specifications

  • Supports Windows 32 & Windows 64
  • Available for Delphi & C++ Builder 6-10.4 VCL

Configuration and Use

You can follow this installation video that shows how to configure your RAD Studio with this library.

You can also see the Portable library in action here:

Development

User Interface

Sometimes a user interface looks simple, but behind that, we have many processes going on—for instance, this demo. With the Combobox, you can select available devices, and with the TreeView, you can open folders and explore contents in that portable device.

Also, the Download, Upload and Delete buttons works as it is, Download downloads the file opens a dialog box to save it, Upload, uploads a file, and Delete, deletes selected file or data from a chosen portable device.

To use this Portable library, you should declare the Portable unit in your uses list. And you need several object instances to control devices, for example, TDeviceManager for getting available portable devices and TDeviceContent for showing the folders and files.

Let’s explore the OnCreate event now: 

procedure TFormMain.FormCreate(Sender: TObject);

begin

  IdList := TStringList.Create;

  DeviceManager := TDeviceManager.Create;

  ComboBoxDevice.Items.Add(»);

  ComboBoxDevice.ItemIndex := 0;

  for var I: Integer := 0 to DeviceManager.DeviceCount 1 do

    ComboBoxDevice.Items.Add(DeviceManager.Device[I].FriendlyName);

end;

As you can see here we are getting the available portable devices using the DeviceManager instance.

Also, we have the AddChildren function, which helps to get available content from the selected portable device. With the TreeView component, we can display the contents with the right style, in this case, by showing parent and child style.

TTreeView in Action

How are we getting the selected file from the portable device? We need TDeviceObject and TFileStream. If there is a selected object within the Device Object, it opens the save dialog, and then with TDeviceContent, we can start reading the data.

Content.Read(DeviceObject.ID, FileStream);

As you have guessed, uploading a file is like Content.Write

And deleting it can be done by Content.Delete function.

Be sure to investigate other features of the Portable library by WINSOFT, and see what else you can accomplish!

Like what you see? You can get the Portable library and over 100 other fantastic WinSoft components with our Enterprise Component Pack. For a limited time, when you purchase RAD Studio Enterprise or Architect Edition at special Upgrade Pricing, you will also get this package of third-party software worth over $13,000, including the full WinSoft Component Library, at NO EXTRA COST! Step up to RAD Studio 10.4 today!

What is WPD ?

Windows Portable Devices (WPD) enables computers to communicate with attached media and storage devices. WPD provides a flexible, robust way for computers to communicate with music players, storage devices, mobile phones, cameras, and many other types of connected devices.

Why are mobile devices not blocked by removable media policy?

Problem

Even though we have set our removable media policy to block removable media, connecting a mobile phone, media player or similar device allows us to access its contents.

Cause

Devices that are presented through the WPD (Windows Portable Device) interface are not classed as removable media by the operating system and so the filtering of ESET Endpoint Encryption (EEE) does not apply to them. An easy way to check this, is to see if the device has been assigned a drive letter. If it hasn’t, then it will not be blocked by Removable Media Policy.

Solution

You can upload PowerShell script in Endpoint Management to deploy registry key to restrict WPD Devices.

Save below details in .ps1 file.

=============================
Block Read / Write of WPD Devices
=============================
WPD Devices: Deny read access

This registry setting denies read access to removable disks, which may include media players, cellular phones, auxiliary displays, and CE devices.
New-Item 'HKLM:\Software\Policies\Microsoft\Windows\RemovableStorageDevices{6AC27878-A6FA-4155-BA85-F98F491D4F33}' -Force | Out-Null
ew-ItemProperty -path 'HKLM:\Software\Policies\Microsoft\Windows\RemovableStorageDevices{6AC27878-A6FA-4155-BA85-F98F491D4F33}' -name 'Deny_Read' -value '1' -PropertyType 'DWord' -Force | Out-Null
New-Item 'HKLM:\Software\Policies\Microsoft\Windows\RemovableStorageDevices{F33FDC04-D1AC-4E8E-9A30-19BBD4B108AE}' -Force | Out-Null
New-ItemProperty -path 'HKLM:\Software\Policies\Microsoft\Windows\RemovableStorageDevices{F33FDC04-D1AC-4E8E-9A30-19BBD4B108AE}' -name 'Deny_Read' -value '1' -PropertyType 'DWord' -Force | Out-Null
WPD Devices: Deny write access
This registry setting denies write access to removable disks, which may include media players, cellular phones, auxiliary displays, and CE devices.

New-ItemProperty -path 'HKLM:\Software\Policies\Microsoft\Windows\RemovableStorageDevices{6AC27878-A6FA-4155-BA85-F98F491D4F33}' -name 'Deny_Write' -value '1' -PropertyType 'DWord' -Force | Out-Null
New-ItemProperty -path 'HKLM:\Software\Policies\Microsoft\Windows\RemovableStorageDevices{F33FDC04-D1AC-4E8E-9A30-19BBD4B108AE}' -name 'Deny_Write' -value '1' -PropertyType 'DWord' -Force | Out-Null

Sign into the Microsoft Intune Admin or https://endpoint.microsoft.com

Step 1 :- Select Devices Scripts > then click on Add > Select Windows 10

Step 2:- In Basics section, Give it a name , provide description and click on next

Step 3 :- In Script settings section, provide previously created script in Script location and keep other options as default. Then click on Next.

Step 4 :- Create a group in azure active directory or on your local active directory . In Assignments section click on Add groups and Select group to include. Select your group and click on next.

Step 5 :- In Review + add section, click on Add

You will get a success message in your console as below.

Enrolled device will get the policy and WPD devices will be blocked.

Registry Result in Enrolled device

Result 1

Result 2

Screenshot showing blocked mobile device

В одном своем заказе я столкнулся с проблемой. Необходимо было написать для одной программы проводник по подключаемым устройствам на C#. Проблема заключалась в том, что FolderBrowserDialog вообще не собирался работать с теми устройствами, у которых отсутствовала буква диска, а BrowseForFolder не мог работать с папками на таких устройствах, путь к которым превышал 260 символов. Ну что ж, напишем его сами. Для этого мы воспользуемся WDP.

Windows Portable Devices (WPD) позволяет компьютерам взаимодействовать с подключенными внешними устройствами. WPD обеспечивает гибкий и надежный способ взаимодействия компьютеров с музыкальными проигрывателями, флешками, мобильными телефонами, камерами и многими другими типами подключенных устройств.

Приложения, созданные на WPD, могут исследовать устройство, отправлять и получать контент и даже управлять устройством, например, делать снимок или отправлять текстовое сообщение. Система спроектирована так, чтобы быть гибкой, чтобы можно было исследовать многие типы устройств и расширять их, чтобы разработчики драйверов могли определять пользовательские свойства и команды для пользовательских устройств.

Вы можете писать как приложения Windows, так и веб-приложения с помощью WPD. Вы используете интерфейс программирования приложений WPD для создания приложений Windows. Эти приложения могут быть написаны на C ++, C # .Net или Visual Basic .Net. Интерфейс программирования WPD поддерживается в операционных системах Windows 7, Windows Vista и Windows XP. WPD Automation Object Model поддерживается только в Windows 7.

В этой статье мы научимся получать список подключенных устройств их id.

Настройка проекта

Запустите Visual Studio и создайте новое пустое решение именем с wpd. Далее добавьте новое консольное приложение под названием PortableDevices к нему. Чтобы получить доступ к wdp по API, вам нужно добавить ссылки на библиотеки COM “PortableDeviceApi 1.0 Type Library″ и “PortableDeviceTypes 1.0 Type Library”.

Затем выделите обе ссылки и измените свойство “Внедрить типы взаимодействия” на false. Теперь мы готовы, чтобы начать работать с wdp по API-интерфейсу.

Перечисление wpd-устройств

Добавьте новый класс в проект под названием PortableDeviceCollection. Этот класс представляет собой простую коллекция, которая отслеживает PortableDevice экземпляры. Когда экземпляр класса PortableDeviceCollection создается, то его конструктор создает экземпляр типа PortableDeviceManager, который может быть найден в библиотеке Тип PortableDeviceApi 1.0.

public class PortableDeviceCollection : Collection<PortableDevice>
{
    private readonly PortableDeviceManager _deviceManager;

    public PortableDeviceCollection()
    {
        this._deviceManager = new PortableDeviceManager();
    }

    public void Refresh()
    {
        //...
    }
}

Идем дальше и добавляем класс PortableDevice к проекту. Мы передаем идентификатор устройства при создании нового экземпляра этого класса.

public class PortableDevice
{
    public PortableDevice(string deviceId)
    {
        this.DeviceId = deviceId;
    }

    public string DeviceId { get; set; }
}

Давайте создадим коллекцию файлов wpd-совместимых устройств путем реализации метода Refresh() класса PortableDeviceCollection.

public void Refresh()
{
    this._deviceManager.RefreshDeviceList();

    // Определяем, сколько wpd-устройства подключено
    var deviceIds = new string[1];
    uint count = 1;
    this._deviceManager.GetDevices(ref deviceIds[0], ref count);

    // Получаем идентификатор для каждого подключенного устройства
    deviceIds = new string[count];
    this._deviceManager.GetDevices(ref deviceIds[0], ref count);
    foreach(var deviceId in deviceIds)
    {
        Add(new PortableDevice(deviceId));
    }
}

Мы поручаем PortableDeviceManager подсчитать, сколько устройств подключено к ПК. Далее мы получаем ИД устройства для каждого подключенного устройства, и добавляем новый экземпляр класса PortableDevice в коллекцию.

Добавьте следующий код в основной метод консольного приложения и нажмите клавишу F5 для запуска приложения:

var collection = new PortableDeviceCollection();

collection.Refresh();

foreach(var device in collection)
{
    Console.WriteLine(device.DeviceId);
}

Console.WriteLine();
Console.WriteLine("Press any key to continue.");
Console.ReadKey();

Вы увидите примерно следующее:

Это какой-то идентификатор устройства — в данном случае это мой мобильный телефон. Продолжение следует…

Автор этого материала — я — Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML — то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Как установить vds сервер на windows
  • Что такое очистка обновлений windows при в очистке диска
  • Universal termsrv dll windows 2012
  • 0x00000771 указанный принтер был удален windows 10
  • Upnp плеер для windows 10