» Включить или отключить автоматическое монтирование дисков, дисков и томов в Windows 10

» включить или отключить автоматическое монтирование дисков, дисков и томов в windows 10

Каждый раз, когда новый диск или любое устройство хранения данных подключается к компьютеру под управлением Windows 10, операционная система стремится автоматически назначать ему букву диска. Мало того, поскольку ОС также отображает местоположение диска, что помогает ей указывать букву на точное местоположение порта диска и обслуживать запросы от пользователя. В результате он создает немного кеша в соответствии с шаблоном, в котором пользователь использует хранилище компьютера. Весь этот процесс известен как «Auto Mounting», который работает для жестких дисков или устройств чтения оптических дисков, которые подключены через порты SATA, и даже для USB-накопителей, которые подключены через порты USB.

Существует несколько способов включить или отключить функцию автоматического монтирования в Windows 10. Это можно сделать с помощью инструмента MountVol, редактора реестра или утилиты Diskpart. Прежде чем продолжить, рекомендуется сначала создать точку восстановления системы, чтобы вы всегда могли отменить сделанные изменения в случае, если что-то пойдет не так.

Mountvol windows command

You can use Mountvol windows command to manage mount points without using a drive letter.

Syntax
MountVolParameters

Parameters

  • If you need to expand your volume space without reformatting or replacing a hard drive, you can add a mount path to another volume.
  • If you are running out of drive letters to use, mount your local volumes with no drive letters.
  • The benefit is that if you use one volume with several mount paths, you can access all local volumes using a single drive letter (such as C:). You need not remember which volume corresponds to which drive letter, although you can mount local volumes and still have them assigned to drive letters.

Example
Command to list mounted volume.
Mountvol c: /L

Below is a command to disable automatic mounting.
MountVol/n

Below is a command to Re-enables automatic mounting.
MountVol/e

Информация о файле

mountvol.exe

Как исправить ошибки mountvol.exe всего за несколько шагов?

Помните, прежде чем предпринимать какие-либо действия, связанные с системными файлами, сделайте резервную копию ваших данных!

Ошибки файла mountvol.exe могут быть вызваны различными причинами, поэтому полезно попытаться исправить их различными способами.

Шаг 1.. Сканирование компьютера на наличие вредоносных программ.

Virus Scan

Файлы Windows обычно подвергаются атаке со стороны вредоносного программного обеспечения, которое не позволяет им работать должным образом. Первым шагом в решении проблем с файлом mountvol.exe или любыми другими системными файлами Windows должно быть сканирование системы на наличие вредоносных программ с использованием антивирусного инструмента.

:/>  Исправлено: ошибки Rstrui.exe в Windows 10, 8.1, 7 - 2021

Если по какой-либо причине в вашей системе еще не установлено антивирусное программное обеспечение, вы должны сделать это немедленно. Незащищенная система не только является источником ошибок в файлах, но, что более важно, делает вашу систему уязвимой для многих опасностей. Если вы не знаете, какой антивирусный инструмент выбрать, обратитесь к этой статье Википедии – сравнение антивирусного программного обеспечения.

Монтируем диск: программная замена mountvol

В этой статье рассматривается создание программы монтирования жестких дисков в директории. По умолчанию Windows монтирует несъемные носители автоматически – если вы подключаете новый жесткий диск к компьютеру, то после загрузки операционной системы и установки необходимых драйверов вы можете увидеть его в проводнике. В операционных системах UNIX существует возможность монтирования жестких дисков в директории, так называемые точки монтирования. Начиная с Windows NT 4.0 в поставку операционной системы входит утилита mountvol.exe, которая через интерфейс командной строки позволяет создавать, удалять и выводит список точек подключения дисков. Результат работы которой вы видите на рисунке:

» Включить или отключить автоматическое монтирование дисков, дисков и томов в Windows 10

После непродолжительной работы с данной утилитой мне захотелось реализовать предоставленные возможности самому, программно. Первым шагом нужно было, выяснить какие API функции использует mountvol.exe, для этого использовалась программа Dependency Walker, входящая в состав поставки среды разработки.

» Включить или отключить автоматическое монтирование дисков, дисков и томов в Windows 10

Из результата работы Dependency Walker мы видим какие API функции использует mountvol.exe. Для создания программы-примера использовалась среда разработки MS Visual C 6.0, тип приложения “Win 32 Console Application”.Для начала рассмотрим функций, которые будут использоваться в приложении, и так по порядку:

HANDLE FindFirstVolume(
LPTSTR lpszVolumeName,
DWORD cchBufferLength
);

Данная функция используется для начала сканирования компьютера на наличие томов, возвращаемое значение – хендл, который используется для последующего поиска, в переменную lpszVolumeName возвращается указатель на буфер, содержащий уникальный идентификатор (GUID) первого найденного тома.

Для дальнейшего поиска используется функция:

BOOL FindNextVolume(
HANDLE hFindVolume,
LPTSTR lpszVolumeName,
DWORD cchBufferLength
);

Первым параметром которой является хендл, полученный при помощи вызова функции FindFirstVolume, в переменную lpszVolumeName возвращаются последующие найденные идентификаторы (GUID) томов. Для завершения поиска необходимо осуществить вызов функции:

BOOL FindVolumeClose(
HANDLE hFindVolume
);

Единственным параметром ее является хендл поиска.
Для определения типа тома использовалась функция:

UINT GetDriveType(
LPCTSTR lpRootPathName
);

Параметром ее является идентификатор тома, возвращаемое значение:

DRIVE_UNKNOWN – Неизвестный тип.
DRIVE_NO_ROOT_DIR – Не точек подключения.
DRIVE_REMOVABLE – Съёмный диск.
DRIVE_FIXED – Фиксированный диск.
DRIVE_REMOTE – Удалённый или network диск.
DRIVE_CDROM – CD-ROM диск.
DRIVE_RAMDISK – RAM диск.

:/>  Гаджеты для Виндовс 10 и виджеты: как установить на Рабочий стол и настройка

Для определения файловой системы и метки тома использовалась функция:

BOOL GetVolumeInformation(
LPCTSTR lpRootPathName,
LPTSTR lpVolumeNameBuffer,
DWORD nVolumeNameSize,
LPDWORD lpVolumeSerialNumber,
LPDWORD lpMaximumComponentLength,
LPDWORD lpFileSystemFlags,
LPTSTR lpFileSystemNameBuffer,
DWORD nFileSystemNameSize
);

Первый параметр – уникальный идентификатор тома, в параметра lpVolumeNameBuffer возвращается метка тома, в параметр lpFileSystemNameBuffer возвращается указатель на буфер, содержащий имя файловой системы.

Мною также был найден еще один способ получения уникальных идентификаторов томов, для этого использовалась связка функций GetLogicalDrives и GetVolumeNameForVolumeMountPoint, подробней о их параметрах:

DWORD GetLogicalDrives(void); 

Функция возвращает битовую маску которая содержит все доступные тома в системе.

BOOL GetVolumeNameForVolumeMountPoint(
LPCTSTR lpszVolumeMountPoint,
LPTSTR lpszVolumeName,
DWORD cchBufferLength
);

Функция возвращает уникальный идентификатор тома по его точке монтирования.

Для удаления точки монтирования использовалась функция:

BOOL DeleteVolumeMountPoint(
LPCTSTR lpszVolumeMountPoint
);

Параметром ее является точка монтирования.

И самая главная функция по монтированию томов:

BOOL SetVolumeMountPoint(
LPCTSTR lpszVolumeMountPoint,
LPCTSTR lpszVolumeName
);

Первый параметр – точка последующего монтирования, в нашем случае это директория, например “C:\mnt\”, второй параметр – уникальный идентификатор тома.

Предупреждение: Точка куда будет монтироваться том, в нашем случае директория должна быть пустой! На содержимое монтируемого тома это условие не распространяется.

А теперь пробуем все вместе. Ниже приведен исходный текст программы которая сначала выводит двумя способами уникальные идентификаторы томов, их файловую систему, тип тома и метку, дальше она производит демонтирование заданного диска и последующее его монтирование в точку C:\mnt\, после паузы возвращает первоначальную точку.

#include <iostream.h>
#include <windows.h>
#include <conio.h>

// Создаются указатели на прототипы функций для 
последующей загрузки в них адресов функций

HANDLE (WINAPI * FindFirstVolume)
(LPTSTR,DWORD);
BOOL (WINAPI * FindNextVolume)
(HANDLE,LPTSTR,DWORD);
BOOL (WINAPI * FindVolumeClose)(HANDLE);
BOOL (WINAPI * GetVolumeNameForVolumeMountPoint)
(LPCTSTR,LPTSTR,DWORD);
BOOL (WINAPI * DeleteVolumeMountPoint)
(LPCTSTR);
BOOL (WINAPI * SetVolumeMountPoint)
(LPCTSTR,LPCTSTR);
void ErrorView();

int main()
{
HANDLE hMount;

char szPath[MAX_PATH],
szRecvBuff[MAX_PATH 1],
szFileSystem[MAX_PATH 1];

HMODULE hmod;
if((hmod = LoadLibrary("Kernel32.dll")))

// Загружаем необходимую библиотеку

{

// Далее получаем адреса необходимых нам функций

if(!(FindFirstVolume = (HANDLE(WINAPI *)
(LPTSTR,DWORD))GetProcAddress(hmod,"FindFirstVolumeA")))
{cout<<"Error GetProcAddress...1"<<endl;return -1;}
if(!(FindNextVolume = (BOOL(WINAPI *)
(HANDLE,LPTSTR,DWORD))GetProcAddress(hmod,"FindNextVolumeA")))
{cout<<"Error GetProcAddress...2"<<endl;return -1;}
if(!(FindVolumeClose = (BOOL(WINAPI *)
(HANDLE))GetProcAddress(hmod,"FindVolumeClose")))
{cout<<"Error GetProcAddress...3"<<endl;return -1;}
if(!(GetVolumeNameForVolumeMountPoint = (BOOL(WINAPI *)
(LPCTSTR,LPTSTR,DWORD))GetProcAddress(hmod,
"GetVolumeNameForVolumeMountPointA")))
{cout<<"Error GetProcAddress...4"<<endl;return -1;}
if(!(DeleteVolumeMountPoint = (BOOL(WINAPI *)
(LPCTSTR))GetProcAddress(hmod,"DeleteVolumeMountPointA")))
{cout<<"Error GetProcAddress...5"<<endl;return -1;}
if(!(SetVolumeMountPoint = (BOOL(WINAPI *)
(LPCTSTR,LPCTSTR))GetProcAddress(hmod,"SetVolumeMountPointA")))
{cout<<"Error GetProcAddress...6"<<endl;return -1;}

hMount = FindFirstVolume(szPath,sizeof(szPath));

UINT uin;

// Производится поиск томов и вывод информации о них,
 первым способом

if(hMount!=INVALID_HANDLE_VALUE)
{
do
{
uin = GetDriveType(szPath);
if(uin==DRIVE_CDROM) {cout<<"CDROM: ";}
if(uin==DRIVE_UNKNOWN) {cout<<"UNKNOWN: ";}
if(uin==DRIVE_NO_ROOT_DIR){cout<<"NO_ROOT_DIR: ";}
if(uin==DRIVE_REMOVABLE) {cout<<"REMOV: ";}
if(uin==DRIVE_FIXED) {cout<<"FIXED: ";}
if(uin==DRIVE_REMOTE) {cout<<"REMOTE: ";}
if(uin==DRIVE_RAMDISK) {cout<<"RAMDISK: ";}

GetVolumeInformation(szPath,
szRecvBuff,
sizeof(szRecvBuff),
NULL,NULL,NULL,
szFileSystem,
sizeof(szFileSystem));

cout<<"("<<szRecvBuff
<<"|"<<szFileSystem
<<") "<<szPath<<endl<<endl; 

ZeroMemory(szRecvBuff,sizeof(szRecvBuff));
ZeroMemory(szFileSystem,sizeof(szFileSystem));

}while(FindNextVolume(hMount,szPath,sizeof(szPath))!=0);

FindVolumeClose(hMount);

}else{cout<<"Error FindFirstVolume"<<endl;}

FreeLibrary(hmod); 

}else{cout<<"Error LoadLibrary"<<endl;}

// Производится поиск томов и вывод информации о них,
 вторым способом

ZeroMemory(szRecvBuff,sizeof(szRecvBuff));
char szDrive[4];DWORD dwID = GetLogicalDrives();

for(int i = 0;i < 26;i  )
{
if(((dwID>>i)&0x00000001)==1) 
{
szDrive[0] = char(65 i);
szDrive[1] = ':';
szDrive[2] = '\';
szDrive[3] = 0;
GetVolumeNameForVolumeMountPoint(szDrive,
szRecvBuff,
sizeof(szRecvBuff));
cout <<szDrive<<" "<<szRecvBuff<<endl;

}
}

// Удаление точки монтирования

if(DeleteVolumeMountPoint("G:\"))
{cout<<"DeleteVolumeMountPoint status:OK"<<endl;}
else
{cout<<"DeleteVolumeMountPoint status:ERROR"<<endl;ErrorView();}

// Устанавливаем новую точку монтирования

if(SetVolumeMountPoint("C:\mnt\",
"\\?\Volume{e7aaf23a-8560-11db-97d5-806d6172696f}\"))
{cout<<"SetVolumeMountPoint status:OK"<<endl;}
else
{cout<<"SetVolumeMountPoint status:ERROR"<<endl;ErrorView();}
/////////////////
cout<<"(PAUSE)Press any key..."<<endl;
while(!getch());
///////////////// возвращаем все как было
if(DeleteVolumeMountPoint("C:\mnt\"))
{cout<<"DeleteVolumeMountPoint status:OK"<<endl;}
else
{cout<<"DeleteVolumeMountPoint status:ERROR"<<endl;ErrorView();}
if(SetVolumeMountPoint("G:\",
"\\?\Volume{e7aaf23a-8560-11db-97d5-806d6172696f}\"))
{cout<<"SetVolumeMountPoint status:OK"<<endl;}
else
{cout<<"SetVolumeMountPoint status:ERROR"<<endl;ErrorView();}

cout<<"Press any key to exit..."<<endl;
while(!getch());
return 0;

}

void ErrorView()
{
LPVOID lpMsgBuf = NULL;
FormatMessage
(FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_FROM_SYSTEM,
NULL,GetLastError(), 
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPTSTR)&lpMsgBuf, 0, NULL);
CharToOem((LPTSTR)lpMsgBuf,(LPTSTR)lpMsgBuf);
cout<<(LPCTSTR)lpMsgBuf<<endl;
LocalFree(lpMsgBuf);
}

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

:/>  Как можно исправить ошибки, связанные с Migviz.exe?

» Включить или отключить автоматическое монтирование дисков, дисков и томов в Windows 10

На этом всё.

Наиболее распространенные проблемы с файлом mountvol.exe

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

  • mountvol.exe поврежден
  • mountvol.exe не может быть расположен
  • Ошибка выполнения – mountvol.exe
  • Ошибка файла mountvol.exe
  • Файл mountvol.exe не может быть загружен. Модуль не найден
  • невозможно зарегистрировать файл mountvol.exe
  • Файл mountvol.exe не может быть загружен
  • Файл mountvol.exe не существует

Проблемы, связанные с mountvol.exe, могут решаться различными способами. Некоторые методы предназначены только для опытных пользователей. Если вы не уверены в своих силах, мы советуем обратиться к специалисту. К исправлению ошибок в файле mountvol.exe следует подходить с особой осторожностью, поскольку любые ошибки могут привести к нестабильной или некорректно работающей системе. Если у вас есть необходимые навыки, пожалуйста, продолжайте.

Шаг 1.. сканирование компьютера на наличие вредоносных программ.

Virus Scan

Файлы Windows обычно подвергаются атаке со стороны вредоносного программного обеспечения, которое не позволяет им работать должным образом. Первым шагом в решении проблем с файлом mountvol.exe или любыми другими системными файлами Windows должно быть сканирование системы на наличие вредоносных программ с использованием антивирусного инструмента.

Если по какой-либо причине в вашей системе еще не установлено антивирусное программное обеспечение, вы должны сделать это немедленно. Незащищенная система не только является источником ошибок в файлах, но, что более важно, делает вашу систему уязвимой для многих опасностей. Если вы не знаете, какой антивирусный инструмент выбрать, обратитесь к этой статье Википедии – сравнение антивирусного программного обеспечения.

Оставьте комментарий