_WIM_UnMountImage
Демонтирует образ
#Include <wimgapi.au3>
_WIM_UnMountImage ( $sMountPath [, $sWimFileName = 0 [, $dwImageIndex = 0 [, $iCommitChanges = 0 ]]] )
Параметры
$sMountPath | Полный путь к каталогу, в который wim-файл был смонтирован |
$sWimFileName |
[необязательный] Полное имя wim-файла, который должен быть демонтирован |
$dwImageIndex |
[необязательный] Индекс образа в wim-файле, который должен быть демонтирован |
$iCommitChanges |
[необязательный] Сохранить ли изменения (если произошли) в wim-файл, перед демонтированием. Этот флаг не имеет значения, если wim-файл был смонтирован в режиме только для чтения. 0 - (по умолчанию) Не сохранять изменения 1 - Сохранить изменения |
Возвращаемое значение
Успех: | Возвращает 1 |
Ошибка: | Возвращает 0 и устанавливает @error: |
@error: | 1 - Не удалось использовать DLL файл |
2 - Неизвестный тип возвращаемого значения | |
3 - Не найдена функция в DLL файле | |
4 - Не верное число параметров | |
В обоих случаях @extended равен _WinAPI_GetLastError() |
Примечания
Функция _WIM_UnMountImage() отключает проекцию содержимого образа wim-файла от указанной папки монтирования. После успешного завершения этой операции, пользователи и приложения не могут получить доступ к содержимому образа, ранее отображаемого в каталоге монтирования. Используйте функцию _WIM_UnMountImage(), чтобы демонтировать образ, отключив его от каталога, в который он был смонтирован.См. также
_WIM_MountImageПример
; Homes32
; http://www.autoitscript.com/forum/topic/127075-wimgapi-udf/
#include <wimgapi.au3>
Local $hWim, $hImage, $sPath, $sWimPath
$sWimPath = FileOpenDialog('Выбрать файл-образ', @WorkingDir, 'Образ (*.wim)', 3, 'install.wim')
If @error Then Exit
$sPath = FileSelectFolder('Выбрать папку, в которую монтировать', '', 3, @WorkingDir)
If @error Then Exit
$aResult = _WIM_Startup() ; Открывает wimgapi.dll
If @error Then Exit MsgBox(0, 'Сообщение', 'Ошибка открытия wimgapi.dll')
; Открывает существующий wim-файл
$hWim = _WIM_CreateFile($sWimPath, $WIM_GENERIC_READ, $WIM_OPEN_EXISTING, $WIM_FLAG_SHARE_WRITE, $WIM_COMPRESS_LZX)
If $hWim Then
MsgBox(0, 'Сообщение', 'Дескриптор wim-файла $hWim = ' & $hWim)
Else
MsgBox(0, 'Сообщение', 'Ошибка создания wim-файла')
_Exit()
EndIf
; Монтирует образ
$iFlag = _WIM_MountImage($sPath, $sWimPath, 1)
If $iFlag Then
MsgBox(0, 'Сообщение', 'Удачно смонтирован = ' & $iFlag)
Else
MsgBox(0, 'Сообщение', 'Неудача _WIM_MountImage')
_Exit()
EndIf
$iFlag = _WIM_UnMountImage($sPath, $sWimPath, 1)
If $iFlag Then
MsgBox(0, 'Сообщение', 'Удачно демонтирован = ' & $iFlag)
Else
MsgBox(0, 'Сообщение', 'Неудача _WIM_UnMountImage')
EndIf
_Exit()
Func _Exit()
If $hImage Then _WIM_CloseHandle($hImage) ; Закрывает открытый дескриптор
If $hWim Then _WIM_CloseHandle($hWim) ; Закрывает открытый дескриптор
_WIM_Shutdown() ; Выгружает wimgapi.dll
Exit
EndFunc