我正在尝试在 Windows 10 上使用 python 挂载 iso 文件。这是代码:
import ctypes
from ctypes import wintypes
ByteArray8 = wintypes.BYTE * 8
src = r'F:\Backup\ubuntu.iso'
class GUID(ctypes.Structure):
_fields_ = [
("Data1", ctypes.c_long),
("Data2", ctypes.c_short),
("Data3", ctypes.c_short),
("Data4", ByteArray8)
]
guid = GUID(0xec984aec, 0xa0f9, 0x47e9, ByteArray8(0x90, 0x1f, 0x71, 0x41, 0x5a, 0x66, 0x34, 0x5b))
class VIRTUAL_STORAGE_TYPE(ctypes.Structure):
_fields_ = [
('DeviceId', ctypes.c_ulong),
('VendorId', GUID)
]
virtual_storage_type = VIRTUAL_STORAGE_TYPE(1, guid)
handle = wintypes.HANDLE()
Path = ctypes.c_wchar_p(src)
print(
ctypes.windll.virtdisk.OpenVirtualDisk(
ctypes.byref(virtual_storage_type),
Path,
0x000d0000,
0x00000000,
None,
ctypes.byref(handle)
)
)
print(
ctypes.windll.virtdisk.AttachVirtualDisk(
handle,
None,
0x00000001,
0,
None,
None
)
)
运行后显示两个0,表示open和attach操作成功。但资源管理器中没有显示新驱动程序。
我想知道原因以及如何正确挂载.iso 文件。 这是参考: https://learn.microsoft.com/en-us/windows/win32/api/virtdisk/nf-virtdisk-openvirtualdisk https://learn.microsoft.com/en-us/windows/win32/api/virtdisk/nf-virtdisk-attachvirtualdisk
为什么不使用 PowerShell?
Mount-DiskImage -ImagePath "PATH\TO\ISOFILE"
在Python中,你会做类似的事情:
import os
ISO_PATH = 'path to iso file'
os.system("Mount-DiskImage -ImagePath %s" % ISO_PATH)