使用python挂载.iso文件

问题描述 投票:0回答:1

我正在尝试在 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

python-3.x winapi ctypes iso
1个回答
0
投票

为什么不使用 PowerShell?

Mount-DiskImage -ImagePath "PATH\TO\ISOFILE"

在Python中,你会做类似的事情:

import os

ISO_PATH = 'path to iso file'

os.system("Mount-DiskImage -ImagePath %s" % ISO_PATH)
© www.soinside.com 2019 - 2024. All rights reserved.